AutoDockItemService.java 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. package service;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import common.ServiceController;
  5. import common.YosException;
  6. import common.data.Row;
  7. import common.data.Rows;
  8. import common.data.RowsMap;
  9. import common.data.SQLFactory;
  10. import org.apache.commons.lang.StringEscapeUtils;
  11. import org.apache.commons.lang.StringUtils;
  12. import restcontroller.webmanage.sale.item.Item;
  13. import utility.ERPDocking;
  14. import java.text.SimpleDateFormat;
  15. import java.util.ArrayList;
  16. import java.util.Calendar;
  17. import java.util.Date;
  18. public class AutoDockItemService extends ServiceController {
  19. @Override
  20. public void serviceRun() throws YosException {
  21. ArrayList<String> sqlList = new ArrayList<>();
  22. String siteid ="CCYOSG";
  23. Rows itemRows = dbConnect.runSqlQuery("SELECT itemid,itemno from plm_item WHERE siteid = '" + siteid + "' AND status = '新建' ");
  24. Rows itemRowsAll = dbConnect.runSqlQuery("SELECT itemid,itemno,status from plm_item WHERE siteid = '" + siteid + "'");
  25. //单位
  26. Rows unitRows = dbConnect.runSqlQuery("SELECT unitid,unitname from plm_unit WHERE siteid = '" + siteid + "'");
  27. RowsMap unitRowsMap = unitRows.toRowsMap("unitname");
  28. RowsMap itemRowsMap = itemRows.toRowsMap("itemno");
  29. RowsMap itemRowsMapAll = itemRowsAll.toRowsMap("itemno");
  30. ERPDocking erpDocking =new ERPDocking();
  31. Rows servicesRows = dbConnect.runSqlQuery("select lastruntime,lastruntime1 from sys_services where classname='AutoDockItemService'");
  32. Date date =new Date();
  33. if(!servicesRows.isEmpty()){
  34. if(StringUtils.isNotBlank(servicesRows.get(0).getString("lastruntime1"))){
  35. date=servicesRows.get(0).getDate("lastruntime1");
  36. }
  37. }
  38. dbConnect.runSqlUpdate("update sys_services set lastruntime1=now() where classname='AutoDockItemService'");
  39. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  40. JSONArray jsonArray = erpDocking.getErpItemRows(simpleDateFormat.format(date), 100000, 1);
  41. if(!jsonArray.isEmpty()){
  42. for (Object object:jsonArray) {
  43. JSONObject jsonObject =(JSONObject)object;
  44. if(!itemRowsMapAll.containsKey(jsonObject.getString("fitemno"))){
  45. long itemid = createTableID("plm_item");
  46. SQLFactory sqlFactory = new SQLFactory(new Item(jsonObject), "货品档案新增");
  47. sqlFactory.addParameter("siteid", siteid);
  48. sqlFactory.addParameter("itemid", createTableID("plm_item"));
  49. sqlFactory.addParameter("username", "admin");
  50. sqlFactory.addParameter("userid", 1);
  51. sqlFactory.addParameter("itemno", jsonObject.getString("fitemno"));
  52. if(unitRowsMap.containsKey(jsonObject.getString("funit"))){
  53. sqlFactory.addParameter("unitid", unitRowsMap.get(jsonObject.getString("funit")).get(0).getLong("unitid"));
  54. }else {
  55. sqlFactory.addParameter("unitid", 0);
  56. }
  57. sqlFactory.addParameter("isauxunit", 0);
  58. sqlFactory.addParameter("unitgroupid","null");
  59. sqlFactory.addParameter("itemname", jsonObject.getString("fitemname"));
  60. sqlFactory.addParameter("isonsale", 0);
  61. sqlFactory.addParameter("model", jsonObject.getString("fmodel"));
  62. sqlFactory.addParameter("spec", jsonObject.getString("spec"));
  63. // 订单起订量
  64. sqlFactory.addParameter("orderminqty", 1);
  65. // 订单增量
  66. sqlFactory.addParameter("orderaddqty", 1);
  67. // 订单起订量控制单位(0:主单位;1:辅助单位)
  68. sqlFactory.addParameter("orderminqty_auxunit", 0);
  69. // 订单增量控制单位(0:主单位;1:辅助单位)
  70. sqlFactory.addParameter("orderaddqty_auxunit", 0);
  71. // 说明
  72. sqlFactory.addParameter("remarks", "");
  73. // 商品条形码
  74. sqlFactory.addParameter("barcode", "");
  75. // 是否单品管理
  76. sqlFactory.addParameter("skucontrol",0);
  77. // 是否批次管理
  78. sqlFactory.addParameter("batchcontrol", jsonObject.getBooleanValue("fisbatch"));
  79. // 毛重(g)
  80. sqlFactory.addParameter("grossweight", 0);
  81. // 净重(g)
  82. sqlFactory.addParameter("weight", 0);
  83. // 高度(mm)
  84. sqlFactory.addParameter("height", 0);
  85. // 宽度(mm)
  86. sqlFactory.addParameter("width", 0);
  87. // 长度(mm)
  88. sqlFactory.addParameter("length", 0);
  89. // 交期
  90. sqlFactory.addParameter("delivery", 1);
  91. // 牌价
  92. sqlFactory.addParameter("marketprice", 0);
  93. // 是否工具
  94. sqlFactory.addParameter("istool", 0);
  95. // 产品标准
  96. sqlFactory.addParameter("standards","");
  97. // 库存缺货标准
  98. sqlFactory.addParameter("stockstatus2", 1);
  99. // 库存充足标准
  100. sqlFactory.addParameter("stockstatus1", 1);
  101. // 保修期(年)
  102. sqlFactory.addParameter("warrantyday", 1);
  103. // 是否营销物料
  104. sqlFactory.addParameter("iswuliao",1);
  105. // 是否服务物料
  106. sqlFactory.addParameter("isservice", 0);
  107. sqlFactory.addParameter("color", jsonObject.getStringValue("fcolor"));
  108. sqlFactory.addParameter("cheek", jsonObject.getStringValue("fsizedescription"));
  109. sqlFactory.addParameter("delistingstatus","");
  110. sqlFactory.addParameter("ismodule", 0);
  111. sqlFactory.addParameter("packageqty", 0);
  112. sqlFactory.addParameter("iswoodproducts", 0);
  113. sqlFactory.addParameter("sa_customschemeid", 0);
  114. sqlFactory.addParameter("financeclasstype", jsonObject.getStringValue("fdescription"));
  115. sqlFactory.addParameter("stockno", jsonObject.getStringValue("fstockno"));
  116. sqlFactory.addParameter("volume", jsonObject.getBigDecimalValue("fvolume"));
  117. sqlList.add(sqlFactory.getSQL());
  118. // 货品档案扩展属性字段表
  119. sqlFactory = new SQLFactory(new Item(jsonObject), "货品档案-扩展新增");
  120. sqlFactory.addParameter("siteid", siteid);
  121. sqlFactory.addParameter("userid", 1);
  122. sqlFactory.addParameter("username", "admin");
  123. sqlFactory.addParameter("plm_itemextendid", createTableID("plm_itemextend"));
  124. sqlFactory.addParameter("itemid", itemid);
  125. sqlFactory.addParameter("material", jsonObject.getString("fmaterialdes"));
  126. sqlFactory.addParameter("pressure", "");
  127. sqlFactory.addParameter("caliber", "");
  128. sqlFactory.addParameter("butterflyplatedrive", "");
  129. sqlFactory.addParameter("connection", "");
  130. sqlFactory.addParameter("valveplatematerial", "");
  131. sqlFactory.addParameter("bodymaterial", "");
  132. sqlFactory.addParameter("actuatortype", "");
  133. sqlFactory.addParameter("actuatorbrand", "");
  134. sqlFactory.addParameter("isbutterfly", 0);
  135. sqlFactory.addParameter("erpitemno", jsonObject.getString("fitemno"));
  136. sqlFactory.addParameter("erpitemname", jsonObject.getString("fitemname"));
  137. sqlFactory.addParameter("specalnote","");
  138. sqlFactory.addParameter("prodline", "");
  139. sqlFactory.addParameter("device", "");
  140. sqlList.add(sqlFactory.getSQL());
  141. }else{
  142. if(itemRowsMapAll.get(jsonObject.getString("fitemno")).get(0).getString("status").equals("新建")){
  143. sqlList.add("update plm_item set itemname='"+jsonObject.getString("fitemname")+"',volume='"+ jsonObject.getStringValue("fvolume")+"' where itemid="+itemRowsMapAll.get(jsonObject.getString("fitemno")).get(0).getLong("itemid"));
  144. }
  145. }
  146. }
  147. }
  148. dbConnect.runSqlUpdate(sqlList);
  149. }
  150. }