SAPDataLogicPartial.cs 94 KB

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