From d613408e745a87c2ed77506a96097b0185352d78 Mon Sep 17 00:00:00 2001
From: 野心家 <1051256694@qq.com>
Date: 星期一, 05 五月 2025 14:52:18 +0800
Subject: [PATCH] pda呼叫空板、出库确认
---
src/main/java/com/zy/asrs/entity/param/RCSParam.java | 52 +++++
/dev/null | 12 -
src/main/java/com/zy/asrs/task/newWay/AssignTasksToRCSScheduler.java | 53 +++++
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 20 +
src/main/java/com/zy/asrs/controller/OpenController.java | 41 +++
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 14 +
src/main/java/com/zy/asrs/entity/WrkMast.java | 4
src/main/java/com/zy/asrs/task/WorkMastScheduler.java | 24 ++
src/main/resources/mapper/WrkMastMapper.xml | 6
src/main/java/com/zy/asrs/controller/MobileController.java | 217 ++++++++++++++------
src/main/java/com/zy/asrs/task/newWay/handler/AssignTasksToRCSHandler.java | 99 +++++++++
src/main/resources/application.yml | 9
12 files changed, 455 insertions(+), 96 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index c832de4..9568608 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -18,6 +18,8 @@
import com.zy.common.model.LocDto;
import com.zy.common.model.TaskDto;
import com.zy.common.model.WrkDto;
+import com.zy.common.model.enums.WorkNoType;
+import com.zy.common.service.CommonService;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
@@ -55,6 +57,10 @@
private PackService packService;
@Autowired
private ManLocDetlMapper manLocDetlMapper;
+ @Autowired
+ private CommonService commonService;
+ @Autowired
+ private StaDescService staDescService;
// 鍟嗗搧涓婃灦
@@ -174,6 +180,149 @@
return R.ok();
}
+ /**
+ * 鍑哄簱纭瀹屾垚
+ * @param list
+ * @return
+ */
+ @RequestMapping("/pakout/confirm/auth")
+ @ManagerAuth
+ @Transactional
+ public R pakoutConfirm(@RequestBody List<WrkDetl> list) {
+ if (Cools.isEmpty(list)) {
+ return R.ok();
+ }
+ Set<Integer> wrkNos = new HashSet<>();
+ List<WrkDto> dtos = new ArrayList<>();
+ for (WrkDetl wrkDetl : list) {
+ if (wrkNos.contains(wrkDetl.getWrkNo())) {
+ for (WrkDto dto : dtos) {
+ if (dto.getWrkNo().equals(wrkDetl.getWrkNo())) {
+ dto.getWrkDetls().add(wrkDetl);
+ break;
+ }
+ }
+ } else {
+ wrkNos.add(wrkDetl.getWrkNo());
+ dtos.add(new WrkDto(wrkDetl.getWrkNo(), wrkDetl));
+ }
+ }
+
+ for (WrkDto dto : dtos) {
+ WrkMast wrkMast = wrkMastService.selectById(dto.getWrkNo());
+ if (wrkMast != null) {
+ // 101
+ if (wrkMast.getIoType() == 101) {
+ for (WrkDetl wrkDetl : dto.getWrkDetls()) {
+ wrkDetlService.updateInspect(wrkDetl.getWrkNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+ }
+ }
+ // 103
+ if (wrkMast.getIoType() == 103) {
+ if (!wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()))) {
+ throw new CoolException("鎷f枡鍑哄簱纭澶辫触");
+ }
+ for (WrkDetl wrkDetl : dto.getWrkDetls()) {
+ wrkDetl.setInspect(1);
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("鎷f枡鍑哄簱纭澶辫触");
+ }
+ }
+ }
+ }
+ }
+
+ for (Integer wrkNo : wrkNos) {
+ WrkMast wrkMast = wrkMastService.selectById(wrkNo);
+ if (wrkMast.getWrkSts() == 15 && (Cools.isEmpty(wrkMast.getInvWh()) || wrkMast.getInvWh().equals("N"))) {
+ List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkNo);
+ boolean complete = true;
+ for (WrkDetl wrkDetl : wrkDetls) {
+ if (wrkDetl.getInspect() == null || wrkDetl.getInspect() == 0) {
+ complete = false;
+ break;
+ }
+ }
+ if (complete) {
+ wrkMast.setInvWh("Y");
+ wrkMast.setModiTime(new Date());
+ if (!wrkMastService.updateById(wrkMast)) {
+ throw new CoolException("淇敼宸ヤ綔妗�" + wrkNo + "澶辫触");
+ }
+ }
+ }
+ }
+ return R.ok("瀹屾垚纭");
+ }
+
+
+ /**
+ * 琛ョ┖鎵樼洏鍒板叆搴撶紦瀛樹綅
+ * @param map
+ * @return
+ */
+ @RequestMapping("/supplementEmpty")
+ @ManagerAuth
+ @Transactional
+ public R supplementEmpty(@RequestBody HashMap<String,Object> map){
+ if (Cools.isEmpty(map)) {
+ return R.error("琛ョ┖鎵樼洏搴撲綅涓虹┖");
+ }
+ List<LocMast> locMastList=locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D"));
+ if (locMastList.isEmpty()) {
+ return R.error("绔嬪簱閲屾病鏈夌┖鎵樼洏");
+ }
+ // 鑾峰彇宸ヤ綔鍙�
+ int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type);
+
+ // 鑾峰彇婧愮珯
+ Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+ .eq("type_no", 110)
+ .eq("stn_no", 102)
+ .eq("crn_no", locMastList.get(0).getCrnNo());
+ StaDesc staDesc = staDescService.selectOne(wrapper);
+ Integer sourceStaNo = staDesc.getCrnStn();
+ if (Cools.isEmpty(sourceStaNo)) {
+ throw new CoolException("妫�绱㈡簮绔欏け璐�");
+ }
+ Date now = new Date();
+ // 淇濆瓨宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(now);
+ wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+ wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱
+ wrkMast.setIoPri(10D);
+ wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯
+ wrkMast.setStaNo(102); // 鐩爣绔�
+ wrkMast.setCrnNo(locMastList.get(0).getCrnNo());
+ wrkMast.setSourceLocNo(locMastList.get(0).getLocNo()); // 婧愬簱浣�
+ wrkMast.setFullPlt("N"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("Y"); // 绌烘澘
+ wrkMast.setLinkMis("N");
+ wrkMast.setAppeUser(getUserId());
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiUser(getUserId());
+ wrkMast.setModiTime(now);
+ wrkMast.setMemo((String) map.get("locNo"));//agv鏀捐揣浣�
+ boolean res = wrkMastService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ // 鏇存柊搴撲綅鐘舵�� D.绌烘澘 -> R.鍑哄簱棰勭害
+ if (locMastList.get(0).getLocSts().equals("D")){
+ locMastList.get(0).setLocSts("R");
+ locMastList.get(0).setModiUser(getUserId());
+ locMastList.get(0).setModiTime(now);
+ if (!locMastService.updateById(locMastList.get(0))) {
+ throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
+ }
+ }
+ return R.ok();
+ }
+
// 鏍规嵁搴撲綅鐮佸拰鍟嗗搧鐮佹悳绱㈠晢鍝�
@RequestMapping("/mat/find/auth")
public R find(@RequestParam(required = false) String locNo
@@ -227,75 +376,7 @@
}
- @RequestMapping("/pakout/confirm/auth")
- @ManagerAuth
- @Transactional
- public R pakoutConfirm(@RequestBody List<WrkDetl> list) {
- if (Cools.isEmpty(list)) {
- return R.ok();
- }
- Set<Integer> wrkNos = new HashSet<>();
- List<WrkDto> dtos = new ArrayList<>();
- for (WrkDetl wrkDetl : list) {
- if (wrkNos.contains(wrkDetl.getWrkNo())) {
- for (WrkDto dto : dtos) {
- if (dto.getWrkNo().equals(wrkDetl.getWrkNo())) {
- dto.getWrkDetls().add(wrkDetl);
- break;
- }
- }
- } else {
- wrkNos.add(wrkDetl.getWrkNo());
- dtos.add(new WrkDto(wrkDetl.getWrkNo(), wrkDetl));
- }
- }
- for (WrkDto dto : dtos) {
- WrkMast wrkMast = wrkMastService.selectById(dto.getWrkNo());
- if (wrkMast != null) {
- // 101
- if (wrkMast.getIoType() == 101) {
- for (WrkDetl wrkDetl : dto.getWrkDetls()) {
- wrkDetlService.updateInspect(wrkDetl.getWrkNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
- }
- }
- // 103
- if (wrkMast.getIoType() == 103) {
- if (!wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()))) {
- throw new CoolException("鎷f枡鍑哄簱纭澶辫触");
- }
- for (WrkDetl wrkDetl : dto.getWrkDetls()) {
- wrkDetl.setInspect(1);
- if (!wrkDetlService.insert(wrkDetl)) {
- throw new CoolException("鎷f枡鍑哄簱纭澶辫触");
- }
- }
- }
- }
- }
-
- for (Integer wrkNo : wrkNos) {
- WrkMast wrkMast = wrkMastService.selectById(wrkNo);
- if (wrkMast.getWrkSts() == 14 && (Cools.isEmpty(wrkMast.getInvWh()) || wrkMast.getInvWh().equals("N"))) {
- List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkNo);
- boolean complete = true;
- for (WrkDetl wrkDetl : wrkDetls) {
- if (wrkDetl.getInspect() == null || wrkDetl.getInspect() == 0) {
- complete = false;
- break;
- }
- }
- if (complete) {
- wrkMast.setInvWh("Y");
- wrkMast.setModiTime(new Date());
- if (!wrkMastService.updateById(wrkMast)) {
- throw new CoolException("淇敼宸ヤ綔妗�" + wrkNo + "澶辫触");
- }
- }
- }
- }
- return R.ok("瀹屾垚纭");
- }
// 鐩樼偣 ----------------------------------------------------------------------------------------------------
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 1974537..b0b802a 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -1,11 +1,15 @@
package com.zy.asrs.controller;
import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.AppAuth;
import com.core.common.*;
import com.core.exception.CoolException;
+import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.entity.param.*;
import com.zy.asrs.service.OpenService;
+import com.zy.asrs.service.WrkMastService;
import com.zy.common.model.DetlDto;
import com.zy.common.web.BaseController;
import lombok.extern.slf4j.Slf4j;
@@ -13,9 +17,7 @@
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
/**
* Created by vincent on 2022/4/8
@@ -32,6 +34,8 @@
@Autowired
private OpenService openService;
+ @Autowired
+ private WrkMastService wrkMastService;
@PostMapping("/order/matSync/default/v1")
@AppAuth(memo = "鍟嗗搧淇℃伅鍚屾鎺ュ彛")
@@ -206,5 +210,36 @@
/*********************************鍚屾鐗╂枡妗f鍜岃鍗�****************************************************/
+ /*********************************RCS浠诲姟缁撴潫鎺ュ彛****************************************************/
+ /**
+ * 搴撳瓨缁熻
+ */
+ @RequestMapping("/taskOver")
+ public HashMap taskOver(@RequestBody HashMap<String,Object> param) {
+ HashMap map = new HashMap();
+ Map<String ,Object > map1 = (Map<String, Object>)param.get("Data");
+
+ String id = (String) map1.get("Id");
+ String status = (String) map1.get("Status");
+ if (!status.equals("finished_manual")){
+ map.put("IsSuccess", true);
+ return map;
+ }
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",Integer.valueOf(id)));
+ if (wrkMast == null) {
+ map.put("IsSuccess", false);
+ map.put("ErrorCode","1");
+ map.put("Message","娌℃湁鎵惧埌璇ヤ换鍔″彿:"+id);
+ return map;
+ }
+ if(wrkMast.getIoType()==101||wrkMast.getIoType()==110){
+ wrkMast.setWrkSts(15L);//鎼繍瀹屾垚锛屼换鍔¤浆鍘嗗彶妗�
+ }else if(wrkMast.getIoType()==103||wrkMast.getIoType()==107){
+ wrkMast.setWrkSts(14L);//鎼繍瀹屾垚,浠诲姟鐘舵�佸洖鍒�14
+ }
+ wrkMastService.updateById(wrkMast);
+ map.put("IsSuccess", true);
+ return map;
+ }
}
diff --git a/src/main/java/com/zy/asrs/entity/WrkMast.java b/src/main/java/com/zy/asrs/entity/WrkMast.java
index f33acd0..e73d01a 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMast.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -264,9 +264,9 @@
private String manuType;
/**
- * 澶囨敞
+ * agv鏀捐揣浣�
*/
- @ApiModelProperty(value= "澶囨敞")
+ @ApiModelProperty(value= "agv鏀捐揣浣�")
private String memo;
@ApiModelProperty(value= "")
diff --git a/src/main/java/com/zy/asrs/entity/param/RCSParam.java b/src/main/java/com/zy/asrs/entity/param/RCSParam.java
new file mode 100644
index 0000000..164cbf6
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/RCSParam.java
@@ -0,0 +1,52 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class RCSParam {
+ /**
+ * 缃戠粶娴佹按鍙�
+ */
+ private String ReqId;
+
+ /**
+ * 搴旂敤琛ㄧず wms
+ */
+ private String ClientId;
+
+ /**
+ * 閫氱煡鏃堕棿
+ */
+ private String ReqTime;
+
+ /**
+ * 鏁版嵁
+ */
+ private DataBody Data;
+
+ @Data
+ public static class DataBody {
+ /**
+ * 浠诲姟鍙�
+ */
+ private String Id;
+
+ private List<TaskBody> tasks;
+ }
+ @Data
+ public static class TaskBody {
+ /**
+ * 浠诲姟绫诲瀷 锛�
+ * load 鍙栬揣 锛� unload 鏀捐揣 锛�
+ */
+ private String Type;
+
+ /**
+ * 鐩爣搴撲綅
+ */
+ private String Station;
+ }
+}
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 a3616dc..1f17c09 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -223,7 +223,7 @@
// }
// 鑾峰彇璺緞
- StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta);
+ StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), 102);
// 鐢熸垚宸ヤ綔鍙�
int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
// 鐢熸垚宸ヤ綔妗�
@@ -235,7 +235,7 @@
wrkMast.setIoPri(13D); // 浼樺厛绾э細13
wrkMast.setCrnNo(locMast.getCrnNo());
wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
- wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
+ wrkMast.setStaNo(102); // 鐩爣绔�
wrkMast.setSourceLocNo(dto.getLocNo()); // 婧愬簱浣�
wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
wrkMast.setPicking("N"); // 鎷f枡
@@ -247,6 +247,9 @@
wrkMast.setAppeTime(now);
wrkMast.setModiUser(userId);
wrkMast.setModiTime(now);
+ if(outSta==2000){
+ wrkMast.setMemo("2000");
+ }
if (!wrkMastService.insert(wrkMast)) {
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細"+dto.getLocNo());
}
@@ -446,7 +449,7 @@
// 鑾峰彇婧愮珯
Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
.eq("type_no", 110)
- .eq("stn_no", param.getOutSite())
+ .eq("stn_no", 102)
.eq("crn_no", locMast.getCrnNo());
StaDesc staDesc = staDescService.selectOne(wrapper);
Integer sourceStaNo = staDesc.getCrnStn();
@@ -462,7 +465,7 @@
wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱
wrkMast.setIoPri(10D);
wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯
- wrkMast.setStaNo(param.getOutSite()); // 鐩爣绔�
+ wrkMast.setStaNo(102); // 鐩爣绔�
wrkMast.setCrnNo(locMast.getCrnNo());
wrkMast.setSourceLocNo(locNo); // 婧愬簱浣�
wrkMast.setFullPlt("N"); // 婊℃澘锛歒
@@ -474,6 +477,9 @@
wrkMast.setAppeTime(now);
wrkMast.setModiUser(userId);
wrkMast.setModiTime(now);
+ if(param.getOutSite()==1000){
+ wrkMast.setMemo("1000");
+ }
boolean res = wrkMastService.insert(wrkMast);
if (!res) {
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
diff --git a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
index 10bffd4..f39e2a5 100644
--- a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -1,9 +1,14 @@
package com.zy.asrs.task;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.BasDevpService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.WorkMastHandler;
+import com.zy.asrs.task.newWay.handler.AssignTasksToRCSHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -25,11 +30,28 @@
private WrkMastService wrkMastService;
@Autowired
private WorkMastHandler workMastHandler;
+ @Autowired
+ private BasDevpService basDevpService;
@Scheduled(cron = "0/3 * * * * ? ")
- private void execute(){
+ private void execute() {
List<WrkMast> wrkMasts = wrkMastService.selectToBeCompleteData();
if (wrkMasts.isEmpty()) {
+ List<WrkMast> wrkMasts1 = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+ .eq("wrk_sts", 14)
+ .eq("io_type", 103));
+ for (WrkMast wrkMast : wrkMasts1) {
+ BasDevp basDevp=basDevpService.selectOne(new EntityWrapper<BasDevp>()
+ .eq("dev_no",wrkMast.getStaNo())
+ .eq("wrk_no",wrkMast.getWrkNo()));
+ if(basDevp==null){
+ continue;
+ }
+ if (!Cools.isEmpty(wrkMast.getMemo())) {
+ wrkMast.setWrkSts(30L);
+ wrkMastService.updateById(wrkMast);
+ }
+ }
return;
}
for (WrkMast wrkMast : wrkMasts) {
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index 9f8ce99..841e564 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -383,6 +383,14 @@
return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
}
}
+ if(Cools.isEmpty(wrkMast.getMemo())){
+ // 淇敼宸ヤ綔涓绘。鐘舵��
+ wrkMast.setWrkSts(15L);
+ }else{
+ //鏈塧gv鏀捐揣鐐�
+ // 淇敼宸ヤ綔涓绘。鐘舵��
+ wrkMast.setWrkSts(30L);
+ }
break;
// 绌烘澘鍑哄簱
case 110:
@@ -398,12 +406,20 @@
return FAIL.setMsg("绌烘澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
}
}
+ if(Cools.isEmpty(wrkMast.getMemo())){
+ // 淇敼宸ヤ綔涓绘。鐘舵��
+ wrkMast.setWrkSts(15L);
+ }else{
+ //鏈塧gv鏀捐揣鐐�
+ // 淇敼宸ヤ綔涓绘。鐘舵��
+ wrkMast.setWrkSts(30L);
+ }
+
break;
default:
break;
}
- // 淇敼宸ヤ綔涓绘。鐘舵��
- wrkMast.setWrkSts(15L);
+
wrkMast.setModiTime(now);
if (!wrkMastService.updateById(wrkMast)) {
// exceptionHandle("鏇存柊鍑哄簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
diff --git a/src/main/java/com/zy/asrs/task/newWay/AssignTasksToRCSScheduler.java b/src/main/java/com/zy/asrs/task/newWay/AssignTasksToRCSScheduler.java
new file mode 100644
index 0000000..e5a8645
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/newWay/AssignTasksToRCSScheduler.java
@@ -0,0 +1,53 @@
+package com.zy.asrs.task.newWay;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.task.WorkMastScheduler;
+import com.zy.asrs.task.core.ReturnT;
+import com.zy.asrs.task.newWay.handler.AssignTasksToRCSHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+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
+public class AssignTasksToRCSScheduler {
+ private static final Logger log = LoggerFactory.getLogger(WorkMastScheduler.class);
+
+ @Autowired
+ private WrkMastService wrkMastService;
+ @Autowired
+ private AssignTasksToRCSHandler assignTasksToRCSHandler;
+
+
+ /**
+ * 涓嬪彂浠诲姟缁橰CS
+ */
+ @Scheduled(cron = "0/3 * * * * ? ")
+ private void execute(){
+ List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts",30));
+ if (wrkMasts.isEmpty()) {
+ return;
+ }
+ for (WrkMast wrkMast : wrkMasts) {
+ if(Cools.isEmpty(wrkMast.getMemo())){
+ continue;
+ }
+ ReturnT<String> returnT = assignTasksToRCSHandler.start(wrkMast);
+ if (!returnT.isSuccess()) {
+ wrkMast.setUpdMk("X");
+ wrkMast.setErrorMemo(returnT.getMsg());
+ wrkMast.setErrorTime(new Date());
+ if (!wrkMastService.updateById(wrkMast)) {
+ log.error("宸ヤ綔妗workNo={}]鏍囪寰呭鐞嗗け璐�", wrkMast.getWrkNo());
+ }
+ }
+ }
+ }
+}
diff --git a/src/main/java/com/zy/asrs/task/newWay/AutoSupplementEmptyBoardScheduler.java b/src/main/java/com/zy/asrs/task/newWay/AutoSupplementEmptyBoardScheduler.java
deleted file mode 100644
index 7bf39b8..0000000
--- a/src/main/java/com/zy/asrs/task/newWay/AutoSupplementEmptyBoardScheduler.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.zy.asrs.task.newWay;
-
-import com.zy.asrs.task.WorkMastScheduler;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-@Component
-public class AutoSupplementEmptyBoardScheduler {
- private static final Logger log = LoggerFactory.getLogger(WorkMastScheduler.class);
-}
diff --git a/src/main/java/com/zy/asrs/task/newWay/handler/AssignTasksToRCSHandler.java b/src/main/java/com/zy/asrs/task/newWay/handler/AssignTasksToRCSHandler.java
new file mode 100644
index 0000000..acf082d
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/newWay/handler/AssignTasksToRCSHandler.java
@@ -0,0 +1,99 @@
+package com.zy.asrs.task.newWay.handler;
+
+import com.alibaba.excel.annotation.format.DateTimeFormat;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.entity.param.RCSParam;
+import com.zy.asrs.service.*;
+import com.zy.asrs.task.AbstractHandler;
+import com.zy.asrs.task.core.ReturnT;
+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.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+@Slf4j
+@Service
+@Transactional
+public class AssignTasksToRCSHandler extends AbstractHandler<String> {
+ @Autowired
+ private WrkMastService wrkMastService;
+ @Autowired
+ private ApiLogService apiLogService;
+ @Value("${rcs.address.url}")
+ private String url;
+ @Value("${rcs.address.attrcs}")
+ private String attrcs;
+
+ public ReturnT<String> start(WrkMast wrkMast) {
+ RCSParam rcsParam = new RCSParam();
+ LocalDateTime now = LocalDateTime.now();
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃� HH:mm:ss");
+ String formattedDate = now.format(formatter); // 鏍煎紡鍖栨棩鏈熸椂闂�
+ //缃戠粶娴佹按鍙�
+ rcsParam.setReqId(now.toString());
+ //搴旂敤鏍囪瘑
+ rcsParam.setClientId("WMS");
+ //閫氱煡鏃堕棿
+ rcsParam.setReqTime(formattedDate);
+ RCSParam.DataBody dataBody=new RCSParam.DataBody();
+ //浠诲姟鍙�
+ dataBody.setId(wrkMast.getWrkNo()+"");
+
+ List<RCSParam.TaskBody> taskBodyList=new ArrayList<>();
+ RCSParam.TaskBody taskBody=new RCSParam.TaskBody();
+ //鍙栬揣绫诲瀷
+ taskBody.setType("load");
+ taskBody.setStation(wrkMast.getStaNo()+"");
+ taskBodyList.add(taskBody);
+
+ RCSParam.TaskBody taskBody1=new RCSParam.TaskBody();
+ //鏀捐揣绫诲瀷
+ taskBody1.setType("unload");
+ taskBody1.setStation(wrkMast.getMemo());
+ taskBodyList.add(taskBody1);
+
+ dataBody.setTasks(taskBodyList);
+ rcsParam.setData(dataBody);
+ String response ="";
+ Boolean bool =false;
+
+ try {
+ log.info("wms娲惧彂鎼繍浠诲姟缁橰CS鍑哄簱={}", rcsParam);
+ response = new HttpHandler.Builder()
+ // .setHeaders(headParam)
+ .setUri(url)
+ .setPath(attrcs)
+ .setJson(JSON.toJSONString(rcsParam))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if(jsonObject.getBoolean("IsSuccess")){
+ wrkMast.setWrkSts(31L);//WMS涓嬪彂鎼繍浠诲姟缁橰CS鎴愬姛
+ wrkMastService.updateById(wrkMast);
+ bool = true;
+ }
+ } catch (Exception e) {
+ log.error("wcs娲惧彂浠诲姟缁橰CS鍑哄簱澶辫触{},杩斿洖鍊�={}", wrkMast, response);
+ } finally {
+ apiLogService.save("WMS娲惧彂鎼繍浠诲姟缁橰CS"
+ , url + attrcs
+ , null
+ , "127.0.0.1"
+ , JSON.toJSONString(rcsParam)
+ , response
+ , bool
+ );
+ }
+ return SUCCESS;
+ }
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index b06530d..4e7e633 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -66,4 +66,11 @@
acctID: "67af18a2bc317c"
username: "绔嬪簱"
password: "123456"
- lcid: 2052
\ No newline at end of file
+ lcid: 2052
+
+#RCS
+rcs:
+ address:
+ url: http://192.168.3.102:16001
+ #浠诲姟涓嬪彂鍦板潃
+ attrcs: 3CLOUD/Kingdee.BOS.WebApi.ServicesStub.
\ No newline at end of file
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index ce04079..512c377 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -69,9 +69,9 @@
<select id="selectToBeHistoryData" resultMap="BaseResultMap">
select * from asr_wrk_mast
where wrk_sts=5
- or (wrk_sts=15 and ove_mk='Y' and wrk_no not in (select wrk_no from asr_bas_devp))
- or (wrk_sts=15 and dateadd(mi,15,crn_end_time) <= getdate() and wrk_no not in (select wrk_no from asr_bas_devp))
- or (wrk_sts=15 and crn_end_time is null and wrk_no not in (select wrk_no from asr_bas_devp))
+ or (wrk_sts=15 and ove_mk='Y' and wrk_no not in (select wrk_no from asr_bas_devp) and inv_wh = 'Y')
+ or (wrk_sts=15 and dateadd(mi,15,crn_end_time) <= getdate() and wrk_no not in (select wrk_no from asr_bas_devp) and inv_wh = 'Y')
+ or (wrk_sts=15 and crn_end_time is null and wrk_no not in (select wrk_no from asr_bas_devp) and inv_wh = 'Y')
order by io_time,wrk_no asc
</select>
--
Gitblit v1.9.1