SAPDataLogicPartial.cs 94 KB

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