From a936c187f9d7f389a711e001739384dcbd9278e2 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期一, 31 三月 2025 13:50:53 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/controller/LocMastController.java | 1
src/main/java/com/zy/asrs/task/handler/OutWorkHandler.java | 95 ++++++
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 50 +++
src/main/java/com/zy/asrs/controller/OpenController.java | 136 +++++---
src/main/java/com/zy/asrs/task/GetEquipmentStatus.java | 74 ++++
src/main/java/com/zy/asrs/entity/result/StorageResult.java | 3
src/main/resources/mapper/LocDetlMapper.xml | 2
src/main/resources/mapper/WrkMastMapper.xml | 3
src/main/java/com/zy/asrs/entity/BasCrnp.java | 4
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java | 30 +-
src/main/java/com/zy/common/web/WcsController.java | 239 +++++++++++----
pom.xml | 2
src/main/java/com/zy/asrs/entity/param/CarryParam.java | 46 +++
src/main/java/com/zy/asrs/entity/param/GetShuttleStatusParam.java | 91 ++++++
src/main/java/com/zy/common/web/param/SearchLocParam.java | 5
src/main/java/com/zy/asrs/entity/LocDetl.java | 2
src/main/java/com/zy/asrs/task/OutWorkScheduler.java | 41 ++
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 8
src/main/java/com/zy/asrs/entity/Mat.java | 4
src/main/java/com/zy/asrs/controller/MatController.java | 2
src/main/webapp/static/js/common.js | 2
src/main/java/com/zy/asrs/controller/OutController.java | 47 ++
src/main/resources/application.yml | 12
src/main/webapp/static/image/logo.png | 0
24 files changed, 735 insertions(+), 164 deletions(-)
diff --git a/pom.xml b/pom.xml
index 095d9cd..4c54898 100644
--- a/pom.xml
+++ b/pom.xml
@@ -114,7 +114,7 @@
</dependencies>
<build>
- <finalName>htwms</finalName>
+ <finalName>lfdsxkwms</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
diff --git a/src/main/java/com/zy/asrs/controller/LocMastController.java b/src/main/java/com/zy/asrs/controller/LocMastController.java
index 5a9fba3..bbcb7e9 100644
--- a/src/main/java/com/zy/asrs/controller/LocMastController.java
+++ b/src/main/java/com/zy/asrs/controller/LocMastController.java
@@ -64,6 +64,7 @@
if (!Cools.isEmpty(orderByField)) {
wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
}
+ wrapper.orderBy("loc_attribute",false);
return R.ok(locMastService.selectPage(new Page<>(curr, limit), wrapper));
}
diff --git a/src/main/java/com/zy/asrs/controller/MatController.java b/src/main/java/com/zy/asrs/controller/MatController.java
index 41e0df1..bda8320 100644
--- a/src/main/java/com/zy/asrs/controller/MatController.java
+++ b/src/main/java/com/zy/asrs/controller/MatController.java
@@ -89,7 +89,7 @@
public R pdaSearch(@RequestParam(required = false) String condition) {
EntityWrapper<Mat> wrapper = new EntityWrapper<>();
if (!Cools.isEmpty(condition)) {
- wrapper.like("matnr", condition).or().like("maktx", condition);
+ wrapper.like("matnr", condition).or().like("maktx", condition).or().like("specs", condition);
}
wrapper.orderBy("create_time", false);
List<Mat> mats = matService.selectList(wrapper);
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 4217e4e..24bd3a6 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -8,6 +8,7 @@
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.entity.param.*;
import com.zy.asrs.service.OpenService;
+import com.zy.asrs.service.WorkService;
import com.zy.asrs.service.WrkMastService;
import com.zy.common.model.DetlDto;
import com.zy.common.web.BaseController;
@@ -38,12 +39,14 @@
private OpenService openService;
@Autowired
private WrkMastService wrkMastService;
+ @Autowired
+ private WorkService workService;
@PostMapping("/order/matSync/default/v1")
@AppAuth(memo = "鍟嗗搧淇℃伅鍚屾鎺ュ彛")
public synchronized R syncMatInfo(@RequestHeader(required = false) String appkey,
@RequestBody(required = false) MatSyncParam param,
- HttpServletRequest request){
+ HttpServletRequest request) {
auth(appkey, param, request);
if (Cools.isEmpty(param)) {
return R.parse(BaseRes.PARAM);
@@ -218,30 +221,30 @@
* 浠诲姟寮�濮�
*/
@RequestMapping("/start/task")
- public HashMap<String ,Object> startTask(@RequestBody HashMap<String,Object> map) {
- String taskNo = map.get("TaskNo")+"";
- HashMap<String ,Object> map1 = new HashMap<>();
- if(Cools.isEmpty(taskNo)){
+ public HashMap<String, Object> startTask(@RequestBody HashMap<String, Object> map) {
+ String taskNo = map.get("TaskNo") + "";
+ HashMap<String, Object> map1 = new HashMap<>();
+ if (Cools.isEmpty(taskNo)) {
map1.put("ReturnStatus", "1");
map1.put("ErrorMessage", "浠诲姟鍙蜂负绌�");
- }else{
- WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",Integer.valueOf(taskNo)));
- if(wrkMast == null){
+ } else {
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", Integer.valueOf(taskNo)));
+ if (wrkMast == null) {
map1.put("ReturnStatus", "1");
- map1.put("ErrorMessage", "娌℃湁鎵惧埌璇ヤ换鍔″彿锛�"+taskNo);
- }else{
- if(wrkMast.getIoType()==1){
+ map1.put("ErrorMessage", "娌℃湁鎵惧埌璇ヤ换鍔″彿锛�" + taskNo);
+ } else {
+ if (wrkMast.getIoType() == 1) {
wrkMast.setWrkSts(3L);//鍏ュ簱寮�濮�
- }else if(wrkMast.getIoType()==11){
+ } else if (wrkMast.getIoType() == 11) {
wrkMast.setWrkSts(13L);//鍑哄簱寮�濮�
}
wrkMast.setModiTime(new Date());
- if(wrkMastService.updateById(wrkMast)){
+ if (wrkMastService.updateById(wrkMast)) {
map1.put("ReturnStatus", "0");
map1.put("ErrorMessage", "");
- }else{
+ } else {
map1.put("ReturnStatus", "1");
- map1.put("ErrorMessage", "鏇存柊浠诲姟鐘舵�佸け璐�"+wrkMast);
+ map1.put("ErrorMessage", "鏇存柊浠诲姟鐘舵�佸け璐�" + wrkMast);
}
}
}
@@ -252,62 +255,97 @@
* 鎼繍鍒扮洰鐨勫湴
*/
@RequestMapping("/destination/task")
- public HashMap<String ,Object> destinationTask(@RequestBody HashMap<String,Object> map) {
- String taskNo = map.get("TaskNo")+"";
- HashMap<String ,Object> map1 = new HashMap<>();
- if(Cools.isEmpty(taskNo)){
+ public HashMap<String, Object> destinationTask(@RequestBody HashMap<String, Object> map) {
+ String taskNo = map.get("TaskNo") + "";
+ HashMap<String, Object> map1 = new HashMap<>();
+ if (Cools.isEmpty(taskNo)) {
map1.put("ReturnStatus", "1");
map1.put("ErrorMessage", "浠诲姟鍙蜂负绌�");
- }else{
- WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",Integer.valueOf(taskNo)));
- if(wrkMast == null){
- map1.put("ReturnStatus", "1");
- map1.put("ErrorMessage", "娌℃湁鎵惧埌璇ヤ换鍔″彿锛�"+taskNo);
- }else{
- if(wrkMast.getIoType()==1){
- wrkMast.setWrkSts(4L);//浠诲姟缁撴潫
- }else if(wrkMast.getIoType()==11){
- wrkMast.setWrkSts(13L);//鍑哄簱鍒扮珯鐐逛笂
- }
- wrkMast.setModiTime(new Date());
- if(wrkMastService.updateById(wrkMast)){
- map1.put("ReturnStatus", "0");
- map1.put("ErrorMessage", "");
- }else{
+ } else {
+ //浠诲姟瀹屾垚
+ if (map.get("Result").equals(1)) {
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", Integer.valueOf(taskNo)));
+ if (wrkMast == null) {
map1.put("ReturnStatus", "1");
- map1.put("ErrorMessage", "鏇存柊浠诲姟鐘舵�佸け璐�"+wrkMast);
+ map1.put("ErrorMessage", "娌℃湁鎵惧埌璇ヤ换鍔″彿锛�" + taskNo);
+ } else {
+ if (wrkMast.getIoType() == 1 || wrkMast.getIoType() == 10) {
+ wrkMast.setWrkSts(4L);//浠诲姟缁撴潫
+ } else if (wrkMast.getIoType() == 101) {
+ wrkMast.setWrkSts(13L);//鍑哄簱鍒扮珯鐐逛笂
+ } else if (wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57) {
+ wrkMast.setWrkSts(4L);//4.浠诲姟缁撴潫
+ } else if (wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107 || wrkMast.getIoType() == 110) {
+ wrkMast.setWrkSts(14L);
+ }
+ wrkMast.setModiTime(new Date());
+ if (wrkMastService.updateById(wrkMast)) {
+ map1.put("ReturnStatus", "0");
+ map1.put("ErrorMessage", "");
+ } else {
+ map1.put("ReturnStatus", "1");
+ map1.put("ErrorMessage", "鏇存柊浠诲姟鐘舵�佸け璐�" + wrkMast);
+ }
}
+ } else {
+ //浠诲姟鍙栨秷
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", Integer.valueOf(taskNo)));
+ if (wrkMast == null) {
+ map1.put("ReturnStatus", "1");
+ map1.put("ErrorMessage", "娌℃湁鎵惧埌璇ヤ换鍔″彿锛�" + taskNo);
+ return map1;
+ }
+ workService.cancelWrkMast(String.valueOf(wrkMast.getWrkNo()),9999L);
}
}
return map1;
}
/**
- * 鎼繍鍒扮洰鐨勫湴
+ * 鍑哄簱---鐩殑鍦版惉绂�
*/
@RequestMapping("/leave/task")
- public HashMap<String ,Object> leaveTask(@RequestBody HashMap<String,Object> map) {
- String taskNo = map.get("TaskNo")+"";
- HashMap<String ,Object> map1 = new HashMap<>();
- if(Cools.isEmpty(taskNo)){
+ public HashMap<String, Object> leaveTask(@RequestBody HashMap<String, Object> map) {
+ String taskNo = map.get("TaskNo") + "";
+ HashMap<String, Object> map1 = new HashMap<>();
+ if (Cools.isEmpty(taskNo)) {
map1.put("ReturnStatus", "1");
map1.put("ErrorMessage", "浠诲姟鍙蜂负绌�");
- }else{
- WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",Integer.valueOf(taskNo)));
- if(wrkMast == null){
+ } else {
+
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", Integer.valueOf(taskNo)));
+ if (wrkMast == null) {
map1.put("ReturnStatus", "1");
- map1.put("ErrorMessage", "娌℃湁鎵惧埌璇ヤ换鍔″彿锛�"+taskNo);
- }else{
+ map1.put("ErrorMessage", "娌℃湁鎵惧埌璇ヤ换鍔″彿锛�" + taskNo);
+ return map1;
+ }
+ if ((wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107 || wrkMast.getIoType() == 110) && wrkMast.getWrkSts() != 14) {
wrkMast.setWrkSts(14L);//鍑哄簱鍒扮珯鐐逛笂
wrkMast.setModiTime(new Date());
- if(wrkMastService.updateById(wrkMast)){
+ if (wrkMastService.updateById(wrkMast)) {
map1.put("ReturnStatus", "0");
map1.put("ErrorMessage", "");
- }else{
+ } else {
map1.put("ReturnStatus", "1");
- map1.put("ErrorMessage", "鏇存柊浠诲姟鐘舵�佸け璐�"+wrkMast);
+ map1.put("ErrorMessage", "鏇存柊浠诲姟鐘舵�佸け璐�" + wrkMast);
+ }
+ } else if (wrkMast.getIoType() != 101) {
+ map1.put("ReturnStatus", "0");
+ map1.put("ErrorMessage", "");
+ return map1;
+ } else {
+ wrkMast.setWrkSts(14L);//鍑哄簱鍒扮珯鐐逛笂
+ wrkMast.setModiTime(new Date());
+ if (wrkMastService.updateById(wrkMast)) {
+ map1.put("ReturnStatus", "0");
+ map1.put("ErrorMessage", "");
+ } else {
+ map1.put("ReturnStatus", "1");
+ map1.put("ErrorMessage", "鏇存柊浠诲姟鐘舵�佸け璐�" + wrkMast);
}
}
+
+
}
return map1;
}
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 0d2ba7d..2853918 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -1,16 +1,19 @@
package com.zy.asrs.controller;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.ManagerAuth;
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.common.R;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.LocDetl;
+import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.service.*;
import com.zy.common.model.LocDto;
import com.zy.common.model.TaskDto;
import com.zy.common.web.BaseController;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -23,7 +26,7 @@
/**
* Created by vincent on 2022/3/26
*/
-
+@Slf4j
@RestController
public class OutController extends BaseController {
@@ -66,17 +69,37 @@
if (issued <= 0.0D) { continue; }
List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist);
for (LocDetl locDetl : locDetls) {
- if (issued > 0) {
- LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
- issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
- List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103);
- locDto.setStaNos(staNos);
- locDtos.add(locDto);
- exist.add(locDetl.getLocNo());
- // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
- issued = issued - locDetl.getAnfme();
- } else {
- break;
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
+ if(locMast==null){
+ R.error("娌℃湁鎵惧埌璇ュ簱浣嶏細"+locDetl.getLocNo());
+ }
+ List<LocMast> locMasts=locMastService.selectList(new EntityWrapper<LocMast>()
+ .eq("group1",locMast.getGroup1())
+ .eq("loc_sts","F")
+ .orderBy("loc_attribute",false));
+ for (LocMast locMast1 : locMasts) {
+ LocDetl locDetl1 = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast1.getLocNo()));
+ if(locDetl1==null){
+ return R.error(locMast1.getLocNo()+"娌℃湁鎵惧埌鐗╂枡");
+ }
+ if (!locDetl1.getMatnr().equals(locDetl.getMatnr())) {
+ log.error(locMast1.getGroup1()+"宸烽亾鐨勭"+locMast1.getLocAttribute()+"娣辨祬搴撲綅鍙峰拰鍚屽贩閬撶墿鏂欎笉鍚�");
+ break;
+ }
+ if (issued > 0) {
+ LocDto locDto = new LocDto(locDetl1.getLocNo(), locDetl1.getMatnr(), locDetl1.getMaktx(), locDetl1.getBatch(), orderDetl.getOrderNo(),
+ issued >= locDetl1.getAnfme() ? locDetl1.getAnfme() : issued);
+ List<Integer> staNos = new ArrayList<>();
+ staNos.add(100);
+ staNos.add(200);
+ locDto.setStaNos(staNos);
+ locDtos.add(locDto);
+ exist.add(locDetl.getLocNo());
+ // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
+ issued = issued - locDetl.getAnfme();
+ } else {
+ break;
+ }
}
}
if (issued > 0) {
diff --git a/src/main/java/com/zy/asrs/entity/BasCrnp.java b/src/main/java/com/zy/asrs/entity/BasCrnp.java
index eb4f9df..8d368db 100644
--- a/src/main/java/com/zy/asrs/entity/BasCrnp.java
+++ b/src/main/java/com/zy/asrs/entity/BasCrnp.java
@@ -50,8 +50,8 @@
/**
* 鐘舵��
* 1.鑱旀満
- * 2.鎵嬪姩
- * 3.鍏呯數涓�
+ * 0.鎵嬪姩
+ * 2.鍏呯數涓�
*/
@ApiModelProperty(value= "鐘舵��")
@TableField("crn_sts")
diff --git a/src/main/java/com/zy/asrs/entity/LocDetl.java b/src/main/java/com/zy/asrs/entity/LocDetl.java
index 0556824..0b63f8a 100644
--- a/src/main/java/com/zy/asrs/entity/LocDetl.java
+++ b/src/main/java/com/zy/asrs/entity/LocDetl.java
@@ -67,7 +67,7 @@
@ApiModelProperty(value= "鍗曚綅")
private String unit;
- @ApiModelProperty(value= "鍗曚环")
+ @ApiModelProperty(value= "搴撳瓨鏁伴噺")
private Double price;
@ApiModelProperty(value= "sku")
diff --git a/src/main/java/com/zy/asrs/entity/Mat.java b/src/main/java/com/zy/asrs/entity/Mat.java
index edeaf84..e77a43b 100644
--- a/src/main/java/com/zy/asrs/entity/Mat.java
+++ b/src/main/java/com/zy/asrs/entity/Mat.java
@@ -86,10 +86,10 @@
private String specs;
/**
- * 鍨嬪彿
+ * 鍥惧彿
*/
@ApiModelProperty(value= "鍨嬪彿")
- @ExcelProperty(value = "鍨嬪彿")
+ @ExcelProperty(value = "鍥惧彿")
private String model;
/**
diff --git a/src/main/java/com/zy/asrs/entity/param/CarryParam.java b/src/main/java/com/zy/asrs/entity/param/CarryParam.java
new file mode 100644
index 0000000..63dc5ce
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/CarryParam.java
@@ -0,0 +1,46 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+@Data
+public class CarryParam {
+ //宸ヤ綔鍙�
+ private String TaskNo;
+
+ //鍏ュ嚭搴撶被鍨�
+ private Integer StereoscopicTaskType;
+
+ //浼樺厛绾�
+ private Integer Priority;
+
+ //瀹瑰櫒缂栫爜
+ private String BoxNo;
+
+ //婧愯揣浣嶆帓缂栧彿
+ private Integer OriginalRowNo;
+
+ //婧愯揣浣嶅眰缂栧彿
+ private Integer OriginalFloorNo;
+
+ //婧愯揣浣嶅垪缂栧彿
+ private Integer OriginalColumnNo;
+
+ //鐩爣搴撲綅鎺掔紪鍙�
+ private Integer GoalRowNo;
+
+ //鐩爣搴撲綅灞傜紪鍙�
+ private Integer GoalFloorNo;
+
+ //鐩爣搴撲綅鍒楃紪鍙�
+ private Integer GoalColumnNo;
+
+ //璧风偣
+ private String startPoint;
+
+ //缁堢缂栧彿锛堣緭閫佺嚎涓婃煇涓�鐐逛綅锛�
+ private String TerminalNo;
+
+ //澶囨敞
+ private String meno;
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/GetShuttleStatusParam.java b/src/main/java/com/zy/asrs/entity/param/GetShuttleStatusParam.java
new file mode 100644
index 0000000..5c126d6
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/GetShuttleStatusParam.java
@@ -0,0 +1,91 @@
+package com.zy.asrs.entity.param;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class GetShuttleStatusParam {
+
+ /**
+ * 灏忚溅鍙�
+ */
+ private Integer shuttleNo;
+
+ /**
+ * 鐘舵�� 1: 姝e父 0: 鎵嬪姩 2.鍏呯數涓�
+ */
+ @ApiModelProperty(value= "鐘舵�� 1: 姝e父 0: 鎵嬪姩 2.鍏呯數涓� ")
+ private Integer status;
+
+ /**
+ * 灏忚溅鎵�鍦ㄥ眰
+ */
+ @ApiModelProperty(value= "灏忚溅鎵�鍦ㄥ眰")
+ @TableField("charge_line")
+ private Integer chargeLine;
+
+
+ /**
+ * 灏忚溅寮傚父鐮�
+ */
+ @ApiModelProperty(value= "灏忚溅寮傚父鐮�")
+ @TableField("errorCode")
+ private Integer errorCode;
+
+ /**
+ * 灏忚溅鐘舵��
+ * <p>
+ * IDLE(1, "绌洪棽"),
+ * WORKING(2, "浣滀笟涓�"),
+ * WAITING(3, "绛夊緟纭"),
+ * CHARGING(4, "鍏呯數涓�"),
+ * CHARGING_WAITING(5, "鍏呯數浠诲姟绛夊緟纭"),
+ * FIXING(6, "鏁呴殰淇涓�"),
+ * OFFLINE(7, "绂荤嚎"),
+ */
+ private Integer protocolStatus;
+ /**
+ * 褰撳墠浜岀淮鐮�
+ * 0涓虹┖
+ */
+ private String currentCode;
+
+ /**
+ * 鏄惁涓哄厖鐢电姸鎬�
+ */
+ private Boolean hasCharge;
+
+
+
+
+ public String getProtocolStatus$() {
+ String protocolStatus$ = "";
+ switch (this.protocolStatus) {
+ case 1:
+ protocolStatus$ = "绌洪棽";
+ break;
+ case 2:
+ protocolStatus$ = "浣滀笟涓�";
+ break;
+ case 3:
+ protocolStatus$ = "绛夊緟纭";
+ break;
+ case 4:
+ protocolStatus$ = "鍏呯數涓�";
+ break;
+ case 5:
+ protocolStatus$ = "鍏呯數浠诲姟绛夊緟纭";
+ break;
+ case 6:
+ protocolStatus$ = "鏁呴殰淇涓�";
+ break;
+ case 7:
+ protocolStatus$ = "绂荤嚎";
+ break;
+
+
+ }
+ return protocolStatus$;
+ }
+}
diff --git a/src/main/java/com/zy/asrs/entity/result/StorageResult.java b/src/main/java/com/zy/asrs/entity/result/StorageResult.java
index bdc456d..f9f56e5 100644
--- a/src/main/java/com/zy/asrs/entity/result/StorageResult.java
+++ b/src/main/java/com/zy/asrs/entity/result/StorageResult.java
@@ -8,12 +8,15 @@
private Integer ReturnStatus = 0;
private Results Results;
+
@Data
public static class Results{
//搴撲綅鍙�
private String ShelfUnitId;
//浠诲姟鍙�
private Integer TaskNo;
+
+ private String barcode;
}
}
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 4664557..a254a5c 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -232,7 +232,7 @@
wrkMast.setIoTime(now);
wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
- wrkMast.setIoPri(13D); // 浼樺厛绾э細13
+ wrkMast.setIoPri(10.0+locMast.getLocAttribute()); // 浼樺厛绾�
wrkMast.setCrnNo(locMast.getCrnNo());
wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
@@ -300,6 +300,7 @@
StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
// 鐢熸垚宸ヤ綔鍙�
int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
+ int yz=staDesc.getStnNo()*10+Integer.valueOf(taskDto.getLocNo().substring(6));
// 鐢熸垚宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
wrkMast.setWrkNo(workNo);
@@ -308,7 +309,7 @@
wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
wrkMast.setIoPri(13D); // 浼樺厛绾э細13
wrkMast.setCrnNo(locMast.getCrnNo());
- wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
+ wrkMast.setSourceStaNo(yz); // 婧愮珯
wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
wrkMast.setSourceLocNo(taskDto.getLocNo()); // 婧愬簱浣�
wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
@@ -331,6 +332,7 @@
if (orderDetl == null) {
orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
}
+ LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locDto.getLocNo()).eq("matnr", locDto.getMatnr()));
Mat mat=matService.selectOne(new EntityWrapper<Mat>().eq("matnr",locDto.getMatnr()));
WrkDetl wrkDetl = new WrkDetl();
wrkDetl.sync(orderDetl);
@@ -340,6 +342,7 @@
wrkDetl.setBatch(locDto.getBatch());
wrkDetl.setOrderNo(locDto.getOrderNo());
wrkDetl.setModel(mat.getModel());
+ wrkDetl.setPrice(locDetl.getAnfme());//搴撳瓨鏁伴噺
wrkDetl.setAnfme(locDto.getAnfme()); // 鏁伴噺
wrkDetl.setAppeTime(now);
wrkDetl.setAppeUser(userId);
@@ -465,6 +468,7 @@
wrkMast.setStaNo(param.getOutSite()); // 鐩爣绔�
wrkMast.setCrnNo(locMast.getCrnNo());
wrkMast.setSourceLocNo(locNo); // 婧愬簱浣�
+ wrkMast.setIoPri(10.0+locMast.getLocAttribute());//浼樺厛绾�
wrkMast.setFullPlt("N"); // 婊℃澘锛歒
wrkMast.setPicking("N"); // 鎷f枡
wrkMast.setExitMk("N"); // 閫�鍑�
diff --git a/src/main/java/com/zy/asrs/task/GetEquipmentStatus.java b/src/main/java/com/zy/asrs/task/GetEquipmentStatus.java
new file mode 100644
index 0000000..a1164aa
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/GetEquipmentStatus.java
@@ -0,0 +1,74 @@
+package com.zy.asrs.task;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.zy.asrs.entity.BasCrnp;
+import com.zy.asrs.entity.BasDevp;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.entity.param.GetShuttleStatusParam;
+import com.zy.asrs.service.ApiLogService;
+import com.zy.asrs.service.BasCrnpService;
+import com.zy.asrs.service.BasDevpService;
+import com.zy.asrs.service.impl.BasDevpServiceImpl;
+import com.zy.asrs.task.core.ReturnT;
+import com.zy.common.utils.HttpHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Component
+public class GetEquipmentStatus {
+ private static final Logger log = LoggerFactory.getLogger(WorkMastScheduler.class);
+ @Value("${wcs.address.URL}")
+ private String addrs;
+ @Value("${wcs.address.deviceStatus}")
+ private String deviceStatus;
+ @Autowired
+ private BasCrnpService basCrnpService;
+ @Autowired
+ private ApiLogService apiLogService;
+ @Autowired
+ private BasDevpService basDevpService;
+
+ @Scheduled(cron = "0/3 * * * * ? ")
+ private void execute() {
+ //鑾峰彇璁惧淇℃伅
+ String response ="";
+ try {
+ response = new HttpHandler.Builder()
+ // .setHeaders(headParam)
+ .setUri(addrs)
+ .setPath(deviceStatus)
+ .build()
+ .doGet();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.get("code").equals(200)) {
+ JSONObject data = JSON.parseObject(jsonObject.get("data").toString());
+ List<GetShuttleStatusParam> shuttles = JSON.parseArray(data.get("basShuttle").toString(), GetShuttleStatusParam.class);
+ for (GetShuttleStatusParam shuttle : shuttles) {
+
+
+ BasCrnp shuttle1 = basCrnpService.selectOne(new EntityWrapper<BasCrnp>().eq("crn_no", shuttle.getShuttleNo()));
+ shuttle1.setCrnSts(shuttle.getStatus());//灏忚溅妯″紡
+ shuttle1.setCrnErr(Long.valueOf(shuttle.getErrorCode()));//灏忚溅鎶ヨ
+ shuttle1.setLev1(shuttle.getChargeLine());//灏忚溅鎵�鍦ㄥ眰
+ basCrnpService.updateById(shuttle1);
+ }
+
+ List<BasDevp> basDevps = JSON.parseArray(data.get("basDevp").toString(), BasDevp.class);
+ for (BasDevp basDevp : basDevps) {
+ basDevpService.updateById(basDevp);
+ }
+ }
+ } catch (Exception e) {
+ log.error("wms璇诲彇wcs灏忚溅鐘舵�佸け璐�");
+ }
+ }
+}
diff --git a/src/main/java/com/zy/asrs/task/OutWorkScheduler.java b/src/main/java/com/zy/asrs/task/OutWorkScheduler.java
new file mode 100644
index 0000000..1bb688d
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/OutWorkScheduler.java
@@ -0,0 +1,41 @@
+package com.zy.asrs.task;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.task.core.ReturnT;
+import com.zy.asrs.task.handler.OutWorkHandler;
+import com.zy.asrs.task.handler.WorkMastHandler;
+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.List;
+
+@Component
+public class OutWorkScheduler {
+ private static final Logger log = LoggerFactory.getLogger(WorkMastScheduler.class);
+
+ @Autowired
+ OutWorkHandler outWorkHandler;
+ @Autowired
+ WrkMastService wrkMastService;
+
+ /**
+ * 鍑哄簱浠诲姟涓嬪彂
+ */
+ @Scheduled(cron = "0/3 * * * * ? ")
+ private void execute() {
+ List<WrkMast> wrkMasts=wrkMastService.selectList(new EntityWrapper<WrkMast>()
+ .eq("wrk_sts",11)
+ .in("io_type",11,101,103,107,110));
+ for(WrkMast wrkMast:wrkMasts){
+ ReturnT<String> result = outWorkHandler.start(wrkMast);
+ if (!result.isSuccess()) {
+ log.error("wms涓嬪彂鍑哄簱绉诲簱浠诲姟={}缁檞cs涓嬪彂澶辫触", wrkMast.getWrkNo());
+ }
+ }
+ }
+}
diff --git a/src/main/java/com/zy/asrs/task/handler/OutWorkHandler.java b/src/main/java/com/zy/asrs/task/handler/OutWorkHandler.java
new file mode 100644
index 0000000..06dd5f1
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/handler/OutWorkHandler.java
@@ -0,0 +1,95 @@
+package com.zy.asrs.task.handler;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.entity.param.CarryParam;
+import com.zy.asrs.service.ApiLogService;
+import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.service.impl.LocMastServiceImpl;
+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.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+@Slf4j
+@Service
+@Transactional
+public class OutWorkHandler extends AbstractHandler<String> {
+
+ @Autowired
+ private LocMastService locMastService;
+ @Autowired
+ private ApiLogService apiLogService;
+ @Value("${wcs.address.URL}")
+ private String addrs;
+ @Value("${wcs.address.outboundTaskSend}")
+ private String outboundTaskSend;
+ @Autowired
+ private WrkMastService wrkMastService;
+
+
+ public synchronized ReturnT<String> start(WrkMast wrkMast) {
+ //浼樺厛绾�
+ LocMast locMast=locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getSourceLocNo()));
+ int Priority = locMast.getLocAttribute() == null ? 0 : locMast.getLocAttribute();
+
+ HashMap<String, Object> map = new HashMap<>();
+ CarryParam carryParam = new CarryParam();
+ carryParam.setBoxNo(wrkMast.getBarcode());//鎵樼洏鐮�
+ carryParam.setTaskNo(wrkMast.getWrkNo()+"");//浠诲姟鍙�
+ carryParam.setStereoscopicTaskType(2);//2.鍑哄簱
+ carryParam.setPriority(10+Priority);//浼樺厛绾�
+ carryParam.setOriginalRowNo(locMast.getRow1());//婧愬簱浣嶆帓
+ carryParam.setOriginalColumnNo(locMast.getBay1());//婧愬簱浣嶅垪
+ carryParam.setOriginalFloorNo(locMast.getLev1());//婧愬簱浣嶅眰
+ carryParam.setStartPoint(wrkMast.getStaNo()+""+locMast.getLev1());//婧愮珯
+ carryParam.setTerminalNo(wrkMast.getStaNo()+"");//鐩爣绔�
+ List<CarryParam> carryParamList=new ArrayList<>();
+ carryParamList.add(carryParam);
+ map.put("TaskList",carryParamList);
+
+ String response ="";
+ Boolean bool =false;
+ try {
+ log.info("wms娲惧彂浠诲姟缁檞cs鍑哄簱={}", map);
+ response = new HttpHandler.Builder()
+ // .setHeaders(headParam)
+ .setUri(addrs)
+ .setPath(outboundTaskSend)
+ .setJson(JSON.toJSONString(map))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if(jsonObject.get("Code").equals("1")){
+ wrkMast.setWrkSts(12L);
+ wrkMastService.updateById(wrkMast);
+ bool = true;
+ }
+ } catch (Exception e) {
+ log.error("wcs娲惧彂浠诲姟缁橰CS鍑哄簱澶辫触{},杩斿洖鍊�={}", wrkMast, response);
+ } finally {
+ apiLogService.save("wcs娲惧彂浠诲姟缁橰CS鍑哄簱"
+ , addrs + outboundTaskSend
+ , null
+ , "127.0.0.1"
+ , JSON.toJSONString(map)
+ , response
+ , bool
+ );
+ }
+ return SUCCESS;
+
+ }
+}
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
index 4fa9711..32abee8 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -71,27 +71,27 @@
}
}
// 鎵嬪姩鍏ュ簱鐢熸垚鍗曟嵁 銆� 涓婃姤涓夋柟骞冲彴 銆�
- if (!Cools.isEmpty(wrkDetls)) {
- if (!orderService.saveHandlerOrder(Boolean.TRUE, wrkMast, wrkDetls)) {
- exceptionHandle("鐢熸垚鎵嬪姩鍏ュ簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
- }
- }
+// if (!Cools.isEmpty(wrkDetls)) {
+// if (!orderService.saveHandlerOrder(Boolean.TRUE, wrkMast, wrkDetls)) {
+// exceptionHandle("鐢熸垚鎵嬪姩鍏ュ簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
+// }
+// }
// 鎷f枡鍐嶅叆搴�
} else if (wrkMast.getIoType() == 53) {
- if (!Cools.isEmpty(wrkDetls)) {
- if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) {
- exceptionHandle("鐢熸垚鎵嬪姩鍑哄簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
- }
- }
+// if (!Cools.isEmpty(wrkDetls)) {
+// if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) {
+// exceptionHandle("鐢熸垚鎵嬪姩鍑哄簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
+// }
+// }
}
// 鍑哄簱 --------------------------------------------------------------------------------
} else if (wrkMast.getWrkSts() == 15) {
- if (!Cools.isEmpty(wrkDetls)) {
- if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) {
- exceptionHandle("鐢熸垚鎵嬪姩鍑哄簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
- }
- }
+// if (!Cools.isEmpty(wrkDetls)) {
+// if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) {
+// exceptionHandle("鐢熸垚鎵嬪姩鍑哄簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
+// }
+// }
}
// 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
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..62ed062 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -35,6 +35,10 @@
private WaitPakinService waitPakinService;
@Autowired
private OrderDetlService orderDetlService;
+ @Autowired
+ private WrkMastLogService wrkMastLogService;
+ @Autowired
+ private WrkDetlLogService wrkDetlLogService;
public ReturnT<String> start(WrkMast wrkMast) {
// 4.鍏ュ簱瀹屾垚
@@ -156,9 +160,16 @@
}
for (WrkDetl wrkDetl : wrkDetls53) {
- LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+ LocDetl locDetl = new LocDetl();
+ locDetl.sync(wrkDetl);
+ locDetl.setAnfme(wrkDetl.getPrice()-wrkDetl.getAnfme());//鏁伴噺
+ locDetl.setLocNo(wrkMast.getLocNo()); // 搴撲綅鍙�
+ locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
+ locDetl.setModiTime(now);
+ locDetl.setAppeTime(now);
+ locDetl.setPrice(0.0);
if (null != locDetl) {
- if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
+ if (!locDetlService.insert(locDetl)) {
// exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
@@ -184,7 +195,7 @@
}
// 淇敼搴撲綅鐘舵�� Q ====>> F
- if (locMast.getLocSts().equals("Q")) {
+ if (locMast.getLocSts().equals("S")) {
locMast.setLocSts("F");
locMast.setBarcode(wrkMast.getBarcode());
locMast.setIoTime(now);
@@ -382,6 +393,8 @@
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
}
+ // 淇敼宸ヤ綔涓绘。鐘舵��
+ wrkMast.setWrkSts(15L);
}
break;
// 绌烘澘鍑哄簱
@@ -397,13 +410,40 @@
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("绌烘澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
}
+ // 淇敼宸ヤ綔涓绘。鐘舵��
+ wrkMast.setWrkSts(15L);
+ }
+ break;
+ //鎷f枡鍜岀洏鐐瑰嚭搴�
+ case 103:
+ case 107:
+ if (locMast.getLocSts().equals("P")) {
+ locMast.setLocSts("O");
+ locMast.setBarcode("");
+ locMast.setModiTime(now);
+ locMast.setIoTime(now);
+ if (!locMastService.updateById(locMast)) {
+// exceptionHandle("绌烘澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鎷f枡鍜岀洏鐐瑰嚭搴� ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+ }
+ wrkMast.setWrkSts(16L);//绛夊緟鍏ュ簱
+ // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+ if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
+ exceptionHandle("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={0}]澶辫触", wrkMast.getWrkNo());
+ }
+ if(!wrkMast.getEmptyMk().equals("Y")) {
+ // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+ if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
+ exceptionHandle("淇濆瓨宸ヤ綔鏄庣粏鍘嗗彶妗workNo={0}]澶辫触", wrkMast.getWrkNo());
+ }
+ }
}
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/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 72cd9a1..6f16d15 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -46,43 +46,100 @@
private LocDetlService locDetlService;
@Autowired
private BasCrnpService basCrnpService;
+ @PostMapping("/pakin/loc/returnWarehouse")
+ @ResponseBody
+ public synchronized StorageResult returnWarehouse(@RequestBody(required = false) SearchLocParam param) {
+ StorageResult storageResult=new StorageResult();
+ if (Cools.isEmpty(param.getTaskNo())) {
+ storageResult.setReturnStatus(1);
+ storageResult.setErrorMessage("浼犲叆宸ヤ綔鍙蜂负绌�");
+ return storageResult;
+ }
+ WrkMast wrkMast =wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+ .eq("wrk_no",param.getTaskNo())
+ .in("io_type",103,107));
+ if (Cools.isEmpty(wrkMast)){
+ storageResult.setReturnStatus(1);
+ storageResult.setErrorMessage("娌℃湁鎵惧埌鐩樼偣鎷f枡浠诲姟---------"+param.getTaskNo());
+ return storageResult;
+ }
+ SearchLocParam searchLocParam = new SearchLocParam();
+ searchLocParam.setBoxNo(wrkMast.getBarcode());
+ searchLocParam.setWcsIoType(1);//婊℃澘
+ searchLocParam.setWcsSourceStaNo(wrkMast.getStaNo());
+ searchLocParam.setWcsStatus(0);
+ return getLocNo(searchLocParam);
+ }
+
@PostMapping("/pakin/loc/v1")
@ResponseBody
- public synchronized R getLocNo(@RequestBody(required = false) SearchLocParam param) {
+ public synchronized StorageResult getLocNo(@RequestBody(required = false) SearchLocParam param) {
StorageResult storageResult=new StorageResult();
log.info("鏀跺埌WCS鍏ュ簱鎺ュ彛璇锋眰====>>鍏ュ弬:{}", param);
if (Cools.isEmpty(param.getWcsIoType())) {
- return R.error("鍏ュ嚭搴撶被鍨嬩笉鑳戒负绌�");
+ storageResult.setReturnStatus(1);
+ storageResult.setErrorMessage("鍏ュ嚭搴撶被鍨嬩笉鑳戒负绌�");
+ return storageResult;
}
if (Cools.isEmpty(param.getWcsSourceStaNo())) {
- return R.error("婧愮珯缂栧彿涓嶈兘涓虹┖");
+ storageResult.setReturnStatus(1);
+ storageResult.setErrorMessage("婧愮珯缂栧彿涓嶈兘涓虹┖");
+ return storageResult;
}
+ int ioType = 0;
List<WaitPakin> waitPakins = null;
if (param.getWcsIoType() == 1) {
- if (Cools.isEmpty(param.getBoxNo())) {
- return R.error("鏉$爜涓嶈兘涓虹┖");
+ //鎷f枡鍜岀洏鐐瑰叆搴�
+ WrkMast wrkMast1037 =wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+ .eq("barcode", param.getBoxNo())
+ .in("io_type",103,107));
+ WrkMast wrkMast537 =wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+ .eq("barcode", param.getBoxNo())
+ .in("io_type",53,57));
+ if (wrkMast537 != null) {
+ StorageResult.Results results=new StorageResult.Results();
+ results.setTaskNo(wrkMast537.getWrkNo());
+ results.setShelfUnitId(wrkMast537.getLocNo()+"");
+ storageResult.setResults(results);
+ return storageResult;
}
- waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBoxNo()));
- if (Cools.isEmpty(waitPakins)) {
- WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBoxNo());
- if (wrkMast != null && wrkMast.getIoType() == 103) {
- return R.parse(CodeRes.PICK_600);
+ if(Cools.isEmpty(wrkMast1037)) {
+ if (Cools.isEmpty(param.getBoxNo())) {
+ storageResult.setReturnStatus(1);
+ storageResult.setErrorMessage("鏉$爜涓嶈兘涓虹┖");
+ return storageResult;
}
- return R.parse(CodeRes.NO_COMB_700);
+ waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBoxNo()));
+ if (Cools.isEmpty(waitPakins)) {
+ WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBoxNo());
+ if (wrkMast != null && wrkMast.getIoType() == 103) {
+ storageResult.setReturnStatus(1);
+ storageResult.setErrorMessage(CodeRes.PICK_600);
+ return storageResult;
+ }
+ storageResult.setReturnStatus(1);
+ storageResult.setErrorMessage(CodeRes.NO_COMB_700);
+ return storageResult;
+ }
+ int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBoxNo()));
+ int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", param.getBoxNo()));
+ if (countLoc > 0 || countWrk > 0) {
+ storageResult.setReturnStatus(1);
+ storageResult.setErrorMessage(CodeRes.EXIST_500);
+ return storageResult;
+ }
+ }else {
+ ioType = wrkMast1037.getIoType();
}
- int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBoxNo()));
- int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBoxNo()));
- if (countLoc > 0 || countWrk > 0) {
- return R.error(CodeRes.EXIST_500);
- }
+
}
switch (param.getWcsIoType()) {
case 1://婊℃墭鐩樺叆搴�
assert waitPakins != null;
- storageResult = startupFullPutStore(param.getWcsSourceStaNo(), param.getBoxNo(), waitPakins);
+ storageResult = startupFullPutStore(param.getWcsSourceStaNo(), param.getBoxNo(), waitPakins,ioType);
break;
case 2://绌烘墭鐩樺叆搴�
storageResult = emptyPlateIn(param.getWcsSourceStaNo(), param.getBoxNo());
@@ -91,80 +148,111 @@
break;
}
log.info("WCS鍏ュ簱鎺ュ彛杩斿弬:{},鎵樼洏鐮�:{}", storageResult, param.getBoxNo());
- return R.ok().add(storageResult);
+ return storageResult;
}
+
/**
* 鍏ㄦ澘鍏ュ簱
*/
@Transactional
- public StorageResult startupFullPutStore(Integer devpNo, String barcode, List<WaitPakin> waitPakins) {
+ public StorageResult startupFullPutStore(Integer devpNo, String barcode, List<WaitPakin> waitPakins,Integer ioType) {
StorageResult storageResult=new StorageResult();
Integer[] arr=arr();
- int type=Cools.isEmpty(waitPakins.get(0).getBeBatch())?1:waitPakins.get(0).getBeBatch();
- // 妫�绱㈠簱浣�
- LocMast locMast1 =commonService.getLocNo2(waitPakins.get(0),arr,0,type,1);
- int workNo = commonService.getWorkNo(0);
- Date now = new Date();
- // 鐢熸垚宸ヤ綔妗�
- WrkMast wrkMast = new WrkMast();
- wrkMast.setWrkNo(workNo);
- wrkMast.setIoTime(new Date());
- wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
- wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
- wrkMast.setIoPri(13D); // 浼樺厛绾�
- wrkMast.setSourceStaNo(devpNo);
- wrkMast.setLocNo(locMast1.getLocNo());
- wrkMast.setBarcode(barcode); // 鎵樼洏鐮�
- wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
- wrkMast.setPicking("N"); // 鎷f枡
- wrkMast.setExitMk("N"); // 閫�鍑�
- wrkMast.setEmptyMk("N"); // 绌烘澘
- wrkMast.setLinkMis("Y");
- wrkMast.setCtnType(1); // 瀹瑰櫒绫诲瀷
- // 鎿嶄綔浜哄憳鏁版嵁
- wrkMast.setAppeTime(now);
- wrkMast.setModiTime(now);
- boolean res = wrkMastService.insert(wrkMast);
- if (!res) {
- throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
- }
- // 鐢熸垚宸ヤ綔妗f槑缁�
- waitPakins.forEach(waitPakin -> {
- WrkDetl wrkDetl = new WrkDetl();
- wrkDetl.sync(waitPakin);
- wrkDetl.setWrkNo(wrkMast.getWrkNo());
- wrkDetl.setIoTime(wrkMast.getIoTime());
- wrkDetl.setAppeTime(now);
- wrkDetl.setModiTime(now);
- if (!wrkDetlService.insert(wrkDetl)) {
- throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ LocMast locMast1=new LocMast();
+ Integer workNo = 0;
+ //鍒ゆ柇鏄惁鏄嫞鏂欐垨鑰呮槸鐩樼偣
+ if(ioType==103||ioType==107) {
+ WrkDetl wrkDetl=wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("zpallet", barcode));
+
+ int type=Cools.isEmpty(wrkDetl.getBeBatch())?1:wrkDetl.getBeBatch();
+ // 妫�绱㈠簱浣�
+ WaitPakin waitPakin1=new WaitPakin();
+ waitPakin1.sync(wrkDetl);
+ locMast1 =commonService.getLocNo2(waitPakin1,arr,0,type,1);
+
+ WrkMast wrkMast=wrkMastService.selectByBarcode(barcode);
+ workNo = wrkMast.getWrkNo();
+ int mbz=wrkMast.getStaNo()*10+Integer.valueOf(wrkMast.getSourceLocNo().substring(6));
+ String ykw=wrkMast.getLocNo();
+ wrkMast.setIoType(ioType-50);
+ wrkMast.setWrkSts(1L);//鍏ュ簱
+ wrkMast.setModiTime(new Date());
+ wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
+ wrkMast.setStaNo(mbz); // 鐩爣绔�
+ wrkMast.setLocNo(locMast1.getLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
+ wrkMast.setSourceLocNo(ykw); // 婧愬簱浣�
+ wrkMastService.updateById(wrkMast);
+ }else{
+ int type=Cools.isEmpty(waitPakins.get(0).getBeBatch())?1:waitPakins.get(0).getBeBatch();
+ // 妫�绱㈠簱浣�
+ locMast1 =commonService.getLocNo2(waitPakins.get(0),arr,0,type,1);
+
+ //姝e父鍏ュ簱
+ workNo = commonService.getWorkNo(0);
+ Date now = new Date();
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(new Date());
+ wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+ wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
+ wrkMast.setIoPri(13D); // 浼樺厛绾�
+ wrkMast.setSourceStaNo(devpNo);
+ wrkMast.setLocNo(locMast1.getLocNo());
+ wrkMast.setBarcode(barcode); // 鎵樼洏鐮�
+ wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("N"); // 绌烘澘
+ wrkMast.setLinkMis("Y");
+ wrkMast.setCtnType(1); // 瀹瑰櫒绫诲瀷
+ // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiTime(now);
+ boolean res = wrkMastService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
- });
- // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y
- Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
- .eq("zpallet", barcode);
- WaitPakin setParam = new WaitPakin();
- setParam.setLocNo(locMast1.getLocNo());
- setParam.setIoStatus("Y");
- setParam.setModiTime(now);
- if (!waitPakinService.update(setParam, wrapper)) {
- throw new CoolException("鏇存柊閫氱煡妗eけ璐�");
+ // 鐢熸垚宸ヤ綔妗f槑缁�
+ waitPakins.forEach(waitPakin -> {
+ WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(waitPakin);
+ wrkDetl.setWrkNo(wrkMast.getWrkNo());
+ wrkDetl.setIoTime(wrkMast.getIoTime());
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setModiTime(now);
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
+ });
+ // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y
+ Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
+ .eq("zpallet", barcode);
+ WaitPakin setParam = new WaitPakin();
+ setParam.setLocNo(locMast1.getLocNo());
+ setParam.setIoStatus("Y");
+ setParam.setModiTime(now);
+ if (!waitPakinService.update(setParam, wrapper)) {
+ throw new CoolException("鏇存柊閫氱煡妗eけ璐�");
+ }
}
// 鏇存柊鐩爣搴撲綅鐘舵��
LocMast locMast = locMastService.selectById(locMast1.getLocNo());
if (locMast.getLocSts().equals("O")){
locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
- locMast.setModiTime(now);
+ locMast.setModiTime(new Date());
if (!locMastService.updateById(locMast)){
throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
}
} else {
throw new CoolException(locMast1.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
}
+
StorageResult.Results results=new StorageResult.Results();
results.setTaskNo(workNo);
results.setShelfUnitId(locMast1.getLocNo());
+ results.setBarcode(barcode);
storageResult.setResults(results);
return storageResult;
}
@@ -252,6 +340,7 @@
}else{
basCrnp.setTankQty(0);
basCrnpService.update(basCrnp,new EntityWrapper<BasCrnp>().eq("crn_no",basCrnp.getCrnNo()));
+ int xx=0;
arr[i]=basCrnp.getLev1();
i++;
int o=basCrnp.getCrnNo();
@@ -260,18 +349,27 @@
o=1;
}
basCrnp=basCrnpService.selectOne(new EntityWrapper<BasCrnp>().eq("crn_no",o));
- if(q==1){
+ if(Cools.isEmpty(basCrnp)){
+ log.error(q+"鍙峰皬杞︽病鏈夋壘鍒�");
+ continue;
+ }
+ if(basCrnp.getCrnErr()>0||basCrnp.getCrnSts()!=1){
+ log.error(q+"鍙峰皬杞︽姤璀︽垨鑰呭湪鍏呯數璺宠繃姝よ溅");
+ continue;
+ }
+ if(xx==0){
basCrnp.setTankQty(1);
basCrnpService.update(basCrnp,new EntityWrapper<BasCrnp>().eq("crn_no",o));
}
arr[i]=basCrnp.getLev1();
i++;
+ xx++;
}
}
for (int w=1;w<=7;w++){
boolean boo=true;
- for(int g=0;g<count;g++){
+ for(int g=0;g<i;g++){
if(arr[g]==w){
boo=false;
break;
@@ -281,6 +379,7 @@
arr[i]=w;
i++;
}
+ if(i==7) break;
}
return arr;
}
diff --git a/src/main/java/com/zy/common/web/param/SearchLocParam.java b/src/main/java/com/zy/common/web/param/SearchLocParam.java
index 1f058ab..63cb560 100644
--- a/src/main/java/com/zy/common/web/param/SearchLocParam.java
+++ b/src/main/java/com/zy/common/web/param/SearchLocParam.java
@@ -9,6 +9,9 @@
@Data
public class SearchLocParam {
+ @JSONField(name = "taskNo")
+ private Integer taskNo;
+
//鎵樼洏鐮�
@JSONField(name = "BoxNo")
private String boxNo;
@@ -23,7 +26,7 @@
@JSONField(name = "WCSSourceStaNo")
private Integer wcsSourceStaNo;
- //绌烘澘婊℃澘
+ //绌烘澘婊℃澘 1.婊℃澘 2.绌烘澘
@JSONField(name = "WCSIoType")
private Integer wcsIoType;
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 41e1cf9..dd6748a 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -10,7 +10,7 @@
enabled: false
datasource:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
- url: jdbc:sqlserver://127.0.0.1:1433;databasename=lfdasrs-sxc
+ url: jdbc:sqlserver://192.168.0.17:1433;databasename=lfdasrs-sxc
username: sa
password: sa@123
mvc:
@@ -50,6 +50,16 @@
# 涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁�
groupCount: 4
+#wcs瀵规帴
+wcs:
+ #鍦板潃
+ address:
+ URL: http://127.0.0.1:9092/wcs
+ #鍑哄簱绉诲簱浠诲姟涓嬪彂
+ outboundTaskSend: open/outboundTaskSend
+
+ deviceStatus : open/deviceStatus
+
#erp瀵规帴
erp:
#鍦板潃
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index 61c2dc6..cad2e7f 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -120,6 +120,7 @@
and b.loc_sts = 'F'
<include refid="stockOutCondition"></include>
) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
+
</select>
<select id="getStockOutPageCount" parameterType="java.util.Map" resultType="java.lang.Integer">
@@ -205,6 +206,7 @@
where 1=1
and b.loc_sts = 'F'
and a.matnr = #{matnr}
+ and b.loc_attribute = 1
<!-- <choose>-->
<!-- <when test="batch != null and batch != ''">-->
<!-- and a.batch = #{batch}-->
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index ce04079..e4b3d26 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -63,12 +63,13 @@
</resultMap>
<select id="selectToBeCompleteData" resultMap="BaseResultMap">
- select * from asr_wrk_mast where ((wrk_sts = 4 Or wrk_sts = 14 ) and io_type != 103 and io_type != 104 and io_type != 107 ) or (wrk_sts = 2 and io_type=6) order by upd_mk,error_time,io_time,wrk_no
+ select * from asr_wrk_mast where ((wrk_sts = 4 Or wrk_sts = 14 ) and io_type != 104 ) or (wrk_sts = 2 and io_type=6) order by upd_mk,error_time,io_time,wrk_no
</select>
<select id="selectToBeHistoryData" resultMap="BaseResultMap">
select * from asr_wrk_mast
where wrk_sts=5
+ or wrk_sts=20
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))
diff --git a/src/main/webapp/static/image/logo.png b/src/main/webapp/static/image/logo.png
index 094646e..71dd632 100644
--- a/src/main/webapp/static/image/logo.png
+++ b/src/main/webapp/static/image/logo.png
Binary files differ
diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js
index d0326bb..deca98e 100644
--- a/src/main/webapp/static/js/common.js
+++ b/src/main/webapp/static/js/common.js
@@ -1,4 +1,4 @@
-var baseUrl = "/htwms";
+var baseUrl = "/lfdsxkwms";
// 璇︽儏绐楀彛-楂樺害
var detailHeight = '80%';
--
Gitblit v1.9.1