From 39ab206f4c9a1df57fb2ba8d94555fc5a4babcec Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期三, 23 三月 2022 09:39:59 +0800
Subject: [PATCH] #杰克缝纫机立库 【添加订单明细档模块】
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 69 ++++++++++++++++++++++++++++++++++
1 files changed, 69 insertions(+), 0 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 3d08f6b..6efa9eb 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -1,5 +1,6 @@
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;
@@ -12,6 +13,7 @@
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.entity.result.PakoutVo;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.VersionUtils;
import com.zy.common.model.*;
@@ -19,7 +21,9 @@
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;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -30,6 +34,7 @@
/**
* Created by vincent on 2020/6/11
*/
+@Slf4j
@Service
public class WorkServiceImpl implements WorkService {
@@ -76,6 +81,8 @@
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);
// 鐢熸垚宸ヤ綔鍙�
@@ -668,6 +675,18 @@
// 鍑哄簱 ===>> 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";
@@ -780,4 +799,54 @@
}
}
+ @Autowired
+ private JdbcTemplate jdbcTemplate;
+ private boolean pickSite = false;
+ private void stockOutRe(WrkMast wrkMast, List<WrkDetl> wrkDetls) {
+ for (WrkDetl wrkDetl : wrkDetls) {
+ List<LocDetl> locDetls = locDetlService.selectPakoutByRule(wrkDetl.getMatnr());
+ double issued = wrkDetl.getAnfme();
+ for (LocDetl locDetl : locDetls) {
+ if (issued > 0) {
+ // 鐢熸垚鍑哄簱宸ヤ綔妗�
+ // 鍏ㄦ澘
+ if (issued>=locDetl.getAnfme()) {
+ BasDevp staNo = basDevpService.checkSiteStatus(103);
+ List<LocDetlDto> detlDtos = new ArrayList<>();
+ LocDetlDto dto = new LocDetlDto();
+ dto.setLocDetl(locDetl);
+ dto.setCount(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued);
+ detlDtos.add(dto);
+ stockOut(staNo, detlDtos, 101, 9527L, null, true, null);
+ // 鎷f枡
+ } else {
+ int priorCount = jdbcTemplate.queryForObject("select isnull(count(*),0) from man_prior where 1=1 and matnr = '" + wrkDetl.getMatnr() + "'", Integer.class);
+ if (priorCount > 0) {
+ BasDevp staNo = basDevpService.checkSiteStatus(103);
+ List<LocDetlDto> detlDtos = new ArrayList<>();
+ LocDetlDto dto = new LocDetlDto();
+ dto.setLocDetl(locDetl);
+ dto.setCount(locDetl.getAnfme());
+ detlDtos.add(dto);
+ stockOut(staNo, detlDtos, 101, 9527L,null, true,locDetl.getAnfme()-issued);
+ } else {
+ BasDevp staNo = basDevpService.checkSiteStatus(pickSite?113:109);
+ List<LocDetlDto> detlDtos = new ArrayList<>();
+ LocDetlDto dto = new LocDetlDto();
+ dto.setLocDetl(locDetl);
+ dto.setCount(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued);
+ detlDtos.add(dto);
+ stockOut(staNo, detlDtos, 103, 9527L, null, true, null);
+ }
+
+ }
+
+ // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
+ issued = issued - locDetl.getAnfme();
+ }
+ }
+ }
+ pickSite = !pickSite;
+ }
+
}
--
Gitblit v1.9.1