UpdateL1BasicinfoExcutor.cs 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data.SqlClient;
  4. using JLHHJSvr.BLL;
  5. using JLHHJSvr.Com;
  6. using JLHHJSvr.Com.Model;
  7. using JLHHJSvr.Helper;
  8. using JLHHJSvr.Tools;
  9. using LJLib.DAL.SQL;
  10. using LJLib.Net.SPI.Server;
  11. using LJLib.SQLEX;
  12. using Newtonsoft.Json.Linq;
  13. namespace JLHHJSvr.Excutor
  14. {
  15. internal sealed class UpdateL1BasicinfoExcutor : ExcutorBase<UpdateL1BasicinfoRequest, UpdateL1BasicinfoResponse>
  16. {
  17. Dictionary<string, object> replacements = new Dictionary<string, object>();
  18. protected override void ExcuteInternal(UpdateL1BasicinfoRequest request, object state, UpdateL1BasicinfoResponse rslt)
  19. {
  20. UpdateL1Basic(rslt);
  21. }
  22. private static void UpdateL1Basic(UpdateL1BasicinfoResponse rslt)
  23. {
  24. using (var con = GlobalVar.ConnectionString.NewSqlConnection())
  25. using (var cmd = con.CreateCommand())
  26. {
  27. con.Open();
  28. #region 同步u_mtrldef物料资料
  29. var maxMtrlModdate = "";
  30. cmd.CommandText = @"
  31. SELECT MAX(MaxAmount) AS moddate
  32. FROM (
  33. SELECT MAX(moddate) AS MaxAmount
  34. FROM u_mtrldef
  35. UNION ALL
  36. SELECT MAX(opdate)
  37. FROM u_mtrldef
  38. UNION ALL
  39. SELECT MAX(secauditdate)
  40. FROM u_mtrldef
  41. ) AS SubQuery;
  42. ";
  43. cmd.Parameters.Clear();
  44. using (var reader = cmd.ExecuteReader())
  45. {
  46. if (reader.Read())
  47. {
  48. maxMtrlModdate = Convert.ToDateTime(reader["moddate"]).ToString("yyyy-MM-dd HH:mm:ss.fff");
  49. }
  50. }
  51. var mtrldefList = new List<u_mtrldef>();
  52. var erpHelper = HelperBase.GetHelper<ERPHelper>(null);
  53. var parameters = new JObject();
  54. parameters.Add("moddate", JToken.FromObject(maxMtrlModdate));
  55. parameters.Add("flag", 2);
  56. parameters.Add("pageindex", JToken.FromObject(0));
  57. parameters.Add("pagesize", JToken.FromObject(0));
  58. mtrldefList = erpHelper.GetERPList<u_mtrldef>("GetL1Mtrldef", parameters);
  59. if (mtrldefList.Count > 0)
  60. {
  61. var outputFields =
  62. "mtrlid,mtrlcode,mtrlname,mtrlorigin,mtrltype,unit,mtrlmode,mtrlsectype,zxmtrlmode,flag,secauditdate" +
  63. ",fjcnt,status_config,woodcode_config,pcode_config,statustype,woodcodetype,pcodetype,scid" +
  64. ",handtype,mtrlengname,barcode,dscrp,issuliao,isuse,iflimitprice,net_weight,gross_weight,cubage,prdpackcode,opdate,opemp,moddate,lspacklimit,planprice";
  65. foreach (var mtrl in mtrldefList)
  66. {
  67. DbSqlHelper.InsertOrUpdate(cmd, mtrl, outputFields);
  68. }
  69. }
  70. rslt.mtrlnum = mtrldefList.Count;
  71. #endregion
  72. #region 同步工组资料
  73. var maxWrkModdate = "";
  74. cmd.CommandText = @"
  75. SELECT MAX(MaxAmount) AS moddate
  76. FROM (
  77. SELECT MAX(moddate) AS MaxAmount
  78. FROM u_sc_workgroup_erp
  79. UNION ALL
  80. SELECT MAX(opdate)
  81. FROM u_sc_workgroup_erp
  82. ) AS SubQuery;
  83. ";
  84. cmd.Parameters.Clear();
  85. using (var reader = cmd.ExecuteReader())
  86. {
  87. if (reader.Read())
  88. {
  89. maxWrkModdate = Convert.ToDateTime(reader["moddate"]).ToString("yyyy-MM-dd HH:mm:ss.fff");
  90. }
  91. }
  92. parameters = new JObject();
  93. parameters.Add("moddate", JToken.FromObject(maxWrkModdate));
  94. var workgroupList = erpHelper.GetERPList<u_sc_workgroup_erp>("GetSCWorkgroupList", parameters);
  95. if (workgroupList.Count > 0)
  96. {
  97. var outputFields =
  98. "wrkGrpid,wrkgrpcode,wrkGrpName,ifjj,ifprint,handtype,sonflag,parentid,inuse,storageid,opdate,opemp,moddate," +
  99. "modemp,ifwkpmtrlware,dscrp,empnum,avggz,jdtype,jdnum,tasktype,sys_changetime,userate,deptid,OTHour,shortrate," +
  100. "iflastfinish,barcode_check,ifauto_mode,ifbj,jjamt,finflowop";
  101. foreach (var item in workgroupList)
  102. {
  103. DbSqlHelper.InsertOrUpdate(cmd, item, outputFields);
  104. }
  105. }
  106. rslt.wkgnum = workgroupList.Count;
  107. #endregion
  108. #region 同步u_mtrltype物料类型
  109. parameters = new JObject();
  110. var mtrltypeList = erpHelper.GetERPList<u_mtrltype_erp>("GetL1Mtrltype", parameters);
  111. if (mtrltypeList.Count > 0)
  112. {
  113. cmd.CommandText = @"DELETE u_mtrltype_erp";
  114. cmd.Parameters.Clear();
  115. cmd.ExecuteNonQuery();
  116. var outputFields = "mtrltypeid,mtrltype,handtype,sonflag,parentid,mtrlprp,typecode,typecodestr";
  117. foreach (var item in mtrltypeList)
  118. {
  119. DbSqlHelper.InsertOrUpdate(cmd, item, outputFields);
  120. }
  121. }
  122. rslt.mtrltypenum = mtrltypeList.Count;
  123. #endregion
  124. }
  125. }
  126. }
  127. }