自动化立体仓库 - WMS系统
#
yxFwq
2025-06-13 d60e84cbedb554555578f071de95c4a8049183db
src/main/java/com/zy/asrs/task/handler/WrkMastCrnHandler.java
@@ -20,6 +20,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
/**
 * Created by Monkey D. Luffy on 2023.11.21
@@ -52,56 +53,61 @@
                    .eq("loc_sts", "O");
            int row1 = locMastService.selectCount(wrapper);
            int row2 = locMastService.selectCount(wrapperOther);
            LocMast locMast1 = null;
            List<LocMast> locMastList = null;
            if (row1>=row2){
                locMast1 = locMastService.selectOne(wrapper.orderBy("lev1", true)
                locMastList = locMastService.selectList(wrapper.orderBy("lev1", true)
                        .orderBy("bay1", true));
            }else {
                locMast1 = locMastService.selectOne(wrapperOther.orderBy("lev1", true)
                locMastList = locMastService.selectList(wrapperOther.orderBy("lev1", true)
                        .orderBy("bay1", true));
            }
            if (Cools.isEmpty(locMast1)){
            if (locMastList.isEmpty()){
                return FAIL;
            }
            String[] strings = staNoOther(locMast1.getLocNo());
            if (Cools.isEmpty(strings) || Cools.isEmpty(strings[0]) || Cools.isEmpty(strings[1])){
                return FAIL;
            }
            wrkMast.setLocNo(strings[0]);
            wrkMastOther.setLocNo(strings[1]);
            for (LocMast locMast1 : locMastList){
                String[] strings = staNoOther(locMast1.getLocNo());
                if (Cools.isEmpty(strings) || Cools.isEmpty(strings[0]) || Cools.isEmpty(strings[1])){
                    continue;
                }
                wrkMast.setLocNo(strings[0]);
                wrkMastOther.setLocNo(strings[1]);
            WrkMastCrn wrkMastCrn = new WrkMastCrn(wrkMast,wrkMastOther,now);
                WrkMastCrn wrkMastCrn = new WrkMastCrn(wrkMast,wrkMastOther,now);
            // 更新目标库位状态
            LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
            if (locMast.getLocSts().equals("O")){
                locMast.setLocSts("S"); // S.入库预约
                locMast.setModiTime(now);
                // 更新目标库位状态
                LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
                if (locMast.getLocSts().equals("O")){
                    locMast.setLocSts("S"); // S.入库预约
                    locMast.setModiTime(now);
                } else {
                    continue;
                }
                // 更新目标库位状态
                LocMast locMastOther = locMastService.selectById(wrkMastOther.getLocNo());
                if (locMastOther.getLocSts().equals("O")){
                    locMastOther.setLocSts("S"); // S.入库预约
                    locMastOther.setModiTime(now);
                } else {
                    continue;
                }
                if (!locMastService.updateById(locMast)){
                    throw new CoolException("改变库位状态失败");
                    return FAIL;
                }
            } else {
                throw new CoolException(locMast1.getLocNo()+"目标库位已被占用");
            }
            // 更新目标库位状态
            LocMast locMastOther = locMastService.selectById(wrkMastOther.getLocNo());
            if (locMastOther.getLocSts().equals("O")){
                locMastOther.setLocSts("S"); // S.入库预约
                locMastOther.setModiTime(now);
                if (!locMastService.updateById(locMastOther)){
                    throw new CoolException("改变库位状态失败");
                    return FAIL;
                }
            } else {
                throw new CoolException(locMast1.getLocNo()+"目标库位已被占用");
            }
            wrkMastService.updateById(wrkMast);
            wrkMastService.updateById(wrkMastOther);
                wrkMastService.updateById(wrkMast);
                wrkMastService.updateById(wrkMastOther);
            wrkMastCrnService.insert(wrkMastCrn);
                wrkMastCrnService.insert(wrkMastCrn);
                return SUCCESS;
            }
        }catch (Exception e){
            log.error("异常!!!"+e);
@@ -110,7 +116,7 @@
        return SUCCESS;
    }
    public ReturnT<String> start(WrkMast wrkMast) {
    public ReturnT<String> start(WrkMast wrkMast,boolean sign) {
        try {
            Date now = new Date();
            LocTypeDto locTypeDto = new LocTypeDto();
@@ -122,16 +128,38 @@
            }
            WrkMast wrkMastOther = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("source_loc_no", deepLocOther).eq("wrk_sts", 11L));
            if (!Cools.isEmpty(wrkMastOther)){
                if ((wrkMastOther.getIoType()==101 || wrkMastOther.getIoType() == 110) && wrkMastOther.booleanStaNoSign() && wrkMastOther.booleanStaNoSignOther()){
                    RgvOneSign rgvOneSign = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","LineUp"+wrkMastOther.getStaNo()));
                    if (Cools.isEmpty(rgvOneSign)){
                        return FAIL;
                    }
                    int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("sta_no", wrkMastOther.getStaNo()).eq("wrk_sts",12L));
                    if (wrkCount+rgvOneSign.getRgvOneSign()>=3){
                        return FAIL;
                    }
                }
//                if (!sign) {
//                    RgvOneSign trunSma = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","TrunSma"+wrkMast.getStaNo()));
//                    trunSma.setRgvOneSign(trunSma.getRgvOneSign()+1);
//                    rgvOneSignService.updateById(trunSma);
//                }
//                if ((wrkMastOther.getIoType()==101 || wrkMastOther.getIoType() == 110) && wrkMastOther.booleanStaNoSign() && wrkMastOther.booleanStaNoSignOther()){
//                    if (sign){
//                        RgvOneSign rgvOneSign = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","LineUp"+wrkMastOther.getStaNo()));
//                        if (Cools.isEmpty(rgvOneSign)){
//                            return FAIL;
//                        }
//                        RgvOneSign trunSma = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","TrunSma"+wrkMastOther.getStaNo()));
//                        if (Cools.isEmpty(trunSma)){
//                            return FAIL;
//                        }
//                        int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("sta_no", wrkMastOther.getStaNo()).eq("wrk_sts",12L));
//                        int wrkCountCrn = wrkMastCrnService.selectCount(new EntityWrapper<WrkMastCrn>().eq("sta_no", wrkMastOther.getStaNo()));
//                        if (wrkCountCrn*2+wrkCount+rgvOneSign.getRgvOneSign()+trunSma.getRgvOneSign()>1){
//                            return FAIL;
//                        }
//                        int wrkCountGt = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("sta_no", wrkMastOther.getStaNo()).gt("wrk_sts",11L));
//                        if (wrkCountGt > 1){
//                            return FAIL;
//                        }
//                        trunSma.setRgvOneSign(trunSma.getRgvOneSign()+1);
//                        rgvOneSignService.updateById(trunSma);
//                    } else {
//                        RgvOneSign trunSma = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","TrunSma"+wrkMastOther.getStaNo()));
//                        trunSma.setRgvOneSign(trunSma.getRgvOneSign()+1);
//                        rgvOneSignService.updateById(trunSma);
//                    }
//                }
                WrkMastCrn wrkMastCrn = new WrkMastCrn(wrkMast,wrkMastOther,now);
                wrkMastCrnService.insert(wrkMastCrn);
            }else {