From 9b8ff50b66361c4b56074b7586b2d5951ecf2091 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 02 四月 2026 15:02:14 +0800
Subject: [PATCH] #优化运行速度
---
src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java | 280 +++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 207 insertions(+), 73 deletions(-)
diff --git a/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java b/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java
index 99dc866..1d415b0 100644
--- a/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java
+++ b/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java
@@ -3,15 +3,18 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.core.exception.CoolException;
import com.zy.asrs.domain.enums.NotifyMsgType;
import com.zy.asrs.domain.param.CreateLocMoveTaskParam;
+import com.zy.asrs.entity.BasStation;
import com.zy.asrs.entity.BasDualCrnp;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.BasDualCrnpService;
+import com.zy.asrs.service.BasStationService;
import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.service.WrkAnalysisService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.utils.NotifyUtils;
import com.zy.asrs.utils.Utils;
@@ -21,6 +24,7 @@
import com.zy.core.News;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.SlaveConnection;
+import com.zy.core.dispatch.StationCommandDispatcher;
import com.zy.core.enums.*;
import com.zy.core.model.StationObjModel;
import com.zy.core.model.Task;
@@ -29,6 +33,8 @@
import com.zy.core.model.param.SendDualCrnCommandParam;
import com.zy.core.model.protocol.DualCrnProtocol;
import com.zy.core.model.protocol.StationProtocol;
+import com.zy.core.task.MainProcessLane;
+import com.zy.core.task.MainProcessTaskSubmitter;
import com.zy.core.thread.DualCrnThread;
import com.zy.core.thread.StationThread;
import org.springframework.beans.factory.annotation.Autowired;
@@ -53,6 +59,8 @@
@Autowired
private LocMastService locMastService;
@Autowired
+ private BasStationService basStationService;
+ @Autowired
private RedisUtil redisUtil;
@Autowired
private WmsOperateUtils wmsOperateUtils;
@@ -60,43 +68,57 @@
private CommonService commonService;
@Autowired
private NotifyUtils notifyUtils;
+ @Autowired
+ private StationOperateProcessUtils stationOperateProcessUtils;
+ @Autowired
+ private WrkAnalysisService wrkAnalysisService;
+ @Autowired
+ private StationCommandDispatcher stationCommandDispatcher;
+ @Autowired
+ private MainProcessTaskSubmitter mainProcessTaskSubmitter;
+
+ private static final String CRN_OUT_REQUIRE_STATION_OUT_ENABLE_CONFIG = "crnOutRequireStationOutEnable";
//鍏ュ嚭搴� ===>> 鍙屽伐浣嶅爢鍨涙満鍏ュ嚭搴撲綔涓氫笅鍙�
public synchronized void dualCrnIoExecute() {
- List<BasDualCrnp> basDualCrnps = basDualCrnpService.selectList(new EntityWrapper<>());
+ List<BasDualCrnp> basDualCrnps = basDualCrnpService.list(new QueryWrapper<>());
for (BasDualCrnp basDualCrnp : basDualCrnps) {
- DualCrnThread dualCrnThread = (DualCrnThread) SlaveConnection.get(SlaveType.DualCrn, basDualCrnp.getCrnNo());
- if(dualCrnThread == null){
- continue;
- }
-
- DualCrnProtocol dualCrnProtocol = dualCrnThread.getStatus();
- if(dualCrnProtocol == null){
- continue;
- }
-
- List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
- .eq("dual_crn_no", basDualCrnp.getCrnNo())
- .in("wrk_sts", WrkStsType.INBOUND_RUN.sts, WrkStsType.OUTBOUND_RUN.sts, WrkStsType.LOC_MOVE_RUN.sts)
- );
- if(wrkMasts.size() >= 2){
- continue;
- }
-
- if(dualCrnProtocol.getMode() != DualCrnModeType.AUTO.id) {
- continue;
- }
-
- if(dualCrnProtocol.getAlarm() != 0) {
- continue;
- }
-
- if(dualCrnProtocol.getTaskSend() != 0 || dualCrnProtocol.getTaskSendTwo() != 0) {
- continue;
- }
-
- this.crnExecute(basDualCrnp, dualCrnThread);
+ dualCrnIoExecute(basDualCrnp);
}
+ }
+
+ public void dualCrnIoExecute(BasDualCrnp basDualCrnp) {
+ DualCrnThread dualCrnThread = (DualCrnThread) SlaveConnection.get(SlaveType.DualCrn, basDualCrnp.getCrnNo());
+ if(dualCrnThread == null){
+ return;
+ }
+
+ DualCrnProtocol dualCrnProtocol = dualCrnThread.getStatus();
+ if(dualCrnProtocol == null){
+ return;
+ }
+
+ List<WrkMast> wrkMasts = wrkMastService.list(new QueryWrapper<WrkMast>()
+ .eq("dual_crn_no", basDualCrnp.getCrnNo())
+ .in("wrk_sts", WrkStsType.INBOUND_RUN.sts, WrkStsType.OUTBOUND_RUN.sts, WrkStsType.LOC_MOVE_RUN.sts)
+ );
+ if(wrkMasts.size() >= 2){
+ return;
+ }
+
+ if(dualCrnProtocol.getMode() != DualCrnModeType.AUTO.id) {
+ return;
+ }
+
+ if(dualCrnProtocol.getAlarm() != 0) {
+ return;
+ }
+
+ if(dualCrnProtocol.getTaskSend() != 0 || dualCrnProtocol.getTaskSendTwo() != 0) {
+ return;
+ }
+
+ this.crnExecute(basDualCrnp, dualCrnThread);
}
private synchronized void crnExecute(BasDualCrnp basDualCrnp, DualCrnThread dualCrnThread) {
@@ -199,18 +221,19 @@
WrkMast stationOneWrkMast = null;
WrkMast stationTwoWrkMast = null;
- List<Integer> disableList = basDualCrnp.getDisableStationOneBays$();
+ List<Integer> disableOneList = basDualCrnp.getDisableStationOneBays$();
+ List<Integer> disableTwoList = basDualCrnp.getDisableStationTwoBays$();
for (WrkMast wrkMast : outTaskList) {
if (stationOneWrkMast == null) {
- if (!disableList.contains(Utils.getBay(wrkMast.getSourceLocNo()))) {
+ if (!disableOneList.contains(Utils.getBay(wrkMast.getSourceLocNo()))) {
stationOneWrkMast = wrkMast;
continue;
}
}
if (stationTwoWrkMast == null) {
- if (!disableList.contains(Utils.getBay(wrkMast.getSourceLocNo()))) {
+ if (!disableTwoList.contains(Utils.getBay(wrkMast.getSourceLocNo()))) {
stationTwoWrkMast = wrkMast;
continue;
}
@@ -335,13 +358,17 @@
}
}
+ if (taskList.isEmpty()) {
+ return list;
+ }
+
// 鑾峰彇浠诲姟
- List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+ List<WrkMast> wrkMasts = wrkMastService.list(new QueryWrapper<WrkMast>()
.eq("dual_crn_no", basDualCrnp.getCrnNo())
.in("wrk_no", taskList)
);
for (WrkMast wrkMast : wrkMasts) {
- if(wrkMast.getWrkSts() != WrkStsType.INBOUND_DEVICE_RUN.sts){
+ if(wrkMast.getWrkSts() != WrkStsType.INBOUND_STATION_RUN_COMPLETE.sts){
continue;
}
list.add(wrkMast);
@@ -362,7 +389,7 @@
return list;
}
- List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+ List<WrkMast> wrkMasts = wrkMastService.list(new QueryWrapper<WrkMast>()
.eq("dual_crn_no", basDualCrnp.getCrnNo())
.eq("wrk_sts", WrkStsType.NEW_OUTBOUND.sts)
);
@@ -372,7 +399,7 @@
private List<WrkMast> getLocMoveTaskList(BasDualCrnp basDualCrnp) {
List<WrkMast> list = new ArrayList<>();
- List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+ List<WrkMast> wrkMasts = wrkMastService.list(new QueryWrapper<WrkMast>()
.eq("dual_crn_no", basDualCrnp.getCrnNo())
.eq("wrk_sts", WrkStsType.NEW_LOC_MOVE.sts)
);
@@ -399,12 +426,12 @@
Integer crnNo = basDualCrnp.getCrnNo();
- if (wrkMast.getWrkSts() != WrkStsType.INBOUND_DEVICE_RUN.sts) {
+ if (wrkMast.getWrkSts() != WrkStsType.INBOUND_STATION_RUN_COMPLETE.sts) {
return null;
}
// 鑾峰彇搴撲綅淇℃伅
- LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+ LocMast locMast = locMastService.getById(wrkMast.getLocNo());
if (locMast == null) {
News.taskInfo(wrkMast.getWrkNo(), "鐩爣搴撲綅:{} 淇℃伅涓嶅瓨鍦�", wrkMast.getLocNo());
return null;
@@ -496,11 +523,14 @@
commandList.add(pickCommand);
commandList.add(putCommand);
+ Date now = new Date();
wrkMast.setWrkSts(WrkStsType.INBOUND_RUN.sts);
wrkMast.setDualCrnNo(crnNo);
wrkMast.setSystemMsg("");
- wrkMast.setIoTime(new Date());
+ wrkMast.setIoTime(now);
+ wrkMast.setModiTime(now);
if (wrkMastService.updateById(wrkMast)) {
+ wrkAnalysisService.markCraneStart(wrkMast, now);
SendDualCrnCommandParam sendDualCrnCommandParam = new SendDualCrnCommandParam();
sendDualCrnCommandParam.setCrnNo(crnNo);
sendDualCrnCommandParam.setStation(station);
@@ -544,6 +574,10 @@
Integer crnNo = basDualCrnp.getCrnNo();
+ if (isOutboundTargetStationTaskLimitReached(wrkMast)) {
+ return null;
+ }
+
for (StationObjModel stationObjModel : outStationList) {
StationThread stationThread = (StationThread) SlaveConnection.get(SlaveType.Devp, stationObjModel.getDeviceNo());
if (stationThread == null) {
@@ -572,13 +606,13 @@
continue;
}
- if (!stationProtocol.isOutEnable()) {
- News.info("鏀捐揣绔欑偣:{} 娌℃湁鍙嚭淇″彿", stationObjModel.getStationId());
+ if (isRequireOutboundStationOutEnable() && !stationProtocol.isOutEnable()) {
+ News.taskInfo(wrkMast.getWrkNo(), "鏀捐揣绔欑偣:{} 娌℃湁鍙嚭淇″彿", stationObjModel.getStationId());
continue;
}
// 鑾峰彇搴撲綅淇℃伅
- LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
+ LocMast locMast = locMastService.getById(wrkMast.getSourceLocNo());
if (locMast == null) {
News.taskInfo(wrkMast.getWrkNo(), "婧愬簱浣�:{} 淇℃伅涓嶅瓨鍦�", wrkMast.getSourceLocNo());
continue;
@@ -604,11 +638,14 @@
commandList.add(pickCommand);
commandList.add(putCommand);
+ Date now = new Date();
wrkMast.setWrkSts(WrkStsType.OUTBOUND_RUN.sts);
wrkMast.setDualCrnNo(crnNo);
wrkMast.setSystemMsg("");
- wrkMast.setIoTime(new Date());
+ wrkMast.setIoTime(now);
+ wrkMast.setModiTime(now);
if (wrkMastService.updateById(wrkMast)) {
+ wrkAnalysisService.markCraneStart(wrkMast, now);
redisUtil.set(RedisKeyType.DUAL_CRN_OUT_TASK_STATION_INFO.key + wrkMast.getWrkNo(), JSON.toJSONString(stationObjModel, SerializerFeature.DisableCircularReferenceDetect), 60 * 60 * 24);
SendDualCrnCommandParam sendDualCrnCommandParam = new SendDualCrnCommandParam();
@@ -624,6 +661,26 @@
return null;
}
+ private boolean isOutboundTargetStationTaskLimitReached(WrkMast wrkMast) {
+ if (wrkMast == null || wrkMast.getStaNo() == null) {
+ return false;
+ }
+ BasStation basStation = basStationService.getById(wrkMast.getStaNo());
+ if (basStation == null || basStation.getOutTaskLimit() == null || basStation.getOutTaskLimit() < 0) {
+ return false;
+ }
+ int currentStationTaskCount = stationOperateProcessUtils.getCurrentOutboundTaskCountByTargetStation(wrkMast.getStaNo());
+ if (currentStationTaskCount >= basStation.getOutTaskLimit()) {
+ News.taskInfo(wrkMast.getWrkNo(),
+ "鐩爣鍑哄簱绔�:{} 宸茶揪鍑哄簱浠诲姟涓婇檺锛屽綋鍓�={}锛屼笂闄�={}",
+ wrkMast.getStaNo(),
+ currentStationTaskCount,
+ basStation.getOutTaskLimit());
+ return true;
+ }
+ return false;
+ }
+
private synchronized SendDualCrnCommandParam crnExecuteLocMove(BasDualCrnp basDualCrnp, DualCrnThread dualCrnThread, WrkMast wrkMast, int station) {
DualCrnProtocol dualCrnProtocol = dualCrnThread.getStatus();
if (dualCrnProtocol == null) {
@@ -633,7 +690,7 @@
Integer crnNo = basDualCrnp.getCrnNo();
// 鑾峰彇婧愬簱浣嶄俊鎭�
- LocMast sourceLocMast = locMastService.selectById(wrkMast.getSourceLocNo());
+ LocMast sourceLocMast = locMastService.getById(wrkMast.getSourceLocNo());
if (sourceLocMast == null) {
News.taskInfo(wrkMast.getWrkNo(), "婧愬簱浣�:{} 淇℃伅涓嶅瓨鍦�", wrkMast.getSourceLocNo());
return null;
@@ -645,7 +702,7 @@
}
// 鑾峰彇搴撲綅淇℃伅
- LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+ LocMast locMast = locMastService.getById(wrkMast.getLocNo());
if (locMast == null) {
News.taskInfo(wrkMast.getWrkNo(), "搴撲綅:{} 淇℃伅涓嶅瓨鍦�", wrkMast.getLocNo());
return null;
@@ -669,11 +726,14 @@
commandList.add(pickCommand);
commandList.add(putCommand);
+ Date now = new Date();
wrkMast.setWrkSts(WrkStsType.LOC_MOVE_RUN.sts);
wrkMast.setDualCrnNo(crnNo);
wrkMast.setSystemMsg("");
- wrkMast.setIoTime(new Date());
+ wrkMast.setIoTime(now);
+ wrkMast.setModiTime(now);
if (wrkMastService.updateById(wrkMast)) {
+ wrkAnalysisService.markCraneStart(wrkMast, now);
SendDualCrnCommandParam sendDualCrnCommandParam = new SendDualCrnCommandParam();
sendDualCrnCommandParam.setCrnNo(crnNo);
sendDualCrnCommandParam.setStation(station);
@@ -688,35 +748,80 @@
//鍙屽伐浣嶅爢鍨涙満浠诲姟鎵ц瀹屾垚
public synchronized void dualCrnIoExecuteFinish() {
- List<BasDualCrnp> basDualCrnps = basDualCrnpService.selectList(new EntityWrapper<>());
+ List<BasDualCrnp> basDualCrnps = basDualCrnpService.list(new QueryWrapper<>());
for (BasDualCrnp basDualCrnp : basDualCrnps) {
- DualCrnThread dualCrnThread = (DualCrnThread) SlaveConnection.get(SlaveType.DualCrn, basDualCrnp.getCrnNo());
- if(dualCrnThread == null){
- continue;
- }
+ dualCrnIoExecuteFinish(basDualCrnp);
+ }
+ }
- DualCrnProtocol dualCrnProtocol = dualCrnThread.getStatus();
- if(dualCrnProtocol == null){
- continue;
- }
+ public void dualCrnIoExecuteFinish(BasDualCrnp basDualCrnp) {
+ DualCrnThread dualCrnThread = (DualCrnThread) SlaveConnection.get(SlaveType.DualCrn, basDualCrnp.getCrnNo());
+ if(dualCrnThread == null){
+ return;
+ }
- if(dualCrnProtocol.getMode() != DualCrnModeType.AUTO.id) {
- continue;
- }
+ DualCrnProtocol dualCrnProtocol = dualCrnThread.getStatus();
+ if(dualCrnProtocol == null){
+ return;
+ }
- if(dualCrnProtocol.getAlarm() != 0) {
- continue;
- }
+ if(dualCrnProtocol.getMode() != DualCrnModeType.AUTO.id) {
+ return;
+ }
- if((dualCrnProtocol.getTaskNo() > 0 && dualCrnProtocol.getDeviceTaskNo() > 0) && dualCrnProtocol.getTaskSend() == 0 && dualCrnProtocol.getStatus().equals(DualCrnStatusType.WAITING.id)) {
- executeFinish(basDualCrnp, dualCrnThread, dualCrnProtocol, dualCrnProtocol.getTaskNo(), 1);
- continue;
- }
+ if(dualCrnProtocol.getAlarm() != 0) {
+ return;
+ }
- if((dualCrnProtocol.getTaskNoTwo() > 0 && dualCrnProtocol.getDeviceTaskNoTwo() > 0) && dualCrnProtocol.getTaskSendTwo() == 0 && dualCrnProtocol.getStatusTwo().equals(DualCrnStatusType.WAITING.id)) {
- executeFinish(basDualCrnp, dualCrnThread, dualCrnProtocol, dualCrnProtocol.getTaskNoTwo(), 2);
+ if((dualCrnProtocol.getTaskNo() > 0 && dualCrnProtocol.getDeviceTaskNo() > 0) && dualCrnProtocol.getTaskSend() == 0 && dualCrnProtocol.getStatus().equals(DualCrnStatusType.WAITING.id)) {
+ executeFinish(basDualCrnp, dualCrnThread, dualCrnProtocol, dualCrnProtocol.getTaskNo(), 1);
+ return;
+ }
+
+ if((dualCrnProtocol.getTaskNoTwo() > 0 && dualCrnProtocol.getDeviceTaskNoTwo() > 0) && dualCrnProtocol.getTaskSendTwo() == 0 && dualCrnProtocol.getStatusTwo().equals(DualCrnStatusType.WAITING.id)) {
+ executeFinish(basDualCrnp, dualCrnThread, dualCrnProtocol, dualCrnProtocol.getTaskNoTwo(), 2);
+ }
+ }
+
+ public void submitDualCrnIoTasks(long minIntervalMs) {
+ submitDualCrnIoTasks(MainProcessLane.DUAL_CRN_IO, minIntervalMs);
+ }
+
+ public void submitDualCrnIoTasks(MainProcessLane lane, long minIntervalMs) {
+ List<BasDualCrnp> basDualCrnps = basDualCrnpService.list(new QueryWrapper<>());
+ for (BasDualCrnp basDualCrnp : basDualCrnps) {
+ Integer crnNo = basDualCrnp == null ? null : basDualCrnp.getCrnNo();
+ if (crnNo == null) {
continue;
}
+ mainProcessTaskSubmitter.submitKeyedSerialTask(
+ lane,
+ crnNo,
+ "dualCrnIoExecute",
+ minIntervalMs,
+ () -> dualCrnIoExecute(basDualCrnp)
+ );
+ }
+ }
+
+ public void submitDualCrnIoExecuteFinishTasks(long minIntervalMs) {
+ submitDualCrnIoExecuteFinishTasks(MainProcessLane.DUAL_CRN_IO_FINISH, minIntervalMs);
+ }
+
+ public void submitDualCrnIoExecuteFinishTasks(MainProcessLane lane, long minIntervalMs) {
+ List<BasDualCrnp> basDualCrnps = basDualCrnpService.list(new QueryWrapper<>());
+ for (BasDualCrnp basDualCrnp : basDualCrnps) {
+ Integer crnNo = basDualCrnp == null ? null : basDualCrnp.getCrnNo();
+ if (crnNo == null) {
+ continue;
+ }
+ mainProcessTaskSubmitter.submitKeyedSerialTask(
+ lane,
+ crnNo,
+ "dualCrnIoExecuteFinish",
+ minIntervalMs,
+ () -> dualCrnIoExecuteFinish(basDualCrnp)
+ );
}
}
@@ -741,6 +846,7 @@
if (idx >= 2) {
Long updateWrkSts = null;
+ Date now = new Date();
if (wrkMast.getWrkSts() == WrkStsType.INBOUND_RUN.sts) {
updateWrkSts = WrkStsType.COMPLETE_INBOUND.sts;
notifyUtils.notify(String.valueOf(SlaveType.DualCrn), basDualCrnp.getCrnNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.DUAL_CRN_IN_TASK_COMPLETE, null);
@@ -767,7 +873,7 @@
}
//鐢熸垚浠跨湡绔欑偣鏁版嵁
StationCommand command = stationThread.getCommand(StationCommandType.WRITE_INFO, 9998, wrkMast.getSourceStaNo(), 0, 0);
- MessageQueue.offer(SlaveType.Devp, stationObjModel.getDeviceNo(), new Task(2, command));
+ stationCommandDispatcher.dispatch(stationObjModel.getDeviceNo(), command, "dual-crn-operate-process", "fake-out-complete-write-info");
}
}
@@ -790,8 +896,10 @@
wrkMast.setWrkSts(updateWrkSts);
wrkMast.setSystemMsg("");
- wrkMast.setIoTime(new Date());
+ wrkMast.setIoTime(now);
+ wrkMast.setModiTime(now);
if (wrkMastService.updateById(wrkMast)) {
+ wrkAnalysisService.markCraneComplete(wrkMast, now, updateWrkSts);
News.info("鍙屽伐浣嶅爢鍨涙満浠诲姟鐘舵�佹洿鏂版垚鍔燂紝鍫嗗灈鏈哄彿={}锛屽伐浣滃彿={}", basDualCrnp.getCrnNo(), taskNo);
}
redisUtil.set(RedisKeyType.DUAL_CRN_IO_EXECUTE_FINISH_LIMIT.key + basDualCrnp.getCrnNo() + "_" + taskNo, "lock", 10);
@@ -866,6 +974,32 @@
return false;
}
+ private boolean isRequireOutboundStationOutEnable() {
+ return getSystemConfigBoolean(CRN_OUT_REQUIRE_STATION_OUT_ENABLE_CONFIG, true);
+ }
+
+ private boolean getSystemConfigBoolean(String code, boolean defaultValue) {
+ Object systemConfigMapObj = redisUtil.get(RedisKeyType.SYSTEM_CONFIG_MAP.key);
+ if (!(systemConfigMapObj instanceof Map)) {
+ return defaultValue;
+ }
+ try {
+ Object value = ((Map<?, ?>) systemConfigMapObj).get(code);
+ if (value == null) {
+ return defaultValue;
+ }
+ String text = String.valueOf(value).trim();
+ if ("Y".equalsIgnoreCase(text) || "true".equalsIgnoreCase(text) || "1".equals(text)) {
+ return true;
+ }
+ if ("N".equalsIgnoreCase(text) || "false".equalsIgnoreCase(text) || "0".equals(text)) {
+ return false;
+ }
+ } catch (Exception ignore) {
+ }
+ return defaultValue;
+ }
+
private boolean reassignTaskLocNo(WrkMast wrkMast, StationObjModel stationObjModel) {
StationThread stationThread = (StationThread) SlaveConnection.get(SlaveType.Devp, stationObjModel.getDeviceNo());
if (stationThread == null) {
--
Gitblit v1.9.1