*
lsh
2025-03-20 3c3779a57590280ef32ca2e4a96f148b438bc6ef
src/main/java/com/zy/asrs/task/handler/ReportToDismantleTheStackHandler.java
@@ -191,6 +191,146 @@
        }
        return FAIL;
    }
    public ReturnT<String> start2(int staNo) {
        try {
            Date now = new Date();
            BasDevp basDevp = basDevpService.selectById(staNo);
            Integer staOther = getStaOther(staNo);
            Integer staEnd = getStaEnd(staNo);
            if (staOther==0) return FAIL;
            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
            StaProtocol staProtocol = devpThread.getStation().get(staNo);
            if (staProtocol == null) {
                return FAIL;
            } else {
                staProtocol = staProtocol.clone();
            }
//            StaProtocol staProtocolOther = devpThread.getStation().get(staOther);
//            if (staProtocolOther == null) {
//                return FAIL;
//            } else {
//                staProtocolOther = staProtocolOther.clone();
//            }
            StaProtocol staProtocolEnd = devpThread.getStation().get(staEnd);
            if (staProtocolEnd == null) {
                return FAIL;
            } else {
                staProtocolEnd = staProtocolEnd.clone();
            }
            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.getEmptyMk().equals("Y")){
                return FAIL;
            }
            if (!staProtocolEnd.isLoading() || !staProtocolEnd.isAutoing() || !staProtocolEnd.isEmptyMk() ){
                return FAIL;
            }
            if ( basDevpEnd.getWrkNo()!=0 || basDevpEnd.getReportSign()!=0){
                return FAIL;
            }
            if ( staProtocolEnd.getWorkNo()!=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中控(桁架):码垛完成下发入库信息(你可以自定义)
                if (staProtocol.isAutoing() && staProtocol.getWorkNo()!=0){
                    WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo()));
                    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.isEmpty()){
                        return FAIL;
                    }
                    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(staEnd);
//                result = null;
//                if (true){
//                    return FAIL;
//                }
                    log.error("上传机械臂时,站点状态:"+JSON.toJSONString(basDevpEnd));
                    log.error("上传机械臂时,工作号:"+JSON.toJSONString(wrkMast));
                    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);
                        basDevp.setReportSign(1);
                        basDevpService.updateById(basDevp);
                        basDevpEnd.setReportSign(1);
                        basDevpService.updateById(basDevpEnd);
                        return SUCCESS;
                    }else {
                        log.error("拆垛信息上传失败");
                    }
                }
            }
        }catch (Exception e){
            log.error("异常!!!"+e);
            return FAIL;
        }
        return FAIL;
    }
    private ReturnT<String> postMesData(String erpPath,Object combParam){
        if(combParam != null){