| | |
| | | import com.zy.asrs.service.DocTypeService; |
| | | import com.zy.asrs.service.OrderService; |
| | | import com.zy.asrs.service.impl.ErpSecretServiceImpl; |
| | | import com.zy.asrs.service.impl.MatServiceImpl; |
| | | import com.zy.asrs.service.impl.OrderDetlPakinServiceImpl; |
| | | import com.zy.asrs.service.impl.OrderDetlServiceImpl; |
| | | import com.zy.asrs.task.AbstractHandler; |
| | |
| | | private String imOtheroutbill; |
| | | @Value("${erp.address.imOtherinbill}") |
| | | private String imOtherinbill; |
| | | @Value("${erp.address.imProductinbillReport}") |
| | | private String imProductinbillReport; |
| | | |
| | | @Autowired |
| | | private OrderService orderService; |
| | |
| | | @Value("${erp.login.xAcfwIdentity}") |
| | | private String xAcfwIdentity; |
| | | String path; |
| | | @Autowired |
| | | private MatServiceImpl matService; |
| | | |
| | | @Transactional |
| | | public ReturnT<String> start(Order order) { |
| | | SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | |
| | | JSONArray billentryArray = new JSONArray(); // 用于存储 billentry 对象 |
| | | String suppCode = null; // 供应商 |
| | | String boxType2 = null; // 货主/货源 |
| | | // 遍历订单详情 |
| | | Date now = new Date(); |
| | | |
| | | for (OrderDetl orderDetl : orderDetlList) { |
| | | suppCode = orderDetl.getSuppCode(); |
| | | boxType2 = orderDetl.getBoxType2(); |
| | | if (orderDetl.getQty() == 0) { |
| | | continue; |
| | | } |
| | | Mat mat = matService.selectByMatnr(orderDetl.getMatnr()); |
| | | Double qty = orderDetl.getQty()*mat.getSafeQty(); |
| | | Double qtytotal = orderDetl.getAnfme()*mat.getSafeQty(); |
| | | // JSONArray idArr = new JSONArray(); |
| | | // idArr.add(0L); |
| | | // 创建 billentry_lk 对象 |
| | |
| | | .fluentPut("billentry_lk_stableid", 677270092232273922L) |
| | | .fluentPut("billentry_lk_sbillid", Long.parseLong(order.getItemName())) // 主单ID |
| | | .fluentPut("billentry_lk_sid", Long.parseLong(orderDetl.getThreeCode())) // 明细ID |
| | | .fluentPut("billentry_lk_baseqty_old", orderDetl.getErpAnfme()) // ERP数量 |
| | | .fluentPut("billentry_lk_baseqty", orderDetl.getQty()); // 作业数量 |
| | | .fluentPut("billentry_lk_baseqty_old", qtytotal) // ERP数量 |
| | | .fluentPut("billentry_lk_baseqty", qty); // 作业数量 |
| | | billentryLkArray.add(billentryLk); |
| | | // 创建 billentry 对象,填充缺失的字段 |
| | | JSONObject billentry = new JSONObject() |
| | |
| | | .fluentPut("invtype_number", "110") // 库存类型 |
| | | .fluentPut("outinvstatus_number", "110") |
| | | .fluentPut("linetype_number", "010") // 行号类型 |
| | | .fluentPut("qty", orderDetl.getQty()) // 数量 |
| | | .fluentPut("qty", qty) // 数量 |
| | | .fluentPut("material_number", orderDetl.getMatnr()) // 物料编号 |
| | | .fluentPut("billentry_lk", billentryLkArray); |
| | | |
| | |
| | | .fluentPut("supplier_number", suppCode) // 供应商编号 |
| | | .fluentPut("billentry", billentryArray) // 将 billentry 数组添加到请求参数 |
| | | ))); |
| | | case "PRD_MORPT": // 生产汇报单 |
| | | JSONArray billentryLkArray1 = new JSONArray(); |
| | | JSONArray billentryArray1 = new JSONArray(); // 用于存储 billentry 对象 |
| | | String suppCode1 = null; // 供应商 |
| | | String boxType21 = null; // 货主/货源 |
| | | Date now1 = new Date(); |
| | | path = imProductinbillReport; |
| | | for (OrderDetl orderDetl : orderDetlList) { |
| | | suppCode1 = orderDetl.getSuppCode(); |
| | | boxType21 = orderDetl.getBoxType2(); |
| | | if (orderDetl.getQty() == 0) { |
| | | continue; |
| | | } |
| | | Mat mat = matService.selectByMatnr(orderDetl.getMatnr()); |
| | | Double qty = orderDetl.getQty()*mat.getSafeQty(); |
| | | Double qtytotal = orderDetl.getAnfme()*mat.getSafeQty(); |
| | | // JSONArray idArr = new JSONArray(); |
| | | // idArr.add(0L); |
| | | // 创建 billentry_lk 对象 |
| | | JSONObject billentryLk = new JSONObject() |
| | | .fluentPut("id", 0L) |
| | | .fluentPut("seq", orderDetl.getLineNumber()) |
| | | .fluentPut("billentry_lk_stableid", 677270092232273922L) |
| | | .fluentPut("billentry_lk_sbillid", Long.parseLong(order.getItemName())) // 主单ID |
| | | .fluentPut("billentry_lk_sid", Long.parseLong(orderDetl.getThreeCode())) // 明细ID |
| | | .fluentPut("billentry_lk_baseqty_old", qtytotal) // ERP数量 |
| | | .fluentPut("billentry_lk_baseqty", qty); // 作业数量 |
| | | billentryLkArray1.add(billentryLk); |
| | | // 创建 billentry 对象,填充缺失的字段 |
| | | JSONObject billentry = new JSONObject() |
| | | .fluentPut("id", 0L) |
| | | .fluentPut("warehouse_number", orderDetl.getManu()) // 仓库编号 |
| | | .fluentPut("invstatus_number", "110") // 库存状态 |
| | | .fluentPut("invtype_number", "110") // 库存类型 |
| | | .fluentPut("outinvstatus_number", "110") |
| | | .fluentPut("linetype_number", "010") // 行号类型 |
| | | .fluentPut("qty", qty) // 数量 |
| | | .fluentPut("material_number", orderDetl.getMatnr()) // 物料编号 |
| | | .fluentPut("billentry_lk", billentryLkArray1); |
| | | |
| | | billentryArray1.add(billentry); |
| | | } |
| | | return new JSONObject() |
| | | .fluentPut("data", new JSONArray(Arrays.asList( |
| | | new JSONObject() |
| | | .fluentPut("billno", UUID.randomUUID().toString().replace("-", "").substring(0, 16)) |
| | | .fluentPut("trdbillno", UUID.randomUUID().toString().replace("-", "")) |
| | | .fluentPut("billtype_number", "im_PurInBill_STD_BT_S") |
| | | .fluentPut("biztime", sdf1.format(now1)) |
| | | .fluentPut("exratedate", sdf1.format(now1)) |
| | | .fluentPut("bizorg_number", boxType21) |
| | | .fluentPut("biztype_number", "110") // 货主/货源 |
| | | .fluentPut("org_number", boxType21) // 货主/货源 |
| | | .fluentPut("paymode", "CREDIT") |
| | | .fluentPut("invscheme_number", "110") |
| | | .fluentPut("billtype_number", "im_PurInBill_STD_BT_S") |
| | | .fluentPut("supplier_number", suppCode1) // 供应商编号 |
| | | .fluentPut("billentry", billentryArray1) // 将 billentry 数组添加到请求参数 |
| | | ))); |
| | | case "STK_MISCELLANEOUS": // 其他入库单 |
| | | path = imOtherinbill; |
| | | billentryArray = new JSONArray(); |
| | |
| | | if (orderDetl.getQty() == 0) { |
| | | continue; |
| | | } |
| | | Mat mat = matService.selectByMatnr(orderDetl.getMatnr()); |
| | | Double qty = orderDetl.getQty()*mat.getSafeQty(); |
| | | JSONObject billentry = new JSONObject() |
| | | .fluentPut("id", 0L) |
| | | .fluentPut("material_number", orderDetl.getMatnr()) // 物料编码 |
| | | .fluentPut("qty", orderDetl.getQty()) // 数量 |
| | | .fluentPut("qty", qty) // 数量 |
| | | .fluentPut("warehouse_number", "CK001") // 仓库 |
| | | .fluentPut("invstatus_number", "110") |
| | | .fluentPut("invtype_number", "110") |