From ea5663c37742844e6fe32c7e521a9ca9b5e711f9 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期二, 09 九月 2025 16:21:32 +0800
Subject: [PATCH] 站位转移任务数据 不记录日志
---
src/main/java/com/zy/common/web/WcsController.java | 161 +++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 148 insertions(+), 13 deletions(-)
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 43c26de..5a1e540 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -10,6 +10,7 @@
import com.zy.asrs.entity.param.EmptyPlateOutParam;
import com.zy.asrs.entity.param.StockOutParam;
import com.zy.asrs.entity.result.FindLocNoAttributeVo;
+import com.zy.asrs.mapper.BasCrnpMapper;
import com.zy.asrs.mapper.LocMastMapper;
import com.zy.asrs.mapper.WrkMastMapper;
import com.zy.asrs.service.*;
@@ -28,6 +29,7 @@
import javax.annotation.Resource;
import java.util.*;
+import java.util.stream.Collectors;
/**
* Created by vincent on 2020/10/30
@@ -68,6 +70,18 @@
@Resource
private WrkMastMapper wrkMastMapper;
+ @Resource
+ private BasCrnpMapper basCrnpMapper;
+
+ public static final Map<Integer,ArrayList<Integer>> crnOutSite;
+
+ static {
+ crnOutSite = new HashMap<>();
+ crnOutSite.put(1,new ArrayList<Integer>(){{add(1091);add(1092);add(1093);}});
+ crnOutSite.put(2,new ArrayList<Integer>(){{add(1097);add(1098);add(1099);}});
+ crnOutSite.put(3,new ArrayList<Integer>(){{add(1105);add(1106);add(1107);}});
+ }
+
@PostMapping("/pakin/loc/v1")
@ResponseBody
@Transactional
@@ -79,7 +93,14 @@
if (Cools.isEmpty(param.getSourceStaNo())) {
return R.error("婧愮珯缂栧彿涓嶈兘涓虹┖");
}
- WaitPakin waitPakin = null;
+
+ WaitPakin waitPakin;
+ // 鍒ゆ柇鏄笉鏄垚鍝佸叆搴�
+ waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().
+ eq("zpallet", param.getBarcode()).eq("danger", 1));
+ if (waitPakin != null) {
+ param.setIoType(0);
+ }
if (param.getIoType() == 1) {
// 鍏堝垱寤哄叆搴撻�氱煡妗�
waitPakin = comb(param.getBarcode(),param.getBucketType(),param.getBucketCount());
@@ -130,6 +151,9 @@
}
switch (param.getIoType()) {
+ case 0: // 鎴愬搧鍏ュ簱
+ dto = finishedProductIn(param.getSourceStaNo(), param.getBarcode(), waitPakin);
+ break;
case 1://婊℃墭鐩樺叆搴�
assert waitPakin != null;
dto = startupFullPutStore(param.getSourceStaNo(), param.getBarcode(), locTypeDto, waitPakin, param.isTailSupportFlag());
@@ -256,7 +280,7 @@
wrkMast.setIoTime(now);
wrkMast.setIoType(3); // 鍏ュ嚭搴撶被鍨�3.绔欏埌绔�
wrkMast.setWrkSts(2L);
- wrkMast.setIoPri(13D); // 浼樺厛绾�
+ wrkMast.setIoPri(14D); // 浼樺厛绾�
// wrkMast.setCrnNo(dto.getCrnNo());
wrkMast.setSourceStaNo(param.getSourceStaNo());
wrkMast.setStaNo(1090);
@@ -301,7 +325,7 @@
wrkMast.setIoTime(now);
wrkMast.setIoType(3); // 鍏ュ嚭搴撶被鍨�3.绔欏埌绔�
wrkMast.setWrkSts(2L);
- wrkMast.setIoPri(13D); // 浼樺厛绾�
+ wrkMast.setIoPri(14D); // 浼樺厛绾�
// wrkMast.setCrnNo(dto.getCrnNo());
wrkMast.setSourceStaNo(param.getSourceStaNo());
wrkMast.setStaNo(fhk);
@@ -355,7 +379,7 @@
wrkMast.setIoTime(now);
wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
- wrkMast.setIoPri(13D); // 浼樺厛绾�
+ wrkMast.setIoPri(14D); // 浼樺厛绾�
wrkMast.setCrnNo(dto.getCrnNo());
wrkMast.setSourceStaNo(dto.getSourceStaNo());
wrkMast.setStaNo(dto.getStaNo());
@@ -450,7 +474,7 @@
WrkMast wrkMast = wrkMastService.selectById(wrkNo);
if (wrkMast == null) {
throw new CoolException("寮傚父鍙e叆搴撲换鍔″彿鏃犱换鍔★細" + wrkNo);
- } else if (wrkMast.getLocNo() != null) {
+ } else if (wrkMast.getLocNo() != null && wrkMast.getLocNo().length() == 7) {
throw new CoolException("寮傚父鍙e叆搴撳簱浣嶅凡鍒嗛厤锛�" + wrkMast.getLocNo());
}
@@ -484,6 +508,7 @@
wrkMast.setLocNo(dto.getLocNo());
wrkMast.setSourceStaNo(dto.getSourceStaNo());
wrkMast.setStaNo(dto.getStaNo());
+ wrkMast.setIoPri(15D);
wrkMastService.updateById(wrkMast);
// 鏇存柊鐩爣搴撲綅鐘舵��
@@ -698,18 +723,47 @@
// 鍑哄簱绔欑偣
Integer site = Integer.valueOf(emptyPalletSite.get("site"));
- LocMast locMast;
+ LocMast locMast = null;
- // 鍏堟壘娴呭簱浣�
- locMast = locMastMapper.queryLocMasterByLocStsAndRow(Arrays.asList(2, 3), type);
+ List<BasCrnp> basCrnps = basCrnpMapper.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts", 3).eq("crn_err", 0).in("crn_no",1,2,3)
+ .eq("out_enable","Y"));
+ if (basCrnps.size() == 0) {
+ log.error("绌烘嫋鍑哄簱璇锋眰搴撲綅澶辫触锛屾病鏈夎仈鏈哄爢鍨涙満鎴栧爢鍨涙満寮傚父");
+ throw new CoolException("绌烘嫋鍑哄簱璇锋眰搴撲綅澶辫触锛屾病鏈夎仈鏈哄爢鍨涙満鎴栧爢鍨涙満寮傚父");
+ }
- // 娴呭簱浣嶆病鏈夊垯鏌ヨ鎵�鏈�
- if (locMast == null) {
- locMast = locMastMapper.queryLocMasterByLocStsAndRow(null, type);
+ List<BasCrnp> basCrnpList = new ArrayList<>();
+ for(BasCrnp basCrnp: basCrnps) {
+ List<BasDevp> devps = basDevpService.selectList(new EntityWrapper<BasDevp>().in("dev_no", crnOutSite.get(basCrnp.getCrnNo())).ne("wrk_no", 0));
+ long count = devps.stream().map(BasDevp::getWrkNo).distinct().count();
+ basCrnp.setWrkNo(count + basCrnp.getWrkNo() >= 5001 && basCrnp.getWrkNo() <= 9000 ? 1 : 0);
+ basCrnpList.add(basCrnp);
+ }
+
+ basCrnpList = basCrnpList.stream().sorted(Comparator.comparing(BasCrnp::getWrkNo).thenComparing(BasCrnp::getCrnNo,Comparator.reverseOrder())).collect(Collectors.toList());
+
+ for(BasCrnp basCrnp:basCrnpList) {
+ Integer crnNo = basCrnp.getCrnNo();
+ Wrapper<LocMast> wrapper = new EntityWrapper<LocMast>().eq("loc_sts", type)
+ .eq("crn_no", crnNo).orderBy("lev1").orderBy("bay1").orderBy("row1");
+ if (crnNo == 1) {
+ wrapper.in("row1", 1, 4);
+ }
+ locMast = locMastService.selectOne(wrapper);
+ if (locMast != null) {
+ break;
+ }
+ // 娣卞簱浣嶆病鏈変簡鍒欒幏鍙栦竴涓祬搴撲綅
+ if (crnNo == 1) {
+ locMast = locMastService.selectOne(wrapper.in("row1", 2, 3));
+ if (locMast != null) {
+ break;
+ }
+ }
}
if (locMast == null) {
- return R.error("搴撳瓨娌℃湁"+type+"绫诲瀷绌烘墭鐩�");
+ return R.error("搴撳瓨娌℃湁"+type+"绫诲瀷绌烘墭鐩樻垨鏃犲彲鐢ㄥ爢鍨涙満");
}
String locNo = locMast.getLocNo();
@@ -750,7 +804,7 @@
wrkMast.setExitMk("N"); // 閫�鍑�
wrkMast.setEmptyMk("N"); // 绌烘澘
wrkMast.setLinkMis("Y");
- wrkMast.setCtnType(tailSupportFlag ? 1 : 0); // 灏炬墭鏍囪瘑
+ wrkMast.setCtnType(0); // 灏炬墭鏍囪瘑
wrkMast.setPdcType(waitPakins.getMatnr()); // 绌烘《绫诲瀷
// 鎿嶄綔浜哄憳鏁版嵁
wrkMast.setAppeTime(now);
@@ -785,6 +839,87 @@
if (!basDevpService.updateById(sourceStaNo)){
throw new CoolException("鏇存柊婧愮珯澶辫触");
}
+ if(!dto.getLocNo().isEmpty()) {
+ // 鏇存柊鐩爣搴撲綅鐘舵��
+ LocMast locMast = locMastService.selectById(dto.getLocNo());
+ if (locMast.getLocSts().equals("O")){
+ locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)){
+ throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+ }
+ } else {
+ throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
+ }
+ }
+
+ return dto;
+ }
+
+ /**
+ * 鎴愬搧鍏ュ簱
+ */
+ @Transactional(propagation = Propagation.REQUIRED)
+ public StartupDto finishedProductIn(Integer devpNo, String barcode, WaitPakin waitPakins) {
+ // 婧愮珯鐐圭姸鎬佹娴�
+ BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
+ // 妫�绱㈠簱浣�
+ FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(waitPakins);
+ StartupDto dto = commonService.getLocNoNew( 1, devpNo,findLocNoAttributeVo,1);
+ int workNo = dto.getWorkNo();
+ Date now = new Date();
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(new Date());
+ wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+ wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
+ wrkMast.setIoPri(13D); // 浼樺厛绾�
+ wrkMast.setCrnNo(dto.getCrnNo());
+ wrkMast.setSourceStaNo(dto.getSourceStaNo());
+ wrkMast.setStaNo(dto.getStaNo());
+ wrkMast.setLocNo(dto.getLocNo());
+ wrkMast.setBarcode(barcode); // 鎵樼洏鐮�
+ wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("N"); // 绌烘澘
+ wrkMast.setLinkMis("Y");
+// wrkMast.setCtnType(tailSupportFlag ? 1 : 0); // 灏炬墭鏍囪瘑
+ wrkMast.setPdcType(waitPakins.getModel()); // 绌烘《绫诲瀷
+ // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiTime(now);
+ boolean res = wrkMastService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ // 鐢熸垚宸ヤ綔妗f槑缁�
+ WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(waitPakins);
+ wrkDetl.setWrkNo(wrkMast.getWrkNo());
+ wrkDetl.setIoTime(wrkMast.getIoTime());
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setModiTime(now);
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
+ // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y
+ Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
+ .eq("zpallet", barcode);
+ WaitPakin setParam = new WaitPakin();
+ setParam.setLocNo(dto.getLocNo());
+ setParam.setIoStatus("Y");
+ setParam.setModiTime(now);
+ if (!waitPakinService.update(setParam, wrapper)) {
+ throw new CoolException("鏇存柊閫氱煡妗eけ璐�");
+ }
+ // 鏇存柊婧愮珯鐐逛俊鎭�
+ sourceStaNo.setWrkNo(workNo);
+ sourceStaNo.setModiTime(now);
+ if (!basDevpService.updateById(sourceStaNo)){
+ throw new CoolException("鏇存柊婧愮珯澶辫触");
+ }
// 鏇存柊鐩爣搴撲綅鐘舵��
LocMast locMast = locMastService.selectById(dto.getLocNo());
if (locMast.getLocSts().equals("O")){
--
Gitblit v1.9.1