From 062323dcda647af8adf1bfce3c80e7a2483af204 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期四, 16 十月 2025 09:27:11 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/qlasrs-sxk' into qlasrs-sxk
---
src/main/resources/mapper/WrkDetlMapper.xml | 8 ++
src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java | 2
src/main/webapp/views/report/locDetl.html | 2
src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java | 5 +
src/main/resources/mapper/WrkMastMapper.xml | 2
src/main/java/com/zy/common/web/WcsController.java | 95 +++++++++++++++++++++++++++++++
src/main/java/com/zy/asrs/controller/OutController.java | 4 +
src/main/resources/application.yml | 4
src/main/java/com/zy/asrs/service/WrkDetlService.java | 2
src/main/java/com/zy/asrs/webSocketConfig/LedWebsocket.java | 25 ++-----
10 files changed, 128 insertions(+), 21 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 42ecb55..f38436c 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -84,6 +84,10 @@
for (Integer row : locRowGroupAsc) {
String shallow = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo));
LocMast shallowLoc = locMastService.selectById(shallow);
+ if (shallowLoc == null) {
+ continue;
+ }
+
if (shallowLoc.getLocSts().equals("F")) {
LocDetl locDetl1 = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo()));
if (locDetl1 == null) {
diff --git a/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java b/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
index 24cac60..307d06b 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
@@ -25,4 +25,6 @@
List<WrkDetl> selectPakoutQuery(@Param("staNo")Integer staNo, @Param("matnr")String matnr);
List<WrkDetl> findByWorkNo(Integer workNo);
+
+ boolean updateWorkNo(@Param("oldWrkNo") Integer oldWrkNo, @Param("newWrkNo") Integer newWrkNo);
}
diff --git a/src/main/java/com/zy/asrs/service/WrkDetlService.java b/src/main/java/com/zy/asrs/service/WrkDetlService.java
index 18f86c6..4be4d8c 100644
--- a/src/main/java/com/zy/asrs/service/WrkDetlService.java
+++ b/src/main/java/com/zy/asrs/service/WrkDetlService.java
@@ -19,6 +19,8 @@
boolean updateInspect(Integer wrkNo, String matnr, String batch);
+ boolean updateWorkNo(Integer oldWrkNo, Integer newWrkNo);
+
List<WrkDetl> selectPakoutQuery(Integer staNo, String matnr);
List<WrkDetl> findByWorkNo(Integer wrkNo);
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
index 5c56e86..ba252a4 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
@@ -85,4 +85,9 @@
public List<WrkDetl> findByWorkNo(Integer workNo) {
return this.baseMapper.findByWorkNo(workNo);
}
+
+ @Override
+ public boolean updateWorkNo(Integer oldWrkNo, Integer newWrkNo) {
+ return this.baseMapper.updateWorkNo(oldWrkNo, newWrkNo);
+ }
}
diff --git a/src/main/java/com/zy/asrs/webSocketConfig/LedWebsocket.java b/src/main/java/com/zy/asrs/webSocketConfig/LedWebsocket.java
index a9e8505..471249d 100644
--- a/src/main/java/com/zy/asrs/webSocketConfig/LedWebsocket.java
+++ b/src/main/java/com/zy/asrs/webSocketConfig/LedWebsocket.java
@@ -179,6 +179,10 @@
Map<String,Object> map=new HashMap<>();
map.put("to",ledId);
BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", ledId));
+ if (basDevp.getDevMk().equals("O")){
+ basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 1001));
+ }
+
if (basDevp == null ){
return;
}
@@ -188,25 +192,12 @@
return;
}
List<LedCommand> commandList = new ArrayList<>();
- if (basDevp.getDevMk().equals("I")){
- if (basDevp.getWrkNo() != 0){
- WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo()));
- if (null != wrkMast){
- commandList = getCommandList(basDevp.getWrkNo().toString());
- }
+ if (basDevp.getWrkNo() != 0 && basDevp.getLoading().equals("Y")){
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo()));
+ if (null != wrkMast){
+ commandList = getCommandList(basDevp.getWrkNo().toString());
}
- map.put("message",Cools.add("type", "task").add("taskList",commandList));
- webSocketServer.onMessage(JSONObject.toJSONString(map),null,ledId);
- }else if (basDevp.getDevMk().equals("O")){
- BasDevp basDevpOut = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 1001));
- if (basDevp.getWrkNo() != 0){
- WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevpOut.getWrkNo()));
- if (null != wrkMast){
- commandList = getCommandList(basDevp.getWrkNo().toString());
- }
- }
-
}
map.put("message",Cools.add("type", "task").add("taskList",commandList));
webSocketServer.onMessage(JSONObject.toJSONString(map),null,ledId);
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 8bcb656..e5cd336 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -126,6 +126,20 @@
return R.ok().add(dto);
}
+ @PostMapping("/pakin/loc/returnWarehouse")
+ @ResponseBody
+ public synchronized R returnWarehouse(@RequestBody(required = false) SearchLocParam param) {
+ log.info("鏀跺埌WCS鎷i�夌洏鐐瑰叆搴撴帴鍙h姹�====>>鍏ュ弬:{}", param);
+ if (Cools.isEmpty(param.getSourceStaNo())) {
+ return R.error("婧愮珯缂栧彿涓嶈兘涓虹┖");
+ }
+ LocTypeDto locTypeDto = new LocTypeDto();
+ locTypeDto.setLocType1(param.getLocType1());
+
+ StartupDto dto = startupPickIn(param.getSourceStaNo(), param.getBarcode(), locTypeDto);;
+ log.info("WCS鎷i�夌洏鐐瑰叆搴撴帴鍙h繑鍙�:{},鎵樼洏鐮�:{}", dto, param.getBarcode());
+ return R.ok().add(dto);
+ }
/**
* 鍏ㄦ澘鍏ュ簱
@@ -210,6 +224,87 @@
return dto;
}
+ /**
+ * 鎷i�夊叆搴�
+ */
+ @Transactional
+ public StartupDto startupPickIn(Integer devpNo, String barcode, LocTypeDto locTypeDto) {
+ // 婧愮珯鐐圭姸鎬佹娴�
+ BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
+
+ WrkMast wrkMastOut = wrkMastService.selectByBarcode(barcode);
+ if (wrkMastOut == null) {
+ throw new CoolException("鎷i�夌洏鐐逛换鍔′笉瀛樺湪");
+ }
+
+ List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMastOut.getWrkNo());
+ if (wrkDetls.isEmpty()) {
+ throw new CoolException("鎷i�夌洏鐐逛换鍔℃暟鎹笉瀛樺湪");
+ }
+
+ FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
+ findLocNoAttributeVo.setMatnr(wrkDetls.get(0).getMatnr());
+
+ StartupDto dto = commonService.getLocNo(1, devpNo, findLocNoAttributeVo, locTypeDto, barcode);
+ if (dto == null) {
+ throw new CoolException("鎵句笉鍒扮┖搴撲綅");
+ }
+
+ Date now = new Date();
+
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ int workNo = dto.getWorkNo();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+ wrkMast.setIoType(wrkMastOut.getIoType() - 50); // 鍏ュ嚭搴撶姸鎬侊細53.鎷f枡鍐嶅叆搴�
+ wrkMast.setIoPri(30D); // 浼樺厛绾�
+ wrkMast.setCrnNo(dto.getCrnNo());
+ wrkMast.setSourceStaNo(dto.getSourceStaNo());
+ wrkMast.setStaNo(dto.getStaNo());
+ wrkMast.setLocNo(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);
+ boolean res = wrkMastService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+
+ wrkDetlService.updateWorkNo(wrkMastOut.getWrkNo(), workNo);
+
+ // 鍒犻櫎宸ヤ綔涓绘。
+ if (!wrkMastService.deleteById(wrkMastOut)) {
+ throw new CoolException("鍒犻櫎宸ヤ綔涓绘。澶辫触锛寃orkNo=" + wrkMastOut.getWrkNo());
+ }
+
+ // 鏇存柊婧愮珯鐐逛俊鎭�
+ sourceStaNo.setWrkNo(wrkMast.getWrkNo());
+ sourceStaNo.setModiTime(now);
+ if (!basDevpService.updateById(sourceStaNo)) {
+ throw new CoolException("鏇存柊婧愮珯澶辫触");
+ }
+ // 鏇存柊鐩爣搴撲綅鐘舵��
+ LocMast locMast = locMastService.selectById(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;
+ }
+
@Transactional
public StartupDto emptyPlateIn(Integer devpNo, String barcode) {
// 妫�绱㈠簱浣�
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 1cd9073..b61a1cc 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -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: sa@123
+ password: spcyy@2025
mvc:
static-path-pattern: /**
redis:
@@ -78,7 +78,7 @@
ip: 192.168.1.198
url: wms
port: 8081
- id: 1001
+ id: 1002
#erp瀵规帴
erp:
diff --git a/src/main/resources/mapper/WrkDetlMapper.xml b/src/main/resources/mapper/WrkDetlMapper.xml
index 3195c97..c448ed1 100644
--- a/src/main/resources/mapper/WrkDetlMapper.xml
+++ b/src/main/resources/mapper/WrkDetlMapper.xml
@@ -81,6 +81,14 @@
<include refid="batchSeq"></include>
</update>
+ <update id="updateWorkNo">
+ update asr_wrk_detl
+ set wrk_no = #{newWrkNo}
+ , modi_time = getdate()
+ where 1=1
+ and wrk_no = #{oldWrkNo}
+ </update>
+
<select id="selectAndLogByOrderNo" resultMap="BaseResultMap">
select * from asr_wrk_detl where order_no = #{orderNo}
union
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index f00483e..44fd552 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -71,7 +71,7 @@
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,modi_time) <= getdate() and wrk_no not in (select wrk_no from asr_bas_devp))
+ or (wrk_sts=15 and dateadd(mi,8,modi_time) <= getdate() and wrk_no not in (select wrk_no from asr_bas_devp))
or (wrk_sts=15 and modi_time is null and wrk_no not in (select wrk_no from asr_bas_devp))
order by modi_time,wrk_no asc
</select>
diff --git a/src/main/webapp/views/report/locDetl.html b/src/main/webapp/views/report/locDetl.html
index 0da0485..56f1aa3 100644
--- a/src/main/webapp/views/report/locDetl.html
+++ b/src/main/webapp/views/report/locDetl.html
@@ -26,7 +26,7 @@
</body>
<script type="text/html" id="operateDetl">
<!-- <button id="batch" class="layui-btn layui-btn-primary layui-btn-radius" style="height: auto" lay-submit lay-filter="batch">淇敼鍚堝悓鍙�</button>-->
- <a class="layui-btn layui-btn-xs layui-btn-danger btn-pakoutPreview" lay-event="pakoutPreview"><i class="layui-icon layui-icon-prev-circle"></i>淇敼鍚堝悓鍙�</a>
+<!-- <a class="layui-btn layui-btn-xs layui-btn-danger btn-pakoutPreview" lay-event="pakoutPreview"><i class="layui-icon layui-icon-prev-circle"></i>淇敼鍚堝悓鍙�</a>-->
</script>
<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
--
Gitblit v1.9.1