自动化立体仓库 - WMS系统
#
LSH
2023-10-23 880b14b0be176882182f8d48cd8f5e80c1d9febe
src/main/java/com/zy/asrs/task/handler/MoveLocHandler.java
@@ -43,6 +43,8 @@
    private CommonService commonService;
    @Autowired
    private WrkDetlService wrkDetlService;
    @Autowired
    private BasCrnpService basCrnpService;
    @Value("${channel.equipmentRow}")
    private Integer equipmentRow;  //测试库位所在排号
@@ -61,7 +63,7 @@
        try {
            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                    .eq("loc_sts", "F")
                    .eq("pack_status", 4)
                    .eq("pack_status", 4)//测试失败
                    .eq("row1", equipmentRow)
                    .eq("loc_type1", (short) 1)
                    .eq("fire_status",0)
@@ -72,17 +74,27 @@
                    TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>()
                            .eq("loc_no",locMast.getLocNo())
                            .eq("barcode",locDetl.getMatnr())
                            .eq("status",4)
                            .eq("status",4)//完成测试
                    );
                    if (!Cools.isEmpty(testMast)){
                        if (testMast.getStatus()==4){
                            boolean signCrn1 = basCrnpService.checkSiteError(1, false);
                            if (!signCrn1){
                                log.error("测试完成自动移库--->1号堆垛机不可出库!");
                                break;
                            }
                            boolean signCrn2 = basCrnpService.checkSiteError(2, true);
                            if (!signCrn2){
                                log.error("测试完成自动移库--->2号堆垛机不可用!");
                                break;
                            }
                            //移库开始,查询目标库位
                            LocMast targetLocNo = locMastService.queryFreeLocMast(2,(short)4);
                            if (Cools.isEmpty(targetLocNo)){
                                targetLocNo=locMastService.queryFreeLocMast(1,(short)4);
                            }
                            if (targetLocNo != null){
                                workService.locMove(locMast.getLocNo(),targetLocNo.getLocNo(),(long)Integer.parseInt(testMast.getUserId()));
                                workService.locMove(locMast.getLocNo(),targetLocNo.getLocNo(),(long)Integer.parseInt("9935"));
                                //4.测试完成上报
                                CombParam combParam = new CombParam();
                                combParam.setPackNo(locDetl.getMatnr());
@@ -113,7 +125,7 @@
        try {
            List<LocMast> locMasts2 = locMastService.selectList(new EntityWrapper<LocMast>()
                    .eq("loc_sts", "F")
                    .eq("pack_status", 4)
                    .eq("pack_status", 3)//测试完成
                    .eq("row1", equipmentRow)
                    .eq("loc_type1", (short) 1)
                    .eq("fire_status",0)
@@ -129,10 +141,20 @@
                    boolean sign=false;
                    if (!Cools.isEmpty(testMast)){
                        if (testMast.getStatus()==4){
                            boolean signCrn1 = basCrnpService.checkSiteError(1, false);
                            if (!signCrn1){
                                log.error("测试完成自动移库--->1号堆垛机不可出库!");
                                break;
                            }
                            //移库开始,查询目标库位
                            LocMast targetLocNo = locMastService.queryFreeLocMast(4,(short)2);
                            if (Cools.isEmpty(targetLocNo)){
                                targetLocNo=locMastService.queryFreeLocMast(3,(short)2);
                            }
                            boolean signCrn2 = basCrnpService.checkSiteError(2, true);
                            if (!signCrn2){
                                targetLocNo = null;
                                log.error("测试完成自动移库--->2号堆垛机不可入库! 开始查找1号堆垛机");
                            }
                            if (targetLocNo != null){
                                //生成出库任务
@@ -140,13 +162,18 @@
                                    sign=true;
                                }
                            }else {
                                signCrn1 = basCrnpService.checkSiteError(1, true);
                                if (!signCrn1){
                                    log.error("测试完成自动移库--->1号堆垛机不可入库!");
                                    break;
                                }
                                //3\4排满  向2排移库,查询目标库位
                                targetLocNo = locMastService.queryFreeLocMast(2,(short)2);
                                if (Cools.isEmpty(targetLocNo)){
                                    targetLocNo=locMastService.queryFreeLocMast(1,(short)2);
                                }
                                if (targetLocNo != null){
                                    workService.locMove(locMast.getLocNo(),targetLocNo.getLocNo(),(long)Integer.parseInt(testMast.getUserId()));
                                    workService.locMove(locMast.getLocNo(),targetLocNo.getLocNo(),(long)9935);
                                    sign=true;
                                }else {
                                    log.error("测试完成自动移库--->没有空库位!");
@@ -188,6 +215,11 @@
            );
            if (!Cools.isEmpty(locMasts3)){
                for (LocMast locMast:locMasts3){
                    boolean signCrn1 = basCrnpService.checkSiteError(1, true);
                    if (!signCrn1){
                        log.error("向测试库位移库失败---->1号堆垛机不可用!");
                        break;
                    }
                    //移库开始,查询目标库位
                    LocMast targetLocNo = locMastService.queryFreeLocMast(equipmentRow,(short)1);
                    if (targetLocNo != null){
@@ -230,7 +262,7 @@
                wrkMast.setIoPri(13D); // 优先级:13
                wrkMast.setCrnNo(1);
                wrkMast.setSourceStaNo(203); // 源站
                wrkMast.setStaNo(205); // 目标站  2号堆垛机入库站
                wrkMast.setStaNo(206); // 目标站  2号堆垛机入库站
                wrkMast.setSourceLocNo(locMast.getLocNo()); // 源库位
                wrkMast.setFullPlt("Y"); // 满板:Y
                wrkMast.setPicking("N"); // 拣料
@@ -261,14 +293,6 @@
                    locMast.setLocSts("R");
                    locMast.setModiTime(now);
//                    locMast.setPackStatus(5); //5:开始静置
                    CombParam combParam = new CombParam();
                    combParam.setPackNo(wrkDetl.getMatnr());
                    combParam.setLocNo(locMast.getLocNo());
                    combParam.setPackSts(locMast.getPackStatus());
                    combParam.setRequestTime(DateUtils.convert(new Date()));
                    new PostMesDataUtils().postMesData("MES系统",mesUrl,inpath,combParam);
                    if (!locMastService.updateById(locMast)) {
                        log.error("预约库位状态失败,库位号:"+locMast.getLocNo());
                        return false;