From f307c16455bf1cfb11cd675d829c799e649fd05e Mon Sep 17 00:00:00 2001
From: 野心家 <1051256694@qq.com>
Date: 星期三, 14 五月 2025 13:00:40 +0800
Subject: [PATCH] 初始化
---
src/main/java/com/zy/asrs/controller/OpenController.java | 9 +
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 200 ++++++++++++++++++++++++++++++++++++++++++-------
src/main/java/com/zy/asrs/entity/param/StorageEscalationParam.java | 1
src/main/java/com/zy/common/utils/HttpHandler.java | 2
src/main/resources/application-prod.yml | 4
src/main/resources/application.yml | 8 +-
6 files changed, 184 insertions(+), 40 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 9a16f6c..87db6bc 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -445,7 +445,8 @@
//璁惧鐘舵�佹煡璇㈡帴鍙�
@GetMapping("/deviceStatus")
@Transactional
- public R deviceStatus() {
+ public HashMap<String, Object> deviceStatus() {
+ HashMap<String,Object> map=new HashMap<>();
List<CrnStatusParam> crnStatusParams=new ArrayList<>();
List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<>());
for (BasCrnp basCrnp:basCrnps){
@@ -461,7 +462,11 @@
}
crnStatusParams.add(crnStatusParam);
}
- return R.ok(crnStatusParams);
+
+ map.put("ReturnStatus",0);
+ map.put("ErrorMessage","");
+ map.put("data",crnStatusParams);
+ return map;
}
public static <T> List<T> convertListMapToListObject(List<HashMap<String, Object>> listMap, Class<T> clazz) throws Exception {
diff --git a/src/main/java/com/zy/asrs/entity/param/StorageEscalationParam.java b/src/main/java/com/zy/asrs/entity/param/StorageEscalationParam.java
index 35f0690..e8987e5 100644
--- a/src/main/java/com/zy/asrs/entity/param/StorageEscalationParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/StorageEscalationParam.java
@@ -14,4 +14,5 @@
private int StaType=1;
//搴撲綅绫诲瀷 1楂樺簱浣� 0浣庡簱浣�
private int LocType=0;
+ private int TerminalNo = 0;
}
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 ac3afb1..d862449 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -113,13 +113,15 @@
private CrnController crnController;
@Autowired
private SiteController siteController;
+ @Autowired
+ private TaskWrkLogService taskWrkLogService;
/**
* 鍫嗗灈鏈烘紨绀� ===>> 搴撲綅绉昏浆
*/
public synchronized void crnDemoOfLocMove1() {
try {
- List <BasCrnp> basCrnps =basCrnpService.selectList(new EntityWrapper<BasCrnp>());
+ List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>());
for (BasCrnp crn : basCrnps) {
if (!crn.getEmpIn().equals("1")) {
continue;
@@ -131,7 +133,7 @@
if (crnProtocol == null) {
continue;
}
- TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("crn_no",crn.getCrnNo()).eq("io_type",3));
+ TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("crn_no", crn.getCrnNo()).eq("io_type", 3));
if (taskWrk1 != null) {
continue;
}
@@ -141,7 +143,7 @@
LocMast sourceLoc = locMastService.queryDemoSourceLoc(crn.getCrnNo());
- LocMast loc = locMastService.queryDemoLoc(crn.getCrnNo(),sourceLoc.getLocType1());
+ LocMast loc = locMastService.queryDemoLoc(crn.getCrnNo(), sourceLoc.getLocType1());
if (null == sourceLoc || null == loc) {
continue;
}
@@ -152,7 +154,7 @@
// 淇濆瓨宸ヤ綔妗�
TaskWrk taskWrk = new TaskWrk();
taskWrk.setWrkNo(workNo);
- taskWrk.setTaskNo(workNo+"");//浠诲姟鍙�
+ taskWrk.setTaskNo(workNo + "");//浠诲姟鍙�
taskWrk.setWrkSts(11); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
taskWrk.setIoType(3); // 鍏ュ嚭搴撶姸鎬侊細 3.搴撴牸绉昏浇
taskWrk.setIoPri(13);
@@ -164,7 +166,7 @@
int res = taskWrkMapper.insert(taskWrk);
if (res == 0) {
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
- }else {
+ } else {
loc.setCtnKind(1);
locMastService.updateById(loc);
}
@@ -362,12 +364,13 @@
storageEscalationParam.setWCSStatus(1);
storageEscalationParam.setWCSErrorMessage(storageEscalationParam.getWCSErrorMessage() + errMsg);
}
- log.info("缁勬墭鍏ュ簱={}", storageEscalationParam);
storageEscalationParam.setBoxNo(BoxNo);
//鏄惁婊℃澘 1婊℃澘 0绌烘澘
- storageEscalationParam.setStaType(staProtocol.isEmptyMk()? 0:1);
+ storageEscalationParam.setStaType(staProtocol.isEmptyMk() ? 0 : 1);
//搴撲綅绫诲瀷 1楂樺簱浣� 0浣庡簱浣�
- storageEscalationParam.setLocType(staProtocol.isHigh()? 1:0);
+ storageEscalationParam.setLocType(staProtocol.isHigh() ? 1 : 0);
+ storageEscalationParam.setTerminalNo(staProtocol.getSiteId());
+ log.info("缁勬墭鍏ュ簱={}", storageEscalationParam);
String response = "";
Boolean success = false;
try {
@@ -389,7 +392,7 @@
// 鍒涙柊涓�涓叆搴撳伐浣滄。
TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo());
if (Cools.isEmpty(taskWrk)) {
- taskWrk = createTask1(result, BoxNo);
+ taskWrk = createTask1(result, BoxNo,staProtocol.getSiteId());
if (Cools.isEmpty(taskWrk)) {
log.error("搴撲綅寮傚父锛屽簱浣嶅彿锛�={}", taskWrk.getOriginTargetPoint());
} else {
@@ -442,6 +445,153 @@
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
}
}
+ } 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);
+ }
+ } finally {
+ apiLogService.save("wms璇锋眰鍏ュ簱璐т綅鎺ュ彛"
+ , wmsUrl + inboundTaskApplyPath
+ , null
+ , "127.0.0.1"
+ , JSON.toJSONString(storageEscalationParam)
+ , response
+ , success
+ );
+ }
+ log.info("鍏ュ簱璇锋眰鍙傛暟=" + JSON.toJSONString(BoxNo));
+ log.info("鍏ュ簱璇锋眰杩斿洖鍙傛暟=" + JSON.toJSONString(response));
+ }
+ }
+ }
+ } catch (Exception e) {
+ log.error("generateStoreWrkFile e", e);
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ }
+ }
+
+ //鎷f枡鍥炲簱
+ public synchronized void PickingAndReturningToTheWarehouse() throws IOException, InterruptedException {
+ try {
+ // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ // 閬嶅巻鍏ュ簱鍙�
+ for (DevpSlave.Sta inSta : devp.getPickSta()) {
+ StorageEscalationParam storageEscalationParam = new StorageEscalationParam();
+ // 鑾峰彇鍏ュ簱绔欎俊鎭�
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ Short workNo = staProtocol.getWorkNo();
+ // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+ if (staProtocol.isAutoing() && staProtocol.isLoading()
+ && staProtocol.isInEnable()
+ && staProtocol.isPakMk()) {
+ // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+ String BoxNo = "";
+ if(!staProtocol.isEmptyMk()&&staProtocol.getWorkNo()<9990){
+ TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("task_no", workNo));
+
+ if (!Cools.isEmpty(taskWrk1)) {
+ BoxNo = taskWrk1.getBarcode();
+ } else {
+ TaskWrkLog taskWrkLog = taskWrkLogService.selectOne(new EntityWrapper<TaskWrkLog>().eq("task_no", workNo).orderBy("modi_time", false));
+ if (taskWrkLog != null) {
+ BoxNo = taskWrkLog.getBarcode();
+ }
+ }
+ }
+ log.info("缁勬墭鍏ュ簱={}", storageEscalationParam);
+ storageEscalationParam.setBoxNo(BoxNo);
+ //鏄惁婊℃澘 1婊℃澘 0绌烘澘
+ storageEscalationParam.setStaType(staProtocol.isEmptyMk() ? 0 : 1);
+ //搴撲綅绫诲瀷 1楂樺簱浣� 0浣庡簱浣�
+ storageEscalationParam.setLocType(staProtocol.isHigh() ? 1 : 0);
+ storageEscalationParam.setTerminalNo(staProtocol.getSiteId());
+ String response = "";
+ Boolean success = false;
+ try {
+ response = new HttpHandler.Builder()
+ .setUri(wmsUrl)
+ .setPath(inboundTaskApplyPath)
+ .setJson(JSON.toJSONString(storageEscalationParam))
+ .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())) {
+ Result result = JSON.parseObject(jsonObject.get("Result").toString(), Result.class);
+ // 鍒涙柊涓�涓叆搴撳伐浣滄。
+ TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo());
+ if (Cools.isEmpty(taskWrk)) {
+ taskWrk = createTask1(result, BoxNo,staProtocol.getSiteId());
+ 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)) {
+ 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) {
+
+ }
+ }
+ } else {
+ staProtocol.setWorkNo((short) 9991);
+ staProtocol.setStaNo(inSta.getBackSta().shortValue());
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ }
+
+ } else {
+ staProtocol.setWorkNo((short) 9991);
+ staProtocol.setStaNo(inSta.getBackSta().shortValue());
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ }
+
} catch (Exception e) {
log.error("璇锋眰鍏ュ簱璋冪敤鎺ュ彛澶辫触");
log.error("寮傚父淇℃伅鎵撳嵃锛�" + e);
@@ -968,18 +1118,9 @@
LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
//鍒ゆ柇鍏跺簱浣嶆槸鍚︿负娣卞簱浣嶏紝濡傛灉涓烘繁搴撲綅鎵惧叾娴呭簱浣嶆槸閮芥湁璐�
- if (locMast.getRow1() == 1 || locMast.getRow1() == 5) {
+ if (locMast.getRow1() == 8 || locMast.getRow1() == 5) {
LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>()
.eq("row1", (locMast.getRow1() + 1))
- .eq("bay1", locMast.getBay1())
- .eq("lev1", locMast.getLev1()).eq("loc_sts", "F"));
- if (!Cools.isEmpty(locMast1)) {
- log.info(locMast.getLocNo() + "鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣");
- continue;
- }
- } else if (locMast.getRow1() == 4 || locMast.getRow1() == 8) {
- LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>()
- .eq("row1", (locMast.getRow1() - 1))
.eq("bay1", locMast.getBay1())
.eq("lev1", locMast.getLev1()).eq("loc_sts", "F"));
if (!Cools.isEmpty(locMast1)) {
@@ -1013,11 +1154,11 @@
if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
break;
}
- int storeCount = basDevpService.getStoreCount();
- if (storeCount >= maxCount) {
- log.error("杈撻�佺嚎鏆傚瓨鏁拌揪鍒颁笂闄恵}", storeCount);
- break;
- }
+// int storeCount = basDevpService.getStoreCount();
+// if (storeCount >= maxCount) {
+// log.error("杈撻�佺嚎鏆傚瓨鏁拌揪鍒颁笂闄恵}", storeCount);
+// break;
+// }
// 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
@@ -1627,7 +1768,7 @@
return response;
}
- private TaskWrk createTask1(Result result, String barcode) {
+ private TaskWrk createTask1(Result result, String barcode,Integer staNo) {
String locNo = Utils.Fusion(result.getRow(), result.getFloor(), result.getColumn());
@@ -1644,12 +1785,9 @@
LocMast locMast = locMastService.selectByLocNo(locNo);
taskWrk.setCrnNo(locMast.getCrnNo());
taskWrk.setTargetPoint(locNo);
- taskWrk.setStartPoint("116");
- if (result.getAlley().equals("1")) {
- taskWrk.setCrnNo(1);
- } else {
- taskWrk.setCrnNo(2);
- }
+ taskWrk.setStartPoint(staNo+"");
+ taskWrk.setCrnNo(Integer.valueOf(result.getAlley()));//鍫嗗灈鏈哄彿
+
if (taskWrk.getIoType() == 1) {
taskWrk.setWrkSts(2);
if (!Cools.isEmpty(taskWrk.getTargetPoint())) {
diff --git a/src/main/java/com/zy/common/utils/HttpHandler.java b/src/main/java/com/zy/common/utils/HttpHandler.java
index b305399..438ea88 100644
--- a/src/main/java/com/zy/common/utils/HttpHandler.java
+++ b/src/main/java/com/zy/common/utils/HttpHandler.java
@@ -15,7 +15,7 @@
*/
public class HttpHandler {
- private static final Integer DEFAULT_TIMEOUT_SECONDS = 5;
+ private static final Integer DEFAULT_TIMEOUT_SECONDS = 10;
private static final MediaType MEDIA_TYPE = MediaType.parse("application/json");
private String uri;
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index 13b76ad..bcfb659 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -80,13 +80,13 @@
port: 102
crnOutStn[0]: #鍫嗗灈鏈哄嚭搴撶珯鐐�--1F杈撻�佺嚎 鏀捐揣鍙�
staNo: 1056
- row: 6
+ row: 7
bay: 1
lev: 1
devpPlcId: ${wcs-slave.devp[2].id}
crnInStn[0]: #鍫嗗灈鏈哄叆搴撶珯鐐�1--1F杈撻�佺嚎 鍙栬揣鍙�
staNo: 1058
- row: 7
+ row: 6
bay: 1
lev: 1
backSta: 106
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index cc93d3e..c6377ff 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -53,14 +53,14 @@
#url: 10.32.53.195:8080
# WMS绯荤粺ip
# url: 10.210.157.109:8090
- url: 10.10.10.222:2410
+ url: 192.168.61.230:8078
# 鍏ュ簱浠诲姟鐢宠鎺ュ彛
#inboundTaskApplyPath: api/InterFace/inboundTaskApply
- inboundTaskApplyPath: api/StereoscopicCallBack/AcceptTaskStatus
+ inboundTaskApplyPath: other/api/wcs/allocation
# inboundTaskApplyPath: open/asrs/inboundTaskApply
# 浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
- taskStatusFeedbackPath: api/StereoscopicCallBack/TaskExecCallback
+ taskStatusFeedbackPath: other/api/wcs/taskStart
# 浠诲姟瀹屾垚缁撴潫鏃讹紝WCS鍥炶皟WMS
- TaskExecCallback: api/StereoscopicCallBack/TaskExecFinishedCallback
+ TaskExecCallback: other/api/wcs/taskFinish
# 绉诲簱鐢宠鎺ュ彛
movePath: api/InterFace/get_InterFace_TestStorage
--
Gitblit v1.9.1