From ecc60e6e9343eec70fc2f430b6f47193249029ff Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 25 十二月 2020 10:43:50 +0800
Subject: [PATCH] #堆垛机异常码 -- 代号可编辑 【删除crnerr表id的标识属性】
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 326 ++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 255 insertions(+), 71 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 b4b5928..0026fc6 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.BaseRes;
import com.core.common.Cools;
+import com.core.common.DateUtils;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.EmptyPlateOutParam;
@@ -11,15 +12,19 @@
import com.zy.asrs.entity.param.LocDetlAdjustParam;
import com.zy.asrs.entity.param.StockOutParam;
import com.zy.asrs.service.*;
+import com.zy.asrs.utils.VersionUtils;
import com.zy.common.model.LocDetlDto;
import com.zy.common.model.OutLocDto;
import com.zy.common.model.StartupDto;
+import com.zy.common.model.enums.WorkNoType;
import com.zy.common.service.CommonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
/**
* Created by vincent on 2020/6/11
@@ -29,6 +34,8 @@
// 宸ヤ綔鍙风敓鎴愯鍒欓粯璁ょ被鍨�
private static final int DEFAULT_WORK_NO_TYPE = 0;
+ // 搴撲綅鎺掑彿鍒嗛厤榛樿绫诲埆
+ private static final int DEFAULT_ROW_NO_TYPE = 1;
@Autowired
private WrkMastService wrkMastService;
@@ -44,6 +51,14 @@
private StaDescService staDescService;
@Autowired
private LocDetlService locDetlService;
+ @Autowired
+ private MatCodeService matCodeService;
+ @Autowired
+ private AdjDetlService adjDetlService;
+ @Autowired
+ private WrkMastLogService wrkMastLogService;
+ @Autowired
+ private WrkDetlLogService wrkDetlLogService;
@Override
@Transactional
@@ -53,11 +68,12 @@
throw new CoolException(BaseRes.PARAM);
}
// 婧愮珯鐐圭姸鎬佹娴�
- BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo());
- // 鐢熸垚宸ヤ綔鍙�
- int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
+ BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo(), true);
// 妫�绱㈠簱浣�
- StartupDto dto = commonService.getLocNo(1, 1, param.getDevpNo());
+ 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);
+ // 鐢熸垚宸ヤ綔鍙�
+ int workNo = dto.getWorkNo();
// 鐢熸垚宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
wrkMast.setWrkNo(workNo);
@@ -69,6 +85,7 @@
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"); // 閫�鍑�
@@ -89,7 +106,7 @@
param.getList().forEach(elem -> {
matDtos.add(new MatCodeCountDto(elem.getMatNo(), elem.getCount()));
});
- wrkDetlService.createWorkDetail(workNo, matDtos, userId);
+ wrkDetlService.createWorkDetail(workNo, matDtos, param.getBarcode(), userId);
// 鏇存柊婧愮珯鐐逛俊鎭�
sourceStaNo.setWrkNo(workNo);
sourceStaNo.setModiUser(userId);
@@ -99,8 +116,8 @@
}
// 鏇存柊鐩爣搴撲綅鐘舵��
LocMast locMast = locMastService.selectById(dto.getLocNo());
- if (locMast.getLocType().equals("O")){
- locMast.setLocType("S"); // S.鍏ュ簱棰勭害
+ if (locMast.getLocSts().equals("O")){
+ locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
locMast.setModiUser(userId);
locMast.setModiTime(new Date());
if (!locMastService.updateById(locMast)){
@@ -119,18 +136,18 @@
BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
// 鑾峰彇搴撲綅鏄庣粏
List<LocDetlDto> locDetlDtos = new ArrayList<>();
- for (StockOutParam.LocDetl locDetl : param.getLocDetls()) {
- if (!Cools.isEmpty(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getCount())) {
+ for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
+ if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
LocDetl sqlParam = new LocDetl();
- sqlParam.setLocNo(locDetl.getLocNo());
- sqlParam.setMatnr(locDetl.getMatnr());
+ sqlParam.setLocNo(paramLocDetl.getLocNo());
+ sqlParam.setMatnr(paramLocDetl.getMatnr());
LocDetl one = locDetlService.selectOne(new EntityWrapper<>(sqlParam));
- if (null != one) locDetlDtos.add(new LocDetlDto(one, locDetl.getCount()));
+ if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
}
}
if (!locDetlDtos.isEmpty()) {
- // 鍚姩鍑哄簱寮�濮�
- stockOut(staNo, locDetlDtos, userId);
+ // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱
+ stockOut(staNo, locDetlDtos, null, userId);
} else {
throw new CoolException("搴撲綅鐗╂枡涓嶅瓨鍦�");
}
@@ -138,9 +155,7 @@
@Override
@Transactional
- public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, Long userId) {
- // 鐢熸垚宸ヤ綔鍙�
- int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
+ public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, Integer ioType, Long userId) {
// 鍚堝苟鍚岀被椤�
Set<String> locNos = new HashSet<>();
locDetlDtos.forEach(dto -> locNos.add(dto.getLocDetl().getLocNo()));
@@ -159,23 +174,29 @@
}
// 鐢熸垚宸ヤ綔妗�
for (OutLocDto dto : dtos) {
+ // 鍒ゆ柇鍏ュ嚭搴撶被鍨嬶細101.鍏ㄦ澘鍑哄簱 or 103.鎷f枡鍑哄簱
+ if (ioType == null) {
+ ioType = dto.isAll() ? 101 : 103;
+ }
// 鑾峰彇搴撲綅
LocMast locMast = locMastService.selectById(dto.getLocNo());
// 鑾峰彇璺緞
Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
- .eq("type_no", 101)
+ .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 workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
// 鐢熸垚宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
wrkMast.setWrkNo(workNo);
wrkMast.setIoTime(new Date());
wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
- wrkMast.setIoType(101); // 鍏ュ嚭搴撶姸鎬侊細101.鍑哄簱
+ wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
wrkMast.setIoPri(13D); // 浼樺厛绾э細13
wrkMast.setCrnNo(locMast.getCrnNo());
wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
@@ -195,19 +216,14 @@
}
// 鐢熸垚宸ヤ綔妗f槑缁�
for (LocDetlDto detlDto : dto.getLocDetlDtos()) {
- if (detlDto.getCount() <= 0.0D) {continue;}
+ // 鍑哄簱鏃讹紝鏁伴噺涓�0鐨勭洿鎺ュ拷鐣�
+ if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;}
WrkDetl wrkDetl = new WrkDetl();
wrkDetl.setWrkNo(workNo);
wrkDetl.setIoTime(new Date());
- wrkDetl.setMatnr(detlDto.getLocDetl().getMatnr());
- wrkDetl.setAnfme(detlDto.getCount()); // 鏁伴噺
- wrkDetl.setZmatid(detlDto.getLocDetl().getZmatid());
- wrkDetl.setTbpos(detlDto.getLocDetl().getTbpos());
- wrkDetl.setTbnum(detlDto.getLocDetl().getTbnum());
- wrkDetl.setLgnum(detlDto.getLocDetl().getLgnum());
- wrkDetl.setAltme(detlDto.getLocDetl().getAltme());
- wrkDetl.setBname(detlDto.getLocDetl().getBname());
- wrkDetl.setMaktx(detlDto.getLocDetl().getMaktx());
+ Double anfme = ioType==101?detlDto.getLocDetl().getAnfme():detlDto.getCount();
+ wrkDetl.setAnfme(anfme); // 鏁伴噺
+ VersionUtils.setWrkDetl(wrkDetl, detlDto.getLocDetl()); // 鐗堟湰鎺у埗
wrkDetl.setAppeTime(new Date());
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(new Date());
@@ -216,10 +232,10 @@
throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
}
}
- // 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害
+ // 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
locMast = locMastService.selectById(dto.getLocNo());
- if (locMast.getLocType().equals("F")) {
- locMast.setLocType("R");
+ if (locMast.getLocSts().equals("F")) {
+ locMast.setLocSts(ioType==101?"R":"P");
locMast.setModiUser(userId);
locMast.setModiTime(new Date());
if (!locMastService.updateById(locMast)) {
@@ -235,23 +251,22 @@
@Transactional
public String emptyPlateIn(Integer devpNo, Long userId) {
// 婧愮珯鐐圭姸鎬佹娴�
- BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo);
- // 鐢熸垚宸ヤ綔鍙�
- int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
+ BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
// 妫�绱㈠簱浣�
- StartupDto dto = commonService.getLocNo(1, 10, devpNo);
+ StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null);
+ int workNo = dto.getWorkNo();
// 鐢熸垚宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
wrkMast.setWrkNo(workNo);
wrkMast.setIoTime(new Date());
wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
wrkMast.setIoType(10); // 鍏ュ嚭搴撶姸鎬侊細10.绌烘澘鍏ュ簱
- wrkMast.setIoPri(13D); // 浼樺厛绾э細10
+ wrkMast.setIoPri(10D); // 浼樺厛绾э細10
wrkMast.setCrnNo(dto.getCrnNo());
wrkMast.setSourceStaNo(dto.getSourceStaNo());
wrkMast.setStaNo(dto.getStaNo());
wrkMast.setLocNo(dto.getLocNo());
- wrkMast.setFullPlt("N"); // 婊℃澘锛歒
+ wrkMast.setFullPlt("N"); // 婊℃澘
wrkMast.setPicking("N"); // 鎷f枡
wrkMast.setExitMk("N"); // 閫�鍑�
wrkMast.setEmptyMk("Y"); // 绌烘澘
@@ -275,8 +290,8 @@
}
// 鏇存柊鐩爣搴撲綅鐘舵��
LocMast locMast = locMastService.selectById(dto.getLocNo());
- if (locMast.getLocType().equals("O")){
- locMast.setLocType("S"); // S.鍏ュ簱棰勭害
+ if (locMast.getLocSts().equals("O")){
+ locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
locMast.setModiUser(userId);
locMast.setModiTime(new Date());
if (!locMastService.updateById(locMast)){
@@ -296,7 +311,7 @@
}
for (String locNo : param.getLocNos()) {
// 鑾峰彇宸ヤ綔鍙�
- int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
+ int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type);
// 鑾峰彇搴撲綅
LocMast locMast = locMastService.selectById(locNo);
if (Cools.isEmpty(locMast)) {
@@ -337,8 +352,8 @@
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
// 鏇存柊搴撲綅鐘舵�� D.绌烘澘 -> R.鍑哄簱棰勭害
- if (locMast.getLocType().equals("D")){
- locMast.setLocType("R");
+ if (locMast.getLocSts().equals("D")){
+ locMast.setLocSts("R");
locMast.setModiUser(userId);
locMast.setModiTime(new Date());
if (!locMastService.updateById(locMast)) {
@@ -346,6 +361,30 @@
}
}
// todo 鏇存柊绔欑偣淇℃伅锛堝伐浣滃彿锛�
+ }
+ }
+
+ @Override
+ @Transactional
+ public void locCheckOut(StockOutParam param, Long userId) {
+ // 鐩爣绔欑偣鐘舵�佹娴�
+ BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
+ // 鑾峰彇搴撲綅鏄庣粏
+ List<LocDetlDto> locDetlDtos = new ArrayList<>();
+ for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
+ if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr())) {
+ LocDetl sqlParam = new LocDetl();
+ sqlParam.setLocNo(paramLocDetl.getLocNo());
+ sqlParam.setMatnr(paramLocDetl.getMatnr());
+ LocDetl one = locDetlService.selectOne(new EntityWrapper<>(sqlParam));
+ if (null != one) locDetlDtos.add(new LocDetlDto(one, one.getAnfme()));
+ }
+ }
+ if (!locDetlDtos.isEmpty()) {
+ // 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱
+ stockOut(staNo, locDetlDtos, 107, userId);
+ } else {
+ throw new CoolException("搴撲綅鐗╂枡涓嶅瓨鍦�");
}
}
@@ -364,13 +403,13 @@
throw new CoolException("绉昏浆搴撲綅灞炰簬涓嶅悓鍫嗗灈鏈�");
}
// 鑾峰彇宸ヤ綔鍙�
- int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
+ int workNo = commonService.getWorkNo(WorkNoType.PICK.type);
// 淇濆瓨宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
wrkMast.setWrkNo(workNo);
wrkMast.setIoTime(new Date());
wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
- wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱
+ wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
wrkMast.setIoPri(10D);
wrkMast.setCrnNo(sourceLoc.getCrnNo());
wrkMast.setSourceLocNo(sourceLocNo); // 婧愬簱浣�
@@ -378,7 +417,8 @@
wrkMast.setFullPlt("N"); // 婊℃澘锛歒
wrkMast.setPicking("N"); // 鎷f枡
wrkMast.setExitMk("N"); // 閫�鍑�
- wrkMast.setEmptyMk(sourceLoc.getLocType().equals("D")?"Y":"N"); // 绌烘澘
+ wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D")?"Y":"N"); // 绌烘澘
+ wrkMast.setBarcode(sourceLoc.getBarcode()); // 鎵樼洏鐮�
wrkMast.setLinkMis("N");
wrkMast.setAppeUser(userId);
wrkMast.setAppeTime(new Date());
@@ -394,15 +434,8 @@
WrkDetl wrkDetl = new WrkDetl();
wrkDetl.setWrkNo(workNo);
wrkDetl.setIoTime(new Date());
- wrkDetl.setMatnr(locDetl.getMatnr());
wrkDetl.setAnfme(locDetl.getAnfme());
- wrkDetl.setZmatid(locDetl.getZmatid());
- wrkDetl.setTbpos(locDetl.getTbpos());
- wrkDetl.setTbnum(locDetl.getTbnum());
- wrkDetl.setLgnum(locDetl.getLgnum());
- wrkDetl.setAltme(locDetl.getAltme());
- wrkDetl.setBname(locDetl.getBname());
- wrkDetl.setMaktx(locDetl.getMaktx());
+ VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
wrkDetl.setAppeTime(new Date());
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(new Date());
@@ -412,26 +445,26 @@
}
}
// 淇敼婧愬簱浣嶇姸鎬�
- if (sourceLoc.getLocType().equals("D") || sourceLoc.getLocType().equals("F")) {
- sourceLoc.setLocType("R"); // R.鍑哄簱棰勭害
+ if (sourceLoc.getLocSts().equals("D") || sourceLoc.getLocSts().equals("F")) {
+ sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害
sourceLoc.setModiUser(userId);
sourceLoc.setModiTime(new Date());
if (!locMastService.updateById(sourceLoc)){
throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
}
} else {
- throw new CoolException("棰勭害婧愬簱浣嶅嚭搴撳け璐ワ紝鐘舵�侊細"+sourceLoc.getLocType$());
+ throw new CoolException("婧愬簱浣嶅嚭搴撳け璐ワ紝鐘舵�侊細"+sourceLoc.getLocSts$());
}
// 淇敼鐩爣搴撲綅鐘舵��
- if (loc.getLocType().equals("O")) {
- loc.setLocType("S"); // S.鍏ュ簱棰勭害
+ if (loc.getLocSts().equals("O")) {
+ loc.setLocSts("S"); // S.鍏ュ簱棰勭害
loc.setModiTime(new Date());
loc.setModiUser(userId);
if (!locMastService.updateById(loc)) {
throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
}
} else {
- throw new CoolException("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細"+loc.getLocType$());
+ throw new CoolException("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細"+loc.getLocSts$());
}
}
@@ -452,16 +485,96 @@
} else if (wrkMast.getWrkSts() > 10) {
wrkMast.setWrkSts(14L);
}
- wrkMast.setModiTime(new Date());
+ Date now = new Date();
+ wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true));
+ wrkMast.setCrnEndTime(now);
+ wrkMast.setModiTime(now);
wrkMast.setModiUser(userId);
+ // 瀹屾垚鎿嶄綔浜哄憳璁板綍
+ wrkMast.setManuType("鎵嬪姩瀹屾垚");
if (!wrkMastService.updateById(wrkMast)) {
throw new CoolException("淇敼宸ヤ綔妗eけ璐�");
}
}
@Override
+ @Transactional
public void adjustLocDetl(LocDetlAdjustParam param, Long userId) {
-
+ LocMast locMast = locMastService.selectById(param.getLocNo());
+ if (Cools.isEmpty(locMast)) {
+ throw new CoolException("搴撲綅涓嶅瓨鍦�");
+ }
+ for (LocDetlAdjustParam.LocDetlAdjust adjust : param.getList()) {
+ if (Cools.isEmpty(adjust.getMatnr())) {
+ throw new CoolException(BaseRes.PARAM);
+ }
+ LocDetl sqlParam = new LocDetl();
+ sqlParam.setLocNo(locMast.getLocNo());
+ sqlParam.setMatnr(adjust.getMatnr());
+ LocDetl one = locDetlService.selectOne(new EntityWrapper<>(sqlParam));
+ // 淇濆瓨鏂板簱瀛樻槑缁�
+ if (Cools.isEmpty(one)) {
+ if (adjust.getCount() == 0){
+ continue;
+ }
+ MatCode matCode = matCodeService.selectById(adjust.getMatnr());
+ LocDetl locDetl = new LocDetl();
+ locDetl.setLocNo(locMast.getLocNo());
+ locDetl.setAnfme(adjust.getCount()); // 鏁伴噺
+ VersionUtils.setLocDetl(locDetl, matCode); // 鐗堟湰鎺у埗
+ locDetl.setModiUser(userId); // 鎿嶄綔浜哄憳淇℃伅
+ locDetl.setModiTime(new Date());
+ locDetl.setAppeUser(userId);
+ locDetl.setAppeTime(new Date());
+ if (!locDetlService.insert(locDetl)) {
+ throw new CoolException("淇濆瓨搴撳瓨鏄庣粏澶辫触");
+ }
+ // 淇濆瓨璋冩暣璁板綍
+ AdjDetl adjDetl = new AdjDetl();
+ adjDetl.setLocNo(locDetl.getLocNo());
+ adjDetl.setMatNo(locDetl.getMatnr());
+ adjDetl.setOriQty(0.0D);
+ adjDetl.setAdjQty(adjust.getCount());
+ adjDetlService.save(adjDetl, userId);
+ // 淇敼鍘熷簱瀛樻槑缁�
+ } else {
+ // 濡傛灉鏁伴噺淇敼锛屽垯鏇存柊搴撳瓨鏄庣粏
+ if (!adjust.getCount().equals(one.getAnfme())) {
+ // 褰撴暟閲忚淇敼涓� 0 鏃讹紝鐩存帴娓呴櫎搴撳瓨鏄庣粏
+ if (adjust.getCount() == 0) {
+ if (!locDetlService.delete(new EntityWrapper<>(one))) {
+ throw new CoolException("娓呴櫎搴撳瓨鏄庣粏澶辫触");
+ }
+ } else {
+ LocDetl sqlParam1 = new LocDetl();
+ sqlParam1.setAnfme(adjust.getCount());
+ sqlParam1.setModiTime(new Date());
+ sqlParam1.setModiUser(userId);
+ if (!locDetlService.update(sqlParam1, new EntityWrapper<LocDetl>()
+ .eq("loc_no", locMast.getLocNo())
+ .eq("matnr", adjust.getMatnr()))) {
+ throw new CoolException("淇敼搴撳瓨鏄庣粏澶辫触");
+ }
+ }
+ // 淇濆瓨璋冩暣璁板綍
+ AdjDetl adjDetl = new AdjDetl();
+ adjDetl.setLocNo(locMast.getLocNo());
+ adjDetl.setMatNo(adjust.getMatnr());
+ adjDetl.setOriQty(one.getAnfme());
+ adjDetl.setAdjQty(adjust.getCount());
+ adjDetlService.save(adjDetl, userId);
+ }
+ }
+ }
+ List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", param.getLocNo()));
+ if (locDetls.isEmpty()) {
+ locMast.setLocSts("D");
+ locMast.setModiUser(userId);
+ locMast.setModiTime(new Date());
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
+ }
+ }
}
@Override
@@ -472,11 +585,11 @@
throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
}
String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣�
- String locType = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
+ String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
// 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級
if (wrkMast.getWrkSts() < 4) {
locNo = wrkMast.getLocNo();
- locType = "O";
+ locSts = "O";
/**
* 搴撲綅杞Щ
* 鍙栨秷鍚� 婧愬簱浣� ==>> F.鍦ㄥ簱
@@ -488,7 +601,7 @@
if (Cools.isEmpty(locMast)) {
throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛屾簮搴撲綅涓嶅瓨鍦�:"+ wrkMast.getSourceLocNo());
}
- locMast.setLocType("F");
+ locMast.setLocSts("F");
locMast.setModiTime(new Date());
locMast.setModiUser(userId);
locMastService.updateById(locMast);
@@ -498,19 +611,19 @@
locNo = wrkMast.getSourceLocNo();
// 鍑哄簱 ===>> F.鍦ㄥ簱
if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
- locType = "F";
+ locSts = "F";
// 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
} else if (wrkMast.getIoType() == 110) {
- locType = "D";
+ locSts = "D";
// 搴撲綅杞Щ ===>> D.绌烘《/绌烘爤鏉�
} else if (wrkMast.getIoType() == 11) {
- locType = "F";
+ locSts = "F";
// 搴撲綅杞Щ锛氱洰鏍囧簱浣�
LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
if (Cools.isEmpty(locMast)) {
throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛岀洰鏍囧簱浣嶄笉瀛樺湪:"+ wrkMast.getSourceLocNo());
}
- locMast.setLocType("O");
+ locMast.setLocSts("O");
locMast.setModiTime(new Date());
locMast.setModiUser(userId);
locMastService.updateById(locMast);
@@ -518,8 +631,23 @@
} else {
throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
}
- // 鍒犻櫎宸ヤ綔妗�
+ // 鍙栨秷鎿嶄綔浜哄憳璁板綍
+ wrkMast.setManuType("鎵嬪姩鍙栨秷");
+ wrkMast.setModiUser(userId);
+ wrkMast.setModiTime(new Date());
+ if (!wrkMastService.updateById(wrkMast)) {
+ throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐�");
+ }
+ // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+ if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
+ throw new CoolException("淇濆瓨宸ヤ綔鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo());
+ }
+ // 鍒犻櫎宸ヤ綔涓绘。
boolean wrkMastRes = wrkMastService.deleteById(wrkMast);
+ // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+ if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo());
+ }
// 鍒犻櫎宸ヤ綔妗f槑缁�
boolean wrkDetlRes = wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", workNo));
// 淇敼搴撲綅鐘舵��
@@ -527,7 +655,7 @@
if (Cools.isEmpty(locMast)) {
throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐ワ紝搴撲綅涓嶅瓨鍦�:"+ locNo);
}
- locMast.setLocType(locType);
+ locMast.setLocSts(locSts);
locMast.setModiTime(new Date());
locMast.setModiUser(userId);
boolean locMastRes = locMastService.updateById(locMast);
@@ -536,4 +664,60 @@
}
}
+ @Override
+ @Transactional
+ public void pickWrkMast(String workNo, Long userId) {
+ WrkMast wrkMast = wrkMastService.selectById(workNo);
+ if (Cools.isEmpty(wrkMast)){
+ throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
+ }
+ // 鍏ュ嚭搴撶被鍨嬪垽鏂�
+ if (wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) {
+ throw new CoolException("褰撳墠鍏ュ嚭搴撶被鍨嬫棤娉曡繘琛屾搷浣�");
+ }
+ // 宸ヤ綔鐘舵�佸垽鏂�
+ if (wrkMast.getWrkSts() < 11 || wrkMast.getWrkSts() == 15) {
+ throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曡繘琛屾搷浣�");
+ }
+ // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+ if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
+ }
+ // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+ if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
+ throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+ }
+ // 鑾峰彇鐩爣绔�
+ Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+ .eq("type_no", wrkMast.getIoType() - 50)
+ .eq("stn_no", wrkMast.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
+ .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
+ StaDesc staDesc = staDescService.selectOne(wrapper);
+ if (Cools.isEmpty(staDesc)) {
+ throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
+ }
+ // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
+ Integer staNo = staDesc.getCrnStn();
+ // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
+ wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
+ wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
+ wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
+ wrkMast.setStaNo(staNo); // 鐩爣绔�
+ wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
+ wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
+ wrkMast.setModiTime(new Date());
+ wrkMast.setModiUser(userId);
+ if (!wrkMastService.updateById(wrkMast)) {
+ throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+ }
+ // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
+ LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+ locMast.setLocSts("Q");
+ locMast.setModiTime(new Date());
+ locMast.setModiUser(userId);
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+ }
+ }
+
}
--
Gitblit v1.9.1