自动化立体仓库 - WMS系统
#
lsh
2024-01-24 a0d7fdd303b3f76131d77162a7dd2c7db60d80ae
src/main/java/com/zy/asrs/task/handler/ReportToDismantleTheStackHandler.java
@@ -18,11 +18,13 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
 * Created by Monkey D. Luffy on 2023.07.25
 * 徐工汉云..............以下.............上饶江铜.............自动补空板
 * 徐工汉云..............以下.............上饶江铜.............拆垛信息上传
 */
@Slf4j
@Service
@@ -42,51 +44,105 @@
    @Autowired
    private BasDevpService basDevpService;
    @Value("${srXghyErp.url}")
    @Value("${srHangJia.url}")
    private String erpUrl;
    @Value("${srXghyErp.barcodeUploadPath}")
    private String barcodeUploadpath;
    @Value("${srHangJia.reportOutPath}")
    private String reportOutPath;
    public ReturnT<String> start(int staNo) {
        try {
            Date now = new Date();
            BasDevp basDevp = basDevpService.selectById(staNo);
            if (!Cools.isEmpty(basDevp) && basDevp.getAutoing().equals("Y") && basDevp.getWrkNo()!=0){ //上传前工作号跟电控约定为9992(你可以自定义)
            Integer staOther = getStaOther(staNo);
            Integer staEnd = getStaEnd(staNo);
            if (staOther==0) return FAIL;
            BasDevp basDevpOther = basDevpService.selectById(staOther);
            if (Cools.isEmpty(basDevpOther) || basDevpOther.getReportSign()==1){
                return FAIL;
            }
            BasDevp basDevpEnd = basDevpService.selectById(staEnd);
            if (!basDevpEnd.getLoading().equals("Y") || !basDevpEnd.getAutoing().equals("Y") || !basDevpEnd.getInEnable().equals("Y")){
                return FAIL;
            }
            if ((basDevpEnd.getWrkNo()<9900 && basDevpEnd.getWrkNo()!=0 ) || basDevpEnd.getWrkNo()>10000  || basDevpEnd.getReportSign()!=0){
                return FAIL;
            }
            WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 202).eq("source_sta_no", staEnd).eq("wrk_sts",51L));
            if (!Cools.isEmpty(wrkMast1)) return FAIL;
            if (!Cools.isEmpty(basDevp) && basDevp.getAutoing().equals("Y") && basDevp.getWrkNo()!=0){ //上传前工作号跟电控约定为9992中控(桁架):码垛完成下发入库信息(你可以自定义)
                WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo()));
                if (Cools.isEmpty(wrkMast) || !wrkMast.getSheetNo().equals("0")){
                    return SUCCESS;
                if (Cools.isEmpty(wrkMast) || Cools.isEmpty(wrkMast.getSheetNo()) || !wrkMast.getSheetNo().equals("0")){
                    return FAIL;
                }
                List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
                if (Cools.isEmpty(wrkDetls) || wrkDetls.size()==0){
                    return SUCCESS;
                    return FAIL;
                }
                SingleMountUnstackingCompleteParam singleMountUnstackingCompleteParam = new SingleMountUnstackingCompleteParam(wrkMast,wrkDetls);
                List<WrkDetl> wrkDetlList = new ArrayList<>();
                String signOne = "";
                String signTwo = "";
                for (WrkDetl wrkDetl:wrkDetls){
                    if (wrkDetl.getOrigin().equals("1") && signOne.equals("")){
                        wrkDetlList.add(wrkDetl);
                        signOne = "1";
                    } else if (wrkDetl.getOrigin().equals("2") && signTwo.equals("")){
                        wrkDetlList.add(wrkDetl);
                        signTwo = "2";
                    }
                    if (!signOne.equals("") && !signTwo.equals("")){
                        break;
                    }
                }
                SingleMountUnstackingCompleteParam singleMountUnstackingCompleteParam = new SingleMountUnstackingCompleteParam(wrkMast,wrkDetlList);
                singleMountUnstackingCompleteParam.setStaStart(staNo);
                singleMountUnstackingCompleteParam.setStaEnd(staNo>119? 135:133);
                ReturnT<String> result = null;
                result = postMesData(barcodeUploadpath,singleMountUnstackingCompleteParam);
                System.out.println(result);
                if (true){
                singleMountUnstackingCompleteParam.setStaEnd(staEnd);
//                result = null;
//                if (true){
//                    return FAIL;
//                }
                ReturnT<String> result = postMesData(reportOutPath,singleMountUnstackingCompleteParam);
//                System.out.println(result);
//                if (true){
//                    for (WrkDetl wrkDetl:wrkDetls){
//                        WrkDetlSingle wrkDetlSingle = new WrkDetlSingle();
//                        wrkDetlSingle.sync(wrkDetl);
//                        wrkDetlSingle.setWrkNo(wrkDetl.getWrkNo().longValue());
//                        wrkDetlSingleService.insert(wrkDetlSingle);
//                    }
//                    wrkMast.setSheetNo("1");
//                    wrkMastService.updateById(wrkMast);
//                    basDevp.setReportSign(1);
//                    basDevpService.updateById(basDevp);
//                    basDevpEnd.setReportSign(1);
//                    basDevpService.updateById(basDevp);
//                    return SUCCESS;
//                }
                if (result.getCode()==200){
                    Date nowOne = new Date();
                    Date nowTwo = now;
                    for (WrkDetl wrkDetl:wrkDetls){
                        if (wrkDetl.getOrigin().equals("1")){
                            now = nowOne;
                        } else if (wrkDetl.getOrigin().equals("2")){
                            now = nowTwo;
                        }
                        WrkDetlSingle wrkDetlSingle = new WrkDetlSingle();
                        wrkDetlSingle.sync(wrkDetl);
                        wrkDetlSingle.setWrkNo(wrkDetl.getWrkNo().longValue());
                        wrkDetlSingle.setIoTime(now);
                        wrkDetlSingleService.insert(wrkDetlSingle);
                    }
                    wrkMast.setSheetNo("1");
                    wrkMastService.updateById(wrkMast);
                    return SUCCESS;
                }
                if (result.getCode()==200){
                    for (WrkDetl wrkDetl:wrkDetls){
                        WrkDetlSingle wrkDetlSingle = new WrkDetlSingle();
                        wrkDetlSingle.sync(wrkDetl);
                        wrkDetlSingleService.insert(wrkDetlSingle);
                    }
                    wrkMast.setSheetNo("1");
                    wrkMastService.updateById(wrkMast);
                    basDevp.setReportSign(1);
                    basDevpService.updateById(basDevp);
                    basDevpEnd.setReportSign(1);
                    basDevpService.updateById(basDevpEnd);
                    return SUCCESS;
                }else {
                    log.error("条码上传中控失败");
                    log.error("拆垛信息上传失败");
                }
            }
        }catch (Exception e){
@@ -108,10 +164,10 @@
                        .build()
                        .doPost();
                JSONObject jsonObject = JSON.parseObject(response);
                if (jsonObject.getString("result").equals("Y")) {
                if (jsonObject.getInteger("Code")==200) {
                    success = true;
                } else {
                    log.error("请求接口失败!!!url:{};request:{};response:{}"+erpUrl+erpPath, JSON.toJSONString(combParam), response);
                    log.error("拆垛信息上传请求接口失败!!!url:{};request:{};response:{}"+erpUrl+erpPath, JSON.toJSONString(combParam), response);
                    throw new CoolException("上报erp系统失败");
                }
            } catch (Exception e) {
@@ -135,4 +191,32 @@
        }
        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;
        }
    }
    public Integer getStaEnd(Integer staNo){
        switch (staNo){
            case 118:
            case 119:
                return 131;
            case 120:
            case 121:
                return 135;
            default:
                return 0;
        }
    }
}