自动化立体仓库 - WMS系统
#
yxFwq
2025-04-01 74fd6eb7fb0322078f7946f51073f20e90231df1
src/main/java/com/zy/asrs/task/handler/WrkMastCrnHandler.java
@@ -6,10 +6,7 @@
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.WrkMastCrnService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.service.WrkMastStaService;
import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.utils.Utils;
@@ -38,7 +35,10 @@
    private LocMastService locMastService;
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private RgvOneSignService rgvOneSignService;
    @Transactional
    public ReturnT<String> start(WrkMast wrkMast,WrkMast wrkMastOther) {
        try {
            Date now = new Date();
@@ -65,7 +65,7 @@
                return FAIL;
            }
            String[] strings = staNoOther(locMast1.getLocNo());
            if (Cools.isEmpty(strings)){
            if (Cools.isEmpty(strings) || Cools.isEmpty(strings[0]) || Cools.isEmpty(strings[1])){
                return FAIL;
            }
            wrkMast.setLocNo(strings[0]);
@@ -73,7 +73,6 @@
            WrkMastCrn wrkMastCrn = new WrkMastCrn(wrkMast,wrkMastOther,now);
            wrkMastCrnService.insert(wrkMastCrn);
            // 更新目标库位状态
            LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
@@ -87,7 +86,6 @@
                throw new CoolException(locMast1.getLocNo()+"目标库位已被占用");
            }
            wrkMastService.updateById(wrkMast);
            // 更新目标库位状态
            LocMast locMastOther = locMastService.selectById(wrkMastOther.getLocNo());
@@ -100,8 +98,67 @@
            } else {
                throw new CoolException(locMast1.getLocNo()+"目标库位已被占用");
            }
            wrkMastService.updateById(wrkMast);
            wrkMastService.updateById(wrkMastOther);
            wrkMastCrnService.insert(wrkMastCrn);
        }catch (Exception e){
            log.error("异常!!!"+e);
            return FAIL;
        }
        return SUCCESS;
    }
    public ReturnT<String> start(WrkMast wrkMast,boolean sign) {
        try {
            Date now = new Date();
            LocTypeDto locTypeDto = new LocTypeDto();
            locTypeDto.setLocType1((short)1);
            String deepLocOther = getDeepLoc2(wrkMast.getSourceLocNo(), Utils.getRow(wrkMast.getSourceLocNo()));
            if (Cools.isEmpty(deepLocOther)){
                return FAIL;
            }
            WrkMast wrkMastOther = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("source_loc_no", deepLocOther).eq("wrk_sts", 11L));
            if (!Cools.isEmpty(wrkMastOther)){
//                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 {
                return FAIL;
            }
        }catch (Exception e){
            log.error("异常!!!"+e);
            return FAIL;
@@ -125,18 +182,18 @@
        }
    }
    /**
     * 获取 浅库位对应的深库位号
     */
    public static String getDeepLoc(String shallowLoc,int row) {
        if (row == 2 || row == 6) {
            return Utils.zerofill(String.valueOf(row-1), 2) + shallowLoc.substring(2);
        } else if (row == 3 || row == 7) {
            return Utils.zerofill(String.valueOf(row+1), 2) + shallowLoc.substring(2);
        }else {
            return shallowLoc;
        }
    }
//    /**
//     * 获取 浅库位对应的深库位号
//     */
//    public static String getDeepLoc(String shallowLoc,int row) {
//        if (row == 2 || row == 6) {
//            return Utils.zerofill(String.valueOf(row-1), 2) + shallowLoc.substring(2);
//        } else if (row == 3 || row == 7) {
//            return Utils.zerofill(String.valueOf(row+1), 2) + shallowLoc.substring(2);
//        }else {
//            return shallowLoc;
//        }
//    }
    /**
     * 获取 深库位对应的浅库位号
@@ -147,7 +204,7 @@
        } else if (row == 4 || row == 8) {
            return Utils.zerofill(String.valueOf(row-1), 2) + shallowLoc.substring(2);
        }else {
            return shallowLoc;
            return null;
        }
    }