| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651 |
- using System;
- using System.Data;
- using System.IO;
- using System.Linq;
- using System.Net;
- using System.Text;
- using Curtain.DataAccess;
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- /// <summary>
- /// 同步到昆船WMS
- /// </summary>
- public class SyncKunChuan
- {
- #region 固定常量
- // 数据库连接字符串
- public static string _connStr_ss = @"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.18.32.116)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=dkmes)));User Id=hgiboss;Password=dongke";
- public static string _connStr_cz2 = @"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.19.22.61)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=hgcz2)));User Id=hgcz2;Password=dongke";
- public static string _connStr_cz3 = @"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.19.22.61)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=hgcz3)));User Id=hgcz3;Password=dongke";
- // 测试环境
- //public static string _urlPush = "http://172.17.193.169:8080/com.ksec.l1101.erpif/jbaprpc/interface/unique";
- // 正式环境
- public static string _urlPush = "http://172.19.252.5:8080/com.ksec.l1101.erpif/jbaprpc/interface/unique";
- #endregion
- #region 推送方法
- /// <summary>
- /// 同步产成品交接数据到恒洁中台
- /// </summary>
- /// <param name="syncDate">同步日期</param>
- /// <param name="isPushTodayAllData">是否推送当天剩余所有数据</param>
- /// <returns></returns>
- public static string SyncFinishedProduct(DateTime syncDate, bool isPushTodayAllData)
- {
- string msg = string.Empty;
- msg += "ss:" + SyncFinishedProduct_ss(syncDate, isPushTodayAllData);
- msg += ",cz2:" + SyncFinishedProduct_cz2(syncDate, isPushTodayAllData);
- msg += ",cz3:" + SyncFinishedProduct_cz3(syncDate, isPushTodayAllData);
- return msg;
- }
- /// <summary>
- /// 同步产成品交接数据到恒洁中台_三水
- /// </summary>
- /// <param name="syncDate">同步日期</param>
- /// <param name="isPushTodayAllData">是否推送当天剩余所有数据</param>
- /// <returns></returns>
- public static string SyncFinishedProduct_ss(DateTime syncDate, bool isPushTodayAllData)
- {
- int returnRows = 0;
- string sql = string.Empty;
- string sqlUpdate = string.Empty;
- // 本次推送的数据
- DataTable dtSyncFinishProduct = null;
- // 返回json
- JObject returnObj;
- // 推送结果
- string message = string.Empty;
- using (IDataAccess connSS = DataAccess.CreateByString(DataBaseType.Oracle, _connStr_ss))
- {
- try
- {
- #region 获取产成品交接数据
- // 是否推送当天剩余的所有数据
- if (isPushTodayAllData)
- {
- sql = @"
- SELECT FP.OUTCODE AS CODE,
- FP.SAPCODE AS SKU,
- NVL(FP.BANMA, FP.SAPFLBATCHNO) AS LPNNUM,
- FP.WORKCODE AS FACTORY,
- FP.ORDERCODE AS SALENUM,
- LPAD(FP.ORDERITEM, 6, '0') AS SALELINE,
- 1 AS QTY,
- FP.OUTCODE AS SUSR1,
- SUBSTR(FP.OUTCODE, -10, 10) AS SUSR3,
- FP.YYYYMMDD AS SUSR4,
- FP.BARCODE AS SUSR5,
- FP.SECURITYCODE AS SUSR9,
- TO_CHAR(FP.LOGID) AS SUSR20,
- FP.ID
- FROM TSAP_HEGII_FINISHEDPRODUCT FP
- WHERE FP.ZTYPE = 'S'
- AND FP.TOKUNCHUANFLAG = '0'
- AND FP.CREATETIME >= @DATEBEGIN@
- AND FP.CREATETIME < @DATEEND@
- ORDER BY FP.SAPFLBATCHNO,
- FP.OUTCODE ";
- }
- else
- {
- // 获取本次推送的数据(每次推送数据不超过200条)
- sql = @"
- SELECT T.*,
- ROWNUM
- FROM (SELECT FP.OUTCODE AS CODE,
- FP.SAPCODE AS SKU,
- NVL(FP.BANMA, FP.SAPFLBATCHNO) AS LPNNUM,
- FP.WORKCODE AS FACTORY,
- FP.ORDERCODE AS SALENUM,
- LPAD(FP.ORDERITEM, 6, '0') AS SALELINE,
- 1 AS QTY,
- FP.OUTCODE AS SUSR1,
- SUBSTR(FP.OUTCODE, -10, 10) AS SUSR3,
- FP.YYYYMMDD AS SUSR4,
- FP.BARCODE AS SUSR5,
- FP.SECURITYCODE AS SUSR9,
- TO_CHAR(FP.LOGID) AS SUSR20,
- FP.ID
- FROM TSAP_HEGII_FINISHEDPRODUCT FP
- WHERE FP.ZTYPE = 'S'
- AND FP.TOKUNCHUANFLAG = '0'
- AND FP.CREATETIME >= @DATEBEGIN@
- AND FP.CREATETIME < @DATEEND@
- ORDER BY FP.SAPFLBATCHNO,
- FP.OUTCODE ) T
- WHERE ROWNUM <= 200 ";
- }
- dtSyncFinishProduct = connSS.ExecuteDatatable(sql,
- new CDAParameter("DATEBEGIN", syncDate, DataType.Date),
- new CDAParameter("DATEEND", syncDate.AddDays(1), DataType.Date)
- );
- if (dtSyncFinishProduct.Rows.Count == 0)
- {
- return "本时段没有要推送的数据";
- }
- #endregion
- #region 向接口推送数据
- JObject jObject = null;
- JArray jArray = new JArray();
- foreach (DataRow row in dtSyncFinishProduct.Rows)
- {
- jObject = new JObject();
- jObject.Add(new JProperty("code", row["CODE"]));
- jObject.Add(new JProperty("sku", row["SKU"]));
- jObject.Add(new JProperty("lpnnum", row["LPNNUM"]));
- jObject.Add(new JProperty("factory", row["FACTORY"]));
- jObject.Add(new JProperty("saleNum", row["SALENUM"]));
- jObject.Add(new JProperty("saleLine", row["SALELINE"]));
- jObject.Add(new JProperty("qty", row["QTY"]));
- jObject.Add(new JProperty("susr1", row["SUSR1"]));
- jObject.Add(new JProperty("susr2", ""));
- jObject.Add(new JProperty("susr3", row["SUSR3"]));
- jObject.Add(new JProperty("susr4", row["SUSR4"]));
- jObject.Add(new JProperty("susr5", row["SUSR5"]));
- jObject.Add(new JProperty("susr6", ""));
- jObject.Add(new JProperty("susr7", ""));
- jObject.Add(new JProperty("susr8", ""));
- jObject.Add(new JProperty("susr9", row["SUSR9"]));
- jObject.Add(new JProperty("susr10", ""));
- jObject.Add(new JProperty("susr11", ""));
- jObject.Add(new JProperty("susr12", ""));
- jObject.Add(new JProperty("susr13", ""));
- jObject.Add(new JProperty("susr14", ""));
- jObject.Add(new JProperty("susr15", ""));
- jObject.Add(new JProperty("susr16", ""));
- jObject.Add(new JProperty("susr17", ""));
- jObject.Add(new JProperty("susr18", ""));
- jObject.Add(new JProperty("susr19", ""));
- jObject.Add(new JProperty("susr20", row["SUSR20"]));
- jArray.Add(jObject);
- }
- JObject data = new JObject();
- data.Add(new JProperty("data", jArray));
- string jsonPara = JsonConvert.SerializeObject(data);
- Curtain.Log.Logger.Info("三水_昆船同步开始:" + dtSyncFinishProduct.Rows.Count + "\n" + jsonPara);
- string returnJsonStr = PostToZhongTai(_urlPush, jsonPara);
- Curtain.Log.Logger.Info("三水_昆船同步结束:\n" + returnJsonStr);
- try
- {
- returnObj = JsonConvert.DeserializeObject<JObject>(returnJsonStr);
- if (returnObj.ContainsKey("message"))
- {
- message = returnObj["message"] + "";
- }
- }
- catch (Exception ex)
- {
- if (string.IsNullOrEmpty(returnJsonStr))
- {
- message = ex.Message;
- }
- else
- {
- message = returnJsonStr;
- }
- }
- #endregion
- #region 结果处理
- char tokunchuanftime = message.Equals("请求成功") ? '1' : '0';
- // 更新推送结果
- string barcodes = "(" + string.Join(",", dtSyncFinishProduct.AsEnumerable().Select(d => d.Field<decimal>("ID")).ToArray()) + ")";
- sqlUpdate = @"
- UPDATE TSAP_HEGII_FINISHEDPRODUCT
- SET TOKUNCHUANFLAG = @TOKUNCHUANFLAG@,
- KUNCHUANMSG = @KUNCHUANFMSG@,
- TOKUNCHUANTIME = SYSDATE
- WHERE ZTYPE = 'S'
- AND TOKUNCHUANFLAG = '0'
- AND ID IN " + barcodes;
- returnRows += connSS.ExecuteNonQuery(sqlUpdate,
- new CDAParameter("TOKUNCHUANFLAG", tokunchuanftime, DataType.Char),
- new CDAParameter("KUNCHUANFMSG", message, DataType.NVarChar)
- );
- #endregion
- }
- catch (Exception ex)
- {
- message = ex.Message;
- }
- }
- return message;
- }
- /// <summary>
- /// 同步产成品交接数据到恒洁中台_凤塘
- /// </summary>
- /// <param name="syncDate">同步日期</param>
- /// <param name="isPushTodayAllData">是否推送当天剩余所有数据</param>
- /// <returns></returns>
- public static string SyncFinishedProduct_cz2(DateTime syncDate, bool isPushTodayAllData)
- {
- int returnRows = 0;
- string sql = string.Empty;
- string sqlUpdate = string.Empty;
- // 本次推送的数据
- DataTable dtSyncFinishProduct = null;
- // 返回json
- JObject returnObj;
- // 推送结果
- string message = string.Empty;
- using (IDataAccess connCZ2 = DataAccess.CreateByString(DataBaseType.Oracle, _connStr_cz2))
- {
- try
- {
- #region 获取产成品交接数据
- // 是否推送当天剩余的所有数据
- if (isPushTodayAllData)
- {
- sql = @"
- SELECT FP.OUTCODE AS CODE,
- FP.SAPCODE AS SKU,
- NVL(FP.BANMA, FP.SAPFLBATCHNO) AS LPNNUM,
- FP.WORKCODE AS FACTORY,
- FP.ORDERCODE AS SALENUM,
- LPAD(FP.ORDERITEM, 6, '0') AS SALELINE,
- 1 AS QTY,
- FP.OUTCODE AS SUSR1,
- SUBSTR(FP.OUTCODE, -10, 10) AS SUSR3,
- FP.YYYYMMDD AS SUSR4,
- FP.BARCODE AS SUSR5,
- FP.SECURITYCODE AS SUSR9,
- TO_CHAR(FP.LOGID) AS SUSR20,
- FP.ID
- FROM TSAP_HEGII_FINISHEDPRODUCT FP
- WHERE FP.ZTYPE = 'S'
- AND FP.TOKUNCHUANFLAG = '0'
- AND FP.CREATETIME >= @DATEBEGIN@
- AND FP.CREATETIME < @DATEEND@
- ORDER BY FP.SAPFLBATCHNO,
- FP.OUTCODE ";
- }
- else
- {
- // 获取本次推送的数据(每次推送数据不超过200条)
- sql = @"
- SELECT T.*,
- ROWNUM
- FROM (SELECT FP.OUTCODE AS CODE,
- FP.SAPCODE AS SKU,
- NVL(FP.BANMA, FP.SAPFLBATCHNO) AS LPNNUM,
- FP.WORKCODE AS FACTORY,
- FP.ORDERCODE AS SALENUM,
- LPAD(FP.ORDERITEM, 6, '0') AS SALELINE,
- 1 AS QTY,
- FP.OUTCODE AS SUSR1,
- SUBSTR(FP.OUTCODE, -10, 10) AS SUSR3,
- FP.YYYYMMDD AS SUSR4,
- FP.BARCODE AS SUSR5,
- FP.SECURITYCODE AS SUSR9,
- TO_CHAR(FP.LOGID) AS SUSR20,
- FP.ID
- FROM TSAP_HEGII_FINISHEDPRODUCT FP
- WHERE FP.ZTYPE = 'S'
- AND FP.TOKUNCHUANFLAG = '0'
- AND FP.CREATETIME >= @DATEBEGIN@
- AND FP.CREATETIME < @DATEEND@
- ORDER BY FP.SAPFLBATCHNO,
- FP.OUTCODE ) T
- WHERE ROWNUM <= 200 ";
- }
- dtSyncFinishProduct = connCZ2.ExecuteDatatable(sql,
- new CDAParameter("DATEBEGIN", syncDate, DataType.Date),
- new CDAParameter("DATEEND", syncDate.AddDays(1), DataType.Date)
- );
- if (dtSyncFinishProduct.Rows.Count == 0)
- {
- return "本时段没有要推送的数据";
- }
- #endregion
- #region 向接口推送数据
- JObject jObject = null;
- JArray jArray = new JArray();
- foreach (DataRow row in dtSyncFinishProduct.Rows)
- {
- jObject = new JObject();
- jObject.Add(new JProperty("code", row["CODE"]));
- jObject.Add(new JProperty("sku", row["SKU"]));
- jObject.Add(new JProperty("lpnnum", row["LPNNUM"]));
- jObject.Add(new JProperty("factory", row["FACTORY"]));
- jObject.Add(new JProperty("saleNum", row["SALENUM"]));
- jObject.Add(new JProperty("saleLine", row["SALELINE"]));
- jObject.Add(new JProperty("qty", row["QTY"]));
- jObject.Add(new JProperty("susr1", row["SUSR1"]));
- jObject.Add(new JProperty("susr2", ""));
- jObject.Add(new JProperty("susr3", row["SUSR3"]));
- jObject.Add(new JProperty("susr4", row["SUSR4"]));
- jObject.Add(new JProperty("susr5", row["SUSR5"]));
- jObject.Add(new JProperty("susr6", ""));
- jObject.Add(new JProperty("susr7", ""));
- jObject.Add(new JProperty("susr8", ""));
- jObject.Add(new JProperty("susr9", row["SUSR9"]));
- jObject.Add(new JProperty("susr10", ""));
- jObject.Add(new JProperty("susr11", ""));
- jObject.Add(new JProperty("susr12", ""));
- jObject.Add(new JProperty("susr13", ""));
- jObject.Add(new JProperty("susr14", ""));
- jObject.Add(new JProperty("susr15", ""));
- jObject.Add(new JProperty("susr16", ""));
- jObject.Add(new JProperty("susr17", ""));
- jObject.Add(new JProperty("susr18", ""));
- jObject.Add(new JProperty("susr19", ""));
- jObject.Add(new JProperty("susr20", row["SUSR20"]));
- jArray.Add(jObject);
- }
- JObject data = new JObject();
- data.Add(new JProperty("data", jArray));
- string jsonPara = JsonConvert.SerializeObject(data);
- Curtain.Log.Logger.Info("凤塘_昆船同步开始:" + dtSyncFinishProduct.Rows.Count + "\n" + jsonPara);
- string returnJsonStr = PostToZhongTai(_urlPush, jsonPara);
- Curtain.Log.Logger.Info("凤塘_昆船同步结束:\n" + returnJsonStr);
- try
- {
- returnObj = JsonConvert.DeserializeObject<JObject>(returnJsonStr);
- if (returnObj.ContainsKey("message"))
- {
- message = returnObj["message"] + "";
- }
- }
- catch (Exception ex)
- {
- if (string.IsNullOrEmpty(returnJsonStr))
- {
- message = ex.Message;
- }
- else
- {
- message = returnJsonStr;
- }
- }
- #endregion
- #region 结果处理
- char tokunchuanftime = message.Equals("请求成功") ? '1' : '0';
- // 更新推送结果
- string barcodes = "(" + string.Join(",", dtSyncFinishProduct.AsEnumerable().Select(d => d.Field<decimal>("ID")).ToArray()) + ")";
- sqlUpdate = @"
- UPDATE TSAP_HEGII_FINISHEDPRODUCT
- SET TOKUNCHUANFLAG = @TOKUNCHUANFLAG@,
- KUNCHUANMSG = @KUNCHUANFMSG@,
- TOKUNCHUANTIME = SYSDATE
- WHERE ZTYPE = 'S'
- AND TOKUNCHUANFLAG = '0'
- AND ID IN " + barcodes;
- returnRows += connCZ2.ExecuteNonQuery(sqlUpdate,
- new CDAParameter("TOKUNCHUANFLAG", tokunchuanftime, DataType.Char),
- new CDAParameter("KUNCHUANFMSG", message, DataType.NVarChar)
- );
- #endregion
- }
- catch (Exception ex)
- {
- message = ex.Message;
- }
- }
- return message;
- }
- /// <summary>
- /// 同步产成品交接数据到恒洁中台_官塘
- /// </summary>
- /// <param name="syncDate">同步日期</param>
- /// <param name="isPushTodayAllData">是否推送当天剩余所有数据</param>
- /// <returns></returns>
- public static string SyncFinishedProduct_cz3(DateTime syncDate, bool isPushTodayAllData)
- {
- int returnRows = 0;
- string sql = string.Empty;
- string sqlUpdate = string.Empty;
- // 本次推送的数据
- DataTable dtSyncFinishProduct = null;
- // 返回json
- JObject returnObj;
- // 推送结果
- string message = string.Empty;
- using (IDataAccess connCZ3 = DataAccess.CreateByString(DataBaseType.Oracle, _connStr_cz3))
- {
- try
- {
- #region 获取产成品交接数据
- // 是否推送当天剩余的所有数据
- if (isPushTodayAllData)
- {
- sql = @"
- SELECT FP.OUTCODE AS CODE,
- FP.SAPCODE AS SKU,
- NVL(FP.BANMA, FP.SAPFLBATCHNO) AS LPNNUM,
- FP.WORKCODE AS FACTORY,
- FP.ORDERCODE AS SALENUM,
- LPAD(FP.ORDERITEM, 6, '0') AS SALELINE,
- 1 AS QTY,
- FP.OUTCODE AS SUSR1,
- SUBSTR(FP.OUTCODE, -10, 10) AS SUSR3,
- FP.YYYYMMDD AS SUSR4,
- FP.BARCODE AS SUSR5,
- FP.SECURITYCODE AS SUSR9,
- TO_CHAR(FP.LOGID) AS SUSR20,
- FP.ID
- FROM TSAP_HEGII_FINISHEDPRODUCT FP
- WHERE FP.ZTYPE = 'S'
- AND FP.TOKUNCHUANFLAG = '0'
- AND FP.CREATETIME >= @DATEBEGIN@
- AND FP.CREATETIME < @DATEEND@
- ORDER BY FP.SAPFLBATCHNO,
- FP.OUTCODE ";
- }
- else
- {
- // 获取本次推送的数据(每次推送数据不超过200条)
- sql = @"
- SELECT T.*,
- ROWNUM
- FROM (SELECT FP.OUTCODE AS CODE,
- FP.SAPCODE AS SKU,
- NVL(FP.BANMA, FP.SAPFLBATCHNO) AS LPNNUM,
- FP.WORKCODE AS FACTORY,
- FP.ORDERCODE AS SALENUM,
- LPAD(FP.ORDERITEM, 6, '0') AS SALELINE,
- 1 AS QTY,
- FP.OUTCODE AS SUSR1,
- SUBSTR(FP.OUTCODE, -10, 10) AS SUSR3,
- FP.YYYYMMDD AS SUSR4,
- FP.BARCODE AS SUSR5,
- FP.SECURITYCODE AS SUSR9,
- TO_CHAR(FP.LOGID) AS SUSR20,
- FP.ID
- FROM TSAP_HEGII_FINISHEDPRODUCT FP
- WHERE FP.ZTYPE = 'S'
- AND FP.TOKUNCHUANFLAG = '0'
- AND FP.CREATETIME >= @DATEBEGIN@
- AND FP.CREATETIME < @DATEEND@
- ORDER BY FP.SAPFLBATCHNO,
- FP.OUTCODE ) T
- WHERE ROWNUM <= 200 ";
- }
- dtSyncFinishProduct = connCZ3.ExecuteDatatable(sql,
- new CDAParameter("DATEBEGIN", syncDate, DataType.Date),
- new CDAParameter("DATEEND", syncDate.AddDays(1), DataType.Date)
- );
- if (dtSyncFinishProduct.Rows.Count == 0)
- {
- return "本时段没有要推送的数据";
- }
- #endregion
- #region 向接口推送数据
- JObject jObject = null;
- JArray jArray = new JArray();
- foreach (DataRow row in dtSyncFinishProduct.Rows)
- {
- jObject = new JObject();
- jObject.Add(new JProperty("code", row["CODE"]));
- jObject.Add(new JProperty("sku", row["SKU"]));
- jObject.Add(new JProperty("lpnnum", row["LPNNUM"]));
- jObject.Add(new JProperty("factory", row["FACTORY"]));
- jObject.Add(new JProperty("saleNum", row["SALENUM"]));
- jObject.Add(new JProperty("saleLine", row["SALELINE"]));
- jObject.Add(new JProperty("qty", row["QTY"]));
- jObject.Add(new JProperty("susr1", row["SUSR1"]));
- jObject.Add(new JProperty("susr2", ""));
- jObject.Add(new JProperty("susr3", row["SUSR3"]));
- jObject.Add(new JProperty("susr4", row["SUSR4"]));
- jObject.Add(new JProperty("susr5", row["SUSR5"]));
- jObject.Add(new JProperty("susr6", ""));
- jObject.Add(new JProperty("susr7", ""));
- jObject.Add(new JProperty("susr8", ""));
- jObject.Add(new JProperty("susr9", row["SUSR9"]));
- jObject.Add(new JProperty("susr10", ""));
- jObject.Add(new JProperty("susr11", ""));
- jObject.Add(new JProperty("susr12", ""));
- jObject.Add(new JProperty("susr13", ""));
- jObject.Add(new JProperty("susr14", ""));
- jObject.Add(new JProperty("susr15", ""));
- jObject.Add(new JProperty("susr16", ""));
- jObject.Add(new JProperty("susr17", ""));
- jObject.Add(new JProperty("susr18", ""));
- jObject.Add(new JProperty("susr19", ""));
- jObject.Add(new JProperty("susr20", row["SUSR20"]));
- jArray.Add(jObject);
- }
- JObject data = new JObject();
- data.Add(new JProperty("data", jArray));
- string jsonPara = JsonConvert.SerializeObject(data);
- Curtain.Log.Logger.Info("官塘_昆船同步开始:" + dtSyncFinishProduct.Rows.Count + "\n" + jsonPara);
- string returnJsonStr = PostToZhongTai(_urlPush, jsonPara);
- Curtain.Log.Logger.Info("官塘_昆船同步结束:\n" + returnJsonStr);
- try
- {
- returnObj = JsonConvert.DeserializeObject<JObject>(returnJsonStr);
- if (returnObj.ContainsKey("message"))
- {
- message = returnObj["message"] + "";
- }
- }
- catch (Exception ex)
- {
- if (string.IsNullOrEmpty(returnJsonStr))
- {
- message = ex.Message;
- }
- else
- {
- message = returnJsonStr;
- }
- }
- #endregion
- #region 结果处理
- char tokunchuanftime = message.Equals("请求成功") ? '1' : '0';
- // 更新推送结果
- string barcodes = "(" + string.Join(",", dtSyncFinishProduct.AsEnumerable().Select(d => d.Field<decimal>("ID")).ToArray()) + ")";
- sqlUpdate = @"
- UPDATE TSAP_HEGII_FINISHEDPRODUCT
- SET TOKUNCHUANFLAG = @TOKUNCHUANFLAG@,
- KUNCHUANMSG = @KUNCHUANFMSG@,
- TOKUNCHUANTIME = SYSDATE
- WHERE ZTYPE = 'S'
- AND TOKUNCHUANFLAG = '0'
- AND ID IN " + barcodes;
- returnRows += connCZ3.ExecuteNonQuery(sqlUpdate,
- new CDAParameter("TOKUNCHUANFLAG", tokunchuanftime, DataType.Char),
- new CDAParameter("KUNCHUANFMSG", message, DataType.NVarChar)
- );
- #endregion
- }
- catch (Exception ex)
- {
- message = ex.Message;
- }
- }
- return message;
- }
- /// <summary>
- /// 推送数据
- /// </summary>
- /// <param name="url"></param>
- /// <param name="data"></param>
- /// <param name="token"></param>
- /// <returns></returns>
- private static string PostToZhongTai(string url, string data)
- {
- try
- {
- //将单引号转义成双引号
- data = data.Replace("'", "\"");
- //创建Web访问对象
- HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);
- // 接口慢,设置30分钟超时等待
- myRequest.Timeout = 1800000;
- //把用户传过来的数据转成“UTF-8”的字节流
- byte[] buf = Encoding.GetEncoding("UTF-8").GetBytes(data);
- myRequest.Method = "POST";
- myRequest.ContentLength = buf.Length;
- myRequest.ContentType = "application/json;charset=UTF-8";
- //myRequest.MaximumAutomaticRedirections = 1;
- myRequest.AllowAutoRedirect = true;
- //string base64Header = Convert.ToBase64String(Encoding.UTF8.GetBytes(token));
- //发送请求
- Stream stream = myRequest.GetRequestStream();
- stream.Write(buf, 0, buf.Length);
- stream.Close();
- //获取接口返回值
- //通过Web访问对象获取响应内容
- HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
- //通过响应内容流创建StreamReader对象,因为StreamReader更高级更快
- StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
- //string returnXml = HttpUtility.UrlDecode(reader.ReadToEnd());//如果有编码问题就用这个方法
- string returnXml = reader.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾
- reader.Close();
- myResponse.Close();
- return returnXml;
- }
- catch (Exception ex)
- {
- return ex.Message;
- }
- }
- #endregion
- }
|