From d91d1fc34a8af84513416cb2a03c75d96fb0304e Mon Sep 17 00:00:00 2001
From: zzgtfwq <zzgtfwq>
Date: 星期三, 10 十二月 2025 08:46:01 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 129 +++++++++++++++++++++++++++++++-----------
1 files changed, 95 insertions(+), 34 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 0ab224d..03e06ce 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.*;
@@ -13,24 +14,19 @@
import com.zy.asrs.service.*;
import com.zy.asrs.utils.*;
import com.zy.common.model.LocTypeDto;
-import com.zy.common.model.MatDto;
import com.zy.common.model.SearchLocParam;
import com.zy.common.model.StartupDto;
import com.zy.common.service.CommonService;
-import com.zy.common.utils.CollectionUtils;
import com.zy.common.utils.HttpHandler;
-import com.zy.common.utils.News;
import com.zy.core.CrnThread;
import com.zy.core.DevpThread;
import com.zy.core.cache.*;
import com.zy.core.enums.*;
import com.zy.core.model.*;
import com.zy.core.model.command.CrnCommand;
-import com.zy.core.model.command.LedCommand;
import com.zy.core.model.protocol.*;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.BarcodeThread;
-import com.zy.core.thread.LedThread;
import com.zy.core.thread.RgvThread;
import com.zy.core.thread.SiemensDevpThread;
import com.zy.system.entity.license.LicenseVerify;
@@ -44,7 +40,6 @@
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
/**
* 绔嬩綋浠撳簱WCS绯荤粺涓绘祦绋嬩笟鍔�
@@ -68,17 +63,11 @@
@Autowired
private LocMastService locMastService;
@Autowired
- private StaDescService staDescService;
- @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
@@ -232,7 +221,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));
@@ -307,7 +296,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 +330,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 +722,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 +869,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枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
@@ -1119,7 +1108,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 {
@@ -1176,11 +1165,11 @@
if (!wrkMasts.isEmpty()) {
continue;
}
- List<TaskWrkLog> taskWrkLogs = taskWrkLogService.selectList(new EntityWrapper<TaskWrkLog>().eq("CRN_NO",crnProtocol.getCrnNo()).orderBy("COMPLETE_TIME",false));
- if (!taskWrkLogs.isEmpty()) {
+ List<WrkMast> WrkMastLogList = wrkMastMapper.selectByCrnNoLog(crnProtocol.getCrnNo());
+ if (!WrkMastLogList.isEmpty()) {
boolean signT = false;
- for (TaskWrkLog taskWrkLog : taskWrkLogs){
- Date completeTime = taskWrkLog.getCompleteTime();
+ for (WrkMast wrkMast : WrkMastLogList){
+ Date completeTime = wrkMast.getIoTime();
if (completeTime==null){
continue;
}
@@ -1202,11 +1191,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 +1231,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 +1752,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 +1797,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 +1915,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 +2025,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 +2036,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 +2044,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