From ed8bd2cd2634798298e90cf075a67173b154f0fa Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期一, 18 八月 2025 14:19:05 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 417 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 381 insertions(+), 36 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 4e1d5b8..53da495 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -12,8 +12,9 @@
import com.zy.asrs.entity.param.FullStoreParam;
import com.zy.asrs.entity.param.LocDetlAdjustParam;
import com.zy.asrs.entity.param.StockOutParam;
+import com.zy.asrs.mapper.OrderDetlMapper;
+import com.zy.asrs.mapper.OrderMapper;
import com.zy.asrs.service.*;
-import com.zy.asrs.utils.OutboundAllocationUtil;
import com.zy.asrs.utils.Utils;
import com.zy.common.model.*;
import com.zy.common.model.enums.IoWorkType;
@@ -26,9 +27,9 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import javax.annotation.Resource;
import java.util.*;
import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
/**
* Created by vincent on 2020/6/11
@@ -41,6 +42,19 @@
private static final int DEFAULT_WORK_NO_TYPE = 0;
// 搴撲綅鎺掑彿鍒嗛厤榛樿绫诲埆
private static final int DEFAULT_ROW_NO_TYPE = 1;
+
+ // 鍫嗗灈鏈烘槧灏勪竴妤肩殑鍏ュ簱鍑哄簱绔欑偣
+ private static final Map<Integer,List<Integer>> crnMapNo;
+
+ static {
+ crnMapNo = new HashMap<>();
+ crnMapNo.put(1,new ArrayList<Integer>(){{add(3001);add(3002);}});
+ crnMapNo.put(2,new ArrayList<Integer>(){{add(3004);add(3003);}});
+ crnMapNo.put(3,new ArrayList<Integer>(){{add(3005);add(3006);}});
+ crnMapNo.put(4,new ArrayList<Integer>(){{add(3007);add(3008);}});
+ crnMapNo.put(5,new ArrayList<Integer>(){{add(3010);add(3009);}});
+ crnMapNo.put(6,new ArrayList<Integer>(){{add(3011);add(3012);}});
+ }
@Autowired
private MatService matService;
@@ -72,6 +86,10 @@
private OrderService orderService;
@Autowired
private OrderDetlService orderDetlService;
+ @Resource
+ private OrderMapper orderMapper;
+ @Resource
+ private OrderDetlMapper orderDetlMapper;
@Autowired
private WcsController wcsController;
@Autowired
@@ -165,10 +183,23 @@
// 鑾峰彇搴撲綅鏄庣粏
List<LocDetlDto> locDetlDtos = new ArrayList<>();
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());
- if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount(), param.getOrderNo()));
+ LocDetl one = new LocDetl();
+// if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
+ one = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no",paramLocDetl.getLocNo())
+ .eq("brand",paramLocDetl.getBrand()).eq("model",paramLocDetl.getModel()));
+// selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch());
+ if(paramLocDetl.getMatnr().equals("绌虹")){
+ one= locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no",paramLocDetl.getLocNo()));
}
+ if (null != one && !paramLocDetl.getMatnr().equals("绌虹")) {
+ if(!"鍚堟牸".equals(one.getThreeCode())) {
+ throw new CoolException(one.getModel() + "鍗蜂笉鍚堟牸:" + one.getThreeCode() );
+ }
+ locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount(), param.getOrderNo()));
+ }else{
+ locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount(), param.getOrderNo()));
+ }
+// }
}
if (!locDetlDtos.isEmpty()) {
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
@@ -185,8 +216,11 @@
@Override
@Transactional
public void startupFullTakeStoreOrder(StockOutParam param, Long userId) {
- if (Cools.isEmpty(param) || Cools.isEmpty(param.getOrderNo()) || Cools.isEmpty(param.getLocDetls())){
+ if (Cools.isEmpty(param) || Cools.isEmpty(param.getLocDetls())){
throw new CoolException("鍙傛暟涓虹┖");
+ }
+ if (Cools.isEmpty(param.getOrderNo())){
+ throw new CoolException("璁㈠崟鍙峰弬鏁颁负绌�");
}
DocType docType = docTypeService.selectOrAdd("鎵嬪姩鍑哄簱鍗�", Boolean.FALSE);
Order order = orderService.selectByNo(param.getOrderNo());
@@ -220,7 +254,8 @@
null, // 鍙戣揣鏃堕棿
null, // 鐗╂祦鍚嶇О
null, // 鐗╂祦鍗曞彿
- 2L, // 璁㈠崟鐘舵��
+// 2L, // 璁㈠崟鐘舵��
+ 1L, // 璁㈠崟鐘舵��
1, // 鐘舵��
userId, // 娣诲姞浜哄憳
now, // 娣诲姞鏃堕棿
@@ -250,9 +285,13 @@
orderDetl.setModel(locDetl.getModel());//鎵规
orderDetl.setSpecs(locDetl.getSpecs());//瑙勬牸
orderDetl.setBrand(locDetl.getBrand());//鏈ㄧ绫诲瀷
- orderDetl.setWorkQty(locDetl.getAnfme());
+ orderDetl.setBarcode(locDetl.getZpallet());//鏈ㄧ绫诲瀷
+ 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);
@@ -264,20 +303,18 @@
}
}
- List<StockOutParam> stockOutParams = OutboundAllocationUtil.OutboundClassification(param);
- for (StockOutParam stockOutParam : stockOutParams){
- startupFullTakeStore(stockOutParam,userId);
- }
+// List<StockOutParam> stockOutParams = OutboundAllocationUtil.OutboundClassification(param);
+// for (StockOutParam stockOutParam : stockOutParams){
+// startupFullTakeStore(stockOutParam,userId);
+// }
} else {
throw new CoolException("璁㈠崟鍙烽噸澶嶏紝璁㈠崟"+param.getOrderNo()+"宸插瓨鍦紒锛侊紒");
}
}
-
-
- @Override
@Transactional
+ @Override
public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId) {
Date now = new Date();
// 鍚堝苟鍚岀被椤�
@@ -337,6 +374,10 @@
wrkMast.setEmptyMk("N"); // 绌烘澘
wrkMast.setLinkMis("N");
wrkMast.setSheetNo("0");
+// wrkMast.setMemo(groupOrderNumber);
+ if (staDesc.getStnNo()<118 || staDesc.getStnNo()>121){
+ wrkMast.setSheetNo("3");
+ }
wrkMast.setBarcode(locMast.getBarcode());
wrkMast.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁
wrkMast.setAppeTime(now);
@@ -349,7 +390,16 @@
for (LocDetlDto detlDto : dto.getLocDetlDtos()) {
if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;}
WrkDetl wrkDetl = new WrkDetl();
+ List<OrderDetl> orderDetl = orderDetlService.selectByBrand(detlDto.getLocDetl().getBrand());
wrkDetl.sync(detlDto.getLocDetl());
+ for (OrderDetl orderDetlDto : orderDetl) {
+ if(orderDetlDto.getSupp() != null){
+ wrkDetl.setSupp(orderDetlDto.getSupp());
+ }
+ if(orderDetlDto.getMemo() != null){
+ wrkDetl.setMemo(orderDetlDto.getMemo());
+ }
+ }
wrkDetl.setOrderNo(detlDto.getOrderNo()); // 鎵嬪姩鍑哄簱涓嶉渶瑕佸甫鍑哄簱瀛樹腑鐨勫崟鎹紪鍙�
wrkDetl.setWrkNo(workNo);
wrkDetl.setIoTime(now);
@@ -362,7 +412,133 @@
if (!wrkDetlService.insert(wrkDetl)) {
throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
}
+ // 淇敼璁㈠崟鏄庣粏
+ orderDetlMapper.updateOrderDetlByGroupNo(detlDto.getOrderNo(), detlDto.getLocDetl().getBrand(), 1);
+ // 淇敼璁㈠崟鐘舵��
+ orderMapper.updateSettleByOrderNo(detlDto.getOrderNo(),2L, userId);
}
+
+ // 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
+ locMast = locMastService.selectById(dto.getLocNo());
+ if (locMast.getLocSts().equals("F")) {
+ locMast.setLocSts(ioType==101?"R":"P");
+ locMast.setModiUser(userId);
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細"+dto.getLocNo());
+ }
+ } else {
+ throw new CoolException(dto.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
+ }
+ }
+ }
+
+
+ @Override
+ @Transactional
+ public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId,String groupOrderNumber) {
+ Date now = new Date();
+ // 鍚堝苟鍚岀被椤�
+ Set<String> locNos = new HashSet<>();
+ List<OutLocDto> dtos = new ArrayList<>();
+ for (LocDetlDto locDetlDto : locDetlDtos) {
+ String locNo = locDetlDto.getLocDetl().getLocNo();
+ if (locNos.contains(locNo)) {
+ for (OutLocDto dto : dtos) {
+ if (dto.getLocNo().equals(locNo)) {
+ dto.getLocDetlDtos().add(locDetlDto);
+ break;
+ }
+ }
+ } else {
+ locNos.add(locNo);
+ dtos.add(new OutLocDto(locNo, locDetlDto));
+ }
+ }
+ Integer ioType = null;
+ // 鐢熸垚宸ヤ綔妗�
+ for (OutLocDto dto : dtos) {
+ // 鍒ゆ柇鍏ュ嚭搴撶被鍨嬶細101.鍏ㄦ澘鍑哄簱 or 103.鎷f枡鍑哄簱
+ if (ioWorkType == null) {
+ ioType = dto.isAll() ? 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){
+// outSta = ioType == 101 ? 204 : 202;
+// }
+
+ // 鑾峰彇璺緞
+ StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta);
+ // 鐢熸垚宸ヤ綔鍙�
+ int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(now);
+ wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+ wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
+ wrkMast.setIoPri(13D); // 浼樺厛绾э細13
+ wrkMast.setCrnNo(locMast.getCrnNo());
+ wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
+ wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
+ wrkMast.setSourceLocNo(dto.getLocNo()); // 婧愬簱浣�
+ wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("N"); // 绌烘澘
+ wrkMast.setLinkMis("N");
+ wrkMast.setSheetNo("0");
+ wrkMast.setMemo(groupOrderNumber);
+ if (staDesc.getStnNo()<118 || staDesc.getStnNo()>121){
+ wrkMast.setSheetNo("3");
+ }
+ wrkMast.setBarcode(locMast.getBarcode());
+ wrkMast.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiUser(userId);
+ wrkMast.setModiTime(now);
+ if (!wrkMastService.insert(wrkMast)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細"+dto.getLocNo());
+ }
+ // 鐢熸垚宸ヤ綔妗f槑缁�
+ for (LocDetlDto detlDto : dto.getLocDetlDtos()) {
+ if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;}
+ WrkDetl wrkDetl = new WrkDetl();
+ List<OrderDetl> orderDetl = orderDetlService.selectByBrand(detlDto.getLocDetl().getBrand());
+ wrkDetl.sync(detlDto.getLocDetl());
+ for (OrderDetl orderDetlDto : orderDetl) {
+ if(orderDetlDto.getSupp() != null){
+ wrkDetl.setSupp(orderDetlDto.getSupp());
+ }
+ if(orderDetlDto.getMemo() != null){
+ wrkDetl.setMemo(orderDetlDto.getMemo());
+ }
+ }
+ wrkDetl.setOrderNo(detlDto.getOrderNo()); // 鎵嬪姩鍑哄簱涓嶉渶瑕佸甫鍑哄簱瀛樹腑鐨勫崟鎹紪鍙�
+ wrkDetl.setWrkNo(workNo);
+ wrkDetl.setIoTime(now);
+ Double anfme = ioType==101?detlDto.getLocDetl().getAnfme():detlDto.getCount();
+ wrkDetl.setAnfme(anfme); // 鏁伴噺
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setAppeUser(userId);
+ wrkDetl.setModiTime(now);
+ wrkDetl.setModiUser(userId);
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+ }
+ // 淇敼璁㈠崟鏄庣粏
+ orderDetlMapper.updateOrderDetlByGroupNo(detlDto.getOrderNo(), detlDto.getLocDetl().getBrand(), 1);
+ // 淇敼璁㈠崟鐘舵��
+ orderMapper.updateSettleByOrderNo(detlDto.getOrderNo(),2L, userId);
+ }
+
// 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
locMast = locMastService.selectById(dto.getLocNo());
if (locMast.getLocSts().equals("F")) {
@@ -392,7 +568,48 @@
LocMast locMast = locMastService.selectById(taskDto.getLocNo());
// 鑾峰彇璺緞
int ioType = taskDto.isAll() ? 101 : 103;
- StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
+// StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
+ // 鏍规嵁搴撲綅鎺掑彿+鍑哄簱绔欑偣锛岃幏鍙栧嚭搴撴簮绔欑偣
+ int row = Integer.parseInt(locMast.getLocNo().substring(0, 2));
+ int souresStaNo = 0;
+ if (taskDto.getStaNo() < 3000) { // 浜屾ゼ
+ switch (row) {
+ case 1: case 2: case 3:
+ case 4: souresStaNo = 2062; break;
+ case 5: case 6: case 7:
+ case 8: souresStaNo = 2065; break;
+ case 9: case 10: case 11:
+ case 12: souresStaNo = 2068; break;
+ case 13: case 14: case 15:
+ case 16: souresStaNo = 2070; break;
+ case 17: case 18: case 19:
+ case 20: souresStaNo = 2073; break;
+ case 21: case 22: case 23:
+ case 24: souresStaNo = 2076; break;
+ default:
+ }
+ } else { // 涓�妤�
+ switch (row) {
+ case 1: case 2: case 3:
+ case 4: souresStaNo = 3002; break;
+ case 5: case 6: case 7:
+ case 8: souresStaNo = 3003; break;
+ case 9: case 10: case 11:
+ case 12: souresStaNo = 3006; break;
+ case 13: case 14: case 15:
+ case 16: souresStaNo = 3008; break;
+ case 17: case 18: case 19:
+ case 20: souresStaNo = 3009; break;
+ case 21: case 22: case 23:
+ case 24: souresStaNo = 3012; break;
+ default:
+ }
+ }
+
+ if (souresStaNo == 0) {
+ throw new CoolException("婧愮珯鐐硅浆鎹㈠紓甯革細" + row);
+ }
+
// 鐢熸垚宸ヤ綔鍙�
int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
// 鐢熸垚宸ヤ綔妗�
@@ -403,8 +620,8 @@
wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
wrkMast.setIoPri(13D); // 浼樺厛绾э細13
wrkMast.setCrnNo(locMast.getCrnNo());
- wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
- wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
+ wrkMast.setSourceStaNo(souresStaNo); // 婧愮珯
+ wrkMast.setStaNo(taskDto.getStaNo()); // 鐩爣绔�
wrkMast.setSourceLocNo(taskDto.getLocNo()); // 婧愬簱浣�
wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
wrkMast.setPicking("N"); // 鎷f枡
@@ -427,9 +644,17 @@
orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
}
WrkDetl wrkDetl = new WrkDetl();
- wrkDetl.sync(orderDetl);
+// wrkDetl.sync(orderDetl);
wrkDetl.setZpallet(wrkMast.getBarcode());
wrkDetl.setIoTime(now);
+ wrkDetl.setMatnr(locDto.getMatnr());
+ wrkDetl.setMaktx(locDto.getMaktx());
+ wrkDetl.setWeight(locDto.getWeight()); // 鍑�閲�
+ wrkDetl.setVolume(locDto.getVolume()); // 姣涢噸
+ wrkDetl.setOrigin(locDto.getOrigin()); // 鏈ㄧ鍦ㄦ墭鐩樹綅缃�
+ wrkDetl.setPrice(locDto.getPrice());
+ wrkDetl.setSpecs(locDto.getSpecs());
+ wrkDetl.setModel(locDto.getModel());
wrkDetl.setWrkNo(workNo);
wrkDetl.setBatch(locDto.getBatch());
wrkDetl.setOrderNo(locDto.getOrderNo());
@@ -655,10 +880,9 @@
// 鑾峰彇搴撲綅鏄庣粏
List<LocDetlDto> locDetlDtos = new ArrayList<>();
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());
- if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount(),param.getOrderNo()));
- }
+ LocDetl one = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no",paramLocDetl.getLocNo())
+ .eq("brand",paramLocDetl.getBrand()).eq("model",paramLocDetl.getModel()));
+ if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount(), param.getOrderNo()));
}
if (!locDetlDtos.isEmpty()) {
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
@@ -759,27 +983,112 @@
@Override
@Transactional
+ public void autoLocMove(String orderNo,String sourceLocNo, String locNo, Long userId) {
+ LocMast sourceLoc = locMastService.selectById(sourceLocNo);
+ List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", sourceLocNo));
+ if (Cools.isEmpty(sourceLoc)){
+ throw new CoolException("鏈壘鍒板簱浣�");
+ }
+ LocMast loc = locMastService.selectById(locNo);
+ if (Cools.isEmpty(loc)){
+ throw new CoolException("鏈壘鍒板簱浣�");
+ }
+
+ Date now = new Date();
+ // 鑾峰彇宸ヤ綔鍙�
+ int workNo = commonService.getWorkNo(WorkNoType.PICK.type);
+ // 淇濆瓨宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(now);
+ wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+ wrkMast.setIoType(12); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
+ wrkMast.setIoPri(10D);
+ wrkMast.setCrnNo(sourceLoc.getCrnNo());
+ wrkMast.setSourceLocNo(sourceLocNo); // 婧愬簱浣�
+ wrkMast.setLocNo(locNo); // 鐩爣搴撲綅
+ wrkMast.setSourceStaNo(crnMapNo.get(sourceLoc.getCrnNo()).get(1)); // 鍑哄簱婧愮珯鐐�
+ wrkMast.setStaNo(crnMapNo.get(loc.getCrnNo()).get(0)); // 鍏ュ簱鐩爣绔欑偣
+ 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.setLinkMis("N");
+ wrkMast.setAppeUser(userId);
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiUser(userId);
+ wrkMast.setModiTime(now);
+ boolean res = wrkMastService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ // 宸ヤ綔妗f槑缁嗕繚瀛�
+ for (LocDetl locDetl : locDetls) {
+ WrkDetl wrkDetl = new WrkDetl();
+
+ wrkDetl.sync(locDetl);
+ wrkDetl.setOrderNo(orderNo);
+ wrkDetl.setWrkNo(workNo);
+ wrkDetl.setIoTime(now);
+ wrkDetl.setAnfme(locDetl.getAnfme());
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setAppeUser(userId);
+ wrkDetl.setModiTime(now);
+ wrkDetl.setModiUser(userId);
+ if (!wrkDetlService.insert(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.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$());
+ }
+ }
+
+ @Override
+ @Transactional
public void completeWrkMast(String workNo, Long userId) {
WrkMast wrkMast = wrkMastService.selectById(workNo);
if (Cools.isEmpty(wrkMast)){
throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
}
- if (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 14) {
+ if (wrkMast.getWrkSts() == 5 || wrkMast.getWrkSts() == 14 || wrkMast.getWrkSts() == 15) {
throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
}
// 鍏ュ簱 + 搴撲綅杞Щ
- if (wrkMast.getWrkSts() < 4 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()==11)) {
+ if (wrkMast.getIoType() < 60) {
wrkMast.setWrkSts(4L);
// 鍑哄簱
- } else if (wrkMast.getWrkSts() > 10) {
+ } else if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 103 && wrkMast.getIoType() != 107 && wrkMast.getIoType() != 109) {
wrkMast.setWrkSts(14L);
+ }else{
+ throw new CoolException("褰撳墠宸ヤ綔绫诲瀷鎴栫姸鎬佹棤娉曞畬鎴�");
}
Date now = new Date();
wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true));
wrkMast.setCrnEndTime(now);
wrkMast.setModiTime(now);
wrkMast.setModiUser(userId);
- wrkMast.setSheetNo("2");
+ wrkMast.setSheetNo("3");
// 瀹屾垚鎿嶄綔浜哄憳璁板綍
wrkMast.setManuType("鎵嬪姩瀹屾垚");
if (!wrkMastService.updateById(wrkMast)) {
@@ -919,7 +1228,7 @@
String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣�
String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
// 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級
- if (wrkMast.getWrkSts() < 4) {
+ if (wrkMast.getWrkSts() == 1) {
locNo = wrkMast.getLocNo();
locSts = "O";
@@ -936,7 +1245,7 @@
locMastService.updateById(locMast);
}
// 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
- } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14) {
+ } else if (wrkMast.getWrkSts() == 11) {
locNo = wrkMast.getSourceLocNo();
// 鍑哄簱 ===>> F.鍦ㄥ簱
if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
@@ -945,7 +1254,7 @@
} else if (wrkMast.getIoType() == 110) {
locSts = "D";
// 搴撲綅杞Щ ===>> D.绌烘《/绌烘爤鏉�
- } else if (wrkMast.getIoType() == 11) {
+ } else if (wrkMast.getIoType() == 11 || wrkMast.getIoType() == 12) {
locSts = wrkMast.getFullPlt().equalsIgnoreCase("N")?"D":"F";
// 搴撲綅杞Щ锛氱洰鏍囧簱浣�
LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
@@ -957,7 +1266,7 @@
locMast.setModiUser(userId);
locMastService.updateById(locMast);
}
- } else {
+ }else {
throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
}
@@ -977,14 +1286,47 @@
}
}
+ // 鍙栨秷璺ㄥ贩閬撶Щ搴撲换鍔℃椂锛屽洖婊氬湪鎵ц鐨勪换鍔�
+ if (wrkMast.getIoType() == 12) {
+ List<Order> orderList = orderMapper.selectList(new EntityWrapper<Order>().eq("doc_type", 24).lt("settle", 3));
+ if (orderList.size() == 1) {
+ Order order = orderList.get(0);
+ // 鍥炴粴鍗曟嵁鏄庣粏鐨勭Щ搴撶姸鎬�
+ List<OrderDetl> orderDetlList1 = orderDetlMapper.selectList(new EntityWrapper<OrderDetl>().eq("order_no", order.getOrderNo()).eq("specs", wrkMast.getSourceLocNo()));
+ for (OrderDetl orderDetl:orderDetlList1) {
+ if (orderDetl.getBeBatch() != null) {
+ orderDetl.setModel("");
+ }
+ orderDetl.setUpdateTime(now);
+ orderDetl.setDanger(0);
+ orderDetlMapper.updateById(orderDetl);
+ }
+ // 鍥炴粴鍗曟嵁鐘舵�侊紝鏈夊ぇ浜�0鐨勮鍗曟槑缁嗗垯鏄綔涓氫腑锛屾病鏈夊垯鏇存柊涓哄緟澶勭悊
+ Integer count = orderDetlMapper.selectCount(new EntityWrapper<OrderDetl>().eq("order_no", order.getOrderNo()).gt("danger", 0));
+ if (count == 0) {
+ order.setSettle(1L);
+ orderMapper.updateById(order);
+ }
+ } else {
+ log.error("鍥炴粴绉诲簱鍗曟嵁寮傚父锛屾棤婧愬簱浣嶆暟鎹細{}",wrkMast.getSourceLocNo());
+ }
+ }
+
+// // 鍙栨秷绌洪棽鐞嗚揣浠诲姟鏃讹紝鍥炴粴鎴愭湭鐞嗚揣
+// if (wrkMast.getIoType() == 109) {
+// // 鏇存柊搴撳瓨鏄庣粏涓虹悊璐т腑
+// locDetlMapper.updateLhStsByLocNo(wrkMast.getSourceLocNo(),0);
+// }
+
//鍙栨秷鍑哄簱宸ヤ綔妗f椂锛屾煡璇㈠崟鎹鐞嗚〃锛屽洖婊氫綔涓氫腑鏁伴噺
- if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103) {
+ if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107) {
List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
for (WrkDetl wrkDetl : wrkDetls) {
if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
- if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
- throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
- }
+// if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
+// throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
+// }
+ orderDetlMapper.updateOrderDetlByGroupNo(wrkDetl.getOrderNo(),wrkDetl.getBrand(),0);
//淇敼璁㈠崟涓昏〃鐘舵��,娌℃湁浣滀笟鏁伴噺鏃舵墠鍙互淇敼
boolean flag = true;
@@ -1043,6 +1385,9 @@
}
// 鍒犻櫎宸ヤ綔妗f槑缁�
boolean wrkDetlRes = wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", workNo));
+ }
+ if (wrkMast.getIoType()==202 || wrkMast.getIoType()==212){
+ return;
}
// 淇敼搴撲綅鐘舵��
@@ -1230,7 +1575,7 @@
}
List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", param.getLocDetls().get(0).getMatnr()));
if (Cools.isEmpty(locDetls) || locDetls.size()<1){
- throw new CoolException("寰呬慨鏀瑰晢鍝佹棤搴撳瓨锛屾棤闇�淇敼锛� 鍝佸彿锛�"+param.getLocDetls().get(0).getMatnr());
+ throw new CoolException("寰呬慨鏀瑰晢鍝佹棤搴撳瓨锛屾棤闇�淇敼锛� 瑙勬牸锛�"+param.getLocDetls().get(0).getMatnr());
}
try {
locDetlService.updateMatTurn(param.getLocDetls().get(0).getMatnr(),mat.getMatnr());
--
Gitblit v1.9.1