SAPDataLogicPartial.cs 96 KB

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