自动化立体仓库 - WMS系统
#
whycq
2024-09-14 07df5b869de0db9b8471df48405683cb28214785
#
11个文件已修改
61 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/AgvBasDevpController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/AgvOpenController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OrderController.java 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/AutoMoveCreateExecuteHandler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/DetlDto.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/WcsController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/AgvBasDevpController.java
@@ -235,6 +235,7 @@
        }
        agvWrkMast.setWrkSts(206L);
        agvWrkMast.setModiTime(new Date());
        agvWrkMastService.updateById(agvWrkMast);
        return R.ok("货架离场成功");
@@ -254,6 +255,7 @@
        }
        agvWrkMast.setWrkSts(208L);
        agvWrkMast.setModiTime(new Date());
        agvWrkMastService.updateById(agvWrkMast);
        return R.ok("货架离场成功");
src/main/java/com/zy/asrs/controller/AgvOpenController.java
@@ -28,6 +28,7 @@
import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Date;
import java.util.EnumSet;
import java.util.Map;
@@ -182,6 +183,7 @@
                agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
                agvWrkMast.setWrkSts(206L);
            }
            agvWrkMast.setModiTime(new Date());
            agvWrkMastService.updateById(agvWrkMast);
        }
    },
@@ -193,6 +195,7 @@
        public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
            //修改AGV工作档的工作状态为203.任务开始
            agvWrkMast.setWrkSts(203L);
            agvWrkMast.setModiTime(new Date());
            agvWrkMastService.updateById(agvWrkMast);
        }
    },
src/main/java/com/zy/asrs/controller/OrderController.java
@@ -583,6 +583,7 @@
    @Transactional
    public R formModify(@RequestBody OrderDomainParam param){
        Order order = orderService.selectById(param.getOrderId());
        int docType = param.getDocType().intValue();
        if (order == null || order.getStatus() == 0) {
            return R.error("订单不存在");
        }
@@ -606,7 +607,7 @@
        // 2.重组数据
        List<DetlDto> list = new ArrayList<>();
        for (OrderDetl orderDetl : param.getOrderDetlList()) {
            DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch());
            DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getAnfme(), orderDetl.getProcessSts());
            if (DetlDto.has(list, dto)) {
                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getThreeCode(),orderDetl.getDeadTime());
                item.setAnfme(item.getAnfme() + orderDetl.getAnfme());
@@ -614,10 +615,20 @@
                    throw new CoolException("保存订单明细档失败");
                }
            } else {
                if (docType == 35 && orderDetl.getProcessSts() == 1) {
                    List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>()
                            .eq("matnr", orderDetl.getMatnr())
                            .eq("order_no", orderDetl.getOrderNo())
                            .eq("process_sts", 3));
                    for (AgvLocDetl agvLocDetl : agvLocDetls) {
                        agvLocDetl.setProcessSts(1);
                        agvLocDetlService.updateById(agvLocDetl);
                    }
                }
                list.add(dto);
                orderDetl.setOrderId(order.getId());
                orderDetl.setOrderNo(order.getOrderNo());
                orderDetl.setSource(param.getDocType().intValue());
                orderDetl.setSource(docType);
                orderDetl.setCreateBy(getUserId());
                orderDetl.setCreateTime(now);
                orderDetl.setUpdateBy(getUserId());
@@ -886,18 +897,18 @@
                proSts = 3;
            }
            String odNo = uuid;
            if(docType.getPakin() == 1){
                uuid += "_I";
                odNo += "_I";
            }else {
                uuid += "_O";
                odNo += "_O";
            }
            Order order = orderService.selectByNo(uuid);
            Order order = orderService.selectByNo(odNo);
            if (null == order) {
                order = new Order(
                        String.valueOf(snowflakeIdWorker.nextId()),    // 编号[非空]
                        uuid,    // 订单编号
                        odNo,    // 订单编号
                        null,    // 单据日期
                        docType.getDocId(),    // 单据类型
                        null,    // 项目编号
@@ -935,6 +946,11 @@
                    throw new CoolException("生成单据主档失败,请重新导入!");
                }
            }else {
                //  有原订单在的情况
                DocType orderType = docTypeService.selectById(order.getDocType());
                if (!orderType.getDocName().equals(docName)) {
                    throw new CoolException("新订单:" + uuid + " 与系统内的订单号相同,单据类型不同。请确认新订单单据类型!");
                }
                order.setSettle(order.getSettle() == 1L ? 1L : 2L );
                orderService.updateById(order);
            }
@@ -961,13 +977,16 @@
                    throw new CoolException("生成单据明细失败,请重新导入!");
                }
            } else {
                if (anfme < 0)  {
                    throw new CoolException("订单数量不允许为负数!");
                }
                if(!orderDetlService.increaseAnfme(order.getId(), matnr, null, anfme,csocode,isocode)) {
                    throw new CoolException("生成单据明细失败,请重新导入!");
                }
            }
            // 生成调拨单
            if (docType.getDocId().intValue() == 32) {
                String dbUuid = "DB" + uuid;
                String dbUuid = "DB" + odNo;
                Order order2 = orderService.selectByNo(dbUuid);
                if (null == order2) {
                    order2 = new Order(
@@ -1045,7 +1064,7 @@
            // 工序为1:待加工 生成加工单
            if (proSts == 1) {
                if (docType.getDocId().intValue() == 32) {
                    String dbUuid = "JG" + uuid;
                    String dbUuid = "JG" + odNo;
                    Order order3 = orderService.selectByNo(dbUuid);
                    if (null == order3) {
                        order3 = new Order(
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -151,6 +151,7 @@
            } else {
                Double anfme = agvWrkDetl.getAnfme() + pick.getCount();
                agvWrkDetl.setAnfme(anfme);
                agvWrkDetl.setModiTime(new Date());
                agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>().eq("matnr",agvWrkDetl.getMatnr()).eq("three_code",agvWrkDetl.getThreeCode()).eq("supp_code",pick.getSuppCode()));
            }
@@ -178,6 +179,7 @@
        }
        if (agvLocDetls.size() == sameNumber) {
            agvWrkMast.setIoType(101);
            agvWrkMast.setModiTime(new Date());
            agvWrkMastService.update(agvWrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no", pickParams.getWrkNo()));
        }
@@ -640,6 +642,7 @@
        if (!agvWrkMast.getBarcode().equals(param.getBarcode())) {
            throw new CoolException("当前货架码与任务不匹配");
        }
        agvWrkMast.setModiTime(new Date());
        agvWrkMast.setWrkSts(213L);
        agvWrkMast.setSourceLocNo("");
        if (!agvWrkMastService.update(agvWrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no",agvWrkMast.getWrkNo()))) {
@@ -668,6 +671,7 @@
            throw new CoolException("当前工作类型不能空架进场");
        }
        agvWrkMast.setWrkSts(214L);
        agvWrkMast.setModiTime(new Date());
        agvWrkMast.setSourceLocNo(param.getDevNo());
        if (!agvWrkMastService.update(agvWrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no",agvWrkMast.getWrkNo()))) {
            throw new CoolException("更新工作档失败");
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -284,6 +284,7 @@
            String locNo = agvWrkMast.getLocNo();
            agvWrkMast.setLocNo(agvWrkMast.getSourceLocNo());
            agvWrkMast.setSourceLocNo(locNo);
            agvWrkMast.setModiTime(new Date());
            agvWrkMast.setIoTime(now);
            agvWrkMast.setLogErrMemo("createWaitPainWrkMastStart");
            agvWrkMastService.updateById(agvWrkMast);
src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
@@ -109,6 +109,7 @@
        agvWrkMast.setLocNo(locMast.getLocNo());
        agvWrkMast.setWrkSts(201L);
        agvWrkMast.setLogErrMemo("startAllcationIn");
        agvWrkMast.setModiTime(new Date());
        agvWrkMastService.updateById(agvWrkMast);
        // 更目标库位
        locMast.setLocSts("S");
src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -66,6 +66,7 @@
            }
            agvWrkMast.setModiTime(new Date());
            //修改工作档状态为207.库存更新完成
            agvWrkMast.setWrkSts(207L);
            agvWrkMastService.updateById(agvWrkMast);
src/main/java/com/zy/asrs/task/handler/AutoMoveCreateExecuteHandler.java
@@ -28,7 +28,7 @@
        try{
            if (wrkMastExecuteService.insert(wrkMastExecute)){
                agvWrkMast.setWrkSts(agvWrkMast.getWrkSts()+1);
                agvWrkMast.setAppeTime(new Date());
                agvWrkMast.setModiTime(new Date());
                agvWrkMastService.updateById(agvWrkMast);
            }
        }catch (Exception e){
src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
@@ -198,6 +198,7 @@
            throw new CoolException("当前库位正在进行入库,进行下一次轮询");
        }
        agvWrkMast.setWrkSts(201L);
        agvWrkMast.setModiTime(new Date());
        agvWrkMast.setLocNo(locMast.getLocNo());
        agvWrkMastService.updateById(agvWrkMast);
        //更新目标库位状态
@@ -218,6 +219,7 @@
        agvWrkMast.setWrkSts(201L);
        agvWrkMast.setLocNo(locMast.getLocNo());
        agvWrkMast.setLogErrMemo("start2-doAutoMove2");
        agvWrkMast.setModiTime(new Date());
        agvWrkMastService.updateById(agvWrkMast);
        //更新目标库位状态
        updateAgvLocMast(locMast,"S");
@@ -242,6 +244,7 @@
        agvWrkMast.setLocNo(devpNo.getDevNo());
        agvWrkMast.setLogErrMemo("start3-doHandMove2");
        agvWrkMastService.updateById(agvWrkMast);
        agvWrkMast.setModiTime(new Date());
        updateAgvBasDevp(devpNo,"S",null,agvWrkMast.getBarcode());
        return SUCCESS;
    }
src/main/java/com/zy/common/model/DetlDto.java
@@ -44,6 +44,12 @@
        this.anfme = anfme;
    }
    public DetlDto(String matnr, Double anfme,Integer processSts) {
        this.matnr = matnr;
        this.anfme = anfme;
        this.processSts = processSts;
    }
    public DetlDto(String matnr, String batch) {
        this.matnr = matnr;
        this.batch = batch;
src/main/java/com/zy/common/web/WcsController.java
@@ -651,6 +651,7 @@
            if(!Cools.isEmpty(agvWrkMast) && agvWrkMast.getIoType() == 101){
                //将工作党状态改为货架离场
                agvWrkMast.setWrkSts(206L);
                agvWrkMast.setModiTime(new Date());
                agvWrkMastService.updateById(agvWrkMast);
//                //发送货架立场请求,完成工作档
//                List<AgvWrkMast> agvWrkMastList = new ArrayList<>();