Form1.cs 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using Dongke.IBOSS.PRD.Basics.DataAccess;
  10. using Dongke.IBOSS.PRD.Service.SAPHegiiDataService;
  11. using Dongke.IBOSS.PRD.Service.SAPHegiiDataService.HGSAPDK_ZPPFM008;
  12. using Dongke.IBOSS.PRD.Service.SAPHegiiDataService.HGSAPDK_ZPPFM010;
  13. using Dongke.IBOSS.PRD.WCF.DataModels;
  14. using Oracle.ManagedDataAccess.Client;
  15. namespace SAPTest
  16. {
  17. public partial class Form1 : Form
  18. {
  19. public Form1()
  20. {
  21. InitializeComponent();
  22. DataManager.ConnectionString = string.Format(DataManager.ConnectionStringFormat,
  23. "172.19.22.61",
  24. "1521",
  25. "hgcz3",
  26. "hgcz3",
  27. "dongke"
  28. );
  29. }
  30. private void button1_Click(object sender, EventArgs e)
  31. {
  32. try
  33. {
  34. //开始时间
  35. string dateString = "2022-09-25 00:00:00";
  36. DateTime dt = DateTime.ParseExact(dateString, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.CurrentCulture);
  37. string dateString2 = "2022-10-02 13:00:00";
  38. //结束时间
  39. DateTime ndt = DateTime.ParseExact(dateString2, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.CurrentCulture);
  40. //跨车间
  41. //SAPDataLogic.CrossWorkshopToSAP_test(dt, ndt);
  42. //报工移库
  43. //SAPDataLogic.BGYKToSAP_TEST(dt, ndt);
  44. //报工
  45. //SAPDataLogic.SyncSap5000(ndt, "10");
  46. //SAPDataLogic.SyncSap5000(ndt, "20");
  47. //SAPDataLogic.SyncSap5000(ndt, "30");
  48. //SAPDataLogic.SyncSap5000(ndt, "40");
  49. //SAPDataLogic.SyncSap5000(ndt, "50");
  50. //SAPDataLogic.SyncSap5000(ndt, "60");
  51. //报工-60节点-暂废
  52. //string dateString60 = "2022-09-29 00:00:00";
  53. //DateTime dt60 = DateTime.ParseExact(dateString60, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.CurrentCulture);
  54. //SAPDataLogic.SyncSap5000_60_BSJ(dt60);
  55. // 记得换地址---正式--post中的密码
  56. //4号补数据专用
  57. //报工60节点
  58. //SAPDataLogic.SyncSap5000_test_jj(dt,"60", ndt);
  59. //跨车间
  60. //SAPDataLogic.CrossWorkshopToSAP(dt, ndt);
  61. MessageBox.Show("OK");
  62. }
  63. catch (Exception ex)
  64. {
  65. }
  66. }
  67. #region 手动调用同步SAP,补系统异常造成的SAP数据同步错误
  68. /// <summary>
  69. /// 撤销整板交接
  70. /// </summary>
  71. /// <param name="orderid"></param>
  72. /// <param name="dtData"></param>
  73. /// <param name="sUserInfo"></param>
  74. /// <returns></returns>
  75. public static ServiceResultEntity BackFinishedHandover()
  76. {
  77. ServiceResultEntity sre = new ServiceResultEntity();
  78. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  79. try
  80. {
  81. string sql = string.Empty;
  82. OracleParameter[] Paras = null;
  83. oracleTrConn.Connect();
  84. #region 同步SAP
  85. #region 取相关数据
  86. object isExists;
  87. string sqlString = string.Empty;
  88. OracleParameter[] oracleParameter = null;
  89. int r = 0;
  90. // 条码串
  91. //string fifter = " AND (bar.barcode = '";
  92. //foreach (DataRow row in dtData.Rows)
  93. //{
  94. // fifter += row["barcode"] + "' OR bar.barcode = '";
  95. //}
  96. //fifter = fifter.Substring(0, fifter.Length - 18) + ")";
  97. DateTime date = DateTime.Now;
  98. string yyyymmdd = date.ToString("yyyyMMdd");
  99. sqlString = "select workcode from tp_mst_account where rownum = 1";
  100. string workcode = oracleTrConn.GetSqlResultToStr(sqlString);
  101. //DateTime datebegin = date.Date;
  102. //DateTime dateend = date.Date.AddDays(1);
  103. sqlString =
  104. "SELECT :yyyymmdd AS yyyymmdd\n" +
  105. " ,SYSDATE AS createtime\n" +
  106. " ,tt.goodscode\n" +
  107. " ,tt.sapcode\n" +
  108. " ,tt.usercode\n" +
  109. " ,tt.ordercode\n" +
  110. " ,tt.orderitem\n" +
  111. " ,tt.zscs\n" +
  112. " ,to_char(tt.outputnum) AS outputnum\n" +
  113. " ,to_char(tt.recoverynum) AS recoverynum\n" +
  114. " FROM (SELECT t.goodscode\n" +
  115. " ,t.sapcode\n" +
  116. " ,t.usercode\n" +
  117. " ,t.ordercode\n" +
  118. " ,t.orderitem\n" +
  119. " ,t.zscs\n" +
  120. " ,0 - SUM(decode(t.recyclingflag, '1', 0, decode(t.datatype, 51, 1, -1))) outputnum\n" +
  121. " ,0 - SUM(decode(t.recyclingflag, '0', 0, decode(t.datatype, 51, 1, -1))) recoverynum\n" +
  122. " FROM (SELECT gh.goodscode\n" +
  123. " ,gh.sapcode\n" +
  124. " ,u.usercode\n" +
  125. " ,o.orderno\n" +
  126. " ,bar.recyclingflag\n" +
  127. " ,gh.datatype\n" +
  128. " ,'' zscs\n" +
  129. //" ,case when g.goods_line_type = 1 or gl.highpressureflag = '1' then 'G' else 'L' end zscs\n" +
  130. " ,CASE\n" +
  131. " WHEN o.orderid IS NULL\n" +
  132. " OR o.orderno LIKE 'HEGII%' THEN\n" +
  133. " ' '\n" +
  134. " WHEN instr(o.orderno, '/') = 0 THEN\n" +
  135. " to_char(o.orderno)\n" +
  136. " ELSE\n" +
  137. " to_char(substr(o.orderno, 1, instr(o.orderno, '/') - 1))\n" +
  138. " END ordercode -- 销售凭证\n" +
  139. " ,CASE\n" +
  140. " WHEN o.orderid IS NULL\n" +
  141. " OR o.orderno LIKE 'HEGII%'\n" +
  142. " OR instr(o.orderno, '/') = 0 THEN\n" +
  143. " '0'\n" +
  144. " WHEN instr(o.orderno, '#') = 0 THEN\n" +
  145. " to_char(substr(o.orderno, instr(o.orderno, '/') + 1))\n" +
  146. " ELSE\n" +
  147. " to_char(substr(o.orderno\n" +
  148. " ,instr(o.orderno, '/') + 1\n" +
  149. " ,instr(o.orderno, '#') - instr(o.orderno, '/') - 1))\n" +
  150. " END orderitem -- 销售凭证项目\n" +
  151. " FROM (SELECT gch.goodscode\n" +
  152. " ,gch.sapcode\n" +
  153. " ,decode(gch.datatype, 53, 51, gch.datatype) datatype\n" +
  154. " ,gch.userid\n" +
  155. " ,gch.groutingdailydetailid\n" +
  156. " ,gch.otherid\n" +
  157. " FROM tp_pm_goodschangehistory gch\n" +
  158. " WHERE gch.datatype IN (51, 53)\n" +
  159. //" WHERE gch.datatype IN (51, 52, 53)\n" +
  160. " UNION ALL\n" +
  161. " SELECT gch.goodscode\n" +
  162. " ,gch.sapcode\n" +
  163. " ,52 datatype\n" +
  164. " ,gch.userid\n" +
  165. " ,gch.groutingdailydetailid\n" +
  166. " ,gch.goodsidafter\n" +
  167. " FROM tp_pm_goodschangehistory gch\n" +
  168. " WHERE gch.datatype = 53) gh\n" +
  169. " INNER JOIN tp_mst_user u\n" +
  170. " ON u.userid = gh.userid\n" +
  171. " INNER JOIN tp_pm_groutingdailydetail bar\n" +
  172. " ON bar.groutingdailydetailid = gh.groutingdailydetailid\n" +
  173. @" AND (bar.barcode = '80000975390' OR bar.barcode = '80000988487' OR bar.barcode = '80000983841' OR bar.barcode = '80000975382' OR bar.barcode = '80000960940' OR bar.barcode = '80000885561' OR bar.barcode = '80000874073' OR bar.barcode = '80000785446' OR bar.barcode = '80000802029' OR bar.barcode = '80000983400' OR bar.barcode = '80000975368' OR bar.barcode = '80000895382' OR bar.barcode = '80000975395' OR bar.barcode = '80000988905' OR bar.barcode = '80000988481' OR bar.barcode = '80000874563' OR bar.barcode = '80000983091'
  174. or bar.barcode = '80000901455' OR bar.barcode = '80000942388' OR bar.barcode = '80000983531' OR bar.barcode = '80000942155' OR bar.barcode = '80000798305' OR bar.barcode = '80000808142' OR bar.barcode = '80000983516' OR bar.barcode = '80000983497' )
  175. " +
  176. " INNER JOIN tp_pc_groutingline gl\n" +
  177. " ON gl.groutinglineid = bar.groutinglineid\n" +
  178. " INNER JOIN tp_mst_goods g\n" +
  179. " ON g.goodsid = bar.goodsid\n" +
  180. " LEFT JOIN tp_pm_order o\n" +
  181. " ON o.orderid = gh.otherid) t\n" +
  182. " GROUP BY t.goodscode\n" +
  183. " ,t.sapcode\n" +
  184. " ,t.usercode\n" +
  185. " ,t.ordercode\n" +
  186. " ,t.orderitem,t.zscs) tt\n" +
  187. " WHERE tt.outputnum <> 0\n" +
  188. " OR tt.recoverynum <> 0\n" +
  189. " ORDER BY tt.goodscode\n" +
  190. " ,tt.sapcode\n" +
  191. " ,tt.usercode\n" +
  192. " ,tt.ordercode\n" +
  193. " ,tt.orderitem,tt.zscs";
  194. oracleParameter = new OracleParameter[]
  195. {
  196. new OracleParameter(":yyyymmdd", yyyymmdd)
  197. };
  198. DataTable workData = oracleTrConn.GetSqlResultToDt(sqlString, oracleParameter);
  199. string logid = oracleTrConn.GetSqlResultToStr("select SEQ_SAP_HEGII_DataLog_ID.Nextval from dual");
  200. string msg = $"整板撤销[{logid}]:80000901455,80000975390" ;
  201. sqlString = "insert into tsap_hegii_datalog\n" +
  202. " (LogID\n" +
  203. " ,LogType\n" +
  204. " ,BeginTime\n" +
  205. " ,YYYYMMDD\n" +
  206. " ,WorkCode\n" +
  207. " ,DataCode\n" +
  208. " ,DataStuts\n" +
  209. " ,DataMSG\n" +
  210. " ,CreateUserID\n" +
  211. " ,DataLogID)\n" +
  212. "values\n" +
  213. " (:LogID\n" +
  214. " ,'2'\n" +
  215. " ,sysdate\n" +
  216. " ,:YYYYMMDD\n" +
  217. " ,:WorkCode\n" +
  218. " ,'60'\n" +
  219. " ,'S'\n" +
  220. " ,:DataMSG\n" +
  221. " ,:CreateUserID\n" +
  222. " ,:LogID)";
  223. oracleParameter = new OracleParameter[]
  224. {
  225. new OracleParameter(":LogID",OracleDbType.Int32, logid, ParameterDirection.Input),
  226. new OracleParameter(":CreateUserID",OracleDbType.Int32, 4, ParameterDirection.Input),
  227. new OracleParameter(":YYYYMMDD",OracleDbType.Varchar2, yyyymmdd, ParameterDirection.Input),
  228. new OracleParameter(":WorkCode",OracleDbType.Varchar2, workcode, ParameterDirection.Input),
  229. new OracleParameter(":DataMSG",OracleDbType.Varchar2, msg, ParameterDirection.Input),
  230. };
  231. r = oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
  232. #endregion
  233. #region 同步条码明细(注销)
  234. sqlString =
  235. "select bar.yyyymmdd\n" +
  236. " ,bar.workcode\n" +
  237. " ,bar.barcode\n" +
  238. " ,bar.outcode\n" +
  239. " ,bar.goodscode\n" +
  240. " ,bar.sapcode\n" +
  241. " ,bar.sapflbatchno\n" +
  242. " ,bar.sapfhundoflag\n" +
  243. " ,bar.ordercode\n" +
  244. " ,bar.orderitem\n" +
  245. // 保留条码同步履历 2020-10-14 by chenxy ztype = 'S'
  246. //" from tsap_hegii_finishedproduct bar where 1 = 1" + fifter +
  247. " from tsap_hegii_finishedproduct bar where ztype = 'S' "
  248. +
  249. @" AND (bar.barcode = '80000975390' OR bar.barcode = '80000988487' OR bar.barcode = '80000983841' OR bar.barcode = '80000975382' OR bar.barcode = '80000960940' OR bar.barcode = '80000885561' OR bar.barcode = '80000874073' OR bar.barcode = '80000785446' OR bar.barcode = '80000802029' OR bar.barcode = '80000983400' OR bar.barcode = '80000975368' OR bar.barcode = '80000895382' OR bar.barcode = '80000975395' OR bar.barcode = '80000988905' OR bar.barcode = '80000988481' OR bar.barcode = '80000874563' OR bar.barcode = '80000983091'
  250. or bar.barcode = '80000901455' OR bar.barcode = '80000942388' OR bar.barcode = '80000983531' OR bar.barcode = '80000942155' OR bar.barcode = '80000798305' OR bar.barcode = '80000808142' OR bar.barcode = '80000983516' OR bar.barcode = '80000983497' )
  251. " +
  252. " order by bar.sapflbatchno, bar.barcode";
  253. DataTable fpData = oracleTrConn.GetSqlResultToDt(sqlString, oracleParameter);
  254. // 单次传输最大条数
  255. int maxCount = 100000;
  256. List<Zppfm010> sapParameterList = new List<Zppfm010>();
  257. if (fpData != null && fpData.Rows.Count > 0)
  258. {
  259. int index = 0;
  260. //Zppfm010 sapParameter = new Zppfm010();
  261. //sapParameter.Zsum = maxCount;
  262. //sapParameter.TableIn = new Zspp110[sapParameter.Zsum];
  263. List<ZSPP110> tableInList = new List<ZSPP110>();
  264. foreach (DataRow item in fpData.Rows)
  265. {
  266. if (index >= maxCount)
  267. {
  268. Zppfm010 sapItem = new Zppfm010();
  269. sapItem.ZSUM = tableInList.Count;
  270. sapItem.TABLE_IN = tableInList.ToArray();
  271. sapParameterList.Add(sapItem);
  272. index = 0;
  273. tableInList.Clear();
  274. }
  275. ZSPP110 info110 = new ZSPP110();
  276. // 时间戳
  277. info110.ZSCNU = yyyymmdd;
  278. // 工厂
  279. info110.WERKS = workcode;
  280. // 生产条码
  281. info110.ZSCTM = item["barcode"].ToString();
  282. // 包装条码
  283. info110.ZBZTM = item["outcode"].ToString();
  284. // 产品编码
  285. info110.ZCPBM = item["goodscode"].ToString();
  286. // 物料编号
  287. info110.MATNR = item["sapcode"].ToString();
  288. // 包装整板标识
  289. info110.ZBZBS = item["sapflbatchno"].ToString();
  290. // 重新绑定标识
  291. info110.ZCXBD = "X";
  292. // 销售凭证
  293. info110.KDAUF = item["ordercode"].ToString();
  294. // 销售凭证项目
  295. info110.KDPOS = item["orderitem"].ToString();
  296. info110.UZEIT = date.ToString("HH:mm:ss");
  297. info110.ZCODEN = "";
  298. info110.ZCODEYZM = "";
  299. //if (info110.WERKS == "5011" && info110.ZCPBM == "K047L")
  300. //{
  301. // continue;
  302. //}
  303. tableInList.Add(info110);
  304. index++;
  305. }
  306. Zppfm010 sapParameter010 = new Zppfm010();
  307. sapParameter010.ZSUM = tableInList.Count;
  308. sapParameter010.TABLE_IN = tableInList.ToArray();
  309. sapParameterList.Add(sapParameter010);
  310. index = 0;
  311. tableInList.Clear();
  312. }
  313. else
  314. {
  315. Zppfm010 sapParameter010 = new Zppfm010();
  316. sapParameter010.ZSUM = 0;
  317. sapParameter010.TABLE_IN = new ZSPP110[sapParameter010.ZSUM];
  318. sapParameterList.Add(sapParameter010);
  319. }
  320. foreach (Zppfm010 sapParameter010 in sapParameterList)
  321. {
  322. ZPPFM010Response result010 = SAPDataLogic.HGSAPDK_ZPPFM010(sapParameter010, yyyymmdd);
  323. //sre.Message = result010.ZMSG;
  324. sre.Message = $"{result010.ZMSG}({sapParameter010.ZSUM})";
  325. sre.Result = result010.ZTYPE;
  326. if (result010.TABLE_OUT != null && result010.TABLE_OUT.Length > 0)
  327. {
  328. // 保留条码同步履历 2020-10-14 by chenxy ztype = 'S'
  329. //sqlString = "update tsap_hegii_finishedproduct t set t.ZTime =sysdate, ZTYPE = nvl(:ZTYPE,'S'), ZMSG = :ZMSG where barcode=:barcode and sapflbatchno=:sapflbatchno";
  330. sqlString = "update tsap_hegii_finishedproduct t set t.ZTime =sysdate, ZTYPE = 'D', ZMSG = :ZMSG where barcode=:barcode and ztype = 'S' and sapflbatchno=:sapflbatchno";
  331. foreach (ZSPP110 item in result010.TABLE_OUT)
  332. {
  333. oracleParameter = new OracleParameter[]
  334. {
  335. new OracleParameter(":ZTYPE",OracleDbType.Varchar2, item.ZTYPE, ParameterDirection.Input),
  336. new OracleParameter(":ZMSG",OracleDbType.Varchar2, item.ZMSG, ParameterDirection.Input),
  337. new OracleParameter(":barcode",OracleDbType.Varchar2, item.ZSCTM, ParameterDirection.Input),
  338. new OracleParameter(":sapflbatchno",OracleDbType.Varchar2, item.ZBZBS, ParameterDirection.Input),
  339. };
  340. r = oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
  341. }
  342. }
  343. if (result010.ZTYPE != "S")
  344. {
  345. sre.Result = -2;
  346. sre.Message = "同步条码失败," + result010.ZMSG;
  347. return sre;
  348. }
  349. }
  350. // 删除已同步条码
  351. // 保留条码同步履历 2020-10-14 by chenxy ztype = 'S'
  352. //sql = "Delete from tsap_hegii_finishedproduct bar where 1 = 1" + fifter;
  353. //r = oracleTrConn.ExecuteNonQuery(sql);
  354. #endregion
  355. #region 同步产量
  356. // 潮州 暂时不同步产量 2020-10-25 chenxy
  357. Zppfm008 sapParameter = new Zppfm008();
  358. if (workData != null && workData.Rows.Count > 0)
  359. {
  360. sapParameter.ZSUM = workData.Rows.Count;
  361. sapParameter.TABLE_IN = new ZSPP100[sapParameter.ZSUM];
  362. sqlString = "insert into TSAP_HEGII_WorkData\n" +
  363. " (YYYYMMDD\n" +
  364. " ,WorkCode\n" +
  365. " ,DataCode\n" +
  366. " ,GoodsCode\n" +
  367. " ,SAPCode\n" +
  368. " ,UserCode\n" +
  369. " ,OutputNum\n" +
  370. " ,RECOVERYNUM\n" +
  371. " ,ORDERCODE\n" +
  372. " ,ORDERITEM\n" +
  373. " ,zscs\n" +
  374. " ,LogID,createtime)\n" +
  375. "values\n" +
  376. " ('" + yyyymmdd + "'\n" +
  377. " ,'" + workcode + "'\n" +
  378. " ,'60'\n" +
  379. " ,:GoodsCode\n" +
  380. " ,:SAPCode\n" +
  381. " ,:UserCode\n" +
  382. " ,:OutputNum\n" +
  383. " ,:RECOVERYNUM\n" +
  384. " ,:ORDERCODE\n" +
  385. " ,:ORDERITEM\n" +
  386. " ,:zscs\n" +
  387. " ," + logid + ",:createtime)";
  388. int index = 0;
  389. DateTime now = DateTime.Now;
  390. foreach (DataRow item in workData.Rows)
  391. {
  392. ZSPP100 info100 = new ZSPP100();
  393. // 工厂
  394. info100.WERKS = workcode;
  395. // 型号
  396. info100.GROES = item["GoodsCode"].ToString();
  397. // 物料编号
  398. info100.MATNR = item["SAPCode"].ToString();
  399. // 生产工号
  400. info100.ZGHNU = item["UserCode"].ToString();
  401. // 数据节点
  402. info100.ZJDNU = "60";
  403. // 时间戳
  404. info100.ZSCNU = yyyymmdd;
  405. // 销售凭证
  406. info100.VBELN = item["ORDERCODE"].ToString().Trim();
  407. // 销售凭证项目
  408. info100.POSNR = item["ORDERITEM"].ToString();
  409. // 产量
  410. info100.ZCLNG = item["OutputNum"].ToString();
  411. // 损坯
  412. info100.ZSPNG = "0";
  413. // 清除
  414. info100.ZQCNG = "0";
  415. // 回收
  416. info100.ZHSNG = item["RECOVERYNUM"].ToString();
  417. // 干补
  418. info100.ZGBNG = "0";
  419. // 注浆类型 G高压 L普通
  420. info100.ZSCS = item["ZSCS"].ToString();
  421. info100.ZKSSJ = now.ToString("HHmmss");
  422. info100.ZJSRQ = Convert.ToDecimal(now.ToString("yyyyMMddHHmmss"));
  423. oracleParameter = new OracleParameter[]
  424. {
  425. new OracleParameter(":GoodsCode",OracleDbType.Varchar2, item["GoodsCode"], ParameterDirection.Input),
  426. new OracleParameter(":SAPCode",OracleDbType.Varchar2, item["SAPCode"], ParameterDirection.Input),
  427. new OracleParameter(":UserCode",OracleDbType.Varchar2, item["UserCode"], ParameterDirection.Input),
  428. new OracleParameter(":OutputNum",OracleDbType.Varchar2, item["OutputNum"], ParameterDirection.Input),
  429. new OracleParameter(":RECOVERYNUM",OracleDbType.Varchar2, item["RECOVERYNUM"], ParameterDirection.Input),
  430. new OracleParameter(":ORDERCODE",OracleDbType.Varchar2, item["ORDERCODE"], ParameterDirection.Input),
  431. new OracleParameter(":ORDERITEM",OracleDbType.Varchar2, item["ORDERITEM"], ParameterDirection.Input),
  432. new OracleParameter(":ZSCS",OracleDbType.Varchar2, item["ZSCS"], ParameterDirection.Input),
  433. new OracleParameter(":createtime",OracleDbType.Date, item["createtime"], ParameterDirection.Input),
  434. };
  435. r = oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
  436. sapParameter.TABLE_IN[index++] = info100;
  437. }
  438. }
  439. else
  440. {
  441. sapParameter.ZSUM = 0;
  442. sapParameter.TABLE_IN = new ZSPP100[sapParameter.ZSUM];
  443. }
  444. ZPPFM008Response result = SAPDataLogic.HGSAPDK_ZPPFM008(sapParameter, yyyymmdd, "60");
  445. //if (result.Ztype == "E")
  446. //{
  447. // sqlString = "update tsap_hegii_datalog t set t.EndTime = sysdate, DataStuts = 'E', DataMSG = DataMSG||:msg where logid = :logid";
  448. // oracleParameter = new OracleParameter[]
  449. // {
  450. // new OracleParameter(":msg",OracleDbType.Varchar2, result.Zmsg, ParameterDirection.Input),
  451. // new OracleParameter(":logid",OracleDbType.Int32, logid, ParameterDirection.Input),
  452. // };
  453. // r = oracleConn.ExecuteNonQuery(sqlString, oracleParameter);
  454. //}
  455. //else
  456. if (result.TABLE_OUT != null && result.TABLE_OUT.Length > 0)
  457. {
  458. sqlString = "update TSAP_HEGII_WorkData t set t.ZTime =sysdate, ZTYPE = :ZTYPE, ZMSG = :ZMSG where logid = " + logid +
  459. " \n and YYYYMMDD='" + yyyymmdd + "' and WorkCode='" + workcode +
  460. "' and DataCode='60' and GoodsCode=:GoodsCode and SAPCode=:SAPCode and UserCode=:UserCode \n" +
  461. "and OrderCode=:OrderCode and OrderItem=:OrderItem";
  462. foreach (ZSPP100 item in result.TABLE_OUT)
  463. {
  464. string posnr = item.POSNR.TrimStart('0');
  465. oracleParameter = new OracleParameter[]
  466. {
  467. new OracleParameter(":ZTYPE",OracleDbType.Varchar2, item.ZTYPE, ParameterDirection.Input),
  468. new OracleParameter(":ZMSG",OracleDbType.Varchar2, item.ZMSG, ParameterDirection.Input),
  469. new OracleParameter(":GoodsCode",OracleDbType.Varchar2, item.GROES, ParameterDirection.Input),
  470. new OracleParameter(":SAPCode",OracleDbType.Varchar2, item.MATNR, ParameterDirection.Input),
  471. new OracleParameter(":UserCode",OracleDbType.Varchar2, item.ZGHNU, ParameterDirection.Input),
  472. new OracleParameter(":OrderCode",OracleDbType.Varchar2, (string.IsNullOrEmpty(item.VBELN) ? " " : item.VBELN), ParameterDirection.Input),
  473. new OracleParameter(":OrderItem",OracleDbType.Varchar2, (string.IsNullOrEmpty(posnr) ? "0" : posnr), ParameterDirection.Input),
  474. };
  475. r = oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
  476. }
  477. //:msg||chr(13)||DataMSG
  478. result.ZMSG = $"{result.ZMSG}({sapParameter.ZSUM})";
  479. sqlString = "update tsap_hegii_datalog t set t.EndTime = sysdate, DataStuts = :DataStuts, DataMSG =nvl2(:msg,:msg||' '||chr(13)||DataMSG,DataMSG) where logid = :logid";
  480. oracleParameter = new OracleParameter[]
  481. {
  482. new OracleParameter(":DataStuts",OracleDbType.Varchar2, result.ZTYPE, ParameterDirection.Input),
  483. new OracleParameter(":msg",OracleDbType.Varchar2, result.ZMSG, ParameterDirection.Input),
  484. new OracleParameter(":logid",OracleDbType.Int32, logid, ParameterDirection.Input),
  485. };
  486. r = oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
  487. }
  488. if (result.ZTYPE != "S")
  489. {
  490. sre.Result = -2;
  491. sre.Message = "同步产量失败," + result.ZMSG;
  492. return sre;
  493. }
  494. //sqlString =
  495. //"UPDATE tp_pm_groutingdailydetail bar\n" +
  496. //" SET bar.issync = NULL\n" +
  497. //" WHERE 1 = 1" + fifter;
  498. //r = oracleTrConn.ExecuteNonQuery(sqlString);
  499. //*/
  500. #endregion
  501. #endregion
  502. sre.Result = 1;
  503. oracleTrConn.Commit();
  504. oracleTrConn.Disconnect();
  505. return sre;
  506. }
  507. catch (Exception ex)
  508. {
  509. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  510. {
  511. oracleTrConn.Rollback();
  512. oracleTrConn.Disconnect();
  513. }
  514. throw ex;
  515. }
  516. finally
  517. {
  518. if (oracleTrConn.ConnState == ConnectionState.Open)
  519. {
  520. oracleTrConn.Disconnect();
  521. }
  522. }
  523. }
  524. #endregion
  525. }
  526. }