UpdateL1BasicinfoExcutor.cs 5.9 KB

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