From 2ff79b71d902e733a0cf0d70052ace24fa1c479e Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期二, 06 八月 2024 13:50:27 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 309 +++++++++++++++++++++++++++++++--------------------
1 files changed, 186 insertions(+), 123 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 8793fa6..eabbf0e 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -19,6 +19,8 @@
import com.zy.common.model.StartupDto;
import com.zy.common.service.CommonService;
import com.zy.common.utils.NodeUtils;
+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;
@@ -28,7 +30,6 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
-import java.util.stream.Collectors;
/**
* Created by vincent on 2022/4/9
@@ -73,6 +74,190 @@
@Autowired
private LocMastService locMastService;
+ @Autowired
+ private ConfigService configService;
+ @Override
+ public R synCallowWarehousing() {
+
+ Config outModel = configService.selectConfigByCode("outModel");
+ if (outModel.getValue().equals("Y")) {
+ // 娌℃湁鍒�305鐨勫嚭搴撲换鍔�(305鐨勫嚭搴撲换鍔′紭鍏�)
+ int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 101)
+ .eq("sta_no", 305));
+ if (count > 0) {
+ return R.parse("瀛樺湪305鍑哄簱浠诲姟");
+ }
+ outModel.setValue("N");
+ configService.updateById(outModel);
+ }
+ return R.ok();
+ }
+ @Autowired
+ private WaitPakinService waitPakinService;
+ @Override
+ public R syncWarehousing(CombParam param) {
+
+ Long userId = 9999L;
+
+ // 鍙傛暟闈炵┖鍒ゆ柇
+ if (Cools.isEmpty(param.getCombMats())) {
+ throw new CoolException("鏁版嵁涓嶅畬鏁达紝璇锋鏌ヨ姹傚弬鏁�");
+ }
+
+ Config outModel = configService.selectConfigByCode("outModel");
+ if (outModel.getValue().equals("Y")) {
+ throw new CoolException("305涓嶅厑璁稿叆搴�");
+ }
+
+ for (CombParam.CombMat combMat : param.getCombMats()) {
+ String batch = combMat.getBatch();
+ int countL = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("batch", batch));
+ int countW = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("batch", batch));
+ if (countW > 0) {
+ return R.ok("瀛樺湪浠诲姟");
+ }
+ int countP = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("batch", batch));
+ if (countL > 0 || countW > 0 || countP > 0) {
+ throw new CoolException("璇ユ壒鍙峰凡缁忓瓨鍦�===>>" + batch);
+ }
+ WaitPakin waitPakin = new WaitPakin();
+ Date now = new Date();
+ waitPakin.sync(combMat);
+ waitPakin.setBarcode("");
+ waitPakin.setZpallet(""); // 鎵樼洏鐮�
+ waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵��
+ waitPakin.setAnfme(1.0); // 鏁伴噺
+ waitPakin.setStatus("Y"); // 鐘舵��
+ waitPakin.setAppeUser(userId);
+ waitPakin.setAppeTime(now);
+ waitPakin.setModiUser(userId);
+ waitPakin.setModiTime(now);
+
+ // 婧愮珯鐐圭姸鎬佹娴�
+ BasDevp sourceStaNo = basDevpService.checkSiteStatus(305, true);
+
+ // 闀垮害>3500鏀惧搴撲綅
+ sourceStaNo.setLocType2((short) (waitPakin.getLength() > 3500 ? 2 : 1));
+ LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
+
+ // 瀵绘壘搴撲綅
+ StartupDto dto = commonService.getLocNo(sourceStaNo, locTypeDto, 1);
+
+ int workNo = dto.getWorkNo();
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setWhsType(1);
+ wrkMast.setIoTime(new Date());
+ wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱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(""); // 鎵樼洏鐮�
+ wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("N"); // 绌烘澘
+ wrkMast.setLinkMis("Y");
+ wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
+ // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiTime(now);
+ boolean res = wrkMastService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+
+ // 鐢熸垚宸ヤ綔妗f槑缁�
+ WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(waitPakin);
+ wrkDetl.setWrkNo(wrkMast.getWrkNo());
+ wrkDetl.setIoTime(wrkMast.getIoTime());
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setModiTime(now);
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
+// // 鏇存柊婧愮珯鐐逛俊鎭�
+// sourceStaNo.setWrkNo(workNo);
+// sourceStaNo.setModiTime(now);
+// if (!basDevpService.updateById(sourceStaNo)) {
+// throw new CoolException("鏇存柊婧愮珯澶辫触");
+// }
+
+ // 鏇存柊鐩爣搴撲綅鐘舵��
+ 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 R.ok();
+ }
+
+ @Override
+ public R agvAskOpen(AgvAskOpenParam param) {
+ if (param.getFlag() == 0) { // 鍑哄簱璇锋眰wms寮�闂�
+ BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 305));
+ if (basDevp.getWrkNo() > 6000 && basDevp.getWrkNo() <= 9000 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y")
+ && basDevp.getOutEnable().equals("Y")) { // 鍑哄簱宸ヤ綔妗�
+ WrkMast wrkMast = wrkMastService.selectById(basDevp.getWrkNo());
+ if (wrkMast.getWhsType() == null) {
+ throw new CoolException("娌℃湁閫氱煡agv杩囨潵鍙栬揣");
+ } else if (wrkMast.getWhsType() == 1) {
+ WrkDetl wrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", basDevp.getWrkNo()));
+ if (wrkDetl.getMatnr().equals(param.getMatnr()) && wrkDetl.getBatch().equals(param.getBatch())) {
+ wrkMast.setWhsType(2);
+ wrkMastService.updateById(wrkMast);
+ return R.ok("鐗╂枡鏍¢獙鎴愬姛锛岄┈涓婂紑闂�");
+ } else {
+ throw new CoolException("缂栫爜+鎵瑰彿鏍¢獙澶辫触锛�" + param.getBatch());
+ }
+ } else if (wrkMast.getWhsType() == 2) {
+ return R.ok("椹笂寮�闂�");
+ } else {
+ return R.error("宸ヤ綔妗e綋鍓嶇姸鎬佹湁璇�");
+ }
+ } else {
+ return R.error("涓嶆弧瓒冲嚭搴撴潯浠�");
+ }
+ } else if(param.getFlag() == 1) { // 鍏ュ簱璇锋眰wms寮�闂�
+ BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 305));
+ if (basDevp.getAutoing().equals("Y") && basDevp.getLoading().equals("Y")
+ && basDevp.getInEnable().equals("Y")) { // 鍏ュ簱搴曞骇
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type",1)
+ .eq("source_sta_no",305).lt("wrk_sts",3));
+ if (wrkMast.getWhsType() == null) {
+ throw new CoolException("娌℃湁鍏ュ簱浠诲姟");
+ } else if (wrkMast.getWhsType() == 1) {
+ WrkDetl wrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+ if (wrkDetl.getMatnr().equals(param.getMatnr()) && wrkDetl.getBatch().equals(param.getBatch())) {
+ wrkMast.setWhsType(2);
+ wrkMastService.updateById(wrkMast);
+ return R.ok("鐗╂枡鏍¢獙鎴愬姛锛岄┈涓婂紑闂�");
+ } else {
+ throw new CoolException("缂栫爜+鎵瑰彿鏍¢獙澶辫触锛�" + param.getBatch());
+ }
+ } else if (wrkMast.getWhsType() == 2) {
+ return R.ok("椹笂寮�闂�");
+ } else {
+ return R.error("宸ヤ綔妗e綋鍓嶇姸鎬佹湁璇�");
+ }
+ } else {
+ return R.error("搴曞骇杩樻湭杈惧埌");
+ }
+ }
+ return R.error("鍑哄叆搴撴爣璇嗛敊璇細" + param.getFlag());
+ }
@Override
@Transactional
@@ -567,128 +752,6 @@
}
}
- }
-
- @Override
- public R synCallowWarehousing(String flag) {
- List<WrkMast> wrkMasts = wrkMastMapper.queryOutLocWork();
- if (wrkMasts.isEmpty()) {
- return R.ok();
- }
- return R.parse("褰撳墠瀛樺湪鍑哄簱浠诲姟");
- }
-
- @Override
- public R syncWarehousing(FullStoreParam param) {
-
- Long userId = 9999L;
-
- // 鍙傛暟闈炵┖鍒ゆ柇
- if (Cools.isEmpty(param.getBarcode(), param.getList())) {
- throw new CoolException("鏁版嵁涓嶅畬鏁达紝璇锋鏌ヨ姹傚弬鏁�");
- }
-
- List<WrkMast> wrkMasts = wrkMastMapper.queryOutLocWork();
- if(!wrkMasts.isEmpty()) {
- throw new CoolException("305瀛樺湪鍑哄簱浠诲姟");
- }
-
- int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
- int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode()));
- if (countLoc > 0 || countWrk > 0) {
- throw new CoolException("宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�");
- }
-
- Date now = new Date();
- // 婧愮珯鐐圭姸鎬佹娴�
- BasDevp sourceStaNo = basDevpService.checkSiteStatus(305, true);
- // 妫�绱㈠簱浣�
- LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
- 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());
- StartupDto dto = commonService.getLocNo(sourceStaNo,locTypeDto, 1);
- // 鐢熸垚宸ヤ綔鍙�
- int workNo = dto.getWorkNo();
- // 鐢熸垚宸ヤ綔妗�
- WrkMast wrkMast = new WrkMast();
- wrkMast.setWrkNo(workNo);
- wrkMast.setIoTime(now);
- wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
- wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
- wrkMast.setIoPri(13D); // 浼樺厛绾э細13
- wrkMast.setCrnNo(dto.getCrnNo());
- wrkMast.setSourceStaNo(dto.getSourceStaNo());
- wrkMast.setStaNo(dto.getStaNo());
- wrkMast.setLocNo(dto.getLocNo());
- wrkMast.setBarcode(param.getBarcode()); // 鎵樼洏鐮�
- wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
- wrkMast.setPicking("N"); // 鎷f枡
- wrkMast.setExitMk("N"); // 閫�鍑�
- wrkMast.setEmptyMk("N"); // 绌烘澘
- wrkMast.setLinkMis("N");
- wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
- wrkMast.setAppeUser(userId);
- wrkMast.setAppeTime(now);
- wrkMast.setModiUser(userId);
- wrkMast.setModiTime(now);
- if (!wrkMastService.insert(wrkMast)) {
- throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
- }
- // 鐢熸垚宸ヤ綔妗f槑缁�
- List<DetlDto> detlDtos = new ArrayList<>();
- param.getList().forEach(elem -> {
- DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
- detlDto.setMaktx(elem.getMaktx());
- detlDto.setSpecs(elem.getSpecs());
- detlDto.setTagId(elem.getTagId());
- if (DetlDto.has(detlDtos, detlDto)) {
- DetlDto detlDto1 = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
- assert detlDto1 != null;
- detlDto1.setAnfme(detlDto1.getAnfme() + detlDto.getAnfme());
- } else {
- detlDtos.add(detlDto);
- }
- });
- wrkDetlService.createWorkDetail(workNo, detlDtos, param.getBarcode(), userId, now);
- // 鏇存柊婧愮珯鐐逛俊鎭�
- sourceStaNo.setWrkNo(workNo);
- sourceStaNo.setModiUser(userId);
- sourceStaNo.setModiTime(now);
- if (!basDevpService.updateById(sourceStaNo)){
- throw new CoolException("鏇存柊婧愮珯澶辫触");
- }
- // 鏇存柊鐩爣搴撲綅鐘舵��
- LocMast locMast = locMastService.selectById(dto.getLocNo());
- if (locMast.getLocSts().equals("O")){
- locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
- locMast.setModiUser(userId);
- locMast.setModiTime(now);
- if (!locMastService.updateById(locMast)){
- throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
- }
- } else {
- throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
- }
-
- return R.ok();
- }
-
- @Override
- public R getOutboundMaterials(String flag) {
- List<WrkDetl> outboundMaterials = wrkMastMapper.getOutboundMaterials();
- if (Cools.isEmpty(outboundMaterials)) {
- return R.parse("璐х墿鏈埌杈炬垨宸插彇璧�");
- }
- List<FullStoreParam.MatCodeStore> matCodeStoreList = new ArrayList<>();
- for(WrkDetl wrkDetl : outboundMaterials){
- FullStoreParam.MatCodeStore matCodeStore = new FullStoreParam.MatCodeStore();
- matCodeStore.setMatnr(wrkDetl.getMatnr());
- matCodeStore.setBatch(wrkDetl.getBatch());
- matCodeStore.setAnfme(wrkDetl.getAnfme());
- matCodeStoreList.add(matCodeStore);
- }
-
- return R.ok(matCodeStoreList);
}
}
--
Gitblit v1.9.1