UpdateL1BasicinfoExcutor.cs 5.7 KB

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