From 809f49807ce5f587fe881cfe4cc3d38d9c1a46a3 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期六, 20 十二月 2025 10:20:47 +0800
Subject: [PATCH] #1
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 159 insertions(+), 8 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 38e591c..61b7568 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -180,9 +180,14 @@
for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch());
- one.setMemo(paramLocDetl.getMemo());
- one.setColor(paramLocDetl.getColor());
- if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount(), param.getOrderNo()));
+ if (null != one) {
+ one.setMemo(paramLocDetl.getMemo());
+ one.setColor(paramLocDetl.getColor());
+ if (param.getOutSite()!=212 && param.getOutSite()!=1901 && one.getBrandArmType$()==999){
+ staNo = basDevpService.checkSiteStatus(1901);
+ }
+ locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount(), param.getOrderNo()));
+ }
}
}
if (!locDetlDtos.isEmpty()) {
@@ -319,7 +324,7 @@
DateUtils.convert(now), // 鍗曟嵁鏃ユ湡
docType.getDocId(), // 鍗曟嵁绫诲瀷
null, // 椤圭洰缂栧彿
- null, //
+ param.getGroupGoodsNo(), //缁勮揣鍗曞彿
null, // 璋冩嫧椤圭洰缂栧彿
null, // 鍒濆绁ㄦ嵁鍙�
null, // 绁ㄦ嵁鍙�
@@ -341,7 +346,7 @@
null, // 鍙戣揣鏃堕棿
null, // 鐗╂祦鍚嶇О
null, // 鐗╂祦鍗曞彿
- 1L, // 璁㈠崟鐘舵��
+ 10L, // 璁㈠崟鐘舵��
1, // 鐘舵��
userId, // 娣诲姞浜哄憳
now, // 娣诲姞鏃堕棿
@@ -360,7 +365,8 @@
i++;
Mat mat = matService.selectByMatnr(locDetl.getMatnr());
if (Cools.isEmpty(mat)) {
- throw new CoolException(locDetl.getMatnr() + "鐗╂枡缂栫爜妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧");
+// throw new CoolException(locDetl.getMatnr() + "鐗╂枡缂栫爜妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧");
+ mat = new Mat();
}
OrderDetlPakout orderDetl = new OrderDetlPakout();
orderDetl.sync(mat);
@@ -395,6 +401,108 @@
// for (StockOutParam stockOutParam : stockOutParams){
// startupFullTakeStore(stockOutParam,userId);
// }
+
+ } else {
+ throw new CoolException("璁㈠崟鍙烽噸澶嶏紝璁㈠崟"+param.getOrderNo()+"宸插瓨鍦紒锛侊紒");
+ }
+
+ }
+
+ @Override
+ @Transactional
+ public void startupFullTakeStoreOutGroupOrderForm(StockOutParam param, Long userId) {
+ if (Cools.isEmpty(param) || Cools.isEmpty(param.getLocDetls())){
+ throw new CoolException("鍙傛暟涓虹┖");
+ }
+ if (Cools.isEmpty(param.getOrderNo())){
+ throw new CoolException("璁㈠崟鍙峰弬鏁颁负绌�");
+ }
+ DocType docType = docTypeService.selectOrAdd(param.getOrderName(), Boolean.FALSE);
+ Order order = orderService.selectByNo(param.getOrderNo());
+ if (Cools.isEmpty(order)){
+ Date now = new Date();
+ order = new Order(
+ String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖]
+ param.getOrderNo(), // 璁㈠崟缂栧彿
+ DateUtils.convert(now), // 鍗曟嵁鏃ユ湡
+ docType.getDocId(), // 鍗曟嵁绫诲瀷
+ null, // 椤圭洰缂栧彿
+ param.getGroupGoodsNo(), //缁勮揣鍗曞彿
+ null, // 璋冩嫧椤圭洰缂栧彿
+ null, // 鍒濆绁ㄦ嵁鍙�
+ null, // 绁ㄦ嵁鍙�
+ null, // 瀹㈡埛缂栧彿
+ param.getCstmrName(), // 瀹㈡埛
+ null, // 鑱旂郴鏂瑰紡
+ null, // 鎿嶄綔浜哄憳
+ null, // 鍚堣閲戦
+ null, // 浼樻儬鐜�
+ null, // 浼樻儬閲戦
+ null, // 閿�鍞垨閲囪喘璐圭敤鍚堣
+ null, // 瀹炰粯閲戦
+ null, // 浠樻绫诲瀷
+ null, // 涓氬姟鍛�
+ null, // 缁撶畻澶╂暟
+ null, // 閭垂鏀粯绫诲瀷
+ null, // 閭垂
+ null, // 浠樻鏃堕棿
+ null, // 鍙戣揣鏃堕棿
+ null, // 鐗╂祦鍚嶇О
+ null, // 鐗╂祦鍗曞彿
+ 2L, // 璁㈠崟鐘舵��
+ 1, // 鐘舵��
+ userId, // 娣诲姞浜哄憳
+ now, // 娣诲姞鏃堕棿
+ userId, // 淇敼浜哄憳
+ now, // 淇敼鏃堕棿
+ null // 澶囨敞
+ );
+ if (!orderService.insert(order)) {
+ throw new CoolException("淇濆瓨璁㈠崟涓绘。澶辫触");
+ }
+ // 鍗曟嵁鏄庣粏妗�
+ List<DetlDto> list = new ArrayList<>();
+ List<StockOutParam.LocDetl> locDetls = param.getLocDetls();
+ int i=0;
+ for (StockOutParam.LocDetl locDetl : locDetls) {
+ i++;
+ Mat mat = matService.selectByMatnr(locDetl.getMatnr());
+ if (Cools.isEmpty(mat)) {
+ throw new CoolException(locDetl.getMatnr() + "鐗╂枡缂栫爜妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧");
+ }
+ OrderDetl orderDetl = new OrderDetl();
+ orderDetl.sync(mat);
+ orderDetl.setSuppCode(String.valueOf(i)); // 琛屽彿
+ orderDetl.setManu(locDetl.getLocNo()); //搴撲綅鍙�
+ orderDetl.setBatch(locDetl.getBatch()); //鏈ㄧ缂栫爜
+ orderDetl.setAnfme(locDetl.getAnfme());//鍑哄簱鏁伴噺
+ orderDetl.setModel(locDetl.getModel());//鎵规
+ orderDetl.setSpecs(locDetl.getSpecs());//瑙勬牸
+ orderDetl.setBrand(locDetl.getBrand());//鏈ㄧ绫诲瀷
+ orderDetl.setBarcode(locDetl.getZpallet());//鏈ㄧ绫诲瀷
+ orderDetl.setDanger(locDetl.getDanger());//鏈ㄧ绫诲瀷
+ orderDetl.setWeight(locDetl.getWeight());
+// orderDetl.setWorkQty(locDetl.getAnfme());
+ orderDetl.setWorkQty(0.0);
+ orderDetl.setOrderId(order.getId());
+ orderDetl.setOrderNo(order.getOrderNo());
+ orderDetl.setOrigin(locDetl.getOrigin());
+ orderDetl.setCreateBy(userId);
+ orderDetl.setCreateTime(now);
+ orderDetl.setUpdateBy(userId);
+ orderDetl.setUpdateTime(now);
+ orderDetl.setStatus(1);
+ orderDetl.setQty(0.0D);
+ orderDetl.setMemo(locDetl.getMemo());
+ if (!orderDetlService.insert(orderDetl)) {
+ throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
+ }
+
+ List<StockOutParam> stockOutParams = OutboundAllocationUtil.OutboundClassification(param);
+ for (StockOutParam stockOutParam : stockOutParams){
+ startupFullTakeStore(stockOutParam,userId);
+ }
} else {
throw new CoolException("璁㈠崟鍙烽噸澶嶏紝璁㈠崟"+param.getOrderNo()+"宸插瓨鍦紒锛侊紒");
@@ -529,14 +637,46 @@
for (OutLocDto dto : dtos) {
// 鍒ゆ柇鍏ュ嚭搴撶被鍨嬶細101.鍏ㄦ澘鍑哄簱 or 103.鎷f枡鍑哄簱
if (ioWorkType == null) {
- ioType = dto.isAll() ? 101 : 103;
+ boolean dtoAll = dto.isAll();
+ if (!dtoAll){
+ for (LocDetlDto detlDto : dto.getLocDetlDtos()) {
+ LocDetl locDetl = detlDto.getLocDetl();
+ LocDetl one = locDetlService.selectItem(dto.getLocNo(), locDetl.getMatnr(), locDetl.getBatch());
+ if (null != one) {
+ if (one.getBrandArmType$()==999){
+ dtoAll = true;
+ }
+ } else {
+ log.error("鍑哄簱浣嗘湭鎵惧埌鏄庣粏锛侊紒锛�"+locDetl.getMatnr());
+ dtoAll = true;
+ }
+ }
+ if (dtoAll) {
+ List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", dto.getLocNo()));
+ for (LocDetl locDetl : locDetlList) {
+ boolean signAddAll = true;
+ for (LocDetlDto detlDto : dto.getLocDetlDtos()) {
+ if (detlDto.getLocDetl().getBatch().equals(locDetl.getBatch())) {
+ signAddAll = false;
+ }
+ }
+ if (signAddAll) {
+ LocDetl one = locDetlService.selectItem(dto.getLocNo(), locDetl.getMatnr(), locDetl.getBatch());
+ dto.getLocDetlDtos().add(new LocDetlDto(one, one.getAnfme(), "affiliated"));
+ }
+ }
+ }
+ if (staNo.getDevNo() == 1901 && !dtoAll){//绱ф�ュ嚭搴撻渶淇敼
+ staNo.setDevNo(118);
+ }
+ }
+ ioType = dtoAll ? 101 : 103;
} else if (ioWorkType.equals(IoWorkType.CHECK_OUT)) {
ioType = 107;
}
assert ioType != null;
// 鑾峰彇搴撲綅
LocMast locMast = locMastService.selectById(dto.getLocNo());
-
Integer outSta = staNo.getDevNo();
// //2鍙峰爢鍨涙満鍏ㄦ澘鍑哄簱绔欐寚瀹氫负204绔欙紝鎷f枡绔欐寚瀹氫负202
// if(locMast.getCrnNo()==2){
@@ -999,6 +1139,16 @@
@Override
@Transactional
+ public void mesLogMkWrkMast(String workNo, Long userId) {
+ WrkMast wrkMast = wrkMastService.selectById(workNo);
+ wrkMast.setLogMk("Y");
+ if (!wrkMastService.updateById(wrkMast)) {
+ throw new CoolException("淇敼宸ヤ綔妗eけ璐�");
+ }
+ }
+
+ @Override
+ @Transactional
public void completeWrkMast(String workNo, Long userId) {
WrkMast wrkMast = wrkMastService.selectById(workNo);
if (Cools.isEmpty(wrkMast)){
@@ -1022,6 +1172,7 @@
wrkMast.setModiTime(now);
wrkMast.setModiUser(userId);
wrkMast.setSheetNo("3");
+ wrkMast.setLogMk("N");
// 瀹屾垚鎿嶄綔浜哄憳璁板綍
wrkMast.setManuType("鎵嬪姩瀹屾垚");
if (!wrkMastService.updateById(wrkMast)) {
--
Gitblit v1.9.1