From 3abb457673b343ab1b5af0a531a625435dcff105 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期四, 11 一月 2024 08:28:28 +0800
Subject: [PATCH] #
---
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/LocMastMapper.java | 6 ++
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocMastController.java | 6 ++
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WorkController.java | 8 ++
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WorkService.java | 5 +
zy-asrs-wms/src/main/webapp/views/locDetl/locDetl.html | 2
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/LocMastService.java | 10 +++
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/LocMastServiceImpl.java | 18 ++++++
zy-asrs-wms/src/main/webapp/static/js/pakStore/locMove.js | 2
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java | 90 ++++++++++++++++++++++++++++++
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java | 4
10 files changed, 147 insertions(+), 4 deletions(-)
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/LocMastMapper.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/LocMastMapper.java
index 433df09..51d44bf 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/LocMastMapper.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/LocMastMapper.java
@@ -3,10 +3,16 @@
import com.zy.asrs.common.wms.entity.LocMast;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
+
+import java.util.List;
@Mapper
@Repository
public interface LocMastMapper extends BaseMapper<LocMast> {
+ @Select("select loc_no from common_loc_mast where 1=1 and loc_sts = 'O' and host_id = #{hostId}")
+ List<String> queryGroupEmptyStock(Long hostId);
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/LocMastService.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/LocMastService.java
index a9a359c..6e4a9bf 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/LocMastService.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/LocMastService.java
@@ -3,6 +3,16 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.asrs.common.wms.entity.LocMast;
+import java.util.List;
+
public interface LocMastService extends IService<LocMast> {
+ /**
+ * 鑾峰彇鍚岀粍璐ф灦鐨勭┖搴撲綅
+ *
+ * @param sourceLocNo 婧愬簱浣�
+ * @return 鍚岀粍绌哄簱浣嶉泦鍚�
+ */
+ List<String> queryGroupEmptyStock(String sourceLocNo, Long hostId);
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WorkService.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WorkService.java
index b28307f..7ff9ca8 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WorkService.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WorkService.java
@@ -47,5 +47,10 @@
*/
void adjustLocDetl(LocDetlAdjustParam param, Long userId, Long hostId);
+ /**
+ * 搴撲綅绉昏浆
+ */
+ void locMove(String sourceLocNo, String locNo, Long userId, Long hostId);
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/LocMastServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/LocMastServiceImpl.java
index 4c91634..e56e26b 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/LocMastServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/LocMastServiceImpl.java
@@ -1,12 +1,30 @@
package com.zy.asrs.common.wms.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.asrs.common.wms.mapper.LocMastMapper;
import com.zy.asrs.common.wms.entity.LocMast;
import com.zy.asrs.common.wms.service.LocMastService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zy.asrs.framework.common.Cools;
import org.springframework.stereotype.Service;
+
+import java.util.List;
@Service("locMastService")
public class LocMastServiceImpl extends ServiceImpl<LocMastMapper, LocMast> implements LocMastService {
+ @Override
+ public List<String> queryGroupEmptyStock(String sourceLocNo, Long hostId) {
+ if (Cools.isEmpty(sourceLocNo)) {
+ return null;
+ }
+ LocMast sourceStock = this.getOne(new LambdaQueryWrapper<LocMast>()
+ .eq(LocMast::getLocNo, sourceLocNo)
+ .eq(LocMast::getHostId, hostId));
+ if (Cools.isEmpty(sourceStock)) {
+ return null;
+ }
+ return this.baseMapper.queryGroupEmptyStock(hostId);
+ }
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java
index 7a6debb..00d0826 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java
@@ -163,6 +163,7 @@
}
@Override
+ @Transactional
public void stockOut(Integer staNo, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId, Long hostId) {
Date now = new Date();
// 鍚堝苟鍚岀被椤�
@@ -535,6 +536,7 @@
}
@Override
+ @Transactional
public void adjustLocDetl(LocDetlAdjustParam param, Long userId, Long hostId) {
param.integrate();
LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, param.getLocNo()).eq(LocMast::getHostId, hostId));
@@ -656,4 +658,92 @@
throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
}
}
+
+ @Override
+ @Transactional
+ public void locMove(String sourceLocNo, String locNo, Long userId, Long hostId) {
+ LocMast sourceLoc = locMastService.getOne(new LambdaQueryWrapper<LocMast>()
+ .eq(LocMast::getLocNo, sourceLocNo)
+ .eq(LocMast::getHostId, hostId));
+ List<LocDetl> locDetls = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
+ .eq(LocDetl::getLocNo, sourceLocNo)
+ .eq(LocDetl::getHostId, hostId));
+ if (Cools.isEmpty(sourceLoc)){
+ throw new CoolException("鏈壘鍒板簱浣�");
+ }
+ LocMast loc = locMastService.getOne(new LambdaQueryWrapper<LocMast>()
+ .eq(LocMast::getLocNo, locNo)
+ .eq(LocMast::getHostId, hostId));
+ if (Cools.isEmpty(loc)){
+ throw new CoolException("鏈壘鍒板簱浣�");
+ }
+ if (!sourceLoc.getCrnNo().equals(loc.getCrnNo())) {
+// throw new CoolException("绉昏浆搴撲綅灞炰簬涓嶅悓鍫嗗灈鏈�"); todo:luxiaotao
+ }
+ Date now = new Date();
+ // 鑾峰彇宸ヤ綔鍙�
+ int workNo = commonService.getWorkNo(WorkNoType.PICK.type);
+ // 淇濆瓨宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(now);
+ wrkMast.setWrkSts(101L); // 宸ヤ綔鐘舵�侊細101.鐢熸垚鍑哄簱浠诲姟
+ wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
+ wrkMast.setIoPri(10D);
+ wrkMast.setSourceLocNo(sourceLocNo); // 婧愬簱浣�
+ wrkMast.setLocNo(locNo); // 鐩爣搴撲綅
+ wrkMast.setFullPlt(Cools.isEmpty(locDetls)?"N":"Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D")?"Y":"N"); // 绌烘澘
+ wrkMast.setBarcode(sourceLoc.getBarcode()); // 鎵樼洏鐮�
+ wrkMast.setAppeUser(String.valueOf(userId));
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiUser(String.valueOf(userId));
+ wrkMast.setModiTime(now);
+ wrkMast.setHostId(hostId);
+ boolean res = wrkMastService.save(wrkMast);
+ if (!res) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ // 宸ヤ綔妗f槑缁嗕繚瀛�
+ for (LocDetl locDetl : locDetls) {
+ WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(locDetl);
+ wrkDetl.setWrkNo(workNo);
+ wrkDetl.setIoTime(now);
+ wrkDetl.setAnfme(locDetl.getAnfme());
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setAppeUser(userId);
+ wrkDetl.setModiTime(now);
+ wrkDetl.setModiUser(userId);
+ wrkDetl.setHostId(hostId);
+ wrkDetl.setWrkMastId(wrkMast.getId());
+ if (!wrkDetlService.save(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+ }
+ }
+ // 淇敼婧愬簱浣嶇姸鎬�
+ if (sourceLoc.getLocSts().equals("D") || sourceLoc.getLocSts().equals("F")) {
+ sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害
+ sourceLoc.setModiUser(userId);
+ sourceLoc.setModiTime(now);
+ if (!locMastService.updateById(sourceLoc)){
+ throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
+ }
+ } else {
+ throw new CoolException(sourceLoc.getLocNo() + "婧愬簱浣嶅嚭搴撳け璐ワ紝鐘舵�侊細"+sourceLoc.getLocSts$());
+ }
+ // 淇敼鐩爣搴撲綅鐘舵��
+ if (loc.getLocSts().equals("O")) {
+ loc.setLocSts("S"); // S.鍏ュ簱棰勭害
+ loc.setModiTime(now);
+ loc.setModiUser(userId);
+ if (!locMastService.updateById(loc)) {
+ throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
+ }
+ } else {
+ throw new CoolException("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細"+loc.getLocSts$());
+ }
+ }
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java
index 204e248..5d3bb49 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java
@@ -51,8 +51,8 @@
wrapper.ge(LocDetl::getAppeTime, DateUtils.convert(range[0]));
wrapper.le(LocDetl::getAppeTime, DateUtils.convert(range[1]));
}
- if (!Cools.isEmpty(param.get("loc_no"))) {
- wrapper.eq(LocDetl::getLocNo, param.get("loc_no"));
+ if (!Cools.isEmpty(param.get("locNo"))) {
+ wrapper.eq(LocDetl::getLocNo, param.get("locNo"));
}
return R.ok(locDetlService.page(new Page<>(curr, limit), wrapper));
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocMastController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocMastController.java
index 861d0d2..194311c 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocMastController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocMastController.java
@@ -60,6 +60,12 @@
return R.ok(locMastService.page(new Page<>(curr, limit), wrapper));
}
+ @PostMapping(value = "/group/empty/stock")
+ @ManagerAuth(memo = "鑾峰彇鍚岀粍璐ф灦鐨勭┖搴撲綅")
+ public R getGroupEmptyStock(@RequestParam(required = false) String sourceLocNo) {
+ return R.ok().add(locMastService.queryGroupEmptyStock(sourceLocNo, getHostId()));
+ }
+
@RequestMapping(value = "/locMast/add/auth")
@ManagerAuth
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WorkController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WorkController.java
index e6f6716..1062b75 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WorkController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WorkController.java
@@ -111,4 +111,12 @@
return R.ok("搴撳瓨璋冩暣鎴愬姛");
}
+ @RequestMapping("/loc/move/start")
+ @ManagerAuth(memo = "搴撲綅绉昏浆")
+ public synchronized R locMoveStart(@RequestParam String sourceLocNo,
+ @RequestParam String targetLocNo) {
+ workService.locMove(sourceLocNo, targetLocNo, getUserId(), getHostId());
+ return R.ok("绉诲簱鍚姩鎴愬姛");
+ }
+
}
diff --git a/zy-asrs-wms/src/main/webapp/static/js/pakStore/locMove.js b/zy-asrs-wms/src/main/webapp/static/js/pakStore/locMove.js
index 542f6b9..882d795 100644
--- a/zy-asrs-wms/src/main/webapp/static/js/pakStore/locMove.js
+++ b/zy-asrs-wms/src/main/webapp/static/js/pakStore/locMove.js
@@ -59,7 +59,7 @@
// 鎼滅储搴撲綅鐗╂枡
function getLoc(el) {
tableIns.reload({
- url: baseUrl+'/locDetl/list/auth'
+ url: baseUrl+'/locDetl/page/auth'
, where: {loc_no: el.value}
, done:function (res) {
limit();
diff --git a/zy-asrs-wms/src/main/webapp/views/locDetl/locDetl.html b/zy-asrs-wms/src/main/webapp/views/locDetl/locDetl.html
index e5102b9..d7477d8 100644
--- a/zy-asrs-wms/src/main/webapp/views/locDetl/locDetl.html
+++ b/zy-asrs-wms/src/main/webapp/views/locDetl/locDetl.html
@@ -16,7 +16,7 @@
<div id="search-box" class="layui-form layui-card-header">
<div class="layui-inline">
<div class="layui-input-inline">
- <input class="layui-input" type="text" name="loc_no" placeholder="搴撲綅鍙�" autocomplete="off">
+ <input class="layui-input" type="text" name="locNo" placeholder="搴撲綅鍙�" autocomplete="off">
</div>
</div>
<div class="layui-inline">
--
Gitblit v1.9.1