From 9fd5e6fbcb1d8badf1835478d862ac40bfb60f3c Mon Sep 17 00:00:00 2001
From: zzgtfwq <zzgtfwq>
Date: 星期三, 10 十二月 2025 16:59:09 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 353 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 314 insertions(+), 39 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 39aec0b..1a455ab 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -6,6 +6,7 @@
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.*;
import com.core.exception.CoolException;
+import com.zy.asrs.controller.TaskWrkController;
import com.zy.asrs.domain.enums.LedErrorAreaType;
import com.zy.asrs.domain.enums.TaskStatusType;
import com.zy.asrs.entity.*;
@@ -66,19 +67,15 @@
@Autowired
private WrkDetlService wrkDetlService;
@Autowired
- private LocMastService locMastService;
+ private BasDevpOptService basDevpOptService;
@Autowired
- private StaDescService staDescService;
+ private LocMastService locMastService;
@Autowired
private BasCrnpService basCrnpService;
@Autowired
private BasDevpService basDevpService;
@Autowired
private LocDetlService locDetlService;
- @Autowired
- private BasErrLogService basErrLogService;
- @Autowired
- private BasCrnErrorMapper basCrnErrorMapper;
@Autowired
private WrkMastService wrkMastService;
@Autowired
@@ -140,16 +137,6 @@
if (barcodeThread == null) {
continue;
}
- String barcode = barcodeThread.getBarcode();
-
- if (!Cools.isEmpty(barcode)) {
-// log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
- if ("00000000".endsWith(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) {
- continue;
- }
- } else {
- continue;
- }
// 鑾峰彇鍏ュ簱绔欎俊鎭�
// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
@@ -159,6 +146,17 @@
continue;
} else {
staProtocol = staProtocol.clone();
+ }
+
+ String barcode = barcodeThread.getBarcode();
+
+ if (!Cools.isEmpty(barcode)) {
+// log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
+ if ("00000000".endsWith(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) {
+ continue;
+ }
+ } else {
+ continue;
}
// 灏哄妫�娴嬪紓甯�
@@ -194,6 +192,15 @@
}
// 閫�鍥�
if (back) {
+ barcodeThread.setBarcode("");
+ // 鑾峰彇宸ヤ綔鍙�
+ int workNo = commonService.getWorkNo(3);
+
+ staProtocol.setWorkNo(workNo);
+ staProtocol.setStaNo(inSta.getBackSta().shortValue());
+
+ devpThread.setPakMk(staProtocol.getSiteId(), false,201);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
// led 寮傚父鏄剧ず
LedErrorThreadUtil.ledErrorThread(errMsg,inSta.getLed(), LedErrorAreaType.FOUR_BARCODE.getDesc());
continue;
@@ -232,7 +239,7 @@
// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
barcodeThread.setBarcode("");
staProtocol.setWorkNo(wrkMast.getWrkNo());
- staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+ staProtocol.setStaNo(wrkMast.getStaNoSou$().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false,238);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
@@ -277,7 +284,9 @@
// if(Cools.isEmpty(dto.getRgvNo()) || dto.getRgvNo() <= 0) {
// staProtocol.setStaNo(607);//607
// } else {//濡傛灉瀛樺湪RGV缂栧彿锛岃鏄庨渶瑕丷GV鎺ラ┏锛屽厛涓嬪彂浠诲姟鍒癛GV婧愮珯
- staProtocol.setStaNo(dto.getRgvSstaNo().shortValue());
+// staProtocol.setStaNo(dto.getRgvSstaNo().shortValue());
+ staProtocol.setStaNo(wrkMast.getStaNoSou$().shortValue());
+
// }
devpThread.setPakMk(staProtocol.getSiteId(), false,283);
@@ -287,6 +296,14 @@
throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
}
} else {
+ // 鑾峰彇宸ヤ綔鍙�
+ int workNo = commonService.getWorkNo(3);
+
+ staProtocol.setWorkNo(workNo);
+ staProtocol.setStaNo(inSta.getBackSta().shortValue());
+
+ devpThread.setPakMk(staProtocol.getSiteId(), false,201);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
// led 寮傚父鏄剧ず
LedErrorThreadUtil.ledErrorThread("鍏ュ簱璇锋眰澶辫触"+jsonObject.getInteger("code"),inSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc());
log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
@@ -307,7 +324,7 @@
*/
public synchronized void storeEmptyPlt() {
for (DevpSlave devp : slaveProperties.getDevp()) {
- if (devp.getId()==1) continue;
+// if (devp.getId()==1) continue;
// 閬嶅巻绌烘澘鍏ュ簱鍙�
for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) {
// 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭�
@@ -341,7 +358,7 @@
// 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
staProtocol.setWorkNo(dto.getWorkNo());
- staProtocol.setStaNo(dto.getStaNo().shortValue());
+ staProtocol.setStaNo(dto.getStaNoSou$(dto.getStaNo(),staProtocol.getSiteId()).shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false,4087);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
if (!result) {
@@ -733,7 +750,7 @@
}
// 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
- if (Utils.isDeepLoc(slaveProperties, wrkMast.getLocNo())) {
+ if (Utils.isDeepLoc(slaveProperties, wrkMast.getLocNo()) && crnProtocol.getCrnNo()!=3) {
String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getLocNo());
LocMast shallowLoc = locMastService.selectById(shallowLocNo);
// O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
@@ -880,7 +897,7 @@
}
// 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
- if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
+ if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo()) && crnProtocol.getCrnNo()!=3) {
String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo());
LocMast shallowLoc = locMastService.selectById(shallowLocNo);
// O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
@@ -890,10 +907,10 @@
log.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
} else {
if (waitWrkMast.getWrkSts() == 11) {
- if (waitWrkMast.getIoPri() + 100000D < 999999999D) {
- waitWrkMast.setIoPri(waitWrkMast.getIoPri()+100000D);
+ if (waitWrkMast.getIoPri() + 10D < 9999D) {
+ waitWrkMast.setIoPri(waitWrkMast.getIoPri()+10D);
} else {
- waitWrkMast.setIoPri(999999999D);
+ waitWrkMast.setIoPri(9999D);
}
waitWrkMast.setModiTime(new Date());
if (wrkMastMapper.updateById(waitWrkMast) == 0) {
@@ -1119,7 +1136,7 @@
}
// 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1
if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
- if (crnProtocol.getTaskNo() == 32222) {
+ if (crnProtocol.getTaskNo() == 32222 || crnProtocol.getTaskNo() == 999) {
// 鍫嗗灈鏈哄浣�
crnThread.setResetFlag(true);
} else {
@@ -1145,6 +1162,192 @@
}
}
+ }
+ }
+ }
+
+
+ /**
+ * 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
+ */
+ public synchronized void ledExecute() {
+ for (LedSlave led : slaveProperties.getLed()) {
+ // 鑾峰彇杈撻�佺嚎plc绾跨▼
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
+ // 鍛戒护闆嗗悎
+ List<LedCommand> commands = new ArrayList<>();
+ // 宸ヤ綔妗i泦鍚�
+ List<WrkMast> wrkMasts = new ArrayList<>();
+ for (Integer staNo : led.getStaArr()) {
+ // 鑾峰彇鍙夎溅绔欑偣
+ StaProtocol staProtocol = devpThread.getStation().get(staNo);
+ if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo() || !staProtocol.isLoading()) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ // 鑾峰彇宸ヤ綔妗f暟鎹�
+ WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
+ if (null == wrkMast) {
+ if(staProtocol.getWorkNo() > 9999){ //寮傚父閫�鍑�
+ String err = basDevpOptService.getErr(staProtocol.getWorkNo());
+ MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, err));
+ }
+ continue;
+ }
+ wrkMasts.add(wrkMast);
+ // 缁勮鍛戒护
+ LedCommand ledCommand = new LedCommand();
+ ledCommand.setWorkNo(wrkMast.getWrkNo());
+ ledCommand.setIoType(wrkMast.getIoType());
+ // 鍑哄簱妯″紡
+ switch (wrkMast.getIoType()) {
+ case 1:
+ ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
+ break;
+ case 10:
+ ledCommand.setTitle("绌烘澘鍏ュ簱");
+ break;
+ case 12:
+ ledCommand.setTitle("鐗╂枡琛旀帴");
+ break;
+ case 57:
+ ledCommand.setTitle("鐩樼偣鍐嶅叆搴�");
+ break;
+ case 53:
+ ledCommand.setTitle("鎷f枡鍐嶅叆搴�");
+ break;
+ case 101:
+ ledCommand.setTitle("鍏ㄦ澘鍑哄簱");
+ break;
+ case 103:
+ ledCommand.setTitle("鎷f枡鍑哄簱");
+ break;
+ case 104:
+ ledCommand.setTitle("骞舵澘鍑哄簱");
+ break;
+ case 107:
+ ledCommand.setTitle("鐩樼偣鍑哄簱");
+ break;
+ case 110:
+ ledCommand.setTitle("绌烘澘鍑哄簱");
+ ledCommand.setEmptyMk(true);
+ break;
+ default:
+ News.error("浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
+ break;
+ }
+ ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
+ ledCommand.setStaNo(wrkMast.getStaNo());
+ ledCommand.setBarcode(wrkMast.getBarcode());
+ if(wrkMast.getIoType() == 12){
+ List<WrkDetl> wrkDetls = wrkDetlService.findByBarcode(wrkMast.getBarcode());
+ wrkDetls.forEach(wrkDetl -> {
+ Double total = 0.0;
+ EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
+ LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr()));
+ if (Cools.isEmpty(locDetl)) {
+ total = wrkDetl.getAnfme();
+ } else {
+ total = locDetl.getAnfme();
+ }
+ ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getSupp(), wrkDetl.getSku(),wrkDetl.getAnfme(),total));
+ });
+ }
+ if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
+ List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
+
+ wrkDetls.forEach(wrkDetl -> {
+ Double total = 0.0;
+ EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
+ LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr()));
+ if (Cools.isEmpty(locDetl)) {
+ total = wrkDetl.getAnfme();
+ } else {
+ total = locDetl.getAnfme();
+ }
+ if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1) {
+ ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getSupp(), wrkDetl.getSku(),wrkDetl.getAnfme(),total));
+ }
+ if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) {
+ ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getSupp(), wrkDetl.getSku(),wrkDetl.getAnfme(),total));
+ }
+ if (wrkMast.getIoType() == 107) {
+ ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getSupp(), wrkDetl.getSku(),wrkDetl.getAnfme(),total));
+ }
+ });
+ }
+ commands.add(ledCommand);
+ }
+ Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet());
+ // 鑾峰彇LED绾跨▼
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
+ // 鐩稿悓宸ヤ綔鍙烽泦鍚堝垯杩囨护
+ if (CollectionUtils.equals(ledThread.getWorkNos(), workNos)) {
+ continue;
+ }
+ // 鍛戒护涓嬪彂 -------------------------------------------------------------------------------
+ if (!commands.isEmpty()) {
+ if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(1, commands))) {
+ News.error("{}鍙稬ED鏄剧ず鍐呭鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+ continue;
+ }
+ }
+
+ try {
+ // 淇敼涓绘。led鏍囪
+ for (WrkMast wrkMast : wrkMasts) {
+ wrkMast.setOveMk("Y");
+ wrkMast.setModiTime(new Date());
+ if (wrkMastMapper.updateById(wrkMast) == 0) {
+ throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
+ }
+ }
+
+ // 鏇存柊绾跨▼褰撳墠宸ヤ綔鍙烽泦鍚�
+ ledThread.setWorkNos(workNos);
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ }
+
+ }
+ }
+
+ /**
+ * 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
+ */
+ public synchronized void ledReset() {
+ for (LedSlave led : slaveProperties.getLed()) {
+ // 鑾峰彇杈撻�佺嚎plc绾跨▼
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
+ // 鍛戒护闆嗗悎
+ boolean reset = true;
+ for (Integer staNo : led.getStaArr()) {
+// System.out.println("staArr = " + staNo);
+
+ // 鑾峰彇鍙夎溅绔欑偣
+ StaProtocol staProtocol = devpThread.getStation().get(staNo);
+ if (staProtocol == null) { continue; }
+ if (staProtocol.getWorkNo() != 0 || staProtocol.isErr()) {
+ reset = false;
+ break;
+ }
+ }
+ // 鑾峰彇led绾跨▼
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
+ // led鏄剧ず榛樿鍐呭
+ if (reset) {
+ if (ledThread == null) {
+ continue;
+ }
+ if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(2, new ArrayList<>()))) {
+ News.error("{}鍙稬ED鏄剧ず榛樿鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+ }
+// if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(4, new ArrayList<>()))) {
+// News.error("{}鍙稬ED鏄剧ず榛樿鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+// }
}
}
}
@@ -1180,7 +1383,7 @@
if (!WrkMastLogList.isEmpty()) {
boolean signT = false;
for (WrkMast wrkMast : WrkMastLogList){
- Date completeTime = wrkMast.getIoTime();
+ Date completeTime = wrkMast.getModiTime();
if (completeTime==null){
continue;
}
@@ -1202,11 +1405,16 @@
crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
crnCommand.setTaskNo((short)999); // 宸ヤ綔鍙�
crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
- crnCommand.setTaskMode(CrnTaskModeType.X_MOVE); // 浠诲姟妯″紡: 绔欎綅绉昏浆4
- crnCommand.setSourcePosX((short) 1); // 婧愬簱浣嶆帓
+ crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡: 绔欎綅绉昏浆4
+ Integer crnNo = crnProtocol.getCrnNo();
+ int row1 = crnNo * 4-1;
+ if (crnNo>2){
+ row1 = row1-2;
+ }
+ crnCommand.setSourcePosX((short) row1); // 婧愬簱浣嶆帓
crnCommand.setSourcePosY((short) 1); // 婧愬簱浣嶅垪
crnCommand.setSourcePosZ((short) 1); // 婧愬簱浣嶅眰
- crnCommand.setDestinationPosX((short) 1); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosX((short) row1); // 鐩爣搴撲綅鎺�
crnCommand.setDestinationPosY((short) 1); // 鐩爣搴撲綅灞�
crnCommand.setDestinationPosZ((short) 1); // 鐩爣搴撲綅鍒�
if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, crnCommand))) {
@@ -1237,6 +1445,45 @@
/////////////////////////////////////RGV璋冨害/////////////////////////////////////
+ public synchronized void taskCreate() {
+ for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
+ try {
+ for (RgvSlave.RgvStn inSta : rgvSlave.getRgvInSta()) {
+ WrkMast wrkMast = deviceDetectionCreate(inSta);
+ if (!Cools.isEmpty(wrkMast)) {
+ TaskWrk taskWrk = new TaskWrk(wrkMast);
+ taskWrkService.insert(taskWrk);
+ }
+ }
+ } catch (Exception e){
+
+ }
+ }
+ }
+
+ public synchronized void taskCancel() {
+ try {
+ List<String> taskList = new ArrayList<>();
+ for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
+ TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
+ ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
+ for (TaskProtocol taskProtocol : allTaskProtocol.values()){
+ taskList.add(taskProtocol.getTaskNo().toString());
+ }
+ }
+ Wrapper<TaskWrk> wrkWrapper = new EntityWrapper<TaskWrk>().eq("status", 5);
+ for (String taskNo : taskList){
+ wrkWrapper.ne("task_no", taskNo);
+ }
+ int count = taskWrkService.selectCount(wrkWrapper);
+ if (count>0){
+ taskWrkService.delete(wrkWrapper);
+ }
+ } catch (Exception e){
+
+ }
+ }
public synchronized void taskStart() {
for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
try {
@@ -1719,6 +1966,34 @@
return true;
}
+ public WrkMast deviceDetectionCreate(RgvSlave.RgvStn inSta) {
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, inSta.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
+ if (staProtocol == null) {
+ return null;
+ }
+
+ // 鍒ゆ柇鏄惁婊¤冻鍙栬揣鏉′欢
+ if (staProtocol.isAutoing()
+// && staProtocol.isLoading()
+// && staProtocol.isStaOk()
+ && staProtocol.getWorkNo() != 0) {
+ WrkMast wrkMast = wrkMastService.selectByWrkNo(staProtocol.getWorkNo());
+ if (!Cools.isEmpty(wrkMast)){
+ if (inSta.getStaNo()==117 || inSta.getStaNo()==120 || inSta.getStaNo()==123
+ || inSta.getStaNo()==217 || inSta.getStaNo()==220 || inSta.getStaNo()==223){
+ if (wrkMast.getIoType()>100){
+ return null;
+ }
+ }
+ TaskWrk taskWrk = taskWrkService.selectByTaskNo(staProtocol.getWorkNo());
+ if (Cools.isEmpty(taskWrk)){
+ return wrkMast;
+ }
+ }
+ }
+ return null;
+ }
public TaskWrk deviceDetection(RgvSlave.RgvStn inSta) {
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, inSta.getDevpPlcId());
@@ -1736,7 +2011,7 @@
// && staProtocol.isLoading()
// && staProtocol.isStaOk()
&& staProtocol.getWorkNo() != 0) {
- TaskWrk taskWrk = taskWrkService.selectByWrkNo(staProtocol.getWorkNo());
+ TaskWrk taskWrk = taskWrkService.selectByTaskNo(staProtocol.getWorkNo());
if (taskWrk != null) {
Integer stano = staProtocol.getStaNo().intValue();
if (staProtocol.getSiteId() == 1004 || staProtocol.getSiteId()==1020){
@@ -1854,7 +2129,7 @@
// 鍒ゆ柇鏄惁婊¤冻鍙栬揣鏉′欢
if (staProtocolOther.isAutoing()
&& staProtocolOther.getWorkNo() != 0) {
- TaskWrk taskWrkOther = taskWrkService.selectByWrkNo(staProtocolOther.getWorkNo());
+ TaskWrk taskWrkOther = taskWrkService.selectByTaskNo(staProtocolOther.getWorkNo());
if (taskWrkOther != null) {
return taskWrkOther;
}
@@ -1964,6 +2239,7 @@
issuedTake.setTaskNo(Long.valueOf(taskWrk.getWrkNo()));
issuedTake.setTaskStatus(2);
issuedTake.setTargetPositionStaNo(basDevpPositionSou.getDevNo());
+ issuedTake.setTargetPositionStaNoEnd(basDevpPositionSou.getDevNo$());
issuedTake.setTargetPositionStaNoPlcId(basDevpPositionSou.getPlcId());
issuedTake.setTaskNoDirection(issuedTake.gettaskNoDirection$(issuedTake.getTaskNo(), issuedTake.getTaskStatus()));
issuedTake.setTargetPosition(basDevpPositionSou.getPlcPosition());
@@ -1974,6 +2250,7 @@
issuedPut.setTaskNo(Long.valueOf(taskWrk.getWrkNo()));
issuedPut.setTaskStatus(3);
issuedPut.setTargetPositionStaNo(basDevpPositionEnd.getDevNo());
+ issuedPut.setTargetPositionStaNoEnd(basDevpPositionEnd.getDevNo$());
issuedPut.setTargetPositionStaNoPlcId(basDevpPositionEnd.getPlcId());
issuedPut.setTaskNoDirection(issuedPut.gettaskNoDirection$(issuedPut.getTaskNo(), issuedPut.getTaskStatus()));
issuedPut.setTargetPosition(basDevpPositionEnd.getPlcPosition());
@@ -1981,13 +2258,11 @@
issuedPut.setDirection(basDevpPositionEnd.getRgvSign()==1);
try{
- if (taskWrk.getIoType()==2 && basDevpPositionEnd.getRgvSign()==1){
- Date now = new Date();
- taskWrk.setStatus(TaskStatusType.OVER.id);
- taskWrk.setModiTime(now);//鏇存柊鏃堕棿
- taskWrk.setCompleteTime(now);//瀹岀粨鏃堕棿
- taskWrkService.updateById(taskWrk);
- }
+ Date now = new Date();
+ taskWrk.setStatus(TaskStatusType.OVER.id);
+ taskWrk.setModiTime(now);//鏇存柊鏃堕棿
+ taskWrk.setCompleteTime(now);//瀹岀粨鏃堕棿
+ taskWrkService.updateById(taskWrk);
} catch (Exception e){
}
--
Gitblit v1.9.1