UpdateL1BasicinfoExcutor.cs 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  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. var tokendata = BllHelper.GetToken(request.token);
  21. if (tokendata == null)
  22. {
  23. rslt.ErrMsg = "会话已经中断,请重新登录";
  24. return;
  25. }
  26. UpdateL1Basic(rslt);
  27. }
  28. private static void UpdateL1Basic(UpdateL1BasicinfoResponse rslt)
  29. {
  30. using (var con = GlobalVar.ConnectionString.NewSqlConnection())
  31. using (var cmd = con.CreateCommand())
  32. {
  33. con.Open();
  34. #region 同步u_mtrldef物料资料
  35. var maxMtrlModdate = "";
  36. cmd.CommandText = @"
  37. SELECT MAX(MaxAmount) AS moddate
  38. FROM (
  39. SELECT MAX(moddate) AS MaxAmount
  40. FROM u_mtrldef
  41. UNION ALL
  42. SELECT MAX(opdate)
  43. FROM u_mtrldef
  44. UNION ALL
  45. SELECT MAX(secauditdate)
  46. FROM u_mtrldef
  47. ) AS SubQuery;
  48. ";
  49. cmd.Parameters.Clear();
  50. using (var reader = cmd.ExecuteReader())
  51. {
  52. if (reader.Read())
  53. {
  54. maxMtrlModdate = Convert.ToDateTime(reader["moddate"]).ToString("yyyy-MM-dd HH:mm:ss.fff");
  55. }
  56. }
  57. var mtrldefList = new List<u_mtrldef>();
  58. var erpHelper = HelperBase.GetHelper<ERPHelper>(null);
  59. var parameters = new JObject();
  60. parameters.Add("moddate", JToken.FromObject(maxMtrlModdate));
  61. parameters.Add("flag", 2);
  62. parameters.Add("pageindex", JToken.FromObject(0));
  63. parameters.Add("pagesize", JToken.FromObject(0));
  64. mtrldefList = erpHelper.GetERPList<u_mtrldef>("GetL1Mtrldef", parameters);
  65. if (mtrldefList.Count > 0)
  66. {
  67. var outputFields =
  68. "mtrlid,mtrlcode,mtrlname,mtrlorigin,mtrltype,unit,mtrlmode,mtrlsectype,zxmtrlmode,flag,secauditdate" +
  69. ",fjcnt,status_config,woodcode_config,pcode_config,statustype,woodcodetype,pcodetype,scid" +
  70. ",handtype,mtrlengname,barcode,dscrp,issuliao,isuse,iflimitprice,net_weight,gross_weight,cubage,prdpackcode,opdate,opemp,moddate,lspacklimit,planprice";
  71. foreach (var mtrl in mtrldefList)
  72. {
  73. DbSqlHelper.InsertOrUpdate(cmd, mtrl, outputFields);
  74. }
  75. }
  76. rslt.mtrlnum = mtrldefList.Count;
  77. #endregion
  78. #region 同步工组资料
  79. var maxWrkModdate = "";
  80. cmd.CommandText = @"
  81. SELECT MAX(MaxAmount) AS moddate
  82. FROM (
  83. SELECT MAX(moddate) AS MaxAmount
  84. FROM u_sc_workgroup_erp
  85. UNION ALL
  86. SELECT MAX(opdate)
  87. FROM u_sc_workgroup_erp
  88. ) AS SubQuery;
  89. ";
  90. cmd.Parameters.Clear();
  91. using (var reader = cmd.ExecuteReader())
  92. {
  93. if (reader.Read())
  94. {
  95. maxWrkModdate = Convert.ToDateTime(reader["moddate"]).ToString("yyyy-MM-dd HH:mm:ss.fff");
  96. }
  97. }
  98. parameters = new JObject();
  99. parameters.Add("moddate", JToken.FromObject(maxWrkModdate));
  100. var workgroupList = erpHelper.GetERPList<u_sc_workgroup_erp>("GetSCWorkgroupList", parameters);
  101. if (workgroupList.Count > 0)
  102. {
  103. var outputFields =
  104. "wrkGrpid,wrkgrpcode,wrkGrpName,ifjj,ifprint,handtype,sonflag,parentid,inuse,storageid,opdate,opemp,moddate," +
  105. "modemp,ifwkpmtrlware,dscrp,empnum,avggz,jdtype,jdnum,tasktype,sys_changetime,userate,deptid,OTHour,shortrate," +
  106. "iflastfinish,barcode_check,ifauto_mode,ifbj,jjamt,finflowop";
  107. foreach (var item in workgroupList)
  108. {
  109. DbSqlHelper.InsertOrUpdate(cmd, item, outputFields);
  110. }
  111. }
  112. rslt.wkgnum = workgroupList.Count;
  113. #endregion
  114. #region 同步u_mtrltype物料类型
  115. parameters = new JObject();
  116. var mtrltypeList = erpHelper.GetERPList<u_mtrltype_erp>("GetL1Mtrltype", parameters);
  117. if (mtrltypeList.Count > 0)
  118. {
  119. cmd.CommandText = @"DELETE u_mtrltype_erp";
  120. cmd.Parameters.Clear();
  121. cmd.ExecuteNonQuery();
  122. var outputFields = "mtrltypeid,mtrltype,handtype,sonflag,parentid,mtrlprp,typecode,typecodestr";
  123. foreach (var item in mtrltypeList)
  124. {
  125. DbSqlHelper.InsertOrUpdate(cmd, item, outputFields);
  126. }
  127. }
  128. rslt.mtrltypenum = mtrltypeList.Count;
  129. #endregion
  130. }
  131. }
  132. }
  133. }