From 84988579b77ec4578af30d5c836690beeff3562c Mon Sep 17 00:00:00 2001
From: lsh <1>
Date: 星期五, 22 三月 2024 13:44:27 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/model/protocol/StaProtocol.java | 3
src/main/java/com/zy/asrs/utils/Utils.java | 21 ++++
src/main/java/com/zy/asrs/controller/OpenController.java | 83 +++++++++++-----
src/main/java/com/zy/asrs/entity/BasDevp.java | 4
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 159 ++++++++++++++-----------------
src/main/resources/mapper/BasDevpMapper.xml | 1
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 18 ++
7 files changed, 170 insertions(+), 119 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 385906e..0e360c4 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -13,6 +13,7 @@
import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam;
import com.zy.asrs.entity.param.TaskCreateParam;
import com.zy.asrs.service.*;
+import com.zy.asrs.utils.Utils;
import com.zy.common.web.BaseController;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -78,38 +79,64 @@
//鍒涘缓浠诲姟
@PostMapping("/taskCreate")
+ @Transactional
public R taskCreate(@RequestHeader String appkey,
@RequestBody List<TaskCreateParam> param1,
HttpServletRequest request) {
auth(appkey, param1, request);
- for (TaskCreateParam param : param1
- ) {
- if (Cools.isEmpty(param)) {
- return R.parse(BaseRes.PARAM);
- }
- if (Cools.isEmpty(param.getTaskNo())) {
- return R.error("浠诲姟鍙穂taskNo]涓嶈兘涓虹┖");
- }
- if (Cools.isEmpty(param.getIoType())) {
- return R.error("浠诲姟绫诲瀷[ioType]涓嶈兘涓虹┖");
- }
- if (Cools.isEmpty(param.getBarcode())) {
- return R.error("鏉$爜[barcode]涓嶈兘涓虹┖");
- }
- String locNo=null;
- if(param.getIoType()==1){
- locNo=param.getTargetPoint();
- }else{
- locNo=param.getStartPoint();
- }
- LocMast locMast=locMastService.selectOne(new EntityWrapper<LocMast>()
- .eq("loc_sts","F")
- .eq("loc_no",locNo)
- .eq("barcode",param.getBarcode()));
- if(Cools.isEmpty(locMast)){
- return R.error("璇ュ簱浣嶄笉婊¤冻鍑哄簱鏉′欢"+param.getTargetPoint());
- }
- openService.taskCreate(param);
+ try{
+ List<TaskCreateParam> paramList = new ArrayList<>();
+ List<String> locNoList = new ArrayList<>();
+ for (TaskCreateParam param : param1) {
+ if (Cools.isEmpty(param)) {
+ return R.parse(BaseRes.PARAM);
+ }
+ if (Cools.isEmpty(param.getTaskNo())) {
+ return R.error("浠诲姟鍙穂taskNo]涓嶈兘涓虹┖");
+ }
+ if (Cools.isEmpty(param.getIoType())) {
+ return R.error("浠诲姟绫诲瀷[ioType]涓嶈兘涓虹┖");
+ }
+ if (Cools.isEmpty(param.getBarcode())) {
+ return R.error("鏉$爜[barcode]涓嶈兘涓虹┖");
+ }
+ String locNo=null;
+ if(param.getIoType()==1){
+ locNo=param.getTargetPoint();
+ }else{
+ locNo=param.getStartPoint();
+ }
+ try{
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+ .eq("loc_no", locNo).ne("loc_sts","X"));
+ if (Cools.isEmpty(locMast)){
+ log.error("搴撲綅鍙蜂笉瀛樺湪"+locNo);
+ return R.error("搴撲綅鍙蜂笉瀛樺湪"+locNo).add("搴撲綅鍙蜂笉瀛樺湪"+locNo);
+ }
+ }catch (Exception e){
+ log.error("搴撲綅鍙锋娴嬬▼搴忓紓甯�==銆嬪紓甯镐俊鎭�"+e);
+ return R.error("搴撲綅鍙锋娴嬬▼搴忓紓甯�").add("搴撲綅鍙锋娴嬬▼搴忓紓甯�==銆嬪紓甯镐俊鎭�"+e);
+ }
+ LocMast locMast=locMastService.selectOne(new EntityWrapper<LocMast>()
+ .eq("loc_sts","F")
+ .eq("loc_no",locNo)
+ .eq("barcode",param.getBarcode()));
+ if(Cools.isEmpty(locMast)){
+ return R.error("璇ュ簱浣嶄笉婊¤冻鍑哄簱鏉′欢"+param.getTargetPoint());
+ }
+ if (!locNoList.contains(locMast.getLocNo())){
+ locNoList.add(locMast.getLocNo());
+ paramList.add(param);
+ }else {
+ return R.error("璇ュ簱浣嶄笉鑳藉悓鏃朵笅鍙戜袱绗斾换鍔�"+locMast.getLocNo());
+ }
+ }
+ for (TaskCreateParam param : paramList){
+ openService.taskCreate(param);
+ }
+ }catch (Exception e){
+ log.error("浠诲姟涓嬪彂寮傚父"+e);
+ return R.error();
}
return R.ok();
}
diff --git a/src/main/java/com/zy/asrs/entity/BasDevp.java b/src/main/java/com/zy/asrs/entity/BasDevp.java
index 79125fd..7003eef 100644
--- a/src/main/java/com/zy/asrs/entity/BasDevp.java
+++ b/src/main/java/com/zy/asrs/entity/BasDevp.java
@@ -230,6 +230,10 @@
@TableField("agv_target_place")
private Integer agvTargetPlace;
+ @ApiModelProperty(value= "寮傚父鐮�")
+ @TableField("sta_err")
+ private Integer staErr;
+
public String getIoTime$(){
if (Cools.isEmpty(this.ioTime)){
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 00b8ea0..6b12b1a 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -169,9 +169,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);//灏嗛敊璇爜瀛樺叆澶囨敞瀛楁杩涜灞曠ず
@@ -213,13 +213,40 @@
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璇锋眰鍏ュ簱璐т綅鎺ュ彛"
@@ -233,7 +260,43 @@
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);
+ 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);
+ throw new CoolException("绔欑偣鍙峰紓甯�"+inSta.getStaNo());
+ }
+ }
+ } catch (Exception e){
+// log.error("鎵爜妫�娴嬬▼搴忓紓甯�"+inSta.getStaNo()+"寮傚父淇℃伅"+e);
+ // 閫�鍥�
+ 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);
+// }
+ continue;
+ }
//鏌ョ湅璇ュ簱浣嶆槸鍚︿负绌哄簱浣�
LocMast locMast=locMastService.selectOne(new EntityWrapper<LocMast>()
.eq("loc_sts","O")
@@ -288,87 +351,9 @@
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)0);
-// staProtocol.setStaNo(inSta.getStaNo().shortValue());
-// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-//
-// Thread.sleep(500);
staProtocol.setWorkNo((short)9999);
staProtocol.setStaNo(inSta.getStaNo().shortValue());
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index da37396..673a881 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -3,6 +3,7 @@
import com.core.common.Arith;
import com.core.common.Cools;
import com.core.common.SpringUtils;
+import com.zy.asrs.entity.LocMast;
import com.zy.core.model.CrnSlave;
import com.zy.core.properties.SlaveProperties;
@@ -384,4 +385,24 @@
String wcsLocNo = getWcsLocNo("01-01-01-01-01");
System.out.println(wcsLocNo);
}
+
+ public static Integer StaNoCrnNo(Integer staNo) {
+ switch (staNo){
+ case 100:
+ case 101:
+ return 1;
+ case 102:
+ case 103:
+ return 2;
+ case 104:
+ case 105:
+ return 3;
+ case 106:
+ case 107:
+ return 4;
+ default:
+ return 0;
+ }
+ }
+
}
diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
index a31159e..2fffdd3 100644
--- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -155,6 +155,9 @@
basDevp.setWrkNo(workNo.intValue());
basDevp.setAutoing(autoing?"Y":"N");
basDevp.setLoading(loading?"Y":"N");
+ if (!loading){
+ basDevp.setStaErr(0);
+ }
basDevp.setInEnable(inEnable?"Y":"N");
basDevp.setOutEnable(outEnable?"Y":"N");
basDevp.setLocType1((short) 0); // 楂樹綆绫诲瀷{0:鏈煡,1:浣庡簱浣�,2:楂樺簱浣峿
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index f03b158..c96e8a7 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -262,7 +262,7 @@
}
}
- OperateResultExOne<byte[]> resultAgvAndPlcOk = siemensS7Net.Read("DB102.0", (short) 30);
+ OperateResultExOne<byte[]> resultAgvAndPlcOk = siemensS7Net.Read("DB132.0", (short) 30);
if (resultAgvAndPlcOk.IsSuccess) {
for (int i = 0; i < staNoSize; i++) {
int sign =(i+2)/2-1;
@@ -274,7 +274,7 @@
staProtocol.setSiteId(siteId);
station.put(siteId, staProtocol);
}
- staProtocol.setAgvTargetPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6+4)); // 鍏佽鍙栬揣
+ staProtocol.setAgvTargetPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6+4)); // 鍏佽鍙栬揣
staProtocol.setAgvTargetPlace((short)0); // 鍏佽鏀捐揣
continue;
}
@@ -285,8 +285,18 @@
staProtocol.setSiteId(siteId);
station.put(siteId, staProtocol);
}
- staProtocol.setAgvTargetPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6)); // 鍏佽鍙栬揣
- staProtocol.setAgvTargetPlace(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6 + 2)); // 鍏佽鏀捐揣
+ try{
+ staProtocol.setAgvTargetPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6)); // 鍙栬揣瀹屾垚
+ if (staProtocol.getAgvTargetPick()!=0){
+ System.out.println(staProtocol.getAgvTargetPick());
+ }
+ staProtocol.setAgvTargetPlace(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6 + 2)); // 鏀捐揣瀹屾垚
+ if (staProtocol.getAgvTargetPlace()!=0){
+ System.out.println(staProtocol.getAgvTargetPlace());
+ }
+ }catch (Exception e){
+ log.error(""+e);
+ }
}
}
diff --git a/src/main/resources/mapper/BasDevpMapper.xml b/src/main/resources/mapper/BasDevpMapper.xml
index 06c6ac0..b9898f2 100644
--- a/src/main/resources/mapper/BasDevpMapper.xml
+++ b/src/main/resources/mapper/BasDevpMapper.xml
@@ -45,6 +45,7 @@
<result column="agv_target_pick" property="agvTargetPick" />
<result column="agv_start_place" property="agvStartPlace" />
<result column="agv_target_place" property="agvTargetPlace" />
+ <result column="sta_err" property="staErr" />
</resultMap>
--
Gitblit v1.9.1