自动化立体仓库 - WMS系统
whycq
2024-05-14 870eb7cb47e510594d5d0937f14e5a3f7739cd77
src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -3,6 +3,7 @@
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
@@ -55,13 +56,25 @@
        int wrkNo = agvWrkMast.getWrkNo();
        String barcode = agvWrkMast.getBarcode();
        String orderNo = getOrderNoByWrkNo(wrkNo);
        String agvBasDevp = "";
        if (agvWrkMast.getIoType() > 100) {
            agvBasDevp = agvWrkMast.getLocNo();
        } else {
            agvBasDevp = agvWrkMast.getSourceLocNo();
        }
        //修改工作档状态为207.库存更新完成
        agvWrkMast.setWrkSts(207L);
        agvWrkMastService.updateById(agvWrkMast);
        // 空板入库 设置库位状态为D.空桶/空栈板
        String locSts = agvWrkMast.getIoType() == 10 ? "D" : "F";
        agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),locSts,agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
        if (agvWrkMast.getIoType() == 10 || agvWrkMast.getIoType() == 109) {
            agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
        } else {
            agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
        }
        //生成AGV工作历史档
        agvWrkMastLogService.save(agvWrkMast);
        //生成AGV工作明细历史档
@@ -78,12 +91,26 @@
            agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("supp_code",barcode));
        }
        //类型为库位移转时
        if(agvWrkMast.getIoType() == 11){
        if(agvWrkMast.getIoType() == 11 || agvWrkMast.getIoType() == 12){
            //更新库存明细
            agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo());
            //修改源库位状态为O
            agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
        }
        //类型为库位移转时
        if(agvWrkMast.getIoType() == 108){
            //更新库存明细
            agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo());
            //修改源库位状态为O
            agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0);
        }
        if(agvWrkMast.getIoType() == 109){
            //修改源库位状态为O
            agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0);
        }
        //删除AGV工作档
        agvWrkMastService.deleteById(wrkNo);
@@ -149,6 +176,47 @@
    }
    @Transactional
    public ReturnT<String> completedCarryWrk2(AgvWrkMast agvWrkMast) {
        int wrkNo = agvWrkMast.getWrkNo();
        String orderNo = getOrderNoByWrkNo(wrkNo);
        String agvBasDevp = "";
        if (agvWrkMast.getIoType() > 100) {
            agvBasDevp = agvWrkMast.getLocNo();
        } else {
            agvBasDevp = agvWrkMast.getSourceLocNo();
        }
        //修改工作档状态为207.库存更新完成
        agvWrkMast.setWrkSts(207L);
        agvWrkMastService.updateById(agvWrkMast);
        //修改源库位状态为O
        agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
        if(agvWrkMast.getIoType() == 101){
            //更新目标库位明细 101.出库 删除源库位库存明细
            agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo()));
        }
        //生成AGV工作历史档
        agvWrkMastLogService.save(agvWrkMast);
        //生成AGV工作明细历史档
        agvWrkDetlLogService.save(wrkNo);
        //删除AGV工作档
        agvWrkMastService.deleteById(wrkNo);
        //删除AGV工作明细档
        agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo));
        if(!isJSON(orderNo)){
            //检查订单是否已完成
            orderService.checkComplete(orderNo);
        }else{
            List<Map> maps = JSONArray.parseArray(orderNo, Map.class);
            maps.forEach(map -> {
                String o = map.get("orderNo").toString();
                orderService.checkComplete(o);
            });
        }
        return SUCCESS;
    }
    @Transactional
    @Synchronized
    public ReturnT<String> startPutWayWrk(AgvWrkMast agvWrkMast) throws IOException {