SAPDataLogicPartial.cs 96 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094
  1. 
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using System.IO;
  6. using System.Linq;
  7. using System.Net;
  8. using System.Reflection;
  9. using System.Text;
  10. using System.Threading;
  11. using Dongke.IBOSS.PRD.Basics.BaseResources;
  12. using Dongke.IBOSS.PRD.Basics.DataAccess;
  13. using Dongke.IBOSS.PRD.Basics.Library;
  14. using Dongke.IBOSS.PRD.Service.WMSDataService;
  15. using Dongke.IBOSS.PRD.WCF.DataModels;
  16. using Newtonsoft.Json.Linq;
  17. using Oracle.ManagedDataAccess.Client;
  18. namespace Dongke.IBOSS.PRD.Service.SAPHegiiDataService
  19. {
  20. public partial class SAPDataLogic
  21. {
  22. #region 报工
  23. /// <summary>
  24. /// 同步SAP数据(自动)(重载)
  25. /// </summary>
  26. /// <param name="date">当前时间</param>
  27. /// <param name="funCode">工序码</param>
  28. /// <param name="ndate">本次要执行到的时间</param>
  29. public static void AutoWorkDataToSAP5000(string funCode, DateTime ndate)
  30. {
  31. if (string.IsNullOrWhiteSpace(funCode))
  32. {
  33. //return;
  34. funCode = "ALL";
  35. }
  36. funCode = "," + funCode + ",";
  37. ServiceResultEntity sre = null;
  38. // 10 模具
  39. if (funCode == ",ALL," || funCode.Contains(",10,"))
  40. {
  41. try
  42. {
  43. sre = SetWorkData10_50_5000("10", ndate);
  44. if (sre.Status != Constant.ServiceResultStatus.Success ||
  45. "S" != sre.Result + "")
  46. {
  47. OutputLog.TraceLog(LogPriority.Warning,
  48. "AutoWorkDataToSAP5000",
  49. "10 模具 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  50. JsonHelper.ToJson(sre),
  51. LocalPath.LogExePath + "SAP_HEGII\\Warn_");
  52. }
  53. }
  54. catch (Exception ex)
  55. {
  56. OutputLog.TraceLog(LogPriority.Error,
  57. "AutoWorkDataToSAP5000",
  58. "10 模具 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  59. ex.ToString(),
  60. LocalPath.LogExePath + "SAP_HEGII\\Error_");
  61. }
  62. }
  63. // 20 湿坯
  64. if (funCode == ",ALL," || funCode.Contains(",20,"))
  65. {
  66. try
  67. {
  68. sre = SetWorkData10_50_5000("20", ndate);
  69. if (sre.Status != Constant.ServiceResultStatus.Success ||
  70. "S" != sre.Result + "")
  71. {
  72. OutputLog.TraceLog(LogPriority.Warning,
  73. "AutoWorkDataToSAP5000",
  74. "20 湿坯 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  75. JsonHelper.ToJson(sre),
  76. LocalPath.LogExePath + "SAP_HEGII\\Warn_");
  77. }
  78. }
  79. catch (Exception ex)
  80. {
  81. OutputLog.TraceLog(LogPriority.Error,
  82. "AutoWorkDataToSAP5000",
  83. "20 湿坯 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  84. ex.ToString(),
  85. LocalPath.LogExePath + "SAP_HEGII\\Error_");
  86. }
  87. }
  88. // 30 精坯
  89. if (funCode == ",ALL," || funCode.Contains(",30,"))
  90. {
  91. try
  92. {
  93. sre = SetWorkData10_50_5000("30", ndate);
  94. if (sre.Status != Constant.ServiceResultStatus.Success ||
  95. "S" != sre.Result + "")
  96. {
  97. OutputLog.TraceLog(LogPriority.Warning,
  98. "AutoWorkDataToSAP5000",
  99. "30 精坯 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  100. JsonHelper.ToJson(sre),
  101. LocalPath.LogExePath + "SAP_HEGII\\Warn_");
  102. }
  103. }
  104. catch (Exception ex)
  105. {
  106. OutputLog.TraceLog(LogPriority.Error,
  107. "AutoWorkDataToSAP5000",
  108. "30 精坯 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  109. ex.ToString(),
  110. LocalPath.LogExePath + "SAP_HEGII\\Error_");
  111. }
  112. }
  113. // 40 釉坯
  114. if (funCode == ",ALL," || funCode.Contains(",40,"))
  115. {
  116. try
  117. {
  118. sre = SetWorkData10_50_5000("40", ndate);
  119. if (sre.Status != Constant.ServiceResultStatus.Success ||
  120. "S" != sre.Result + "")
  121. {
  122. OutputLog.TraceLog(LogPriority.Warning,
  123. "AutoWorkDataToSAP5000",
  124. "40 釉坯 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  125. JsonHelper.ToJson(sre),
  126. LocalPath.LogExePath + "SAP_HEGII\\Warn_");
  127. }
  128. }
  129. catch (Exception ex)
  130. {
  131. OutputLog.TraceLog(LogPriority.Error,
  132. "AutoWorkDataToSAP5000",
  133. "40 釉坯 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  134. ex.ToString(),
  135. LocalPath.LogExePath + "SAP_HEGII\\Error_");
  136. }
  137. }
  138. // 50 烧成
  139. if (funCode == ",ALL," || funCode.Contains(",50,"))
  140. {
  141. try
  142. {
  143. sre = SetWorkData10_50_5000("50", ndate);
  144. if (sre.Status != Constant.ServiceResultStatus.Success ||
  145. "S" != sre.Result + "")
  146. {
  147. OutputLog.TraceLog(LogPriority.Warning,
  148. "AutoWorkDataToSAP5000",
  149. "50 烧成 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  150. JsonHelper.ToJson(sre),
  151. LocalPath.LogExePath + "SAP_HEGII\\Warn_");
  152. }
  153. }
  154. catch (Exception ex)
  155. {
  156. OutputLog.TraceLog(LogPriority.Error,
  157. "AutoWorkDataToSAP5000",
  158. "50 烧成 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  159. ex.ToString(),
  160. LocalPath.LogExePath + "SAP_HEGII\\Error_");
  161. }
  162. }
  163. // 55 裸辞包装
  164. if (funCode == ",ALL," || funCode.Contains(",55,"))
  165. {
  166. try
  167. {
  168. sre = SetWorkData10_50_5000("55", ndate);
  169. if (sre.Status != Constant.ServiceResultStatus.Success ||
  170. "S" != sre.Result + "")
  171. {
  172. OutputLog.TraceLog(LogPriority.Warning,
  173. "AutoWorkDataToSAP5000",
  174. "55 裸辞包装 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  175. JsonHelper.ToJson(sre),
  176. LocalPath.LogExePath + "SAP_HEGII\\Warn_");
  177. }
  178. }
  179. catch (Exception ex)
  180. {
  181. OutputLog.TraceLog(LogPriority.Error,
  182. "AutoWorkDataToSAP5000",
  183. "55 裸辞包装" + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  184. ex.ToString(),
  185. LocalPath.LogExePath + "SAP_HEGII\\Error_");
  186. }
  187. }
  188. // 60 产成品
  189. if (funCode == ",ALL," || funCode.Contains(",60,"))
  190. {
  191. try
  192. {
  193. sre = SyncSap5000_60(ndate);
  194. if (sre.Status != Constant.ServiceResultStatus.Success ||
  195. "S" != sre.Result + "")
  196. {
  197. OutputLog.TraceLog(LogPriority.Warning,
  198. "AutoWorkDataToSAP5000",
  199. "60 产成品 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  200. JsonHelper.ToJson(sre),
  201. LocalPath.LogExePath + "SAP_HEGII\\Warn_");
  202. }
  203. }
  204. catch (Exception ex)
  205. {
  206. OutputLog.TraceLog(LogPriority.Error,
  207. "AutoWorkDataToSAP5000",
  208. "60 产成品 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  209. ex.ToString(),
  210. LocalPath.LogExePath + "SAP_HEGII\\Error_");
  211. }
  212. }
  213. }
  214. /// <summary>
  215. /// 执行与推送
  216. /// </summary>
  217. /// <param name="datacode"></param>
  218. /// <param name="ndate"></param>
  219. /// <returns></returns>
  220. public static ServiceResultEntity SetWorkData10_50_5000(string datacode, DateTime ndate)
  221. {
  222. ServiceResultEntity sre = new ServiceResultEntity();
  223. IDBTransaction oracleConn = null;
  224. try
  225. {
  226. #region 事务1,执行存储过程
  227. OracleParameter[] paras = null;
  228. int logid = 0;
  229. string message = string.Empty;
  230. // 10 模具
  231. if ("10".Equals(datacode))
  232. {
  233. paras = new OracleParameter[]
  234. {
  235. new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
  236. new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
  237. new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
  238. };
  239. oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  240. DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BG10", paras);
  241. int.TryParse(paras[1].Value + "", out logid);
  242. message = paras[2].Value + "";
  243. oracleConn.Commit();
  244. }
  245. // 20 湿坯
  246. else if ("20".Equals(datacode))
  247. {
  248. paras = new OracleParameter[]
  249. {
  250. new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
  251. new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
  252. new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
  253. };
  254. oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  255. DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BG20", paras);
  256. int.TryParse(paras[1].Value + "", out logid);
  257. message = paras[2].Value + "";
  258. oracleConn.Commit();
  259. }
  260. // 30 精坯、40 釉坯、50 烧成
  261. else if ("30".Equals(datacode) || "40".Equals(datacode) || "50".Equals(datacode))
  262. {
  263. paras = new OracleParameter[]
  264. {
  265. new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
  266. new OracleParameter("in_datacode", OracleDbType.Varchar2, datacode, ParameterDirection.Input),
  267. new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
  268. new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
  269. };
  270. oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  271. DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BG", paras);
  272. int.TryParse(paras[2].Value + "", out logid);
  273. message = paras[3].Value + "";
  274. oracleConn.Commit();
  275. }
  276. // 55 裸瓷包装
  277. else if ("55".Equals(datacode))
  278. {
  279. paras = new OracleParameter[]
  280. {
  281. new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
  282. new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
  283. new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
  284. };
  285. oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  286. DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BG55", paras);
  287. int.TryParse(paras[1].Value + "", out logid);
  288. message = paras[2].Value + "";
  289. oracleConn.Commit();
  290. }
  291. // 如果logid为0,则数据没有生成
  292. if (logid == 0)
  293. {
  294. sre.Status = Constant.ServiceResultStatus.Other;
  295. sre.Message = message;
  296. return sre;
  297. }
  298. #endregion
  299. // 事物2,同步SAP接口
  300. string sqlString = "select SAP_INI_BG from TP_SYS_SAPCONFIG";
  301. string SAP_ING_NEW = oracleConn.GetSqlResultToStr(sqlString);
  302. if (SAP_ING_NEW == "1")
  303. {
  304. sre = SyncSap5000(ndate, datacode);
  305. }
  306. return sre;
  307. }
  308. catch (Exception ex)
  309. {
  310. throw ex;
  311. }
  312. finally
  313. {
  314. if (oracleConn != null &&
  315. oracleConn.ConnState == ConnectionState.Open)
  316. {
  317. oracleConn.Disconnect();
  318. }
  319. }
  320. }
  321. /// <summary>
  322. /// 同步SAP接口5000端口新
  323. /// </summary>
  324. /// <param name="date"></param>
  325. /// <param name="datacode"></param>
  326. /// <param name="userid"></param>
  327. /// <param name="logid"></param>
  328. /// <returns></returns>
  329. public static ServiceResultEntity SyncSap5000(DateTime date, string datacode)
  330. {
  331. ServiceResultEntity sre = new ServiceResultEntity();
  332. IDBTransaction oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  333. try
  334. {
  335. OracleParameter[] paras = null;
  336. int r = 0;
  337. // 查询当前节点所有不为S的日志
  338. string sqlString = @"
  339. SELECT DL.LOGID
  340. FROM TSAP_HEGII_DATALOG_BG DL
  341. WHERE 1 = 1
  342. AND DL.DATASTUTS = 'F'
  343. AND DL.LOGID > 6
  344. AND DL.DATACODE = :DATACODE ";
  345. paras = new OracleParameter[]
  346. {
  347. new OracleParameter(":DATACODE", datacode),
  348. };
  349. DataTable dtLogID = oracleConn.GetSqlResultToDt(sqlString, paras);
  350. string logIDs = "," + string.Join(",", dtLogID.AsEnumerable().Select(d => d.Field<decimal>("LOGID")).ToArray()) + ",";
  351. sqlString = @"
  352. SELECT TO_CHAR(WD.YYYYMMDD) YYYYMMDD,
  353. WD.WORKCODE AS WERKS,
  354. TO_CHAR(WD.GOODSCODE) GROES,
  355. TO_CHAR(WD.SAPCODE) MATNR,
  356. TO_CHAR(WD.USERCODE) ZGHNU,
  357. TO_CHAR(WD.DATACODE) ZJDNU,
  358. TO_CHAR(WD.YYYYMMDD) ZSCNU,
  359. TO_CHAR(DL.EXECUTEDATEBEGIN, 'HH24MISS') ZKSSJ,
  360. TO_CHAR(DL.EXECUTEDATEEND, 'YYYYMMDDHH24MISS') ZJSRQ,
  361. TO_CHAR(WD.ORDERCODE) VBELN,
  362. TO_CHAR(WD.ORDERITEM) POSNR,
  363. TO_CHAR(WD.OUTPUTNUM) ZCLNG,
  364. TO_CHAR(WD.SCRAPNUM) ZSPNG,
  365. TO_CHAR(WD.CLEANUPNUM) ZQCNG,
  366. TO_CHAR(WD.RECOVERYNUM) ZHSNG,
  367. TO_CHAR(WD.REPAIRNUM) ZGBNG,
  368. TO_CHAR(WD.TESTMOULDFLAG) ZSCMS,
  369. DECODE(:DATACODE, 20, TO_CHAR(WD.ZSCS), 'T') AS ZSCS,
  370. TO_CHAR(WD.WORKSHOP) ZSCCJ,
  371. WD.CHARG,
  372. TO_CHAR(:DATACODE) DATACODE,
  373. WD.WORKCODE || WD.CHARG || LPAD(DL.LOGID, 10,'0') AS ZID
  374. FROM TSAP_HEGII_WORKDATA_BG WD
  375. INNER JOIN TSAP_HEGII_DATALOG_BG DL
  376. ON WD.LOGID = DL.LOGID
  377. WHERE INSTR(:LOGIDS, ',' || WD.LOGID || ',') > 0 ";
  378. paras = new OracleParameter[]
  379. {
  380. new OracleParameter(":DATACODE", datacode),
  381. new OracleParameter(":LOGIDS", OracleDbType.Varchar2, logIDs, ParameterDirection.Input),
  382. };
  383. DataTable workData = oracleConn.GetSqlResultToDt(sqlString, paras);
  384. int num = workData.Rows.Count;
  385. // 调用SAP接口
  386. string postString = "{\"ZSUM\":" + num.ToString() + ",\"TABLE_IN\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<BGToSAP>.ConvertToModel(workData)) + "}}";
  387. INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
  388. // 配置文件
  389. string url030 = ini.ReadIniData("SAP_NEW_INFO", "Url030");
  390. // 测试
  391. // string url030 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM030";
  392. // 正式
  393. //string url030 = "http://hgs4powd1.hegii.com:8000/RESTAdapter/DKMES/ZPPFM030";
  394. string result = PostData(url030, postString, "POST");
  395. sqlString = @"
  396. UPDATE TSAP_HEGII_DATALOG_BG T
  397. SET T.ENDTIME = SYSDATE,
  398. DATASTUTS = :DATASTUTS,
  399. DATAMSG = :MSG
  400. WHERE INSTR(:LOGIDS, ',' || LOGID || ',') > 0 ";
  401. paras = new OracleParameter[]
  402. {
  403. new OracleParameter(":DATASTUTS",OracleDbType.Varchar2, JObject.Parse(result)["ZTYPE"].ToString(), ParameterDirection.Input),
  404. new OracleParameter(":MSG",OracleDbType.Varchar2, JObject.Parse(result)["ZMSG"].ToString(), ParameterDirection.Input),
  405. new OracleParameter(":LOGIDS", OracleDbType.Varchar2, logIDs, ParameterDirection.Input),
  406. };
  407. r = oracleConn.ExecuteNonQuery(sqlString, paras);
  408. oracleConn.Commit();
  409. sre.Message = JObject.Parse(result)["ZMSG"].ToString();
  410. sre.Result = JObject.Parse(result)["ZTYPE"].ToString();
  411. return sre;
  412. }
  413. catch (Exception ex)
  414. {
  415. OutputLog.TraceLog(LogPriority.Error,
  416. "BGToSAP",
  417. "报工" + date.ToString("yyyy-MM-dd HH:mm:ss"),
  418. ex.ToString(),
  419. LocalPath.LogExePath + "SAP_HEGII\\Error_");
  420. throw ex;
  421. }
  422. finally
  423. {
  424. if (oracleConn != null &&
  425. oracleConn.ConnState == ConnectionState.Open)
  426. {
  427. oracleConn.Disconnect();
  428. }
  429. }
  430. }
  431. /// <summary>
  432. /// 查询同步日志
  433. /// </summary>
  434. /// <param name="cre"></param>
  435. /// <param name="userInfo"></param>
  436. /// <returns></returns>
  437. public static ServiceResultEntity GetDataLog_BG(ClientRequestEntity cre)
  438. {
  439. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  440. ServiceResultEntity sre = new ServiceResultEntity();
  441. try
  442. {
  443. string sqlString =
  444. "select dl.logid\n" +
  445. " ,dl.logtype\n" +
  446. " ,dl.begintime\n" +
  447. " ,dl.endtime\n" +
  448. " ,dl.yyyymmdd\n" +
  449. " ,dl.workcode\n" +
  450. " ,dl.datacode\n" +
  451. " ,dc.datacodename\n" +
  452. " ,dl.datastuts\n" +
  453. " ,dl.datamsg\n" +
  454. " ,dl.datalogid\n" +
  455. " ,dl.executedatebegin\n" +
  456. " ,dl.executedateend\n" +
  457. " ,u.usercode synusercode\n" +
  458. " from TSAP_HEGII_DATALOG_BG dl\n" +
  459. " inner join tsap_hegii_datacode dc\n" +
  460. " on dc.datacode = dl.datacode\n" +
  461. " left join tp_mst_user u\n" +
  462. " on u.userid = dl.createuserid\n" +
  463. " where dl.logtype IN('2','3')\n" +
  464. " and dl.yyyymmdd >= :DATEBEGIN\n" +
  465. " and dl.yyyymmdd <= :DATEEND\n";
  466. OracleParameter[] oracleParameter = new OracleParameter[]
  467. {
  468. new OracleParameter(":DATEBEGIN",OracleDbType.Varchar2, cre.Properties["datebegin"], ParameterDirection.Input),
  469. new OracleParameter(":DATEEND",OracleDbType.Varchar2, cre.Properties["dateend"], ParameterDirection.Input),
  470. };
  471. sqlString += "ORDER BY dl.logid DESC\n";
  472. sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  473. return sre;
  474. }
  475. catch (Exception ex)
  476. {
  477. throw ex;
  478. }
  479. }
  480. /// <summary>
  481. /// 查询同步明细
  482. /// </summary>
  483. /// <param name="logid"></param>
  484. /// <param name="userInfo"></param>
  485. /// <returns></returns>
  486. public static ServiceResultEntity GetWorkData_BG(ClientRequestEntity cre)
  487. {
  488. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  489. ServiceResultEntity sre = new ServiceResultEntity();
  490. try
  491. {
  492. int logid = Convert.ToInt32(cre.Request);
  493. string sqlString = "\n" +
  494. "select wd.yyyymmdd\n" +
  495. " ,wd.workcode\n" +
  496. " ,wd.datacode\n" +
  497. " ,dc.datacodename\n" +
  498. " ,wd.goodscode\n" +
  499. " ,wd.sapcode\n" +
  500. " ,wd.usercode\n" +
  501. " ,wd.ordercode\n" +
  502. " ,wd.orderitem\n" +
  503. " ,to_number(wd.outputnum) outputnum\n" +
  504. " ,to_number(wd.scrapnum) scrapnum\n" +
  505. " ,to_number(wd.cleanupnum) cleanupnum\n" +
  506. " ,to_number(wd.recoverynum) recoverynum\n" +
  507. " ,to_number(wd.repairnum) repairnum\n" +
  508. " ,wd.createtime\n" +
  509. " ,wd.ztype\n" +
  510. " ,wd.zmsg\n" +
  511. " ,wd.ztime\n" +
  512. " ,wd.testmouldflag\n" +
  513. " ,wd.zscs\n" +
  514. " ,wd.logid\n" +
  515. " from tsap_hegii_workdata_BG wd\n" +
  516. " inner join tsap_hegii_datacode dc\n" +
  517. " on dc.datacode = wd.datacode\n";
  518. //update xiacm 2022-10-12
  519. if (logid > 0)
  520. {
  521. sqlString += " where wd.logid = :logid \n";
  522. }
  523. else
  524. {
  525. sqlString += " where dl.executedatebegin >= :DATEBEGIN and dl.executedateend < :DATEEND";
  526. sqlString += " and (-1= :DATACODE OR wd.datacode = :DATACODE)";
  527. }
  528. sqlString += " order by wd.goodscode,wd.sapcode,wd.usercode,wd.ordercode,wd.outputnum \n";
  529. OracleParameter[] oracleParameter = new OracleParameter[]
  530. {
  531. new OracleParameter(":logid",OracleDbType.Int32, logid, ParameterDirection.Input),
  532. new OracleParameter(":DATEBEGIN",OracleDbType.Date, cre.Properties["datebegin"], ParameterDirection.Input),
  533. new OracleParameter(":DATEEND",OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
  534. new OracleParameter(":DATACODE",OracleDbType.Varchar2, cre.Properties["datacode"], ParameterDirection.Input),
  535. };
  536. sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  537. return sre;
  538. }
  539. catch (Exception ex)
  540. {
  541. throw ex;
  542. }
  543. }
  544. /// <summary>
  545. /// 报工汇总 add xiacm 2022-10-12
  546. /// </summary>
  547. /// <param name="cre"></param>
  548. /// <returns></returns>
  549. public static ServiceResultEntity GetDataLogTotal_BG(ClientRequestEntity cre)
  550. {
  551. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  552. ServiceResultEntity sre = new ServiceResultEntity();
  553. try
  554. {
  555. string sqlString = "\n" +
  556. "SELECT T1.DATACODE,\n" +
  557. " T1.Actualoutput,\n" +
  558. " T2.*\n" +
  559. " FROM (\n" +
  560. " -- 业务数据汇总\n" +
  561. " -- 10\n" +
  562. " SELECT '10' AS DATACODE,\n" +
  563. " SUM(DECODE(MHH.OPERATIONTYPE, 1, M.STANDARDGROUTINGSUM, 0)) AS Actualoutput\n" +
  564. " FROM (SELECT MH.GOODSID,\n" +
  565. " MH.MOULDID,\n" +
  566. " MH.OPERATIONTYPE,\n" +
  567. " MH.GROUTINGNUM\n" +
  568. " FROM TP_PC_MOULDCHANGEHISTORY MH\n" +
  569. " WHERE MH.OPERATIONTYPE IN (1, 2, 3, 9, 11, -1)\n" +
  570. " AND MH.CREATETIME >= DATE '2022-10-14'\n" +
  571. " AND MH.CREATETIME < DATE '2022-10-15'\n" +
  572. " UNION ALL\n" +
  573. " SELECT MH.GOODSIDAFTER,\n" +
  574. " MH.MOULDID,\n" +
  575. " 0,\n" +
  576. " MH.GROUTINGNUM\n" +
  577. " FROM TP_PC_MOULDCHANGEHISTORY MH\n" +
  578. " WHERE MH.OPERATIONTYPE = -1\n" +
  579. " AND MH.CREATETIME >= DATE '2022-10-14'\n" +
  580. " AND MH.CREATETIME < DATE '2022-10-15') MHH\n" +
  581. " INNER JOIN TP_PC_MOULD M\n" +
  582. " ON M.MOULDID = MHH.MOULDID\n" +
  583. " UNION ALL\n" +
  584. " -- 20\n" +
  585. " SELECT '20' AS DATACODE,\n" +
  586. " COUNT(1) AS Businessoutput\n" +
  587. " FROM TP_PM_GROUTINGDAILYDETAIL GDD\n" +
  588. " LEFT JOIN TP_MST_GOODS G\n" +
  589. " ON GDD.GOODSID = G.GOODSID\n" +
  590. " WHERE GDD.CREATETIME >= DATE '2022-10-14'\n" +
  591. " AND GDD.CREATETIME < DATE '2022-10-15'\n" +
  592. " AND GDD.GROUTINGFLAG = '1'\n" +
  593. " AND G.SCRAPSUMFLAG = '1'\n" +
  594. " UNION ALL\n" +
  595. " -- 30\n" +
  596. " SELECT '30' AS DATACODE,\n" +
  597. " SUM(T1.CC) AS Businessoutput\n" +
  598. " FROM (SELECT 1 AS CC\n" +
  599. " FROM TP_PM_PRODUCTIONDATA P\n" +
  600. " WHERE P.PROCEDUREID IN (4, 35)\n" +
  601. " AND P.CREATETIME >= DATE '2022-10-14'\n" +
  602. " AND P.CREATETIME < DATE '2022-10-15'\n" +
  603. " UNION ALL\n" +
  604. " SELECT -1 AS CC\n" +
  605. " FROM TP_PM_PRODUCTIONDATA P\n" +
  606. " WHERE P.PROCEDUREID IN (4, 35)\n" +
  607. " AND P.VALUEFLAG = '0'\n" +
  608. " AND P.BACKOUTTIME >= DATE '2022-10-14'\n" +
  609. " AND P.BACKOUTTIME < DATE '2022-10-15') T1\n" +
  610. " UNION ALL\n" +
  611. " -- 40\n" +
  612. " SELECT '40' AS DATACODE,\n" +
  613. " SUM(T1.CC) AS Businessoutput\n" +
  614. " FROM (SELECT 1 AS CC\n" +
  615. " FROM TP_PM_PRODUCTIONDATA P\n" +
  616. " WHERE P.PROCEDUREID IN (5, 39)\n" +
  617. " AND P.CREATETIME >= DATE '2022-10-14'\n" +
  618. " AND P.CREATETIME < DATE '2022-10-15'\n" +
  619. " UNION ALL\n" +
  620. " SELECT -1 AS CC\n" +
  621. " FROM TP_PM_PRODUCTIONDATA P\n" +
  622. " WHERE P.PROCEDUREID IN (5, 39)\n" +
  623. " AND P.VALUEFLAG = '0'\n" +
  624. " AND P.BACKOUTTIME >= DATE '2022-10-14'\n" +
  625. " AND P.BACKOUTTIME < DATE '2022-10-15') T1\n" +
  626. " UNION ALL\n" +
  627. " -- 50\n" +
  628. " SELECT '50' AS DATACODE,\n" +
  629. " SUM(T1.CC) AS Businessoutput\n" +
  630. " FROM (SELECT 1 AS CC\n" +
  631. " FROM TP_PM_PRODUCTIONDATA P\n" +
  632. " WHERE P.PROCEDUREID IN (9, 48)\n" +
  633. " AND P.CREATETIME >= DATE '2022-10-14'\n" +
  634. " AND P.CREATETIME < DATE '2022-10-15'\n" +
  635. " UNION ALL\n" +
  636. " SELECT -1 AS CC\n" +
  637. " FROM TP_PM_PRODUCTIONDATA P\n" +
  638. " WHERE P.PROCEDUREID IN (9, 48)\n" +
  639. " AND P.VALUEFLAG = '0'\n" +
  640. " AND P.BACKOUTTIME >= DATE '2022-10-14'\n" +
  641. " AND P.BACKOUTTIME < DATE '2022-10-15') T1\n" +
  642. " UNION ALL\n" +
  643. " -- 60\n" +
  644. " SELECT '60' AS DATACODE,\n" +
  645. " COUNT(1) AS Businessoutput\n" +
  646. " FROM TP_PM_FINISHEDPRODUCT GH\n" +
  647. " WHERE GH.FHTIME >= DATE '2022-10-14'\n" +
  648. " AND GH.FHTIME < DATE '2022-10-15') T1\n" +
  649. " LEFT JOIN (\n" +
  650. " -- 当日推送日志数据汇总\n" +
  651. " SELECT DATACODE AS DATACODETD,\n" +
  652. " SUM(TO_NUMBER(OUTPUTNUM)) AS output,\n" +
  653. " SUM(TO_NUMBER(SCRAPNUM)) AS scrapnum,\n" +
  654. " SUM(TO_NUMBER(CLEANUPNUM)) AS cleannupnum,\n" +
  655. " SUM(TO_NUMBER(RECOVERYNUM)) AS recoverynum,\n" +
  656. " SUM(TO_NUMBER(REPAIRNUM)) AS repairnum\n" +
  657. " FROM TSAP_HEGII_WORKDATA_BG\n" +
  658. " WHERE LOGID IN (SELECT LOGID\n" +
  659. " FROM TSAP_HEGII_DATALOG_BG T\n" +
  660. " WHERE DATASTUTS = 'F'\n" +
  661. " AND EXECUTEDATEBEGIN >= DATE '2022-10-14'\n" +
  662. " AND EXECUTEDATEEND <= DATE '2022-10-15')\n" +
  663. " GROUP BY DATACODE\n" +
  664. " ORDER BY DATACODE) T2\n" +
  665. " ON T2.DATACODETD = T1.DATACODE\n" +
  666. " where (-1=:DATACODE OR T1.DATACODE= :DATACODE)\n" +
  667. " ORDER BY T1.DATACODE";
  668. OracleParameter[] oracleParameter = new OracleParameter[]
  669. {
  670. new OracleParameter(":DATEBEGIN",OracleDbType.Date, cre.Properties["datebegin"], ParameterDirection.Input),
  671. new OracleParameter(":DATEEND",OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
  672. new OracleParameter(":DATACODE",OracleDbType.Varchar2, cre.Properties["datacode"], ParameterDirection.Input),
  673. };
  674. sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  675. return sre;
  676. }
  677. catch (Exception ex)
  678. {
  679. throw ex;
  680. }
  681. }
  682. /// <summary>
  683. /// 同步SAP接口_60节点
  684. /// </summary>
  685. /// <param name="date"></param>
  686. /// <param name="datacode"></param>
  687. /// <param name="userid"></param>
  688. /// <param name="logid"></param>
  689. /// <returns></returns>
  690. public static ServiceResultEntity SyncSap5000_60(DateTime date)
  691. {
  692. ServiceResultEntity sre = new ServiceResultEntity();
  693. IDBTransaction oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  694. try
  695. {
  696. OracleParameter[] paras = null;
  697. int r = 0;
  698. // 查询当前节点所有不为S的日志
  699. string sqlString = @"
  700. SELECT DL.LOGID
  701. FROM TSAP_HEGII_DATALOG_BG DL
  702. WHERE 1 = 1
  703. AND DL.DATASTUTS = 'F'
  704. AND DL.LOGID > 6
  705. AND DL.DATACODE = '60'
  706. ORDER BY DL.LOGID ";
  707. DataTable dtLogID = oracleConn.GetSqlResultToDt(sqlString);
  708. if (dtLogID.Rows.Count == 0)
  709. {
  710. sre.Result = "S";
  711. sre.Message = "没有要同步的数据";
  712. return sre;
  713. }
  714. string logIDs = "," + string.Join(",", dtLogID.AsEnumerable().Select(d => d.Field<decimal>("LOGID")).ToArray()) + ",";
  715. sqlString = @"
  716. SELECT TO_CHAR(WD.YYYYMMDD) YYYYMMDD,
  717. WD.WORKCODE AS WERKS,
  718. TO_CHAR(WD.GOODSCODE) GROES,
  719. TO_CHAR(WD.SAPCODE) MATNR,
  720. TO_CHAR(WD.USERCODE) ZGHNU,
  721. TO_CHAR(WD.DATACODE) ZJDNU,
  722. TO_CHAR(WD.CREATETIME, 'YYYYMMDD') ZSCNU,
  723. TO_CHAR(WD.CREATETIME, 'HH24MISS') ZKSSJ,
  724. TO_CHAR(WD.CREATETIME, 'YYYYMMDDHH24MISS') ZJSRQ,
  725. TO_CHAR(WD.ORDERCODE) VBELN,
  726. TO_CHAR(WD.ORDERITEM) POSNR,
  727. TO_CHAR(WD.OUTPUTNUM) ZCLNG,
  728. TO_CHAR(WD.SCRAPNUM) ZSPNG,
  729. TO_CHAR(WD.CLEANUPNUM) ZQCNG,
  730. TO_CHAR(WD.RECOVERYNUM) ZHSNG,
  731. TO_CHAR(WD.REPAIRNUM) ZGBNG,
  732. TO_CHAR(WD.TESTMOULDFLAG) ZSCMS,
  733. 'T' AS ZSCS,
  734. TO_CHAR(WD.WORKSHOP) ZSCCJ,
  735. WD.CHARG,
  736. '60' AS DATACODE,
  737. WD.WORKCODE || WD.CHARG || LPAD(DL.LOGID, 10, '0') AS ZID
  738. FROM TSAP_HEGII_WORKDATA_BG WD
  739. INNER JOIN TSAP_HEGII_DATALOG_BG DL
  740. ON WD.LOGID = DL.LOGID
  741. WHERE INSTR(:LOGIDS, ',' || WD.LOGID || ',') > 0
  742. ORDER BY WD.LOGID ";
  743. paras = new OracleParameter[]
  744. {
  745. new OracleParameter(":LOGIDS", OracleDbType.Varchar2, logIDs, ParameterDirection.Input),
  746. };
  747. DataTable workData = oracleConn.GetSqlResultToDt(sqlString, paras);
  748. int num = workData.Rows.Count;
  749. //sqlString = @"
  750. //SELECT ZID,
  751. // WERKS,
  752. // MATNR,
  753. // ZJDNU,
  754. // ZSCS,
  755. // ZSCCJ,
  756. // ZSCMS,
  757. // ZSCNU,
  758. // ZKSSJ,
  759. // ZGHNU,
  760. // GROES,
  761. // POSNR,
  762. // IDNRK,
  763. // MENGE,
  764. // MEINS,
  765. // CHARG,
  766. // LGORT
  767. // FROM TSAP_HEGII_WORKDATA_BG_ZB
  768. // WHERE INSTR(:LOGIDS, ',' || LOGID || ',') > 0
  769. // ORDER BY LOGID ";
  770. //paras = new OracleParameter[]
  771. //{
  772. // new OracleParameter(":LOGIDS", OracleDbType.Varchar2, logIDs, ParameterDirection.Input),
  773. //};
  774. //DataTable dtDetail = oracleConn.GetSqlResultToDt(sqlString, paras);
  775. // 调用SAP接口
  776. //string postString = "{\"ZSUM\":" + num.ToString() + ",\"TABLE_IN\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<BGToSAP>.ConvertToModel(workData)) + "}"
  777. // + ",\"TABLE_IN1\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<BGToSAPDetail>.ConvertToModel(dtDetail)) + "}}";
  778. string postString = "{\"ZSUM\":" + num.ToString() + ",\"TABLE_IN\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<BGToSAP>.ConvertToModel(workData)) + "}}";
  779. // 配置文件
  780. INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
  781. string url030 = ini.ReadIniData("SAP_NEW_INFO", "Url030");
  782. // 测试
  783. //url030 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM030";
  784. // 正式
  785. //url030 = "http://hgs4powd1.hegii.com:8000/RESTAdapter/DKMES/ZPPFM030";
  786. string result = string.Empty;
  787. try
  788. {
  789. result = PostData(url030, postString, "POST");
  790. }
  791. catch (Exception ex)
  792. {
  793. sre.Result = -2;
  794. sre.Message = "sap030接口同步失败," + ex.Message;
  795. return sre;
  796. }
  797. sqlString = @"
  798. UPDATE TSAP_HEGII_DATALOG_BG T
  799. SET T.ENDTIME = SYSDATE,
  800. DATASTUTS = :DATASTUTS,
  801. DATAMSG = :MSG
  802. WHERE INSTR(:LOGIDS, ',' || LOGID || ',') > 0 ";
  803. paras = new OracleParameter[]
  804. {
  805. new OracleParameter(":DATASTUTS",OracleDbType.Varchar2, JObject.Parse(result)["ZTYPE"].ToString(), ParameterDirection.Input),
  806. new OracleParameter(":MSG",OracleDbType.Varchar2, JObject.Parse(result)["ZMSG"].ToString(), ParameterDirection.Input),
  807. new OracleParameter(":LOGIDS", OracleDbType.Varchar2, logIDs, ParameterDirection.Input),
  808. };
  809. r = oracleConn.ExecuteNonQuery(sqlString, paras);
  810. #region 同步WMS系统
  811. DateTime now = DateTime.Now;
  812. string message = string.Empty;
  813. string sqlFpData = @"
  814. SELECT WL.SKU,
  815. WL.SERIALNO,
  816. WL.ADDDAY,
  817. WL.ADDTIME,
  818. WL.CODEI,
  819. WL.UDF1,
  820. WL.UDF2,
  821. WL.LPN,
  822. WL.CREATETIME,
  823. GDD.SECURITYCODE,
  824. WL.LOGTYPE
  825. FROM TP_WMS_LOG WL
  826. INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
  827. ON GDD.BARCODE = WL.CODEI
  828. WHERE WL.VALUEFLAG = '1'
  829. AND WL.BGLOGID = :BGLOGID ";
  830. string sqlUpdate = @"
  831. UPDATE TP_WMS_LOG
  832. SET RETURNDESC = :RETURNDESC,
  833. UPDATETIME = :UPDATETIME
  834. WHERE BGLOGID = :BGLOGID ";
  835. foreach (DataRow row in dtLogID.Rows)
  836. {
  837. // 歇2s,调太快会给接口累着。
  838. Thread.Sleep(2000);
  839. paras = new OracleParameter[]
  840. {
  841. new OracleParameter(":BGLOGID", OracleDbType.Int32, row["LOGID"], ParameterDirection.Input),
  842. };
  843. DataTable fpData = oracleConn.GetSqlResultToDt(sqlFpData, paras);
  844. if (fpData.Rows.Count > 0)
  845. {
  846. if ("1".Equals(fpData.Rows[0]["LOGTYPE"] + ""))
  847. {
  848. message = WMSDataLogic.PushWMS2(fpData, now);
  849. }
  850. else
  851. {
  852. message = WMSDataLogic.BackPushWMS2(fpData, now);
  853. }
  854. }
  855. paras = new OracleParameter[]
  856. {
  857. new OracleParameter(":RETURNDESC", OracleDbType.NVarchar2, message, ParameterDirection.Input),
  858. new OracleParameter(":UPDATETIME", OracleDbType.Date, now, ParameterDirection.Input),
  859. new OracleParameter(":BGLOGID", OracleDbType.Int32, row["LOGID"], ParameterDirection.Input),
  860. };
  861. r = oracleConn.ExecuteNonQuery(sqlUpdate, paras);
  862. }
  863. #endregion
  864. oracleConn.Commit();
  865. sre.Message = JObject.Parse(result)["ZMSG"].ToString();
  866. sre.Result = JObject.Parse(result)["ZTYPE"].ToString();
  867. return sre;
  868. }
  869. catch (Exception ex)
  870. {
  871. OutputLog.TraceLog(LogPriority.Error,
  872. "BGToSAP",
  873. "报工" + date.ToString("yyyy-MM-dd HH:mm:ss"),
  874. ex.ToString(),
  875. LocalPath.LogExePath + "SAP_HEGII\\Error_");
  876. throw ex;
  877. }
  878. finally
  879. {
  880. if (oracleConn != null && oracleConn.ConnState == ConnectionState.Open)
  881. {
  882. oracleConn.Disconnect();
  883. }
  884. }
  885. }
  886. #endregion
  887. #region 跨车间作业(注销)
  888. // /// <summary>
  889. // /// 同步SAP数据(自动)
  890. // /// </summary>
  891. // /// <param name="date"></param>
  892. // public static void CrossWorkshopToSAP(DateTime date, DateTime ndate)
  893. // {
  894. // IDBTransaction oracleConn = null;
  895. // ServiceResultEntity sre = new ServiceResultEntity();
  896. // int logid = 0;
  897. // string message = string.Empty;
  898. // string sqlString = string.Empty;
  899. // try
  900. // {
  901. // #region 生成日志
  902. // OracleParameter[] paras = new OracleParameter[]
  903. // {
  904. // new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
  905. // new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
  906. // new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
  907. // };
  908. // oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  909. // DataSet ds = oracleConn.ExecStoredProcedure("pro_sap_hegii_workdata_kcjzy", paras);
  910. // int.TryParse(paras[1].Value + "", out logid);
  911. // message = paras[2].Value + "";
  912. // oracleConn.Commit();
  913. // #endregion
  914. // #region 同步SAP
  915. // oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  916. // //sqlString = "select workcode from tp_mst_account where rownum = 1";
  917. // //string workcode = oracleConn.GetSqlResultToStr(sqlString);
  918. // //workcode = "5000";
  919. // sqlString = "SELECT\n" +
  920. // " to_char(B.EXECUTEDATEBEGIN,'yyyymmddhh24miss') AS ZYWKS,\n" +
  921. // " to_char(B.EXECUTEDATEEND,'yyyymmddhh24miss') AS ZYWJS,\n" +
  922. // " to_char(SYSDATE,'yyyymmddhh24miss') AS ZMONT,\n" +
  923. // " A.WORKCODE AS WERKS,\n" +
  924. // " A.SAPCODE AS MATNR,\n" +
  925. // " A.GOODSCODE AS GROES,\n" +
  926. // " A.WORKSHOP AS ZSCCJ,\n" +
  927. // " A.WORKSHOP AS ZSSCJ,\n" +
  928. // " A.DATACODE AS ZJDNU,\n" +
  929. // " A.ITEM AS ZZYLX,\n" +
  930. // " A.NUM AS MENGE,\n" +
  931. // //" A.ZSCS,\n" +
  932. // " 'T' AS ZSCS,\n" +
  933. // " CASE WHEN A.TESTMOULDFLAG = 1 THEN 'Y' ELSE 'C' END AS ZSCMS, \n" +
  934. // " '' AS ZTYPE1, \n" +
  935. // " '' AS ZMSG1 \n" +
  936. // "FROM\n" +
  937. // " TSAP_HEGII_WORKDATA_KCJZY A\n" +
  938. // " INNER JOIN TSAP_HEGII_DATALOG_KCJZY B ON B.LOGID = A.LOGID\n" +
  939. // "WHERE\n" +
  940. // " A.LOGID = :logid";
  941. // paras = new OracleParameter[]
  942. // {
  943. // new OracleParameter(":logid", OracleDbType.Int32, logid, ParameterDirection.Input),
  944. // };
  945. // DataTable workData = oracleConn.GetSqlResultToDt(sqlString, paras);
  946. // sqlString = "select SAP_INI_BG from TP_SYS_SAPCONFIG";
  947. // string SAP_ING_NEW = oracleConn.GetSqlResultToStr(sqlString);
  948. // if (workData != null && workData.Rows.Count > 0 && SAP_ING_NEW == "1")
  949. // {
  950. // string postString = "{\"IT_INPUT\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<CrossWorkShopToSAP>.ConvertToModel(workData)) + "}}";
  951. // INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
  952. // string url033 = ini.ReadIniData("SAP_NEW_INFO", "Url033");
  953. // //url033 = "Url033=http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM033"
  954. // string result = PostData(url033, postString, "POST");
  955. // string ztype = JObject.Parse(result)["ZTYPE"].ToString();
  956. // string msg = JObject.Parse(result)["ZMSG"].ToString();
  957. // sqlString = "update TSAP_HEGII_DATALOG_KCJZY t set t.EndTime = sysdate, DataStuts = :DataStuts, DataMSG =:msg where logid = :logid";
  958. // paras = new OracleParameter[]
  959. // {
  960. // new OracleParameter(":logid", OracleDbType.Varchar2, logid, ParameterDirection.Input),
  961. // new OracleParameter(":DataStuts", OracleDbType.Varchar2, ztype, ParameterDirection.Input),
  962. // new OracleParameter(":msg", OracleDbType.Varchar2, msg, ParameterDirection.Input),
  963. // };
  964. // oracleConn.ExecuteNonQuery(sqlString, paras);
  965. // oracleConn.Commit();
  966. // }
  967. // #endregion
  968. // }
  969. // catch (Exception ex)
  970. // {
  971. // OutputLog.TraceLog(LogPriority.Error,
  972. // "CrossWorkshopToSAP",
  973. // "跨车间作业量" + date.ToString("yyyy-MM-dd HH:mm:ss"),
  974. // ex.ToString(),
  975. // LocalPath.LogExePath + "SAP_HEGII\\Error_");
  976. // }
  977. // }
  978. // public static void CrossWorkshopToSAP_test(DateTime date, DateTime ndate)
  979. // {
  980. // IDBTransaction oracleConn = null;
  981. // ServiceResultEntity sre = new ServiceResultEntity();
  982. // int logid = 0;
  983. // string message = string.Empty;
  984. // string sqlString = string.Empty;
  985. // try
  986. // {
  987. // #region 同步SAP
  988. // oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  989. // //sqlString = "select workcode from tp_mst_account where rownum = 1";
  990. // //string workcode = oracleConn.GetSqlResultToStr(sqlString);
  991. // //workcode = "5000";
  992. // sqlString = @"SELECT
  993. // to_char(:v_datebegin, 'yyyymmddhh24miss') AS ZYWKS,
  994. // to_char(:in_dateend, 'yyyymmddhh24miss') AS ZYWJS,
  995. // to_char(SYSDATE,'yyyymmddhh24miss') AS ZMONT,
  996. //'5000' AS WERKS,
  997. // MATERIALCODE AS MATNR,
  998. //GOODSCODE AS GROES,
  999. //to_char(WORKSHOP) AS ZSCCJ,
  1000. //to_char(DATACODE) AS ZJDNU,
  1001. // to_char(ITEM) AS ZZYLX,
  1002. // to_char(count( * )) AS MENGE,
  1003. // 'T' AS ZSCS,
  1004. // CASE WHEN TESTMOULDFLAG = 1 THEN 'Y' ELSE 'C' END AS ZSCMS,
  1005. // '' AS ZTYPE1,
  1006. // '' AS ZMSG1
  1007. // FROM
  1008. // (--产量
  1009. // SELECT
  1010. // GDD.MATERIALCODE,
  1011. // gdd.goodscode,
  1012. // HGDI.WORKSHOP,
  1013. // HGDI.DATACODE,
  1014. // 1 AS ITEM,
  1015. // GDD.TESTMOULDFLAG,
  1016. // G.GOODS_LINE_CODE AS ZSCS
  1017. // FROM
  1018. // TP_PM_PRODUCTIONDATA PD
  1019. // INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
  1020. // INNER JOIN TP_MST_GOODS G ON PD.GOODSID = G.GOODSID
  1021. // INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
  1022. // INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
  1023. // AND HGDI.ITEMTYPE = 1
  1024. // AND HGDI.ITEMID = PD.PROCEDUREID
  1025. // AND(HGDI.ITEMID <> 104 OR(PD.ISREFIRE = '0' AND PD.CHECKFLAG = '1'))
  1026. // WHERE
  1027. // PD.VALUEFLAG = 1
  1028. // AND PD.CREATETIME >= :v_datebegin
  1029. // AND PD.CREATETIME < :in_dateend
  1030. // AND(
  1031. // (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
  1032. // OR(
  1033. // HGDI.WORKSHOP = 3
  1034. // AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
  1035. // )
  1036. // )
  1037. // AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1
  1038. // UNION ALL
  1039. // --产量撤销
  1040. // SELECT
  1041. // GDD.MATERIALCODE,
  1042. // GDD.goodscode,
  1043. // HGDI.WORKSHOP,
  1044. // HGDI.DATACODE AS DATACODE,
  1045. // 2 AS ITEM,
  1046. // GDD.TESTMOULDFLAG,
  1047. // G.GOODS_LINE_CODE AS ZSCS
  1048. // FROM
  1049. // TP_PM_PRODUCTIONDATA PD
  1050. // INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
  1051. // INNER JOIN TP_MST_GOODS G ON PD.GOODSID = G.GOODSID
  1052. // INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
  1053. // INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
  1054. // AND HGDI.ITEMID = PD.PROCEDUREID
  1055. // AND(HGDI.ITEMID <> 104 OR(PD.ISREFIRE = '0' AND PD.CHECKFLAG = '1'))
  1056. // WHERE
  1057. // PD.VALUEFLAG = 0
  1058. // AND PD.BACKOUTTIME >= :v_datebegin
  1059. // AND PD.BACKOUTTIME < :in_dateend
  1060. // AND(
  1061. // (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
  1062. // OR(
  1063. // HGDI.WORKSHOP = 3
  1064. // AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
  1065. // )
  1066. // )
  1067. // AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1-- 工序报损
  1068. // UNION ALL
  1069. // SELECT
  1070. // GDD.MATERIALCODE,
  1071. // GDD.goodscode,
  1072. // HGDI.WORKSHOP,
  1073. // HGDI.DATACODE AS DATACODE,
  1074. // 3 AS ITEM,
  1075. // GDD.TESTMOULDFLAG,
  1076. // G.GOODS_LINE_CODE AS ZSCS
  1077. // FROM
  1078. // TP_PM_SCRAPPRODUCT SP
  1079. // INNER JOIN tp_pm_productiondata pd ON pd.productiondataid = sp.productiondataid
  1080. // INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
  1081. // INNER JOIN TP_MST_GOODS G ON PD.GOODSID = G.GOODSID
  1082. // INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
  1083. // INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
  1084. // AND HGDI.ITEMTYPE = 2
  1085. // AND HGDI.ITEMID = PD.PROCEDUREID
  1086. // AND(HGDI.ITEMID <> 104 OR(PD.ISREFIRE = '0' AND PD.CHECKFLAG = '1'))
  1087. // WHERE
  1088. // SP.AUDITSTATUS = 1
  1089. // AND SP.AUDITDATE >= :v_datebegin
  1090. // AND SP.AUDITDATE < :in_dateend
  1091. // AND(
  1092. // (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
  1093. // OR(
  1094. // HGDI.WORKSHOP = 3
  1095. // AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
  1096. // )
  1097. // )
  1098. // AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1-- 工序报损撤销
  1099. // UNION ALL
  1100. // SELECT
  1101. // GDD.MATERIALCODE,
  1102. // GDD.goodscode,
  1103. // HGDI.WORKSHOP,
  1104. // HGDI.DATACODE AS DATACODE,
  1105. // 4 AS ITEM,
  1106. // GDD.TESTMOULDFLAG,
  1107. // G.GOODS_LINE_CODE AS ZSCS
  1108. // FROM
  1109. // TP_PM_SCRAPPRODUCT SP
  1110. // INNER JOIN tp_pm_productiondata pd ON pd.productiondataid = sp.productiondataid
  1111. // INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
  1112. // INNER JOIN TP_MST_GOODS G ON PD.GOODSID = G.GOODSID
  1113. // INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
  1114. // INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
  1115. // AND HGDI.ITEMTYPE = 2
  1116. // AND HGDI.ITEMID = PD.PROCEDUREID
  1117. // AND(HGDI.ITEMID <> 104 OR(PD.ISREFIRE = '0' AND PD.CHECKFLAG = '1'))
  1118. // WHERE
  1119. // SP.AUDITSTATUS = 1
  1120. // AND SP.VALUEFLAG = '0'
  1121. // AND SP.BACKOUTTIME >= :v_datebegin
  1122. // AND SP.BACKOUTTIME < :in_dateend
  1123. // AND(
  1124. // (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
  1125. // OR(
  1126. // HGDI.WORKSHOP = 3
  1127. // AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
  1128. // )
  1129. // )
  1130. // AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1-- 盘点清除
  1131. // UNION ALL
  1132. // SELECT
  1133. // GDD.MATERIALCODE,
  1134. // GDD.GOODSCODE,
  1135. // HGDI.WORKSHOP,
  1136. // HGDI.DATACODE,
  1137. // 5 AS ITEM,
  1138. // GDD.TESTMOULDFLAG ,
  1139. // G.GOODS_LINE_CODE AS ZSCS
  1140. // FROM
  1141. // TP_PM_GOODSCHANGEHISTORY GH
  1142. // INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = GH.GROUTINGDAILYDETAILID
  1143. // INNER JOIN TP_MST_GOODS G ON GH.GOODSID = G.GOODSID
  1144. // INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
  1145. // INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
  1146. // AND HGDI.ITEMTYPE = 2
  1147. // AND HGDI.ITEMID = GH.OTHERID
  1148. // WHERE
  1149. // GH.CREATETIME >= :v_datebegin
  1150. // AND GH.CREATETIME < :in_dateend
  1151. // AND GH.DATATYPE IN( 11, 12 )
  1152. // AND(
  1153. // (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
  1154. // OR(
  1155. // HGDI.WORKSHOP = 3
  1156. // AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
  1157. // )
  1158. // )
  1159. // AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1-- 干补
  1160. // UNION ALL
  1161. // SELECT
  1162. // GDD.MATERIALCODE,
  1163. // GDD.GOODSCODE,
  1164. // HGDI.WORKSHOP,
  1165. // HGDI.DATACODE,
  1166. // 6 AS ITEM,
  1167. // GDD.TESTMOULDFLAG,
  1168. // G.GOODS_LINE_CODE AS ZSCS
  1169. // FROM
  1170. // TP_PM_SCRAPPRODUCT SP
  1171. // INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
  1172. // INNER JOIN TP_MST_GOODS G ON SP.GOODSID = G.GOODSID
  1173. // INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
  1174. // INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
  1175. // AND HGDI.ITEMTYPE = 2
  1176. // AND HGDI.ITEMID = SP.PROCEDUREID
  1177. // WHERE
  1178. // SP.AUDITSTATUS = 1
  1179. // AND SP.VALUEFLAG = '1'
  1180. // AND SP.GOODSLEVELTYPEID = 9
  1181. // AND SP.SPECIALREPAIRTIME >= :v_datebegin
  1182. // AND SP.SPECIALREPAIRTIME < :in_dateend
  1183. // AND(
  1184. // (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
  1185. // OR(
  1186. // HGDI.WORKSHOP = 3
  1187. // AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
  1188. // )
  1189. // )
  1190. // AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1-- 回收
  1191. // UNION ALL
  1192. // SELECT
  1193. // GDD.MATERIALCODE,
  1194. // GDD.GOODSCODE,
  1195. // HGDI.WORKSHOP,
  1196. // HGDI.DATACODE,
  1197. // 7 AS ITEM,
  1198. // GDD.TESTMOULDFLAG,
  1199. // G.GOODS_LINE_CODE AS ZSCS
  1200. // FROM
  1201. // TP_PM_SCRAPPRODUCT SP
  1202. // INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
  1203. // INNER JOIN TP_MST_GOODS G ON SP.GOODSID = G.GOODSID
  1204. // INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
  1205. // INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
  1206. // AND HGDI.ITEMTYPE = 2
  1207. // AND HGDI.ITEMID = SP.PROCEDUREID
  1208. // WHERE
  1209. // SP.AUDITSTATUS = 1
  1210. // AND SP.VALUEFLAG = '1'
  1211. // AND SP.RECYCLINGFLAG = '1'
  1212. // AND SP.RECYCLINGTIME >= :v_datebegin
  1213. // AND SP.RECYCLINGTIME < :in_dateend
  1214. // AND(
  1215. // (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
  1216. // OR(
  1217. // HGDI.WORKSHOP = 3
  1218. // AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
  1219. // )
  1220. // )
  1221. // AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1
  1222. // )
  1223. // GROUP BY
  1224. // MATERIALCODE,
  1225. // GOODSCODE,
  1226. // WORKSHOP,
  1227. // DATACODE,
  1228. // ITEM,
  1229. // TESTMOULDFLAG,
  1230. // ZSCS
  1231. // ORDER BY
  1232. // DATACODE,
  1233. // ITEM,
  1234. // WORKSHOP";
  1235. // OracleParameter[] paras = new OracleParameter[]
  1236. // {
  1237. // new OracleParameter(":v_datebegin", OracleDbType.Date, date, ParameterDirection.Input),
  1238. // new OracleParameter(":in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
  1239. // };
  1240. // DataTable workData = oracleConn.GetSqlResultToDt(sqlString, paras);
  1241. // sqlString = "select SAP_INI_BG from TP_SYS_SAPCONFIG";
  1242. // string SAP_ING_NEW = oracleConn.GetSqlResultToStr(sqlString);
  1243. // if (workData != null && workData.Rows.Count > 0 && SAP_ING_NEW == "0")
  1244. // {
  1245. // string postString = "{\"IT_INPUT\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<CrossWorkShopToSAP>.ConvertToModel(workData)) + "}}";
  1246. // //INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
  1247. // //string url033 = ini.ReadIniData("SAP_NEW_INFO", "Url033");
  1248. // string url033 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM033";
  1249. // string result = PostData(url033, postString, "POST");
  1250. // string ztype = JObject.Parse(result)["ZTYPE"].ToString();
  1251. // string msg = JObject.Parse(result)["ZMSG"].ToString();
  1252. // //sqlString = "update TSAP_HEGII_DATALOG_KCJZY t set t.EndTime = sysdate, DataStuts = :DataStuts, DataMSG =:msg where logid = :logid";
  1253. // //paras = new OracleParameter[]
  1254. // //{
  1255. // // new OracleParameter(":logid", OracleDbType.Varchar2, logid, ParameterDirection.Input),
  1256. // // new OracleParameter(":DataStuts", OracleDbType.Varchar2, ztype, ParameterDirection.Input),
  1257. // // new OracleParameter(":msg", OracleDbType.Varchar2, msg, ParameterDirection.Input),
  1258. // //};
  1259. // //oracleConn.ExecuteNonQuery(sqlString, paras);
  1260. // oracleConn.Commit();
  1261. // }
  1262. // #endregion
  1263. // }
  1264. // catch (Exception ex)
  1265. // {
  1266. // OutputLog.TraceLog(LogPriority.Error,
  1267. // "CrossWorkshopToSAP",
  1268. // "跨车间作业量" + date.ToString("yyyy-MM-dd HH:mm:ss"),
  1269. // ex.ToString(),
  1270. // LocalPath.LogExePath + "SAP_HEGII\\Error_");
  1271. // }
  1272. // }
  1273. // /// <summary>
  1274. // /// 查询跨车间作业同步日志
  1275. // /// </summary>
  1276. // /// <param name="cre"></param>
  1277. // /// <param name="userInfo"></param>
  1278. // /// <returns></returns>
  1279. // public static ServiceResultEntity GetDataLog_kczzy(ClientRequestEntity cre)
  1280. // {
  1281. // IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1282. // ServiceResultEntity sre = new ServiceResultEntity();
  1283. // try
  1284. // {
  1285. // string sqlString = "SELECT\n" +
  1286. // " dl.logid,\n" +
  1287. // " dl.begintime,\n" +
  1288. // " dl.endtime,\n" +
  1289. // " dl.yyyymmdd,\n" +
  1290. // " dl.workcode,\n" +
  1291. // " dl.datastuts,\n" +
  1292. // " dl.datamsg,\n" +
  1293. // " dl.executedatebegin,\n" +
  1294. // " dl.executedateend,\n" +
  1295. // " u.usercode synusercode\n" +
  1296. // "FROM\n" +
  1297. // " tsap_hegii_datalog_kcjzy dl\n" +
  1298. // " LEFT JOIN tp_mst_user u ON u.userid = dl.createuserid \n" +
  1299. // "WHERE\n" +
  1300. // " dl.yyyymmdd >= :datebegin \n" +
  1301. // " AND dl.yyyymmdd <= :dateend \n";
  1302. // OracleParameter[] oracleParameter = new OracleParameter[]
  1303. // {
  1304. // new OracleParameter(":datebegin",OracleDbType.Varchar2, cre.Properties["datebegin"], ParameterDirection.Input),
  1305. // new OracleParameter(":dateend",OracleDbType.Varchar2, cre.Properties["dateend"], ParameterDirection.Input),
  1306. // };
  1307. // string datastuts = cre.Properties["datastuts"] + "";
  1308. // if (!string.IsNullOrEmpty(datastuts))
  1309. // {
  1310. // sqlString += " and dl.datastuts in (" + datastuts + ")\n";
  1311. // }
  1312. // sqlString += "ORDER BY dl.logid DESC\n";
  1313. // sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  1314. // return sre;
  1315. // }
  1316. // catch (Exception ex)
  1317. // {
  1318. // throw ex;
  1319. // }
  1320. // }
  1321. // /// <summary>
  1322. // /// 查询同步明细
  1323. // /// </summary>
  1324. // /// <param name="logid"></param>
  1325. // /// <param name="userInfo"></param>
  1326. // /// <returns></returns>
  1327. // public static ServiceResultEntity GetWorkData_kczzy(int logid)
  1328. // {
  1329. // IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1330. // ServiceResultEntity sre = new ServiceResultEntity();
  1331. // try
  1332. // {
  1333. // string sqlString = "\n" +
  1334. // "select wd.workshop\n" +
  1335. // " ,case when wd.workshop = 2 then '二车间' when wd.workshop = 3 then '三车间' else '-' end workshopname\n " +
  1336. // " ,case when wd.item = 1 then '产量' when wd.item = 2 then '产量撤销' when wd.item = 3 then '工序报损' when wd.item = 4 then '工序报损撤销' \n" +
  1337. // " when wd.item = 5 then '盘点清除' when wd.item = 6 then '干补' when wd.item = 7 then '回收' else '-' end as itemname\n" +
  1338. // " ,item\n" +
  1339. // " ,wd.datacode\n" +
  1340. // " ,dc.datacodename\n" +
  1341. // " ,wd.goodscode\n" +
  1342. // " ,wd.sapcode\n" +
  1343. // " ,wd.num\n" +
  1344. // " ,wd.createtime\n" +
  1345. // " ,wd.testmouldflag\n" +
  1346. // " ,wd.zscs\n" +
  1347. // " ,case when wd.zscs = 'L' then '立浇【L】' when wd.zscs = 'G' then '高压【G】' when wd.zscs = 'M' then '粘接高压(三水厂)【M】' when wd.zscs = 'Q' then '吊装线【Q】' else '-' end as zscsname\n" +
  1348. // " ,wd.logid\n" +
  1349. // " from tsap_hegii_workdata_kcjzy wd\n" +
  1350. // " inner join tsap_hegii_datacode dc\n" +
  1351. // " on dc.datacode = wd.datacode\n" +
  1352. // " where wd.logid = :logid \n" +
  1353. // " order by wd.datacode,wd.item,wd.workshop \n";
  1354. // OracleParameter[] oracleParameter = new OracleParameter[]
  1355. // {
  1356. // new OracleParameter(":logid",OracleDbType.Int32, logid, ParameterDirection.Input),
  1357. // };
  1358. // sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  1359. // return sre;
  1360. // }
  1361. // catch (Exception ex)
  1362. // {
  1363. // throw ex;
  1364. // }
  1365. // }
  1366. #endregion
  1367. #region 报工移库(注销)
  1368. ///// <summary>
  1369. ///// 报工移库_同步SAP数据(自动)
  1370. ///// </summary>
  1371. ///// <param name="date"></param>
  1372. //public static void BGYKToSAP(DateTime date, DateTime ndate)
  1373. //{
  1374. // IDBTransaction oracleConn = null;
  1375. // ServiceResultEntity sre = new ServiceResultEntity();
  1376. // int logid = 0;
  1377. // string message = string.Empty;
  1378. // string sqlString = string.Empty;
  1379. // try
  1380. // {
  1381. // #region 生成日志
  1382. // OracleParameter[] paras = new OracleParameter[]
  1383. // {
  1384. // new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
  1385. // new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
  1386. // new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
  1387. // };
  1388. // oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  1389. // DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BGYK", paras);
  1390. // int.TryParse(paras[1].Value + "", out logid);
  1391. // message = paras[2].Value + "";
  1392. // oracleConn.Commit();
  1393. // #endregion
  1394. // #region 同步SAP
  1395. // oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  1396. // //2022年9月8日11:38:51 更改 by fy
  1397. // //sqlString = @"
  1398. // //SELECT WERKS,
  1399. // // MATNR,
  1400. // // ZJDNU,
  1401. // // ZSCS,
  1402. // // ZSCCJ,
  1403. // // ZSCMS,
  1404. // // CHARG,
  1405. // // MENGE,
  1406. // // ZMLID
  1407. // // FROM TSAP_HEGII_WORKDATA_BGYK
  1408. // // WHERE LOGID = :LOGID ";
  1409. // sqlString = @"SELECT
  1410. // A.WERKS,
  1411. // A.MATNR,
  1412. // A.ZJDNU,
  1413. // -- A.ZSCS,
  1414. // 'T' AS ZSCS,
  1415. // A.ZSCCJ,
  1416. // A.ZSCMS,
  1417. // A.CHARG,
  1418. // A.MENGE,
  1419. // A.ZMLID,
  1420. // to_char(B.EXECUTEDATEBEGIN, 'yyyymmddhh24miss') AS ZYWKS,
  1421. // to_char(B.EXECUTEDATEEND, 'yyyymmddhh24miss' ) AS ZYWJS,
  1422. // to_char(SYSDATE, 'yyyymmdd' ) AS ZBUDAT,
  1423. // to_char(SYSDATE, 'yyyymmddhh24miss' ) AS ZMONT,
  1424. // '' AS ZTYPE1,
  1425. // '' AS ZMSG1
  1426. // FROM
  1427. // TSAP_HEGII_WORKDATA_BGYK A
  1428. // INNER JOIN TSAP_HEGII_DATALOG_BGYK B ON B.LOGID = A.LOGID
  1429. // WHERE
  1430. // A.LOGID = :LOGID";
  1431. // paras = new OracleParameter[]
  1432. // {
  1433. // new OracleParameter(":LOGID", OracleDbType.Int32, logid, ParameterDirection.Input),
  1434. // };
  1435. // DataTable workData = oracleConn.GetSqlResultToDt(sqlString, paras);
  1436. // //获取报工SAP接口是否开启
  1437. // sqlString = "select SAP_INI_BG from TP_SYS_SAPCONFIG";
  1438. // string SAP_ING_NEW = oracleConn.GetSqlResultToStr(sqlString);
  1439. // if (workData != null && workData.Rows.Count > 0 && SAP_ING_NEW == "1")
  1440. // {
  1441. // string postString = "{\"IT_INPUT\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<BGYKToSAP>.ConvertToModel(workData)) + "}}";
  1442. // INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
  1443. // string url034 = ini.ReadIniData("SAP_NEW_INFO", "Url034");
  1444. // //url034 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM034";
  1445. // string result = PostData(url034, postString, "POST");
  1446. // string ztype = JObject.Parse(result)["ZTYPE"].ToString();
  1447. // string zmsg = JObject.Parse(result)["ZMSG"].ToString();
  1448. // sqlString = "update TSAP_HEGII_DATALOG_BGYK t set t.EndTime = sysdate, ZTYPE = :ZTYPE, ZMSG =:ZMSG where logid = :logid";
  1449. // paras = new OracleParameter[]
  1450. // {
  1451. // new OracleParameter(":logid", OracleDbType.Varchar2, logid, ParameterDirection.Input),
  1452. // new OracleParameter(":ZTYPE", OracleDbType.Varchar2, ztype, ParameterDirection.Input),
  1453. // new OracleParameter(":ZMSG", OracleDbType.Varchar2, zmsg, ParameterDirection.Input),
  1454. // };
  1455. // oracleConn.ExecuteNonQuery(sqlString, paras);
  1456. // oracleConn.Commit();
  1457. // }
  1458. // #endregion
  1459. // }
  1460. // catch (Exception ex)
  1461. // {
  1462. // OutputLog.TraceLog(LogPriority.Error,
  1463. // "BGYKToSAP",
  1464. // "报工移库" + date.ToString("yyyy-MM-dd HH:mm:ss"),
  1465. // ex.ToString(),
  1466. // LocalPath.LogExePath + "SAP_HEGII\\Error_");
  1467. // }
  1468. //}
  1469. //public static void BGYKToSAP_TEST(DateTime date, DateTime ndate)
  1470. //{
  1471. // IDBTransaction oracleConn = null;
  1472. // ServiceResultEntity sre = new ServiceResultEntity();
  1473. // int logid = 0;
  1474. // string message = string.Empty;
  1475. // string sqlString = string.Empty;
  1476. // try
  1477. // {
  1478. // #region 同步SAP
  1479. // oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  1480. // //2022年9月8日11:38:51 更改 by fy
  1481. // //sqlString = @"
  1482. // //SELECT WERKS,
  1483. // // MATNR,
  1484. // // ZJDNU,
  1485. // // ZSCS,
  1486. // // ZSCCJ,
  1487. // // ZSCMS,
  1488. // // CHARG,
  1489. // // MENGE,
  1490. // // ZMLID
  1491. // // FROM TSAP_HEGII_WORKDATA_BGYK
  1492. // // WHERE LOGID = :LOGID ";
  1493. // sqlString = @"SELECT '5000' WERKS,MATNR,to_char(ZJDNU) ZJDNU,'T' AS ZSCS,to_char(ZSCCJ) ZSCCJ,to_char(ZSCMS) ZSCMS,to_char(CHARG)CHARG,
  1494. // to_char(MENGE) MENGE,to_char(ZMLID) ZMLID,
  1495. // to_char(:V_DATEBEGIN, 'yyyymmddhh24miss') AS ZYWKS,
  1496. // to_char(:IN_DATEEND, 'yyyymmddhh24miss' ) AS ZYWJS,
  1497. // to_char(SYSDATE, 'yyyymmdd' ) AS ZBUDAT,
  1498. // to_char(SYSDATE, 'yyyymmddhh24miss' ) AS ZMONT FROM (
  1499. // SELECT
  1500. // T.MATNR,
  1501. // '30' AS ZJDNU,
  1502. // G.GOODS_LINE_CODE AS ZSCS,
  1503. // '2' AS ZSCCJ,
  1504. // T.ZSCMS,
  1505. // TO_CHAR( SYSDATE, 'yyyymm' ) AS CHARG,
  1506. // SUM( T.MENGE ) AS MENGE,
  1507. // '3' AS ZMLID
  1508. // FROM
  1509. // (-- 3-3线上施釉(3)到3#刮登(99)
  1510. // SELECT
  1511. // GDD.GOODSID,
  1512. // GDD.MATERIALCODE AS MATNR,
  1513. // DECODE( GDD.TESTMOULDFLAG, '1', 'Y', 'C' ) AS ZSCMS,
  1514. // COUNT( 1 ) AS MENGE
  1515. // FROM
  1516. // TP_PM_PRODUCTIONDATA PD1
  1517. // INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
  1518. // WHERE
  1519. // PD1.CREATETIME >= :V_DATEBEGIN
  1520. // AND PD1.CREATETIME < :IN_DATEEND
  1521. // AND PD1.PROCEDUREID = 99
  1522. // AND PD1.VALUEFLAG = '1'
  1523. // AND EXISTS ( SELECT 1 FROM TP_PM_PRODUCTIONDATA PD2 WHERE PD2.BARCODE = PD1.BARCODE AND PD2.PROCEDUREID = 3 )
  1524. // GROUP BY
  1525. // GDD.GOODSID,
  1526. // GDD.MATERIALCODE,
  1527. // GDD.TESTMOULDFLAG UNION ALL-- 3-3线上施釉(3)到3#刮登(99)撤销了的
  1528. // SELECT
  1529. // GDD.GOODSID,
  1530. // GDD.MATERIALCODE AS MATNR,
  1531. // DECODE( GDD.TESTMOULDFLAG, '1', 'Y', 'C' ) AS ZSCMS,
  1532. // - COUNT( 1 ) AS MENGE
  1533. // FROM
  1534. // TP_PM_PRODUCTIONDATA PD1
  1535. // INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
  1536. // WHERE
  1537. // PD1.BACKOUTTIME >= :V_DATEBEGIN
  1538. // AND PD1.BACKOUTTIME < :IN_DATEEND
  1539. // AND PD1.PROCEDUREID = 99
  1540. // AND PD1.VALUEFLAG = '0'
  1541. // AND EXISTS ( SELECT 1 FROM TP_PM_PRODUCTIONDATA PD2 WHERE PD2.BARCODE = PD1.BARCODE AND PD2.PROCEDUREID = 3 )
  1542. // GROUP BY
  1543. // GDD.GOODSID,
  1544. // GDD.MATERIALCODE,
  1545. // GDD.TESTMOULDFLAG
  1546. // ) T
  1547. // LEFT JOIN TP_MST_GOODS G ON G.GOODSID = T.GOODSID
  1548. // GROUP BY
  1549. // T.MATNR,
  1550. // T.ZSCMS,
  1551. // G.GOODS_LINE_CODE UNION ALL
  1552. // SELECT
  1553. // T.MATNR,
  1554. // '40' AS ZJDNU,
  1555. // G.GOODS_LINE_CODE AS ZSCS,
  1556. // '2' AS ZSCCJ,
  1557. // T.ZSCMS,
  1558. // TO_CHAR( SYSDATE, 'yyyymm' ) AS CHARG,
  1559. // SUM( T.MENGE ) AS MENGE,
  1560. // '3' AS ZMLID
  1561. // FROM
  1562. // (-- 3#卸窑(103)到7-1成检出窑交接(11)
  1563. // SELECT
  1564. // GDD.GOODSID,
  1565. // GDD.MATERIALCODE AS MATNR,
  1566. // DECODE( GDD.TESTMOULDFLAG, '1', 'Y', 'C' ) AS ZSCMS,
  1567. // COUNT( 1 ) AS MENGE
  1568. // FROM
  1569. // TP_PM_PRODUCTIONDATA PD1
  1570. // INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
  1571. // WHERE
  1572. // PD1.CREATETIME >= :V_DATEBEGIN
  1573. // AND PD1.CREATETIME < :IN_DATEEND
  1574. // AND PD1.PROCEDUREID = 11
  1575. // AND PD1.VALUEFLAG = '1'
  1576. // AND EXISTS ( SELECT 1 FROM TP_PM_PRODUCTIONDATA PD2 WHERE PD2.BARCODE = PD1.BARCODE AND PD2.PROCEDUREID = 103 )
  1577. // GROUP BY
  1578. // GDD.GOODSID,
  1579. // GDD.MATERIALCODE,
  1580. // GDD.TESTMOULDFLAG UNION ALL-- 3-3线上施釉(3)到3#刮登(99)撤销了的
  1581. // SELECT
  1582. // GDD.GOODSID,
  1583. // GDD.MATERIALCODE AS MATNR,
  1584. // DECODE( GDD.TESTMOULDFLAG, '1', 'Y', 'C' ) AS ZSCMS,
  1585. // - COUNT( 1 ) AS MENGE
  1586. // FROM
  1587. // TP_PM_PRODUCTIONDATA PD1
  1588. // INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
  1589. // WHERE
  1590. // PD1.BACKOUTTIME >= :V_DATEBEGIN
  1591. // AND PD1.BACKOUTTIME < :IN_DATEEND
  1592. // AND PD1.PROCEDUREID = 11
  1593. // AND PD1.VALUEFLAG = '0'
  1594. // AND EXISTS ( SELECT 1 FROM TP_PM_PRODUCTIONDATA PD2 WHERE PD2.BARCODE = PD1.BARCODE AND PD2.PROCEDUREID = 103 )
  1595. // GROUP BY
  1596. // GDD.GOODSID,
  1597. // GDD.MATERIALCODE,
  1598. // GDD.TESTMOULDFLAG
  1599. // ) T
  1600. // LEFT JOIN TP_MST_GOODS G ON G.GOODSID = T.GOODSID
  1601. // GROUP BY
  1602. // T.MATNR,
  1603. // T.ZSCMS,
  1604. // G.GOODS_LINE_CODE UNION ALL
  1605. // SELECT
  1606. // T.MATNR,
  1607. // '40' AS ZJDNU,
  1608. // G.GOODS_LINE_CODE AS ZSCS,
  1609. // '3' AS ZSCCJ,
  1610. // T.ZSCMS,
  1611. // TO_CHAR( SYSDATE, 'yyyymm' ) AS CHARG,
  1612. // SUM( T.MENGE ) AS MENGE,
  1613. // '2' AS ZMLID
  1614. // FROM
  1615. // (-- 6-1卸窑(10)到3#成检交接(104)
  1616. // SELECT
  1617. // GDD.GOODSID,
  1618. // GDD.MATERIALCODE AS MATNR,
  1619. // DECODE( GDD.TESTMOULDFLAG, '1', 'Y', 'C' ) AS ZSCMS,
  1620. // COUNT( 1 ) AS MENGE
  1621. // FROM
  1622. // TP_PM_PRODUCTIONDATA PD1
  1623. // INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
  1624. // WHERE
  1625. // PD1.CREATETIME >= :V_DATEBEGIN
  1626. // AND PD1.CREATETIME < :IN_DATEEND
  1627. // AND PD1.PROCEDUREID = 104
  1628. // AND PD1.VALUEFLAG = '1'
  1629. // AND EXISTS ( SELECT 1 FROM TP_PM_PRODUCTIONDATA PD2 WHERE PD2.BARCODE = PD1.BARCODE AND PD2.PROCEDUREID = 10 )
  1630. // GROUP BY
  1631. // GDD.GOODSID,
  1632. // GDD.MATERIALCODE,
  1633. // GDD.TESTMOULDFLAG UNION ALL-- 6-1卸窑(10)到3#成检交接(104)撤销了的
  1634. // SELECT
  1635. // GDD.GOODSID,
  1636. // GDD.MATERIALCODE AS MATNR,
  1637. // DECODE( GDD.TESTMOULDFLAG, '1', 'Y', 'C' ) AS ZSCMS,
  1638. // - COUNT( 1 ) AS MENGE
  1639. // FROM
  1640. // TP_PM_PRODUCTIONDATA PD1
  1641. // INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
  1642. // WHERE
  1643. // PD1.BACKOUTTIME >= :V_DATEBEGIN
  1644. // AND PD1.BACKOUTTIME < :IN_DATEEND
  1645. // AND PD1.PROCEDUREID = 104
  1646. // AND PD1.VALUEFLAG = '0'
  1647. // AND EXISTS ( SELECT 1 FROM TP_PM_PRODUCTIONDATA PD2 WHERE PD2.BARCODE = PD1.BARCODE AND PD2.PROCEDUREID = 10 )
  1648. // GROUP BY
  1649. // GDD.GOODSID,
  1650. // GDD.MATERIALCODE,
  1651. // GDD.TESTMOULDFLAG
  1652. // ) T
  1653. // LEFT JOIN TP_MST_GOODS G ON G.GOODSID = T.GOODSID
  1654. // GROUP BY
  1655. // T.MATNR,
  1656. // T.ZSCMS,
  1657. // G.GOODS_LINE_CODE
  1658. // ) WHERE MENGE > 0";
  1659. // OracleParameter[] paras = new OracleParameter[]
  1660. // {
  1661. // new OracleParameter(":V_DATEBEGIN",OracleDbType.Date, date, ParameterDirection.Input),
  1662. // new OracleParameter(":IN_DATEEND",OracleDbType.Date, ndate, ParameterDirection.Input),
  1663. // };
  1664. // DataTable workData = oracleConn.GetSqlResultToDt(sqlString, paras);
  1665. // //获取报工SAP接口是否开启
  1666. // sqlString = "select SAP_INI_BG from TP_SYS_SAPCONFIG";
  1667. // string SAP_ING_NEW = oracleConn.GetSqlResultToStr(sqlString);
  1668. // if (workData != null && workData.Rows.Count > 0 && SAP_ING_NEW == "0")
  1669. // {
  1670. // string postString = "{\"IT_INPUT\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<BGYKToSAP>.ConvertToModel(workData)) + "}}";
  1671. // //INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
  1672. // //string url034 = ini.ReadIniData("SAP_NEW_INFO", "Url034");
  1673. // string url034 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM034";
  1674. // string result = PostData(url034, postString, "POST");
  1675. // string ztype = JObject.Parse(result)["ZTYPE"].ToString();
  1676. // string zmsg = JObject.Parse(result)["ZMSG"].ToString();
  1677. // //sqlString = "update TSAP_HEGII_DATALOG_BGYK t set t.EndTime = sysdate, ZTYPE = :ZTYPE, ZMSG =:ZMSG where logid = :logid";
  1678. // //paras = new OracleParameter[]
  1679. // //{
  1680. // // new OracleParameter(":logid", OracleDbType.Varchar2, logid, ParameterDirection.Input),
  1681. // // new OracleParameter(":ZTYPE", OracleDbType.Varchar2, ztype, ParameterDirection.Input),
  1682. // // new OracleParameter(":ZMSG", OracleDbType.Varchar2, zmsg, ParameterDirection.Input),
  1683. // //};
  1684. // //oracleConn.ExecuteNonQuery(sqlString, paras);
  1685. // oracleConn.Commit();
  1686. // }
  1687. // #endregion
  1688. // }
  1689. // catch (Exception ex)
  1690. // {
  1691. // OutputLog.TraceLog(LogPriority.Error,
  1692. // "BGYKToSAP",
  1693. // "报工移库" + date.ToString("yyyy-MM-dd HH:mm:ss"),
  1694. // ex.ToString(),
  1695. // LocalPath.LogExePath + "SAP_HEGII\\Error_");
  1696. // }
  1697. //}
  1698. ///// <summary>
  1699. ///// 查询同步日志
  1700. ///// </summary>
  1701. ///// <param name="cre"></param>
  1702. ///// <param name="userInfo"></param>
  1703. ///// <returns></returns>
  1704. //public static ServiceResultEntity GetDataLog_BGYK(ClientRequestEntity cre)
  1705. //{
  1706. // IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1707. // ServiceResultEntity sre = new ServiceResultEntity();
  1708. // try
  1709. // {
  1710. // string sqlString = @"
  1711. // SELECT DL.LOGID,
  1712. // DL.BEGINTIME,
  1713. // DL.ENDTIME,
  1714. // DL.YYYYMMDD,
  1715. // DL.ZTYPE,
  1716. // DL.ZMSG,
  1717. // U.USERCODE SYNUSERCODE
  1718. // FROM TSAP_HEGII_DATALOG_BGYK DL
  1719. // LEFT JOIN TP_MST_USER U
  1720. // ON U.USERID = DL.CREATEUSERID
  1721. // WHERE DL.YYYYMMDD >= :DATEBEGIN
  1722. // AND DL.YYYYMMDD <= :DATEEND ";
  1723. // OracleParameter[] oracleParameter = new OracleParameter[]
  1724. // {
  1725. // new OracleParameter(":DATEBEGIN",OracleDbType.Varchar2, cre.Properties["datebegin"], ParameterDirection.Input),
  1726. // new OracleParameter(":DATEEND",OracleDbType.Varchar2, cre.Properties["dateend"], ParameterDirection.Input),
  1727. // };
  1728. // sqlString += "ORDER BY dl.logid DESC\n";
  1729. // sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  1730. // return sre;
  1731. // }
  1732. // catch (Exception ex)
  1733. // {
  1734. // throw ex;
  1735. // }
  1736. //}
  1737. ///// <summary>
  1738. ///// 查询同步明细
  1739. ///// </summary>
  1740. ///// <param name="logid"></param>
  1741. ///// <param name="userInfo"></param>
  1742. ///// <returns></returns>
  1743. //public static ServiceResultEntity GetWorkData_BGYK(int logid)
  1744. //{
  1745. // IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1746. // ServiceResultEntity sre = new ServiceResultEntity();
  1747. // try
  1748. // {
  1749. // string sqlString = @"
  1750. // SELECT WERKS,
  1751. // MATNR,
  1752. // ZJDNU,
  1753. // ZSCS,
  1754. // ZSCCJ,
  1755. // ZSCMS,
  1756. // CHARG,
  1757. // MENGE,
  1758. // ZMLID
  1759. // FROM TSAP_HEGII_WORKDATA_BGYK
  1760. // WHERE LOGID = :LOGID ";
  1761. // OracleParameter[] oracleParameter = new OracleParameter[]
  1762. // {
  1763. // new OracleParameter(":LOGID",OracleDbType.Int32, logid, ParameterDirection.Input),
  1764. // };
  1765. // sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  1766. // return sre;
  1767. // }
  1768. // catch (Exception ex)
  1769. // {
  1770. // throw ex;
  1771. // }
  1772. //}
  1773. #endregion
  1774. #region PostData 请求
  1775. public static string PostData(string url, string data, string method)
  1776. {
  1777. //将单引号转义成双引号
  1778. data = data.Replace("'", "\"");
  1779. //创建Web访问对象
  1780. HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);
  1781. //把用户传过来的数据转成“UTF-8”的字节流
  1782. byte[] buf = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(data);
  1783. myRequest.Method = method;
  1784. myRequest.ContentLength = buf.Length;
  1785. myRequest.ContentType = "application/json;charset=UTF-8";
  1786. //myRequest.MaximumAutomaticRedirections = 1;
  1787. myRequest.AllowAutoRedirect = true;
  1788. //UTF8标准转码加密
  1789. INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
  1790. // 配置文件
  1791. string userName = ini.ReadIniData("SAP_NEW_INFO", "userName");
  1792. // 测试
  1793. //string userName = "hgsapdk:Sapdk#240";
  1794. // 正式
  1795. //string userName = "PODKMES:Sapdk#800";
  1796. string base64Header = Convert.ToBase64String(Encoding.UTF8.GetBytes(userName));
  1797. myRequest.Headers.Add("Authorization", "Basic " + base64Header);
  1798. //发送请求
  1799. Stream stream = myRequest.GetRequestStream();
  1800. stream.Write(buf, 0, buf.Length);
  1801. stream.Close();
  1802. //获取接口返回值
  1803. //通过Web访问对象获取响应内容
  1804. HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
  1805. //通过响应内容流创建StreamReader对象,因为StreamReader更高级更快
  1806. StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
  1807. //string returnXml = HttpUtility.UrlDecode(reader.ReadToEnd());//如果有编码问题就用这个方法
  1808. string returnXml = reader.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾
  1809. reader.Close();
  1810. myResponse.Close();
  1811. // 结果
  1812. OutputLog.TraceLog(LogPriority.Information,
  1813. "报工030", method, data,
  1814. LocalPath.LogExePath + "SAP_HEGII\\Info_030");
  1815. return returnXml;
  1816. }
  1817. #endregion
  1818. #region 转换
  1819. public class ModelConvertHelper<T> where T : new()
  1820. {
  1821. public static List<T> ConvertToModel(DataTable dt)
  1822. {
  1823. // 定义集合
  1824. List<T> ts = new List<T>();
  1825. // 获得此模型的类型
  1826. Type type = typeof(T);
  1827. string tempName = "";
  1828. foreach (DataRow dr in dt.Rows)
  1829. {
  1830. T t = new T();
  1831. // 获得此模型的公共属性
  1832. PropertyInfo[] propertys = t.GetType().GetProperties();
  1833. foreach (PropertyInfo pi in propertys)
  1834. {
  1835. tempName = pi.Name;
  1836. // 检查DataTable是否包含此列
  1837. if (dt.Columns.Contains(tempName))
  1838. {
  1839. // 判断此属性是否有Setter
  1840. if (!pi.CanWrite) continue;
  1841. object value = dr[tempName];
  1842. if (value != DBNull.Value)
  1843. pi.SetValue(t, value, null);
  1844. }
  1845. }
  1846. ts.Add(t);
  1847. }
  1848. return ts;
  1849. }
  1850. }
  1851. #endregion
  1852. }
  1853. }