From 3bcfebe3912bdaf8abf2d29b6913b771bad3804c Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期一, 20 十月 2025 08:44:46 +0800
Subject: [PATCH] 1
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 316 ++++++++++++----------------------------------------
1 files changed, 73 insertions(+), 243 deletions(-)
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 ae419d8..bf92460 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -119,7 +119,7 @@
// List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList());
// List<String> batchs = param.getList().stream().map(FullStoreParam.MatCodeStore::getBatch).distinct().collect(Collectors.toList());
FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(param.getList().get(0));
- StartupDto dto = commonService.getLocNo(1, param.getDevpNo(), findLocNoAttributeVo, locTypeDto);
+ StartupDto dto = commonService.getLocNo(1, param.getDevpNo(), findLocNoAttributeVo, locTypeDto, param.getBarcode());
if (Cools.isEmpty(dto)) {
throw new CoolException("鏌ヨ搴撲綅澶辫触锛侊紒==銆媠tartupFullPutStore ==銆� commonService.getLocNo");
}
@@ -340,17 +340,12 @@
// 鑾峰彇璺緞
List<StaDesc> staDescs = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta);
StaDesc staDesc = staDescs.get(0);
+ Integer crnStn = staDesc.getCrnStn();
if (locMast.getCrnNo() == 1) {
- int finalCrnStn = 1016;
if (locMast.getRow1() <= 3) {
- finalCrnStn = 1013;
- }
-
- for (StaDesc desc : staDescs) {
- if (desc.getCrnStn() == finalCrnStn) {
- staDesc = desc;
- break;
- }
+ crnStn = 1013;
+ }else {
+ crnStn = 1016;
}
}
@@ -378,7 +373,7 @@
wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
wrkMast.setIoPri(13D); // 浼樺厛绾э細13
wrkMast.setCrnNo(locMast.getCrnNo());
- wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
+ wrkMast.setSourceStaNo(crnStn); // 婧愮珯
wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
wrkMast.setSourceLocNo(dto.getLocNo()); // 婧愬簱浣�
wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
@@ -406,7 +401,9 @@
wrkDetl.setWrkNo(workNo);
wrkDetl.setIoTime(now);
Double anfme = ioType == 101 ? detlDto.getLocDetl().getAnfme() : detlDto.getCount();
+ Double weight = MatUtils.calcWeight(detlDto.getLocDetl().getMatnr(), anfme);
wrkDetl.setAnfme(anfme); // 鏁伴噺
+ wrkDetl.setWeight(weight);
wrkDetl.setAppeTime(now);
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(now);
@@ -468,7 +465,16 @@
String orderNo = taskDto.getLocDtos().get(0).getOrderNo();
OrderPakout orderPakout = orderPakOutService.selectByNo(orderNo);
int ioType = orderPakout.getDocType() == 8 ? 107 : (taskDto.isAll() ? 101 : 103);
- StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
+ StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo(),locMast.getRow1());
+ Integer crnStn = staDesc.getCrnStn();
+ if (locMast.getCrnNo() == 1) {
+ if (locMast.getRow1() <= 3) {
+ crnStn = 1013;
+ }else {
+ crnStn = 1016;
+ }
+ }
+
// 鐢熸垚宸ヤ綔鍙�
int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
// 鐢熸垚宸ヤ綔妗�
@@ -479,7 +485,7 @@
wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
wrkMast.setIoPri(13D); // 浼樺厛绾э細13
wrkMast.setCrnNo(locMast.getCrnNo());
- wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
+ wrkMast.setSourceStaNo(crnStn); // 婧愮珯
wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
wrkMast.setSourceLocNo(taskDto.getLocNo()); // 婧愬簱浣�
wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
@@ -504,9 +510,11 @@
OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getBrand()
, locDto.getStandby1(), locDto.getStandby2(), locDto.getStandby3(), locDto.getBoxType1(), locDto.getBoxType2(), locDto.getBoxType3());
if (orderDetlPakout == null) {
- orderDetlPakout = orderDetlPakoutService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null, locDto.getBrand()
- , locDto.getStandby1(), locDto.getStandby2(), locDto.getStandby3(), locDto.getBoxType1(), locDto.getBoxType2(), locDto.getBoxType3());
-
+ orderDetlPakout = orderDetlPakoutService.selectOne(new EntityWrapper<OrderDetlPakout>()
+ .eq("order_no", locDto.getOrderNo())
+ .eq("matnr", locDto.getMatnr())
+ .eq("standby1", locDto.getStandby1())
+ );
}
Wrapper<LocDetl> wrapper = new EntityWrapper<LocDetl>()
@@ -538,6 +546,7 @@
wrkDetl.setStockNum(locDetl.getAnfme());//搴撳瓨
wrkDetl.setStockNum2(locDetl.getWeight());//杈呭簱瀛�
wrkDetl.setKpCstmrName(orderPakout.getKpCstmrName());
+ wrkDetl.setCstateid(locDetl.getCstateid());
//璁$畻杈呮暟閲�
Double weight = MatUtils.calcWeight(wrkDetl.getMatnr(), wrkDetl.getAnfme());
@@ -580,7 +589,7 @@
LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
- StartupDto dto = commonService.getLocNo(10, devpNo, findLocNoAttributeVo, locTypeDto);
+ StartupDto dto = commonService.getLocNo(10, devpNo, findLocNoAttributeVo, locTypeDto, null);
int workNo = dto.getWorkNo();
Date now = new Date();
// 鐢熸垚宸ヤ綔妗�
@@ -665,6 +674,14 @@
if (Cools.isEmpty(sourceStaNo)) {
throw new CoolException("妫�绱㈡簮绔欏け璐�");
}
+ if (locMast.getCrnNo() == 1) {
+ if (locMast.getRow1() <= 3) {
+ sourceStaNo = 1013;
+ }else {
+ sourceStaNo = 1016;
+ }
+ }
+
Date now = new Date();
// 淇濆瓨宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
@@ -727,6 +744,14 @@
if (Cools.isEmpty(sourceStaNo)) {
throw new CoolException("妫�绱㈡簮绔欏け璐�");
}
+ if (locMast.getCrnNo() == 1) {
+ if (locMast.getRow1() <= 3) {
+ sourceStaNo = 1013;
+ }else {
+ sourceStaNo = 1016;
+ }
+ }
+
Date now = new Date();
// 淇濆瓨宸ヤ綔妗�
@@ -807,10 +832,36 @@
if (Cools.isEmpty(sourceLoc)) {
throw new CoolException("鏈壘鍒板簱浣�");
}
+
+ if (Utils.isDeepLoc(slaveProperties, sourceLocNo)) {
+ String shallowLoc = Utils.getShallowLoc(slaveProperties, sourceLocNo);
+ LocMast locMast = locMastService.selectById(shallowLoc);
+ if (locMast == null) {
+ throw new CoolException(shallowLoc + "娴呭簱浣嶄笉瀛樺湪");
+ }
+
+ if(!locMast.getLocSts().equals("O")) {
+ throw new CoolException(shallowLoc + "娴呭簱浣嶇姸鎬佷笉涓虹┖");
+ }
+ }
+
LocMast loc = locMastService.selectById(locNo);
if (Cools.isEmpty(loc)) {
throw new CoolException("鏈壘鍒板簱浣�");
}
+
+ if (Utils.isDeepLoc(slaveProperties, locNo)) {
+ String shallowLoc = Utils.getShallowLoc(slaveProperties, locNo);
+ LocMast locMast = locMastService.selectById(shallowLoc);
+ if (locMast == null) {
+ throw new CoolException(shallowLoc + "娴呭簱浣嶄笉瀛樺湪");
+ }
+
+ if(!locMast.getLocSts().equals("O")) {
+ throw new CoolException(shallowLoc + "娴呭簱浣嶆湁璐э紝鏃犳硶绉昏浆");
+ }
+ }
+
// 鍒ゆ柇搴撲綅鏄惁鍐荤粨
String sourceLocFrozen = locMastMapper.findFirstFrozenLocNo(Arrays.asList(sourceLoc.getLocNo(), loc.getLocNo()));
if (sourceLocFrozen != null) {
@@ -853,6 +904,7 @@
wrkMast.setAppeTime(now);
wrkMast.setModiUser(userId);
wrkMast.setModiTime(now);
+ wrkMast.setMemo("浜哄伐鎵嬪姩绉诲簱");
boolean res = wrkMastService.insert(wrkMast);
if (!res) {
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
@@ -983,7 +1035,7 @@
// todo 鐩樼偣璁板綍
// 淇敼搴撳瓨
if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), locDetl.getBrand(),
- locDetl.getStandby1(), locDetl.getStandby2(), locDetl.getStandby3(), locDetl.getBoxType1(), locDetl.getBoxType2(), locDetl.getBoxType3())) {
+ adjust.getStandby1(), locDetl.getStandby2(), locDetl.getStandby3(), locDetl.getBoxType1(), locDetl.getBoxType2(), locDetl.getBoxType3())) {
throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿淇敼鏁伴噺澶辫触");
}
// 淇濆瓨璋冩暣璁板綍
@@ -1148,231 +1200,6 @@
throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
}
}
-
- @Override
- @Transactional
- public void adjustLocDetl2(LocDetlAdjustParam param, Long userId) {
- param.integrate();
- LocMast locMast = locMastService.selectById(param.getLocNo());
- if (Cools.isEmpty(locMast)) {
- throw new CoolException("搴撲綅涓嶅瓨鍦�");
- }
- if (!(locMast.getLocSts().equals("P"))) {
- throw new CoolException("褰撳墠搴撲綅涓嶅彲璋冩暣锛佸簱浣嶇姸鎬侊細" + locMast.getLocSts$());
- }
-
- Date now = new Date();
- List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", param.getLocNo()));
-
- List<LocDetlAdjustParam.LocDetlAdjust> list = param.getList();
-
- // 娣诲姞鍘嗗彶宸ヤ綔涓绘。
- WrkMastLog wrkMast = new WrkMastLog();
- wrkMast.setIoTime(now);
- wrkMast.setWrkSts(5);
- wrkMast.setIoPri(13D); // 浼樺厛绾�
- wrkMast.setCrnNo(locMast.getCrnNo());
- wrkMast.setSourceLocNo(locMast.getLocNo());
- wrkMast.setLocNo(locMast.getLocNo());
- wrkMast.setBarcode(locMast.getBarcode()); // 鎵樼洏鐮�
- wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
- wrkMast.setPicking("N"); // 鎷f枡
- wrkMast.setExitMk("N"); // 閫�鍑�
- wrkMast.setEmptyMk("N"); // 绌烘澘
- wrkMast.setLinkMis("Y");
- // 鎿嶄綔浜哄憳鏁版嵁
- wrkMast.setAppeTime(now);
- wrkMast.setModiTime(now);
- wrkMast.setAppeUser(userId);
- wrkMast.setModiUser(userId);
-
- // 澧炲垹鏀瑰彧鍒涘缓涓�娆″伐浣滀富妗�
- boolean updateFlag = true;
- boolean deleteFlag = true;
- boolean addFlag = true;
-
- // 淇敼鏁伴噺
- Iterator<LocDetl> iterator = locDetls.iterator();
- while (iterator.hasNext()) {
- LocDetl locDetl = iterator.next();
-
- Iterator<LocDetlAdjustParam.LocDetlAdjust> iterator1 = list.iterator();
- while (iterator1.hasNext()) {
- LocDetlAdjustParam.LocDetlAdjust adjust = iterator1.next();
- if (adjust.getCount() == 0) {
- continue;
- }
- if (locDetl.getMatnr().equals(adjust.getMatnr()) && Cools.eq(locDetl.getBatch(), adjust.getBatch())) {
- if (!locDetl.getAnfme().equals(adjust.getCount())) {
- // todo 鐩樼偣璁板綍
- // 淇敼搴撳瓨
- if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), locDetl.getBrand(),
- locDetl.getStandby1(), locDetl.getStandby2(), locDetl.getStandby3(), locDetl.getBoxType1(), locDetl.getBoxType2(), locDetl.getBoxType3())) {
- throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿淇敼鏁伴噺澶辫触");
- }
- // 淇濆瓨璋冩暣璁板綍
- AdjDetl adjDetl = new AdjDetl();
- adjDetl.setLocNo(locDetl.getLocNo());
- adjDetl.setMatnr(locDetl.getMatnr());
- adjDetl.setBatch(locDetl.getBatch());
- adjDetl.setOriQty(locDetl.getAnfme());
- adjDetl.setAdjQty(adjust.getCount());
- adjDetl.setModiTime(now);
- adjDetl.setModiUser(userId);
- adjDetl.setAppeTime(now);
- adjDetl.setAppeUser(userId);
- adjDetlService.save(adjDetl, userId);
-
- if (updateFlag) {
- wrkMast.setWrkNo(commonService.getWorkNo(3));
- wrkMast.setIoType(23);
- boolean res = wrkMastLogService.insert(wrkMast);
- if (!res) {
- throw new CoolException("搴撳瓨璋冩暣-淇敼 淇濆瓨宸ヤ綔妗eけ璐�");
- }
- updateFlag = false;
- }
-
- // 娣诲姞鍘嗗彶宸ヤ綔鏄庣粏
- WrkDetlLog wrkDetl = new WrkDetlLog();
- wrkDetl.sync(locDetl);
- wrkDetl.setWrkNo(wrkMast.getWrkNo());
- wrkDetl.setIoTime(wrkMast.getIoTime());
- wrkDetl.setAnfme(adjust.getCount());
- wrkDetl.setAppeTime(now);
- wrkDetl.setModiTime(now);
- wrkMast.setAppeUser(userId);
- wrkMast.setModiUser(userId);
- if (!wrkDetlLogService.insert(wrkDetl)) {
- throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
- }
- }
- iterator.remove();
- iterator1.remove();
- }
- }
- }
-
- // 鍒犻櫎搴撳瓨
- for (LocDetl locDetl : locDetls) {
- // todo 鐩樼偣璁板綍
- if (!locDetlService.updateAnfme(-1.0D, locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), locDetl.getBrand(),
- locDetl.getStandby1(), locDetl.getStandby2(), locDetl.getStandby3(), locDetl.getBoxType1(), locDetl.getBoxType2(), locDetl.getBoxType3())) {
- throw new CoolException("鍒犻櫎" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿搴撳瓨鏄庣粏澶辫触");
- }
- // 淇濆瓨璋冩暣璁板綍
- AdjDetl adjDetl = new AdjDetl();
- adjDetl.setLocNo(locDetl.getLocNo());
- adjDetl.setMatnr(locDetl.getMatnr());
- adjDetl.setBatch(locDetl.getBatch());
- adjDetl.setOriQty(locDetl.getAnfme());
- adjDetl.setAdjQty(0.0D);
- adjDetl.setModiTime(now);
- adjDetl.setModiUser(userId);
- adjDetl.setAppeTime(now);
- adjDetl.setAppeUser(userId);
- adjDetlService.save(adjDetl, userId);
-
- if (deleteFlag) {
- wrkMast.setWrkNo(commonService.getWorkNo(3));
- wrkMast.setIoType(22);
- boolean res = wrkMastLogService.insert(wrkMast);
- if (!res) {
- throw new CoolException("搴撳瓨璋冩暣-鍒犻櫎 淇濆瓨宸ヤ綔妗eけ璐�");
- }
- deleteFlag = false;
- }
-
- // 娣诲姞鍘嗗彶宸ヤ綔鏄庣粏
- WrkDetlLog wrkDetl = new WrkDetlLog();
- wrkDetl.sync(locDetl);
- wrkDetl.setWrkNo(wrkMast.getWrkNo());
- wrkDetl.setIoTime(wrkMast.getIoTime());
- wrkDetl.setAnfme(0.0);
- wrkDetl.setAppeTime(now);
- wrkDetl.setModiTime(now);
- wrkMast.setAppeUser(userId);
- wrkMast.setModiUser(userId);
- if (!wrkDetlLogService.insert(wrkDetl)) {
- throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
- }
- }
-
- // 娣诲姞搴撳瓨
- for (LocDetlAdjustParam.LocDetlAdjust adjust : list) {
- if (adjust.getCount() == 0.0D) {
- continue;
- }
- Mat mat = matService.selectByMatnr(adjust.getMatnr());
- LocDetl locDetl = new LocDetl();
- locDetl.sync(mat);
- locDetl.setBatch(adjust.getBatch());
- locDetl.setLocNo(locMast.getLocNo());
- locDetl.setZpallet(locMast.getBarcode());
- locDetl.setAnfme(adjust.getCount()); // 鏁伴噺
- locDetl.setModiUser(userId); // 鎿嶄綔浜哄憳淇℃伅
- locDetl.setModiTime(now);
- locDetl.setAppeUser(userId);
- locDetl.setAppeTime(now);
- if (!locDetlService.insert(locDetl)) {
- throw new CoolException("娣诲姞" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿搴撳瓨鏄庣粏澶辫触");
- }
- // 淇濆瓨璋冩暣璁板綍
- AdjDetl adjDetl = new AdjDetl();
- adjDetl.setLocNo(locMast.getLocNo());
- adjDetl.setMatnr(adjust.getMatnr());
- adjDetl.setBatch(adjust.getBatch());
- adjDetl.setOriQty(0.0D);
- adjDetl.setAdjQty(adjust.getCount());
- adjDetl.setModiTime(now);
- adjDetl.setModiUser(userId);
- adjDetl.setAppeTime(now);
- adjDetl.setAppeUser(userId);
- adjDetlService.save(adjDetl, userId);
-
- if (addFlag) {
- wrkMast.setWrkNo(commonService.getWorkNo(3));
- wrkMast.setIoType(21);
- boolean res = wrkMastLogService.insert(wrkMast);
- if (!res) {
- throw new CoolException("搴撳瓨璋冩暣-鏂板 淇濆瓨宸ヤ綔妗eけ璐�");
- }
- addFlag = false;
- }
-
- // 娣诲姞鍘嗗彶宸ヤ綔鏄庣粏
- WrkDetlLog wrkDetl = new WrkDetlLog();
- wrkDetl.sync(locDetl);
- wrkDetl.setWrkNo(wrkMast.getWrkNo());
- wrkDetl.setIoTime(wrkMast.getIoTime());
- wrkDetl.setAnfme(adjust.getCount());
- wrkDetl.setAppeTime(now);
- wrkDetl.setModiTime(now);
- wrkMast.setAppeUser(userId);
- wrkMast.setModiUser(userId);
- if (!wrkDetlLogService.insert(wrkDetl)) {
- throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
- }
- }
- // 淇敼搴撲綅鐘舵��
- int count = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
- if (locMast.getLocSts().equals("F")) {
- if (count == 0) {
- locMast.setLocSts("D");
- }
- }
- if (locMast.getLocSts().equals("D") || locMast.getLocSts().equals("O")) {
- if (count > 0) {
- locMast.setLocSts("F");
- }
- }
- locMast.setModiUser(userId);
- locMast.setModiTime(now);
- if (!locMastService.updateById(locMast)) {
- throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
- }
- }
-
@Override
@Transactional
@@ -1382,6 +1209,9 @@
if (Cools.isEmpty(wrkMast)) {
throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
}
+ if (wrkMast.getWrkSts() ==14|| wrkMast.getWrkSts() == 15) {
+ throw new CoolException(workNo + "宸ヤ綔妗e凡瀹屾垚涓嶅厑璁稿彇娑�");
+ }
String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣�
String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
// 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級
--
Gitblit v1.9.1