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 | 565 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 508 insertions(+), 57 deletions(-)
diff --git a/src/main/java/com/zy/service/impl/MainServiceImpl.java b/src/main/java/com/zy/service/impl/MainServiceImpl.java
index 20e548c..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;
/**
@@ -77,6 +78,7 @@
// 鎴愬搧搴撳爢鍨涙満鍑哄簱绔欑偣鍒皉gv鎺ラ┏鐐�
public static final Map<Integer,Short> crnOutSiteToRgvSite = new HashMap<>();
+ public static final Map<Integer,Short> crnOutSiteToRgvSite2 = new HashMap<>();
static {
emptyPalletSiteMap.put(1001,"M"); // emptyPalletSiteMap.put(1002,"M");
@@ -104,6 +106,10 @@
outGzxSiteList.add(1081);outGzxSiteList.add(1084);outGzxSiteList.add(1087);
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(1008, (short) 1006);
}
@Autowired
@@ -146,6 +152,9 @@
@Resource
private ConfigService configService;
+
+ @Resource
+ private BasDevpErrLogService basDevpErrLogService;
@Value("${wms.url}")
private String wmsUrl;
@@ -317,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) {
@@ -354,6 +363,7 @@
}
log.info("鑷姩鍑虹┖妗跺噺灏戠綈瑁呯嚎瑕佹《鏁版垚鍔燂紝绔欑偣锛歿}锛屽噺灏戝墠锛歿}锛屽噺灏戞暟锛歿}锛屽墿浣欒妗舵暟锛歿}", site, count, decrease, remaining);
+ Thread.sleep(700);
}
/**
@@ -613,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");
@@ -680,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;
}
@@ -742,7 +765,7 @@
wrkMast.setIoPri(14D);
wrkMastMapper.updateById(wrkMast);
// 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
- moveLocForDeepLoc(slave, shallowLoc,mark);
+ moveLocForDeepLoc(slave, shallowLoc,new AtomicInteger(mark));
// 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�)
// moveLocForDeepLocPakin(slave, shallowLoc, wrkMast);
}
@@ -773,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()); // 鐩爣搴撲綅灞�
@@ -816,23 +839,161 @@
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();
for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
// 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗�
List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep11(slave.getId(), crnStn.getStaNo());
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
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ StaProtocol staProtocol = devpThread.getStation().get(1033);
+ if (staProtocol.isLoading() && staProtocol.getWorkNo() == 0) {
+ kbWrks ++;
+ }
+ if (kbWrks > 2) {
+ continue;
+ }
}
// 宸ヤ綔妗g姸鎬佸垽鏂�
if (wrkMast.getIoType() < 100 || wrkMast.getSourceStaNo() == null) {
@@ -972,6 +1133,7 @@
wrkMast1.setSourceStaNo(1056);
wrkMastService.updateById(wrkMast1);
}
+ mark.set(99);
break;
}
}
@@ -1156,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);
@@ -1178,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);
@@ -1263,15 +1426,15 @@
if (crnProtocol == null) {
continue;
}
- if (true) {
-// if (crnProtocol.getModeType() != CrnModeType.STOP) {
+// if (true) {
+ if (crnProtocol.getModeType() != CrnModeType.STOP) {
// 鏈変换鍔�
if (crnProtocol.getTaskNo() != 0) {
BasErrLog latest = basErrLogService.findLatestByTaskNo(crn.getId(), crnProtocol.getTaskNo().intValue());
// 鏈夊紓甯�
if (latest == null) {
- News.warnNoLog(""+mark+" - 1"+" - 寮�濮嬫墽琛岋細鍫嗗灈鏈哄紓甯镐俊鎭褰� 锛� 鏈変换鍔★紝鏈夊紓甯�");
+// News.warnNoLog(""+mark+" - 1"+" - 寮�濮嬫墽琛岋細鍫嗗灈鏈哄紓甯镐俊鎭褰� 锛� 鏈変换鍔★紝鏈夊紓甯�");
if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) {
WrkMast wrkMast = wrkMastMapper.selectById(crnProtocol.getTaskNo());
if (wrkMast == null) {
@@ -1374,6 +1537,174 @@
}
/**
+ * 杈撻�佺嚎寮傚父
+ */
+ public synchronized void recDevpErr() {
+ Date now = new Date();
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ Integer devpId = devp.getId();
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devpId);
+ Map<Integer, StaProtocol> station = devpThread.getStation();
+ for (Map.Entry<Integer, StaProtocol> entry : station.entrySet()) {
+ Integer siteNo = entry.getKey();
+ StaProtocol staProtocol = entry.getValue();
+ Integer workNo = staProtocol.getWorkNo();
+ // 杈撻�佺嚎鎶ヨ
+ String plcErr = staPlcErr(staProtocol);
+ if (staProtocol.isAutoing()) {
+ // 鏈変换鍔�
+ if (staProtocol.getWorkNo() != 0 && staProtocol.getWorkNo() <= 9000) {
+
+ // 鑾峰彇杈撻�佺嚎鎶ヨ淇℃伅
+ BasDevpErrLog latestByTaskNo = basDevpErrLogService.findLatestByTaskNo(siteNo, workNo);
+
+ // 鏈夊紓甯�
+ if (latestByTaskNo == null) {
+ if (!plcErr.equals("")) {
+ WrkMast wrkMast = wrkMastMapper.selectById(workNo);
+ if (wrkMast == null) {
+ continue;
+ }
+
+ BasDevpErrLog basErrLog = new BasDevpErrLog(
+ null, // 缂栧彿
+ wrkMast.getWrkNo(), // 宸ヤ綔鍙�
+ now, // 鍙戠敓鏃堕棿
+ null, // 缁撴潫鏃堕棿
+ wrkMast.getWrkSts(), // 宸ヤ綔鐘舵��
+ wrkMast.getIoType(), // 鍏ュ嚭搴撶被鍨�
+ wrkMast.getCrnNo(), // 鍫嗗灈鏈�
+ devpId, // plc
+ wrkMast.getLocNo(), // 鐩爣搴撲綅
+ wrkMast.getStaNo(), // 鐩爣绔�
+ siteNo, // 婧愮珯
+ wrkMast.getSourceLocNo(), // 婧愬簱浣�
+ wrkMast.getBarcode(), // 鏉$爜
+ 0, // 寮傚父鐮�
+ plcErr, // 寮傚父
+ 1, // 寮傚父鎯呭喌
+ now, // 娣诲姞鏃堕棿
+ null, // 娣诲姞浜哄憳
+ now, // 淇敼鏃堕棿
+ null, // 淇敼浜哄憳
+ "浠诲姟涓紓甯�" // 澶囨敞
+ );
+ if (!basDevpErrLogService.insert(basErrLog)) {
+ log.error("杈撻�佺嚎寮傚父淇℃伅鎻掑叆琛╝sr_bas_devp_err_log寮傚父锛歿}", basErrLog);
+ }
+ }
+ } else {
+ // 寮傚父淇
+ if (plcErr.equals("")) {
+ latestByTaskNo.setEndTime(now);
+ latestByTaskNo.setUpdateTime(now);
+ latestByTaskNo.setStatus(2);
+ if (!basDevpErrLogService.updateById(latestByTaskNo)) {
+ log.error("杈撻�佺嚎寮傚父璁板綍淇澶辫触asr_bas_devp_err_log寮傚父锛歿}", latestByTaskNo);
+ }
+ }
+ }
+ // 鏃犱换鍔�
+ } else {
+ BasDevpErrLog latest = basDevpErrLogService.findLatest(siteNo);
+ // 鏈夊紓甯�
+ if (!plcErr.equals("")) {
+ // 璁板綍鏂板紓甯�
+ if (latest == null || !latest.getError().equals(plcErr) || latest.getStatus() == 2 ) {
+ BasDevpErrLog basErrLog = new BasDevpErrLog(
+ null, // 缂栧彿
+ null, // 宸ヤ綔鍙�
+ now, // 鍙戠敓鏃堕棿
+ null, // 缁撴潫鏃堕棿
+ null, // 宸ヤ綔鐘舵��
+ null, // 鍏ュ嚭搴撶被鍨�
+ 0, // 鍫嗗灈鏈�
+ devpId, // plc
+ null, // 鐩爣搴撲綅
+ null, // 鐩爣绔�
+ siteNo, // 婧愮珯
+ null, // 婧愬簱浣�
+ null, // 鏉$爜
+ 0, // 寮傚父鐮�
+ plcErr, // 寮傚父
+ 1, // 寮傚父鎯呭喌
+ now, // 娣诲姞鏃堕棿
+ null, // 娣诲姞浜哄憳
+ now, // 淇敼鏃堕棿
+ null, // 淇敼浜哄憳
+ "鏃犱换鍔″紓甯�" // 澶囨敞
+ );
+ if (!basDevpErrLogService.insert(basErrLog)) {
+ log.error("杈撻�佺嚎寮傚父璁板綍asr_bas_devp_err_log寮傚父锛歿}", basErrLog);
+ }
+ }
+ // 鏃犲紓甯�
+ } else {
+ // 寮傚父淇
+ if (latest != null && latest.getStatus() == 1) {
+ latest.setEndTime(now);
+ latest.setUpdateTime(now);
+ latest.setStatus(2);
+ if (!basDevpErrLogService.updateById(latest)) {
+ log.error("杈撻�佺嚎寮傚父璁板綍淇澶辫触asr_bas_devp_err_log寮傚父锛歿}", latest);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // 鑾峰彇杈撻�佺嚎鎶ヨ
+ public String staPlcErr(StaProtocol staProtocol){
+ Integer siteId = staProtocol.getSiteId();
+ if (staProtocol.getBreakerErr()){
+ return "鏂矾鍣ㄦ晠闅�";
+ }
+ if (staProtocol.getInfraredErr()){
+ return "鍏夌數寮傚父";
+ }
+ if (staProtocol.getOutTimeErr()){
+ return "杩愯瓒呮椂";
+ }
+ if (staProtocol.getSeizeSeatErr()){
+ return "鍗犱綅瓒呮椂";
+ }
+ if (staProtocol.getWrkYgoodsN()){
+ return "鏈変换鍔℃棤璐ф晠闅�";
+ }
+ if (staProtocol.getInverterErr()){
+ return "鍙橀鍣ㄦ晠闅�";
+ }
+ if (staProtocol.getContactErr()){
+ return "鐢垫満鎺ヨЕ鍣ㄦ晠闅�";
+ }
+ if (staProtocol.getUpcontactErr()){
+ return "椤跺崌鐢垫満鎺ヨЕ鍣ㄦ晠闅�";
+ }
+ if (staProtocol.isFrontErr()){
+ return "鍓嶈秴闄�";
+ }
+ if (staProtocol.isBackErr()){
+ return "鍚庤秴闄�";
+ }
+ if (staProtocol.isHighErr()){
+ return "楂樿秴闄�";
+ }
+ if (staProtocol.isLeftErr()){
+ return "宸﹁秴闄�";
+ }
+ if (staProtocol.isRightErr()){
+ return "鍙宠秴闄�";
+ }
+ if (staProtocol.isBarcodeErr() && siteId != 1083 && siteId != 1086 && siteId != 1089 ){
+ return "鎵爜澶辫触";
+ }
+ return "";
+ }
+
+ /**
* 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
*/
public synchronized void ledExecute(Integer mark) {
@@ -1427,6 +1758,9 @@
ledCommand.setTitle("绌烘澘鍑哄簱");
ledCommand.setEmptyMk(true);
break;
+ case 120:
+ ledCommand.setTitle("鎵嬪姩杞Щ");
+ break;
default:
News.error("浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
break;
@@ -1440,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());
@@ -1449,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())) {
@@ -1508,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绾跨▼
@@ -1529,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;
@@ -1753,7 +2107,7 @@
} else {
staProtocol = staProtocol.clone();
}
- if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.isInEnable() || staProtocol.isOutEnable() && site == 1090) && staProtocol.getWorkNo() != 0 && staProtocol.getWorkNo() < 9000) {
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.isInEnable() || staProtocol.isOutEnable() && site == 1090) && staProtocol.getWorkNo() != 0 && (staProtocol.getWorkNo() <= 9000 || staProtocol.getWorkNo()>=30000)) {
if (staProtocol.getSiteId() == 1034 && !staProtocol.isHigh()) { // 1034绌烘瘝鎷栧洖娴佷换鍔¢渶瑕侀珮淇″彿
continue;
}
@@ -1764,49 +2118,49 @@
continue;
}
// 1083,1086,1089 澶栧舰妫�娴嬪け璐ワ紝涓嶆槸鍘诲紓甯稿彛鐨� 鍋滃湪鍘熷
-// if (staProtocol.getSiteId() == 1083 || staProtocol.getSiteId() == 1086 || staProtocol.getSiteId() == 1089 && wrkMast.getStaNo() != 1090) {
-// boolean back = false;
-// String errMsg = "";
-// if (staProtocol.isFrontErr()) {
-// errMsg = "鍓嶈秴闄�";
-// back = true;
-// }
-// if (!back && staProtocol.isBackErr()) {
-// errMsg = "鍚庤秴闄�";
-// back = true;
-// }
-// if (!back && staProtocol.isHighErr()) {
-// errMsg = "楂樿秴闄�";
-// back = true;
-// }
-// if (!back && staProtocol.isLeftErr()) {
-// errMsg = "宸﹁秴闄�";
-// back = true;
-// }
-// if (!back && staProtocol.isRightErr()) {
-// errMsg = "鍙宠秴闄�";
-// back = true;
-// }
-// if (back) {
-// log.error("{}绔欑偣锛屽褰㈡娴嬪け璐ワ細{}",site,errMsg);
-// continue;
-// }
-// }
+ if (staProtocol.getSiteId() == 1083 || staProtocol.getSiteId() == 1086 || staProtocol.getSiteId() == 1089 && wrkMast.getStaNo() != 1090) {
+ boolean back = false;
+ String errMsg = "";
+ if (staProtocol.isFrontErr()) {
+ errMsg = "鍓嶈秴闄�";
+ back = true;
+ }
+ if (!back && staProtocol.isBackErr()) {
+ errMsg = "鍚庤秴闄�";
+ back = true;
+ }
+ if (!back && staProtocol.isHighErr()) {
+ errMsg = "楂樿秴闄�";
+ back = true;
+ }
+ if (!back && staProtocol.isLeftErr()) {
+ errMsg = "宸﹁秴闄�";
+ back = true;
+ }
+ if (!back && staProtocol.isRightErr()) {
+ errMsg = "鍙宠秴闄�";
+ back = true;
+ }
+ if (back) {
+ log.error("{}绔欑偣锛屽褰㈡娴嬪け璐ワ細{}",site,errMsg);
+ continue;
+ }
+ }
if (staProtocol.getSiteId() == 1090 && wrkMast.getStaNo() == 1090) {
continue;
}
- if ((wrkMast.getWrkSts() == 2 || wrkMast.getWrkSts() == 15) && (wrkMast.getRgvNo() == null || wrkMast.getRgvDstaNo() == 1090)) {
+ if ((wrkMast.getWrkSts() == 2 || wrkMast.getWrkSts() == 15 || (wrkMast.getIoType() == 120 && wrkMast.getWrkSts() == 52)) && (wrkMast.getRgvNo() == null || wrkMast.getRgvDstaNo() == 1090)) {
// 鏈�1090鐨勪换鍔¤烦杩噐gv鍒嗛厤
if(wrkMast.getStaNo() == 1090) {
DevpThread devpThread2 = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
StaProtocol staProtocol2 = devpThread2.getStation().get(1090);
if(!staProtocol2.isAutoing() || staProtocol2.isLoading() || staProtocol2.getWorkNo() != 0) {
- log.info("鍘诲紓甯稿彛鐩爣绔欑偣锛岄潪鑷姩锛屾湁鐗╋紝宸ヤ綔鍙蜂负锛歿}",staProtocol2.getWorkNo());
+ log.info("{}鍘诲紓甯稿彛鐩爣绔欑偣锛岃嚜鍔�:{}锛屾湁鐗�:{}锛屽伐浣滃彿涓猴細{}",wrkMast.getWrkNo(),staProtocol2.isAutoing(),staProtocol2.isLoading(),staProtocol2.getWorkNo());
continue;
}
- int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().where("sta_no = 1090 and wrk_sts in (9,10)"));
+ int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().where("sta_no = 1090 AND (wrk_sts IN (9,10) OR (wrk_sts = 2 AND rgv_finish_time IS NOT NULL))"));
if (count > 0) {
- log.info("鍘诲紓甯稿彛锛屼絾鏄墠闈㈡湁鍘诲紓甯稿彛浠诲姟鏁帮細{}",count);
+ log.info("{}鍘诲紓甯稿彛锛屼絾鏄墠闈㈡湁鍘诲紓甯稿彛浠诲姟鏁帮細{}",wrkMast.getWrkNo(),count);
continue;
}
}
@@ -1863,12 +2217,27 @@
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;
}
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());
+ continue;
+ }
+ wrkMast.setWrkSts(54L);
wrkMast.setModiTime(new Date());
wrkMastService.updateById(wrkMast);
}
@@ -1910,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());
@@ -1926,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);
@@ -1953,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);
@@ -2145,6 +2525,11 @@
}
} else if (wantBucket.getSite() == 1071 && count <= 2 || wantBucket.getSite() == 1064 && count == 0 || wantBucket.getSite() == 1078 && count <= 2) { // 鍙互鍑轰袱涓�
+ // 鑷姩鍑虹┖妗讹紝鍧囧寑鍑哄埌姣忓彴缃愯绾�
+ Integer count1 = wrkMastMapper.selectCount(new EntityWrapper<WrkMast>().eq("crn_no", 4).eq("sta_no",wantBucket.getSite()).in("wrk_sts", 11,12));
+ if(count1 > 0) {
+ return;
+ }
log.info("{}鑷姩琛ョ┖妗讹紝缃愯绾胯妗跺瀷淇℃伅锛歿},姝e湪鎵ц浠诲姟鏁帮細{}", wantBucket.getSite(), wantBucket.getBucketType(), count);
// 鍒ゆ柇搴撻噷鏈夋棤绌烘《缁�
List<LocDetl> locDetlList = locDetlService.selectListByMatnr(wantBucket.getBucketType());
@@ -2299,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());
@@ -2377,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());
@@ -2414,4 +2804,65 @@
}
}
}
+
+ /**
+ * 鎵嬪姩绔欎綅杞Щ
+ */
+ public synchronized void manualStationTransfer() {
+ WrkMast wrkMast = wrkMastMapper.selectByIoTypeAndWrkSts(120, 51L);
+
+ if (Cools.isEmpty(wrkMast)) {
+ return;
+ }
+ int devpId;
+ if (wrkMast.getSourceStaNo() < 1044) {
+ devpId = 1;
+ } else if (wrkMast.getSourceStaNo() < 1091) {
+ devpId = 2;
+ } else {
+ devpId = 3;
+ }
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devpId);
+ try {
+ StaProtocol staProtocol = devpThread.getStation().get(wrkMast.getSourceStaNo());
+
+ if (staProtocol == null) {
+ wrkMast.setIoTime(new Date());
+ wrkMastService.updateById(wrkMast);
+ return;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+
+ // 绔欑偣鏉′欢鍒ゆ柇
+ 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()) != null ? crnOutSiteToRgvSite2.get(wrkMast.getSourceStaNo()) :wrkMast.getSourceStaNo().shortValue());
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devpId, new Task(2, staProtocolNew));
+ 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绔欑偣淇℃伅澶辫触");
+ }
+
+ wrkMast.setIoTime(new Date());
+ wrkMast.setWrkSts(52L);
+ wrkMastService.updateById(wrkMast);
+ } else {
+ wrkMast.setIoTime(new Date());
+ wrkMastService.updateById(wrkMast);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
}
--
Gitblit v1.9.1