From 0474a145d356ad5f539b05ddc74129b73fe60b41 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期三, 30 三月 2022 11:11:12 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 129 +++++++++++++------------------------------
1 files changed, 39 insertions(+), 90 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 55b15fd..d9b42a0 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -1,6 +1,5 @@
package com.zy.asrs.service.impl;
-import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.BaseRes;
@@ -18,8 +17,6 @@
import com.zy.common.model.*;
import com.zy.common.model.enums.WorkNoType;
import com.zy.common.service.CommonService;
-import com.zy.common.service.wms.Result;
-import com.zy.common.service.wms.WmsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
@@ -45,11 +42,11 @@
@Autowired
private WrkMastService wrkMastService;
@Autowired
+ private WrkDetlService wrkDetlService;
+ @Autowired
private BasDevpService basDevpService;
@Autowired
private CommonService commonService;
- @Autowired
- private WrkDetlService wrkDetlService;
@Autowired
private LocMastService locMastService;
@Autowired
@@ -65,9 +62,11 @@
@Autowired
private WrkDetlLogService wrkDetlLogService;
@Autowired
- private WmsService wmsService;
- @Autowired
private SnowflakeIdWorker snowflakeIdWorker;
+ @Autowired
+ private OrderService orderService;
+ @Autowired
+ private OrderDetlService orderDetlService;
@Override
@Transactional
@@ -76,12 +75,11 @@
if (Cools.isEmpty(param.getDevpNo(), param.getList())) {
throw new CoolException(BaseRes.PARAM);
}
+ Date now = new Date();
// 婧愮珯鐐圭姸鎬佹娴�
BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo(), true);
// 妫�绱㈠簱浣�
LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
- log.info(JSON.toJSONString(locTypeDto));
- log.info("{}鍏ュ簱鍙e昂瀵告娴嬶細{}", param.getDevpNo(), locTypeDto.getLocType1()==1?"浣庤鏍煎簱浣�":"楂樿鏍煎簱浣�");
List<String> matNos = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatNo).distinct().collect(Collectors.toList());
StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matNos, locTypeDto, 0);
// 鐢熸垚宸ヤ綔鍙�
@@ -92,7 +90,7 @@
wrkMast.setIoTime(new Date());
wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
- wrkMast.setIoPri(13D); // 浼樺厛绾э細10
+ wrkMast.setIoPri(13D); // 浼樺厛绾э細13
wrkMast.setCrnNo(dto.getCrnNo());
wrkMast.setSourceStaNo(dto.getSourceStaNo());
wrkMast.setStaNo(dto.getStaNo());
@@ -104,25 +102,23 @@
wrkMast.setEmptyMk("N"); // 绌烘澘
wrkMast.setLinkMis("N");
wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
- // 鎿嶄綔浜哄憳鏁版嵁
wrkMast.setAppeUser(userId);
- wrkMast.setAppeTime(new Date());
+ wrkMast.setAppeTime(now);
wrkMast.setModiUser(userId);
- wrkMast.setModiTime(new Date());
- boolean res = wrkMastService.insert(wrkMast);
- if (!res) {
+ wrkMast.setModiTime(now);
+ if (!wrkMastService.insert(wrkMast)) {
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
// 鐢熸垚宸ヤ綔妗f槑缁�
List<DetlDto> detlDtos = new ArrayList<>();
param.getList().forEach(elem -> {
- detlDtos.add(new DetlDto(elem.getMatNo(), elem.getCount()));
+ detlDtos.add(new DetlDto(elem.getMatNo(), elem.getBatch(), elem.getAnfme()));
});
wrkDetlService.createWorkDetail(workNo, detlDtos, param.getBarcode(), userId);
// 鏇存柊婧愮珯鐐逛俊鎭�
sourceStaNo.setWrkNo(workNo);
sourceStaNo.setModiUser(userId);
- sourceStaNo.setModiTime(new Date());
+ sourceStaNo.setModiTime(now);
if (!basDevpService.updateById(sourceStaNo)){
throw new CoolException("鏇存柊婧愮珯澶辫触");
}
@@ -131,7 +127,7 @@
if (locMast.getLocSts().equals("O")){
locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
locMast.setModiUser(userId);
- locMast.setModiTime(new Date());
+ locMast.setModiTime(now);
if (!locMastService.updateById(locMast)){
throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
}
@@ -273,14 +269,8 @@
// 鑾峰彇搴撲綅
LocMast locMast = locMastService.selectById(taskDto.getLocNo());
// 鑾峰彇璺緞
- Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
- .eq("type_no", ioType)
- .eq("stn_no", staNo.getDevNo())
- .eq("crn_no", locMast.getCrnNo());
- StaDesc staDesc = staDescService.selectOne(wrapper);
- if (Cools.isEmpty(staDesc)) {
- throw new CoolException("鍑哄簱璺緞涓嶅瓨鍦�");
- }
+ int ioType = taskDto.isAll() ? 101 : 103;
+ StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), staNo.getDevNo());
// 鐢熸垚宸ヤ綔鍙�
int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
// 鐢熸垚宸ヤ綔妗�
@@ -308,14 +298,15 @@
}
// 鐢熸垚宸ヤ綔妗f槑缁�
for (LocDto locDto : taskDto.getLocDtos()) {
- // 鍑哄簱鏃讹紝鏁伴噺涓�0鐨勭洿鎺ュ拷鐣�
- if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;}
+ if (locDto.getAnfme()==null || locDto.getAnfme() <= 0.0D) { continue; }
+ OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.setIoTime(now);
wrkDetl.setWrkNo(workNo);
- wrkDetl.setIoTime(new Date());
- Double anfme = ioType==101?detlDto.getLocDetl().getAnfme():detlDto.getCount();
- wrkDetl.setAnfme(anfme); // 鏁伴噺
- VersionUtils.setWrkDetl(wrkDetl, detlDto.getLocDetl()); // 鐗堟湰鎺у埗
+ wrkDetl.setBatch(locDto.getBatch());
+ wrkDetl.setOrderNo(locDto.getOrderNo());
+ wrkDetl.setAnfme(locDto.getAnfme()); // 鏁伴噺
+ VersionUtils.setWrkDetl(wrkDetl, orderDetl); // 鐗堟湰鎺у埗
wrkDetl.setAppeTime(now);
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(now);
@@ -323,6 +314,11 @@
if (!wrkDetlService.insert(wrkDetl)) {
throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
}
+ // 淇敼璁㈠崟鏄庣粏
+ if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) {
+ throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
+ }
+ orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
}
// 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
locMast = locMastService.selectById(taskDto.getLocNo());
@@ -452,7 +448,6 @@
throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
}
}
- // todo 鏇存柊绔欑偣淇℃伅锛堝伐浣滃彿锛�
}
}
@@ -628,36 +623,12 @@
adjDetl.setOriQty(0.0D);
adjDetl.setAdjQty(adjust.getCount());
adjDetlService.save(adjDetl, userId);
- // 涓婃姤erp
- String docNum = "CS-" + String.valueOf(snowflakeIdWorker.nextId()).substring(0, 15);
- Integer docId = 14; // 鎶ユ孩鍗�
- List<BillDto> dtos = new ArrayList<>();
- BillDto billDto = new BillDto();
- billDto.setMatnr(adjust.getMatnr());
- billDto.setQty(Math.abs(adjust.getCount()));
- dtos.add(billDto);
- Result result = wmsService.erpUpload(dtos, docId, docNum);
- if (result.getCode() != 200) {
- throw new CoolException("搴撳瓨璋冩暣澶辫触锛屽師鍥狅細鏃犳硶涓婃姤鑷矱RP");
- }
// 淇敼鍘熷簱瀛樻槑缁�
} else {
// 濡傛灉鏁伴噺淇敼锛屽垯鏇存柊搴撳瓨鏄庣粏
if (!adjust.getCount().equals(one.getAnfme())) {
// 褰撴暟閲忚淇敼涓� 0 鏃讹紝鐩存帴娓呴櫎搴撳瓨鏄庣粏
if (adjust.getCount() == 0) {
- // 涓婃姤erp
- String docNum = "CD-" + String.valueOf(snowflakeIdWorker.nextId()).substring(0, 15);
- Integer docId = 9; // 鎶ユ崯鍗�
- List<BillDto> dtos = new ArrayList<>();
- BillDto billDto = new BillDto();
- billDto.setMatnr(adjust.getMatnr());
- billDto.setQty(Math.abs(one.getAnfme()));
- dtos.add(billDto);
- Result result = wmsService.erpUpload(dtos, docId, docNum);
- if (result.getCode() != 200) {
- throw new CoolException("搴撳瓨璋冩暣澶辫触锛屽師鍥狅細鏃犳硶涓婃姤鑷矱RP");
- }
// 鍒犻櫎搴撳瓨
if (!locDetlService.delete(new EntityWrapper<>(one))) {
throw new CoolException("娓呴櫎搴撳瓨鏄庣粏澶辫触");
@@ -671,27 +642,6 @@
.eq("loc_no", locMast.getLocNo())
.eq("matnr", adjust.getMatnr()))) {
throw new CoolException("淇敼搴撳瓨鏄庣粏澶辫触");
- }
- // 涓婃姤erp
- String docNum;
- Integer docId;
- if (one.getAnfme() > adjust.getCount()) {
- // 鎶ユ崯
- docNum = "CD-" + String.valueOf(snowflakeIdWorker.nextId()).substring(0, 15);
- docId = 9;
- } else {
- // 鎶ユ孩
- docNum = "CS-" + String.valueOf(snowflakeIdWorker.nextId()).substring(0, 15);
- docId = 14;
- }
- List<BillDto> dtos = new ArrayList<>();
- BillDto billDto = new BillDto();
- billDto.setMatnr(adjust.getMatnr());
- billDto.setQty(Math.abs(one.getAnfme() - adjust.getCount()));
- dtos.add(billDto);
- Result result = wmsService.erpUpload(dtos, docId, docNum);
- if (result.getCode() != 200) {
- throw new CoolException("搴撳瓨璋冩暣澶辫触锛屽師鍥狅細鏃犳硶涓婃姤鑷矱RP");
}
}
// 淇濆瓨璋冩暣璁板綍
@@ -750,18 +700,6 @@
// 鍑哄簱 ===>> F.鍦ㄥ簱
if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
locSts = "F";
- // 閿�鍞崟鍏宠仈锛屽垯鐢熸垚鏂扮殑鍑哄簱浠诲姟
- if (wrkMast.getPdcType().equals("Y")) {
- List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", workNo));
- for (WrkDetl wrkDetl : wrkDetls) {
- Double sumAnfme = Optional.ofNullable(locDetlService.getSumAnfme(wrkDetl.getMatnr())).orElse(0.0D);
- if (sumAnfme < wrkDetl.getAnfme()) {
- throw new CoolException("鍙栨秷澶辫触锛佸簱瀛樹笉瓒充互閲嶆柊鐢熸垚鍑哄簱浣滀笟");
- }
- }
- // 鐢熸垚鏂扮殑鍑哄簱浣滀笟
- stockOutRe(wrkMast, wrkDetls);
- }
// 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
} else if (wrkMast.getIoType() == 110) {
locSts = "D";
@@ -781,6 +719,17 @@
} else {
throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
}
+ // 璁㈠崟鍏宠仈
+ List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+ for (WrkDetl wrkDetl : wrkDetls) {
+ if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
+ if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
+ throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
+ }
+ // 鐢熸垚鏂扮殑鍑哄簱浣滀笟
+// stockOutRe(wrkMast, wrkDetls);
+ }
+ }
// 鍙栨秷鎿嶄綔浜哄憳璁板綍
wrkMast.setManuType("鎵嬪姩鍙栨秷");
wrkMast.setModiUser(userId);
--
Gitblit v1.9.1