自动化立体仓库 - WMS系统
pang.jiabao
2024-07-08 f873c89d87eb16ee83c0058d9a841a97d8e2bf14
src/main/java/com/zy/asrs/task/handler/OneLouHangJiaHandler.java
@@ -22,7 +22,6 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import sun.security.smartcardio.SunPCSC;
import java.util.Date;
import java.util.List;
@@ -57,8 +56,9 @@
    @Value("${srHangJia.reportInPath}")
    private String reportOutPath;
    public ReturnT<String> start(int staNo) {
    public ReturnT<String> start(int staNo,int staNoEnd) {
        try {
            Integer staOther = getStaOther(staNoEnd);
            BasDevp basDevp = basDevpService.selectById(staNo);
            if (Cools.isEmpty(basDevp) || basDevp.getWrkNo()==0
                    || !basDevp.getAutoing().equals("Y") || !basDevp.getLoading().equals("Y") || !basDevp.getInEnable().equals("Y")){
@@ -75,7 +75,7 @@
                return FAIL;
            }
            List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
            if (Cools.isEmpty(wrkDetls) || wrkDetls.size()!=1){
            if (Cools.isEmpty(wrkDetls) || wrkDetls.size()==0){
                return FAIL;
            }
            WrkDetl wrkDetl = wrkDetls.get(0);
@@ -83,19 +83,18 @@
                    || Cools.isEmpty(wrkDetl.getBrand())){
                return FAIL;
            }
            BasDevp basDevp118 = basDevpService.selectById(118);
            if (Cools.isEmpty(basDevp118) || !basDevp118.getAutoing().equals("Y") || basDevp118.getReportSign()!=0 ){
            BasDevp basDevpEnd = basDevpService.selectById(staNoEnd);
            if (Cools.isEmpty(basDevpEnd) || !basDevpEnd.getAutoing().equals("Y") || basDevpEnd.getReportSign()!=0 ){
                return FAIL;
            }
            BasDevp basDevp119 = basDevpService.selectById(119);
            if (Cools.isEmpty(basDevp119) || basDevp119.getReportSign()!=0){
            BasDevp basDevpOther = basDevpService.selectById(staOther);
            if (Cools.isEmpty(basDevpOther) || basDevpOther.getReportSign()!=0){
                return FAIL;
            }
            if (basDevp118.getLoading().equals("Y") && basDevp118.getEmptyMk().equals("Y")){
            if (basDevpEnd.getLoading().equals("Y") && basDevpEnd.getEmptyMk().equals("Y")){
                //生成机械臂任务
                TrussCombParam trussCombParam = new TrussCombParam(wrkDetl);
                TrussCombParam trussCombParam = new TrussCombParam(wrkDetl,staNoEnd);
                try{
                    ReturnT<String> success = postMesData(reportOutPath, trussCombParam);
                    if (success.getCode()!=200){
@@ -106,19 +105,26 @@
                        wrkMastService.updateById(wrkMast);
                        basDevp.setReportSign(3);
                        basDevpService.updateById(basDevp);
                        basDevp118.setReportSign(3);
                        basDevpService.updateById(basDevp118);
                        basDevpEnd.setReportSign(3);
                        basDevpService.updateById(basDevpEnd);
                        wrkDetl.setOrigin(trussCombParam.getPalletizingNo2()==118? "2":"1");
                        wrkDetlService.update(wrkDetl,new EntityWrapper<WrkDetl>().eq("wrk_no",wrkDetl.getWrkNo()));
                    }
                    return SUCCESS;
                } catch (Exception e){
                    log.error("桁架上位软件退库失败"+e);
                    return FAIL;
                }
            }else if (!basDevp118.getLoading().equals("Y") ){
                WrkMastSta wrkMastSta = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>().eq("wrk_no",staNo + 19999L));
            }else if (!basDevpEnd.getLoading().equals("Y") ){
                Thread.sleep(1000);
                basDevpEnd = basDevpService.selectById(staNoEnd);
                if (Cools.isEmpty(basDevpEnd) || !basDevpEnd.getAutoing().equals("Y") || basDevpEnd.getReportSign()!=0 || basDevpEnd.getLoading().equals("Y") ){
                    return FAIL;
                }
                WrkMastSta wrkMastSta = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>().eq("wrk_no",staNoEnd + 19999L));
                if (Cools.isEmpty(wrkMastSta)){
                    //生成拆盘任务
                    WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),staNo);
                    WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),staNoEnd);
                    wrkMastSta1.setType(2);      //类型 1:非空  2:空板
                    wrkMastSta1.setWrkType(2);                    //工作类型  1:取(叠盘)  2:拆盘  3:取放 5:满取  6:满放
                    wrkMastStaService.insert(wrkMastSta1);
@@ -171,4 +177,20 @@
        }
        return SUCCESS;
    }
    public Integer getStaOther(Integer staNo){
        switch (staNo){
            case 118:
                return 119;
            case 119:
                return 118;
            case 120:
                return 121;
            case 121:
                return 120;
            default:
                return 0;
        }
    }
}