自动化立体仓库 - WMS系统
#
1
11 小时以前 0f64ee96e72e34135201f28e033e1b5537031712
#
7个文件已修改
62 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WrkMastAgvHandler.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/ReviewOrderSyncScheduler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ManLocDetlMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -840,11 +840,15 @@
        if (ts == null) {
            throw new CoolException("timestamp 生成失败");
        }
        String barcode = String.valueOf(ts);
        if (barcode.length() > 16) {
            barcode = barcode.substring(0, 16);
        }
        basAgvMast.setBarcode(barcode);
        String locNo = null;
        String staNo = null;
        basAgvMast.setBarcode(Long.toString(ts));
        basAgvMast.setTaskNo(commonService.getWorkNo(0));
        basAgvMast.setSourceStaNo(param.getSourceStaNo());
        basAgvMast.setStaNo(param.getStaNo());
@@ -873,7 +877,7 @@
        basAgvMastService.insert(basAgvMast);
        bindCtnrAndBinParam bindParam = new bindCtnrAndBinParam();
        bindParam.setBarcode(Long.toString(ts));
        bindParam.setBarcode(basAgvMast.getBarcode());
        bindParam.setIndBind("1");
        bindParam.setFloorNo(basAgvMast.getFloorNo());
        bindParam.setLocNo(locNo);
src/main/java/com/zy/asrs/task/handler/WrkMastAgvHandler.java
@@ -24,6 +24,8 @@
    @Autowired
    private BasAgvMastService basAgvMastService;
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private BasAgvLocDetlService basAgvLocDetlService;
    @Autowired
    private BasAgvWrkDetlService basAgvWrkDetlService;
@@ -35,13 +37,17 @@
    private OpenService openService;
    public ReturnT<String> start(BasAgvMast basAgvMast) {
    public ReturnT<String>                           start(BasAgvMast basAgvMast) {
        try {
            Date now = new Date();
            switch (basAgvMast.getIoType()){
                case 0:
                    LocMast sourceLoc0 = locMastService.selectById(basAgvMast.getSourceLocNo());
                    locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", sourceLoc0.getLocNo()));
                    if(basAgvMast.getFloorNo() == 4){
                        basAgvMast.setBarcode(sourceLoc0.getBarcode());
                        basAgvMastService.updateById(basAgvMast);
                    }
                    sourceLoc0.setLocSts("O");
                    sourceLoc0.setBarcode("");
                    sourceLoc0.setModiTime(now);
@@ -51,7 +57,6 @@
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        return FAIL.setMsg("出库 ===>> 修改源库位状态失败; [TaskNo=" + basAgvMast.getTaskNo() + "],[locNo=" + basAgvMast.getSourceLocNo() + "]");
                    }
                    basAgvLocDetlService.delete(new EntityWrapper<BasAgvLocDetl>().eq("loc_no", basAgvMast.getSourceLocNo()));
                    basAgvWrkDetlService.delete(new EntityWrapper<BasAgvWrkDetl>().eq("wrk_no", basAgvMast.getTaskNo()));
                    basAgvMast.setStatus(3);
@@ -67,6 +72,7 @@
                    }
                    // 修改目标库位状态 ==> .locSts
                    locMast1.setLocSts("F");
                    locMast1.setBarcode(sourceLoc1.getBarcode());
                    locMast1.setIoTime(now);
                    locMast1.setModiTime(now);
                    if (!locMastService.updateById(locMast1)) {
@@ -74,21 +80,12 @@
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        return FAIL.setMsg("库位移转 ===>> 修改目标库位状态失败; [TaskNo=" + basAgvMast.getTaskNo() + "],[locNo=" + basAgvMast.getLocNo() + "]");
                    }
                    try{
                        // 转移库存明细数据: 库存号 由工作档源库位变为目标库位
                        locDetlService.updateLocNo(basAgvMast.getLocNo(), basAgvMast.getSourceLocNo());
//                        if (!) {
//                            exceptionHandle("库位移转 ===>> 转移库存明细数据失败;[源库位={0}],[目标库位={1}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo());
//                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//                            return FAIL.setMsg("库位移转 ===>> 转移库存明细数据失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
//                        }
                    } catch (Exception e) {
                        return FAIL.setMsg(e.getMessage());
                    }
                    if (null != sourceLoc1) {
                        sourceLoc1.setBarcode("");
                        sourceLoc1.setLocSts("O");
@@ -104,9 +101,9 @@
                    basAgvLocDetlService.delete(new EntityWrapper<BasAgvLocDetl>().eq("loc_no", basAgvMast.getSourceLocNo()));
                    basAgvWrkDetlService.delete(new EntityWrapper<BasAgvWrkDetl>().eq("wrk_no", basAgvMast.getTaskNo()));
                    basAgvLocDetlService.delete(new EntityWrapper<BasAgvLocDetl>().eq("loc_no", basAgvMast.getLocNo()));
                    basAgvMast.setStatus(3);
                    basAgvMast.setStatus(4);
                    basAgvMastService.updateById(basAgvMast);
                    openService.agvBindAndBin(String.valueOf(basAgvMast.getTaskNo()));
//                    openService.agvBindAndBin(String.valueOf(basAgvMast.getTaskNo()));
                    break;
                case 2:
                    List<LocDetl> locDetls2 = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", basAgvMast.getLocNo()));
@@ -189,7 +186,7 @@
                    basAgvLocDetlService.delete(new EntityWrapper<BasAgvLocDetl>().eq("loc_no", basAgvMast.getLocNo()));
                    basAgvWrkDetlService.delete(new EntityWrapper<BasAgvWrkDetl>().eq("wrk_no", basAgvMast.getTaskNo()));
                    basAgvMast.setStatus(3);
                    if(basAgvMast.getIoType() == 2 && basAgvMast.getFloorNo() == 2){
                    if(basAgvMast.getFloorNo() == 2 || basAgvMast.getFloorNo() == 3){
                        basAgvMast.setStatus(4);
                    }
                    basAgvMastService.updateById(basAgvMast);
src/main/java/com/zy/asrs/task/kingdee/ReviewOrderSyncScheduler.java
@@ -32,7 +32,7 @@
    @Value("${erp.switch.ReviewOrderSwitch}")
    private boolean ReviewOrderSwitch;
    @Scheduled(cron = "0/3 * * * * ? ")
//    @Scheduled(cron = "0/20 * * * * ?")
    @Async("orderThreadPool")
    public void completeAndReport(){
        if(!ReviewOrderSwitch){
src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java
@@ -32,7 +32,7 @@
    @Value("${erp.switch.ReviewOrderSwitch}")
    private boolean ReviewOrderSwitch;
    @Scheduled(cron = "0/3 * * * * ? ")
    @Scheduled(cron = "0/20 * * * * ?")
    @Async("orderThreadPool")
    public void completeAndReport(){
        if(!ReviewOrderSwitch){
src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java
@@ -34,7 +34,7 @@
    @Value("${erp.switch.ReviewOrderSwitch}")
    private boolean ReviewOrderSwitch;
    @Scheduled(cron = "0/3 * * * * ? ")
//    @Scheduled(cron = "0/20 * * * * ?")
    @Async("orderThreadPool")
    public void completeAndReport(){
        if(!ReviewOrderSwitch){
src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java
@@ -98,11 +98,12 @@
                    if (orderDetl.getQty() == 0) {
                        continue;
                    }
                    JSONArray idArr = new JSONArray();
                    idArr.add(0L);   // ✅ 注意必须是 Long 类型的 0L
//                    JSONArray idArr = new JSONArray();
//                    idArr.add(0L);   // ✅ 注意必须是 Long 类型的 0L
//                    Double reportNum = orderDetl.getQty() - orderDetl.getWorkQty();//上报数量减去已上报数量
                    // 创建 billentry_lk 对象
                    JSONObject billentryLk = new JSONObject()
                            .fluentPut("id", idArr)
                            .fluentPut("id", 0L)
                            .fluentPut("seq", orderDetl.getLineNumber())
                            .fluentPut("billentry_lk_stableid", 677270092232273922L)
                            .fluentPut("billentry_lk_sbillid", Long.parseLong(order.getItemName()))  // 主单ID
@@ -112,7 +113,7 @@
                    billentryLkArray.add(billentryLk);
                    // 创建 billentry 对象,填充缺失的字段
                    JSONObject billentry = new JSONObject()
                            .fluentPut("id", idArr)
                            .fluentPut("id", 0L)
                            .fluentPut("warehouse_number", orderDetl.getManu())  // 仓库编号
                            .fluentPut("invstatus_number", "110")  // 库存状态
                            .fluentPut("invtype_number", "110")  // 库存类型
@@ -121,8 +122,9 @@
                            .fluentPut("qty", orderDetl.getQty())  // 数量
                            .fluentPut("material_number", orderDetl.getMatnr())  // 物料编号
                            .fluentPut("billentry_lk", billentryLkArray);
                    billentryArray.add(billentry);
//                    orderDetl.setWorkQty(orderDetl.getQty());
//                    orderDetlService.updateById(orderDetl);//将上报数覆盖到历史上
                }
                Date now = new Date();
                return new JSONObject()
@@ -212,6 +214,7 @@
                        if (billNo != null && billNo.equals(order.getOrderNo())) {
                            // 如果一致,设置订单的 number
                            order.setNumber(billId);
                            orderService.updateById(order);
                            log.info("订单号 {} 与返回的单据号匹配,设置订单 ID 为 {}", order.getOrderNo(), billId);
                        }
                    }
src/main/resources/mapper/ManLocDetlMapper.xml
@@ -301,6 +301,10 @@
        update man_loc_detl set loc_no = #{locNo}
        where node_id = #{nodeId}
    </update>
    <update id="updateLocNo0">
        update man_loc_detl set loc_no = #{newLocNo}
        where loc_no = #{oldLocNo}
    </update>
    <delete id="deleteLocNo0">
        delete from man_loc_detl