From f64082f012503105373eb4ca36a2ecfd2ad8415e Mon Sep 17 00:00:00 2001
From: 野心家 <1051256694@qq.com>
Date: 星期五, 08 十一月 2024 10:12:27 +0800
Subject: [PATCH] 自动出空板到入库口
---
src/main/java/com/zy/asrs/controller/LocMastController.java | 1
src/main/resources/mapper/LocDetlMapper.xml | 1
src/main/java/com/zy/asrs/entity/WrkMast.java | 2
src/main/java/com/zy/asrs/task/EmptyOutWing.java | 130 +++++++++++++++++++++++++++++++++++++++++++
src/main/java/com/zy/common/web/WcsController.java | 18 ++++--
src/main/java/com/zy/common/service/CommonService.java | 20 +++++-
src/main/resources/license.lic | 0
src/main/resources/application.yml | 2
8 files changed, 163 insertions(+), 11 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/LocMastController.java b/src/main/java/com/zy/asrs/controller/LocMastController.java
index 2eae903..98dacdb 100644
--- a/src/main/java/com/zy/asrs/controller/LocMastController.java
+++ b/src/main/java/com/zy/asrs/controller/LocMastController.java
@@ -67,6 +67,7 @@
excludeTrash(param);
EntityWrapper<LocMast> wrapper = new EntityWrapper<>();
convert(param, wrapper);
+ wrapper.orderBy("modi_time",true);
if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
return R.ok(locMastService.selectPage(new Page<>(curr, limit), wrapper));
}
diff --git a/src/main/java/com/zy/asrs/entity/WrkMast.java b/src/main/java/com/zy/asrs/entity/WrkMast.java
index 565499e..5b0bd1b 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMast.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -137,7 +137,7 @@
@TableField("exit_mk")
private String exitMk;
- @ApiModelProperty(value= "")
+ @ApiModelProperty(value= "绌烘澘娑堥櫎鏍囪")
@TableField("plt_type")
private Integer pltType;
diff --git a/src/main/java/com/zy/asrs/task/EmptyOutWing.java b/src/main/java/com/zy/asrs/task/EmptyOutWing.java
new file mode 100644
index 0000000..c32d84f
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/EmptyOutWing.java
@@ -0,0 +1,130 @@
+package com.zy.asrs.task;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.core.common.Cools;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.StaDesc;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.service.StaDescService;
+import com.zy.asrs.service.WrkMastService;
+import com.zy.common.model.enums.WorkNoType;
+import com.zy.common.service.CommonService;
+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 EmptyOutWing {
+
+ @Autowired
+ private WrkMastService wrkMastService;
+ @Autowired
+ private LocMastService locMastService;
+ @Autowired
+ private StaDescService staDescService;
+ @Autowired
+ private CommonService commonService;
+
+
+ @Scheduled(cron = "0/3 * * * * ? ")
+ private void execute() {
+ int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 110));
+ if (count > 0) {
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 110).eq("wrk_sts", 7));
+ if (Cools.isEmpty(wrkMast)) {
+ return;
+ }
+ WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 1).eq("wrk_sts", 2).eq("full_plt", "N"));
+ if (Cools.isEmpty(wrkMast1)) {
+ return;
+ }
+ wrkMast1.setFullPlt("Y");
+ wrkMastService.updateById(wrkMast1);
+ wrkMast.setWrkSts(14L);
+ wrkMastService.updateById(wrkMast);
+ } else {
+ List<LocMast> locMastss =locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").orderBy("bay1"));
+ if (Cools.isEmpty(locMastss)) {
+ return;
+ }
+ for (LocMast locMasta : locMastss) {
+ // 鑾峰彇宸ヤ綔鍙�
+ int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type);
+ // 鑾峰彇搴撲綅
+ LocMast locMast = locMastService.selectById(locMasta.getLocNo());
+ if (Cools.isEmpty(locMast)) {
+ throw new CoolException(locMasta.getLocNo()+"搴撲綅涓嶅瓨鍦�");
+ }
+ if (!locMast.getLocSts().equals("D")){
+ throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篋鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
+ }
+ boolean res1 = true;
+
+ List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+ .eq("lev1", locMast.getLev1())
+ .orderBy("bay1",res1));
+ for (LocMast locMast1 : locMasts) {
+ if (locMast1.getLocNo().equals(locMast.getLocNo())) {
+ break;
+ }
+ if (locMast1.getLocSts().equals("D") || locMast1.getLocSts().equals("F")) {
+ throw new CoolException(locMasta.getLocNo()+"搴撲綅鍫靛锛岀姝㈠嚭搴�");
+ }
+ }
+ // 鑾峰彇婧愮珯
+ Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+ .eq("type_no", 110)
+ .eq("stn_no", 100)
+ .eq("crn_no", locMast.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(0L); // 宸ヤ綔鐘舵�侊細0.寰呭彂閫�
+ wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱
+ wrkMast.setIoPri(10D);
+ wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯
+ wrkMast.setStaNo(100); // 鐩爣绔�
+ wrkMast.setCrnNo(locMast.getCrnNo());
+ wrkMast.setSourceLocNo(locMasta.getLocNo()); // 婧愬簱浣�
+ wrkMast.setFullPlt("N"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("Y"); // 绌烘澘
+ wrkMast.setLinkMis("N");
+ wrkMast.setAppeUser(9998L);
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiUser(9998L);
+ wrkMast.setModiTime(now);
+ boolean res = wrkMastService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ // 鏇存柊搴撲綅鐘舵�� D.绌烘澘 -> R.鍑哄簱棰勭害
+ if (locMast.getLocSts().equals("D")){
+ locMast.setLocSts("R");
+ locMast.setModiUser(9998L);
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
+ }
+ break;
+ }
+
+ }
+ }
+
+ }
+}
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 1fdf82b..00ae205 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -475,7 +475,7 @@
if (Cools.isEmpty(locMast1)) {
continue;
}
- if (locMast1.getLev1() != lev && locMast1.getLev1() !=2) {
+ if (locMast1.getLev1() != lev && locMast1.getLev1() !=3) {
List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
.eq("lev1", locMast1.getLev1())
.orderBy("bay1",false));
@@ -501,9 +501,23 @@
if (locMast2.getLocSts().equals("O") ) {
if (locMast == null){
locMast = locMast2;
- }else if (locMast2.getLocSts().equals("F")){
- locMast = null;
}
+ }else if (locMast2.getLocSts().equals("F")){
+ locMast = null;
+ }
+ }
+ }
+ if(Cools.isEmpty(locMast)){
+ List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+ .eq("lev1", 2)
+ .orderBy("bay1",false));
+ for (LocMast locMast2 : locMasts) {
+ if (locMast2.getLocSts().equals("O") ) {
+ if (locMast == null){
+ locMast = locMast2;
+ }
+ }else if (locMast2.getLocSts().equals("F")){
+ locMast = null;
}
}
}
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 5a4001e..7e5b636 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -76,7 +76,7 @@
if (param.getFromPort().equals("100")) {
//鏈夌┖鏉垮嚭搴撴椂绂佹鍏ュ簱
- int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type",110).eq("sta_no",100));
+ int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type",110).eq("sta_no",100).notIn("wrk_sts",7));
if(wrkCount > 0){
return Re.error("鏈夌┖鏉垮嚭搴撳埌100绔欐椂鏃剁姝㈠叆搴�");
}
@@ -216,6 +216,7 @@
wrkMast.setLinkMis("Y");
wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
wrkMast.setMk("N");//鏄惁瀹屾垚涓婃姤wcs
+ wrkMast.setFullPlt("N");//鍑哄簱绌烘澘娑堥櫎鏍囪
// 鎿嶄綔浜哄憳鏁版嵁
wrkMast.setAppeTime(now);
wrkMast.setModiTime(now);
@@ -321,8 +322,12 @@
@ResponseBody
public Re status(@RequestBody StatusParam statusParam) {
WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", statusParam.getTaskId()));
- if(Cools.isEmpty(wrkMast)){
+ if(Cools.isEmpty(wrkMast)&&statusParam.getTaskStatus()!=8){
return Re.error("娌℃湁鎵惧埌:"+statusParam.getTaskId()+"杩欐潯浠诲姟");
+ }else if(Cools.isEmpty(wrkMast)&&statusParam.getTaskStatus()==8){
+ return Re.ok();
+ }else if(!Cools.isEmpty(wrkMast)&&statusParam.getTaskStatus()==8&&wrkMast.getIoType()==110){
+ return Re.ok();
}
/**
* 浠诲姟鐘舵��
@@ -341,13 +346,14 @@
wrkMast.setWrkSts(3L);//3.鍙栬揣瀹屾垚
}else if (statusParam.getTaskStatus()==3){
wrkMast.setWrkSts(6L);//6.浠诲姟涓柇
- } else if (statusParam.getTaskStatus()==4){
- wrkMast.setWrkSts(7L);//6.鏀捐揣瀹屾垚
- }if (statusParam.getTaskStatus()==8){
+ } else if (statusParam.getTaskStatus()==4 || statusParam.getTaskStatus()==8){
+// wrkMast.setWrkSts(7L);//6.鏀捐揣瀹屾垚
if(wrkMast.getIoType()==1 || wrkMast.getIoType() == 10){
wrkMast.setWrkSts(4L);//4.鍏ュ簱瀹屾垚
- }else if (wrkMast.getIoType()==101 || wrkMast.getIoType() == 110){
+ }else if (wrkMast.getIoType()==101){
wrkMast.setWrkSts(14L);//14.宸插嚭搴撴湭纭
+ } else if (wrkMast.getIoType()==110) {
+ wrkMast.setWrkSts(7L);
}
}
wrkMastService.updateById(wrkMast);
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index da66372..a8a014e 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,5 +1,5 @@
server:
- port: 8080
+ port: 8085
servlet:
context-path: /@pom.build.finalName@
diff --git a/src/main/resources/license.lic b/src/main/resources/license.lic
index 86821c9..d3efb39 100644
--- a/src/main/resources/license.lic
+++ b/src/main/resources/license.lic
Binary files differ
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index 4b0009d..84a38a0 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -123,6 +123,7 @@
and b.loc_sts = 'F'
<include refid="stockOutCondition"></include>
) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
+ order by appe_time
</select>
<select id="getStockOutPageCount" parameterType="java.util.Map" resultType="java.lang.Integer">
--
Gitblit v1.9.1