自动化立体仓库 - WMS系统
#
1
1 天以前 371af76976cec152184123fac0073efcba2b5a70
src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java
@@ -43,6 +43,8 @@
    private String imOtherinbill;
    @Value("${erp.address.imProductinbillReport}")
    private String imProductinbillReport;
    @Value("${erp.address.imSaloutbillSave}")
    private String imSaloutbillSave;
    @Autowired
    private OrderService orderService;
@@ -178,22 +180,44 @@
                    JSONObject billentryLk = new JSONObject()
                            .fluentPut("id", 0L)
                            .fluentPut("seq", orderDetl.getLineNumber())
                            .fluentPut("billentry_lk_stableid", 677270092232273922L)
                            .fluentPut("billentry_lk_stableid", 1014628189722381313L)
                            .fluentPut("billentry_lk_sbillid", Long.parseLong(order.getItemName()))  // 主单ID
                            .fluentPut("billentry_lk_sid", Long.parseLong(orderDetl.getThreeCode()))  // 明细ID
                            .fluentPut("billentry_lk_baseqty_old", orderDetl.getAnfme())  // ERP数量
                            .fluentPut("billentry_lk_baseqty", qty);  // 作业数量
                            .fluentPut("billentry_lk_sid", Long.parseLong(orderDetl.getThreeCode())); // 明细ID
//                            .fluentPut("billentry_lk_baseqty_old", orderDetl.getErpAnfme())  // ERP数量
//                            .fluentPut("billentry_lk_baseqty", qty);  // 作业数量
                    billentryLkArray1.add(billentryLk);
                    // 创建 billentry 对象,填充缺失的字段
                    JSONObject billentry = new JSONObject()
                            .fluentPut("id", 0L)
                            .fluentPut("warehouse_number", orderDetl.getManu())  // 仓库编号
                            .fluentPut("qty", qty)  // 数量
                            .fluentPut("baseqty", qty)  // 数量
                            .fluentPut("prdqty", qty)  // 数量
                            .fluentPut("baseqty", orderDetl.getErpAnfme())
                            .fluentPut("ownertype", "bos_org")
                            .fluentPut("keepertype", "bos_org")
                            .fluentPut("keeper_number", "BU-00001")
                            .fluentPut("owner_number", "BU-00001")
                            .fluentPut("manuentry", orderDetl.getLineNumber())
                            .fluentPut("prdunitid_number", "个")
                            .fluentPut("warehouse_number", "CK-002")
                            .fluentPut("srcbillentity", "pom_mftorderreport")
                            .fluentPut("srcbillid", Long.parseLong(order.getItemName()))
                            .fluentPut("srcbillentryid", Long.parseLong(orderDetl.getThreeCode()))
                            .fluentPut("srcbillnumber", order.getOrderNo())
                            .fluentPut("srcbillentryseq", orderDetl.getLineNumber())
                            .fluentPut("outownertype", "bos_org")
                            .fluentPut("outkeepertype", "bos_org")
                            .fluentPut("prdqty", qty)
                            .fluentPut("manubill", order.getDefNumber())
                            .fluentPut("producttype", "C")  // 物料编号
                            .fluentPut("qualitystatus", "A")  // 物料编号
                            .fluentPut("manubillid", orderDetl.getModel())
                            .fluentPut("manuentryid", orderDetl.getBrand())
                            .fluentPut("producttype", "C")
                            .fluentPut("qualitystatus", "A")
                            .fluentPut("eap7_textfield", orderDetl.getMaktx())
                            .fluentPut("material_number", orderDetl.getMatnr())
                            .fluentPut("invtype_number", "110")
                            .fluentPut("qualitystatus", "A")
                            .fluentPut("billentry_lk", billentryLkArray1);
                    billentryArray1.add(billentry);
@@ -203,12 +227,19 @@
                                new JSONObject()
                                        .fluentPut("billno", UUID.randomUUID().toString().replace("-", "").substring(0, 16))
                                        .fluentPut("trdbillno", UUID.randomUUID().toString().replace("-", ""))
                                        .fluentPut("billstatus", "C")
                                        .fluentPut("billstatus", "A")
                                        .fluentPut("invscheme_number", "331")
                                        .fluentPut("biztype_number", "330")
                                        .fluentPut("org_number", "BU-00001")
                                        .fluentPut("bizorg_number", "BU-00001")
                                        .fluentPut("biztime", sdf1.format(now1))
                                        .fluentPut("productionorg_number", "BU-00001")
                                        .fluentPut("dept_number", "Org-00002")
                                        .fluentPut("billentry", billentryArray1)  // 将 billentry 数组添加到请求参数
                        )));
            case "STK_MISCELLANEOUS": // 其他入库单
                path = imOtherinbill;
            case "STK_imSaloutbill":
                path = imSaloutbillSave;
                billentryArray = new JSONArray();
                for (OrderDetl orderDetl : orderDetlList) {
                    if (orderDetl.getQty() == 0) {
@@ -220,28 +251,72 @@
                            .fluentPut("id", 0L)
                            .fluentPut("material_number", orderDetl.getMatnr())       // 物料编码
                            .fluentPut("qty", qty)                    // 数量
                            .fluentPut("warehouse_number", "CK001")     // 仓库
                            .fluentPut("invstatus_number", "110")
                            .fluentPut("invtype_number", "110")
                            .fluentPut("outinvstatus_number", "110")
                            .fluentPut("outkeepertype", "bos_org")     // 仓库
                            .fluentPut("outkeeper_number", "BU-00001")
                            .fluentPut("outinvtype_number", "110")
                            .fluentPut("linetype_number", "010");
                            .fluentPut("warehouse_number", "CK-002")
                            .fluentPut("outinvstatus_number", "110")
                            .fluentPut("outownertype", "bos_org")
                            .fluentPut("outowner_number", "BU-00001")
                            .fluentPut("keepertype", "bos_org")
                            .fluentPut("eap7_textfield3", orderDetl.getBoxType3())
                            .fluentPut("ownertype", "bos_org")
                            .fluentPut("eap7_decimalfield", orderDetl.getQty())
                            .fluentPut("seq", orderDetl.getLineNumber());
                    billentryArray.add(billentry);
                }
                Date nowMis = new Date();
                return new JSONObject()
                        .fluentPut("data", new JSONArray(Arrays.asList(
                                new JSONObject()
//                                        .fluentPut("id", 0L)
                                        .fluentPut("billno", order.getOrderNo())
//                                        .fluentPut("bookdate", sdf1.format(nowMis))
                                        .fluentPut("id", 0L)
                                        .fluentPut("billno", UUID.randomUUID().toString().replace("-", "").substring(0, 16))
                                        .fluentPut("bizorg_number", "BU-00001")
                                        .fluentPut("dept_number", "Org-00002")
                                        .fluentPut("billstatus", "B")
                                        .fluentPut("customer_number", "Cus-000004")
                                        .fluentPut("biztime", sdf1.format(nowMis))
//                                        .fluentPut("biztype_number", "354")
//                                        .fluentPut("billtype_number", "im_OtherInBill_STD_BT_S")
//                                        .fluentPut("org_number", "BU-00001")
//                                        .fluentPut("invscheme_number", "354")
                                        .fluentPut("biztype_number", "210")
                                        .fluentPut("bizdept_number", "Org-00002")
                                        .fluentPut("org_number", "BU-00001")
                                        .fluentPut("invscheme_number", "210")
                                        .fluentPut("billentry", billentryArray)
                        )));
//            case "STK_MISCELLANEOUS": // 其他入库单
//                path = imOtherinbill;
//                billentryArray = new JSONArray();
//                for (OrderDetl orderDetl : orderDetlList) {
//                    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", qty)                    // 数量
//                            .fluentPut("warehouse_number", "CK001")     // 仓库
//                            .fluentPut("invstatus_number", "110")
//                            .fluentPut("invtype_number", "110")
//                            .fluentPut("outinvstatus_number", "110")
//                            .fluentPut("outinvtype_number", "110")
//                            .fluentPut("linetype_number", "010");
//                    billentryArray.add(billentry);
//                }
//                Date nowMis = new Date();
//                return new JSONObject()
//                        .fluentPut("data", new JSONArray(Arrays.asList(
//                                new JSONObject()
////                                        .fluentPut("id", 0L)
//                                        .fluentPut("billno", order.getOrderNo())
////                                        .fluentPut("bookdate", sdf1.format(nowMis))
//                                        .fluentPut("biztime", sdf1.format(nowMis))
////                                        .fluentPut("biztype_number", "354")
////                                        .fluentPut("billtype_number", "im_OtherInBill_STD_BT_S")
////                                        .fluentPut("org_number", "BU-00001")
////                                        .fluentPut("invscheme_number", "354")
//                                        .fluentPut("billentry", billentryArray)
//                        )));
            case "STK_MisDelivery": // 其他出库单
                path = imOtheroutbill;
                billentryArray = new JSONArray();
@@ -331,12 +406,9 @@
                        JSONObject resultItem = resultArray.getJSONObject(i);
                        String billNo = resultItem.getString("number");  // 获取返回的单据号
                        String billId = resultItem.getString("id");      // 获取返回的ID
                        // 判断返回的单据号与订单号是否一致
                        if (billNo != null && billNo.equals(order.getOrderNo())) {
                            // 如果一致,设置订单的 number
                            order.setNumber(billId);
                            log.info("订单号 {} 与返回的单据号匹配,设置订单 ID 为 {}", order.getOrderNo(), billId);
                        }
                        order.setNumber(billId);
                        order.setShipCode(add.getString("billno"));
                    }
                } else {
                    log.error("接口调用失败,失败的操作数量: {}", failCount);