From 1fa87a730c78cff6005b2231afa9d7976e03e46f Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期五, 29 三月 2024 10:27:37 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 451 +++++++++++++++++++++++++++++++++-----------------------
1 files changed, 264 insertions(+), 187 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 fc220a1..3dd7728 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -4,9 +4,11 @@
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;
@@ -101,6 +103,8 @@
private String taskStatusFeedbackPath;
@Autowired
private CrnController crnController;
+ @Autowired
+ private SiteController siteController;
public void generateStoreWrkFile() throws IOException, InterruptedException {
@@ -166,9 +170,9 @@
}
// News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
staProtocol.setWorkNo(workNo);
- staProtocol.setStaNo(inSta.getBackSta().shortValue());
+ staProtocol.setStaNo(inSta.getStaNo().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
- MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
+ MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
TaskWrk taskWrk = taskWrkMapper.selectByWrkNo(Integer.valueOf(workNo));
if (taskWrk != null) {
taskWrk.setMemo(errMsg);//灏嗛敊璇爜瀛樺叆澶囨敞瀛楁杩涜灞曠ず
@@ -179,7 +183,7 @@
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
if (staProtocol.isAutoing() && staProtocol.isLoading()
&& staProtocol.isInEnable()
- && !staProtocol.isEmptyMk() && (workNo >= 0)
+ && !staProtocol.isEmptyMk() && (workNo == 9991 )
&& staProtocol.isPakMk()) {
// 鑾峰彇鏉$爜鎵弿浠俊鎭�
BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
@@ -187,24 +191,63 @@
continue;
}
String barcode = barcodeThread.getBarcode();
- if(!Cools.isEmpty(barcode)) {
+ if(!Cools.isEmpty(barcode) && !barcode.equals("99999999")) {
// 璇锋眰wms鎺ュ彛锛岃幏鍙栧伐浣滃彿鍜岀洰鏍囧簱浣�
ToWmsDTO toWmsDTO = new ToWmsDTO(barcode,staProtocol.getSiteId(),staProtocol.isHigh() ? 2 : 1);
TaskWrk taskWrk1=taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode",barcode));
if(!Cools.isEmpty(taskWrk1)){
log.info("鎵樼洏鐮侊細"+barcode+"浠诲姟妗e瓨鍦�");
- continue;
+ 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)){
+ log.info("鎵樼洏鐮侊細"+barcode+"浠诲姟妗e瓨鍦�");
+ return;
+ }else {
+ staProtocol.setWorkNo(taskWrk1.getWrkNo().shortValue());
+ staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
+ MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ }
+ }
+ return;
}
HashMap<String, Object> headParam = new HashMap<>();
headParam.put("Content-Type","application/json");
String response;
- response = new HttpHandler.Builder()
- // .setHeaders(headParam)
- .setUri(wmsUrl)
- .setPath(inboundTaskApplyPath)
- .setJson(JSON.toJSONString(toWmsDTO))
- .build()
- .doPost();
+ try{
+ response = new HttpHandler.Builder()
+ // .setHeaders(headParam)
+ .setUri(wmsUrl)
+ .setPath(inboundTaskApplyPath)
+ .setJson(JSON.toJSONString(toWmsDTO))
+ .build()
+ .doPost();
+ }catch (Exception e){
+ log.error("璇锋眰鍏ュ簱璋冪敤鎺ュ彛澶辫触");
+ log.error("寮傚父淇℃伅鎵撳嵃锛�"+e);
+ try{
+ BasDevp basDevp = basDevpService.selectById(inSta.getStaNo());
+ if (Cools.isEmpty(basDevp)){
+ log.error("绔欑偣鍙峰紓甯�"+inSta.getStaNo());
+ } else if (basDevp.getStaErr()!=0){
+ basDevp.setStaErr(2);
+ basDevpService.updateById(basDevp);
+ }
+ }catch (Exception e1){
+ // 閫�鍥�
+ log.error("鎵爜妫�娴嬬▼搴忓紓甯�"+inSta.getStaNo()+"寮傚父淇℃伅"+e1);
+ }
+ staProtocol.setWorkNo((short)9999);
+ staProtocol.setStaNo(inSta.getStaNo().shortValue());
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+// TaskWrk taskWrk = taskWrkMapper.selectByWrkNo(Integer.valueOf(workNo));
+// if (taskWrk != null) {
+// taskWrk.setMemo(errMsg);//灏嗛敊璇爜瀛樺叆澶囨敞瀛楁杩涜灞曠ず
+// taskWrkMapper.updateById(taskWrk);
+// }
+ continue;
+ }
JSONObject jsonObject = JSON.parseObject(response);
apiLogService.save("wms璇锋眰鍏ュ簱璐т綅鎺ュ彛"
@@ -218,6 +261,80 @@
log.info("鍏ュ簱璇锋眰鍙傛暟{}" + JSON.toJSONString(toWmsDTO));
if (jsonObject.getInteger("code").equals(200) && !Cools.isEmpty(jsonObject.get("data").toString())) {
GetWmsDto getWmsDto = JSON.parseObject(jsonObject.get("data").toString(), GetWmsDto.class);
+ try{
+ BasDevp basDevp = basDevpService.selectById(inSta.getStaNo());
+ if (Cools.isEmpty(basDevp)){
+ log.error("绔欑偣鍙峰紓甯�"+inSta.getStaNo());
+ throw new CoolException("绔欑偣鍙峰紓甯�"+inSta.getStaNo());
+ }
+ Integer staNoCrnNo = Utils.StaNoCrnNo(inSta.getStaNo());
+ if (staNoCrnNo==0){
+ basDevp.setStaErr(1);
+ basDevpService.updateById(basDevp);
+ log.error("绔欑偣鍙峰紓甯�"+inSta.getStaNo());
+ throw new CoolException("绔欑偣鍙峰紓甯�"+inSta.getStaNo());
+ }else {
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+ .eq("crn_no", staNoCrnNo.longValue())
+ .eq("loc_no", getWmsDto.getLocNo()));
+ if (Cools.isEmpty(locMast)){
+ basDevp.setStaErr(1);
+ basDevpService.updateById(basDevp);
+ log.error("绔欑偣鍙峰紓甯�"+inSta.getStaNo());
+ throw new CoolException("绔欑偣鍙峰紓甯�"+inSta.getStaNo());
+ }
+ }
+ } catch (Exception e){
+// log.error("鎵爜妫�娴嬬▼搴忓紓甯�"+inSta.getStaNo()+"寮傚父淇℃伅"+e);
+ // 閫�鍥�
+ log.error("鎵爜妫�娴嬬▼搴忓紓甯�"+inSta.getStaNo()+errMsg);
+ log.error("鎵爜妫�娴嬬▼搴忓紓甯�,寮傚父淇℃伅"+e);
+
+ staProtocol.setWorkNo((short)9999);
+ staProtocol.setStaNo(inSta.getStaNo().shortValue());
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+// TaskWrk taskWrk = taskWrkMapper.selectByWrkNo(Integer.valueOf(workNo));
+// if (taskWrk != null) {
+// taskWrk.setMemo(errMsg);//灏嗛敊璇爜瀛樺叆澶囨敞瀛楁杩涜灞曠ず
+// taskWrkMapper.updateById(taskWrk);
+// }
+ continue;
+ }
+ //鏌ョ湅璇ュ簱浣嶆槸鍚︿负绌哄簱浣�
+ LocMast locMast=locMastService.selectOne(new EntityWrapper<LocMast>()
+ .eq("loc_sts","O")
+ .eq("loc_no",getWmsDto.getLocNo()));
+ if(Cools.isEmpty(locMast)){
+ try{
+ HashMap<String, Object> headParam1 = new HashMap<>();
+ headParam1.put("taskNo",getWmsDto.getTaskNo());
+ headParam1.put("status",6);
+ headParam1.put("ioType",1);
+ headParam1.put("barcode",barcode);
+ String response2;
+ response2 = new HttpHandler.Builder()
+ // .setHeaders(headParam)
+ .setUri(wmsUrl)
+ .setPath(taskStatusFeedbackPath)
+ .setJson(JSON.toJSONString(headParam1))
+ .build()
+ .doPost();
+ JSONObject jsonObject1 = JSON.parseObject(response2);
+ apiLogService.save("wcs娲惧彂搴撲綅涓嶄负绌轰笂鎶ms"
+ ,wmsUrl+taskStatusFeedbackPath
+ ,null
+ ,"127.0.0.1"
+ ,JSON.toJSONString(headParam1)
+ ,response
+ ,true
+ );
+ }catch (Exception e){
+ log.error("wcs娲惧彂搴撲綅涓嶄负绌轰笂鎶ms", getWmsDto.getWrkNo());
+ throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触锛屽紓甯镐俊鎭細"+e);
+ }
+ }
+
// 鍒涙柊涓�涓叆搴撳伐浣滄。
TaskWrk taskWrk = taskWrkService.selectByTaskNo(getWmsDto.getWrkNo());
if(Cools.isEmpty(taskWrk)) {
@@ -238,79 +355,19 @@
continue;
}
-// StaDescService staDescService = SpringUtils.getBean(StaDescService.class);
-//
-// ToWmsDTO toWmsDTO = new ToWmsDTO();
-// Map<String, Object> map = new HashMap<>();
-// map.put("x-api-key","7a15b5db-29b6-552c-8cff-0cfec3756da2");
-// List<Integer> list = openServiceImpl.getInEnableRoadway();
-// TaskWrk taskWrk = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", barcode));
-//
-// if (Cools.isEmpty(taskWrk)){
-// continue;
-// }
-// //StaDesc staDesc1 = staDescService.selectOne(new EntityWrapper<StaDesc>().eq("stn_no",inSta.getBackSta()));
-// if (taskWrk.getTargetPoint() != null && taskWrk.getStartPoint() != null){
-// if ( taskWrk.getWrkNo() != null && taskWrk.getWrkNo().shortValue() == workNo ){
-// continue;
-// }
-// //鑾峰彇鍫嗗灈鏈虹珯鐐�
-// StaDesc staDesc = new StaDesc();
-// if (devp.getId() <= 1){
-// staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
-// .eq("crn_no", taskWrk.getCrnNo()).eq("type_no",1).lt("stn_no", 200));
-// }else {
-// staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
-// .eq("crn_no", taskWrk.getCrnNo()).eq("type_no",1).lt("stn_no", 400).ge("stn_no", 250));
-// }
-// staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
-// staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
-// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
-// Thread.sleep(500);
-// }else {
-// //TaskWrk taskWrk = taskWrkService.selectByTaskNo(param.getTaskNo());
-// toWmsDTO.setWarehouseId("1688469798893297665");
-// toWmsDTO.setContainerCode(barcode);
-// toWmsDTO.setApplyType("TUNNEL_LOCATION");
-// toWmsDTO.setTaskTunnel(taskWrk.getCrnNo());
-// toWmsDTO.setCanInboundTunnels(list);
-// String response = null;
-// try {
-// response = new HttpHandler.Builder()
-// .setHeaders(map)
-// .setUri(wmsUrl)
-// .setPath(inboundTaskApplyPath)
-// .setJson(JSON.toJSONString(toWmsDTO))
-// .build()
-// .doPost();
-// }catch (Exception e){
-// log.error("wms閫氳澶辫触,"+e.getMessage());
-// continue;
-// }
-// apiLogService.save("wms璇锋眰鍏ュ簱璐т綅鎺ュ彛"
-// ,wmsUrl+"wcsManager/wcsInterface/inboundTaskApply"
-// ,null
-// ,"127.0.0.1"
-// ,JSON.toJSONString(toWmsDTO)
-// ,response
-// ,true
-// );
-// JSONObject jsonObject = JSON.parseObject(response);
-// if (jsonObject.getInteger("code").equals(200)) {
-// GetWmsDto getWmsDto = JSON.parseObject(jsonObject.get("data").toString(), GetWmsDto.class);
-// taskWrk.setOriginTargetPoint(getWmsDto.getTargetLocationCode());
-// taskWrk.setTargetPoint(Utils.getWcsLocNo(getWmsDto.getTargetLocationCode()));
-// taskWrk.setStartPoint(String.valueOf(inSta.getBackSta()));
-// if (!taskWrkService.updateById(taskWrk)){
-// log.error("淇濆瓨wms搴撲綅鍙峰け璐�");
-// }
-//
-// }else {
-// log.error("wms閫氳澶辫触,"+jsonObject.get("msg"));
-//
-// }
-// }
+ } else {
+ // 閫�鍥�
+ log.error("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
+ staProtocol.setWorkNo((short)9999);
+ staProtocol.setStaNo(inSta.getStaNo().shortValue());
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ TaskWrk taskWrk = taskWrkMapper.selectByWrkNo(Integer.valueOf(workNo));
+ if (taskWrk != null) {
+ taskWrk.setMemo(errMsg);//灏嗛敊璇爜瀛樺叆澶囨敞瀛楁杩涜灞曠ず
+ taskWrkMapper.updateById(taskWrk);
+ }
}
}
@@ -347,43 +404,17 @@
if (taskWrk == null) {
continue;
}
- // 鍒ゆ柇宸ヤ綔妗f潯浠�
- if (taskWrk.getWrkSts() == 12 && taskWrk.getIoType() == 2) {
- // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗�
- CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, taskWrk.getCrnNo());
- CrnProtocol crnProtocol = crnThread.getCrnProtocol();
- if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) {
- // 绉诲姩涓�
- continue;
- }
- // 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁�
- if (crnProtocol.statusType == CrnStatusType.HANDLING_COMPLETED && crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(taskWrk.getWrkNo().shortValue())
- && crnProtocol.getTaskFinish() == 0
- && crnProtocol.forkPosType == CrnForkPosType.HOME) {
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-
- //鍙栧嚭杈撻�佺嚎鍛戒护
- List<CommandInfo> commandInfos = commandInfoService.selectByTaskNo(taskWrk.getTaskNo());
- if (commandInfos.isEmpty()) {
- continue;//鍛戒护绌�
- }
-
-// CommandPackage commandPackage = JSON.parseObject(commandInfo.getCommand(), CommandPackage.class);//鍙栧嚭鍛戒护鎶ユ枃
-// CrnCommand crnCommand = JSON.parseObject(commandPackage.getCommand().toString(), CrnCommand.class);
- Integer commandStep = taskWrk.getCommandStep();
- CommandInfo commandInfo = commandInfos.get(commandStep);
- CommandPackage commandPackage = JSON.parseObject(commandInfo.getCommand(), CommandPackage.class);//鍙栧嚭鍛戒护鎶ユ枃
- //StaProtocol staProtocol1 = JSON.parseObject(commandInfo.getCommand(), StaProtocol.class);
- StaProtocol staProtocol1 = JSON.parseObject(commandPackage.getCommand().toString(), StaProtocol.class);
- if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol1))) {
- log.error("杈撻�佺嚎鍛戒护涓嬫柟澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", taskWrk.getWrkNo());
- continue;//鍛戒护涓嬪彂澶辫触
- }
-
- // 澶嶄綅鍫嗗灈鏈�
- crnThread.setResetFlag(true);
-
- }
+ log.info("涓嬪彂杈撻�佺嚎浠诲姟锛歵askWrk:"+JSON.toJSONString(taskWrk));
+ R r = siteController.siteDetlUpdate(Integer.valueOf(taskWrk.getTargetPoint()), taskWrk.getWrkNo().shortValue(), (short) 0, "Y", false, false);
+ JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(r));
+ if (jsonObject.getInteger("code").equals(200)){
+ log.info("涓嬪彂杈撻�佺嚎浠诲姟鎴愬姛锛歵askWrk:"+JSON.toJSONString(taskWrk));
+ taskWrk.setStatus(5);
+ taskWrk.setWrkSts(14);
+ taskWrkService.updateById(taskWrk);
+ }else {
+ log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛歵askWrk:"+JSON.toJSONString(taskWrk));
+ log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯镐俊鎭�:"+JSON.toJSONString(r));
}
}
}
@@ -752,13 +783,13 @@
for (TaskWrk taskWrk : taskWrks){
// 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
- if (Utils.isDeepLoc(slaveProperties, taskWrk.getStartPoint())) {
- String shallowLocNo = Utils.getShallowLoc(slaveProperties, taskWrk.getStartPoint());
- TaskWrk hallowLocNoTask = taskWrkMapper.selectByStartPoint(shallowLocNo);
- if (!Cools.isEmpty(hallowLocNoTask)){
- continue;
- }
- }
+// if (Utils.isDeepLoc(slaveProperties, taskWrk.getStartPoint())) {
+// String shallowLocNo = Utils.getShallowLoc(slaveProperties, taskWrk.getStartPoint());
+// TaskWrk hallowLocNoTask = taskWrkMapper.selectByStartPoint(shallowLocNo);
+// if (!Cools.isEmpty(hallowLocNoTask)){
+// continue;
+// }
+// }
// 鍫嗗灈鏈烘帶鍒惰繃婊�
if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
continue;
@@ -768,44 +799,7 @@
if (taskWrkMapper.selectCrnWorking(slave.getId()) != null) {
continue;
}
- if (Cools.isEmpty(taskWrk.getTargetPoint())){
- List<Integer> list = openServiceImpl.getInEnableRoadway();
- Map<String, Object> map = new HashMap<>();
- map.put("x-api-key","7a15b5db-29b6-552c-8cff-0cfec3756da2");
- ToWmsDTO toWmsDTO = new ToWmsDTO();
- toWmsDTO.setWarehouseId("1688469798893297665");
- toWmsDTO.setContainerCode(taskWrk.getBarcode());
- toWmsDTO.setApplyType("TUNNEL_LOCATION");
- toWmsDTO.setTaskTunnel(taskWrk.getCrnNo());
- toWmsDTO.setCanInboundTunnels(list);
- String response = null;
- try {
- response = new HttpHandler.Builder()
- .setHeaders(map)
- .setUri(wmsUrl)
- .setPath("wcsManager/wcsInterface/inboundTaskApply")
- .setJson(JSON.toJSONString(toWmsDTO))
- .build()
- .doPost();
- }catch (Exception e){
- log.error("wms閫氳澶辫触,"+e.getMessage());
- continue;
- }
- JSONObject jsonObject = JSON.parseObject(response);
- if (jsonObject.getInteger("code").equals(200)) {
- GetWmsDto getWmsDto = JSON.parseObject(jsonObject.get("data").toString(), GetWmsDto.class);
- taskWrk.setOriginTargetPoint(getWmsDto.getTargetLocationCode());
- taskWrk.setTargetPoint(Utils.getWcsLocNo(getWmsDto.getTargetLocationCode()));
- if (!taskWrkService.updateById(taskWrk)){
- log.error("淇濆瓨wms搴撲綅鍙峰け璐�");
- }
- continue;
- }else {
- log.error("wms閫氳澶辫触,"+jsonObject.get("msg"));
- continue;
- }
- }
if (taskWrk == null || Cools.isEmpty(taskWrk.getTargetPoint()) || taskWrk.getTargetPoint().equals("") || taskWrk.getWrkNo() == null) {
continue;
}
@@ -826,12 +820,12 @@
crnCommand.setTaskNo(taskWrk.getWrkNo().shortValue()); // 宸ヤ綔鍙�
crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
- crnCommand.setSourcePosZ(Utils.getRowShort(taskWrk.getStartPoint())); // 婧愬簱浣嶆帓
- crnCommand.setSourcePosX(Utils.getBayShort(taskWrk.getStartPoint())); // 婧愬簱浣嶅垪
- crnCommand.setSourcePosY(Utils.getLevShort(taskWrk.getStartPoint())); // 婧愬簱浣嶅眰
- crnCommand.setDestinationPosZ(Utils.getRowShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鎺�
- crnCommand.setDestinationPosX(Utils.getBayShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鍒�
- crnCommand.setDestinationPosY(Utils.getLevShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅灞�
+ crnCommand.setSourcePosX(Utils.getRowShort(taskWrk.getStartPoint())); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosY(Utils.getBayShort(taskWrk.getStartPoint())); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosZ(Utils.getLevShort(taskWrk.getStartPoint())); // 婧愬簱浣嶅眰
+ crnCommand.setDestinationPosX(Utils.getRowShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY(Utils.getBayShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅灞�
crnCommand.setCommand((short) 1);
if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand),false)) {
log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand));
@@ -839,20 +833,39 @@
// 淇敼宸ヤ綔妗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 = CrnStartRunning(taskWrk);
- JSONObject jsonObject = JSON.parseObject(response);
- if (jsonObject.getInteger("code").equals(200)) {
-
- }else {
- log.error("绉诲簱浠诲姟寮�濮嬭繍琛岄�氳澶辫触,"+jsonObject.get("msg"));
- continue;
+ try{
+ HashMap<String, Object> headParam = new HashMap<>();
+ headParam.put("taskNo",taskWrk.getTaskNo());
+ headParam.put("status",taskWrk.getStatus());
+ headParam.put("ioType",taskWrk.getIoType());
+ headParam.put("barcode",taskWrk.getBarcode());
+ String response;
+ response = new HttpHandler.Builder()
+ // .setHeaders(headParam)
+ .setUri(wmsUrl)
+ .setPath(taskStatusFeedbackPath)
+ .setJson(JSON.toJSONString(headParam))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ apiLogService.save("wcs娲惧彂绉诲簱浠诲姟涓婃姤wms"
+ ,wmsUrl+taskStatusFeedbackPath
+ ,null
+ ,"127.0.0.1"
+ ,JSON.toJSONString(headParam)
+ ,response
+ ,true
+ );
+ }catch (Exception e){
+ log.error("wcs娲惧彂鍑哄簱浠诲姟涓婃姤wms澶辫触", taskWrk);
+ throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触");
}
- break;
+
}
return;
}
@@ -933,7 +946,7 @@
crnController.crnTaskComplete(crnOperatorParam);
if(!Cools.isEmpty(taskWrk)){
- if(taskWrk.getIoType()==1){
+ if(taskWrk.getIoType()==1 && taskWrk.getWrkSts()==3){
taskWrk.setWrkSts(4);//鍏ュ簱瀹屾垚
taskWrk.setStatus(5);//瀹岀粨
//鏇存柊搴撲綅鐘舵��
@@ -943,8 +956,8 @@
locMast.setModiTime(new Date());
locMast.setModiUser(9999L);
locMastService.updateById(locMast);
- }else if(taskWrk.getIoType()==2){
- taskWrk.setWrkSts(14);//鍑哄簱瀹屾垚
+ }else if(taskWrk.getIoType()==2&&taskWrk.getWrkSts()==12){
+ taskWrk.setWrkSts(13);//鍑哄簱瀹屾垚
taskWrk.setStatus(5);//瀹岀粨
//鏇存柊搴撲綅鐘舵��
LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
@@ -953,7 +966,7 @@
locMast.setModiTime(new Date());
locMast.setModiUser(9999L);
locMastService.updateById(locMast);
- }else if(taskWrk.getIoType()==3){
+ }else if(taskWrk.getIoType()==3&&taskWrk.getWrkSts()==12){
taskWrk.setWrkSts(4);//鍏ュ簱瀹屾垚
taskWrk.setStatus(5);//瀹岀粨
//鏇存柊搴撲綅鐘舵��
@@ -981,6 +994,8 @@
headParam.put("ioType",taskWrk.getIoType());
headParam.put("barcode",taskWrk.getBarcode());
String response;
+ log.error("wcs瀹岀粨浠诲姟涓婃姤wms==銆�", headParam);
+
response = new HttpHandler.Builder()
// .setHeaders(headParam)
.setUri(wmsUrl)
@@ -988,7 +1003,11 @@
.setJson(JSON.toJSONString(headParam))
.build()
.doPost();
- JSONObject jsonObject = JSON.parseObject(response);
+ log.error("wcs瀹岀粨浠诲姟涓婃姤wms==銆�", response);
+
+// JSONObject jsonObject = JSON.parseObject(response);
+// log.error("wcs瀹岀粨浠诲姟涓婃姤wms==銆�", jsonObject);
+
apiLogService.save("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms"
,wmsUrl+taskStatusFeedbackPath
,null
@@ -999,7 +1018,8 @@
);
}catch (Exception e){
log.error("wcs瀹岀粨浠诲姟涓婃姤wms澶辫触", taskWrk);
- throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触");
+ log.error("wcs瀹岀粨浠诲姟涓婃姤wms澶辫触,鎶ラ敊淇℃伅锛�", e);
+// throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触");
}
}
@@ -1146,7 +1166,64 @@
}
}
- //鑷姩瀹屾垚浠诲姟
+ //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 autoCompleteTask() {
List<TaskWrk> taskWrks = taskWrkMapper.selectWorkingTask();
for (TaskWrk taskWrk : taskWrks) {
--
Gitblit v1.9.1