From 6c8588d5f7f0de7e9489426c350472bf911a4933 Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期五, 05 十二月 2025 15:47:07 +0800
Subject: [PATCH] towcs
---
src/main/java/com/zy/asrs/mapper/LocDetlMapper.java | 2
src/main/java/com/zy/asrs/task/handler/CreateOutTask.java | 199 +++++++++++++++
src/main/java/com/zy/asrs/task/GetEquipmentStatus.java | 2
src/main/resources/mapper/LocDetlMapper.xml | 13 +
src/main/resources/mapper/LocMastMapper.xml | 11
src/main/java/com/zy/common/web/WcsController.java | 158 +++++++++++
src/main/java/com/zy/common/model/StartupDto.java | 4
src/main/java/com/zy/common/model/WmsDevDto.java | 10
src/main/java/com/zy/asrs/utils/Utils.java | 35 ++
src/main/java/com/zy/asrs/task/OutWorkScheduler.java | 2
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 4
src/main/java/com/zy/asrs/mapper/LocMastMapper.java | 2
src/main/java/com/zy/common/service/CommonService.java | 166 ++++++++++++
src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java | 5
src/main/java/com/zy/asrs/service/LocDetlService.java | 5
src/main/resources/mapper/WrkMastMapper.xml | 4
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java | 5
src/main/java/com/zy/common/CodeBuilder.java | 13 +
src/main/java/com/zy/asrs/service/WrkMastService.java | 2
src/main/java/com/zy/common/web/param/SearchLocParam.java | 7
src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java | 5
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java | 2
src/main/java/com/zy/common/web/param/NotifyDto.java | 42 +++
src/main/java/com/zy/asrs/service/LocMastService.java | 2
src/main/resources/application.yml | 35 +-
25 files changed, 701 insertions(+), 34 deletions(-)
diff --git a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
index c70a85d..4be6f49 100644
--- a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
@@ -39,6 +39,8 @@
List<String> getSameDetlList(@Param("matnr") String matnr);
+ List<String> getSameDetlListToWmsDev(@Param("matnr") String matnr,@Param("rows") int[] rows);
+
List<LocDetl> getStockStatis(Map<String, Object> map);
Integer getStockStatisCount(Map<String, Object> map);
diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index 9161a21..546d41a 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -17,4 +17,6 @@
List<String> queryGroupEmptyStock(Integer lev);
List<Integer> getLevList();
+
+ List<LocMast> selectLoc(@Param("rows") int[] rows);
}
diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
index dd349bd..0b8fb52 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.WrkMast;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@@ -16,4 +17,5 @@
List<WrkMast> selectToBeHistoryData();
+ WrkMast selectByTaskNo(@Param("taskNo") String taskNo);
}
diff --git a/src/main/java/com/zy/asrs/service/LocDetlService.java b/src/main/java/com/zy/asrs/service/LocDetlService.java
index fa7f683..aca3ff0 100644
--- a/src/main/java/com/zy/asrs/service/LocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -37,6 +37,11 @@
*/
List<String> getSameDetlList(String matnr);
+ /**
+ * 鑾峰彇鐩稿悓瑙勬牸璐х墿
+ */
+ List<String> getSameDetlListToWmsDev(String matnr,int[] rows);
+
Page<LocDetl> getStockStatis(Page<LocDetl> page);
Double getSumAnfme(String matnr);
diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java
index d4c0da6..2b1e231 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -16,4 +16,6 @@
List<String> queryGroupEmptyStock(String sourceLocNo);
List<Integer> getLevList();
+
+ List<LocMast> selectLoc(int[] rows);
}
diff --git a/src/main/java/com/zy/asrs/service/WrkMastService.java b/src/main/java/com/zy/asrs/service/WrkMastService.java
index ff9c2ba..22394c6 100644
--- a/src/main/java/com/zy/asrs/service/WrkMastService.java
+++ b/src/main/java/com/zy/asrs/service/WrkMastService.java
@@ -21,4 +21,6 @@
* @return
*/
int getStoreCount(Integer crnNo);
+
+ WrkMast selectByTaskNo(String taskNo);
}
diff --git a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
index dbd1958..e2ae7fd 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -55,6 +55,11 @@
}
@Override
+ public List<String> getSameDetlListToWmsDev(String matnr,int[] rows) {
+ return this.baseMapper.getSameDetlListToWmsDev(matnr,rows);
+ }
+
+ @Override
public Page<LocDetl> getStockStatis(Page<LocDetl> page) {
page.setRecords(baseMapper.getStockStatis(page.getCondition()));
page.setTotal(baseMapper.getStockStatisCount(page.getCondition()));
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 687e73d..000b65d 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -31,4 +31,9 @@
public List<Integer> getLevList() {
return this.baseMapper.getLevList();
}
+
+ @Override
+ public List<LocMast> selectLoc(int[] rows) {
+ return this.baseMapper.selectLoc(rows);
+ }
}
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 48d5316..fef94e6 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -98,7 +98,7 @@
StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, findLocNoAttributeVo, locTypeDto, param.getBarcode());
// 鐢熸垚宸ヤ綔鍙�
- int workNo = dto.getWorkNo();
+ int workNo = dto.getTaskNo();
// 鐢熸垚宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
wrkMast.setWrkNo(workNo);
@@ -385,7 +385,7 @@
FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, findLocNoAttributeVo, locTypeDto, "");
- int workNo = dto.getWorkNo();
+ int workNo = dto.getTaskNo();
Date now = new Date();
// 鐢熸垚宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
index ab394ec..7ae4421 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
@@ -45,4 +45,9 @@
.last(" and (wrk_sts in (1,2) or (wrk_sts=3 and wrk_no in (select wrk_no from asr_bas_devp)))"));
}
+ @Override
+ public WrkMast selectByTaskNo(String taskNo) {
+ return this.baseMapper.selectByTaskNo(taskNo);
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/task/GetEquipmentStatus.java b/src/main/java/com/zy/asrs/task/GetEquipmentStatus.java
index a1164aa..1de78fd 100644
--- a/src/main/java/com/zy/asrs/task/GetEquipmentStatus.java
+++ b/src/main/java/com/zy/asrs/task/GetEquipmentStatus.java
@@ -37,7 +37,7 @@
@Autowired
private BasDevpService basDevpService;
- @Scheduled(cron = "0/3 * * * * ? ")
+// @Scheduled(cron = "0/3 * * * * ? ")
private void execute() {
//鑾峰彇璁惧淇℃伅
String response ="";
diff --git a/src/main/java/com/zy/asrs/task/OutWorkScheduler.java b/src/main/java/com/zy/asrs/task/OutWorkScheduler.java
index 1bb688d..c27ce48 100644
--- a/src/main/java/com/zy/asrs/task/OutWorkScheduler.java
+++ b/src/main/java/com/zy/asrs/task/OutWorkScheduler.java
@@ -26,7 +26,7 @@
/**
* 鍑哄簱浠诲姟涓嬪彂
*/
- @Scheduled(cron = "0/3 * * * * ? ")
+// @Scheduled(cron = "0/3 * * * * ? ")
private void execute() {
List<WrkMast> wrkMasts=wrkMastService.selectList(new EntityWrapper<WrkMast>()
.eq("wrk_sts",11)
diff --git a/src/main/java/com/zy/asrs/task/handler/CreateOutTask.java b/src/main/java/com/zy/asrs/task/handler/CreateOutTask.java
new file mode 100644
index 0000000..7f91a68
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/handler/CreateOutTask.java
@@ -0,0 +1,199 @@
+package com.zy.asrs.task.handler;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.service.*;
+import com.zy.asrs.utils.Utils;
+import com.zy.common.model.StartupDto;
+import com.zy.common.service.CommonService;
+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.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.concurrent.ThreadLocalRandom;
+
+@Component
+@Slf4j
+public class CreateOutTask {
+ @Value("${wcs.address.URL}")
+ private String addrs;
+ @Value("${wcs.address.createOutTask}")
+ private String outTask;
+ @Value("${wcs.address.createLocMoveTask}")
+ private String locMoveTask;
+ @Value("${wcs.address.devicesStatus}")
+ private String devicesStatus;
+ @Autowired
+ private LocMastService locMastService;
+ @Autowired
+ private LocDetlService locDetlService;
+ @Autowired
+ private WrkMastService wrkMastService;
+ @Autowired
+ private CommonService commonService;
+ @Autowired
+ private WrkDetlService wrkDetlService;
+
+ @Scheduled(cron = "0/10 * * * * ? ")
+ @Transactional
+ public void outTask(){
+ //璋冪敤wcs鎺ュ彛鑾峰彇璁惧鐘舵��
+ String statusResponse = "";
+ try {
+ statusResponse = new HttpHandler.Builder()
+ .setUri(addrs)
+ .setPath(devicesStatus)
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(statusResponse);
+ if (jsonObject.get("code").equals(200)){
+ log.info("璁惧姝e父");
+ }
+ }catch (Exception e){
+ log.error("璁惧寮傚父");
+ }
+ log.info("寮�濮嬭皟鐢╓CS鎺ュ彛,娲惧彂鍑哄簱/绉诲簱浠诲姟");
+ Date now = new Date();
+ boolean flag= false;
+ List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "F"));
+ List<Integer> outSitelist = new ArrayList<>();
+ outSitelist.add(1152);
+ outSitelist.add(1169);
+ outSitelist.add(1177);
+ LocMast shallowLocMast = new LocMast();
+ for (LocMast locMast : locMasts) {
+ //鍒ゆ柇搴撲綅鏄惁鏈夊嚭搴撲换鍔�
+ if (!Cools.isEmpty(wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("source_loc_no",locMast.getLocNo())))){
+ continue;
+ }
+ //鍒ゆ柇鏄惁鏄繁搴撲綅 瑙﹀彂绉诲簱浠诲姟
+ if (Utils.isDeepLoc(locMast.getLocNo())) {
+ String deepLoc = locMast.getLocNo();
+ String shallowLocNo = Utils.getShallowLocNo(deepLoc);
+ shallowLocMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", shallowLocNo));
+ if (shallowLocMast.getLocSts().equals("F") || shallowLocMast.getLocSts().equals("D")) {
+ flag = true;
+ }
+ }
+ int outSite = ThreadLocalRandom.current().nextInt(0, outSitelist.size());
+ List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
+ // 鐩爣绔欑偣鐘舵�佹娴�
+ int workNo = commonService.getWorkNo(2);
+ //鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(now);
+ wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+ wrkMast.setIoType(flag ? 11 : 101); // 鍏ュ嚭搴撶姸鎬�
+ wrkMast.setIoPri(flag ? 20D : 15D); // 浼樺厛绾�
+ wrkMast.setCrnNo(locMast.getCrnNo());
+ wrkMast.setStaNo(outSitelist.get(outSite)); // 鐩爣绔�
+ wrkMast.setSourceLocNo(flag ? shallowLocMast.getLocNo() : locMast.getLocNo()); // 婧愬簱浣�
+ wrkMast.setLocNo(flag ? getMoveLocNo(locMast.getLocNo()) : ""); //鐩爣搴撲綅
+ wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("N"); // 绌烘澘
+ wrkMast.setLinkMis("N");
+ wrkMast.setBarcode(locMast.getBarcode());
+ wrkMast.setAppeUser(9527L); // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiUser(9527l);
+ wrkMast.setModiTime(now);
+ if (!wrkMastService.insert(wrkMast)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + locMast.getLocNo());
+ }
+ // 鐢熸垚宸ヤ綔妗f槑缁�
+ for (LocDetl locDetl : locDetlList) {
+ if (locDetl.getAnfme() == null || locDetl.getAnfme() <= 0.0D) {
+ continue;
+ }
+ WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(locDetl);
+ wrkDetl.setOrderNo(""); // 鎵嬪姩鍑哄簱涓嶉渶瑕佸甫鍑哄簱瀛樹腑鐨勫崟鎹紪鍙�
+ wrkDetl.setWrkNo(workNo);
+ wrkDetl.setIoTime(now);
+ Double anfme = locDetl.getAnfme();
+ wrkDetl.setAnfme(anfme); // 鏁伴噺
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setAppeUser(9527L);
+ wrkDetl.setModiTime(now);
+ wrkDetl.setModiUser(9527L);
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+ }
+ }
+ String response = "";
+ StartupDto startupDto = new StartupDto();
+ startupDto.setTaskNo(wrkMast.getWrkNo());
+ startupDto.setStaNo(wrkMast.getStaNo());
+ startupDto.setLocNo(Utils.locToLocNo(wrkMast.getSourceLocNo()));
+ startupDto.setTaskPri(wrkMast.getIoPri());
+ flag = false;
+ try {
+ response = new HttpHandler.Builder()
+ .setUri(addrs)
+ .setPath(flag ? locMoveTask : outTask)
+ .setJson(JSON.toJSONString(startupDto))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.get("code").equals(200)) {
+ wrkMast.setWrkSts(12L);
+ if (!wrkMastService.updateById(wrkMast)) {
+ throw new CoolException("宸ヤ綔妗g姸鎬佷慨鏀瑰け璐�,宸ヤ綔鍙�:{}" + wrkMast.getWrkNo());
+ }
+ // 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
+ locMast = locMastService.selectById(flag?shallowLocMast.getLocNo():locMast.getLocNo());
+ if (locMast.getLocSts().equals("F")) {
+ locMast.setLocSts("R");
+ locMast.setModiUser(9527L);
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細" + locMast.getLocNo());
+ }
+ } else {
+ throw new CoolException(locMast.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
+ }
+ log.info("鍑哄簱/绉诲簱浠诲姟娲惧彂鎴愬姛");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ }
+ }
+ }
+
+ //绉诲簱浠诲姟鎵剧┖搴撲綅 娣卞簱浣�
+ public String getMoveLocNo(String locNo){
+ LocMast targetLocMast = new LocMast();
+ int deepRow = Utils.getRow(locNo);
+ //鍏堟壘娣卞簱浣嶈繖涓�鎺掕繕鏈夋病鏈夌┖浣嶅簱
+ targetLocMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "O").eq("row1", deepRow));
+ if (targetLocMast == null){
+ targetLocMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "O").eq("row1", deepRow + 3));
+
+ }
+ if (targetLocMast == null){
+ targetLocMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "O").eq("row1", deepRow + 1));
+
+ }
+ if (targetLocMast == null){
+ targetLocMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "O").eq("row1", deepRow + 2));
+
+ }
+ return targetLocMast.getLocNo();
+ }
+}
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 9a8ff4b..3faf851 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -86,6 +86,27 @@
return copy;
}
+ public static String locToLocNo(String locNo){//0100203
+ int row = Integer.parseInt(locNo.substring(0, 2));
+ int bay = Integer.parseInt(locNo.substring(2, 5));
+ int lev = Integer.parseInt(locNo.substring(5, 7));
+ return row + "-" +bay + "-" + lev;
+ }
+
+ //鑾峰彇娣卞簱浣嶅搴旂殑娴呭簱浣�
+ public static String getShallowLocNo(String locNo){
+ int shallowRow = 0;
+ int deepRow = Utils.getRow(locNo);
+ if (deepRow == 1 || (deepRow - 1) % 4 == 0){
+ shallowRow = deepRow + 1;
+ }else if (deepRow % 4 == 0){
+ shallowRow = deepRow - 1;
+ }
+ int shallowBay = Utils.getBay(locNo);
+ int shallowLev = Utils.getLev(locNo);
+ return Utils.getLocNo(shallowRow, shallowBay, shallowLev);
+ }
+
public static LocGroupOrder findGroupOrder(SlaveProperties slaveProperties, String locNo) {
int row1 = Utils.getRow(locNo);
int bay1 = Utils.getBay(locNo);
@@ -114,4 +135,18 @@
return checkOrder;
}
+
+ //鍒ゆ柇鏄惁鏄繁搴撲綅
+ public static boolean isDeepLoc(String locNo){
+ int i = getRow(locNo);
+ if (i == 1 || i == 4 || i == 5 || i == 8 || i == 9 || i == 12 || i == 13 || i == 16 || i == 17 || i == 20 || i == 21 || i == 24 || i == 25 || i == 28 || i == 29 || i == 32 || i == 33 || i == 36 || i == 37 || i == 40){
+ return true;
+ }
+ return false;
+ }
+
+ public static String loc(String locNo){
+ String[] split = locNo.split("-");
+ return Utils.getLocNo(Integer.parseInt(split[0]),Integer.parseInt(split[1]),Integer.parseInt(split[2]));
+ }
}
diff --git a/src/main/java/com/zy/common/CodeBuilder.java b/src/main/java/com/zy/common/CodeBuilder.java
index 6a3ff20..1671459 100644
--- a/src/main/java/com/zy/common/CodeBuilder.java
+++ b/src/main/java/com/zy/common/CodeBuilder.java
@@ -2,11 +2,14 @@
import com.core.generators.CoolGenerator;
import com.core.generators.constant.SqlOsType;
+import com.zy.asrs.service.LocMastService;
+import org.springframework.beans.factory.annotation.Autowired;
/**
* Created by vincent on 2019-06-04
*/
public class CodeBuilder {
+ private LocMastService locMastService;
public static void main(String[] args) throws Exception {
CoolGenerator generator = new CoolGenerator();
@@ -25,4 +28,14 @@
generator.build();
}
+// public static void loc(String[] args) throws Exception{
+// for (int row = 24;row < 25;row ++){
+// for (int bay = 2;bay < 3;bay ++){
+// for (int lev = 1;lev < 2;lev ++){
+//
+// }
+// }
+// }
+// }
+
}
diff --git a/src/main/java/com/zy/common/model/StartupDto.java b/src/main/java/com/zy/common/model/StartupDto.java
index b0ecc3e..6c4fb4a 100644
--- a/src/main/java/com/zy/common/model/StartupDto.java
+++ b/src/main/java/com/zy/common/model/StartupDto.java
@@ -16,6 +16,8 @@
private String locNo;
- private Integer workNo;
+ private Integer taskNo;
+
+ private Double taskPri;
}
diff --git a/src/main/java/com/zy/common/model/WmsDevDto.java b/src/main/java/com/zy/common/model/WmsDevDto.java
new file mode 100644
index 0000000..aa7d682
--- /dev/null
+++ b/src/main/java/com/zy/common/model/WmsDevDto.java
@@ -0,0 +1,10 @@
+package com.zy.common.model;
+
+import lombok.Data;
+
+@Data
+public class WmsDevDto {
+ private String locNo;
+ private Integer taskNo;
+ private Integer taskPri;
+}
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 27f3b06..9733d3d 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -16,6 +16,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@@ -122,6 +123,34 @@
* @param findLocNoAttributeVo 灞炴��
* @param locTypeDto 绫诲瀷
* @return locNo 妫�绱㈠埌鐨勫簱浣嶅彿
+ * wms-dev
+ */
+ @Transactional
+ public StartupDto getLocNoToWmsDev(Integer staDescId, Integer sourceStaNo, FindLocNoAttributeVo findLocNoAttributeVo, LocTypeDto locTypeDto, String barcode,int[] row) {
+ StartupDto startupDto = null;
+ StringBuilder builder = new StringBuilder();
+ try {
+ startupDto = searchLocNoByCrnNoToWmsDev(staDescId, sourceStaNo, findLocNoAttributeVo, locTypeDto,row);
+ } catch (Exception e) {
+ builder.append(e.getMessage()).append(",");
+ }
+
+ if(startupDto == null) {
+ builder.append("鎵句笉鍒扮┖搴撲綅");
+ throw new CoolException(builder.toString());
+ }
+
+ return startupDto;
+ }
+
+ /**
+ * 妫�绱㈠簱浣嶅彿
+ *
+ * @param staDescId 璺緞ID
+ * @param sourceStaNo 婧愮珯
+ * @param findLocNoAttributeVo 灞炴��
+ * @param locTypeDto 绫诲瀷
+ * @return locNo 妫�绱㈠埌鐨勫簱浣嶅彿
*/
@Transactional
public StartupDto searchLocNoByCrnNo(Integer staDescId, Integer sourceStaNo, FindLocNoAttributeVo findLocNoAttributeVo, LocTypeDto locTypeDto) {
@@ -158,11 +187,61 @@
// 鐢熸垚宸ヤ綔鍙�
int workNo = getWorkNo(0);
// 杩斿洖dto
- startupDto.setWorkNo(workNo);
+ startupDto.setTaskNo(workNo);
startupDto.setCrnNo(locMast.getCrnNo());
startupDto.setSourceStaNo(sourceStaNo);
startupDto.setLocNo(locNo);
+ startupDto.setTaskPri(13.0);
return startupDto;
+ }
+
+ @Transactional
+ public StartupDto searchLocNoByCrnNoToWmsDev(Integer staDescId, Integer sourceStaNo, FindLocNoAttributeVo findLocNoAttributeVo, LocTypeDto locTypeDto,int[] row) {
+ LocMast locMast = null;
+ if (staDescId == 10) {
+ //鎼滅储绌烘墭鐩�
+ locMast = searchEmptyPallet(locTypeDto);
+ }else {
+ //婊℃墭鐩�
+ locMast = searchMaxPalletToWmsDev(findLocNoAttributeVo, locTypeDto,row);
+ }
+
+ if(locMast == null) {
+ throw new CoolException("鎵句笉鍒扮鍚堝昂瀵哥殑绌哄簱浣�");
+ }
+
+ StartupDto startupDto = new StartupDto();
+
+ // 鑾峰彇鐩爣绔�
+// Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>().eq("type_no", staDescId).eq("stn_no", sourceStaNo).eq("crn_no", locMast.getCrnNo());
+// StaDesc staDesc = staDescService.selectOne(wrapper);
+// if (Cools.isEmpty(staDesc)) {
+// log.error("type_no={},stn_no={},crn_no={}", staDescId, sourceStaNo, crnNo);
+// throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
+// } else {
+// BasDevp staNo = basDevpService.selectById(staDesc.getCrnStn());
+// if (!staNo.getAutoing().equals("Y")) {
+// log.error("鐩爣绔�" + staDesc.getCrnStn() + "涓嶅彲鐢�");
+// throw new CoolException("鐩爣绔�"+staDesc.getCrnStn()+"涓嶅彲鐢�");
+// }
+// startupDto.setStaNo(staNo.getDevNo());
+// }
+ String locNo = locMast.getLocNo();
+ // 鐢熸垚宸ヤ綔鍙�
+ int workNo = getWorkNo(0);
+ // 杩斿洖dto
+ startupDto.setTaskNo(workNo);
+ startupDto.setCrnNo(locMast.getCrnNo());
+ startupDto.setSourceStaNo(sourceStaNo);
+ startupDto.setLocNo(locToLocNo(locNo));
+ startupDto.setTaskPri(13.0);
+ return startupDto;
+ }
+ public String locToLocNo(String locNo){//0100203
+ int row = Integer.parseInt(locNo.substring(0, 2));
+ int bay = Integer.parseInt(locNo.substring(2, 5));
+ int lev = Integer.parseInt(locNo.substring(5, 7));
+ return row + "-" +bay + "-" + lev;
}
//鎼滅储婊℃墭鐩樺簱浣�
@@ -249,6 +328,91 @@
return targetLocMast;
}
+ //鎼滅储婊℃墭鐩樺簱浣� wms-dev
+ public LocMast searchMaxPalletToWmsDev(FindLocNoAttributeVo findLocNoAttributeVo, LocTypeDto locTypeDto,int[] rows) {
+ LocMast targetLocMast = null;
+ List<String> locNos = locDetlService.getSameDetlListToWmsDev(findLocNoAttributeVo.getMatnr(),rows);
+ for (String locNo : locNos) {
+ //鑾峰彇閫氶亾缁�
+ List<Integer> locRowGroupDesc = Utils.getLocGroupDesc(slaveProperties, locNo);
+ for (Integer row : locRowGroupDesc) {
+ String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo));
+ LocMast deepLoc = locMastService.selectById(deepLocNo);
+ if (deepLoc == null) {
+ continue;
+ }
+
+ if (deepLoc.getLocSts().equals("F")) {
+ continue;
+ } else if (deepLoc.getLocSts().equals("O")) {
+ targetLocMast = deepLoc;
+ break;
+ }else {
+ break;
+ }
+ }
+
+ }
+
+ if(targetLocMast == null) {
+ //鐩歌繎鐗╂枡鍖归厤澶辫触锛屾悳绱㈠彲鐢ㄧ┖搴撲綅缁�
+
+ //鑾峰彇璁惧妤煎眰
+// List<Integer> levList = basCrnpService.getLevList();
+// Collections.shuffle(levList);
+//
+// List<Integer> locLevList = locMastService.getLevList();
+// levList.addAll(locLevList);
+
+// for (Integer lev : levList) {
+// List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+// .eq("loc_sts", "O")
+// .in("row1",rows)
+// .orderBy("bay1", true));
+ List<LocMast> locMasts = locMastService.selectLoc(rows);
+ for (LocMast locMast : locMasts) {
+ String locNo = locMast.getLocNo();
+ //鑾峰彇閫氶亾缁�
+ List<Integer> locRowGroupDesc = Utils.getLocGroupDesc(slaveProperties, locNo);
+
+ boolean flag = true;
+ for (Integer row : locRowGroupDesc) {
+ String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo));
+ LocMast deepLoc = locMastService.selectById(deepLocNo);
+ if (deepLoc == null) {
+ continue;
+ }
+
+ if (!deepLoc.getLocSts().equals("O")) {
+ flag = false;
+ break;
+ }
+ }
+
+ if (flag) {
+ for (Integer row : locRowGroupDesc) {
+ String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo));
+ LocMast deepLoc = locMastService.selectById(deepLocNo);
+ if (deepLoc == null) {
+ continue;
+ }
+
+ targetLocMast = deepLoc;
+ break;
+ }
+ break;
+ }
+ }
+
+// if (targetLocMast != null) {
+// break;
+// }
+// }
+
+ }
+ return targetLocMast;
+ }
+
//鎼滅储绌烘墭鐩樺簱浣�
public LocMast searchEmptyPallet(LocTypeDto locTypeDto) {
LocMast targetLocMast = null;
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 703bad5..d209e64 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -9,10 +9,12 @@
import com.zy.asrs.entity.result.FindLocNoAttributeVo;
import com.zy.asrs.entity.result.StorageResult;
import com.zy.asrs.service.*;
+import com.zy.asrs.utils.Utils;
import com.zy.common.CodeRes;
import com.zy.common.model.LocTypeDto;
import com.zy.common.model.StartupDto;
import com.zy.common.service.CommonService;
+import com.zy.common.web.param.NotifyDto;
import com.zy.common.web.param.SearchLocParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -51,6 +53,8 @@
private LocDetlService locDetlService;
@Autowired
private BasCrnpService basCrnpService;
+ @Autowired
+ private WorkService workService;
@Value("${led.ip}")
private String ledIp;
@@ -76,11 +80,21 @@
@PostMapping("/pakin/loc/v1")
@ResponseBody
+ @Transactional
public synchronized R getLocNo(@RequestBody(required = false) SearchLocParam param) {
+ WaitPakin waitPakin = new WaitPakin();
log.info("鏀跺埌WCS鍏ュ簱鎺ュ彛璇锋眰====>>鍏ュ弬:{}", param);
- if (Cools.isEmpty(param.getIoType())) {
- return R.error("鍏ュ嚭搴撶被鍨嬩笉鑳戒负绌�");
- }
+ //wcs璋冪敤姝ゆ帴鍙e悜缁勬墭琛ㄦ彃鍏ヤ竴鏉℃暟鎹ā鎷熺粍鎵�
+ waitPakin.setZpallet(param.getBarcode());
+ waitPakin.setAnfme(100.0D);
+ waitPakin.setMatnr("50001LR-71");
+ waitPakin.setMaktx("姘旀场琚�");
+ waitPakin.setSpecs("50001LR-71");
+ waitPakin.setModel("skv");
+ waitPakinService.insert(waitPakin);
+// if (Cools.isEmpty(param.getIoType())) {
+// return R.error("鍏ュ嚭搴撶被鍨嬩笉鑳戒负绌�");
+// }
if (Cools.isEmpty(param.getSourceStaNo())) {
return R.error("婧愮珯缂栧彿涓嶈兘涓虹┖");
}
@@ -114,10 +128,11 @@
switch (param.getIoType()) {
case 1://婊℃墭鐩樺叆搴�
assert waitPakins != null;
- dto = startupFullPutStore(param.getSourceStaNo(), param.getBarcode(), locTypeDto, waitPakins);
+// dto = startupFullPutStore(param.getSourceStaNo(), param.getBarcode(), locTypeDto, waitPakins);
+ dto = startupFullPutStoreToWmsDev(param.getSourceStaNo(), param.getBarcode(), locTypeDto, waitPakins,param.getRow());
break;
case 10://绌烘墭鐩樺叆搴�
- dto = emptyPlateIn(param.getSourceStaNo(), param.getBarcode());
+ dto = emptyPlateIn(param.getSourceStaNo(), param.getBarcode(),param.getRow());
break;
default:
break;
@@ -136,16 +151,47 @@
LocTypeDto locTypeDto = new LocTypeDto();
locTypeDto.setLocType1(param.getLocType1());
- StartupDto dto = startupPickIn(param.getSourceStaNo(), param.getBarcode(), locTypeDto);;
+ StartupDto dto = startupPickIn(param.getSourceStaNo(), param.getBarcode(), locTypeDto,param.getRow());;
log.info("WCS鎷i�夌洏鐐瑰叆搴撴帴鍙h繑鍙�:{},鎵樼洏鐮�:{}", dto, param.getBarcode());
return R.ok().add(dto);
+ }
+
+ @PostMapping("/taskWrk/state")
+ @ResponseBody
+ public R taskWrkState(@RequestBody(required = false) NotifyDto notifyDto){
+ log.info("鏀跺埌WCS璇锋眰涓婃姤鎺ュ彛======>>宸ヤ綔鍙�:{},鍏ュ弬:{}",notifyDto.getSuperTaskNo(),notifyDto);
+ if (Cools.isEmpty(notifyDto.getNotifyType())){
+ return R.error("閫氱煡绫诲瀷涓嶈兘涓虹┖");
+ }
+ if (Cools.isEmpty(notifyDto.getTaskNo())){
+ return R.error("浠诲姟鍙蜂笉鑳戒负绌�");
+ }
+ WrkMast wrkMast = new WrkMast();
+ switch (notifyDto.getMsgType()){
+ case "task_complete":
+ wrkMast = wrkMastService.selectByTaskNo(notifyDto.getSuperTaskNo());
+ if (wrkMast != null && (wrkMast.getIoType() == 1 || wrkMast.getIoType() == 11)){
+ wrkMast.setWrkSts(4L);
+ if (!wrkMastService.updateById(wrkMast)){
+ return R.error("淇敼宸ヤ綔妗eけ璐�====>4");
+ }
+ }else if (wrkMast != null && (wrkMast.getIoType() == 101)){
+ wrkMast.setWrkSts(14L);
+ if (!wrkMastService.updateById(wrkMast)){
+ return R.error("淇敼宸ヤ綔妗eけ璐�====>14");
+ }
+ }
+ case "task_cancel":
+ workService.cancelWrkMast(notifyDto.getSuperTaskNo(), 9527L);
+ }
+ return R.ok();
}
/**
* 鍏ㄦ澘鍏ュ簱
*/
@Transactional
- public StartupDto startupFullPutStore(Integer devpNo, String barcode, LocTypeDto locTypeDto, List<WaitPakin> waitPakins) {
+ public StartupDto startupFullPutStore(Integer devpNo, String barcode, LocTypeDto locTypeDto, List<WaitPakin> waitPakins,int[] row) {
// 婧愮珯鐐圭姸鎬佹娴�
BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
// 妫�绱㈠簱浣�
@@ -159,7 +205,7 @@
if (dto == null) {
throw new CoolException("鎵句笉鍒扮┖搴撲綅");
}
- int workNo = dto.getWorkNo();
+ int workNo = dto.getTaskNo();
Date now = new Date();
// 鐢熸垚宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
@@ -167,7 +213,7 @@
wrkMast.setIoTime(new Date());
wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
- wrkMast.setIoPri(30D); // 浼樺厛绾�
+ wrkMast.setIoPri(13D); // 浼樺厛绾�
wrkMast.setCrnNo(dto.getCrnNo());
wrkMast.setSourceStaNo(dto.getSourceStaNo());
wrkMast.setStaNo(dto.getStaNo());
@@ -225,10 +271,98 @@
}
/**
+ * 鍏ㄦ澘鍏ュ簱-wms-dev
+ */
+ @Transactional
+ public StartupDto startupFullPutStoreToWmsDev(Integer devpNo, String barcode, LocTypeDto locTypeDto, List<WaitPakin> waitPakins,int[] row) {
+ // 婧愮珯鐐圭姸鎬佹娴�
+ BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
+ // 妫�绱㈠簱浣�
+// List<String> matnrs = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
+// List<String> batchs = waitPakins.stream().map(WaitPakin::getBatch).distinct().collect(Collectors.toList());
+ WaitPakin waitPakin1 = waitPakins.get(0);
+ FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
+ findLocNoAttributeVo.setMatnr(waitPakin1.getMatnr());
+
+ StartupDto dto = commonService.getLocNoToWmsDev(1, devpNo, findLocNoAttributeVo, locTypeDto, barcode,row);
+ if (dto == null) {
+ throw new CoolException("鎵句笉鍒扮┖搴撲綅");
+ }
+ int workNo = dto.getTaskNo();
+ 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.setCrnNo(dto.getCrnNo());
+ wrkMast.setSourceStaNo(dto.getSourceStaNo());
+ wrkMast.setStaNo(dto.getStaNo());
+ wrkMast.setLocNo(loc(dto.getLocNo()));
+ wrkMast.setBarcode(barcode); // 鎵樼洏鐮�
+ wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("N"); // 绌烘澘
+ wrkMast.setLinkMis("Y");
+ wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
+ // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiTime(now);
+ wrkMast.setModiUser(waitPakin1.getModiUser());
+ wrkMast.setAppeUser(waitPakin1.getAppeUser());
+ 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("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
+ });
+ // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y
+ if (!waitPakinService.updateIoStatus("Y", dto.getLocNo(), barcode)) {
+ throw new CoolException("鏇存柊閫氱煡妗eけ璐�");
+ }
+ // 鏇存柊婧愮珯鐐逛俊鎭�
+ sourceStaNo.setWrkNo(workNo);
+ sourceStaNo.setModiTime(now);
+ if (!basDevpService.updateById(sourceStaNo)) {
+ throw new CoolException("鏇存柊婧愮珯澶辫触");
+ }
+ // 鏇存柊鐩爣搴撲綅鐘舵��
+ LocMast locMast = locMastService.selectById(loc(dto.getLocNo()));
+ if (locMast.getLocSts().equals("O")) {
+ locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+ }
+ } else {
+ throw new CoolException(dto.getLocNo() + "鐩爣搴撲綅宸茶鍗犵敤");
+ }
+ return dto;
+ }
+
+ public String loc(String locNo){
+ String[] split = locNo.split("-");
+ return Utils.getLocNo(Integer.parseInt(split[0]),Integer.parseInt(split[1]),Integer.parseInt(split[2]));
+ }
+
+ /**
* 鎷i�夊叆搴�
*/
@Transactional
- public StartupDto startupPickIn(Integer devpNo, String barcode, LocTypeDto locTypeDto) {
+ public StartupDto startupPickIn(Integer devpNo, String barcode, LocTypeDto locTypeDto,int[] row) {
// 婧愮珯鐐圭姸鎬佹娴�
BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
@@ -258,7 +392,7 @@
// 鐢熸垚宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
- int workNo = dto.getWorkNo();
+ int workNo = dto.getTaskNo();
wrkMast.setWrkNo(workNo);
wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
wrkMast.setIoType(wrkMastOut.getIoType() - 50); // 鍏ュ嚭搴撶姸鎬侊細53.鎷f枡鍐嶅叆搴�
@@ -310,7 +444,7 @@
}
@Transactional
- public StartupDto emptyPlateIn(Integer devpNo, String barcode) {
+ public StartupDto emptyPlateIn(Integer devpNo, String barcode,int[] row) {
// 妫�绱㈠簱浣�
Integer[] arr=arr();
diff --git a/src/main/java/com/zy/common/web/param/NotifyDto.java b/src/main/java/com/zy/common/web/param/NotifyDto.java
new file mode 100644
index 0000000..9312ddc
--- /dev/null
+++ b/src/main/java/com/zy/common/web/param/NotifyDto.java
@@ -0,0 +1,42 @@
+package com.zy.common.web.param;
+
+import lombok.Data;
+
+@Data
+public class NotifyDto {
+ private Long id;
+
+ //閫氱煡绫诲瀷
+ private String notifyType;
+
+ //璁惧鍙�
+ private Integer device;
+
+ //宸ヤ綔鍙�
+ private String taskNo;
+
+ //涓婄骇绯荤粺宸ヤ綔鍙�
+ private String superTaskNo;
+
+ //娑堟伅绫诲瀷
+ private String msgType;
+
+ //娑堟伅鎻忚堪
+ private String msgDesc;
+
+ //娑堟伅鏁版嵁
+ private String data;
+
+ //澶辫触閲嶈瘯娆℃暟
+ private Integer failTimes = 3;
+
+ //閲嶈瘯娆℃暟
+ private Integer retryTimes = 0;
+
+ //閲嶈瘯闂撮殧榛樿30s
+ private Integer retryTime = 30;
+
+ //涓婃閲嶈瘯鏃堕棿
+ private Long lastRetryTime = 0L;
+
+}
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 1a170ce..60ca64d 100644
--- a/src/main/java/com/zy/common/web/param/SearchLocParam.java
+++ b/src/main/java/com/zy/common/web/param/SearchLocParam.java
@@ -7,8 +7,8 @@
*/
@Data
public class SearchLocParam {
-
- private Integer ioType;
+ //ioType鍏ㄩ儴榛樿涓�1
+ private Integer ioType = 1;
private Integer sourceStaNo;
@@ -17,4 +17,7 @@
// 搴撲綅瑙勬牸锛� 0:鏈煡, 1:浣庡簱浣�, 2:楂樺簱浣嶏級
private Short locType1;
+ //搴撲綅鎺�
+ private int[] row;
+
}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 0bb19fd..aa8d950 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,5 +1,5 @@
server:
- port: 8081
+ port: 8080
servlet:
context-path: /@pom.build.finalName@
@@ -12,7 +12,7 @@
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
url: jdbc:sqlserver://127.0.0.1:1433;databasename=qlasrs-sxk
username: sa
- password: spcyy@2025
+ password: sa@123
mvc:
static-path-pattern: /**
redis:
@@ -43,7 +43,7 @@
#License鐩稿叧閰嶇疆
license:
- subject: qlasrs-sxk
+ subject: wmsdev
publicAlias: publicCert
storePass: public_zhongyang_123456789
licensePath: license.lic
@@ -53,26 +53,33 @@
wcs-slave:
# 鐢辨祬鍏ユ繁
locGroupAscOrder: [
- {rowList: [1],minBay: 1,maxBay: 16},
- {rowList: [3,4,5,6],minBay: 1,maxBay: 16},
- {rowList: [10,9,8,7],minBay: 1,maxBay: 16},
- {rowList: [10,9,8,7,6,5,4,3],minBay: 17,maxBay: 22},
- {rowList: [12,13],minBay: 1,maxBay: 22},
- {rowList: [15,14],minBay: 1,maxBay: 22},
- {rowList: [17,18,19,20,21,22,23],minBay: 1,maxBay: 22},
- {rowList: [2],minBay: 1,maxBay: 22},
- {rowList: [11],minBay: 1,maxBay: 22},
- {rowList: [16],minBay: 1,maxBay: 22},
+ {rowList: [1],minBay: 2,maxBay: 60},
+ {rowList: [3,4,5,6],minBay: 2,maxBay: 60},
+ {rowList: [10,9,8,7],minBay: 2,maxBay: 60},
+ {rowList: [10,9,8,7,6,5,4,3],minBay: 2,maxBay: 60},
+ {rowList: [12,13],minBay: 2,maxBay: 60},
+ {rowList: [15,14],minBay: 2,maxBay: 60},
+ {rowList: [17,18,19,20,21,22,23,24],minBay: 2,maxBay: 60},
+ {rowList: [2],minBay: 2,maxBay: 60},
+ {rowList: [11],minBay: 2,maxBay: 60},
+ {rowList: [16],minBay: 2,maxBay: 60},
+ {rowList: [25,26,27,28],minBay: 2,maxBay: 60},
+ {rowList: [29,30,31,32],minBay: 2,maxBay: 60},
+ {rowList: [33,34,35,36],minBay: 2,maxBay: 60},
+ {rowList: [37,38,39,40],minBay: 2,maxBay: 60},
]
#wcs瀵规帴
wcs:
#鍦板潃
address:
- URL: http://127.0.0.1:8080/wcs
+ URL: http://192.168.4.69:9090/wcs
#鍑哄簱绉诲簱浠诲姟涓嬪彂
outboundTaskSend: open/outboundTaskSend
deviceStatus : open/deviceStatus
+ createOutTask: openapi/createOutTask
+ createLocMoveTask: openapi/createLocMoveTask
+ devicesStatus: openapi/devicesStatus
led:
ip: 192.168.1.198
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index 7335503..0be505a 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -149,6 +149,19 @@
ORDER BY ld.appe_time ASC
</select>
+ <select id="getSameDetlListToWmsDev" resultType="java.lang.String">
+ SELECT ld.loc_no FROM asr_loc_detl ld
+ LEFT JOIN asr_loc_mast lm ON ld.loc_no = lm.loc_no
+ WHERE 1 = 1
+ AND ld.matnr = #{matnr}
+ AND lm.loc_sts = 'F'
+ AND lm.row1 IN
+ <foreach collection="rows" item="row" open="(" separator="," close=")">
+ #{row}
+ </foreach>
+ ORDER BY ld.appe_time ASC
+ </select>
+
<select id="getStockStatis" resultType="com.zy.asrs.entity.LocDetl">
select * from
(
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 4141025..5ae1ea1 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -41,4 +41,15 @@
select DISTINCT lev1 from asr_loc_mast
</select>
+ <select id="selectLoc" resultMap="BaseResultMap">
+ select * from asr_loc_mast where 1 = 1
+ AND loc_sts = 'O'
+ AND row1 IN
+ <if test="rows != null">
+ <foreach collection="rows" item="row" open="(" separator="," close=")">
+ #{row}
+ </foreach>
+ </if>
+ order by bay1 asc, lev1 asc
+ </select>
</mapper>
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index 44fd552..19bdbe4 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -76,4 +76,8 @@
order by modi_time,wrk_no asc
</select>
+ <select id="selectByTaskNo" resultMap="BaseResultMap">
+ select *
+ from asr_wrk_mast where wrk_no = #{taskNo}
+ </select>
</mapper>
--
Gitblit v1.9.1