From d65679fefe52fc2bf2435825c65aec3a329e3b9e Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 22 四月 2025 14:40:21 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/WorkService.java | 10
version/立库 WMS接口文档 2024 0807.docx | 0
src/main/java/com/zy/asrs/task/TaskLogScheduler.java | 76 +---
src/main/java/com/zy/asrs/controller/OpenController.java | 85 +++-
src/main/java/com/zy/asrs/entity/param/TaskCreateInParam.java | 32 +
src/main/java/com/zy/asrs/utils/NotifyUtils.java | 100 +++++
src/main/java/com/zy/asrs/task/NotifyScheduler.java | 149 ++++++++
src/main/java/com/zy/asrs/domain/enums/RedisKeyType.java | 13
src/main/java/com/zy/asrs/controller/WorkController.java | 18 -
src/main/java/com/zy/asrs/service/OpenService.java | 3
src/main/java/com/zy/asrs/domain/dto/NotifyDto.java | 49 ++
src/main/java/com/zy/common/config/RedisConfig.java | 3
src/main/java/com/zy/asrs/domain/enums/NotifyMsgType.java | 40 ++
src/main/java/com/zy/common/utils/RedisUtil.java | 1
src/main/java/com/zy/asrs/utils/Utils.java | 89 -----
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 207 -----------
src/main/java/com/zy/asrs/entity/param/TaskCreateParam.java | 1
src/main/java/com/zy/asrs/controller/TaskWrkController.java | 75 ---
src/main/java/com/zy/core/MainProcess.java | 3
src/main/java/com/zy/asrs/domain/dto/NotifyCustomDataDto.java | 14
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 41 ++
src/main/resources/application.yml | 8
22 files changed, 534 insertions(+), 483 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 2a3e840..13cef9e 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -57,6 +57,17 @@
add("ea1f0459efc02a79f046f982767939ae");
}};
+ private void auth(String appkey, Object obj, HttpServletRequest request) {
+ log.info("{}鎺ュ彛琚闂紱appkey:{}锛涜姹傛暟鎹細{}", request.getServletPath(), appkey, JSON.toJSONString(obj));
+ request.setAttribute("cache", obj);
+ if (Cools.isEmpty(appkey)) {
+ throw new CoolException("璁よ瘉澶辫触锛岃纭appkey鏃犺锛�");
+ }
+ if (!APP_KEY_LIST.contains(appkey)) {
+ throw new CoolException("璁よ瘉澶辫触锛岃纭appkey鏃犺锛�");
+ }
+ }
+
//鍒涘缓浠诲姟
@PostMapping("/taskCreate")
@Transactional
@@ -81,26 +92,26 @@
return R.error("鏉$爜[barcode]涓嶈兘涓虹┖");
}
String locNo=null;
- if(param.getIoType()==1){
- locNo=param.getTargetPoint();
- }else{
- locNo=param.getStartPoint();
+ if (param.getIoType() == 1) {
+ locNo = param.getTargetPoint();
+ } else {
+ locNo = param.getStartPoint();
}
- try{
+ 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);
+ .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);
+ } 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()));
+ 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());
}
@@ -108,12 +119,41 @@
locNoList.add(locMast.getLocNo());
paramList.add(param);
}else {
- return R.error("璇ュ簱浣嶄笉鑳藉悓鏃朵笅鍙戜袱绗斾换鍔�"+locMast.getLocNo());
+ return R.error("璇ュ簱浣嶄笉鑳藉悓鏃朵笅鍙戜袱绗斾换鍔�" + locMast.getLocNo());
}
}
for (TaskCreateParam param : paramList){
openService.taskCreate(param);
}
+ }catch (Exception e){
+ log.error("浠诲姟涓嬪彂寮傚父"+e);
+ return R.error();
+ }
+ return R.ok();
+ }
+
+ //鍒涘缓鍏ュ簱浠诲姟
+ @PostMapping("/taskCreateIn")
+ @Transactional
+ public R taskCreateIn(@RequestHeader String appkey,
+ @RequestBody TaskCreateInParam param,
+ HttpServletRequest request) {
+ auth(appkey, param, request);
+ try{
+ 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]涓嶈兘涓虹┖");
+ }
+
+ openService.taskCreateIn(param);
}catch (Exception e){
log.error("浠诲姟涓嬪彂寮傚父"+e);
return R.error();
@@ -147,17 +187,6 @@
List<CommandInfo> commandInfos = commandInfoService.selectByTaskNo(taskNo);
return R.ok().add(commandInfos);
- }
-
- private void auth(String appkey, Object obj, HttpServletRequest request) {
- log.info("{}鎺ュ彛琚闂紱appkey:{}锛涜姹傛暟鎹細{}", request.getServletPath(), appkey, JSON.toJSONString(obj));
- request.setAttribute("cache", obj);
- if (Cools.isEmpty(appkey)) {
- throw new CoolException("璁よ瘉澶辫触锛岃纭appkey鏃犺锛�");
- }
- if (!APP_KEY_LIST.contains(appkey)) {
- throw new CoolException("璁よ瘉澶辫触锛岃纭appkey鏃犺锛�");
- }
}
//浠诲姟涓嬪彂鎺ュ彛
diff --git a/src/main/java/com/zy/asrs/controller/TaskWrkController.java b/src/main/java/com/zy/asrs/controller/TaskWrkController.java
index b9b6763..7a21695 100644
--- a/src/main/java/com/zy/asrs/controller/TaskWrkController.java
+++ b/src/main/java/com/zy/asrs/controller/TaskWrkController.java
@@ -6,12 +6,11 @@
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.core.common.DateUtils;
-import com.core.exception.CoolException;
+import com.zy.asrs.domain.dto.NotifyCustomDataDto;
+import com.zy.asrs.domain.enums.NotifyMsgType;
import com.zy.asrs.domain.enums.TaskStatusType;
-import com.zy.asrs.entity.CommandInfo;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.TaskWrk;
-import com.zy.asrs.entity.param.TaskOverToWms;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.CommandInfoService;
import com.zy.asrs.service.LocMastService;
@@ -20,6 +19,7 @@
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.common.R;
+import com.zy.asrs.utils.NotifyUtils;
import com.zy.common.utils.HttpHandler;
import com.zy.common.web.BaseController;
import lombok.extern.slf4j.Slf4j;
@@ -35,21 +35,18 @@
@Value("${wms.url}")
private String wmsUrl;
-
@Autowired
private TaskWrkService taskWrkService;
-
@Autowired
private CommandInfoService commandInfoService;
-
@Autowired
private LocMastService locMastService;
-
@Value("${wms.TaskExecCallback}")
private String TaskExecCallback;
-
@Autowired
private ApiLogService apiLogService;
+ @Autowired
+ private NotifyUtils notifyUtils;
@RequestMapping(value = "/taskWrk/{wrkNo}/auth")
@ManagerAuth
@@ -179,9 +176,9 @@
if (Cools.isEmpty(taskWrk) || taskWrk.getStatus()>=3){
return R.error("宸插畬缁撴垨宸插彇娑�") ;
}
- LocMast locMast=new LocMast();
+ LocMast locMast = new LocMast();
if(taskWrk.getIoType()==1){//鍏ュ簱浠诲姟瀹屾垚搴撲綅涓篎
- locMast=locMastService.selectByLocNo(taskWrk.getTargetPoint());
+ locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
if(Cools.isEmpty(locMast)){
R.error("娌℃湁鎵惧埌璇ュ簱浣�") ;
}
@@ -189,14 +186,14 @@
locMast.setModiTime(new Date());
locMast.setBarcode(taskWrk.getBarcode());
}else if(taskWrk.getIoType()==2){//鍑哄簱浠诲姟瀹屾垚搴撲綅涓篛
- locMast=locMastService.selectByLocNo(taskWrk.getStartPoint());
+ locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
if(Cools.isEmpty(locMast)){
R.error("娌℃湁鎵惧埌璇ュ簱浣�") ;
}
locMast.setLocSts("O");
locMast.setModiTime(new Date());
}else if(taskWrk.getIoType()==3){
- locMast=locMastService.selectByLocNo(taskWrk.getStartPoint());
+ locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
if(Cools.isEmpty(locMast)){
R.error("娌℃湁鎵惧埌璇ュ簱浣�") ;
}
@@ -212,34 +209,7 @@
locMast.setBarcode(taskWrk.getBarcode());
}
- String response="";
- try{
- HashMap<String, Object> headParam = new HashMap<>();
- headParam.put("TaskNo",taskWrk.getTaskNo());
- headParam.put("Result",1);
-// headParam.put("reportTime",new Date());
- log.info("wcs鎵嬪姩瀹屾垚浠诲姟涓婃姤wms={}", taskWrk);
- response = new HttpHandler.Builder()
- // .setHeaders(headParam)
- .setUri(wmsUrl)
- .setPath(TaskExecCallback)
- .setJson(JSON.toJSONString(headParam))
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- apiLogService.save("wcs鎵嬪姩瀹屾垚浠诲姟涓婃姤wms"
- ,wmsUrl+TaskExecCallback
- ,null
- ,"127.0.0.1"
- ,JSON.toJSONString(headParam)
- ,response
- ,true
- );
- }catch (Exception e){
- log.error("wcs鎵嬪姩瀹屾垚浠诲姟涓婃姤wms澶眥},杩斿洖鍊�={}", taskWrk,response);
-// throw new CoolException(e);
- }
locMastService.updateById(locMast);
taskWrk.setStatus(7);//鎵嬪姩瀹屾垚浠诲姟
taskWrk.setModiTime(new Date());
@@ -288,34 +258,7 @@
}catch (Exception e){
taskWrk.setModiUser(9999L);//鎿嶄綔鍛�
}
- String response="";
- try{
- HashMap<String, Object> headParam = new HashMap<>();
- headParam.put("TaskNo",taskWrk.getTaskNo());
- headParam.put("Result",0);
-// headParam.put("reportTime",new Date());
- log.info("wcs鎵嬪姩鍙栨秷浠诲姟涓婃姤wm={}", taskWrk);
- response = new HttpHandler.Builder()
- // .setHeaders(headParam)
- .setUri(wmsUrl)
- .setPath(TaskExecCallback)
- .setJson(JSON.toJSONString(headParam))
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- apiLogService.save("wcs鎵嬪姩鍙栨秷浠诲姟涓婃姤wms"
- ,wmsUrl+TaskExecCallback
- ,null
- ,"127.0.0.1"
- ,JSON.toJSONString(headParam)
- ,response
- ,true
- );
- }catch (Exception e){
- log.error("wcs鎵嬪姩鍙栨秷浠诲姟涓婃姤wms澶辫触={},杩斿洖鍊�={}", taskWrk,response);
-// throw new CoolException(e);
- }
taskWrk.setCompleteTime(now);//瀹岀粨鏃堕棿
taskWrkService.updateById(taskWrk);
return R.ok();
diff --git a/src/main/java/com/zy/asrs/controller/WorkController.java b/src/main/java/com/zy/asrs/controller/WorkController.java
index 7bb57fc..4dbb68e 100644
--- a/src/main/java/com/zy/asrs/controller/WorkController.java
+++ b/src/main/java/com/zy/asrs/controller/WorkController.java
@@ -1,12 +1,8 @@
package com.zy.asrs.controller;
-import com.core.annotations.ManagerAuth;
-import com.core.common.R;
import com.zy.asrs.service.WorkService;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@@ -19,19 +15,5 @@
@Autowired
private WorkService workService;
-
- @RequestMapping("/hand/control/wrkMast")
- @ManagerAuth(memo = "鎵嬪姩澶勭悊宸ヤ綔妗�")
- public R handControlWrkMast(@RequestParam String workNo,
- @RequestParam Integer type){
- if (type == 1) {
- workService.completeWrkMast(workNo, getUserId());
- return R.ok("浠诲姟宸插畬鎴�");
- } else if (type == 2) {
- workService.cancelWrkMast(workNo, getUserId());
- return R.ok("浠诲姟宸插彇娑�");
- }
- return R.ok();
- }
}
diff --git a/src/main/java/com/zy/asrs/domain/dto/NotifyCustomDataDto.java b/src/main/java/com/zy/asrs/domain/dto/NotifyCustomDataDto.java
new file mode 100644
index 0000000..92a2c58
--- /dev/null
+++ b/src/main/java/com/zy/asrs/domain/dto/NotifyCustomDataDto.java
@@ -0,0 +1,14 @@
+package com.zy.asrs.domain.dto;
+
+import lombok.Data;
+
+@Data
+public class NotifyCustomDataDto {
+
+ private String uri;
+
+ private String path;
+
+ private String data;
+
+}
diff --git a/src/main/java/com/zy/asrs/domain/dto/NotifyDto.java b/src/main/java/com/zy/asrs/domain/dto/NotifyDto.java
new file mode 100644
index 0000000..1c69e23
--- /dev/null
+++ b/src/main/java/com/zy/asrs/domain/dto/NotifyDto.java
@@ -0,0 +1,49 @@
+package com.zy.asrs.domain.dto;
+
+import lombok.Data;
+
+@Data
+public class NotifyDto {
+
+ private Long id;
+
+ //閫氱煡绫诲瀷
+ private String notifyType;
+
+ //璁惧鍙�
+ private Integer device;
+
+ //宸ヤ綔鍙�
+ private String taskNo;
+
+ //涓婄骇绯荤粺宸ヤ綔鍙�
+ private String superTaskNo;
+
+ //娑堟伅绫诲瀷
+ private String msgType;
+
+ //娑堟伅鎻忚堪
+ private String msgDesc;
+
+ //娑堟伅鏁版嵁
+ private String data;
+
+ //鍙戦�佽嚜瀹氫箟娑堟伅鏁版嵁锛岄粯璁ゆ爣鍑嗘牸寮�
+ private Boolean sendCustomData = false;
+
+ //鑷畾涔夋秷鎭暟鎹牸寮�
+ private NotifyCustomDataDto customData;
+
+ //澶辫触閲嶈瘯娆℃暟
+ private Integer failTimes = 3;
+
+ //閲嶈瘯娆℃暟
+ private Integer retryTimes = 0;
+
+ //閲嶈瘯闂撮殧榛樿30s
+ private Integer retryTime = 30;
+
+ //涓婃閲嶈瘯鏃堕棿
+ private Long lastRetryTime = 0L;
+
+}
diff --git a/src/main/java/com/zy/asrs/domain/enums/NotifyMsgType.java b/src/main/java/com/zy/asrs/domain/enums/NotifyMsgType.java
new file mode 100644
index 0000000..94e316e
--- /dev/null
+++ b/src/main/java/com/zy/asrs/domain/enums/NotifyMsgType.java
@@ -0,0 +1,40 @@
+package com.zy.asrs.domain.enums;
+
+public enum NotifyMsgType {
+ //浠诲姟
+ TASK_COMPLETE("task_complete", "浠诲姟瀹屾垚"),
+ TASK_CANCEL("task_cancel", "浠诲姟鍙栨秷"),
+ ;
+
+ public String flag;
+ public String desc;
+
+ NotifyMsgType(String flag, String desc) {
+ this.flag = flag;
+ this.desc = desc;
+ }
+
+ public static NotifyMsgType get(String flag) {
+ if (null == flag) {
+ return null;
+ }
+ for (NotifyMsgType type : NotifyMsgType.values()) {
+ if (type.flag.equals(flag)) {
+ return type;
+ }
+ }
+ return null;
+ }
+
+ public static NotifyMsgType get(NotifyMsgType type) {
+ if (null == type) {
+ return null;
+ }
+ for (NotifyMsgType type2 : NotifyMsgType.values()) {
+ if (type2 == type) {
+ return type2;
+ }
+ }
+ return null;
+ }
+}
diff --git a/src/main/java/com/zy/asrs/domain/enums/RedisKeyType.java b/src/main/java/com/zy/asrs/domain/enums/RedisKeyType.java
new file mode 100644
index 0000000..d096fd3
--- /dev/null
+++ b/src/main/java/com/zy/asrs/domain/enums/RedisKeyType.java
@@ -0,0 +1,13 @@
+package com.zy.asrs.domain.enums;
+
+public enum RedisKeyType {
+
+ QUEUE_TASK("queue_task_"),
+ ;
+
+ public String key;
+
+ RedisKeyType(String key) {
+ this.key = key;
+ }
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/TaskCreateInParam.java b/src/main/java/com/zy/asrs/entity/param/TaskCreateInParam.java
new file mode 100644
index 0000000..15e3f76
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/TaskCreateInParam.java
@@ -0,0 +1,32 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+@Data
+public class TaskCreateInParam {
+
+ //浠诲姟鍙�
+ private String taskNo;
+
+ //浠诲姟绫诲瀷
+ private Integer ioType;
+
+ //浼樺厛绾�
+ private Integer taskPriority;
+
+ //缁堢偣
+ private String targetPoint;
+
+ //鏄惁绌烘墭鐩� Y:鏄� N锛氬惁
+ private String emptyContainer;
+
+ //鏉$爜
+ private String barcode;
+
+ //澶囨敞
+ private String memo;
+
+ //鍫嗗灈鏈�
+ private Integer crn;
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/TaskCreateParam.java b/src/main/java/com/zy/asrs/entity/param/TaskCreateParam.java
index 0d5534d..4e6930e 100644
--- a/src/main/java/com/zy/asrs/entity/param/TaskCreateParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/TaskCreateParam.java
@@ -1,6 +1,5 @@
package com.zy.asrs.entity.param;
-import io.swagger.models.auth.In;
import lombok.Data;
@Data
diff --git a/src/main/java/com/zy/asrs/service/OpenService.java b/src/main/java/com/zy/asrs/service/OpenService.java
index 19d5500..a997979 100644
--- a/src/main/java/com/zy/asrs/service/OpenService.java
+++ b/src/main/java/com/zy/asrs/service/OpenService.java
@@ -1,5 +1,6 @@
package com.zy.asrs.service;
+import com.zy.asrs.entity.param.TaskCreateInParam;
import com.zy.asrs.entity.param.TaskCreateParam;
import java.util.HashMap;
@@ -8,4 +9,6 @@
//鍒涘缓浠诲姟
HashMap<String,Object> taskCreate(TaskCreateParam param);
+ HashMap<String,Object> taskCreateIn(TaskCreateInParam param);
+
}
diff --git a/src/main/java/com/zy/asrs/service/WorkService.java b/src/main/java/com/zy/asrs/service/WorkService.java
index 197a32a..e52ff2a 100644
--- a/src/main/java/com/zy/asrs/service/WorkService.java
+++ b/src/main/java/com/zy/asrs/service/WorkService.java
@@ -2,14 +2,4 @@
public interface WorkService {
- /**
- * 鎵嬪姩瀹屾垚宸ヤ綔妗�
- */
- void completeWrkMast(String workNo, Long userId);
-
- /**
- * 鎵嬪姩鍙栨秷宸ヤ綔妗�
- */
- void cancelWrkMast(String workNo, Long userId);
-
}
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 60bf3cd..cd5f403 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -5,6 +5,7 @@
import com.zy.asrs.domain.enums.TaskStatusType;
import com.zy.asrs.domain.enums.WorkNoType;
import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.TaskCreateInParam;
import com.zy.asrs.entity.param.TaskCreateParam;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
@@ -56,7 +57,7 @@
if (param.getIoType() == 1) {
taskWrk.setWrkSts(1);
if (!Cools.isEmpty(param.getTargetPoint())) {
- taskWrk.setTargetPoint(Utils.getWcsLocNo(param.getTargetPoint()));//缁堢偣
+ taskWrk.setTargetPoint(param.getTargetPoint());//缁堢偣
taskWrk.setOriginTargetPoint(param.getTargetPoint());
}
@@ -90,4 +91,42 @@
return map;
}
+ @Override
+ public HashMap<String, Object> taskCreateIn(TaskCreateInParam param) {
+ HashMap<String, Object> map = new HashMap<>();
+ TaskWrk taskWrk = taskWrkService.selectByTaskNo(param.getTaskNo());
+ if (taskWrk != null) {
+ map.put("Code","0");
+ map.put("Msg", param.getTaskNo() + "浠诲姟宸茬粡鐢熸垚锛�");
+ return map;
+ }
+
+ Date now = new Date();
+ taskWrk = new TaskWrk();
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", param.getTargetPoint()));
+ int workNo1 = commonService.getWorkNo(WorkNoType.PAKIN.type);//鑾峰彇鍏ュ簱宸ヤ綔鍙�
+ taskWrk.setTaskNo(param.getTaskNo());//浠诲姟鍙�
+ taskWrk.setWrkNo(workNo1);
+ taskWrk.setStatus(TaskStatusType.RECEIVE.id);//浠诲姟鐘舵�侊細鎺ユ敹
+ taskWrk.setCreateTime(now);
+ taskWrk.setIoType(param.getIoType());//浠诲姟绫诲瀷
+ taskWrk.setIoPri(param.getTaskPriority());//浼樺厛绾�
+ taskWrk.setBarcode(param.getBarcode());//鏉$爜
+ taskWrk.setCrnNo(locMast.getCrnNo());
+ taskWrk.setWrkSts(1);
+ taskWrk.setTargetPoint(param.getTargetPoint());//缁堢偣
+ taskWrk.setOriginTargetPoint(param.getTargetPoint());
+ if (!Cools.isEmpty(param.getMemo())) {
+ taskWrk.setMemo(param.getMemo());//澶囨敞
+ }
+
+ if (!taskWrkService.insert(taskWrk)) {
+ map.put("Code", "0");
+ map.put("Msg", param.getTaskNo() + "鍒涘缓浠诲姟澶辫触锛�");
+ return map;
+ }
+ map.put("Code","1");
+ map.put("Msg","ok");
+ return map;
+ }
}
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index 4df73f7..99a0306 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -1,211 +1,12 @@
package com.zy.asrs.service.impl;
-import com.alibaba.fastjson.JSON;
-import com.core.common.Cools;
-import com.core.common.DateUtils;
-import com.core.exception.CoolException;
-import com.zy.asrs.entity.LocMast;
-import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.service.*;
-import com.zy.common.utils.HttpHandler;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.concurrent.TimeUnit;
+import com.zy.asrs.service.WorkService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
@Slf4j
@Service
public class WorkServiceImpl implements WorkService {
- @Autowired
- private WrkMastService wrkMastService;
- @Autowired
- private LocMastService locMastService;
- @Autowired
- private WaitPakinService waitPakinService;
- @Autowired
- private WrkMastLogService wrkMastLogService;
- @Autowired
- private WrkDetlLogService wrkDetlLogService;
- @Autowired
- private WrkDetlService wrkDetlService;
- @Autowired
- private ApiLogService apiLogService;
- @Value("${wms.url}")
- private String wmsUrl;
- @Value("${wms.inboundTaskApplyPath}")
- private String inboundTaskApplyPath;
- @Value("${wms.movePath}")
- private String movePath;
- @Value("${wms.taskStatusFeedbackPath}")
- private String taskStatusFeedbackPath;
-
- @Override
- @Transactional
- public void completeWrkMast(String workNo, Long userId) {
- WrkMast wrkMast = wrkMastService.selectById(workNo);
- if (Cools.isEmpty(wrkMast)) {
- throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
- }
- if (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 14) {
- throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
- }
- // 鍏ュ簱 + 搴撲綅杞Щ
- if (wrkMast.getWrkSts() < 4 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType() == 11)) {
- wrkMast.setWrkSts(4L);
- // 鍑哄簱
- } else if (wrkMast.getWrkSts() > 10) {
- wrkMast.setWrkSts(14L);
- }
- Date now = new Date();
- wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true));
- wrkMast.setCrnEndTime(now);
- wrkMast.setModiTime(now);
- wrkMast.setModiUser(userId);
- // 瀹屾垚鎿嶄綔浜哄憳璁板綍
- wrkMast.setManuType("鎵嬪姩瀹屾垚");
- if (!wrkMastService.updateById(wrkMast)) {
- throw new CoolException("淇敼宸ヤ綔妗eけ璐�");
- }
-
- HashMap<String,Object> headParam = new HashMap<>();
- headParam.put("TaskNo",wrkMast.getTaskNo());
- headParam.put("Result",0);//瀹屾垚
-
- try {
- String response;
- log.error("wcs鎵嬪姩瀹岀粨浠诲姟涓婃姤wms={}", wrkMast);
-
- response = new HttpHandler.Builder()
- // .setHeaders(headParam)
- .setUri(wmsUrl)
- .setPath(taskStatusFeedbackPath)
- .setJson(JSON.toJSONString(headParam))
- .build()
- .doPost();
- apiLogService.save("wcs鎵嬪姩瀹屾垚浠诲姟涓婃姤wms"
- , wmsUrl + taskStatusFeedbackPath
- , null
- , "127.0.0.1"
- , JSON.toJSONString(headParam)
- , response
- , true
- );
- } catch (Exception e) {
- log.error("wcs鎵嬪姩瀹岀粨浠诲姟涓婃姤wms澶辫触={}", wrkMast);
- log.error("wcs鎵嬪姩瀹岀粨浠诲姟涓婃姤wms澶辫触,鎶ラ敊淇℃伅锛�", e);
-// throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触");
- }
- }
-
- @Override
- @Transactional
- public void cancelWrkMast(String workNo, Long userId) {
- Date now = new Date();
- WrkMast wrkMast = wrkMastService.selectById(workNo);
-
- String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣�
- String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
- // 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級
- if (wrkMast.getWrkSts() < 4) {
- locNo = wrkMast.getLocNo();
- locSts = "O";
-
- // 搴撲綅杞Щ
- if (wrkMast.getIoType() == 11) {
- // 搴撲綅杞Щ锛氭簮搴撲綅
- LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
- if (Cools.isEmpty(locMast)) {
- throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛屾簮搴撲綅涓嶅瓨鍦�:" + wrkMast.getSourceLocNo());
- }
- locMast.setLocSts(wrkMast.getFullPlt().equalsIgnoreCase("N") ? "D" : "F");
- locMast.setModiTime(now);
- locMast.setModiUser(userId);
- locMastService.updateById(locMast);
- }
- // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
- } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14) {
- locNo = wrkMast.getSourceLocNo();
- // 鍑哄簱 ===>> F.鍦ㄥ簱
- if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
- locSts = "F";
- // 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
- } else if (wrkMast.getIoType() == 110) {
- locSts = "D";
- // 搴撲綅杞Щ ===>> D.绌烘《/绌烘爤鏉�
- } else if (wrkMast.getIoType() == 11) {
- locSts = wrkMast.getFullPlt().equalsIgnoreCase("N") ? "D" : "F";
- // 搴撲綅杞Щ锛氱洰鏍囧簱浣�
- LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
- if (Cools.isEmpty(locMast)) {
- throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛岀洰鏍囧簱浣嶄笉瀛樺湪:" + wrkMast.getSourceLocNo());
- }
- locMast.setLocSts("O");
- locMast.setModiTime(now);
- locMast.setModiUser(userId);
- locMastService.updateById(locMast);
- }
- } else {
- throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
- }
- // 鍙栨秷鎿嶄綔浜哄憳璁板綍
- wrkMast.setManuType("鎵嬪姩鍙栨秷");
- wrkMast.setModiUser(userId);
- wrkMast.setModiTime(now);
- if (!wrkMastService.updateById(wrkMast)) {
- throw new CoolException("鍙栨秷浠诲姟澶辫触");
- }
- // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
- if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
- throw new CoolException("淇濆瓨浠诲姟鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo());
- }
-
- // 鍒犻櫎宸ヤ綔涓绘。
- boolean wrkMastRes = wrkMastService.deleteById(wrkMast);
-
- // 淇敼搴撲綅鐘舵��
- LocMast locMast = locMastService.selectById(locNo);
- if (Cools.isEmpty(locMast)) {
- throw new CoolException("鍙栨秷浠诲姟澶辫触锛屽簱浣嶄笉瀛樺湪:" + locNo);
- }
- locMast.setLocSts(locSts);
- locMast.setModiTime(now);
- locMast.setModiUser(userId);
- boolean locMastRes = locMastService.updateById(locMast);
- if (!wrkMastRes || !locMastRes) {
- throw new CoolException("淇濆瓨鏁版嵁澶辫触");
- }
- HashMap<String,Object> headParam = new HashMap<>();
- headParam.put("TaskNo",wrkMast.getTaskNo());
- headParam.put("Result",1);//鍙栨秷
-
- try {
- String response;
- log.error("wcs鎵嬪姩鍙栨秷浠诲姟涓婃姤wms={}", wrkMast);
-
- response = new HttpHandler.Builder()
- // .setHeaders(headParam)
- .setUri(wmsUrl)
- .setPath(taskStatusFeedbackPath)
- .setJson(JSON.toJSONString(headParam))
- .build()
- .doPost();
- apiLogService.save("wcs鎵嬪姩鍙栨秷浠诲姟涓婃姤wms"
- , wmsUrl + taskStatusFeedbackPath
- , null
- , "127.0.0.1"
- , JSON.toJSONString(headParam)
- , response
- , true
- );
- } catch (Exception e) {
- log.error("wcs鎵嬪姩鍙栨秷浠诲姟涓婃姤wms澶辫触={}", wrkMast);
- log.error("wcs鎵嬪姩鍙栨秷浠诲姟涓婃姤wms澶辫触,鎶ラ敊淇℃伅锛�", e);
-// throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触");
- }
- }
}
diff --git a/src/main/java/com/zy/asrs/task/NotifyScheduler.java b/src/main/java/com/zy/asrs/task/NotifyScheduler.java
new file mode 100644
index 0000000..3dfc3a2
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/NotifyScheduler.java
@@ -0,0 +1,149 @@
+package com.zy.asrs.task;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.zy.asrs.domain.dto.NotifyCustomDataDto;
+import com.zy.asrs.domain.dto.NotifyDto;
+import com.zy.asrs.entity.ApiLog;
+import com.zy.asrs.service.ApiLogService;
+import com.zy.asrs.utils.NotifyUtils;
+import com.zy.common.utils.HttpHandler;
+import com.zy.common.utils.RedisUtil;
+import com.zy.core.properties.SlaveProperties;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+@Component
+@Slf4j
+public class NotifyScheduler {
+
+ @Autowired
+ private RedisUtil redisUtil;
+ @Autowired
+ private NotifyUtils notifyUtils;
+ @Autowired
+ private SlaveProperties slaveProperties;
+ @Autowired
+ private ConfigService configService;
+ @Autowired
+ private ApiLogService apiLogService;
+
+ @Scheduled(cron = "0/3 * * * * ? ")
+ public synchronized void notifyTask(){
+ notifyMsg("task", 1);
+ }
+
+ private synchronized void notifyMsg(String notifyType, Integer device) {
+ Config notifyEnableConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "notifyEnable"));
+ if(notifyEnableConfig == null){
+ return;
+ }
+ String notifyEnable = notifyEnableConfig.getValue();
+ if (!notifyEnable.equals("Y")) {
+ return;
+ }
+
+ Config notifyUriConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "notifyUri"));
+ if(notifyUriConfig == null){
+ return;
+ }
+ String notifyUri = notifyUriConfig.getValue();
+
+ Config notifyUriPathConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "notifyUriPath"));
+ if(notifyUriPathConfig == null){
+ return;
+ }
+ String notifyUriPath = notifyUriPathConfig.getValue();
+
+ List<String> keys = notifyUtils.takeKeys(notifyType, device);
+ if(keys == null){
+ return;
+ }
+
+ if (keys.isEmpty()) {
+ return;
+ }
+
+ for (String key : keys) {
+ Object object = redisUtil.get(key);
+ if (object == null) {
+ continue;
+ }
+ NotifyDto notifyDto = (NotifyDto) object;
+
+ if (System.currentTimeMillis() - notifyDto.getLastRetryTime() < 1000 * notifyDto.getRetryTime()) {
+ continue;
+ }
+
+ ApiLog apiLog = new ApiLog();
+
+ try {
+ //瑙﹀彂閫氱煡
+ String response = null;
+ if (notifyDto.getSendCustomData()) {
+ //鑷畾涔夋秷鎭牸寮�
+ NotifyCustomDataDto customData = notifyDto.getCustomData();
+ response = new HttpHandler.Builder()
+ .setUri(customData.getUri())
+ .setPath(customData.getPath())
+ .setJson(customData.getData())
+ .build()
+ .doPost();
+
+ apiLog.setUrl(customData.getUri() + customData.getPath());
+ apiLog.setRequest(customData.getData());
+ apiLog.setCreateTime(new Date());
+ }else {
+ response = new HttpHandler.Builder()
+ .setUri(notifyUri)
+ .setPath(notifyUriPath)
+ .setJson(JSON.toJSONString(notifyDto))
+ .build()
+ .doPost();
+
+ apiLog.setUrl(notifyUri + notifyUriPath);
+ apiLog.setRequest(JSON.toJSONString(notifyDto));
+ apiLog.setCreateTime(new Date());
+ }
+
+ apiLog.setResponse(response);
+
+ JSONObject jsonObject = JSON.parseObject(response);
+ Integer code = jsonObject.getInteger("code");
+ if(code == 200){
+ //閫氱煡鎴愬姛
+ redisUtil.del(key);
+
+ continue;
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }finally {
+ //淇濆瓨璁板綍
+ apiLogService.insert(apiLog);
+ }
+
+ //閫氱煡澶辫触
+ int times = notifyDto.getRetryTimes() + 1;
+ if (times >= notifyDto.getFailTimes()) {
+ //瓒呰繃娆℃暟
+ redisUtil.del(key);
+ continue;
+ }
+
+ notifyDto.setLastRetryTime(System.currentTimeMillis());
+ notifyDto.setRetryTimes(times);
+ redisUtil.set(key, notifyDto);
+ continue;
+ }
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/task/TaskLogScheduler.java b/src/main/java/com/zy/asrs/task/TaskLogScheduler.java
index 1e53034..c299dc2 100644
--- a/src/main/java/com/zy/asrs/task/TaskLogScheduler.java
+++ b/src/main/java/com/zy/asrs/task/TaskLogScheduler.java
@@ -1,17 +1,14 @@
package com.zy.asrs.task;
import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.exception.CoolException;
+import com.zy.asrs.domain.dto.NotifyCustomDataDto;
+import com.zy.asrs.domain.enums.NotifyMsgType;
import com.zy.asrs.domain.enums.TaskStatusType;
import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.param.TaskOverToWms;
-import com.zy.asrs.entity.param.TaskStatusFeedbackParam;
import com.zy.asrs.service.*;
import com.zy.asrs.service.impl.TaskWrkLogServiceImpl;
-import com.zy.asrs.utils.PostMesDataUtils;
-import com.zy.common.utils.HttpHandler;
+import com.zy.asrs.utils.NotifyUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -19,10 +16,7 @@
import org.springframework.stereotype.Component;
import java.io.IOException;
-import java.util.Date;
import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
/**
* 瀹氭椂灏嗕换鍔�(瀹屾垚銆佸彇娑�)杞垚鏃ュ織
@@ -33,17 +27,6 @@
@Autowired
private TaskWrkService taskWrkService;
- @Autowired
- private CommandInfoService commandInfoService;
- @Autowired
- private ApiLogService apiLogService;
- @Autowired
- private BasDevpService basDevpService;
-
- @Autowired
- private StaDescService staDescService;
- @Autowired
- private LocMastService locMastService;
@Autowired
private TaskWrkLogServiceImpl wrkLogService;
@@ -57,49 +40,32 @@
private String TaskExecCallback;
@Value("${wms.taskStatusFeedbackPath}")
private String taskStatusFeedbackPath;
+ @Autowired
+ private NotifyUtils notifyUtils;
@Scheduled(cron = "0/3 * * * * ? ")
public void execute() throws IOException {
-
for (TaskWrk taskWrk : taskWrkService.selectToBeHistoryData()) {
HashMap<String, Object> headParam = new HashMap<>();
+ headParam.put("TaskNo", taskWrk.getTaskNo());
if (taskWrk.getStatus().equals(TaskStatusType.OVER.id) || taskWrk.getStatus() == 7) {//瀹屾垚
- headParam.put("Result", 1);
+ headParam.put("Result", 1);//瀹屾垚
} else if (taskWrk.getStatus().equals(TaskStatusType.CANCEL.id)) {
- headParam.put("Result", 2);
+ headParam.put("Result", 2);//鍙栨秷
}
- String response = "";
- Boolean bool = false;
- try {
- headParam.put("TaskNo", taskWrk.getTaskNo());
- log.info("wcs鎵嬪姩瀹屾垚浠诲姟涓婃姤wms={}", taskWrk);
- response = new HttpHandler.Builder()
- // .setHeaders(headParam)
- .setUri(wmsUrl)
- .setPath(TaskExecCallback)
- .setJson(JSON.toJSONString(headParam))
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- TaskWrkLog taskWrkLog = new TaskWrkLog(taskWrk);
- if (!wrkLogService.insert(taskWrkLog)) {
- throw new CoolException("杞巻鍙叉。澶辫触" + taskWrkLog);
- }
- if (!taskWrkService.deleteById(taskWrk)) {
- throw new CoolException("浠诲姟妗e垹闄ゅけ璐�" + taskWrkLog);
- }
- bool = true;
- } catch (Exception e) {
- log.error("wcs鎵嬪姩瀹屾垚浠诲姟涓婃姤wms澶辫触{},杩斿洖鍊�={}", taskWrk, response);
- } finally {
- apiLogService.save("wcs瀹屾垚鎴栬�呭彇娑堜换鍔′笂鎶ms"
- , wmsUrl + TaskExecCallback
- , null
- , "127.0.0.1"
- , JSON.toJSONString(headParam)
- , response
- , bool
- );
+
+ NotifyCustomDataDto customDataDto = new NotifyCustomDataDto();
+ customDataDto.setUri(wmsUrl);
+ customDataDto.setPath(TaskExecCallback);
+ customDataDto.setData(JSON.toJSONString(headParam));
+ notifyUtils.notify("task", 1, String.valueOf(taskWrk.getWrkNo()), taskWrk.getTaskNo(), NotifyMsgType.TASK_COMPLETE, JSON.toJSONString(taskWrk), true, customDataDto);
+
+ TaskWrkLog taskWrkLog = new TaskWrkLog(taskWrk);
+ if (!wrkLogService.insert(taskWrkLog)) {
+ throw new CoolException("杞巻鍙叉。澶辫触" + taskWrkLog);
+ }
+ if (!taskWrkService.deleteById(taskWrk)) {
+ throw new CoolException("浠诲姟妗e垹闄ゅけ璐�" + taskWrkLog);
}
}
}
diff --git a/src/main/java/com/zy/asrs/utils/NotifyUtils.java b/src/main/java/com/zy/asrs/utils/NotifyUtils.java
new file mode 100644
index 0000000..d764ffb
--- /dev/null
+++ b/src/main/java/com/zy/asrs/utils/NotifyUtils.java
@@ -0,0 +1,100 @@
+package com.zy.asrs.utils;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.SnowflakeIdWorker;
+import com.zy.asrs.domain.dto.NotifyCustomDataDto;
+import com.zy.asrs.domain.dto.NotifyDto;
+import com.zy.asrs.domain.enums.NotifyMsgType;
+import com.zy.asrs.domain.enums.RedisKeyType;
+import com.zy.common.utils.RedisUtil;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+@Component
+public class NotifyUtils {
+
+ @Autowired
+ private RedisUtil redisUtil;
+ @Autowired
+ private SnowflakeIdWorker snowflakeIdWorker;
+ @Autowired
+ private ConfigService configService;
+
+ public synchronized boolean notify(String notifyType, Integer device, String taskNo, String superTaskNo, NotifyMsgType msgType) {
+ return append(notifyType, device, taskNo, superTaskNo, msgType, null, false, null);
+ }
+
+ public synchronized boolean notify(String notifyType, Integer device, String taskNo, String superTaskNo, NotifyMsgType msgType, String data, Boolean sendCustomData, NotifyCustomDataDto customData) {
+ return append(notifyType, device, taskNo, superTaskNo, msgType, data, sendCustomData, customData);
+ }
+
+ public synchronized List<String> takeKeys(String notifyType, Integer device) {
+ String key = getKey(notifyType, device);
+ if(key == null){
+ return null;
+ }
+
+ Set keys = redisUtil.keys(key + "*");
+ if (keys == null) {
+ return null;
+ }
+
+ List<String> list = new ArrayList<>();
+ for (Object object : keys) {
+ list.add(object.toString());
+ }
+ return list;
+ }
+
+ public String getKey(String notifyType, Integer device) {
+ String key = null;
+ if (notifyType.equals("task")) {
+ key = RedisKeyType.QUEUE_TASK.key + device;
+ } else {
+ return null;
+ }
+
+ return key;
+ }
+
+ private boolean append(String notifyType, Integer device, String taskNo, String superTaskNo, NotifyMsgType msgType, String data, Boolean sendCustomData, NotifyCustomDataDto customData) {
+ String key = getKey(notifyType, device);
+ if (key == null) {
+ return false;
+ }
+
+ NotifyDto dto = new NotifyDto();
+ dto.setId(snowflakeIdWorker.nextId());
+ dto.setNotifyType(notifyType);
+ dto.setDevice(device);
+ dto.setMsgType(msgType.flag);
+ dto.setMsgDesc(msgType.desc);
+ dto.setData(data);
+ dto.setTaskNo(taskNo);
+ dto.setSuperTaskNo(superTaskNo);
+ dto.setSendCustomData(sendCustomData);
+ dto.setCustomData(customData);
+
+ //閲嶈瘯娆℃暟
+ Config notifyFailTimesConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "notifyFailTimes"));
+ if (notifyFailTimesConfig != null) {
+ dto.setFailTimes(Integer.parseInt(notifyFailTimesConfig.getValue()));
+ }
+
+ //閲嶈瘯闂撮殧
+ Config notifyRetryTimeConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "notifyRetryTime"));
+ if (notifyRetryTimeConfig != null) {
+ dto.setRetryTime(Integer.parseInt(notifyRetryTimeConfig.getValue()));
+ }
+
+ redisUtil.set(key + "_" + dto.getId(), dto);
+ return true;
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 91ae550..c16eb10 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -59,93 +59,6 @@
return crnNo == 1 ? s : 3 - s;
}
-
-
-
- //杞崲wms浼犺緭鐨勫簱浣嶅彿
- public static String getWcsLocNo(String locNo){
- String[] split = locNo.split("-");
- int[] wcsRow = getWcsRow(split[0]);
- int[] ints = null;
- if (split[3].equals("01")){
- ints = Arrays.copyOfRange(wcsRow, 0, (wcsRow.length+2-1) / 2);
- if (split[4].equals("01")){
- if (ints.length<2){
-
- }else {
- ints = Arrays.copyOfRange(ints, ints.length / 2, ints.length);
- }
- }else {
- if (ints.length<2){
-
- }else {
- ints = Arrays.copyOfRange(ints, ints.length / 2-1,ints.length-1);
- }
- }
- }else {
- ints = Arrays.copyOfRange(wcsRow, (wcsRow.length+2-1) / 2,wcsRow.length );
- if (split[4].equals("01")){
- if (ints.length<2){
-
- }else {
- ints = Arrays.copyOfRange(ints, ints.length / 2-1,ints.length-1);
- }
- }else {
- if (ints.length<2){
-
- }else {
- ints = Arrays.copyOfRange(ints, ints.length / 2, ints.length);
- }
-
-
- }
- }
- int i = ints[0];
- String wcsLocNo = "";
- Integer bay = Integer.parseInt(split[1])+1;
- String bay2 = "";
- if (bay>9){
- bay2 = bay.toString();
- }else {
- bay2 = "0"+bay;
- }
- if (i>9){
- wcsLocNo = i+"0"+bay2+split[2];
- }else {
- wcsLocNo = "0"+i+"0"+bay2+split[2];
- }
-
-
-
- return wcsLocNo;
- }
- public static int[] getWcsRow(String row){
- int[] array = null;
- switch (row){
- case "01":
- array= new int[]{1, 2, 3, 4};
- break;
- case "02":
- array= new int[]{5,6};
- break;
- case "03":
- array= new int[]{7,8,9,10};
- break;
- case "04":
- array= new int[]{11,12,13,14};
- break;
- case "05":
- array= new int[]{15,16,17,18};
- break;
- case "06":
- array= new int[]{19,20,21};
- break;
- default:
-
- }
- return array;
- }
-
public static float scale(Float f){
if (f == null || f == 0f || Float.isNaN(f)) {
return 0f;
@@ -382,8 +295,6 @@
// slaveProperties.setGroupCount(4);
// Integer deepRow = getDeepRow(slaveProperties, 6);
// System.out.println(deepRow);
- String wcsLocNo = getWcsLocNo("01-01-01-01-01");
- System.out.println(wcsLocNo);
}
public static Integer StaNoCrnNo(Integer staNo) {
diff --git a/src/main/java/com/zy/common/config/RedisConfig.java b/src/main/java/com/zy/common/config/RedisConfig.java
index d356517..cf99252 100644
--- a/src/main/java/com/zy/common/config/RedisConfig.java
+++ b/src/main/java/com/zy/common/config/RedisConfig.java
@@ -5,6 +5,7 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.*;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
@@ -14,7 +15,7 @@
* Redis閰嶇疆绫�
* Created by vincent on 2019-12-23
*/
-//@Configuration
+@Configuration
//@EnableCaching // 寮�鍚暟鎹紦瀛樻満鍒�
public class RedisConfig extends CachingConfigurerSupport {
diff --git a/src/main/java/com/zy/common/utils/RedisUtil.java b/src/main/java/com/zy/common/utils/RedisUtil.java
index 95da6dc..dd3e607 100644
--- a/src/main/java/com/zy/common/utils/RedisUtil.java
+++ b/src/main/java/com/zy/common/utils/RedisUtil.java
@@ -2,7 +2,6 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index bec8a76..b8b7b06 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -26,9 +26,6 @@
// 棰戠巼
private int i = 0;
- @Value("${wms.maxCirle}")
- private Integer maxCount;
-
/**
* =====>> 寮�濮嬪伐浣�
*/
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index c1f0ecf..317ac0d 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -8,7 +8,7 @@
name: @pom.build.finalName@
datasource:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
- url: jdbc:sqlserver://192.168.4.42:1433;databasename=czbrasrs
+ url: jdbc:sqlserver://192.168.4.42:1433;databasename=ynhfasrs
username: sa
password: sa@123
mvc:
@@ -46,18 +46,12 @@
wms:
#杈撻�佺嚎鏆傚瓨鏁�
count: 8
- maxCirle: 3
# 鏄惁寮�鍚笂鎶�
start: true
# WMS绯荤粺ip
- #url: 10.32.53.195:8080
- # WMS绯荤粺ip
- # url: 10.210.157.109:8090
url: 10.10.10.222:2410
# 鍏ュ簱浠诲姟鐢宠鎺ュ彛
- #inboundTaskApplyPath: api/InterFace/inboundTaskApply
inboundTaskApplyPath: api/StereoscopicCallBack/AcceptTaskStatus
- # inboundTaskApplyPath: open/asrs/inboundTaskApply
# 浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
taskStatusFeedbackPath: api/StereoscopicCallBack/TaskExecCallback
# 浠诲姟瀹屾垚缁撴潫鏃讹紝WCS鍥炶皟WMS
diff --git "a/version/\347\253\213\345\272\223 WMS\346\216\245\345\217\243\346\226\207\346\241\243 2024 0807.docx" "b/version/\347\253\213\345\272\223 WMS\346\216\245\345\217\243\346\226\207\346\241\243 2024 0807.docx"
new file mode 100644
index 0000000..8de18d0
--- /dev/null
+++ "b/version/\347\253\213\345\272\223 WMS\346\216\245\345\217\243\346\226\207\346\241\243 2024 0807.docx"
Binary files differ
--
Gitblit v1.9.1