From 775d4714ca9e650631659d7467f5c43dc021f931 Mon Sep 17 00:00:00 2001
From: 18516761980 <56479841@qq.com>
Date: 星期四, 16 六月 2022 17:16:20 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/luxiaotao1123/zy-asrs into hylyasrs
---
.idea/zy-asrs.iml | 2
src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java | 20 +++++
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 17 +++
src/main/java/com/zy/asrs/task/CheckDeepScheduler.java | 99 ++++++++++++++++++++----
src/main/resources/mapper/LocMastMapper.xml | 75 ++++++++++++++++++
src/main/java/com/zy/asrs/mapper/LocMastMapper.java | 8 ++
src/main/java/com/zy/asrs/service/LocMastService.java | 8 ++
src/main/resources/application.yml | 2
8 files changed, 207 insertions(+), 24 deletions(-)
diff --git a/.idea/zy-asrs.iml b/.idea/zy-asrs.iml
index c8f3650..3685627 100644
--- a/.idea/zy-asrs.iml
+++ b/.idea/zy-asrs.iml
@@ -20,7 +20,7 @@
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
- <orderEntry type="inheritedJdk" />
+ <orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.1.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.1.3.RELEASE" level="project" />
diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index d68ef3f..77d16c9 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -29,4 +29,12 @@
Integer selectEmptyLocCount(@Param("locType1") Short locType1, @Param("locType2") Short locType2, @Param("locType3") Short locType3, @Param("crnNo") Integer crnNo);
List<LocMast> queryShallowLocFMast();
+
+ List<LocMast> queryNeedMoveShallLocF();
+
+ List<LocMast> queryNeedMoveShallLocD();
+
+ LocMast queryEmptyDeepLoc();
+
+ List<LocMast> queryDeepLocDMast();
}
diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java
index ee03916..6306b48 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -49,4 +49,12 @@
LocMast queryFreeLocMastExceptFirst(Integer row, Short locType1, Short locType2, Short locType3);
public List<LocMast> queryShallowLocFMast();
+
+ public List<LocMast> queryNeedMoveShallLocF();
+
+ public List<LocMast> queryNeedMoveShallLocD();
+
+ public LocMast queryEmptyDeepLoc();
+
+ public List<LocMast> queryDeepLocDMast();
}
diff --git a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
index 03998ce..6fdce9e 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -62,4 +62,24 @@
public List<LocMast> queryShallowLocFMast() {
return this.baseMapper.queryShallowLocFMast();
}
+
+ @Override
+ public List<LocMast> queryNeedMoveShallLocF() {
+ return this.baseMapper.queryNeedMoveShallLocF();
+ }
+
+ @Override
+ public List<LocMast> queryNeedMoveShallLocD() {
+ return this.baseMapper.queryNeedMoveShallLocD();
+ }
+
+ @Override
+ public LocMast queryEmptyDeepLoc() {
+ return this.baseMapper.queryEmptyDeepLoc();
+ }
+
+ @Override
+ public List<LocMast> queryDeepLocDMast() {
+ return this.baseMapper.queryDeepLocDMast();
+ }
}
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 74b4ed2..6d43269 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -423,6 +423,15 @@
// 鑾峰彇宸ヤ綔鍙�
int workNo = commonService.getWorkNo(1);
+ //2022-06-16 ADD, 鍑哄簱搴撲綅濡傛灉鏄繁搴撲綅1鍙疯揣鏋讹紝涓斿搴旀祬搴撲綅涔熶负D鏃讹紝鍏堝嚭娴呭簱浣�
+ if(Utils.isDeepLoc(slaveProperties, locNo)){
+ String shallow = Utils.getShallowLoc(slaveProperties,locNo);
+ LocMast shallowLoc = locMastService.selectById(shallow);
+ if(!Cools.isEmpty(shallowLoc) && shallowLoc.getLocSts().equals("D")){
+ locNo = shallowLoc.getLocNo();
+ }
+ }
+
// 鑾峰彇搴撲綅
LocMast locMast = locMastService.selectById(locNo);
if (Cools.isEmpty(locMast)) {
@@ -806,7 +815,11 @@
locSts = "D";
// 搴撲綅杞Щ ===>> D.绌烘《/绌烘爤鏉�
} else if (wrkMast.getIoType() == 11) {
- locSts = "F";
+ if(wrkMast.getEmptyMk().equals("Y")){
+ locSts = "D";
+ }else {
+ locSts = "F";
+ }
// 搴撲綅杞Щ锛氱洰鏍囧簱浣�
LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
if (Cools.isEmpty(locMast)) {
@@ -836,7 +849,7 @@
if (wrkMast.getIoType() != 10 && wrkMast.getIoType() != 110) {
// 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
- if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
+ if (!wrkMast.getEmptyMk().equals("Y") && !wrkDetlLogService.save(wrkMast.getWrkNo())) {
throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo());
}
// 鍒犻櫎宸ヤ綔妗f槑缁�
diff --git a/src/main/java/com/zy/asrs/task/CheckDeepScheduler.java b/src/main/java/com/zy/asrs/task/CheckDeepScheduler.java
index 6050b5d..f68eafb 100644
--- a/src/main/java/com/zy/asrs/task/CheckDeepScheduler.java
+++ b/src/main/java/com/zy/asrs/task/CheckDeepScheduler.java
@@ -28,10 +28,8 @@
@Value("${wcs-slave.doubleDeep}")
private boolean confirmDeep;
- @Value("${wcs-slave.doubleLocs}")
- private String deepLocs;
- @Value("${wcs-slave.shallowLocs}")
- private String shallowLocs;
+ @Value("${scheduler.autoMove}")
+ private boolean autoMove;
@Autowired
private LocDetlService locDetlService;
@Autowired
@@ -49,6 +47,7 @@
@Scheduled(cron = "0/30 * * * * ?")
private void locMoveToDeep(){
if (!confirmDeep) return;
+ if (!autoMove) return;
List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
.eq("crn_no",1)
@@ -56,26 +55,90 @@
);
if (wrkMasts.size() > 0) return;
+ //閬嶅巻搴撳瓨涓紝娴呭簱浣嶇姸鎬丗/D锛屾繁搴撲綅鐘舵�丱鐨勬暟鎹紝鐢熸垚搴撲綅绉昏浆宸ヤ綔妗e皢娴呭簱浣嶇Щ杞埌瀵瑰簲娣卞簱浣嶄腑鍘�
List<LocMast> locMasts = locMastService.queryShallowLocFMast();
+ if (null != locMasts) {
+ for (LocMast sourceLoc : locMasts) {
+ String deep = Utils.getDeepLoc(slaveProperties, sourceLoc.getLocNo());
+ LocMast destLoc = locMastService.selectById(deep);
- if (null == locMasts) return;
-
- for (LocMast sourceLoc : locMasts){
- String deep = Utils.getDeepLoc(slaveProperties, sourceLoc.getLocNo());
- LocMast destLoc = locMastService.selectById(deep);
-
- if(!Cools.isEmpty(sourceLoc) && !Cools.isEmpty(destLoc)) {
- //鏌ユ壘婧愬簱浣嶆槸鍚︽湁杞Щ浠诲姟,濡傛灉鏈�,涓嶇敓鎴愬簱浣嶇Щ杞�
- WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
- .eq("source_loc_no", sourceLoc.getLocNo()));
- if (Cools.isEmpty(wrkMast) && destLoc.getLocSts().equals("O") &&
- (sourceLoc.getLocSts().equals("F") || sourceLoc.getLocSts().equals("D"))) {
- workService.locMove(sourceLoc.getLocNo(), deep, 1L);
- break;
+ if (!Cools.isEmpty(sourceLoc) && !Cools.isEmpty(destLoc)) {
+ //鏌ユ壘婧愬簱浣嶆槸鍚︽湁杞Щ浠诲姟,濡傛灉鏈�,涓嶇敓鎴愬簱浣嶇Щ杞�
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+ .eq("source_loc_no", sourceLoc.getLocNo()));
+ if (Cools.isEmpty(wrkMast) && destLoc.getLocSts().equals("O") &&
+ (sourceLoc.getLocSts().equals("F") || sourceLoc.getLocSts().equals("D"))) {
+ workService.locMove(sourceLoc.getLocNo(), deep, 1L);
+ return;
+ }
}
}
}
+ //閬嶅巻搴撳瓨涓紝娴呭簱浣嶇姸鎬丗锛屾繁搴撲綅鐘舵�丏鐨勬暟鎹紝鐢熸垚搴撲綅绉昏浆宸ヤ綔妗e皢娴呭簱浣嶇Щ杞埌鏂扮殑搴撲綅涓幓
+ List<LocMast> locMasts1 = locMastService.queryNeedMoveShallLocF();
+ if (null != locMasts1) {
+ for (LocMast sourceLoc : locMasts1) {
+ LocMast destLoc = locMastService.queryEmptyDeepLoc();
+
+ if (!Cools.isEmpty(sourceLoc) && !Cools.isEmpty(destLoc)) {
+ //鏌ユ壘婧愬簱浣嶆槸鍚︽湁杞Щ浠诲姟,濡傛灉鏈�,涓嶇敓鎴愬簱浣嶇Щ杞�
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+ .eq("source_loc_no", sourceLoc.getLocNo()));
+ if (Cools.isEmpty(wrkMast) && destLoc.getLocSts().equals("O") &&
+ (sourceLoc.getLocSts().equals("F") || sourceLoc.getLocSts().equals("D"))) {
+ workService.locMove(sourceLoc.getLocNo(), destLoc.getLocNo(), 1L);
+ return;
+ }
+ }
+ }
+ }
+
+ //閬嶅巻搴撳瓨涓紝娴呭簱浣嶇姸鎬丗锛屾繁搴撲綅鐘舵�丏鐨勬暟鎹紝鐢熸垚搴撲綅绉昏浆宸ヤ綔妗e皢娴呭簱浣嶇Щ杞埌鏂扮殑搴撲綅涓幓
+ List<LocMast> locMasts2 = locMastService.queryNeedMoveShallLocD();
+ if (null != locMasts2) {
+ for (LocMast sourceLoc : locMasts2) {
+ LocMast destLoc = locMastService.queryEmptyDeepLoc();
+
+ if (!Cools.isEmpty(sourceLoc) && !Cools.isEmpty(destLoc)) {
+ //鏌ユ壘婧愬簱浣嶆槸鍚︽湁杞Щ浠诲姟,濡傛灉鏈�,涓嶇敓鎴愬簱浣嶇Щ杞�
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+ .eq("source_loc_no", sourceLoc.getLocNo()));
+ if (Cools.isEmpty(wrkMast) && destLoc.getLocSts().equals("O") &&
+ (sourceLoc.getLocSts().equals("F") || sourceLoc.getLocSts().equals("D"))) {
+ workService.locMove(sourceLoc.getLocNo(), destLoc.getLocNo(), 1L);
+ return;
+ }
+ }
+ }
+ }
+
+ //閬嶅巻搴撳瓨涓紝娣卞簱浣嶇姸鎬丏锛屾祬搴撲綅鐘舵�佷负O鐨勬繁搴撲綅鏁版嵁锛岀敓鎴愬簱浣嶇Щ杞伐浣滄。灏嗕袱涓狣搴撲綅鍚堝苟涓烘繁娴呭簱浣�
+ List<LocMast> locMasts3 = locMastService.queryDeepLocDMast();
+ if (null != locMasts3) {
+ for (LocMast sourceLoc : locMasts3) {
+ List<LocMast> locMasts4 = locMastService.queryDeepLocDMast();
+ for (LocMast deepLoc : locMasts4){
+ if(sourceLoc.getLocNo().equals(deepLoc.getLocNo())){
+ continue;
+ }
+ String shallow = Utils.getShallowLoc(slaveProperties, deepLoc.getLocNo());
+ LocMast destLoc = locMastService.selectById(shallow);
+ if (!Cools.isEmpty(sourceLoc) && !Cools.isEmpty(destLoc)) {
+ //鏌ユ壘婧愬簱浣嶆槸鍚︽湁杞Щ浠诲姟,濡傛灉鏈�,涓嶇敓鎴愬簱浣嶇Щ杞�
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+ .eq("source_loc_no", sourceLoc.getLocNo()));
+ if (Cools.isEmpty(wrkMast) && destLoc.getLocSts().equals("O") &&
+ (sourceLoc.getLocSts().equals("F") || sourceLoc.getLocSts().equals("D"))) {
+ workService.locMove(sourceLoc.getLocNo(), destLoc.getLocNo(), 1L);
+ return;
+ }
+ }
+ }
+
+ }
+ }
+
}
/**
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 723b04f..d32aa95 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -61,4 +61,4 @@
enabled: false
scheduler:
- autoMove: true
\ No newline at end of file
+ autoMove: false
\ No newline at end of file
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index a736a3b..621e466 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -104,8 +104,79 @@
from asr_loc_mast
where 1=1
and loc_sts = 'O'
- and row1 in (1,4,5,8,9,12,13,16,17,20)
+ and row1 in (1)
)
- and (loc_sts = 'F' or loc_sts = 'D')
+ and (loc_sts = 'F' or loc_sts = 'D') and crn_no=1
+ </select>
+
+ <select id="queryNeedMoveShallLocF" resultMap="BaseResultMap">
+ select * from asr_loc_mast
+ where 1=1
+ and loc_no in (
+ select
+ concat(
+ (
+ case
+ when left(loc_no, 2) = '01' then '02'
+ end)
+ , right(loc_no, 5)) as shallowLocNo
+ from asr_loc_mast
+ where 1=1
+ and loc_sts = 'D'
+ and row1 in (1)
+ )
+ and loc_sts = 'F' and crn_no=1
+ </select>
+
+ <select id="queryNeedMoveShallLocD" resultMap="BaseResultMap">
+ select * from asr_loc_mast
+ where 1=1
+ and loc_no in (
+ select
+ concat(
+ (
+ case
+ when left(loc_no, 2) = '01' then '02'
+ end)
+ , right(loc_no, 5)) as shallowLocNo
+ from asr_loc_mast
+ where 1=1
+ and loc_sts = 'F'
+ and row1 in (1)
+ )
+ and loc_sts = 'D' and crn_no=1
+ </select>
+
+ <select id="queryEmptyDeepLoc" resultMap="BaseResultMap">
+ select top 1 * from asr_loc_mast
+ where 1=1
+ and (loc_no in (
+ select
+ concat((case when left(loc_no, 2) = '02' then '01'end)
+ , right(loc_no, 5)) as deepLocNo
+ from asr_loc_mast
+ where 1=1 and loc_sts = 'O' and row1 in (2)
+ ) or row1=3)
+ and loc_sts = 'O' and crn_no = 1
+ order by newid()
+ </select>
+
+ <select id="queryDeepLocDMast" resultMap="BaseResultMap">
+ select * from asr_loc_mast
+ where 1=1
+ and loc_no in (
+ select
+ concat(
+ (
+ case
+ when left(loc_no, 2) = '02' then '01'
+ end)
+ , right(loc_no, 5)) as deepLocNo
+ from asr_loc_mast
+ where 1=1
+ and loc_sts = 'O'
+ and row1 in (2)
+ )
+ and loc_sts = 'D' and crn_no=1
</select>
</mapper>
--
Gitblit v1.9.1