From 2e5837667e60378a06c7d8d1a4b095c4ba6e2d06 Mon Sep 17 00:00:00 2001
From: pjb <pjb123456>
Date: 星期一, 17 十一月 2025 09:29:08 +0800
Subject: [PATCH] 限制优化
---
src/main/java/com/zy/service/impl/MainServiceImpl.java | 241 +++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 216 insertions(+), 25 deletions(-)
diff --git a/src/main/java/com/zy/service/impl/MainServiceImpl.java b/src/main/java/com/zy/service/impl/MainServiceImpl.java
index 9159360..f5ac54f 100644
--- a/src/main/java/com/zy/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/service/impl/MainServiceImpl.java
@@ -41,6 +41,7 @@
import javax.annotation.Resource;
import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
/**
@@ -106,8 +107,9 @@
crnOutSiteToRgvSite.put(1093, (short) 1091);crnOutSiteToRgvSite.put(1099, (short) 1097);crnOutSiteToRgvSite.put(1107, (short) 1105);
+ crnOutSiteToRgvSite2.put(1093, (short) 1091);crnOutSiteToRgvSite2.put(1099, (short) 1097);crnOutSiteToRgvSite2.put(1107, (short) 1105);
crnOutSiteToRgvSite2.put(1087, (short) 1089);crnOutSiteToRgvSite2.put(1084, (short) 1086);crnOutSiteToRgvSite2.put(1081, (short) 1083);
- crnOutSiteToRgvSite2.put(1043, (short) 1041);crnOutSiteToRgvSite2.put(1016, (short) 1018);
+ crnOutSiteToRgvSite2.put(1043, (short) 1041);crnOutSiteToRgvSite2.put(1016, (short) 1018);crnOutSiteToRgvSite2.put(1008, (short) 1006);
}
@Autowired
@@ -324,7 +326,7 @@
/**
* 缃愯绾胯妗舵暟閲忓噺灏�
*/
- private void decreaseWantBucketCount(int site, int decrease) throws InterruptedException {
+ private synchronized void decreaseWantBucketCount(int site, int decrease) throws InterruptedException {
int siteNew;
switch (site) {
@@ -361,6 +363,7 @@
}
log.info("鑷姩鍑虹┖妗跺噺灏戠綈瑁呯嚎瑕佹《鏁版垚鍔燂紝绔欑偣锛歿}锛屽噺灏戝墠锛歿}锛屽噺灏戞暟锛歿}锛屽墿浣欒妗舵暟锛歿}", site, count, decrease, remaining);
+ Thread.sleep(700);
}
/**
@@ -620,15 +623,23 @@
crnProtocol.setLastIo("O");
} else if (basCrnp.getOutEnable().equals("Y")) {
//mark - 2 - ....
- this.locToCrnStn(crn, crnProtocol,mark); // 鍑哄簱
+ AtomicInteger atomicInteger = new AtomicInteger(mark);
+ this.locToCrnStn(crn, crnProtocol,atomicInteger); // 鍑哄簱
crnProtocol.setLastIo("I");
+ if(atomicInteger.get() == 99) { // 涓嬩竴娆¤繕鏄嚭搴�
+ crnProtocol.setLastIo("O");
+ }
}
}
// 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
else if (crnProtocol.getLastIo().equals("O")) {
if (basCrnp.getOutEnable().equals("Y")) {
- this.locToCrnStn(crn, crnProtocol,mark); // 鍑哄簱
+ AtomicInteger atomicInteger = new AtomicInteger(mark);
+ this.locToCrnStn(crn, crnProtocol,atomicInteger); // 鍑哄簱
crnProtocol.setLastIo("I");
+ if(atomicInteger.get() == 99) { // 涓嬩竴娆¤繕鏄嚭搴�
+ crnProtocol.setLastIo("O");
+ }
} else if (basCrnp.getInEnable().equals("Y")) {
this.crnStnToLoc(crn, crnProtocol,mark); // 鍏ュ簱
crnProtocol.setLastIo("O");
@@ -687,7 +698,12 @@
// 鍒ゆ柇1050鏄惁鏈夎揣
StaProtocol staProtocol1 = devpThread.getStation().get(1050);
if(staProtocol1.isAutoing() && staProtocol1.isLoading() && staProtocol1.isInEnable() && staProtocol1.getWorkNo() != 0) {
-
+ // 鍒嗛厤搴撲綅
+ boolean isContinue =getLocNoNew(staProtocol1.getWorkNo(),wrkMast);
+ // 鏄惁涓嶇户缁線涓嬫墽琛�
+ if (isContinue) {
+ continue;
+ }
} else {
continue;
}
@@ -749,7 +765,7 @@
wrkMast.setIoPri(14D);
wrkMastMapper.updateById(wrkMast);
// 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
- moveLocForDeepLoc(slave, shallowLoc,mark);
+ moveLocForDeepLoc(slave, shallowLoc,new AtomicInteger(mark));
// 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�)
// moveLocForDeepLocPakin(slave, shallowLoc, wrkMast);
}
@@ -780,8 +796,8 @@
if(crnStn.getStaNo() == 1050 && locMast.getRow1() == 10) {
crnCommand.setDestinationPosX((short) 9);
}
- if(crnStn.getStaNo() == 1049 && locMast.getRow1() == 11) {
- crnCommand.setDestinationPosX((short) 12);
+ if(crnStn.getStaNo() == 1049 && locMast.getRow1() == 10) {
+ crnCommand.setDestinationPosX((short) 9);
}
crnCommand.setDestinationPosY(locMast.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ(locMast.getLev1().shortValue()); // 鐩爣搴撲綅灞�
@@ -823,16 +839,132 @@
News.infoNoLog(""+mark+" - 1"+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 锛� 鍏ュ簱鎵ц瀹屾瘯");
}
+ private boolean getLocNoNew(Integer workNo1050, WrkMast wrkMast1049) {
+ if(!wrkMast1049.getLocNo().isEmpty()) {
+ return false;
+ }
+ WrkMast wrkMast1050 = wrkMastMapper.selectPakInStep2(4, workNo1050);
+ // 鍒ゆ柇1050娌℃湁琚爢鍨涙満鍙栵紝骞朵笖娌℃湁灏炬嫋淇″彿
+ if(wrkMast1050 != null && wrkMast1050.getCtnType() != 1) {
+ // 鍒ゆ柇杩欎袱涓揣鏄笉鏄竴绉嶇被鍨嬶紝涓嶆槸缁�1050鍒嗛厤搴撲綅锛岀粰灏炬嫋鏍囪瘑锛屾槸鍒欑粰涓や釜璐у垎閰嶅簱浣�
+ if(wrkMast1050.getPdcType().equals(wrkMast1049.getPdcType())) {
+ // 鍙栨柊搴撲綅缁勭殑绗竴涓簱浣�
+ List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("crn_no", 4).eq("loc_sts", "O"));
+ List<LocMast> collect = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 9 || locMast1.getRow1() == 11).collect(Collectors.toList());
+ List<LocMast> collect1 = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 10 || locMast1.getRow1() == 12).collect(Collectors.toList());
+ if (collect.size() <= 0 && collect1.size() <= 0) {
+ News.error("绔欑偣:{},浠诲姟鍙穥}锛氬叆搴撶┖妗跺簱鏃犵┖搴撲綅",1050,workNo1050);
+ return true;
+ }
+ // 鍙敤搴撲綅缁�
+ List<LocMast> locMastList = new ArrayList<>();
+ for(LocMast locMast1:collect) {
+ Optional<LocMast> first = collect1.stream().filter(locMast2 -> locMast1.getRow1() + 1 == locMast2.getRow1() && Objects.equals(locMast1.getLev1(), locMast2.getLev1())
+ && Objects.equals(locMast1.getBay1(), locMast2.getBay1())).findFirst();
+ first.ifPresent(locMastList::add);
+ }
+
+ if (locMastList.size() == 0) {
+ News.error("绔欑偣:{},浠诲姟鍙穥}锛氬叆搴撶┖妗跺簱鏃犲搴旂┖绌烘《缁�",1050,workNo1050);
+ return true;
+ }
+ WrkDetl wrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", workNo1050));
+ if (wrkDetl.getModel().equals("208L") && locMastList.size() <= 40 * 2 * 2) { // 鏈�涓婇潰涓�灞傚彧鑳芥斁208L锛屽簱浣嶅墿浣欓噺涓嶅鏃讹紝濡傛灉鏄�208L妗跺叆搴擄紝鍒欏厛浠庢渶椤跺眰鏀�
+ locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).reversed().thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList());
+ } else {
+ locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList());
+ }
+ // 1049瀵瑰簲搴撲綅
+ LocMast locMast = locMastList.get(0);
+
+ wrkMast1049.setLocNo(locMast.getLocNo());
+ wrkMastService.updateById(wrkMast1049);
+ if (locMast.getLocSts().equals("O")){
+ locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
+ locMast.setModiTime(new Date());
+ if (!locMastService.updateById(locMast)){
+ News.error("绔欑偣:{},浠诲姟鍙穥}锛氭敼鍙樺簱浣峽}鐘舵�亄}澶辫触",1049,wrkMast1049.getWrkNo(),locMast.getLocNo(),locMast.getLocSts());
+ } else {
+ // 缁�1050鍒嗛厤瀵瑰簲搴撲綅
+ Optional<LocMast> first = collect.stream().filter(locMast1 -> locMast1.getLocNo().equals((locMast.getRow1() == 10 ? "09" : "11") + locMast.getLocNo().substring(2))).findFirst();
+ if(first.isPresent()) {
+ LocMast locMast1 = first.get();
+ wrkMast1050.setLocNo(locMast1.getLocNo());
+
+ locMast1.setLocSts("S"); // S.鍏ュ簱棰勭害
+ locMast1.setModiTime(new Date());
+ wrkMastService.updateById(wrkMast1050); // 鏇存柊鍒嗛厤鐨勫簱浣�
+ locMastService.updateById(locMast1); // 鏇存柊搴撲綅鐘舵��
+ return false;
+ } else {
+ News.error("绔欑偣:{},浠诲姟鍙穥}锛氱┖搴撲綅缁剓}鏃犲搴旂┖搴撲綅",1050,workNo1050,locMast.getLocNo());
+ }
+ }
+ } else {
+ News.error("绔欑偣:{},浠诲姟鍙穥}锛氱洰鏍囧簱浣嶏細{}宸茶鍗犵敤",1049,wrkMast1049.getWrkNo(),locMast.getLocNo());
+ }
+ } else {
+ // 鍙栨柊搴撲綅缁勭殑绗竴涓簱浣�
+ List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("crn_no", 4).eq("loc_sts", "O"));
+ List<LocMast> collect = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 9 || locMast1.getRow1() == 11).collect(Collectors.toList());
+ List<LocMast> collect1 = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 10 || locMast1.getRow1() == 12).collect(Collectors.toList()); // 绗竴涓厛鏀捐繖涓ゆ帓
+ if (collect.size() <= 0 && collect1.size() <= 0) {
+ News.error("绔欑偣:{},浠诲姟鍙穥}锛氬叆搴撶┖妗跺簱鏃犵┖搴撲綅",1050,workNo1050);
+ return true;
+ }
+ // 鍙敤搴撲綅缁�
+ List<LocMast> locMastList = new ArrayList<>();
+ for(LocMast locMast1:collect) {
+ Optional<LocMast> first = collect1.stream().filter(locMast2 -> locMast1.getRow1() + 1 == locMast2.getRow1() && Objects.equals(locMast1.getLev1(), locMast2.getLev1())
+ && Objects.equals(locMast1.getBay1(), locMast2.getBay1())).findFirst();
+ first.ifPresent(locMastList::add);
+ }
+
+ if (locMastList.size() == 0) {
+ News.error("绔欑偣:{},浠诲姟鍙穥}锛氬叆搴撶┖妗跺簱鏃犲搴旂┖绌烘《缁�",1050,workNo1050);
+ return true;
+ }
+ WrkDetl wrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", workNo1050));
+ if (wrkDetl.getModel().equals("208L") && locMastList.size() <= 40 * 2 * 2) { // 鏈�涓婇潰涓�灞傚彧鑳芥斁208L锛屽簱浣嶅墿浣欓噺涓嶅鏃讹紝濡傛灉鏄�208L妗跺叆搴擄紝鍒欏厛浠庢渶椤跺眰鏀�
+ locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).reversed().thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList());
+ } else {
+ locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList());
+ }
+ LocMast locMast = locMastList.get(0);
+ wrkMast1050.setLocNo(locMast.getLocNo());
+ wrkMast1050.setCtnType(1); // 灏炬墭鏍囪瘑
+ wrkMastService.updateById(wrkMast1050);
+ if (locMast.getLocSts().equals("O")){
+ locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
+ locMast.setModiTime(new Date());
+ if (!locMastService.updateById(locMast)){
+ News.error("绔欑偣:{},浠诲姟鍙穥}锛氭敼鍙樺簱浣峽}鐘舵�亄}澶辫触",1050,workNo1050,locMast.getLocNo(),locMast.getLocSts());
+ }
+ } else {
+ News.error("绔欑偣:{},浠诲姟鍙穥}锛氱洰鏍囧簱浣嶏細{}宸茶鍗犵敤",1050,workNo1050,locMast.getLocNo());
+ }
+ }
+ }
+ return true;
+ }
+
/**
* 鍑哄簱 ===>> 搴撲綅鍒板爢鍨涙満绔�
* 2022-06-09 TQS淇敼锛屾煡璇㈠伐浣滄。LIST锛岄亶鍘嗕笅鍙戯紝闃叉绗竴涓换鍔″牭濉炲嚭搴�
*/
- public synchronized void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol,Integer mark) {
+ public synchronized void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol,AtomicInteger mark) {
News.warnNoLog(""+mark+" - 2"+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂锛氭墽琛屽嚭搴�");
boolean crnAvailableOut = false;
Config config = configService.selectOne(new EntityWrapper<Config>().eq("code","removeCrnAvailableOut"));
- if (config != null && config.getStatus() == 1) {
- crnAvailableOut = true;
+ if (config != null && config.getStatus() == 1 && !Cools.isEmpty(config.getValue())) {
+ // 闇�瑕佽嚜鍔ㄨˉ绌烘《鐨勭珯鐐�
+ String[] split = config.getValue().split("=");
+ for (String item : split) {
+ if (slave.getId() == Integer.parseInt(item)) {
+ crnAvailableOut = true;
+ break;
+ }
+ }
}
// 闄愬埗鍘绘崋缁戞満鍣ㄤ换鍔℃暟
int kbWrks = wrkMastMapper.selectCountByKb();
@@ -842,6 +974,15 @@
for (WrkMast wrkMast : wrkMasts) {
if (wrkMast == null) {
continue;
+ }
+ // 鍒ゆ柇浠诲姟鐩爣绔欑偣鏄惁鏄嚭搴撴ā寮�
+ if(wrkMast.getStaNo() == 1016 || wrkMast.getStaNo() == 1043) {
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ StaProtocol staProtocol = devpThread.getStation().get(wrkMast.getStaNo());
+ if(staProtocol.getInOrOutMode() != 2) {
+ News.error("{}浠诲姟鐩爣绔欑偣锛歿}锛屽綋鍓嶆ā寮忥細{}涓嶆槸鍑哄簱妯″紡锛屾棤娉曞嚭搴�",wrkMast.getWrkNo(),wrkMast.getStaNo(),staProtocol.getInOrOutMode());
+ continue;
+ }
}
if (wrkMast.getStaNo() == 1031) {
// 鑾峰彇1033鏃犵姸鎬佹椂浠诲姟鏁�+1
@@ -992,6 +1133,7 @@
wrkMast1.setSourceStaNo(1056);
wrkMastService.updateById(wrkMast1);
}
+ mark.set(99);
break;
}
}
@@ -1176,16 +1318,16 @@
if(wrkMast.getWorkNoOther() != 0 ){
WrkMast wrkMast1 = wrkMastService.selectByWrkNo(wrkMast.getWorkNoOther());
if (wrkMast1 != null) {
- // 浜ゆ崲搴撲綅鍙�
+// // 浜ゆ崲搴撲綅鍙�
String locNo = wrkMast.getLocNo();
- wrkMast.setLocNo(wrkMast1.getLocNo());
+// wrkMast.setLocNo(wrkMast1.getLocNo());
// 浜ゆ崲鍏ュ簱鏃堕棿锛屾彁鍙栧簱瀛樻椂鎸夐『搴忓厛娴呭悗娣�
Date ioTime = wrkMast.getIoTime();
if(locNo.startsWith("10")) {
wrkMast.setIoTime(wrkMast1.getIoTime());
wrkMast1.setIoTime(ioTime);
}
- wrkMast1.setLocNo(locNo);
+// wrkMast1.setLocNo(locNo);
wrkMast1.setCrnEndTime(now);
wrkMast1.setModiTime(now);
wrkMast1.setWrkSts(4L);
@@ -1198,6 +1340,7 @@
wrkMast.setWorkNoOther(0); // 娓呯┖鍙︿竴涓换鍔″彿
// 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
if (wrkMastMapper.updateById(wrkMast) > 0) {
+ log.info("{}鍙峰爢鍨涙満浠诲姟瀹屾垚锛岀敵璇峰浣嶏紝浠诲姟鍙凤細{}",crnProtocol.getCrnNo(),crnProtocol.getTaskNo());
// 鍫嗗灈鏈哄浣�
News.warnNoLog(""+mark+" - 2"+" - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 : 鍫嗗灈鏈哄彿={}",crnThread.getCrnProtocol().getCrnNo());
crnThread.setResetFlag(true);
@@ -1631,6 +1774,13 @@
// 鏄庣粏
WrkDetl wrkDetl1 = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
if (wrkDetl1 != null) {
+ // 鍑哄簱浠诲姟鐨勫洓涓嚭搴撶珯鐐癸紝鍒ゆ柇褰撳墠鐗╂枡涓�鎵瑰嚭搴撶殑鏃堕棿 鑾峰彇褰撳墠宸插畬鎴� / 鎬绘暟
+ if(wrkMast.getIoType() == 101 && (wrkMast.getStaNo() == 1024 ||wrkMast.getStaNo() == 1031 ||wrkMast.getStaNo() == 1043 ||wrkMast.getStaNo() == 1016) ) {
+ int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 101).eq("io_time", wrkMast.getIoTime()));
+ int countHis = wrkMastMapper.selectCountHisByIoTypeAndIoTime(101, wrkMast.getIoTime());
+ matDto.setOutTotal(count+countHis);
+ matDto.setIsOutCount(countHis + 1);
+ }
ledCommand.setOrderNo(wrkDetl1.getOrderNo());
matDto.setMaknx(wrkDetl1.getMaktx());
matDto.setMatnr(wrkDetl1.getMatnr());
@@ -1640,6 +1790,11 @@
matDto.setWeight(wrkDetl1.getWeight());
matDto.setGrossWeight(wrkDetl1.getManLength());
ledCommand.getMatDtos().add(matDto);
+ } else {
+ // 鍏ュ簱绌烘墭鐩橈紝寮傚父鍘诲紓甯稿彛鏄剧ず鎶ヨ淇℃伅,缁欑┖宸ヤ綔鏄庣粏
+ if(wrkMast.getIoType() == 3) {
+ ledCommand.getMatDtos().add(matDto);
+ }
}
// 璁㈠崟
// if(wrkDetl1 != null && !Cools.isEmpty(wrkDetl1.getOrderNo())) {
@@ -1699,6 +1854,14 @@
if (staProtocol.getWorkNo() != 0) {
reset = false;
break;
+ } else {
+ // 鍏ュ簱鍦ㄦ棤鐗╃殑鏃跺�欐墠娓呴櫎寮傚父
+ if(staNo == 1006 || staNo == 1012 || staNo == 1018 || staNo == 1041) {
+ if(staProtocol.isLoading()) {
+ reset = false;
+ break;
+ }
+ }
}
}
// 鑾峰彇led绾跨▼
@@ -1720,7 +1883,7 @@
* 鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)
* tip锛氬悓姝�
*/
- private synchronized void moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc,Integer mark) {
+ private synchronized void moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc,AtomicInteger mark) {
// 鍙湁208L鑳芥斁11灞�
String model = null;
@@ -2054,7 +2217,8 @@
wrkMast.setWrkSts(15L);
wrkMast.setModiTime(new Date());
wrkMastService.updateById(wrkMast);
- } else if(wrkMast.getIoType() == 110 && (wrkMast.getStaNo() == 1002 || wrkMast.getStaNo() == 1020 ||wrkMast.getStaNo() == 1035 || wrkMast.getStaNo() == 1024)) {
+ } else if(wrkMast.getIoType() == 110 && (wrkMast.getStaNo() == 1002 || wrkMast.getStaNo() == 1020 ||wrkMast.getStaNo() == 1035
+ || wrkMast.getStaNo() == 1024 || wrkMast.getStaNo() == 1016|| wrkMast.getStaNo() == 1043)) {
if(wrkMast.getWrkSts() != 2 ){
log.warn("rgv鏀捐揣瀹屾垚110锛宺gv鏈浣�:rgv鍙穥}锛屼换鍔″彿锛歿}锛屼换鍔$姸鎬亄}",wrkMast.getRgvNo(),wrkMast.getWrkNo(),wrkMast.getWrkSts());
continue;
@@ -2062,6 +2226,12 @@
wrkMast.setWrkSts(15L);
wrkMast.setModiTime(new Date());
wrkMastService.updateById(wrkMast);
+ // 1020鍒囨崲鍑哄簱妯″紡锛屽鏋滄湁鎵樼洏鍏ユ媶鐩樻満锛屼笉缁欒緭閫佺嚎涓嬪彂鍛戒护
+ if(wrkMast.getStaNo() == 1020) {
+ if(staProtocol.getInOrOutMode() != 1) {
+ continue;
+ }
+ }
} else if(wrkMast.getIoType() == 120) {
if(wrkMast.getWrkSts() != 53 ){
log.warn("rgv鏀捐揣瀹屾垚120锛宺gv鏈浣�:rgv鍙穥}锛屼换鍔″彿锛歿}锛屼换鍔$姸鎬亄}",wrkMast.getRgvNo(),wrkMast.getWrkNo(),wrkMast.getWrkSts());
@@ -2109,7 +2279,7 @@
// log.info("寮傚父鍙e叆搴撳叆搴撶洰鏍囩珯鐐瑰凡鍒嗛厤:{}", wrkMast.getStaNo());
return;
}
-
+ log.info("寮傚父鍙e叆搴撹姹倃ms鍓�,浠诲姟鍙凤細{}锛屼换鍔$姸鎬侊細{}",wrkMast.getWrkNo(), wrkMast.getWrkSts());
try {
CanningLineInLocParam param = new CanningLineInLocParam();
param.setWrkNo(staProtocol.getWorkNo());
@@ -2125,7 +2295,7 @@
log.info("寮傚父鍙e叆搴撹姹倃ms鍘熷杩斿洖锛�" + response);
JSONObject jsonObject = JSON.parseObject(response);
if (jsonObject.getInteger("code").equals(200)) {
- log.error("寮傚父鍙e叆搴撹姹傛帴鍙f垚鍔熷父锛寀rl:{}锛宺equest:{},response:{}", wmsUrl + "/rpc/pakin/CanningLine/loc/v1", JSON.toJSONString(param), response);
+ log.info("寮傚父鍙e叆搴撹姹傛帴鍙f垚鍔燂紝url:{}锛宺equest:{},response:{}", wmsUrl + "/rpc/pakin/CanningLine/loc/v1", JSON.toJSONString(param), response);
} else {
log.error("寮傚父鍙e叆搴撹姹傛帴鍙e紓甯革紝url:{}锛宺equest:{},response:{}", wmsUrl + "/rpc/pakin/CanningLine/loc/v1", JSON.toJSONString(param), response);
News.error("寮傚父鍙e叆搴撹姹傛帴鍙e紓甯革紒锛侊紒url锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/CanningLine/loc/v1", JSON.toJSONString(param), response);
@@ -2152,7 +2322,18 @@
}
// 绔欑偣鏉′欢鍒ゆ柇
- if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.getWorkNo() == 0) {
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.getWorkNo() == 0 && staProtocol.isHigh()) {
+ if(site == 1019 && staProtocol.getHideWorkNo() != 0) {
+ WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", staProtocol.getHideWorkNo()));
+ if(wrkMast1 != null && wrkMast1.getWrkSts() != 15) {
+ News.warn("绌烘墭鍑哄簱鏈畬鎴愶紝鏃犳硶杞┖鎵樺叆搴撲换鍔★紝浠诲姟鍙�:{}锛屽綋鍓嶇姸鎬�:{}",wrkMast1.getWrkNo(),wrkMast1.getWrkSts());
+ continue;
+ }
+ }
+ int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 10).eq("source_sta_no", site));
+ if (count >= 2) {
+ News.warn("闄愬埗{}绌烘瘝鎵樺彔鐩樺叆搴撴暟灏忎簬2锛屽綋鍓嶏細{}", site, count);
+ }
try {
SearchLocParam param = new SearchLocParam();
param.setIoType(10);
@@ -2503,7 +2684,7 @@
// 鏍规嵁缃愯绾垮弽棣堜换鍔″彿鏌ヨ宸ヤ綔妗�
WrkMast wrkMast = wrkMastService.selectById(staProtocol.getWrkNo());
if(wrkMast == null) {
- log.error("鍑虹綈瑁呯嚎璐х墿浠诲姟鍙峰伐浣滄。涓嶅瓨鍦�:{}",staProtocol.getWrkNo());
+ News.error("鍑虹綈瑁呯嚎璐х墿浠诲姟鍙峰伐浣滄。涓嶅瓨鍦�:{}",staProtocol.getWrkNo());
continue;
} else if(wrkMast.getWrkSts() != 2) {
log.error("鍑虹綈瑁呯嚎璐х墿浠诲姟鍙峰伐浣滄。鐘舵�佸紓甯革紝涓嶄负2:{}",staProtocol.getWrkNo());
@@ -2581,8 +2762,13 @@
WrkMast wrkMast = wrkMastMapper.selectByWrkNo(staProtocol.getWorkNo());
if (wrkMast != null && wrkMast.getWhsType() == null) {
WrkDetl wrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
- staProtocol.setBucketType(wrkDetl.getMatnr());
- staProtocol.setBucketCount(wrkDetl.getAnfme().intValue());
+ if(wrkMast.getIoType() == 120) {
+ staProtocol.setBucketType("1");
+ staProtocol.setBucketCount(1);
+ } else {
+ staProtocol.setBucketType(wrkDetl.getMatnr());
+ staProtocol.setBucketCount(wrkDetl.getAnfme().intValue());
+ }
boolean result = MessageQueue.offer(SlaveType.Devp, inGzxSiteList.indexOf(site) + 4, new Task(4, staProtocol));
if (result) {
log.info("鍛婅瘔缃愯绾垮叆搴撴《淇℃伅鍛戒护闃熷垪鎺ㄩ�佹垚鍔燂細" + staProtocol.getWorkNo() + "," +"鎵樼洏鐮侊細" + wrkMast.getBarcode() +"锛�" + site + "," + staProtocol.getBucketType() +"," + staProtocol.getBucketCount());
@@ -2649,15 +2835,20 @@
}
// 绔欑偣鏉′欢鍒ゆ柇
- if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() == 0 && staProtocol.isPakMk()) {
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() == 0) {
// 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
StaProtocol staProtocolNew = new StaProtocol();
staProtocolNew.setSiteId(staProtocol.getSiteId());
staProtocolNew.setWorkNo(wrkMast.getWrkNo());
- staProtocolNew.setStaNo(crnOutSiteToRgvSite2.get(wrkMast.getSourceStaNo()));
+ staProtocolNew.setStaNo(crnOutSiteToRgvSite2.get(wrkMast.getSourceStaNo()) != null ? crnOutSiteToRgvSite2.get(wrkMast.getSourceStaNo()) :wrkMast.getSourceStaNo().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
boolean result = MessageQueue.offer(SlaveType.Devp, devpId, new Task(2, staProtocolNew));
- log.info("鎵嬪姩绔欎綅杞Щ杈撻�佺嚎涓嬪彂锛�" + staProtocolNew.getWrkNo() + "," + staProtocolNew.getSiteId());
+ Integer siteId = staProtocol.getSiteId();
+ if(siteId == 1081 || siteId == 1084 || siteId == 1087) {
+ staProtocol.setPlaceableFlag(1);
+ MessageQueue.offer(SlaveType.Devp, outGzxSiteList.indexOf(staProtocol.getSiteId()) + 4, new Task(5, staProtocol));
+ }
+ log.info("鎵嬪姩绔欎綅杞Щ杈撻�佺嚎涓嬪彂锛�" + staProtocolNew.getWorkNo() + "," + staProtocolNew.getSiteId() + "->" + staProtocolNew.getStaNo());
if (!result) {
News.errorNoLog("" + " - 1" + " - 鏇存柊plc绔欑偣淇℃伅澶辫触");
throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
--
Gitblit v1.9.1