From ff8ae23da4205f072c823ea2a5e095386c6672db Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@63.com> Date: 星期四, 23 九月 2021 10:58:45 +0800 Subject: [PATCH] 1 --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 80 ++++++++++++++++++++++++++-------------- 1 files changed, 52 insertions(+), 28 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java index 01e4540..88f508c 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -179,11 +179,11 @@ List<FullStoreParam.MatCodeStore> erpMatList = param.getList(); for (FullStoreParam.MatCodeStore es : erpMatList) { if (Cools.isEmpty(es.getStr6())) { - String maxKeySql = "select max(FInterID) as num from CPICMO"; + String maxKeySql = "select min(FInterID) as num from CPICMO"; List<ERPselectParam> maxKeyList = erpSqlServer.select(maxKeySql, ERPselectParam.class); Integer maxKey = maxKeyList.get(0).getNum(); - String ErpSql = "insert into CPICMO(FBrNo, FSourceBillNo, FBillNo, FTranType, FStatus, FMRP, FItemID, FQty, FCommitQty, FSourceEntryID, FClosed, FUnitID, FAuxCommitQty, FCancellation, FQtyFinish, FQtyScrap, FQtyLost, FAuxQtyFinish, FAuxQtyScrap, FAuxQtyLost, FMrpClosed, FBomInterID, FQtyPass, FAuxQtyPass, FQtyBack, FAuxQtyBack, FFinishTime, FReadyTIme, FPowerCutTime, FFixTime, FWaitItemTime, FWaitToolTime, FTaskID, FWorkTypeID, FCostObjID, FStockQty, FAuxStockQty, FSuspend, FReleasedQty, FReleasedAuxQty, FUnScheduledQty, FUnScheduledAuxQty, FSubEntryID, FScheduleID, FPlanOrderInterID, FProcessPrice, FProcessFee, FGMPBatchNo, FGMPCollectRate, FGMPItemBalance, FGMPBulkQty, FCustID, FMRPLockFlag, FHandworkClose, FInHighLimit, FInHighLimitQty, FInLowLimit, FInLowLimitQty, FChangeTimes, FCheckCommitQty, FAuxCheckCommitQty, FPlanConfirmed, FPlanMode, FMTONo, FPrintCount, FFinClosed, FStockFlag, FStartFlag, FVchBillNo, FVchInterID, FCardClosed, FHRReadyTime, FSourceTranType, FSourceInterId, FInterID, FAuxQty, FAuxInHighLimitQty, FAuxInLowLimitQty, Fnumber, FWorkShop) values (0, 0, '0', 85, 0, 1052, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '0', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14036, '0', 0, 0, 14215, 0, '0', 0, 1059, 0, 0, 0, 0, {0,number,#}, {1,number,#}, {2,number,#}, {3,number,#}, ''{4}'', 11378)"; - ErpSql = MessageFormat.format(ErpSql, maxKey + 1, es.getCount(), es.getCount(), es.getCount(), es.getMatNo()); + String ErpSql = "insert into CPICMO(FBrNo, FSourceBillNo, FBillNo, FTranType, FStatus, FMRP, FItemID, FQty, FCommitQty, FSourceEntryID, FClosed, FUnitID, FAuxCommitQty, FCancellation, FQtyFinish, FQtyScrap, FQtyLost, FAuxQtyFinish, FAuxQtyScrap, FAuxQtyLost, FMrpClosed, FBomInterID, FQtyPass, FAuxQtyPass, FQtyBack, FAuxQtyBack, FFinishTime, FReadyTIme, FPowerCutTime, FFixTime, FWaitItemTime, FWaitToolTime, FTaskID, FWorkTypeID, FCostObjID, FStockQty, FAuxStockQty, FSuspend, FReleasedQty, FReleasedAuxQty, FUnScheduledQty, FUnScheduledAuxQty, FSubEntryID, FScheduleID, FPlanOrderInterID, FProcessPrice, FProcessFee, FGMPBatchNo, FGMPCollectRate, FGMPItemBalance, FGMPBulkQty, FCustID, FMRPLockFlag, FHandworkClose, FInHighLimit, FInHighLimitQty, FInLowLimit, FInLowLimitQty, FChangeTimes, FCheckCommitQty, FAuxCheckCommitQty, FPlanConfirmed, FPlanMode, FMTONo, FPrintCount, FFinClosed, FStockFlag, FStartFlag, FVchBillNo, FVchInterID, FCardClosed, FHRReadyTime, FSourceTranType, FSourceInterId, FInterID, FAuxQty, FAuxInHighLimitQty, FAuxInLowLimitQty, Fnumber, FWorkShop) values (0, ''{6}'', '0', 85, 0, 1052, 0, 0, 0, 0, 0, 250, {5,number,#}, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '0', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14036, '0', 0, 0, 14215, 0, '0', 0, 1059, 0, 0, 0, 0, {0,number,#}, {1,number,#}, {2,number,#}, {3,number,#}, ''{4}'', 11378)"; + ErpSql = MessageFormat.format(ErpSql, maxKey - 1, es.getCount(), es.getCount(), es.getCount(), es.getMatNo(), es.getCount(), es.getStr5()); erpSqlServer.update(ErpSql); } } @@ -285,6 +285,13 @@ } // 鐢熸垚宸ヤ綔妗f槑缁� for (LocDetlDto detlDto : dto.getLocDetlDtos()) { + // 濡傛灉涓烘崱鏂欏嚭搴撻渶瑕佸垽鏂墭鐩樼爜鏄惁涓虹┖ + if (ioType == 103) { + String zpallet = detlDto.getLocDetl().getZpallet(); + if (Cools.isEmpty(zpallet)) { + throw new CoolException("鎷f枡鍑哄簱蹇呴』鍚湁鎵樼洏鐮�"); + } + } // 鍑哄簱鏃讹紝鏁伴噺涓�0鐨勭洿鎺ュ拷鐣� if (detlDto.getCount() == null || detlDto.getCount() <= 0.0D) { continue; @@ -327,30 +334,35 @@ BasDevp staNo = basDevpService.checkSiteStatus(devpNo); if (!Cools.isEmpty(staNo.getFronting()) && staNo.getFronting().equals("Y")) { // 灏忚溅鍏ュ簱鎼繍鍛戒护 ---------------------------------------------------- - BasAgv idleAgv = basAgvService.selectIdleAgv(); - AgvCommand command = new AgvCommand(); - command.setAgvId(idleAgv.getAgvId()); - command.setInterCode(basAgvService.getEmptyAgvWorkNo()); - command.setBeginLoc(String.valueOf(devpNo)); - command.setEndLoc("1088"); - log.info(JSON.toJSONString(command)); - String result; - try { - result = new HttpHandler.Builder() - .setUri(agvUrl + "/api/interfaceTask/SendTaskByThirdParty") - .setJson(JSON.toJSONString(command)) - .build() - .doPost(); - } catch (IOException e) { - e.printStackTrace(); - throw new CoolException("璁块棶AGV鎺ュ彛澶辫触"); + // 鍒ゆ柇鏄惁鏈夌┖闂插皬杞� + if (basAgvService.haveIdleAgv()) { + AgvCommand command = new AgvCommand(); + command.setAgvId(0); + command.setInterCode(basAgvService.getEmptyAgvWorkNo()); + command.setBeginLoc(String.valueOf(devpNo)); + command.setEndLoc("1088"); + log.info(JSON.toJSONString(command)); + String result; + try { + result = new HttpHandler.Builder() + .setUri(agvUrl + "/api/interfaceTask/SendTaskByThirdParty") + .setJson(JSON.toJSONString(command)) + .build() + .doPost(); + } catch (IOException e) { + e.printStackTrace(); + throw new CoolException("璁块棶AGV鎺ュ彛澶辫触"); + } + AgvResult agvResult = JSON.parseObject(result, AgvResult.class); + log.info(JSON.toJSONString(agvResult)); + if (!agvResult.getResult()) { + log.error("agv鍛戒护鍙戦�佸け璐agvId={}]锛岄敊璇俊鎭�={}", command.getAgvId(), agvResult.getExplain()); + throw new CoolException("agv鍛戒护鍙戦�佸け璐agvId=" + command.getAgvId() + "]锛岄敊璇俊鎭�=" + agvResult.getExplain()); + } + } else { + throw new CoolException("娌℃湁绌洪棽灏忚溅"); } - AgvResult agvResult = JSON.parseObject(result, AgvResult.class); - log.info(JSON.toJSONString(agvResult)); - if (!agvResult.getResult()) { - log.error("agv鍛戒护鍙戦�佸け璐agvId={}]锛岄敊璇俊鎭�={}", command.getAgvId(), agvResult.getExplain()); - throw new CoolException("agv鍛戒护鍙戦�佸け璐agvId=" + command.getAgvId() + "]锛岄敊璇俊鎭�=" + agvResult.getExplain()); - } + return "寰呭畾"; } else { // 婧愮珯鐐圭姸鎬佹娴� @@ -474,6 +486,13 @@ if (Cools.isEmpty(param.getOutSite())) { throw new CoolException("绔欑偣涓嶅瓨鍦�"); } + // 鐩爣绔欑偣鐘舵�佹娴� + BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite()); + int agvSite = 0; + if (!Cools.isEmpty(staNo.getFronting()) && staNo.getFronting().equals("Y")) { + agvSite = staNo.getDevNo(); + staNo = basDevpService.checkSiteStatus(201); + } for (String locNo : param.getLocNos()) { // 鑾峰彇宸ヤ綔鍙� int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE); @@ -482,10 +501,13 @@ if (Cools.isEmpty(locMast)) { throw new CoolException(locNo + "搴撲綅涓嶅瓨鍦�"); } + if(!locMast.getLocSts().equals("D")){ //闈炲湪搴撶姸鎬� + continue; + } // 鑾峰彇婧愮珯 Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() .eq("type_no", 110) - .eq("stn_no", param.getOutSite()) + .eq("stn_no", staNo.getDevNo()) .eq("crn_no", locMast.getCrnNo()); StaDesc staDesc = staDescService.selectOne(wrapper); Integer sourceStaNo = staDesc.getCrnStn(); @@ -500,7 +522,7 @@ wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱 wrkMast.setIoPri(10D); wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯 - wrkMast.setStaNo(param.getOutSite()); // 鐩爣绔� + wrkMast.setStaNo(staNo.getDevNo()); // 鐩爣绔� wrkMast.setCrnNo(locMast.getCrnNo()); wrkMast.setSourceLocNo(locNo); // 婧愬簱浣� wrkMast.setFullPlt("N"); // 婊℃澘锛歒 @@ -508,6 +530,8 @@ wrkMast.setExitMk("N"); // 閫�鍑� wrkMast.setEmptyMk("Y"); // 绌烘澘 wrkMast.setLinkMis("N"); + wrkMast.setCtnKind(agvSite); // 鍑哄簱涓嬬殑灏忚溅宸ヤ綔鍖虹珯濂� + wrkMast.setExitMk("N"); // 灏忚溅鏄惁鎼繍 wrkMast.setAppeUser(userId); wrkMast.setAppeTime(new Date()); wrkMast.setModiUser(userId); -- Gitblit v1.9.1