From 7885c3123faf5b12c9ca73673e850f09a7354e95 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期三, 30 十月 2024 13:22:36 +0800
Subject: [PATCH] 出库站点修改
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 137 ++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 132 insertions(+), 5 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 228bb31..2ad9850 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -43,6 +43,19 @@
// 搴撲綅鎺掑彿鍒嗛厤榛樿绫诲埆
private static final int DEFAULT_ROW_NO_TYPE = 1;
+ // 鍫嗗灈鏈烘槧灏勪竴妤肩殑鍏ュ簱鍑哄簱绔欑偣
+ private static final Map<Integer,List<Integer>> crnMapNo;
+
+ static {
+ crnMapNo = new HashMap<>();
+ crnMapNo.put(1,new ArrayList<Integer>(){{add(3001);add(3002);}});
+ crnMapNo.put(2,new ArrayList<Integer>(){{add(3004);add(3003);}});
+ crnMapNo.put(3,new ArrayList<Integer>(){{add(3005);add(3006);}});
+ crnMapNo.put(4,new ArrayList<Integer>(){{add(3007);add(3008);}});
+ crnMapNo.put(5,new ArrayList<Integer>(){{add(3010);add(3009);}});
+ crnMapNo.put(6,new ArrayList<Integer>(){{add(3011);add(3012);}});
+ }
+
@Autowired
private MatService matService;
@Autowired
@@ -727,10 +740,9 @@
// 鑾峰彇搴撲綅鏄庣粏
List<LocDetlDto> locDetlDtos = new ArrayList<>();
for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
- if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
- LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch());
- if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount(),param.getOrderNo()));
- }
+ LocDetl one = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no",paramLocDetl.getLocNo())
+ .eq("brand",paramLocDetl.getBrand()).eq("model",paramLocDetl.getModel()));
+ if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount(), param.getOrderNo()));
}
if (!locDetlDtos.isEmpty()) {
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
@@ -794,6 +806,89 @@
for (LocDetl locDetl : locDetls) {
WrkDetl wrkDetl = new WrkDetl();
wrkDetl.sync(locDetl);
+ wrkDetl.setWrkNo(workNo);
+ wrkDetl.setIoTime(now);
+ wrkDetl.setAnfme(locDetl.getAnfme());
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setAppeUser(userId);
+ wrkDetl.setModiTime(now);
+ wrkDetl.setModiUser(userId);
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+ }
+ }
+ // 淇敼婧愬簱浣嶇姸鎬�
+ if (sourceLoc.getLocSts().equals("D") || sourceLoc.getLocSts().equals("F")) {
+ sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害
+ sourceLoc.setModiUser(userId);
+ sourceLoc.setModiTime(now);
+ if (!locMastService.updateById(sourceLoc)){
+ throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
+ }
+ } else {
+ throw new CoolException("婧愬簱浣嶅嚭搴撳け璐ワ紝鐘舵�侊細"+sourceLoc.getLocSts$());
+ }
+ // 淇敼鐩爣搴撲綅鐘舵��
+ if (loc.getLocSts().equals("O")) {
+ loc.setLocSts("S"); // S.鍏ュ簱棰勭害
+ loc.setModiTime(now);
+ loc.setModiUser(userId);
+ if (!locMastService.updateById(loc)) {
+ throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
+ }
+ } else {
+ throw new CoolException("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細"+loc.getLocSts$());
+ }
+ }
+
+ @Override
+ @Transactional
+ public void autoLocMove(String orderNo,String sourceLocNo, String locNo, Long userId) {
+ LocMast sourceLoc = locMastService.selectById(sourceLocNo);
+ List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", sourceLocNo));
+ if (Cools.isEmpty(sourceLoc)){
+ throw new CoolException("鏈壘鍒板簱浣�");
+ }
+ LocMast loc = locMastService.selectById(locNo);
+ if (Cools.isEmpty(loc)){
+ throw new CoolException("鏈壘鍒板簱浣�");
+ }
+
+ Date now = new Date();
+ // 鑾峰彇宸ヤ綔鍙�
+ int workNo = commonService.getWorkNo(WorkNoType.PICK.type);
+ // 淇濆瓨宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(now);
+ wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+ wrkMast.setIoType(12); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
+ wrkMast.setIoPri(10D);
+ wrkMast.setCrnNo(sourceLoc.getCrnNo());
+ wrkMast.setSourceLocNo(sourceLocNo); // 婧愬簱浣�
+ wrkMast.setLocNo(locNo); // 鐩爣搴撲綅
+ wrkMast.setSourceStaNo(crnMapNo.get(sourceLoc.getCrnNo()).get(1)); // 鍑哄簱婧愮珯鐐�
+ wrkMast.setStaNo(crnMapNo.get(loc.getCrnNo()).get(0)); // 鍏ュ簱鐩爣绔欑偣
+ wrkMast.setFullPlt(Cools.isEmpty(locDetls)?"N":"Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D")?"Y":"N"); // 绌烘澘
+ wrkMast.setBarcode(sourceLoc.getBarcode()); // 鎵樼洏鐮�
+ wrkMast.setLinkMis("N");
+ wrkMast.setAppeUser(userId);
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiUser(userId);
+ wrkMast.setModiTime(now);
+ boolean res = wrkMastService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ // 宸ヤ綔妗f槑缁嗕繚瀛�
+ for (LocDetl locDetl : locDetls) {
+ WrkDetl wrkDetl = new WrkDetl();
+
+ wrkDetl.sync(locDetl);
+ wrkDetl.setOrderNo(orderNo);
wrkDetl.setWrkNo(workNo);
wrkDetl.setIoTime(now);
wrkDetl.setAnfme(locDetl.getAnfme());
@@ -1019,7 +1114,7 @@
} else if (wrkMast.getIoType() == 110) {
locSts = "D";
// 搴撲綅杞Щ ===>> D.绌烘《/绌烘爤鏉�
- } else if (wrkMast.getIoType() == 11) {
+ } else if (wrkMast.getIoType() == 11 || wrkMast.getIoType() == 12) {
locSts = wrkMast.getFullPlt().equalsIgnoreCase("N")?"D":"F";
// 搴撲綅杞Щ锛氱洰鏍囧簱浣�
LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
@@ -1052,6 +1147,38 @@
}
}
+ // 鍙栨秷璺ㄥ贩閬撶Щ搴撲换鍔℃椂锛屽洖婊氬湪鎵ц鐨勪换鍔�
+ if (wrkMast.getIoType() == 12) {
+ List<Order> orderList = orderMapper.selectList(new EntityWrapper<Order>().eq("doc_type", 24).lt("settle", 3));
+ if (orderList.size() == 1) {
+ Order order = orderList.get(0);
+ // 鍥炴粴鍗曟嵁鏄庣粏鐨勭Щ搴撶姸鎬�
+ List<OrderDetl> orderDetlList1 = orderDetlMapper.selectList(new EntityWrapper<OrderDetl>().eq("order_no", order.getOrderNo()).eq("specs", wrkMast.getSourceLocNo()));
+ for (OrderDetl orderDetl:orderDetlList1) {
+ if (orderDetl.getBeBatch() != null) {
+ orderDetl.setModel("");
+ }
+ orderDetl.setUpdateTime(now);
+ orderDetl.setDanger(0);
+ orderDetlMapper.updateById(orderDetl);
+ }
+ // 鍥炴粴鍗曟嵁鐘舵�侊紝鏈夊ぇ浜�0鐨勮鍗曟槑缁嗗垯鏄綔涓氫腑锛屾病鏈夊垯鏇存柊涓哄緟澶勭悊
+ Integer count = orderDetlMapper.selectCount(new EntityWrapper<OrderDetl>().eq("order_no", order.getOrderNo()).gt("danger", 0));
+ if (count == 0) {
+ order.setSettle(1L);
+ orderMapper.updateById(order);
+ }
+ } else {
+ log.error("鍥炴粴绉诲簱鍗曟嵁寮傚父锛屾棤婧愬簱浣嶆暟鎹細{}",wrkMast.getSourceLocNo());
+ }
+ }
+
+// // 鍙栨秷绌洪棽鐞嗚揣浠诲姟鏃讹紝鍥炴粴鎴愭湭鐞嗚揣
+// if (wrkMast.getIoType() == 109) {
+// // 鏇存柊搴撳瓨鏄庣粏涓虹悊璐т腑
+// locDetlMapper.updateLhStsByLocNo(wrkMast.getSourceLocNo(),0);
+// }
+
//鍙栨秷鍑哄簱宸ヤ綔妗f椂锛屾煡璇㈠崟鎹鐞嗚〃锛屽洖婊氫綔涓氫腑鏁伴噺
if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107) {
List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
--
Gitblit v1.9.1