From 6751d283289bd10d2ad97ddff65de64046d89c6b Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 26 五月 2023 14:39:28 +0800
Subject: [PATCH] 地图显示行号
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 120 ++++++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 81 insertions(+), 39 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 88c59d7..3f02ed6 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -91,7 +91,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(), matnrs, locTypeDto, 0);
+ StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matnrs, locTypeDto);
// 鐢熸垚宸ヤ綔鍙�
int workNo = dto.getWorkNo();
// 鐢熸垚宸ヤ綔妗�
@@ -159,6 +159,16 @@
@Override
@Transactional
public void startupFullTakeStore(StockOutParam param, Long userId) {
+ ArrayList<String> locNos = new ArrayList<>();
+ for (StockOutParam.LocDetl locDetl:param.getLocDetls()){
+ if (!locNos.contains(locDetl.getLocNo())){
+ locNos.add(locDetl.getLocNo());
+ }
+ }
+
+ //妫�娴嬫彁浜ょ殑鍑哄簱搴撲綅鏄惁鍚堟硶(娴呭簱浣嶆湁闈炵┖搴撲綅)
+ Utils.checkStockOutLocNo(locNos);
+
// 鐩爣绔欑偣鐘舵�佹娴�
BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
// 鑾峰彇搴撲綅鏄庣粏
@@ -170,8 +180,13 @@
}
}
if (!locDetlDtos.isEmpty()) {
- // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱
- stockOut(staNo, locDetlDtos, null, userId);
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
+ 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("搴撳瓨涓嶅瓨鍦�");
}
@@ -215,15 +230,19 @@
ioType = dto.isAll() ? 101 : 103;
} else if (ioWorkType.equals(IoWorkType.CHECK_OUT)) {
ioType = 107;
- 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("鍙兘瀛樺湪涓�绗旂洏鐐逛换鍔�");
+ // }
}
assert ioType != null;
// 鑾峰彇搴撲綅
LocMast locMast = locMastService.selectById(dto.getLocNo());
// 鑾峰彇璺緞
- StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), staNo.getDevNo());
+ StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), staNo.getDevNo(), locMast.getRow1());
+ if(staDesc == null){
+ throw new CoolException("鍑哄簱璺緞涓嶅瓨鍦�");
+ }
+
// 鐢熸垚宸ヤ綔鍙�
int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
// 鐢熸垚宸ヤ綔妗�
@@ -233,7 +252,7 @@
wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
Double ioPri = wrkMastService.getIoPri(ioType, dto.getLocNo());
- wrkMast.setIoPri(ioPri); // 浼樺厛绾э細13
+ wrkMast.setIoPri(15D); // 浼樺厛绾э細13
wrkMast.setOutMost(locMastService.isOutMost(dto.getLocNo(), false) ? 1 : 0);
wrkMast.setCrnNo(locMast.getCrnNo());
wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
@@ -268,6 +287,7 @@
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(now);
wrkDetl.setModiUser(userId);
+ wrkDetl.setSpecs(detlDto.getLocDetl().getSpecs());
if (!wrkDetlService.insert(wrkDetl)) {
throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
}
@@ -284,7 +304,7 @@
} else {
throw new CoolException(dto.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
}
- locMastService.breakUp(dto.getLocNo(), excludeLocNos);
+// locMastService.breakUp(dto.getLocNo(), excludeLocNos);
}
}
@@ -358,7 +378,7 @@
throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
}
// 淇敼璁㈠崟鏄庣粏
- if (BaseController.isJSON(locDto.getOrderNo())) {
+ if (!BaseController.isJSON(locDto.getOrderNo())) {
String[] orderNos = GetOrderNo(locDto.getOrderNo());
if (!Cools.isEmpty(orderNos)){
Double anfme = locDto.getAnfme();
@@ -392,6 +412,7 @@
} else {
// 璁㈠崟鍚堝苟鍑哄簱
List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class);
+
for (OrderDto orderDto : orderDtoList) {
OrderDetl orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
if (orderDetl == null) {
@@ -461,7 +482,7 @@
BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
// 妫�绱㈠簱浣�
LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
- StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null, locTypeDto, 0);
+ StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null, locTypeDto);
int workNo = dto.getWorkNo();
// 鐢熸垚宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
@@ -534,6 +555,9 @@
if (Cools.isEmpty(locMast)) {
throw new CoolException(locNo + "搴撲綅涓嶅瓨鍦�");
}
+ if (!locMast.getLocSts().equals("D")){
+ throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篋鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
+ }
// 鑾峰彇婧愮珯
Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
.eq("type_no", 110)
@@ -588,9 +612,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());
// 鑾峰彇搴撲綅鏄庣粏
@@ -602,8 +626,14 @@
}
}
if (!locDetlDtos.isEmpty()) {
- // 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱
- stockOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId);
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
+ 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("搴撲綅鐗╂枡涓嶅瓨鍦�");
}
@@ -620,6 +650,9 @@
LocMast loc = locMastService.selectById(locNo);
if (Cools.isEmpty(loc)) {
throw new CoolException("鏈壘鍒板簱浣�");
+ }
+ if (!loc.getLocSts().equals("O")||(!sourceLoc.getLocSts().equals("F") && !sourceLoc.getLocSts().equals("D"))){
+ throw new CoolException("搴撲綅鐘舵�佸凡鏀瑰彉");
}
if (!sourceLoc.getCrnNo().equals(loc.getCrnNo())) {
// throw new CoolException("绉昏浆搴撲綅灞炰簬涓嶅悓鍫嗗灈鏈�"); todo:luxiaotao
@@ -706,6 +739,7 @@
wrkMast.setWrkSts(9L);
// 鍑哄簱
} else if (wrkMast.getWrkSts() > 10) {
+ wrkMast.setSteNo(0);
wrkMast.setWrkSts(17L);
}
Date now = new Date();
@@ -749,25 +783,26 @@
continue;
}
if (locDetl.getMatnr().equals(adjust.getMatnr()) && Cools.eq(locDetl.getBatch(), adjust.getBatch())) {
- if (!locDetl.getAnfme().equals(adjust.getCount())) {
- // todo 鐩樼偣璁板綍
- // 淇敼搴撳瓨
- if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) {
- throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "搴忓垪鐮佷慨鏀规暟閲忓け璐�");
- }
- // 淇濆瓨璋冩暣璁板綍
- AdjDetl adjDetl = new AdjDetl();
- adjDetl.setLocNo(locDetl.getLocNo());
- adjDetl.setMatnr(locDetl.getMatnr());
- adjDetl.setBatch(locDetl.getBatch());
- adjDetl.setOriQty(locDetl.getAnfme());
- adjDetl.setAdjQty(adjust.getCount());
- adjDetl.setModiTime(now);
- adjDetl.setModiUser(userId);
- adjDetl.setAppeTime(now);
- adjDetl.setAppeUser(userId);
- adjDetlService.save(adjDetl, userId);
+ // todo 鐩樼偣璁板綍
+ // 淇敼搴撳瓨
+ if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), adjust.getManu(), adjust.getMemo())) {
+ throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "搴忓垪鐮佷慨鏀规暟閲忓け璐�");
}
+ // 淇濆瓨璋冩暣璁板綍
+ AdjDetl adjDetl = new AdjDetl();
+ adjDetl.setLocNo(locDetl.getLocNo());
+ adjDetl.setMatnr(locDetl.getMatnr());
+ adjDetl.setBatch(locDetl.getBatch());
+ adjDetl.setOriQty(locDetl.getAnfme());
+ adjDetl.setAdjQty(adjust.getCount());
+ adjDetl.setMemo(adjust.getMemo());
+ adjDetl.setManu(adjust.getManu());
+ adjDetl.setModiTime(now);
+ adjDetl.setModiUser(userId);
+ adjDetl.setAppeTime(now);
+ adjDetl.setAppeUser(userId);
+ adjDetlService.save(adjDetl, userId);
+
iterator.remove();
iterator1.remove();
}
@@ -805,6 +840,8 @@
locDetl.setBatch(adjust.getBatch());
locDetl.setLocNo(locMast.getLocNo());
locDetl.setAnfme(adjust.getCount()); // 鏁伴噺
+ locDetl.setMemo(adjust.getMemo());
+ locDetl.setManu(adjust.getManu());
locDetl.setModiUser(userId); // 鎿嶄綔浜哄憳淇℃伅
locDetl.setModiTime(now);
locDetl.setAppeUser(userId);
@@ -817,6 +854,8 @@
adjDetl.setLocNo(locMast.getLocNo());
adjDetl.setMatnr(adjust.getMatnr());
adjDetl.setBatch(adjust.getBatch());
+ adjDetl.setMemo(adjust.getMemo());
+ adjDetl.setManu(adjust.getManu());
adjDetl.setOriQty(0.0D);
adjDetl.setAdjQty(adjust.getCount());
adjDetl.setModiTime(now);
@@ -882,6 +921,9 @@
locSts = "D";
// 搴撲綅杞Щ ===>> D.绌烘《/绌烘爤鏉�
} else if (wrkMast.getIoType() == 11) {
+ if (wrkMast.getWrkSts() > 11){
+ throw new CoolException("绉诲簱浠诲姟宸插湪鎵ц涓紝涓嶈兘鍙栨秷");
+ }
locSts = wrkMast.getFullPlt().equalsIgnoreCase("N") ? "D" : "F";
// 搴撲綅杞Щ锛氱洰鏍囧簱浣�
LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
@@ -908,7 +950,7 @@
if (!Cools.isEmpty(orderNo)) {
Double anfme = Integer.parseInt(anfmes[i]) + 0.0;
i++;
- if (BaseController.isJSON(wrkDetl.getOrderNo())) {
+ if (!BaseController.isJSON(wrkDetl.getOrderNo())) {
if (!orderDetlService.decrease(orderNo, wrkDetl.getMatnr(), wrkDetl.getBatch(), anfme)) {
throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
}
@@ -924,7 +966,7 @@
}
}
}else {
- if (BaseController.isJSON(wrkDetl.getOrderNo())) {
+ if (!BaseController.isJSON(wrkDetl.getOrderNo())) {
if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
}
@@ -1058,9 +1100,9 @@
if (Cools.isEmpty(locNos)) {
return;
}
- if (true && !Cools.isEmpty(locNos)) {
- throw new CoolException("鏆備笉鏀寔绉诲簱浠诲姟"); // todo:luxiaotao 绉诲簱寮�鍏�
- }
+// if (true && !Cools.isEmpty(locNos)) {
+// throw new CoolException("鏆備笉鏀寔绉诲簱浠诲姟"); // todo:luxiaotao 绉诲簱寮�鍏�
+// }
LocMast one = locMastService.selectById(locNos.get(0));
List<Integer> rows = Utils.getGroupLoc(Integer.parseInt(locNos.get(0).substring(0, 2)));
List<LocMast> locMasts = locMastService.queryFreeLocMast(rows, rows.size(), one.getLocType1());
--
Gitblit v1.9.1