|
|
|
|
using log4net;
|
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
using Quartz;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Data;
|
|
|
|
|
using System.Data.SqlClient;
|
|
|
|
|
using System.IO;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Reflection;
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
|
|
|
|
namespace JobReqWebData
|
|
|
|
|
{
|
|
|
|
|
public class JobDs7ToWeb : IJob
|
|
|
|
|
{
|
|
|
|
|
private ILog log = LogManager.GetLogger(typeof(JobDs7ToWeb));
|
|
|
|
|
//private const string CfgFileName = "requestjson.cfg";
|
|
|
|
|
//private static string CfgFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, CfgFileName);
|
|
|
|
|
public void Execute(IJobExecutionContext context)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
string connStr = context.JobDetail.JobDataMap.GetString("ConnectString");
|
|
|
|
|
string WebconnStr = context.JobDetail.JobDataMap.GetString("WebConnectString");
|
|
|
|
|
string sqlQuery = context.JobDetail.JobDataMap.GetString("QuerySql");
|
|
|
|
|
|
|
|
|
|
log.Debug($"连接字符串:{connStr}");
|
|
|
|
|
|
|
|
|
|
SqlConnection conn = new SqlConnection(connStr);
|
|
|
|
|
SqlDataAdapter dataAdapter = new SqlDataAdapter(sqlQuery, conn);
|
|
|
|
|
DataTable tQuery = new DataTable();
|
|
|
|
|
dataAdapter.Fill(tQuery);
|
|
|
|
|
|
|
|
|
|
if (tQuery.Rows.Count == 0)
|
|
|
|
|
{
|
|
|
|
|
log.Debug("没有要发送的数据!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
var mblno = "";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
using (SqlConnection db = new SqlConnection(WebconnStr))
|
|
|
|
|
{
|
|
|
|
|
db.Open();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 运踪
|
|
|
|
|
if (tQuery.Rows.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
foreach (DataRow row in tQuery.Rows)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
string cmdDelete = "delete from tb_order where BSNO='"+ row["AS_ID"].ToString() + "' delete from tb_ctn where BSNO='" + row["AS_ID"].ToString() + "'";
|
|
|
|
|
SqlCommand cmddelete = new SqlCommand(cmdDelete, db);
|
|
|
|
|
cmddelete.ExecuteNonQuery();
|
|
|
|
|
using (SqlTransaction trans = db.BeginTransaction())
|
|
|
|
|
{
|
|
|
|
|
log.Debug("插入"+ row["MBLNO"].ToString()+"-"+ row["HBLNO"].ToString());
|
|
|
|
|
string sql = "insert into tb_order(BSNO,业务编号,提单号,分单号,客户名称,发货人,收货人,启运港,目的港,国家名称" +
|
|
|
|
|
",船名,航次,箱量表示,出口类型,运输条款,预计离港,实际离港,联系客户时间,建立时间,出号时间" +
|
|
|
|
|
",操作时间,船公司,PO,品名,HS编码,件数文本,重量文本,尺码文本,保险联系人,ETA)";
|
|
|
|
|
sql = sql + " values (@BSNO,@CUSTNO,@MBLNO,@HBLNO,@CUSTOMERNAME,@SHIPPER,@CONSIGNEE,@PORTLOAD,@DESTINATION,@COUNTRY" +
|
|
|
|
|
",@VESSEL,@VOYNO,@CNTRTOTAL,@BLTYPE,@SERVICE,@ETD,@ATD,@LINKCUSTTIME,@CREATETIME,@MBLNOTIME" +
|
|
|
|
|
",@BSDATE,@CARRIER,@PONO,@GOODSNAME,@HSCODE,@NOPKGS,@GROSSWEIGHT,@MEASUREMENT,@INSURANCEOP,@ETA)";
|
|
|
|
|
SqlCommand cmd = new SqlCommand(sql, db, trans);
|
|
|
|
|
cmd.Parameters.AddWithValue("@BSNO", row["AS_ID"].ToString());
|
|
|
|
|
cmd.Parameters.AddWithValue("@CUSTNO", row["CUSTNO"].ToString());
|
|
|
|
|
cmd.Parameters.AddWithValue("@MBLNO", row["MBLNO"].ToString());
|
|
|
|
|
cmd.Parameters.AddWithValue("@HBLNO", row["HBLNO"].ToString());
|
|
|
|
|
cmd.Parameters.AddWithValue("@CUSTOMERNAME", row["CUSTOMERNAME"].ToString());
|
|
|
|
|
var Shipping = row["SHIPPER"].ToString();
|
|
|
|
|
Shipping = Shipping.Replace("\n", "\\");
|
|
|
|
|
Shipping = Shipping.Replace("\r", " ");
|
|
|
|
|
string[] ShippingList = Shipping.Split('\\');
|
|
|
|
|
if (ShippingList.Length != 0)
|
|
|
|
|
{
|
|
|
|
|
cmd.Parameters.AddWithValue("@SHIPPER", ShippingList[0]);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
cmd.Parameters.AddWithValue("@SHIPPER","");
|
|
|
|
|
}
|
|
|
|
|
Shipping = row["CONSIGNEE"].ToString();
|
|
|
|
|
Shipping = Shipping.Replace("\n", "\\");
|
|
|
|
|
Shipping = Shipping.Replace("\r", " ");
|
|
|
|
|
ShippingList = Shipping.Split('\\');
|
|
|
|
|
if (ShippingList.Length != 0)
|
|
|
|
|
{
|
|
|
|
|
cmd.Parameters.AddWithValue("@CONSIGNEE", ShippingList[0]);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
cmd.Parameters.AddWithValue("@CONSIGNEE", "");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
cmd.Parameters.AddWithValue("@PORTLOAD", row["PORTLOAD"].ToString());
|
|
|
|
|
cmd.Parameters.AddWithValue("@DESTINATION", row["DESTINATION"].ToString());
|
|
|
|
|
cmd.Parameters.AddWithValue("@COUNTRY", row["COUNTRY"].ToString());
|
|
|
|
|
cmd.Parameters.AddWithValue("@VESSEL", row["VESSEL"].ToString());
|
|
|
|
|
cmd.Parameters.AddWithValue("@VOYNO", row["VOYNO"].ToString());
|
|
|
|
|
cmd.Parameters.AddWithValue("@CNTRTOTAL", row["CNTRTOTAL"].ToString());
|
|
|
|
|
cmd.Parameters.AddWithValue("@BLTYPE", row["BLTYPE"].ToString());
|
|
|
|
|
cmd.Parameters.AddWithValue("@SERVICE", row["SERVICE"].ToString());
|
|
|
|
|
cmd.Parameters.AddWithValue("@ETD", row["ETD"].ToString());
|
|
|
|
|
cmd.Parameters.AddWithValue("@ATD", row["ATD"].ToString());
|
|
|
|
|
cmd.Parameters.AddWithValue("@LINKCUSTTIME", row["LINKCUSTTIME"].ToString());
|
|
|
|
|
cmd.Parameters.AddWithValue("@CREATETIME", row["CREATETIME"].ToString());
|
|
|
|
|
cmd.Parameters.AddWithValue("@MBLNOTIME", row["MBLNOTIME"].ToString());
|
|
|
|
|
cmd.Parameters.AddWithValue("@BSDATE", row["BSDATE"].ToString());
|
|
|
|
|
cmd.Parameters.AddWithValue("@CARRIER", row["CARRIER"].ToString());
|
|
|
|
|
cmd.Parameters.AddWithValue("@PONO", row["PONO"].ToString());
|
|
|
|
|
Shipping = row["DESCRIPTION"].ToString();
|
|
|
|
|
Shipping = Shipping.Replace("\n", "\\");
|
|
|
|
|
Shipping = Shipping.Replace("\r", " ");
|
|
|
|
|
ShippingList = Shipping.Split('\\');
|
|
|
|
|
if (ShippingList.Length != 0)
|
|
|
|
|
{
|
|
|
|
|
cmd.Parameters.AddWithValue("@GOODSNAME", ShippingList[0]);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
cmd.Parameters.AddWithValue("@GOODSNAME", "");
|
|
|
|
|
}
|
|
|
|
|
cmd.Parameters.AddWithValue("@HSCODE", row["HSCODE"].ToString());
|
|
|
|
|
cmd.Parameters.AddWithValue("@NOPKGS", row["NOPKGS"].ToString());
|
|
|
|
|
cmd.Parameters.AddWithValue("@GROSSWEIGHT", row["GROSSWEIGHT"].ToString());
|
|
|
|
|
cmd.Parameters.AddWithValue("@MEASUREMENT", row["MEASUREMENT"].ToString());
|
|
|
|
|
cmd.Parameters.AddWithValue("@INSURANCEOP", row["INSURANCEOP"].ToString());
|
|
|
|
|
|
|
|
|
|
cmd.Parameters.AddWithValue("@ETA", row["ETA"].ToString());
|
|
|
|
|
|
|
|
|
|
cmd.ExecuteNonQuery();
|
|
|
|
|
var sqlctn = "select * from op_ctn where BSNO='"+ row["AS_ID"].ToString() + "'";
|
|
|
|
|
SqlDataAdapter dataAdapterCtn = new SqlDataAdapter(sqlctn, conn);
|
|
|
|
|
DataTable tQueryCtn = new DataTable();
|
|
|
|
|
dataAdapterCtn.Fill(tQueryCtn);
|
|
|
|
|
if (tQueryCtn.Rows.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
foreach (DataRow rowctn in tQueryCtn.Rows)
|
|
|
|
|
{
|
|
|
|
|
var cmdInsertCtnSQL = "insert into tb_ctn (CTN_ID,BSNO,CTNCODE,[SIZE],CTN,CTNNUM,TEU,CTNALL,CNTRNO,SEALNO,PKGS,KGS,CBM,REMARK,KINDPKGS,TAREWEIGHT,GOODSNAME,CTNSTATUS,MASTERNO,WEIGHTYPE,WEIGHKGS,WEIGHATTN,WEIGHTEL,WEIGHSIGN,WEIGHDATE,TRUCKER,TRUCKFEE,FREESTORAGEDAY,STORAGEDAY,STORAGEPRICE,STORAGEFEE,FREECTNDAY,CTNDAY,CTNPRICE,CTNFEE,TRUCKNO,VGMCONNCOM,VGMADDR,VGMEMAIL,ISTEMP,TIXIANGSHIJIAN) values ("
|
|
|
|
|
+ "NEWID(),'" + row["AS_ID"].ToString() + "','" + rowctn["CTNCODE"].ToString() + "','" + rowctn["SIZE"].ToString() + "','" + rowctn["CTN"].ToString() + "'," + rowctn["CTNNUM"].ToString()+ "," + rowctn["TEU"].ToString()+ ",'" + rowctn["CTNALL"].ToString().Replace("'", "''") + "','" + rowctn["CNTRNO"].ToString() + "','" + rowctn["SEALNO"].ToString() + "','" + rowctn["PKGS"].ToString() + "'," + rowctn["KGS"].ToString()+ "," + rowctn["CBM"].ToString() + ",'" + rowctn["REMARK"].ToString() + "','" + rowctn["KINDPKGS"].ToString()+ "'," + rowctn["TAREWEIGHT"].ToString()+ ",'','"
|
|
|
|
|
+ rowctn["CTNSTATUS"].ToString() + "','" + rowctn["MASTERNO"].ToString()+ "','',0,'0','','','','',0"
|
|
|
|
|
+ ",0,0,0,0,0,0,0,0,'','','','','','')";
|
|
|
|
|
SqlCommand cmdInsertCtn = new SqlCommand(cmdInsertCtnSQL, db, trans);
|
|
|
|
|
cmdInsertCtn.ExecuteNonQuery();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
trans.Commit();
|
|
|
|
|
}
|
|
|
|
|
log.Debug("插入" + row["MBLNO"].ToString() + "-" + row["HBLNO"].ToString()+"完成!");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//if (!string.IsNullOrEmpty(item.SJLGSJ))
|
|
|
|
|
//{
|
|
|
|
|
// string sql ="update op_seae set ATD='"+ item.SJLGSJ + "' where VESSEL='"+ item.YWCM + "' AND VOYNO='"+ item.CKHC+ "'";
|
|
|
|
|
// SqlCommand cmd = new SqlCommand(sql, dbcon, trans);
|
|
|
|
|
// cmd.ExecuteNonQuery();
|
|
|
|
|
//}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
db.Close();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
foreach (DataRow row in tQuery.Rows)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
foreach (DataColumn col in tQuery.Columns)
|
|
|
|
|
{
|
|
|
|
|
mblno = row["MBLNO"].ToString();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
log.Error(ex.Message);
|
|
|
|
|
log.Error(ex.StackTrace);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static public string GETBSNO(string MBLNO, SqlConnection dbcon)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var strSql = new StringBuilder();
|
|
|
|
|
strSql.Append("SELECT BSNO from V_OP_BS where MBLNO='" + MBLNO + "'");
|
|
|
|
|
SqlDataAdapter adapter = new SqlDataAdapter(strSql.ToString(), dbcon);
|
|
|
|
|
DataTable table = new DataTable();
|
|
|
|
|
adapter.Fill(table);
|
|
|
|
|
var BSNO = "";
|
|
|
|
|
if (table.Rows.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
foreach (DataRow row in table.Rows)
|
|
|
|
|
{
|
|
|
|
|
BSNO = row["BSNO"].ToString();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return BSNO;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|