SAPDataLogicPartial.cs 72 KB

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