From f13ca3de8d05626a0847d2651b8cedbb32da5927 Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期二, 11 七月 2023 11:24:10 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 166 ++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 126 insertions(+), 40 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 da84811..c2afe90 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -74,6 +74,8 @@
@Autowired
private WcsController wcsController;
@Autowired
+ private WaitPakinService waitPakinService;
+ @Autowired
private RowLastnoService rowLastnoService;
@Autowired
private SlaveProperties slaveProperties;
@@ -159,45 +161,79 @@
@Override
@Transactional
public void startupFullTakeStore(StockOutParam param, Long userId) {
- ArrayList<String> locNos = new ArrayList<>();
List<StockOutParam.LocDetl> locDetls = new ArrayList<>();
-
- //鍑哄簱鏃讹紝濡傛灉褰撳墠搴撲綅缁勬湁鐩稿悓鐨勭墿鏂欙紝鍒欏厛鍑哄渚х墿鏂�
+ List<String> locs = new ArrayList<>();
+ for(StockOutParam.LocDetl one : param.getLocDetls()){
+ locs.add(one.getLocNo());
+ }
for (StockOutParam.LocDetl locDetl : param.getLocDetls()) {
- List<String> outerSingleLoc = Utils.getGroupOuterSingleLoc(locDetl.getLocNo());
- outerSingleLoc.add(locDetl.getLocNo());
- boolean flag = false;
- Double useCount = 0D;
- for (String locNo : outerSingleLoc) {
- for (LocDetl locDetl0 : locDetlService.selectByLocNo(locNo)) {
- if (!locDetl0.getMatnr().equals(locDetl.getMatnr())) {
+ //鑾峰彇鍚屼竴搴撲綅缁勭殑澶栦晶搴撲綅鍙�
+ List<String> groupOuterSingleLoc = Utils.getGroupOuterSingleLoc(locDetl.getLocNo());
+ for (String locNo : groupOuterSingleLoc) {
+ //姣忎釜搴撲綅鐨勫簱浣嶆槑缁�
+ if(locs.contains(locNo)) continue;
+ for (LocDetl detl : locDetlService.selectByLocNo(locNo)) {
+ if (!detl.getMatnr().equals(locDetl.getMatnr())) {
//涓嶆槸鐩稿悓鐗╂枡
continue;
}
- double lastCount = locDetl.getCount() - useCount;//鍓╀綑鎵�闇�鏁伴噺
- double realCount = 0;//瀹為檯鎻愪緵鏁伴噺
- if (locDetl0.getAnfme() >= lastCount) {//瀹為檯鏁伴噺澶т簬鎵�闇�鏁伴噺锛屾寜鎵�闇�鏁伴噺鎻愪緵
- realCount = lastCount;
- } else {
- //瀹為檯灏忎簬鎵�闇�鏁伴噺锛屾寜瀹為檯鏁伴噺鎻愪緵
- realCount = locDetl0.getAnfme();
- }
- useCount += realCount;//宸蹭娇鐢ㄧ殑鏁伴噺
-
- locDetls.add(new StockOutParam.LocDetl(locDetl0.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), realCount));
- flag = true;
- if (useCount >= locDetl.getCount()) {
- //鎵惧埌鐨勫簱瀛� >= 鎵�闇�搴撳瓨锛屾弧瓒虫潯浠�
- break;
- }
+ locDetls.add(new StockOutParam.LocDetl(detl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), detl.getAnfme()));
}
- }
- if (!flag) {
- locDetls.add(locDetl);
}
-
+ locDetls.add(locDetl);
}
+ //鍑哄簱鏃讹紝濡傛灉褰撳墠搴撲綅缁勬湁鐩稿悓鐨勭墿鏂欙紝鍒欏厛鍑哄渚х墿鏂� 6.30鏃� 娉ㄩ噴
+ //for (StockOutParam.LocDetl locDetl : param.getLocDetls()) {
+ // List<String> outerSingleLoc = Utils.getGroupOuterSingleLoc(locDetl.getLocNo());
+ // boolean flag = false;
+ // Double useCount = 0D;
+ // for (String locNo : outerSingleLoc) {
+ // if(locs.contains(locNo)) continue;
+ // for (LocDetl locDetl0 : locDetlService.selectByLocNo(locNo)) {
+ // if (!locDetl0.getMatnr().equals(locDetl.getMatnr())) {
+ // //涓嶆槸鐩稿悓鐗╂枡
+ // continue;
+ // }
+ // double lastCount = locDetl.getCount() - useCount;//鍓╀綑鎵�闇�鏁伴噺
+ // double realCount = 0;//瀹為檯鎻愪緵鏁伴噺
+ // if (lastCount==0){
+ // continue;
+ // }
+ // if (locDetl0.getAnfme() >= lastCount) {//瀹為檯鏁伴噺澶т簬鎵�闇�鏁伴噺锛屾寜鎵�闇�鏁伴噺鎻愪緵
+ // realCount = lastCount;
+ // } else {
+ // //瀹為檯灏忎簬鎵�闇�鏁伴噺锛屾寜瀹為檯鏁伴噺鎻愪緵
+ // realCount = locDetl0.getAnfme();
+ // }
+ // useCount += realCount;//宸蹭娇鐢ㄧ殑鏁伴噺
+ //
+ // locDetls.add(new StockOutParam.LocDetl(locDetl0.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), realCount));
+ // flag = true;
+ // if (useCount >= locDetl.getCount()) {
+ // //鎵惧埌鐨勫簱瀛� >= 鎵�闇�搴撳瓨锛屾弧瓒虫潯浠�
+ // break;
+ // }
+ // }
+ // }
+ //
+ // if (!flag) {
+ // locDetls.add(locDetl);
+ // }
+ //
+ //}
+
+ // TODO: 2023/6/28 绛夋潕钖囩‘璁ゆ槸鍚︿娇鐢�
+ // ----------------------------------------------
+ //for(StockOutParam.LocDetl one : param.getLocDetls()){
+ // List<String> outerSingleLoc = Utils.getGroupOuterSingleLoc(one.getLocNo());
+ // for (String s : outerSingleLoc) {
+ // if (!locs.contains(s)) {
+ // throw new CoolException("娴呭簱浣嶆湁鐩稿悓鐗╂枡涓嶆敮鎸佸嚭搴�");
+ // }
+ // }
+ //}
+ // ----------------------------------------------
// ArrayList<String> locNos = new ArrayList<>();
// for (StockOutParam.LocDetl locDetl:param.getLocDetls()){
@@ -411,6 +447,7 @@
@Override
@Transactional
public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId) {
+ Integer basDevp = staNo.getDevNo();
Date now = new Date();
// 鍚堝苟鍚岀被椤�
Set<String> locNos = new HashSet<>();
@@ -464,10 +501,15 @@
if (!locMast.getLocSts().equals("F")) {
continue;
}
-
+ //if (locMast.getLocSts().equals("F")) {
+ // throw new CoolException("娴呭簱浣嶅湪搴撲笉鏀寔姝や换鍔�");
+ //}
boolean flag = false;
for (LocDetl locDetl : locDetlService.selectByLocNo(locMast.getLocNo())) {
if (!locDetl.getMatnr().equals(matnr)) {
+ flag = true;
+ break;
+ }else if (!Cools.isEmpty(ioWorkType) && ioWorkType.equals(IoWorkType.CHECK_OUT)){
flag = true;
break;
}
@@ -476,7 +518,7 @@
if (flag) {
//褰撳墠宸烽亾瀛樺湪涓嶅悓瑙勬牸鐨勭墿鏂欙紝闇�瑕佽繘琛�101鍏ㄦ澘鍑哄簱
// 鑾峰彇璺緞
- StaDesc staDesc = staDescService.queryCrnStn(101, locMast.getCrnNo(), staNo.getDevNo(), locMast.getRow1());
+ StaDesc staDesc = staDescService.queryCrnStn(101, locMast.getCrnNo(), locMast.getCrnNo()==1? 100:200 , locMast.getRow1());
if(staDesc == null){
throw new CoolException("鍑哄簱璺緞涓嶅瓨鍦�");
}
@@ -494,7 +536,7 @@
wrkMast.setOutMost(0);
wrkMast.setCrnNo(locMast.getCrnNo());
wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
- wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
+ wrkMast.setStaNo(locMast.getCrnNo()==1? 100:200); // 鐩爣绔�
wrkMast.setSourceLocNo(locMast.getLocNo()); // 婧愬簱浣�
wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
wrkMast.setPicking("N"); // 鎷f枡
@@ -523,8 +565,32 @@
wrkDetl.setModiUser(userId);
wrkDetl.setSpecs(locDetl.getSpecs());
wrkDetl.setMatType(locDetl.getMatType());
+ wrkDetl.setZpallet(locMast.getBarcode());
if (!wrkDetlService.insert(wrkDetl)) {
throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+ }
+
+ Mat mat = matService.selectByMatnr(locDetl.getMatnr());
+ if (Cools.isEmpty(mat)) {
+ throw new CoolException(locDetl.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
+ }
+ WaitPakin waitPakin = new WaitPakin();
+ waitPakin.sync(mat);
+ waitPakin.setBatch("");
+ waitPakin.setZpallet(locMast.getBarcode()); // 鎵樼洏鐮�
+ waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵��
+ waitPakin.setAnfme(locDetl.getAnfme()); // 鏁伴噺
+ waitPakin.setStatus("Y"); // 鐘舵��
+ waitPakin.setAppeUser(userId);
+ waitPakin.setAppeTime(now);
+ waitPakin.setModiUser(userId);
+ waitPakin.setModiTime(now);
+ waitPakin.setMemo(locDetl.getMemo());
+ waitPakin.setFrozen(0); // 鏄惁鍐荤粨
+ waitPakin.setManu(locDetl.getManu());
+ waitPakin.setMatType(mat.getMatType());//鐗╂枡绫诲瀷
+ if (!waitPakinService.insert(waitPakin)) {
+ throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
}
}
// 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害
@@ -557,10 +623,29 @@
LocMast locMast = locMastService.selectById(dto.getLocNo());
//-----------------2023.6.2鍑哄簱鍏煎浠g爜-----------------------
- List<LocDetl> locDetls = locDetlService.selectByLocNo(locMast.getLocNo());
- if (locMast.getLocType2() == 1 && locDetls.size() > 1) {
- //鍗曞搧鍖哄煙鍑哄簱鐗╂枡澶т簬1绉嶏紝寮哄埗鍙樻垚101鍏ㄦ澘鍑哄簱
- ioType = 101;
+ if (ioType!=107){
+ List<LocDetl> locDetls = locDetlService.selectByLocNo(locMast.getLocNo());
+ //if (locMast.getLocType2() == 1 && locDetls.size() > 1) {
+ // //鍗曞搧鍖哄煙鍑哄簱鐗╂枡澶т簬1绉嶏紝寮哄埗鍙樻垚101鍏ㄦ澘鍑哄簱
+ // ioType = 101;
+ // if (staNo.getDevNo()==300){
+ // staNo.setDevNo(200);
+ // }
+ //}
+ if (ioType == 101) {
+ if (staNo.getDevNo()==300){
+ if(locMast.getCrnNo() == 1) {
+ staNo.setDevNo(100);
+ } else {
+ staNo.setDevNo(200);
+ }
+
+ }
+ } else {
+ staNo.setDevNo(basDevp);
+ }
+
+
}
//-----------------2023.6.2鍑哄簱鍏煎浠g爜end-----------------------
@@ -616,6 +701,7 @@
wrkDetl.setModiUser(userId);
wrkDetl.setSpecs(detlDto.getLocDetl().getSpecs());
wrkDetl.setMatType(detlDto.getLocDetl().getMatType());
+ wrkDetl.setZpallet(locMast.getBarcode());
if (!wrkDetlService.insert(wrkDetl)) {
throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
}
@@ -941,9 +1027,9 @@
@Override
@Transactional
public void locCheckOut(StockOutParam param, Long userId) {
- // if (wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 107)) > 0) {
- // throw new CoolException("鍙兘瀛樺湪涓�绗旂洏鐐逛换鍔�");
- // }
+// if (wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 107)) > 0) {
+// throw new CoolException("鍙兘瀛樺湪涓�绗旂洏鐐逛换鍔�");
+// }
// 鐩爣绔欑偣鐘舵�佹娴�
BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
// 鑾峰彇搴撲綅鏄庣粏
--
Gitblit v1.9.1