From 4c88c0606bb333ac1ad4c1ad536a848f7d27fdb7 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 23 四月 2025 12:43:37 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 430 +++++++++++++++++------------------------------------
1 files changed, 136 insertions(+), 294 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 45bf0dc..4ce4fbf 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -4,21 +4,16 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
-import com.core.common.R;
import com.core.exception.CoolException;
-import com.zy.asrs.controller.CrnController;
-import com.zy.asrs.controller.OpenController;
-import com.zy.asrs.controller.SiteController;
import com.zy.asrs.domain.enums.TaskStatusType;
import com.zy.asrs.domain.enums.WorkNoType;
-import com.zy.asrs.domain.param.CrnOperatorParam;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.Result;
import com.zy.asrs.entity.param.StorageEscalationParam;
-import com.zy.asrs.entity.param.TaskOverToWms;
import com.zy.asrs.mapper.*;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.CommandUtils;
+import com.zy.asrs.utils.CrnOperaUtils;
import com.zy.asrs.utils.Utils;
import com.zy.common.service.CommonService;
import com.zy.common.utils.HttpHandler;
@@ -30,14 +25,12 @@
import com.zy.core.model.CrnSlave;
import com.zy.core.model.DevpSlave;
import com.zy.core.model.Task;
-import com.zy.core.model.command.CommandPackage;
import com.zy.core.model.command.CrnCommand;
import com.zy.core.model.protocol.CrnProtocol;
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.BarcodeThread;
import com.zy.core.thread.SiemensDevpThread;
-import com.zy.system.entity.Config;
import com.zy.system.service.ConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -84,17 +77,20 @@
private StaDescMapper staDescMapper;
@Autowired
private CommandInfoService commandInfoService;
-
@Autowired
private OpenServiceImpl openServiceImpl;
@Autowired
private StaDescService staDescService;
-
@Autowired
private ApiLogService apiLogService;
@Autowired
private CommonService commonService;
-
+ @Autowired
+ private CrnOperaUtils crnOperaUtils;
+ @Value("${wms.count}")
+ private Integer maxCount;
+ @Autowired
+ private WrkMastService wrkMastService;
@Value("${wms.url}")
private String wmsUrl;
@Value("${wms.inboundTaskApplyPath}")
@@ -103,19 +99,13 @@
private String TaskExecCallback;
@Value("${wms.taskStatusFeedbackPath}")
private String taskStatusFeedbackPath;
- @Autowired
- private CrnController crnController;
- @Autowired
- private SiteController siteController;
-
- public void generateStoreWrkFile1() throws IOException, InterruptedException {
+ public synchronized void generateStoreWrkFile1() {
try {
// 鏍规嵁杈撻�佺嚎plc閬嶅巻
for (DevpSlave devp : slaveProperties.getDevp()) {
// 閬嶅巻鍏ュ簱鍙�
for (DevpSlave.Sta inSta : devp.getInSta()) {
- StorageEscalationParam storageEscalationParam = new StorageEscalationParam();
// 鑾峰彇鍏ュ簱绔欎俊鎭�
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
@@ -168,98 +158,91 @@
if (barcodeThread == null) {
continue;
}
- String BoxNo = barcodeThread.getBarcode();
- TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", BoxNo));
- if (!Cools.isEmpty(taskWrk1)) {
- log.info("鎵樼洏鐮侊細" + BoxNo + "浠诲姟妗e瓨鍦�");
- if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) {
- StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
- .eq("crn_no", taskWrk1.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
- if (Cools.isEmpty(staDesc)) {
- return;
- } else {
- continue;
- }
- }
+
+ String barcode = barcodeThread.getBarcode();
+ TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", barcode));
+ if (taskWrk1 != null) {
+ log.info("鎵樼洏鐮侊細" + barcode + "浠诲姟妗e瓨鍦�");
+ continue;
}
+
+ HashMap<String, Object> requestParam = new HashMap<>();
+ requestParam.put("BoxNo", barcode);//鎵樼洏鐮�
+ requestParam.put("TerminalNo", inSta.getStaNo());//鍏ュ簱鍙�
if (back) {
- storageEscalationParam.setWCSStatus(1);
- storageEscalationParam.setWCSErrorMessage(storageEscalationParam.getWCSErrorMessage() + errMsg);
+ requestParam.put("WCSStatus", 1);//澶辫触
+ requestParam.put("WCSErrorMessage", errMsg);//澶辫触鍘熷洜
+ }else {
+ requestParam.put("WCSStatus", 0);//鎴愬姛
}
- log.info("缁勬墭鍏ュ簱={}", storageEscalationParam);
- storageEscalationParam.setBoxNo(BoxNo);
+
String response = "";
Boolean success = false;
try {
response = new HttpHandler.Builder()
.setUri(wmsUrl)
.setPath(inboundTaskApplyPath)
- .setJson(JSON.toJSONString(storageEscalationParam))
+ .setJson(JSON.toJSONString(requestParam))
.build()
.doPost();
JSONObject jsonObject = JSON.parseObject(response);
- if (!Cools.isEmpty(response)&&!Cools.isEmpty(jsonObject.get("ReturnStatus"))&&jsonObject.get("ReturnStatus").equals(0) && !Cools.isEmpty(jsonObject.get("Result").toString())) {
+
+ if (back) {
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ continue;
+ }
+
+ int returnStatus = Integer.parseInt(jsonObject.get("ReturnStatus").toString());
+ if (returnStatus == 0) {
Result result = JSON.parseObject(jsonObject.get("Result").toString(), Result.class);
// 鍒涙柊涓�涓叆搴撳伐浣滄。
TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo());
- if (Cools.isEmpty(taskWrk)) {
- taskWrk = createTask1(result, BoxNo);
- if (Cools.isEmpty(taskWrk)) {
- log.error("搴撲綅寮傚父锛屽簱浣嶅彿锛�={}", taskWrk.getOriginTargetPoint());
- } else {
- taskWrkService.insert(taskWrk);
- StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
- .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
- staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
- staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
- MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- HashMap<String, Object> hashMap = new HashMap<>();
- hashMap.put("TaskNo",taskWrk.getTaskNo());
- try {
- //寮�濮嬩笂鎶�,浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
- response = new HttpHandler.Builder()
- .setUri(wmsUrl)
- .setPath(taskStatusFeedbackPath)
- .setJson(JSON.toJSONString(hashMap))
- .build()
- .doPost();
- JSONObject jsonObject1 = JSON.parseObject(response);
- Boolean bool = false;
- if(jsonObject1.get("ReturnStatus").equals(0)){
- bool = true;
- }
- apiLogService.save("wcs寮�濮嬪叆搴撲换鍔′笂鎶ms"
- , wmsUrl + TaskExecCallback
- , null
- , "127.0.0.1"
- , JSON.toJSONString(hashMap)
- , response
- , bool
- );
- } catch (Exception e) {
-
- }
- }
- } else {
-// staProtocol.setWorkNo((short) 9991);
- if(staProtocol.getWorkNo()>=9801&&staProtocol.getWorkNo()<=9825){
- staProtocol.setStaNo((short)105);
- } else if (staProtocol.getWorkNo()>=9826&&staProtocol.getWorkNo()<=9850) {
- staProtocol.setStaNo((short)107);
- }else if (staProtocol.getWorkNo()>=9851&&staProtocol.getWorkNo()<=9875) {
- staProtocol.setStaNo((short)109);
- }else{
- staProtocol.setStaNo((short)110);
- }
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ if(taskWrk != null) {
+ log.info("浠诲姟锛�" + result.getTaskNo() + "宸茬粡瀛樺湪");
+ continue;
}
- } else {
-// staProtocol.setWorkNo((short) 9991);
- staProtocol.setStaNo(inSta.getBackSta().shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
+ taskWrk = createTask1(result, barcode);
+ if (!taskWrkService.insert(taskWrk)) {
+ log.info("浠诲姟锛�" + result.getTaskNo() + "浠诲姟鍒涘缓澶辫触");
+ continue;
+ }
+
+ StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
+ .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
+ staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
+ staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+
+ HashMap<String, Object> hashMap = new HashMap<>();
+ hashMap.put("TaskNo", taskWrk.getTaskNo());
+ try {
+ //寮�濮嬩笂鎶�,浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
+ response = new HttpHandler.Builder()
+ .setUri(wmsUrl)
+ .setPath(taskStatusFeedbackPath)
+ .setJson(JSON.toJSONString(hashMap))
+ .build()
+ .doPost();
+ JSONObject jsonObject1 = JSON.parseObject(response);
+ boolean bool = false;
+ if(jsonObject1.get("ReturnStatus").equals(0)){
+ taskWrk.setStatus(2);//娲惧彂浠诲姟
+ bool = true;
+ taskWrkService.updateById(taskWrk);
+ }
+ apiLogService.save("wcs寮�濮嬪叆搴撲换鍔′笂鎶ms"
+ , wmsUrl + TaskExecCallback
+ , null
+ , "127.0.0.1"
+ , JSON.toJSONString(hashMap)
+ , response
+ , bool
+ );
+ } catch (Exception e) {
+
+ }
}
} catch (Exception e) {
log.error("璇锋眰鍏ュ簱璋冪敤鎺ュ彛澶辫触");
@@ -281,12 +264,12 @@
, wmsUrl + inboundTaskApplyPath
, null
, "127.0.0.1"
- , JSON.toJSONString(storageEscalationParam)
+ , JSON.toJSONString(requestParam)
, response
, success
);
}
- log.info("鍏ュ簱璇锋眰鍙傛暟=" + JSON.toJSONString(BoxNo));
+ log.info("鍏ュ簱璇锋眰鍙傛暟=" + JSON.toJSONString(barcode));
log.info("鍏ュ簱璇锋眰杩斿洖鍙傛暟=" + JSON.toJSONString(response));
}
}
@@ -297,7 +280,7 @@
}
}
- public void generateStoreWrkFile() throws IOException, InterruptedException {
+ public synchronized void generateStoreWrkFile() throws IOException, InterruptedException {
try {
// 鏍规嵁杈撻�佺嚎plc閬嶅巻
for (DevpSlave devp : slaveProperties.getDevp()) {
@@ -574,7 +557,7 @@
/**
* 鍫嗗灈鏈虹珯鍑哄簱鍒板嚭搴撶珯
*/
- public void crnStnToOutStn() {
+ public synchronized void crnStnToOutStn() {
for (CrnSlave crnSlave : slaveProperties.getCrn()) {
// 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯
for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) {
@@ -679,7 +662,7 @@
/**
* 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鍒板簱浣�
*/
- public void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol) throws IOException {
+ public synchronized void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol) throws IOException {
for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("crn_no", slave.getId()).eq("crn_stn", crnStn.getStaNo()));
for (StaDesc staDesc : staDescs) {
@@ -706,6 +689,7 @@
continue;
}
+
// 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。
TaskWrk taskWrk = taskWrkMapper.selectPakIn(slave.getId(), staProtocol.getWorkNo().intValue(), staDesc.getStnNo().toString());
if (null == taskWrk) {
@@ -724,7 +708,7 @@
// int workNo = commonService.getWorkNo(WorkNoType.PAKIN.type);//鑾峰彇鍏ュ簱宸ヤ綔鍙�
// taskWrk.setWrkNo(workNo);//宸ヤ綔鍙�
- taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//娲惧彂鐘舵��
+// taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//娲惧彂鐘舵��
taskWrk.setAssignTime(new Date());//娲惧彂鏃堕棿
taskWrk.setWrkSts(3);//宸ヤ綔鐘舵�� 3.鍚婅溅鍏ュ簱
taskWrk.setCrnNo(staDesc.getCrnNo());//鍫嗗灈鏈哄彿
@@ -752,8 +736,8 @@
try {
taskWrkService.updateById(taskWrk);
} catch (Exception e) {
+ e.printStackTrace();
log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
- log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽紓甯革細" + e);
}
}
}
@@ -764,7 +748,7 @@
* 鍑哄簱 ===>> 搴撲綅鍒板爢鍨涙満绔�
* 2022-06-09 TQS淇敼锛屾煡璇㈠伐浣滄。LIST锛岄亶鍘嗕笅鍙戯紝闃叉绗竴涓换鍔″牭濉炲嚭搴�
*/
- public void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol) {
+ public synchronized void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol) {
List<TaskWrk> taskWrksInitial = taskWrkMapper.selectPakOut(slave.getId(), null);
if (taskWrksInitial.size() == 0) {
return;
@@ -831,6 +815,12 @@
if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
break;
}
+ int storeCount = basDevpService.getStoreCount();
+ if(storeCount >= maxCount){
+ log.error("杈撻�佺嚎鏆傚瓨鏁拌揪鍒颁笂闄恵}",storeCount);
+ break;
+ }
+
// 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
if (taskWrkMapper.selectCrnWorking(slave.getId()) != null) {
@@ -849,36 +839,6 @@
command.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞�
command.setCommand((short) 1);
- if(Cools.isEmpty(taskWrk.getMarkStart())||taskWrk.getMarkStart()==0){
- HashMap<String, Object> hashMap = new HashMap<>();
- hashMap.put("TaskNo",taskWrk.getTaskNo());
- String response = "";
- try {
- //寮�濮嬩笂鎶�,鍑哄簱浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
- response = new HttpHandler.Builder()
- .setUri(wmsUrl)
- .setPath(taskStatusFeedbackPath)
- .setJson(JSON.toJSONString(hashMap))
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- Boolean bool = false;
- if(jsonObject.get("ReturnStatus").equals(0)){
- bool = true;
- taskWrk.setMarkStart(1);
- }
- apiLogService.save("wcs寮�濮嬩换鍔′笂鎶ms"
- , wmsUrl + TaskExecCallback
- , null
- , "127.0.0.1"
- , JSON.toJSONString(hashMap)
- , response
- , bool
- );
- } catch (Exception e) {
- }
- }
-
if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, command), false)) {
log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(command));
throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�");
@@ -887,7 +847,6 @@
// 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
Date now = new Date();
taskWrk.setWrkSts(12);
- taskWrk.setStatus(2);
taskWrk.setModiTime(now);
if (taskWrkMapper.updateById(taskWrk) == 0) {
log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
@@ -933,7 +892,7 @@
/**
* 搴撲綅绉昏浆
*/
- public void locToLoc(CrnSlave slave, CrnProtocol crnProtocol) {
+ public synchronized void locToLoc(CrnSlave slave, CrnProtocol crnProtocol) {
for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
// 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑绉诲簱宸ヤ綔妗�
List<TaskWrk> taskWrks = taskWrkMapper.selectList(new EntityWrapper<TaskWrk>()
@@ -992,15 +951,15 @@
// 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
Date now = new Date();
taskWrk.setWrkSts(12);
- taskWrk.setStatus(2);
taskWrk.setModiTime(now);
if (taskWrkMapper.updateById(taskWrk) == 0) {
log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
}
+ String response = "";
+ Boolean bool=false;
+ HashMap<String, Object> headParam = new HashMap<>();
+ headParam.put("TaskNo", taskWrk.getTaskNo());
try {
- HashMap<String, Object> headParam = new HashMap<>();
- headParam.put("TaskNo", taskWrk.getTaskNo());
- String response;
response = new HttpHandler.Builder()
// .setHeaders(headParam)
.setUri(wmsUrl)
@@ -1009,17 +968,24 @@
.build()
.doPost();
JSONObject jsonObject = JSON.parseObject(response);
+ if(jsonObject.get("ReturnStatus").equals(0)){
+ bool = true;
+ taskWrk.setStatus(2);
+ taskWrkMapper.updateById(taskWrk);
+ }
+
+ } catch (Exception e) {
+ log.error("wcs娲惧彂绉诲簱搴撲换鍔′笂鎶ms澶辫触", taskWrk);
+// throw new CoolException("wcs娲惧彂绉诲簱搴撲换鍔′笂鎶ms澶辫触");
+ }finally {
apiLogService.save("wcs娲惧彂绉诲簱浠诲姟涓婃姤wms"
, wmsUrl + taskStatusFeedbackPath
, null
, "127.0.0.1"
, JSON.toJSONString(headParam)
, response
- , true
+ , bool
);
- } catch (Exception e) {
- log.error("wcs娲惧彂绉诲簱搴撲换鍔′笂鎶ms澶辫触", taskWrk);
-// throw new CoolException("wcs娲惧彂绉诲簱搴撲换鍔′笂鎶ms澶辫触");
}
}
@@ -1080,7 +1046,7 @@
/**
* 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
*/
- public void storeFinished() throws InterruptedException {
+ public synchronized void storeFinished() throws InterruptedException {
for (CrnSlave crn : slaveProperties.getCrn()) {
// 鑾峰彇鍫嗗灈鏈轰俊鎭�
CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
@@ -1098,11 +1064,9 @@
continue;
}
//纭瀹屾垚淇″彿
- CrnOperatorParam crnOperatorParam = new CrnOperatorParam();
- crnOperatorParam.setCrnNo(crn.getId());
- R r = crnController.crnTaskComplete(crnOperatorParam);
+ boolean result = crnOperaUtils.crnTaskComplete(crn.getId());
Thread.sleep(1000);
- if(!r.get("code").equals(200)){
+ if(!result){
return;
}
if (!Cools.isEmpty(taskWrk)) {
@@ -1154,7 +1118,7 @@
/**
* 鍫嗗灈鏈哄紓甯镐俊鎭褰�
*/
- public void recCrnErr() {
+ public synchronized void recCrnErr() {
Date now = new Date();
for (CrnSlave crn : slaveProperties.getCrn()) {
// 鑾峰彇鍫嗗灈鏈轰俊鎭�
@@ -1269,85 +1233,26 @@
}
}
- //鑷姩娲惧彂浠诲姟
- public void autoDistribute() {
- Config config = configService.selectByCode("autoDistribute");
- if (config == null) {
- return;
- }
-
- if (config.getValue().equals("false")) {//鍒ゆ柇鏄惁寮�鍚嚜鍔ㄦ淳鍙戜换鍔�
- return;
- }
-
- for (TaskWrk taskWrk : taskWrkService.selectReceive()) {
-
- try {
- taskWrkService.distribute(taskWrk.getTaskNo(), 9527L);
- } catch (CoolException e) {
- log.info(e.getMessage());
- }
- }
- }
-
- //agv鍙栨斁璐т换鍔″畬鎴�
- public synchronized void autoCompleteAGV() {
- List<BasDevp> basDevps = basDevpService.selectList(new EntityWrapper<>());
- try {
- Thread.sleep(500);
- } catch (Exception e) {
-
- }
-
- for (BasDevp basDevp : basDevps) {
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo());
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
- if (basDevp.getWrkNo() != 0) {
- if (basDevp.getAgvTargetPick() != 0) {//鍙栬揣
- staProtocol.setAgvTypeSign((short) 0);
- staProtocol.setStaNo(basDevp.getDevNo().shortValue());
- MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol));
- }
- boolean sign = true;
- if (basDevp.getAgvTargetPlace() != 0) {
- sign = false;
- basDevp.setAgvTargetPlace(0);
- basDevpService.updateById(basDevp);
- staProtocol.setAgvTypeSign((short) 3);//1
- staProtocol.setStaNo(basDevp.getDevNo().shortValue());
- MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol));
- }
- } else {
- if (basDevp.getAgvTargetPlace() != 0) {
- if (basDevp.getLoading().equals("Y")) {
- staProtocol.setAgvTypeSign((short) 1);
- staProtocol.setStaNo(basDevp.getDevNo().shortValue());
- MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol));
- } else {
- log.error("AGV鏀捐揣瀹屾垚浣嗚緭閫佺嚎鏃犵墿锛屽浣嶄俊鍙� ===>> [staNo:{}] [basDevp:{}]", basDevp.getDevNo(), basDevp);
- basDevp.setAgvTargetPlace(0);
- basDevpService.updateById(basDevp);
- staProtocol.setAgvTypeSign((short) 3);//1
- staProtocol.setStaNo(basDevp.getDevNo().shortValue());
- MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol));
- }
-
- }
- if (basDevp.getAgvTargetPick() != 0) {
- basDevp.setAgvTargetPick(0);
- basDevpService.updateById(basDevp);
- staProtocol.setAgvTypeSign((short) 2);//0
- staProtocol.setStaNo(basDevp.getDevNo().shortValue());
- MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol));
- }
- }
- }
- }
+// //鑷姩娲惧彂浠诲姟
+// public synchronized void autoDistribute() {
+// Config config = configService.selectByCode("autoDistribute");
+// if (config == null) {
+// return;
+// }
+//
+// if (config.getValue().equals("false")) {//鍒ゆ柇鏄惁寮�鍚嚜鍔ㄦ淳鍙戜换鍔�
+// return;
+// }
+//
+// for (TaskWrk taskWrk : taskWrkService.selectReceive()) {
+//
+// try {
+// taskWrkService.distribute(taskWrk.getTaskNo(), 9527L);
+// } catch (CoolException e) {
+// log.info(e.getMessage());
+// }
+// }
+// }
public synchronized void autoCompleteTask() {
List<TaskWrk> taskWrks = taskWrkMapper.selectWorkingTask();
@@ -1398,86 +1303,23 @@
}
}
-
- public synchronized String CrnStartRunning(TaskWrk taskWrk) {
- String tasktype = null;
- switch (taskWrk.getIoType()) {
- case 1:
- tasktype = "RK";
- break;
- case 2:
- tasktype = "CK";
- break;
- case 3:
- tasktype = "YK";
- break;
- default:
- tasktype = "鏈煡";
- }
- Map<String, Object> map = new HashMap<>();
- map.put("x-api-key", "7a15b5db-29b6-552c-8cff-0cfec3756da2");
- TaskOverToWms taskOverToWms = new TaskOverToWms();
- taskOverToWms.setFeedbackFrom("WCS"); //鏉ユ簮
- taskOverToWms.setWarehouseId("1688469798893297665"); //浠撳簱鏍囪瘑
- taskOverToWms.setTaskNo(taskWrk.getTaskNo()); //浠诲姟鍙�
- taskOverToWms.setTaskType(tasktype); // 浠诲姟绫诲瀷
- taskOverToWms.setContainerCode(taskWrk.getBarcode()); // 瀹瑰櫒缂栫爜
- if (taskWrk.getIoType() == 1 || taskWrk.getIoType() == 3) {
- taskOverToWms.setEquipmentCode(String.valueOf(taskWrk.getCrnNo())); //璁惧缂栫爜
- taskOverToWms.setTargetLocationCode(taskWrk.getOriginTargetPoint()); //鐩爣搴撲綅
- } else if (taskWrk.getIoType() == 2) {
- Map<Integer, String> map1 = new HashMap<>();
- map1.put(102, "J-1101");
- map1.put(106, "J-1103");
- map1.put(110, "J-1105");
- map1.put(114, "J-1107");
- map1.put(118, "J-1109");
- map1.put(122, "J-1111");
- map1.put(305, "H-1101");
- map1.put(405, "G-1101");
- taskOverToWms.setEquipmentCode(map1.get(taskWrk.getTargetPoint())); //璁惧缂栫爜
- taskOverToWms.setSourceLocationCode(taskWrk.getOriginStartPoint()); //婧愬簱浣�
- }
-
- taskOverToWms.setTaskStatus("executing"); //浠诲姟鐘舵��
- String response = null;
- try {
- response = new HttpHandler.Builder()
- .setHeaders(map)
- .setUri(wmsUrl)
- .setPath("wcsManager/wcsInterface/taskStatusFeedback")
- .setJson(JSON.toJSONString(taskOverToWms))
- .build()
- .doPost();
- } catch (Exception e) {
- log.error("鍫嗗灈鏈轰换鍔″畬鎴愶紝璇锋眰wms浠诲姟瀹屾垚鎺ュ彛澶辫触");
- }
- apiLogService.save("鍫嗗灈鏈哄紑濮嬭繍琛�"
- , wmsUrl + "wcsManager/wcsInterface/taskStatusFeedback"
- , null
- , "127.0.0.1"
- , JSON.toJSONString(taskOverToWms)
- , response
- , true
- );
- return response;
- }
-
private TaskWrk createTask1(Result result, String barcode) {
- String locNo = Utils.Fusion(result.getRow(), result.getFloor(), result.getColumn());
-
+ String locNo = Utils.getLocNo(result.getRow(), result.getFloor(), result.getColumn());
+ LocMast locMast = locMastService.selectByLocNo(locNo);
+ if (locMast == null) {
+ throw new CoolException("搴撲綅涓嶅瓨鍦�");
+ }
Date now = new Date();
TaskWrk taskWrk = new TaskWrk();
int workNo1 = commonService.getWorkNo(WorkNoType.PAKIN.type);//鑾峰彇鍏ュ簱宸ヤ綔鍙�
taskWrk.setTaskNo(result.getTaskNo());//浠诲姟鍙�
taskWrk.setWrkNo(workNo1);
- taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//浠诲姟鐘舵�侊細娲惧彂
+ taskWrk.setStatus(TaskStatusType.RECEIVE.id);//浠诲姟鐘舵�侊細鎺ユ敹
taskWrk.setCreateTime(now);
taskWrk.setIoType(1);//浠诲姟绫诲瀷
taskWrk.setIoPri(13);//浼樺厛绾�
taskWrk.setBarcode(barcode);//鏉$爜
- LocMast locMast = locMastService.selectByLocNo(locNo);
taskWrk.setCrnNo(locMast.getCrnNo());
taskWrk.setTargetPoint(locNo);
taskWrk.setStartPoint("116");
--
Gitblit v1.9.1