From 8006a62e1807fddb514315c6c554556b61c78390 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期二, 21 十月 2025 16:20:18 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 700 ++++++++++++++++++++++++++++++++++-----------------------
1 files changed, 414 insertions(+), 286 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 35e3521..720fa24 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -6,7 +6,6 @@
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Cools;
import com.core.common.DateUtils;
-import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.BasCrnErrorMapper;
@@ -50,10 +49,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -73,7 +69,11 @@
@Autowired
private WrkMastMapper wrkMastMapper;
@Autowired
+ private WrkMastLogService wrkMastLogService;
+ @Autowired
private WrkDetlService wrkDetlService;
+ @Autowired
+ private WrkDetlLogService wrkDetlLogService;
@Autowired
private WaitPakinMapper waitPakinMapper;
@Autowired
@@ -92,8 +92,6 @@
private BasCrnErrorMapper basCrnErrorMapper;
@Autowired
private WrkMastService wrkMastService;
- @Autowired
- private WrkMastLogService wrkMastLogService;
@Autowired
private ConfigService configService;
@Autowired
@@ -199,14 +197,14 @@
continue;
}
- if (inSta.getStaNo() == 1005) {
+ if (inSta.getStaNo() == 1002 || inSta.getStaNo() == 1007) {
//妫�娴嬫槸鍚︽湁鍑哄簱浠诲姟
List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
.in("io_type", 101, 103, 107)
- .in("sta_no", 1003, 1007)
+ .in("sta_no", 1003, 1004)
);
if (!wrkMasts.isEmpty()) {
- News.error("" + mark + " - 4" + " - 1003绔欏叆搴擄紝妫�娴嬪瓨鍦ㄥ嚭搴撲换鍔★紝绛夊緟鍑哄簱浠诲姟鎵ц瀹屾垚,鎵樼洏鐮�={}", barcode);
+ News.error("" + mark + " - 4" + " - 鍏ュ簱锛屾娴嬪瓨鍦ㄥ嚭搴撲换鍔★紝绛夊緟鍑哄簱浠诲姟鎵ц瀹屾垚,鎵樼洏鐮�={}", barcode);
continue;
}
}
@@ -370,24 +368,25 @@
* 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱
*/
public synchronized void stnToCrnStnPick(Integer mark) {
- for (DevpSlave devp : slaveProperties.getDevp()) {
- // 閬嶅巻鎷f枡鍏ュ簱鍙�
- for (DevpSlave.Sta pickSta : devp.getPickSta()) {
- // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
- StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo());
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
+ try {
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ // 閬嶅巻鎷f枡鍏ュ簱鍙�
+ for (DevpSlave.Sta pickSta : devp.getPickSta()) {
+ // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
- if (staProtocol.isAutoing()
- && staProtocol.isLoading()
- && staProtocol.isInEnable()
- && staProtocol.getWorkNo() > 0
- && staProtocol.isPakMk()) {
- News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
+ if (staProtocol.isAutoing()
+ && staProtocol.isLoading()
+ && staProtocol.isInEnable()
+ && staProtocol.getWorkNo() > 0
+ && staProtocol.isPakMk()) {
+ News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
// // 鑾峰彇鏉$爜鎵弿浠俊鎭�
// BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode());
@@ -405,106 +404,94 @@
// }
// WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
- WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue());
- if (wrkMast == null) {
- // 鏃犳嫞鏂欐暟鎹�
- continue;
- }
- if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107)
- || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) {
- continue;
- }
+ WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue());
+ if (wrkMast == null) {
+ // 鏃犳嫞鏂欐暟鎹�
+ continue;
+ }
- // 鎷c�佺洏銆佸苟 浣滀笟绔欒浆鎹�
-// int stnNo = 0;
-// if (wrkMast.getStaNo() == 109) {
-// stnNo = 127;
-// } else if (wrkMast.getStaNo() == 113) {
-// stnNo = 128;
-// } else {
-// log.error("{}鍙蜂换鍔℃暟鎹紓甯革紒", wrkMast.getWrkNo());
-// }
- // 鑾峰彇鐩爣绔�
- Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
- .eq("type_no", wrkMast.getIoType() - 50)
- .eq("stn_no", pickSta.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
- .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
- StaDesc staDesc = staDescService.selectOne(wrapper);
- if (Cools.isEmpty(staDesc)) {
+ if (wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57) {
+ LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+ // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
+ staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
+ staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+ staProtocol.setPalletSize(locMast.getLocType2());
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ if (!result) {
+ News.error("" + mark + " - 3" + " - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
+ }
+ continue;
+ }
+
+ if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107)
+ || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) {
+ continue;
+ }
+
+ // 鑾峰彇鐩爣绔�
+ Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+ .eq("type_no", wrkMast.getIoType() - 50)
+ .eq("stn_no", pickSta.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
+ .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
+ StaDesc staDesc = staDescService.selectOne(wrapper);
+ if (Cools.isEmpty(staDesc)) {
// News.error(""+mark+" - 2"+" - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
// staProtocol.setWorkNo((short) 9989);
// staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue()-(short)1));
// devpThread.setPakMk(staProtocol.getSiteId(), false);
// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- //LED
- LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
- // led 寮傚父鏄剧ず
- if (ledThread != null) {
- String errorMsg = "姝や负鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱.璇锋斁鍦�" + pickSta.getBackSta().shortValue() + "绔欑偣";
- MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errorMsg));
+ //LED
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
+ // led 寮傚父鏄剧ず
+ if (ledThread != null) {
+ String errorMsg = "姝や负鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱.璇锋斁鍦�" + pickSta.getBackSta().shortValue() + "绔欑偣";
+ MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errorMsg));
+ }
+ continue;
}
- continue;
+
+ try {
+ LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
+
+ SearchLocParam param = new SearchLocParam();
+ param.setBarcode(wrkMast.getBarcode());
+ param.setSourceStaNo(pickSta.getStaNo());
+ param.setLocType1(locTypeDto.getLocType1());
+ String response = new HttpHandler.Builder()
+ .setUri(wmsUrl)
+ .setPath("/rpc/pakin/pick/loc/v1")
+ .setJson(JSON.toJSONString(param))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.getInteger("code").equals(200)) {
+ LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+ // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
+ staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
+ staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+ staProtocol.setPalletSize(locMast.getLocType2());
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ if (!result) {
+ News.error("" + mark + " - 3" + " - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
+ }
+ } else {
+ News.error("" + mark + " - 5" + " - 璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/pick/loc/v1", JSON.toJSONString(param), response);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ } else {
+ News.errorNoLog("" + mark + " - 6" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isLoading() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable()
+ + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk());
}
-
- try {
- // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
- if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) {
- throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
- }
- // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
- if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) {
- throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
- }
-
- Date now = new Date();
- // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
- Integer staNo = staDesc.getCrnStn();
- // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
- wrkMast.setIoTime(now);
- wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
- wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
- wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
- wrkMast.setStaNo(staNo); // 鐩爣绔�
- wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
- wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
- wrkMast.setModiTime(now);
- wrkMast.setUpdMk("");//鍏佽鍐嶆绉诲簱
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
- }
- // 鏇存柊鏄庣粏妗o_time (鍘嗗彶妗e叧鑱斾娇鐢級
- wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now);
- // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
- LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
- locMast.setLocSts("Q");
- locMast.setModiTime(new Date());
- if (!locMastService.updateById(locMast)) {
- throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
- }
- } catch (Exception e) {
- e.printStackTrace();
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- continue;
- }
-
- LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
- // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
- staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
- staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
- staProtocol.setPalletSize(locMast.getLocType2());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- if (!result) {
- News.error("" + mark + " - 3" + " - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
- }
-
- } else {
- News.errorNoLog("" + mark + " - 6" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isLoading() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable()
- + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk());
}
}
-
+ } catch (Exception e) {
+ e.printStackTrace();
}
News.infoNoLog("" + mark + " - 0" + " - 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱 ===銆嬫墽琛屽畬鎴�");
}
@@ -513,51 +500,52 @@
* 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱-鏉$爜
*/
public synchronized void stnToCrnStnPickBarcode(Integer mark) {
- for (DevpSlave devp : slaveProperties.getDevp()) {
- // 閬嶅巻鎷f枡鍏ュ簱鍙�
- for (DevpSlave.Sta insta : devp.getInSta()) {
- // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
- StaProtocol staProtocol = devpThread.getStation().get(insta.getStaNo());
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
-
- if (staProtocol.isAutoing()
- && staProtocol.isLoading()
- && staProtocol.isInEnable()
- && staProtocol.getWorkNo() > 0
- && staProtocol.isPakMk()) {
- News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
-
- // 鑾峰彇鏉$爜鎵弿浠俊鎭�
- BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, insta.getBarcode());
- if (barcodeThread == null) {
+ try {
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ // 閬嶅巻鎷f枡鍏ュ簱鍙�
+ for (DevpSlave.Sta insta : devp.getInSta()) {
+ // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ StaProtocol staProtocol = devpThread.getStation().get(insta.getStaNo());
+ if (staProtocol == null) {
continue;
+ } else {
+ staProtocol = staProtocol.clone();
}
- String barcode = barcodeThread.getBarcode();
- if (!Cools.isEmpty(barcode)) {
- News.info("" + mark + " - 1" + " - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", insta.getBarcode(), barcode);
- if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+
+ if (staProtocol.isAutoing()
+ && staProtocol.isLoading()
+ && staProtocol.isInEnable()
+ && staProtocol.getWorkNo() > 0
+ && staProtocol.isPakMk()) {
+ News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
+
+ // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+ BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, insta.getBarcode());
+ if (barcodeThread == null) {
continue;
}
- } else {
- continue;
- }
+ String barcode = barcodeThread.getBarcode();
+ if (!Cools.isEmpty(barcode)) {
+ News.info("" + mark + " - 1" + " - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", insta.getBarcode(), barcode);
+ if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+ continue;
+ }
+ } else {
+ continue;
+ }
- WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
- if (wrkMast == null) {
- // 鏃犳嫞鏂欐暟鎹�
- continue;
- }
- if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107)
- || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) {
- continue;
- }
+ WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
+ if (wrkMast == null) {
+ // 鏃犳嫞鏂欐暟鎹�
+ continue;
+ }
+ if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107)
+ || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) {
+ continue;
+ }
- // 鎷c�佺洏銆佸苟 浣滀笟绔欒浆鎹�
+ // 鎷c�佺洏銆佸苟 浣滀笟绔欒浆鎹�
// int stnNo = 0;
// if (wrkMast.getStaNo() == 109) {
// stnNo = 127;
@@ -566,87 +554,90 @@
// } else {
// log.error("{}鍙蜂换鍔℃暟鎹紓甯革紒", wrkMast.getWrkNo());
// }
- // 鑾峰彇鐩爣绔�
- Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
- .eq("type_no", wrkMast.getIoType() - 50)
- .eq("stn_no", insta.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
- .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
- StaDesc staDesc = staDescService.selectOne(wrapper);
- if (Cools.isEmpty(staDesc)) {
+ // 鑾峰彇鐩爣绔�
+ Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+ .eq("type_no", wrkMast.getIoType() - 50)
+ .eq("stn_no", insta.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
+ .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
+ StaDesc staDesc = staDescService.selectOne(wrapper);
+ if (Cools.isEmpty(staDesc)) {
// News.error(""+mark+" - 2"+" - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
// staProtocol.setWorkNo((short) 9989);
// staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue()-(short)1));
// devpThread.setPakMk(staProtocol.getSiteId(), false);
// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- //LED
- LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, insta.getLed());
- // led 寮傚父鏄剧ず
- if (ledThread != null) {
- String errorMsg = "姝や负鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱.璇锋斁鍦�" + insta.getBackSta().shortValue() + "绔欑偣";
- MessageQueue.offer(SlaveType.Led, insta.getLed(), new Task(5, errorMsg));
- }
- continue;
- }
-
- try {
- // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
- if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) {
- throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
- }
- // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
- if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) {
- throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+ //LED
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, insta.getLed());
+ // led 寮傚父鏄剧ず
+ if (ledThread != null) {
+ String errorMsg = "姝や负鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱.璇锋斁鍦�" + insta.getBackSta().shortValue() + "绔欑偣";
+ MessageQueue.offer(SlaveType.Led, insta.getLed(), new Task(5, errorMsg));
+ }
+ continue;
}
- Date now = new Date();
- // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
- Integer staNo = staDesc.getCrnStn();
- // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
- wrkMast.setIoTime(now);
- wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
- wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
- wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
- wrkMast.setStaNo(staNo); // 鐩爣绔�
- wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
- wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
- wrkMast.setModiTime(now);
- wrkMast.setUpdMk("");//鍏佽鍐嶆绉诲簱
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+ try {
+ // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+ if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
+ }
+ // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+ if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) {
+ throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+ }
+
+ Date now = new Date();
+ // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
+ Integer staNo = staDesc.getCrnStn();
+ // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
+ wrkMast.setIoTime(now);
+ wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
+ wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
+ wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
+ wrkMast.setStaNo(staNo); // 鐩爣绔�
+ wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
+ wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
+ wrkMast.setModiTime(now);
+ wrkMast.setUpdMk("");//鍏佽鍐嶆绉诲簱
+ if (wrkMastMapper.updateById(wrkMast) == 0) {
+ throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+ }
+ // 鏇存柊鏄庣粏妗o_time (鍘嗗彶妗e叧鑱斾娇鐢級
+ wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now);
+ // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
+ LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+ locMast.setLocSts("Q");
+ locMast.setModiTime(new Date());
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ continue;
}
- // 鏇存柊鏄庣粏妗o_time (鍘嗗彶妗e叧鑱斾娇鐢級
- wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now);
- // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
+
LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
- locMast.setLocSts("Q");
- locMast.setModiTime(new Date());
- if (!locMastService.updateById(locMast)) {
- throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+ // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
+ staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
+ staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+ staProtocol.setPalletSize(locMast.getLocType2());
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ if (!result) {
+ News.error("" + mark + " - 3" + " - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
}
- } catch (Exception e) {
- e.printStackTrace();
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- continue;
+
+ } else {
+ News.errorNoLog("" + mark + " - 6" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isLoading() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable()
+ + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk());
}
- LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
- // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
- staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
- staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
- staProtocol.setPalletSize(locMast.getLocType2());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- if (!result) {
- News.error("" + mark + " - 3" + " - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
- }
-
- } else {
- News.errorNoLog("" + mark + " - 6" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isLoading() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable()
- + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk());
}
}
-
+ } catch (Exception e) {
+ e.printStackTrace();
}
News.infoNoLog("" + mark + " - 0" + " - 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱 ===銆嬫墽琛屽畬鎴�");
}
@@ -702,9 +693,14 @@
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
.eq("loc_no", wrkMast.getSourceLocNo()));
+ short staNo = wrkMast.getStaNo().shortValue();
+ if (wrkMast.getStaNo() == 1004) {
+ staNo = 2003;
+ }
+
// 涓嬪彂绔欑偣淇℃伅
staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
- staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+ staProtocol.setStaNo(staNo);
staProtocol.setPalletSize(locMast.getLocType2());
if (!MessageQueue.offer(SlaveType.Devp, devpId, new Task(2, staProtocol))) {
continue;
@@ -749,7 +745,7 @@
// }
//鍫嗗灈鏈哄洖鍘熺偣浠诲姟涓�
- Object object = redisUtil.get(RedisConstantType.CRN_MOVE_LOCK);
+ Object object = redisUtil.get(RedisConstantType.CRN_MOVE_LOCK + crn.getId());
if (object != null) {
continue;
}
@@ -821,7 +817,7 @@
continue;
}
- Object object = redisUtil.get(RedisConstantType.CRN_MOVE_LOCK);
+ Object object = redisUtil.get(RedisConstantType.CRN_MOVE_LOCK + crn.getId());
if (object != null) {
continue;
}
@@ -893,7 +889,7 @@
continue;
}
- Object object = redisUtil.get(RedisConstantType.CRN_MOVE_LOCK);
+ Object object = redisUtil.get(RedisConstantType.CRN_MOVE_LOCK + crn.getId());
if (object != null) {
continue;
}
@@ -1038,7 +1034,7 @@
News.warn("" + mark + " - 1" + " - 12" + " - // F銆丏 搴撲綅={},搴撲綅鐘舵��={}", shallowLoc.getLocNo(), shallowLoc.getLocSts());
// 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
- if (moveLocForDeepLoc(slave, shallowLoc, mark)) {
+ if (moveLocForDeepLoc(slave, crnProtocol, shallowLoc, mark)) {
wrkMast.setUpdMk("Y");
wrkMast.setIoPri(14D);
wrkMastMapper.updateById(wrkMast);
@@ -1126,6 +1122,13 @@
devpCheckTaskStackOver = Integer.parseInt(config2.getValue());
}
+ int outNumber = 13;
+ Config config3 = configService.selectOne(new EntityWrapper<Config>()
+ .eq("code", "fullBoardOutboundNumber"));
+ if (config3 != null) {
+ outNumber = Integer.parseInt(config3.getValue());
+ }
+
Integer devpWorkingCount = commonService.queryDevpWorkingCount();
if (devpWorkingCount > devpTaskStackOver) {
@@ -1163,11 +1166,12 @@
staProtocol = staProtocol.clone();
}
- if (wrkMast.getStaNo() == 1003 || wrkMast.getStaNo() == 1007) {
+ if (wrkMast.getStaNo() == 1003 || wrkMast.getStaNo() == 1007 || wrkMast.getStaNo() == 1004) {
//妫�娴嬫槸鍚︽湁鍏ュ簱浠诲姟
List<WrkMast> inWrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
.in("io_type", 1, 53, 57)
- .in("source_sta_no", 1005)
+ .notIn("wrk_sts", 3, 4, 5)
+ .in("source_sta_no", 1002, 1007)
);
if (!inWrkMasts.isEmpty()) {
News.error("" + mark + " - 2" + " - 妫�娴嬪瓨鍦ㄥ叆搴撲换鍔★紝绛夊緟鍏ュ簱浠诲姟鎵ц瀹屾垚鍐嶅嚭搴擄紝宸ヤ綔鍙�={}" + wrkMast.getWrkNo());
@@ -1195,6 +1199,14 @@
News.error("" + mark + " - 2" + " - 妫�娴嬪瓨鍦�1062绔欑偣锛屽瓨鍦ㄤ袱绗斿伐浣滀腑鐨勪换鍔★紝宸ヤ綔鍙�={}" + wrkMast.getWrkNo());
continue;
}
+ }
+ }else if (wrkMast.getIoType() == 101) {
+ List<WrkMast> inWrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+ .in("wrk_sts", 12, 14)
+ );
+ if (!Cools.isEmpty(inWrkMasts) && inWrkMasts.size() >= outNumber) {
+ News.error("" + mark + " - 4" + " - 妫�娴嬪埌鍏ㄦ澘鍑哄簱鐨勪换鍔″凡缁忓埌杈句笂绾匡紝宸ヤ綔鍙�={}" + wrkMast.getWrkNo());
+ continue;
}
}
@@ -1251,7 +1263,7 @@
turnCrnExecuteCurrentChannel = turnCrnExecuteCurrentChannelConfig.getValue();
}
- if(turnCrnExecuteCurrentChannel.equals("Y")) {
+ if (turnCrnExecuteCurrentChannel.equals("Y")) {
//鍒ゆ柇鍫嗗灈鏈哄拰褰撳墠浠诲姟鏄惁澶勪簬涓�涓贩閬�
if (Utils.getLaneByLocNo(wrkMast.getSourceLocNo()) != crnProtocol.getCrnLane()) {
//鍒ゆ柇鍫嗗灈鏈烘墍鍦ㄥ贩閬撴槸鍚﹀瓨鍦ㄥ叾浠栦换鍔★紝濡傚瓨鍦ㄥ垯浼樺厛鎵ц
@@ -1295,7 +1307,7 @@
// if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())
// || Cools.isEmpty(waitWrkMast)) {
if (Cools.isEmpty(waitWrkMast)) {
- if (moveLocForDeepLoc(slave, shallowLoc, mark)) {
+ if (moveLocForDeepLoc(slave, crnProtocol, shallowLoc, mark)) {
wrkMast.setUpdMk("Y");
// wrkMast.setIoPri(14D);
wrkMastMapper.updateById(wrkMast);
@@ -1650,6 +1662,7 @@
if (crnProtocol.getTaskNo() == 9999) {
// 鍫嗗灈鏈哄浣�
crnThread.setResetFlag(true);
+ redisUtil.set(RedisConstantType.CRN_MOVE_LOCK + crn.getId(), "lock", 8);//闃叉鍥炲師鐐瑰悗涓嬪彂鎸囦护杩囧揩
continue;
}
@@ -1661,7 +1674,7 @@
}
Date now = new Date();
- if(wrkMast.getIoType() < 100){
+ if (wrkMast.getIoType() < 100) {
// 鍏ュ簱 + 搴撲綅杞Щ ==> 4.鍏ュ簱瀹屾垚
if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && (wrkMast.getIoType() == 11 || wrkMast.getIoType() == 111))) {
wrkMast.setWrkSts(4L);
@@ -1677,7 +1690,7 @@
News.warnNoLog("" + mark + " - 2" + " - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 : 鍫嗗灈鏈哄彿={}", crnThread.getCrnProtocol().getCrnNo());
crnThread.setResetFlag(true);
}
- }else {
+ } else {
List<Long> list = new ArrayList<>();
list.add(14L);
list.add(15L);
@@ -2010,6 +2023,16 @@
continue;
}
+ //妫�娴嬫槸鍚︽湁鍏ュ簱浠诲姟
+ List<WrkMast> inWrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+ .in("io_type", 1, 53, 57)
+ .in("source_sta_no", 1002, 1007)
+ );
+ if (!inWrkMasts.isEmpty()) {
+ News.error("" + mark + " - 2" + " - 妫�娴嬪瓨鍦ㄥ叆搴撲换鍔★紝绛夊緟鍏ュ簱浠诲姟鎵ц瀹屾垚鍐嶅叆绌烘墭锛屽伐浣滃彿={}");
+ continue;
+ }
+
int workNo = commonService.getWorkNo(3);
// 鐢熸垚宸ヤ綔妗�
WrkMast wrkMast1 = new WrkMast();
@@ -2059,8 +2082,9 @@
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
// 鍛戒护闆嗗悎
List<LedCommand> commands = new ArrayList<>();
- // 宸ヤ綔妗i泦鍚�
- List<WrkMast> wrkMasts = new ArrayList<>();
+// // 宸ヤ綔妗i泦鍚�
+// List<WrkMast> wrkMasts = new ArrayList<>();
+ List<Integer> workNoList = new ArrayList<>();
for (Integer staNo : led.getStaArr()) {
// 鑾峰彇鍙夎溅绔欑偣
StaProtocol staProtocol = devpThread.getStation().get(staNo);
@@ -2069,20 +2093,48 @@
} else {
staProtocol = staProtocol.clone();
}
+ Integer wrkNo = null;
+ Integer ioType = null;
+ Integer targetStaNo = null;
+ String sourceLocNo = null;
+ String locNo = null;
+ String barcode = null;
+
// 鑾峰彇宸ヤ綔妗f暟鎹�
WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
// if (null == wrkMast || wrkMast.getWrkSts() < 14 || wrkMast.getIoType() < 100) { continue; }
if (null == wrkMast) {
- continue;
+ List<WrkMastLog> wrkMastLogs = wrkMastLogService.selectList(new EntityWrapper<WrkMastLog>()
+ .eq("wrk_no", staProtocol.getWorkNo())
+ .orderBy("modi_time", false)
+ );
+ if (wrkMastLogs.isEmpty()) {
+ continue;
+ }
+
+ WrkMastLog wrkMastLog = wrkMastLogs.get(0);
+ wrkNo = wrkMastLog.getWrkNo();
+ ioType = wrkMastLog.getIoType();
+ sourceLocNo = wrkMastLog.getSourceLocNo();
+ locNo = wrkMastLog.getLocNo();
+ targetStaNo = wrkMastLog.getStaNo();
+ barcode = wrkMastLog.getBarcode();
+ }else {
+ wrkNo = wrkMast.getWrkNo();
+ ioType = wrkMast.getIoType();
+ sourceLocNo = wrkMast.getSourceLocNo();
+ locNo = wrkMast.getLocNo();
+ targetStaNo = wrkMast.getStaNo();
+ barcode = wrkMast.getBarcode();
}
News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�:鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�");
- wrkMasts.add(wrkMast);
+ workNoList.add(wrkNo);
// 缁勮鍛戒护
LedCommand ledCommand = new LedCommand();
- ledCommand.setWorkNo(wrkMast.getWrkNo());
- ledCommand.setIoType(wrkMast.getIoType());
+ ledCommand.setWorkNo(wrkNo);
+ ledCommand.setIoType(ioType);
// 鍑哄簱妯″紡
- switch (wrkMast.getIoType()) {
+ switch (ioType) {
case 1:
ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
break;
@@ -2115,50 +2167,104 @@
ledCommand.setTitle("骞舵澘鍏ュ簱");
break;
default:
- News.error("" + mark + " - 1" + " - 浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
+ News.error("" + mark + " - 1" + " - 浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkNo, ioType);
break;
}
- ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
- ledCommand.setLocNo(wrkMast.getLocNo());
- ledCommand.setStaNo(wrkMast.getStaNo());
- ledCommand.setBarcode(wrkMast.getBarcode());
+ ledCommand.setSourceLocNo(sourceLocNo);
+ ledCommand.setLocNo(locNo);
+ ledCommand.setStaNo(targetStaNo);
+ ledCommand.setBarcode(barcode);
// ledCommand.setSourceStaNo(wrkMast.getSourceStaNo());
- if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
- List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
-// try{
-// if (wrkMast.getIoType()>100){
-// for (WrkDetl wrkDetl : wrkDetls){
-// LocDetl locDetl = locDetlService.selectMatnrSpecs(wrkDetl.getMatnr(), wrkDetl.getSpecs(), wrkMast.getSourceLocNo());
-// wrkDetl.setWeight(locDetl.getAnfme());
-// }
-// }else {
-// for (WrkDetl wrkDetl : wrkDetls){
-// wrkDetl.setWeight(wrkDetl.getAnfme());
-// }
-// }
-// }catch (Exception e){
-// log.error("宸ヤ綔妗f鏄庣粏杈撳叆鐢佃鏈哄け璐�1锛氬紓甯镐俊鎭�==銆�"+e);
-// }
- wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(
- wrkDetl.getMatnr()
- , wrkDetl.getMaktx()
- , wrkDetl.getAnfme()
- , wrkDetl.getWeight()
- , wrkDetl.getStockNum()
- , wrkDetl.getStockNum2()
- , wrkDetl.getSpecs()
- , wrkDetl.getSku()
- , wrkDetl.getZpallet()
- , wrkDetl.getModel()
- , wrkDetl.getSupp()
- , wrkDetl.getKpCstmrName()
- , wrkDetl.getOrderNo()
- , wrkDetl.getCstateid$()
- )));
+ if (ioType != 110 && ioType != 10) {
+ List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkNo);
+
+ if (!wrkDetls.isEmpty()) {
+ WrkDetl wrkDetl = wrkDetls.get(0);
+ double anfme = 0D;
+ double weight = 0D;
+ for (WrkDetl detl : wrkDetls) {
+ anfme += detl.getAnfme();
+ weight += detl.getWeight();
+ wrkDetl.setAnfme(anfme);
+ wrkDetl.setWeight(weight);
+ }
+
+ List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
+ .eq("loc_no", wrkMast.getSourceLocNo()));
+ double totalAnfme = 0D;
+ double totalWeight = 0D;
+ for (LocDetl locDetl : locDetls) {
+ totalAnfme += locDetl.getAnfme();
+ totalWeight += locDetl.getWeight();
+ }
+ wrkDetl.setStockNum(totalAnfme);
+ wrkDetl.setStockNum2(totalWeight);
+
+ ledCommand.getMatDtos().add(new MatDto(
+ wrkDetl.getMatnr()
+ , wrkDetl.getMaktx()
+ , wrkDetl.getAnfme()
+ , wrkDetl.getWeight()
+ , wrkDetl.getStockNum()
+ , wrkDetl.getStockNum2()
+ , wrkDetl.getSpecs()
+ , wrkDetl.getSku()
+ , wrkDetl.getZpallet()
+ , wrkDetl.getModel()
+ , wrkDetl.getSupp()
+ , wrkDetl.getKpCstmrName()
+ , wrkDetl.getOrderNo()
+ , wrkDetl.getCstateid$()
+ ));
+
+ }else {
+ List<WrkDetlLog> wrkDetlLogs = wrkDetlLogService.selectTodayByWrkNo(wrkNo);
+ if(!wrkDetlLogs.isEmpty()) {
+ WrkDetlLog wrkDetlLog = wrkDetlLogs.get(0);
+
+ double anfme = 0D;
+ double weight = 0D;
+ for (WrkDetlLog detl : wrkDetlLogs) {
+ anfme += detl.getAnfme();
+ weight += detl.getWeight();
+ wrkDetlLog.setAnfme(anfme);
+ wrkDetlLog.setWeight(weight);
+ }
+
+ List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
+ .eq("loc_no", sourceLocNo));
+ double totalAnfme = 0D;
+ double totalWeight = 0D;
+ for (LocDetl locDetl : locDetls) {
+ totalAnfme += locDetl.getAnfme();
+ totalWeight += locDetl.getWeight();
+ }
+ wrkDetlLog.setStockNum(totalAnfme);
+ wrkDetlLog.setStockNum2(totalWeight);
+
+ ledCommand.getMatDtos().add(new MatDto(
+ wrkDetlLog.getMatnr()
+ , wrkDetlLog.getMaktx()
+ , wrkDetlLog.getAnfme()
+ , wrkDetlLog.getWeight()
+ , wrkDetlLog.getStockNum()
+ , wrkDetlLog.getStockNum2()
+ , wrkDetlLog.getSpecs()
+ , wrkDetlLog.getSku()
+ , wrkDetlLog.getZpallet()
+ , wrkDetlLog.getModel()
+ , wrkDetlLog.getSupp()
+ , wrkDetlLog.getKpCstmrName()
+ , wrkDetlLog.getOrderNo()
+ , wrkDetlLog.getCstateid$()
+ ));
+ }
+ }
+
}
commands.add(ledCommand);
}
- Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet());
+ Set<Integer> workNos = new HashSet<>(workNoList);
// 鑾峰彇LED绾跨▼
LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
// 鐩稿悓宸ヤ綔鍙烽泦鍚堝垯杩囨护
@@ -2196,12 +2302,15 @@
try {
// 淇敼涓绘。led鏍囪
- for (WrkMast wrkMast : wrkMasts) {
- wrkMast.setOveMk("Y");
- wrkMast.setModiTime(new Date());
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- News.errorNoLog("" + mark + " - 4" + " - 鏇存柊宸ヤ綔妗eけ璐�");
- throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
+ for (Integer wrkNo : workNoList) {
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", wrkNo));
+ if (wrkMast != null) {
+ wrkMast.setOveMk("Y");
+ wrkMast.setModiTime(new Date());
+ if (wrkMastMapper.updateById(wrkMast) == 0) {
+ News.errorNoLog("" + mark + " - 4" + " - 鏇存柊宸ヤ綔妗eけ璐�");
+ throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
+ }
}
}
@@ -2336,8 +2445,7 @@
* 鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)
* tip锛氬悓姝�
*/
- private synchronized boolean moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc, Integer mark) {
-
+ private synchronized boolean moveLocForDeepLoc(CrnSlave crn, CrnProtocol crnProtocol, LocMast shallowLoc, Integer mark) {
try {
News.warnNoLog("" + mark + "moveLocForDeepLoc" + " - 0" + " - 寮�濮嬫墽琛�:鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)");
List<Integer> rows = locMastService.queryDistinctRow(crn.getId());
@@ -2345,8 +2453,13 @@
for (Integer row : rows) {
if (Utils.isDeepLoc(slaveProperties, row)) {
loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
-
if (loc != null) {
+ if (crn.getId() == 1) {
+ if (Utils.getLaneByLocNo(loc.getLocNo()) != crnProtocol.getCrnLane()) {
+ continue;
+ }
+ }
+
if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())) {
String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo());
LocMast shallowLoc1 = locMastService.selectById(shallowLocNo);
@@ -2366,6 +2479,12 @@
loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
if (null != loc) {//瀵瑰簲娣卞簱浣嶉潪鍦ㄥ簱鐘舵��,涓嶈兘绉诲簱
+ if (crn.getId() == 1) {
+ if (Utils.getLaneByLocNo(loc.getLocNo()) != crnProtocol.getCrnLane()) {
+ continue;
+ }
+ }
+
String deepLoc = Utils.getDeepLoc(slaveProperties, loc.getLocNo());
LocMast deepLoc1 = locMastService.selectById(deepLoc);
if (!deepLoc1.getLocSts().equals("F") && !deepLoc1.getLocSts().equals("D")) {
@@ -2385,6 +2504,15 @@
return false;
// throw new CoolException("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());
} else {
+ String deepLoc2 = Utils.getDeepLoc2(slaveProperties, loc.getLocNo());
+ if (deepLoc2 != null) {
+ LocMast locnew = locMastService.selectById(deepLoc2);
+ if (locnew != null && locnew.getLocSts().equals("O")) {
+ loc = locnew;
+ }
+ }
+
+
try {
// 鑾峰彇宸ヤ綔鍙�
int workNo = commonService.getWorkNo(0);
--
Gitblit v1.9.1