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