From e012a72a5660566d698c93ca4f29b6e5ffe997b0 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期三, 29 十月 2025 16:47:35 +0800
Subject: [PATCH] 3077,3106只有合格能出,2041 只有待判能出
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 765 ++++++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 653 insertions(+), 112 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 ccdb455..cdb9e40 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,37 @@
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 +104,10 @@
private OrderService orderService;
@Autowired
private OrderDetlService orderDetlService;
+ @Resource
+ private OrderMapper orderMapper;
+ @Resource
+ private OrderDetlMapper orderDetlMapper;
@Autowired
private WcsController wcsController;
@Autowired
@@ -80,6 +116,8 @@
private SlaveProperties slaveProperties;
@Autowired
private WaitPakinService waitPakinService;
+ @Resource
+ private OpenServiceImpl openService;
@Override
@Transactional
@@ -94,7 +132,7 @@
// 妫�绱㈠簱浣�
LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
// List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList());
- StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), param.getList().get(0).getMatnr(),null,null, locTypeDto);
+ StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), param.getList().get(0).getMatnr(), null, null, locTypeDto);
// 鐢熸垚宸ヤ綔鍙�
int workNo = dto.getWorkNo();
// 鐢熸垚宸ヤ綔妗�
@@ -139,20 +177,20 @@
sourceStaNo.setWrkNo(workNo);
sourceStaNo.setModiUser(userId);
sourceStaNo.setModiTime(now);
- if (!basDevpService.updateById(sourceStaNo)){
+ if (!basDevpService.updateById(sourceStaNo)) {
throw new CoolException("鏇存柊婧愮珯澶辫触");
}
// 鏇存柊鐩爣搴撲綅鐘舵��
LocMast locMast = locMastService.selectById(dto.getLocNo());
- if (locMast.getLocSts().equals("O")){
+ if (locMast.getLocSts().equals("O")) {
locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
locMast.setModiUser(userId);
locMast.setModiTime(now);
- if (!locMastService.updateById(locMast)){
+ if (!locMastService.updateById(locMast)) {
throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
}
} else {
- throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
+ throw new CoolException(dto.getLocNo() + "鐩爣搴撲綅宸茶鍗犵敤");
}
return dto.getLocNo();
}
@@ -165,35 +203,54 @@
// 鑾峰彇搴撲綅鏄庣粏
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("绌虹")) {
+ // 3077 3106 鍙湁鍚堟牸鑳藉嚭
+ if((param.getOutSite() == 3077 || param.getOutSite() == 3106) && !"鍚堟牸".equals(one.getThreeCode())) {
+ throw new CoolException(one.getModel() + "鍗蜂笉鍚堟牸:" + one.getThreeCode());
+ }
+ // 2041 鍙湁寰呭垽鑳藉嚭
+ if(param.getOutSite() == 2041 && null != 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()));
- if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") ){
+ if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D")) {
// 鍚姩鍑哄簱寮�濮� 101.鍑哄簱
stockOut(staNo, locDetlDtos, null, userId);
- }else {
- throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
+ } else {
+ throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
}
} else {
throw new CoolException("搴撳瓨涓嶅瓨鍦�");
}
}
+
@Override
@Transactional
public void startupFullTakeStoreOrder(StockOutParam param, Long userId) {
- if (Cools.isEmpty(param) || Cools.isEmpty(param.getLocDetls())){
+ if (Cools.isEmpty(param) || Cools.isEmpty(param.getLocDetls())) {
throw new CoolException("鍙傛暟涓虹┖");
}
- if (Cools.isEmpty(param.getOrderNo())){
+ if (Cools.isEmpty(param.getOrderNo())) {
throw new CoolException("璁㈠崟鍙峰弬鏁颁负绌�");
}
DocType docType = docTypeService.selectOrAdd("鎵嬪姩鍑哄簱鍗�", Boolean.FALSE);
Order order = orderService.selectByNo(param.getOrderNo());
- if (Cools.isEmpty(order)){
+ if (Cools.isEmpty(order)) {
Date now = new Date();
order = new Order(
String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖]
@@ -238,7 +295,7 @@
// 鍗曟嵁鏄庣粏妗�
List<DetlDto> list = new ArrayList<>();
List<StockOutParam.LocDetl> locDetls = param.getLocDetls();
- int i=0;
+ int i = 0;
for (StockOutParam.LocDetl locDetl : locDetls) {
i++;
Mat mat = matService.selectByMatnr(locDetl.getMatnr());
@@ -278,14 +335,13 @@
// }
} else {
- throw new CoolException("璁㈠崟鍙烽噸澶嶏紝璁㈠崟"+param.getOrderNo()+"宸插瓨鍦紒锛侊紒");
+ throw new CoolException("璁㈠崟鍙烽噸澶嶏紝璁㈠崟" + param.getOrderNo() + "宸插瓨鍦紒锛侊紒");
}
}
-
- @Override
@Transactional
+ @Override
public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId) {
Date now = new Date();
// 鍚堝苟鍚岀被椤�
@@ -345,7 +401,8 @@
wrkMast.setEmptyMk("N"); // 绌烘澘
wrkMast.setLinkMis("N");
wrkMast.setSheetNo("0");
- if (staDesc.getStnNo()<118 || staDesc.getStnNo()>121){
+// wrkMast.setMemo(groupOrderNumber);
+ if (staDesc.getStnNo() < 118 || staDesc.getStnNo() > 121) {
wrkMast.setSheetNo("3");
}
wrkMast.setBarcode(locMast.getBarcode());
@@ -354,17 +411,28 @@
wrkMast.setModiUser(userId);
wrkMast.setModiTime(now);
if (!wrkMastService.insert(wrkMast)) {
- throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細"+dto.getLocNo());
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + dto.getLocNo());
}
// 鐢熸垚宸ヤ綔妗f槑缁�
for (LocDetlDto detlDto : dto.getLocDetlDtos()) {
- if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;}
+ 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();
+ Double anfme = ioType == 101 ? detlDto.getLocDetl().getAnfme() : detlDto.getCount();
wrkDetl.setAnfme(anfme); // 鏁伴噺
wrkDetl.setAppeTime(now);
wrkDetl.setAppeUser(userId);
@@ -373,15 +441,269 @@
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.setLocSts(ioType == 101 ? "R" : "P");
locMast.setModiUser(userId);
locMast.setModiTime(now);
if (!locMastService.updateById(locMast)) {
- throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細"+dto.getLocNo());
+ 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;
+ } else if (ioWorkType.equals(IoWorkType.ALL_OUT)) {
+ ioType = 101;
+ }
+ 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")) {
+ 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 stockOut2(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;
+ } else if (ioWorkType.equals(IoWorkType.ALL_OUT)) {
+ ioType = 101;
+ }
+ 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.selectByModel(detlDto.getLocDetl().getModel());
+ 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.updateOrderDetlByModel(detlDto.getOrderNo(), detlDto.getLocDetl().getModel(), 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() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
@@ -403,7 +725,96 @@
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));
// 鐢熸垚宸ヤ綔妗�
@@ -414,8 +825,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枡
@@ -428,19 +839,29 @@
wrkMast.setModiUser(userId);
wrkMast.setModiTime(now);
if (!wrkMastService.insert(wrkMast)) {
- throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細"+taskDto.getLocNo());
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + taskDto.getLocNo());
}
// 鐢熸垚宸ヤ綔妗f槑缁�
for (LocDto locDto : taskDto.getLocDtos()) {
- if (locDto.getAnfme()==null || locDto.getAnfme() <= 0.0D) { continue; }
+ if (locDto.getAnfme() == null || locDto.getAnfme() <= 0.0D) {
+ continue;
+ }
OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
if (orderDetl == null) {
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());
@@ -461,11 +882,11 @@
// 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
locMast = locMastService.selectById(taskDto.getLocNo());
if (locMast.getLocSts().equals("F")) {
- locMast.setLocSts(ioType==101?"R":"P");
+ locMast.setLocSts(ioType == 101 ? "R" : "P");
locMast.setModiUser(userId);
locMast.setModiTime(now);
if (!locMastService.updateById(locMast)) {
- throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細"+taskDto.getLocNo());
+ throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細" + taskDto.getLocNo());
}
} else {
throw new CoolException(taskDto.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
@@ -479,7 +900,7 @@
BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
// 妫�绱㈠簱浣�
LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
- StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null,null,null, locTypeDto);
+ StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null, null, null, locTypeDto);
int workNo = dto.getWorkNo();
Date now = new Date();
// 鐢熸垚宸ヤ綔妗�
@@ -512,20 +933,20 @@
sourceStaNo.setWrkNo(workNo);
sourceStaNo.setModiUser(userId);
sourceStaNo.setModiTime(now);
- if (!basDevpService.updateById(sourceStaNo)){
+ if (!basDevpService.updateById(sourceStaNo)) {
throw new CoolException("鏇存柊婧愮珯澶辫触");
}
// 鏇存柊鐩爣搴撲綅鐘舵��
LocMast locMast = locMastService.selectById(dto.getLocNo());
- if (locMast.getLocSts().equals("O")){
+ if (locMast.getLocSts().equals("O")) {
locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
locMast.setModiUser(userId);
locMast.setModiTime(now);
- if (!locMastService.updateById(locMast)){
+ if (!locMastService.updateById(locMast)) {
throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
}
} else {
- throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
+ throw new CoolException(dto.getLocNo() + "鐩爣搴撲綅宸茶鍗犵敤");
}
return dto.getLocNo();
}
@@ -542,10 +963,10 @@
// 鑾峰彇搴撲綅
LocMast locMast = locMastService.selectById(locNo);
if (Cools.isEmpty(locMast)) {
- throw new CoolException(locNo+"搴撲綅涓嶅瓨鍦�");
+ throw new CoolException(locNo + "搴撲綅涓嶅瓨鍦�");
}
- if (!locMast.getLocSts().equals("D")){
- throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篋鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
+ if (!locMast.getLocSts().equals("D")) {
+ throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篋鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
}
// 鑾峰彇婧愮珯
Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
@@ -583,7 +1004,7 @@
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
// 鏇存柊搴撲綅鐘舵�� D.绌烘澘 -> R.鍑哄簱棰勭害
- if (locMast.getLocSts().equals("D")){
+ if (locMast.getLocSts().equals("D")) {
locMast.setLocSts("R");
locMast.setModiUser(userId);
locMast.setModiTime(now);
@@ -607,7 +1028,7 @@
// 鑾峰彇搴撲綅
LocMast locMast = locMastService.selectById(locNo);
if (Cools.isEmpty(locMast)) {
- throw new CoolException(locNo+"搴撲綅涓嶅瓨鍦�");
+ throw new CoolException(locNo + "搴撲綅涓嶅瓨鍦�");
}
// 鑾峰彇婧愮珯
Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
@@ -646,7 +1067,7 @@
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
// 鏇存柊搴撲綅鐘舵�� D.绌烘澘 -> R.鍑哄簱棰勭害
- if (locMast.getLocSts().equals("D")){
+ if (locMast.getLocSts().equals("D")) {
locMast.setLocSts("R");
locMast.setModiUser(1L);
locMast.setModiTime(now);
@@ -666,18 +1087,17 @@
// 鑾峰彇搴撲綅鏄庣粏
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()));
- if (locMast.getLocSts().equals("F")){
+ if (locMast.getLocSts().equals("F")) {
// 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱
stockOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId);
- }else {
- throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
+ } else {
+ throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
}
} else {
throw new CoolException("搴撲綅鐗╂枡涓嶅瓨鍦�");
@@ -689,14 +1109,14 @@
public void locMove(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)){
+ if (Cools.isEmpty(sourceLoc)) {
throw new CoolException("鏈壘鍒板簱浣�");
}
LocMast loc = locMastService.selectById(locNo);
- if (Cools.isEmpty(loc)){
+ if (Cools.isEmpty(loc)) {
throw new CoolException("鏈壘鍒板簱浣�");
}
- if (!loc.getLocSts().equals("O") || (!sourceLoc.getLocSts().equals("F") && !sourceLoc.getLocSts().equals("D"))){
+ if (!loc.getLocSts().equals("O") || (!sourceLoc.getLocSts().equals("F") && !sourceLoc.getLocSts().equals("D"))) {
throw new CoolException("搴撲綅鐘舵�佸凡鏀瑰彉");
}
if (!sourceLoc.getCrnNo().equals(loc.getCrnNo())) {
@@ -715,10 +1135,10 @@
wrkMast.setCrnNo(sourceLoc.getCrnNo());
wrkMast.setSourceLocNo(sourceLocNo); // 婧愬簱浣�
wrkMast.setLocNo(locNo); // 鐩爣搴撲綅
- wrkMast.setFullPlt(Cools.isEmpty(locDetls)?"N":"Y"); // 婊℃澘锛歒
+ wrkMast.setFullPlt(Cools.isEmpty(locDetls) ? "N" : "Y"); // 婊℃澘锛歒
wrkMast.setPicking("N"); // 鎷f枡
wrkMast.setExitMk("N"); // 閫�鍑�
- wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D")?"Y":"N"); // 绌烘澘
+ wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
wrkMast.setBarcode(sourceLoc.getBarcode()); // 鎵樼洏鐮�
wrkMast.setLinkMis("N");
wrkMast.setAppeUser(userId);
@@ -749,11 +1169,11 @@
sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害
sourceLoc.setModiUser(userId);
sourceLoc.setModiTime(now);
- if (!locMastService.updateById(sourceLoc)){
+ if (!locMastService.updateById(sourceLoc)) {
throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
}
} else {
- throw new CoolException("婧愬簱浣嶅嚭搴撳け璐ワ紝鐘舵�侊細"+sourceLoc.getLocSts$());
+ throw new CoolException("婧愬簱浣嶅嚭搴撳け璐ワ紝鐘舵�侊細" + sourceLoc.getLocSts$());
}
// 淇敼鐩爣搴撲綅鐘舵��
if (loc.getLocSts().equals("O")) {
@@ -764,7 +1184,90 @@
throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
}
} else {
- throw new CoolException("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細"+loc.getLocSts$());
+ throw new CoolException("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細" + loc.getLocSts$());
+ }
+ }
+
+ @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$());
}
}
@@ -772,20 +1275,22 @@
@Transactional
public void completeWrkMast(String workNo, Long userId) {
WrkMast wrkMast = wrkMastService.selectById(workNo);
- if (Cools.isEmpty(wrkMast)){
- throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
+ 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 && wrkMast.getIoType()!=202) {
+ // 鍑哄簱
+ } else if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 103 && wrkMast.getIoType() != 107 && wrkMast.getIoType() != 109) {
+ List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(Integer.valueOf(workNo));
+ openService.ckjgsbPushMes(wrkMast,wrkDetls);
wrkMast.setWrkSts(14L);
- }else if (wrkMast.getIoType()==202){
- wrkMast.setWrkSts(57L);
+ } else {
+ throw new CoolException("褰撳墠宸ヤ綔绫诲瀷鎴栫姸鎬佹棤娉曞畬鎴�");
}
Date now = new Date();
wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true));
@@ -825,7 +1330,9 @@
Iterator<LocDetlAdjustParam.LocDetlAdjust> iterator1 = list.iterator();
while (iterator1.hasNext()) {
LocDetlAdjustParam.LocDetlAdjust adjust = iterator1.next();
- if (adjust.getCount() == 0) { continue; }
+ if (adjust.getCount() == 0) {
+ continue;
+ }
if (locDetl.getMatnr().equals(adjust.getMatnr()) && Cools.eq(locDetl.getBatch(), adjust.getBatch())) {
if (!locDetl.getAnfme().equals(adjust.getCount())) {
// todo 鐩樼偣璁板綍
@@ -874,7 +1381,9 @@
// 娣诲姞搴撳瓨
for (LocDetlAdjustParam.LocDetlAdjust adjust : list) {
- if (adjust.getCount() == 0.0D) { continue; }
+ if (adjust.getCount() == 0.0D) {
+ continue;
+ }
Mat mat = matService.selectByMatnr(adjust.getMatnr());
LocDetl locDetl = new LocDetl();
locDetl.sync(mat);
@@ -926,13 +1435,13 @@
public void cancelWrkMast(String workNo, Long userId) {
Date now = new Date();
WrkMast wrkMast = wrkMastService.selectById(workNo);
- if (Cools.isEmpty(wrkMast)){
- throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
+ if (Cools.isEmpty(wrkMast)) {
+ throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
}
String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣�
String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
// 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級
- if (wrkMast.getWrkSts() < 4) {
+ if (wrkMast.getWrkSts() == 1) {
locNo = wrkMast.getLocNo();
locSts = "O";
@@ -941,81 +1450,113 @@
// 搴撲綅杞Щ锛氭簮搴撲綅
LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
if (Cools.isEmpty(locMast)) {
- throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛屾簮搴撲綅涓嶅瓨鍦�:"+ wrkMast.getSourceLocNo());
+ throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛屾簮搴撲綅涓嶅瓨鍦�:" + wrkMast.getSourceLocNo());
}
- locMast.setLocSts(wrkMast.getFullPlt().equalsIgnoreCase("N")?"D":"F");
+ locMast.setLocSts(wrkMast.getFullPlt().equalsIgnoreCase("N") ? "D" : "F");
locMast.setModiTime(now);
locMast.setModiUser(userId);
locMastService.updateById(locMast);
}
- // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
- } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14 && wrkMast.getIoType()!=202) {
+ // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
+ } else if (wrkMast.getWrkSts() == 11) {
locNo = wrkMast.getSourceLocNo();
// 鍑哄簱 ===>> F.鍦ㄥ簱
if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
locSts = "F";
- // 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
+ // 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
} else if (wrkMast.getIoType() == 110) {
locSts = "D";
- // 搴撲綅杞Щ ===>> D.绌烘《/绌烘爤鏉�
- } else if (wrkMast.getIoType() == 11) {
- locSts = wrkMast.getFullPlt().equalsIgnoreCase("N")?"D":"F";
+ // 搴撲綅杞Щ ===>> D.绌烘《/绌烘爤鏉�
+ } else if (wrkMast.getIoType() == 11 || wrkMast.getIoType() == 12) {
+ locSts = wrkMast.getFullPlt().equalsIgnoreCase("N") ? "D" : "F";
// 搴撲綅杞Щ锛氱洰鏍囧簱浣�
LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
if (Cools.isEmpty(locMast)) {
- throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛岀洰鏍囧簱浣嶄笉瀛樺湪:"+ wrkMast.getSourceLocNo());
+ throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛岀洰鏍囧簱浣嶄笉瀛樺湪:" + wrkMast.getSourceLocNo());
}
locMast.setLocSts("O");
locMast.setModiTime(now);
locMast.setModiUser(userId);
locMastService.updateById(locMast);
}
- } else if (wrkMast.getIoType()==202){
} else {
throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
}
//鍙栨秷鍏ュ簱宸ヤ綔妗f椂锛屾煡璇㈢粍鎵樿〃锛屽鏋滄湁灏嗙姸鎬佹敼涓哄緟澶勭悊
- if(wrkMast.getIoType() == 1) {
- List<WaitPakin> waitPakins=waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()));
- for (WaitPakin waitPakin:waitPakins){
+ if (wrkMast.getIoType() == 1) {
+ List<WaitPakin> waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()));
+ for (WaitPakin waitPakin : waitPakins) {
if (!Cools.isEmpty(waitPakin)) {
waitPakin.setIoStatus("N");
waitPakin.setLocNo("");
waitPakinService.update(waitPakin, new EntityWrapper<WaitPakin>()
// .eq("order_no", waitPakin.getOrderNo())
- .eq("zpallet",waitPakin.getZpallet())
+ .eq("zpallet", waitPakin.getZpallet())
.eq("matnr", waitPakin.getMatnr())
.eq("batch", waitPakin.getBatch()));
}
}
}
+ // 鍙栨秷璺ㄥ贩閬撶Щ搴撲换鍔℃椂锛屽洖婊氬湪鎵ц鐨勪换鍔�
+ 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;
- List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no",wrkDetl.getOrderNo()));
- for(OrderDetl orderDetl : orderDetls){
- if(orderDetl.getWorkQty() > 0){
+ List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", wrkDetl.getOrderNo()));
+ for (OrderDetl orderDetl : orderDetls) {
+ if (orderDetl.getWorkQty() > 0) {
flag = false;
}
}
- if(flag){
- Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()));
- if(!Cools.isEmpty(order) && order.getSettle()==2){
+ if (flag) {
+ Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", wrkDetl.getOrderNo()));
+ if (!Cools.isEmpty(order) && order.getSettle() == 2) {
order.setSettle(1L);
order.setUpdateBy(userId);
order.setUpdateTime(now);
}
- if(!orderService.update(order,new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()))){
+ if (!orderService.update(order, new EntityWrapper<Order>().eq("order_no", wrkDetl.getOrderNo()))) {
throw new CoolException("淇敼璁㈠崟鐘舵�佸け璐�");
}
}
@@ -1058,14 +1599,14 @@
// 鍒犻櫎宸ヤ綔妗f槑缁�
boolean wrkDetlRes = wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", workNo));
}
- if (wrkMast.getIoType()==202){
+ if (wrkMast.getIoType() == 202 || wrkMast.getIoType() == 212) {
return;
}
// 淇敼搴撲綅鐘舵��
LocMast locMast = locMastService.selectById(locNo);
if (Cools.isEmpty(locMast)) {
- throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐ワ紝搴撲綅涓嶅瓨鍦�:"+ locNo);
+ throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐ワ紝搴撲綅涓嶅瓨鍦�:" + locNo);
}
locMast.setLocSts(locSts);
locMast.setModiTime(now);
@@ -1080,8 +1621,8 @@
@Transactional
public void pickWrkMast(String workNo, Long userId) {
WrkMast wrkMast = wrkMastService.selectById(workNo);
- if (Cools.isEmpty(wrkMast)){
- throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
+ if (Cools.isEmpty(wrkMast)) {
+ throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
}
// 鍏ュ嚭搴撶被鍨嬪垽鏂�
if (wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) {
@@ -1159,7 +1700,7 @@
// 鐩爣搴撲綅
LocMast targetLoc = null;
- for (int curRow = rowLastno.getsRow(); curRow<=rowLastno.geteRow(); curRow++) {
+ for (int curRow = rowLastno.getsRow(); curRow <= rowLastno.geteRow(); curRow++) {
if (Utils.isShallowLoc(slaveProperties, curRow)) {
Integer deepRow = Utils.getDeepRow(slaveProperties, curRow);
@@ -1218,15 +1759,15 @@
throw new CoolException("淇敼宸ヤ綔妗eけ璐�");
}
// 淇敼搴撲綅鐘舵�� O ===>>> S
- if (targetLoc.getLocSts().equals("O")){
+ if (targetLoc.getLocSts().equals("O")) {
targetLoc.setLocSts("S"); // S.鍏ュ簱棰勭害
targetLoc.setModiUser(userId);
targetLoc.setModiTime(now);
- if (!locMastService.updateById(targetLoc)){
+ if (!locMastService.updateById(targetLoc)) {
throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
}
} else {
- throw new CoolException(targetLoc.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
+ throw new CoolException(targetLoc.getLocNo() + "鐩爣搴撲綅宸茶鍗犵敤");
}
// 绂佺敤寮傚父搴撲綅
// locMast.setLocSts("X"); // X.绂佺敤
@@ -1242,19 +1783,19 @@
@Transactional
public void turnMatLocDetl(EmptyPlateOutParam param, Long userId) {
Mat mat = matService.selectOne(new EntityWrapper<Mat>().eq("id", param.getMatId()));
- if (Cools.isEmpty(mat)){
+ if (Cools.isEmpty(mat)) {
throw new CoolException("鐩爣搴撲綅鍟嗗搧缂栫爜鏈夎锛�");
}
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());
+ if (Cools.isEmpty(locDetls) || locDetls.size() < 1) {
+ throw new CoolException("寰呬慨鏀瑰晢鍝佹棤搴撳瓨锛屾棤闇�淇敼锛� 瑙勬牸锛�" + param.getLocDetls().get(0).getMatnr());
}
try {
- locDetlService.updateMatTurn(param.getLocDetls().get(0).getMatnr(),mat.getMatnr());
- }catch (Exception e){
+ locDetlService.updateMatTurn(param.getLocDetls().get(0).getMatnr(), mat.getMatnr());
+ } catch (Exception e) {
throw new CoolException("瀵规暟鎹簱淇敼鍑洪敊锛�");
}
- for (LocDetl locDetl:locDetls){
+ for (LocDetl locDetl : locDetls) {
// 淇濆瓨璋冩暣璁板綍
AdjDetl adjDetl = new AdjDetl();
adjDetl.setLocNo(locDetl.getLocNo());
--
Gitblit v1.9.1