From 9c7317df953564ff971d15debf4ba6454f8dfd3a Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 23 六月 2020 09:43:24 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 177 +++++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 148 insertions(+), 29 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 d5ecc9e..c507ec8 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -8,8 +8,10 @@
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.EmptyPlateOutParam;
import com.zy.asrs.entity.param.FullStoreParam;
+import com.zy.asrs.entity.param.LocDetlAdjustParam;
import com.zy.asrs.entity.param.StockOutParam;
import com.zy.asrs.service.*;
+import com.zy.common.model.LocDetlDto;
import com.zy.common.model.OutLocDto;
import com.zy.common.model.StartupDto;
import com.zy.common.service.CommonService;
@@ -42,6 +44,10 @@
private StaDescService staDescService;
@Autowired
private LocDetlService locDetlService;
+ @Autowired
+ private MatCodeService matCodeService;
+ @Autowired
+ private AdjDetlService adjDetlService;
@Override
@Transactional
@@ -116,19 +122,19 @@
// 鐩爣绔欑偣鐘舵�佹娴�
BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
// 鑾峰彇搴撲綅鏄庣粏
- List<LocDetl> locDetls = new ArrayList<>();
+ List<LocDetlDto> locDetlDtos = new ArrayList<>();
for (StockOutParam.LocDetl locDetl : param.getLocDetls()) {
- if (!Cools.isEmpty(locDetl.getLocNo(), locDetl.getMatnr())) {
+ if (!Cools.isEmpty(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getCount())) {
LocDetl sqlParam = new LocDetl();
sqlParam.setLocNo(locDetl.getLocNo());
sqlParam.setMatnr(locDetl.getMatnr());
LocDetl one = locDetlService.selectOne(new EntityWrapper<>(sqlParam));
- if (null != one) locDetls.add(one);
+ if (null != one) locDetlDtos.add(new LocDetlDto(one, locDetl.getCount()));
}
}
- if (!locDetls.isEmpty()) {
- // 鍚姩鍑哄簱寮�濮�
- stockOut(staNo, locDetls, userId);
+ if (!locDetlDtos.isEmpty()) {
+ // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱
+ stockOut(staNo, locDetlDtos, 101, userId);
} else {
throw new CoolException("搴撲綅鐗╂枡涓嶅瓨鍦�");
}
@@ -136,20 +142,18 @@
@Override
@Transactional
- public void stockOut(BasDevp staNo, List<LocDetl> locDetls, 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<>();
- locDetls.forEach(locDetl -> locNos.add(locDetl.getLocNo()));
+ locDetlDtos.forEach(dto -> locNos.add(dto.getLocDetl().getLocNo()));
List<OutLocDto> dtos = new ArrayList<>();
for (String locNo : locNos) {
- List<LocDetl> list = new ArrayList<>();
- Iterator<LocDetl> iterator = locDetls.iterator();
+ List<LocDetlDto> list = new ArrayList<>();
+ Iterator<LocDetlDto> iterator = locDetlDtos.iterator();
while (iterator.hasNext()) {
- LocDetl locDetl = iterator.next();
- if (locNo.equals(locDetl.getLocNo())) {
- list.add(locDetl);
+ LocDetlDto dto = iterator.next();
+ if (locNo.equals(dto.getLocDetl().getLocNo())) {
+ list.add(dto);
iterator.remove();
}
}
@@ -161,19 +165,21 @@
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(DEFAULT_WORK_NO_TYPE);
// 鐢熸垚宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
wrkMast.setWrkNo(workNo);
wrkMast.setIoTime(new Date());
wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
- wrkMast.setIoType(101); // 鍏ュ嚭搴撶姸鎬侊細101.鍑哄簱
+ wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬侊細101.鍑哄簱
wrkMast.setIoPri(13D); // 浼樺厛绾э細13
wrkMast.setCrnNo(locMast.getCrnNo());
wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
@@ -192,19 +198,21 @@
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細"+dto.getLocNo());
}
// 鐢熸垚宸ヤ綔妗f槑缁�
- for (LocDetl locDetl : dto.getLocDetls()) {
+ for (LocDetlDto detlDto : dto.getLocDetlDtos()) {
+ if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;}
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());
+ wrkDetl.setMatnr(detlDto.getLocDetl().getMatnr());
+ Double anfme = ioType==101?detlDto.getCount():detlDto.getLocDetl().getAnfme();
+ wrkDetl.setAnfme(anfme); // 鏁伴噺
+ 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());
wrkDetl.setAppeTime(new Date());
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(new Date());
@@ -348,6 +356,30 @@
@Override
@Transactional
+ public void locCheckOut(StockOutParam param, Long userId) {
+ // 鐩爣绔欑偣鐘舵�佹娴�
+ 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 sqlParam = new LocDetl();
+ sqlParam.setLocNo(locDetl.getLocNo());
+ sqlParam.setMatnr(locDetl.getMatnr());
+ LocDetl one = locDetlService.selectOne(new EntityWrapper<>(sqlParam));
+ if (null != one) locDetlDtos.add(new LocDetlDto(one, locDetl.getCount()));
+ }
+ }
+ if (!locDetlDtos.isEmpty()) {
+ // 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱
+ stockOut(staNo, locDetlDtos, 107, userId);
+ } else {
+ throw new CoolException("搴撲綅鐗╂枡涓嶅瓨鍦�");
+ }
+ }
+
+ @Override
+ @Transactional
public void locMove(String sourceLocNo, String locNo, Long userId) {
LocMast sourceLoc = locMastService.selectById(sourceLocNo);
if (Cools.isEmpty(sourceLoc)){
@@ -393,6 +425,13 @@
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());
wrkDetl.setAppeTime(new Date());
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(new Date());
@@ -410,7 +449,7 @@
throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
}
} else {
- throw new CoolException("棰勭害婧愬簱浣嶅嚭搴撳け璐ワ紝鐘舵�侊細"+sourceLoc.getLocType$());
+ throw new CoolException("婧愬簱浣嶅嚭搴撳け璐ワ紝鐘舵�侊細"+sourceLoc.getLocType$());
}
// 淇敼鐩爣搴撲綅鐘舵��
if (loc.getLocType().equals("O")) {
@@ -421,7 +460,7 @@
throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
}
} else {
- throw new CoolException("棰勭害鐩爣搴撲綅鍏ュ簱澶辫触锛岀姸鎬侊細"+loc.getLocType$());
+ throw new CoolException("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細"+loc.getLocType$());
}
}
@@ -451,6 +490,86 @@
@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.setMatnr(matCode.getMatNo());
+ locDetl.setMaktx(matCode.getMatName()); // 鐗╂枡鎻忚堪
+ locDetl.setAnfme(adjust.getCount()); // 鏁伴噺
+ locDetl.setAltme(matCode.getStr1()); // 鍗曚綅
+ // todo:luxiaoao
+ locDetl.setLgnum("寰呭畾"); // 浠撳簱鍙�
+ locDetl.setTbnum(0); // 杞偍璇锋眰缂栧彿
+ locDetl.setTbpos(0); // 琛岄」鐩�
+ locDetl.setZmatid("寰呭畾"); // 鐗╂枡鏍囩ID
+ locDetl.setZpallet("寰呭畾"); // 鎵樼洏鏉$爜
+
+ 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);
+ }
+ }
+ }
+ }
+
+ @Override
+ @Transactional
public void cancelWrkMast(String workNo, Long userId) {
WrkMast wrkMast = wrkMastService.selectById(workNo);
if (Cools.isEmpty(wrkMast)){
--
Gitblit v1.9.1