From 49f306cb470a8ee824204b701796d1d8f63ff223 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期一, 27 十月 2025 17:58:05 +0800
Subject: [PATCH] *
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 199 +++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 190 insertions(+), 9 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 7d91a2d..a25fd6d 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -23,6 +23,8 @@
import com.zy.common.properties.SlaveProperties;
import com.zy.common.service.CommonService;
import com.zy.common.web.WcsController;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -74,6 +76,8 @@
@Autowired
private OrderDetlService orderDetlService;
@Autowired
+ private ConfigService configService;
+ @Autowired
private WcsController wcsController;
@Autowired
private RowLastnoService rowLastnoService;
@@ -94,6 +98,12 @@
@Resource
private OrderPakoutService orderPakOutService;
+ @Resource
+ private BasAgvLocDetlService basAgvLocDetlService;
+
+ @Resource
+ private BasAgvWrkDetlService basAgvWrkDetlService;
+
@Override
@Transactional
public String startupFullPutStore(FullStoreParam param, Long userId) {
@@ -106,9 +116,9 @@
BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo(), true);
// 妫�绱㈠簱浣�
LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
- List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList());
+// 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(matnrs.get(0));
+ FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(param.getList().get(0));
StartupDto dto = commonService.getLocNo(1, param.getDevpNo(), findLocNoAttributeVo,locTypeDto);
if (Cools.isEmpty(dto)){
throw new CoolException("鏌ヨ搴撲綅澶辫触锛侊紒==銆媠tartupFullPutStore ==銆� commonService.getLocNo");
@@ -307,6 +317,8 @@
dtos.add(new OutLocDto(locNo, locDetlDto));
}
}
+ Config configAutoMPArea = configService.selectConfigByCode("AutoMPArea");
+
Integer ioType = null;
// 鐢熸垚宸ヤ綔妗�
for (OutLocDto dto : dtos) {
@@ -328,6 +340,10 @@
// 鑾峰彇璺緞
StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta);
+ if(ioType.equals(107)){
+ staDesc = staDescService.queryCrnStnCheck(ioType, locMast.getCrnNo(), outSta);
+ }
+
// 鐢熸垚宸ヤ綔鍙�
int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
// 鐢熸垚宸ヤ綔妗�
@@ -347,6 +363,26 @@
wrkMast.setEmptyMk("N"); // 绌烘澘
wrkMast.setLinkMis("N");
wrkMast.setBarcode(locMast.getBarcode());
+ wrkMast.setTakeNone("0"); //0闈炶嚜鍔�
+
+ List<BasAgvWrkDetl> basAgvWrkDetls = null;
+ List<BasAgvLocDetl> basAgvLocDetls = null;
+ try{
+ if (Boolean.parseBoolean(configAutoMPArea.getValue())){
+ if (wrkMast.getStaNoAgvSign()){
+ if (ioType==101){
+ // 鍏ㄦ澘鍑哄簱
+ basAgvLocDetls = new ArrayList<>();
+ } else {
+ // 鎷f枡鍑哄簱
+ basAgvWrkDetls = new ArrayList<>();
+ }
+ wrkMast.setTakeNone("1"); //绛夊緟涓嬪彂
+ } else {
+ wrkMast.setTakeNone("3"); //鏃犻渶AGV鎼繍
+ }
+ }
+ } catch (Exception e) {} //閰嶇疆椤逛笉瀛樺湪锛屼笉鍋氬鐞�
wrkMast.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁
wrkMast.setAppeTime(now);
wrkMast.setModiUser(userId);
@@ -354,6 +390,7 @@
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;}
@@ -368,13 +405,48 @@
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(now);
wrkDetl.setModiUser(userId);
+
+ try{
+ if (basAgvWrkDetls != null){
+ BasAgvWrkDetl basAgvWrkDetl = new BasAgvWrkDetl();
+ basAgvWrkDetl.sync(wrkDetl);
+ basAgvWrkDetls.add(basAgvWrkDetl);
+ }
+ } catch (Exception e) {} //閰嶇疆椤逛笉瀛樺湪锛屼笉鍋氬鐞�
+
if (!wrkDetlService.insert(wrkDetl)) {
throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
}
}
+// if(locMastRgv !=null){
+// if (Boolean.parseBoolean(config.getValue()) && locMastRgv.getLocNo() != null && ioType != 107) { //鑻ユ湁绌哄簱浣嶄笖閰嶇疆鍏佽鍒欑粦瀹氬叾澶囨枡搴撲綅鍙�
+// //淇敼agv澶囨枡鍖虹姸鎬�
+// if(locMastRgv.getLocSts().equals("O") && ioType != 107){
+// locMastRgv.setLocSts("S");
+// locMastRgv.setModiUser(userId);
+// locMastRgv.setModiTime(now);
+// if (!locMastService.updateById(locMastRgv)) {
+// throw new CoolException("棰勭害agv澶囨枡鍖哄簱浣嶇姸鎬佸け璐ワ紝搴撲綅鍙凤細"+locMastRgv.getLocNo());
+// }
+// }
+// }
+// }
+
// 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
locMast = locMastService.selectById(dto.getLocNo());
if (locMast.getLocSts().equals("F")) {
+
+ try{
+ if (basAgvLocDetls != null){
+ List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
+ for (LocDetl locDetl : locDetlList) {
+ BasAgvLocDetl basAgvLocDetl = new BasAgvLocDetl();
+ basAgvLocDetl.sync(locDetl);
+ basAgvLocDetls.add(basAgvLocDetl);
+ }
+ }
+ } catch (Exception e) {} //閰嶇疆椤逛笉瀛樺湪锛屼笉鍋氬鐞�
+
locMast.setLocSts(ioType==101?"R":"P");
locMast.setModiUser(userId);
locMast.setModiTime(now);
@@ -384,6 +456,21 @@
} else {
throw new CoolException(dto.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
}
+
+ try{
+ // 澧炲姞AGV搴撳瓨涓浆鏁伴噺
+ if (basAgvLocDetls != null){
+ for (BasAgvLocDetl basAgvLocDetl : basAgvLocDetls) {
+ basAgvLocDetlService.insert(basAgvLocDetl);
+ }
+ }
+ if (basAgvWrkDetls != null){
+ for (BasAgvWrkDetl basAgvWrkDetl : basAgvWrkDetls) {
+ basAgvWrkDetlService.insert(basAgvWrkDetl);
+ }
+ }
+
+ }catch (Exception e){}
}
}
@@ -397,6 +484,8 @@
throw new CoolException("璁㈠崟鍑哄簱寮傚父锛岃鑱旂郴绠$悊鍛�");
}
}
+ Config configAutoMPArea = configService.selectConfigByCode("AutoMPArea");
+
// 鑾峰彇搴撲綅
LocMast locMast = locMastService.selectById(taskDto.getLocNo());
// 鍒ゆ柇鏄惁鏄洏鐐瑰崟
@@ -404,6 +493,16 @@
OrderPakout orderPakout = orderPakOutService.selectByNo(orderNo);
int ioType = orderPakout.getDocType() == 8 ? 107 : (taskDto.isAll() ? 101 : 103);
StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
+ List<LocMast> list = locMastMapper.selectList(
+ new EntityWrapper<LocMast>()
+ .eq("whs_type", 5)
+ .eq("loc_sts", "O")
+ );
+ LocMast locMastRgv = list.isEmpty() ? null : list.get(0);
+
+
+
+
// 鐢熸垚宸ヤ綔鍙�
int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
// 鐢熸垚宸ヤ綔妗�
@@ -417,6 +516,27 @@
wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
wrkMast.setSourceLocNo(taskDto.getLocNo()); // 婧愬簱浣�
+ wrkMast.setTakeNone("0"); //0闈炶嚜鍔�
+
+ List<BasAgvWrkDetl> basAgvWrkDetls = null;
+ List<BasAgvLocDetl> basAgvLocDetls = null;
+ try{
+ if (Boolean.parseBoolean(configAutoMPArea.getValue())){
+ if (wrkMast.getStaNoAgvSign()){
+ if (ioType==101){
+ // 鍏ㄦ澘鍑哄簱
+ basAgvLocDetls = new ArrayList<>();
+ } else {
+ // 鎷f枡鍑哄簱
+ basAgvWrkDetls = new ArrayList<>();
+ }
+ wrkMast.setTakeNone("1"); //绛夊緟涓嬪彂
+ } else {
+ wrkMast.setTakeNone("3"); //鏃犻渶AGV鎼繍
+ }
+ }
+ } catch (Exception e) {} //閰嶇疆椤逛笉瀛樺湪锛屼笉鍋氬鐞�
+
wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
wrkMast.setPicking("N"); // 鎷f枡
wrkMast.setExitMk("N"); // 閫�鍑�
@@ -453,6 +573,15 @@
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(now);
wrkDetl.setModiUser(userId);
+
+ try{
+ if (basAgvWrkDetls != null){
+ BasAgvWrkDetl basAgvWrkDetl = new BasAgvWrkDetl();
+ basAgvWrkDetl.sync(wrkDetl);
+ basAgvWrkDetls.add(basAgvWrkDetl);
+ }
+ } catch (Exception e) {} //閰嶇疆椤逛笉瀛樺湪锛屼笉鍋氬鐞�
+
if (!wrkDetlService.insert(wrkDetl)) {
throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
}
@@ -467,9 +596,32 @@
, locDto.getAnfme());
OrderInAndOutUtil.updateOrder(Boolean.FALSE,orderDetl.getOrderId(), 2L, userId);
}
+ //淇敼agv澶囨枡鍖虹姸鎬�
+ if(locMastRgv.getLocSts().equals("O")){
+ locMastRgv.setLocSts("S");
+ locMastRgv.setModiUser(userId);
+ locMastRgv.setModiTime(now);
+ if (!locMastService.updateById(locMastRgv)) {
+ throw new CoolException("棰勭害agv澶囨枡鍖哄簱浣嶇姸鎬佸け璐ワ紝搴撲綅鍙凤細"+locMastRgv.getLocNo());
+ }
+ }else{
+ throw new CoolException(locMastRgv.getLocNo() + "澶囨枡鍖轰笉鏄┖搴撲綅鐘舵��");
+
+ }
// 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
locMast = locMastService.selectById(taskDto.getLocNo());
if (locMast.getLocSts().equals("F")) {
+ try{
+ if (basAgvLocDetls != null){
+ List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
+ for (LocDetl locDetl : locDetlList) {
+ BasAgvLocDetl basAgvLocDetl = new BasAgvLocDetl();
+ basAgvLocDetl.sync(locDetl);
+ basAgvLocDetls.add(basAgvLocDetl);
+ }
+ }
+ } catch (Exception e) {} //閰嶇疆椤逛笉瀛樺湪锛屼笉鍋氬鐞�
+
locMast.setLocSts(ioType==101?"R":"P");
locMast.setModiUser(userId);
locMast.setModiTime(now);
@@ -479,6 +631,23 @@
} else {
throw new CoolException(taskDto.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
}
+
+
+
+ try{
+ // 澧炲姞AGV搴撳瓨涓浆鏁伴噺
+ if (basAgvLocDetls != null){
+ for (BasAgvLocDetl basAgvLocDetl : basAgvLocDetls) {
+ basAgvLocDetlService.insert(basAgvLocDetl);
+ }
+ }
+ if (basAgvWrkDetls != null){
+ for (BasAgvWrkDetl basAgvWrkDetl : basAgvWrkDetls) {
+ basAgvWrkDetlService.insert(basAgvWrkDetl);
+ }
+ }
+
+ }catch (Exception e){}
}
@Override
@@ -1128,6 +1297,16 @@
//鍙栨秷鍑哄簱宸ヤ綔妗f椂锛屾煡璇㈠崟鎹鐞嗚〃锛屽洖婊氫綔涓氫腑鏁伴噺
if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103) {
List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+ if(wrkMast.getLocNo() != null){
+ LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+ locMast.setLocSts("O");
+ locMast.setModiTime(now);
+ locMast.setModiUser(userId);
+ boolean locMastRes = locMastService.updateById(locMast);
+ if (!locMastRes) {
+ throw new CoolException("淇濆瓨鏁版嵁澶辫触");
+ }
+ }
for (WrkDetl wrkDetl : wrkDetls) {
if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
// if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
@@ -1201,15 +1380,17 @@
// 淇敼搴撲綅鐘舵��
LocMast locMast = locMastService.selectById(locNo);
- if (Cools.isEmpty(locMast)) {
+ if (Cools.isEmpty(locMast) && wrkMast.getIoType() != 12) {
throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐ワ紝搴撲綅涓嶅瓨鍦�:"+ locNo);
}
- locMast.setLocSts(locSts);
- locMast.setModiTime(now);
- locMast.setModiUser(userId);
- boolean locMastRes = locMastService.updateById(locMast);
- if (!wrkMastRes || !locMastRes) {
- throw new CoolException("淇濆瓨鏁版嵁澶辫触");
+ if(wrkMast.getIoType() != 12){
+ locMast.setLocSts(locSts);
+ locMast.setModiTime(now);
+ locMast.setModiUser(userId);
+ boolean locMastRes = locMastService.updateById(locMast);
+ if (!wrkMastRes || !locMastRes) {
+ throw new CoolException("淇濆瓨鏁版嵁澶辫触");
+ }
}
}
--
Gitblit v1.9.1