From 1f7f8e0b0708036dc3b8266ac4d1b48da31df816 Mon Sep 17 00:00:00 2001
From: tqs <56479841@qq.com>
Date: 星期五, 10 三月 2023 10:02:31 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 190 ++++++++++++++++++++++++++++++++++-------------
1 files changed, 136 insertions(+), 54 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index 9e5d73f..ff87a2b 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -6,17 +6,15 @@
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.exception.CoolException;
-import com.zy.asrs.entity.BasAgv;
-import com.zy.asrs.entity.MatCode;
-import com.zy.asrs.entity.WaitPakin;
+import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.CombParam;
-import com.zy.asrs.service.BasAgvService;
-import com.zy.asrs.service.MatCodeService;
-import com.zy.asrs.service.MobileService;
-import com.zy.asrs.service.WaitPakinService;
+import com.zy.asrs.entity.param.ERPselectParam;
+import com.zy.asrs.entity.param.FullStoreParam;
+import com.zy.asrs.service.*;
import com.zy.asrs.utils.VersionUtils;
import com.zy.common.model.agv.AgvCommand;
import com.zy.common.model.agv.AgvResult;
+import com.zy.common.service.erp.ErpSqlServer;
import com.zy.common.utils.HttpHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -25,7 +23,9 @@
import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
+import java.text.MessageFormat;
import java.util.Date;
+import java.util.List;
/**
* 绉诲姩绔湇鍔℃牳蹇冪被
@@ -43,6 +43,14 @@
private WaitPakinService waitPakinService;
@Autowired
private BasAgvService basAgvService;
+ @Autowired
+ private ErpSqlServer erpSqlServer;
+ @Autowired
+ private WrkMastService wrkMastService;
+ @Autowired
+ private LocMastService locMastService;
+ @Autowired
+ private LocDetlService locDetlService;
@Override
@Transactional
@@ -53,9 +61,11 @@
if (Cools.isEmpty(param.getCombMats()) && Cools.isEmpty(param.getProductCode())) {
throw new CoolException(BaseRes.PARAM);
}
- int count = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
+ int waitPakinCount = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
eq("zpallet", param.getBarcode()).eq("io_status", "N"));
- if (count > 0) {
+ int wrkMastCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("barcode", param.getBarcode()));
+ int locDetlCount = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBarcode()));
+ if (waitPakinCount > 0 || wrkMastCount > 0 || locDetlCount > 0) {
throw new CoolException("鏉$爜鏁版嵁宸插瓨鍦�");
}
if (Cools.isEmpty(param.getBillNo())) {
@@ -75,6 +85,12 @@
waitPakin.setModiUser(userId);
waitPakin.setModiTime(new Date());
VersionUtils.setWaitPakIn(waitPakin, matCode);
+// waitPakin.setMatnr(matCode.getMatNo()+"|"+combMat.getMnemonic()); //浜у搧缂栫爜|鐢熶骇鍗曞彿
+// waitPakin.setBname(matCode.getMatNo());
+ // 濡傛灉鐢熸垚鍗曞彿涓嶄负绌烘彃鍏ョ敓浜у崟鍙�
+ if (!Cools.isEmpty(combMat.getMnemonic())) {
+ waitPakin.setMnemonic(combMat.getMnemonic());
+ }
if (!waitPakinService.insert(waitPakin)) {
throw new CoolException("淇濆瓨鏁版嵁澶辫触");
@@ -82,29 +98,46 @@
}
// 灏忚溅鍏ュ簱鎼繍鍛戒护 ----------------------------------------------------
if (!Cools.isEmpty(param.getAgvSite())) {
- BasAgv idleAgv = basAgvService.selectIdleAgv();
- AgvCommand command = new AgvCommand();
- command.setAgvId(idleAgv.getAgvId());
- command.setInterCode(basAgvService.getAgvWorkNo());
- command.setBeginLoc(String.valueOf(param.getAgvSite()));
- 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.getAgvWorkNo());
+ command.setBeginLoc(String.valueOf(param.getAgvSite()));
+ 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());
+
+ }
+ // 鍒ゆ柇鏃犻�氱煡鍗曞彿supplier鐨勫叆搴撴暟鎹紝CPICMO鎻掑叆鏁版嵁
+ List<CombParam.CombMat> erpMatList = param.getCombMats();
+ for (CombParam.CombMat es : erpMatList) {
+ if (Cools.isEmpty(es.getSupplier())) {
+ 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,Fflag_rw) 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, 1)";
+ ErpSql = MessageFormat.format(ErpSql, maxKey - 1, es.getCount(), es.getCount(), es.getCount(), es.getMatNo(), es.getCount(), es.getMnemonic());
+ erpSqlServer.update(ErpSql);
}
}
@@ -131,6 +164,18 @@
if (!waitPakinService.insert(waitPakin)) {
throw new CoolException("淇濆瓨鏁版嵁澶辫触");
+ }
+ // 鍒ゆ柇鏃犻�氱煡鍗曞彿supplier鐨勫叆搴撴暟鎹紝CPICMO鎻掑叆鏁版嵁
+ List<CombParam.CombMat> erpMatList = param.getCombMats();
+ for (CombParam.CombMat es : erpMatList) {
+ if (Cools.isEmpty(es.getSupplier())) {
+ 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, Fflag_rw) 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, 1)";
+ ErpSql = MessageFormat.format(ErpSql, maxKey - 1, es.getCount(), es.getCount(), es.getCount(), es.getMatNo(), es.getCount(), es.getMnemonic());
+ erpSqlServer.update(ErpSql);
+ }
}
}
} else {
@@ -192,30 +237,35 @@
// 灏忚溅鍏ュ簱鎼繍鍛戒护 ----------------------------------------------------
if (!Cools.isEmpty(param.getCombMats()) && !Cools.isEmpty(param.getAgvSite())) {
- BasAgv idleAgv = basAgvService.selectIdleAgv();
- AgvCommand command = new AgvCommand();
- command.setAgvId(idleAgv.getAgvId());
- command.setInterCode(basAgvService.getAgvWorkNo());
- command.setBeginLoc(String.valueOf(param.getAgvSite()));
- 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.getAgvWorkNo());
+ command.setBeginLoc(String.valueOf(param.getAgvSite()));
+ 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());
- }
+
}
}
@@ -295,6 +345,38 @@
}
}
+ // 灏忚溅鍏ュ簱鎼繍鍛戒护 ----------------------------------------------------
+ if (!Cools.isEmpty(param.getCombMats()) && !Cools.isEmpty(param.getAgvSite())) {
+ // 鍒ゆ柇鏄惁鏈夌┖闂插皬杞�
+ if (basAgvService.haveIdleAgv()) {
+ AgvCommand command = new AgvCommand();
+ command.setAgvId(0);
+ command.setInterCode(basAgvService.getAgvWorkNo());
+ command.setBeginLoc(String.valueOf(param.getAgvSite()));
+ 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("娌℃湁绌洪棽灏忚溅");
+ }
+
+ }
}
--
Gitblit v1.9.1