From 7a868ca70a8f8cc796664ce1e08e8f4cae322fc8 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <xltys1995>
Date: 星期六, 10 四月 2021 00:09:09 +0800
Subject: [PATCH] #
---
src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java | 120 ++++++++++++++++++++++++++++--------------------------------
1 files changed, 56 insertions(+), 64 deletions(-)
diff --git a/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java b/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java
index 1beff42..df67520 100644
--- a/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java
+++ b/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java
@@ -1,18 +1,18 @@
package zy.cloud.wms.manager.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.core.common.*;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.common.R;
+import com.core.common.SnowflakeIdWorker;
import com.core.exception.CoolException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import zy.cloud.wms.common.config.CodeCoolException;
import zy.cloud.wms.common.model.BillDto;
import zy.cloud.wms.common.model.MatnrDto;
import zy.cloud.wms.common.model.OrderStoDto;
import zy.cloud.wms.common.service.MainService;
-import zy.cloud.wms.common.service.asrs.AsrsService;
-import zy.cloud.wms.common.service.asrs.entity.Result1;
import zy.cloud.wms.common.service.erp.ErpService;
import zy.cloud.wms.common.utils.VersionUtils;
import zy.cloud.wms.manager.entity.*;
@@ -44,8 +44,6 @@
private SnowflakeIdWorker snowflakeIdWorker;
@Autowired
private MatService matService;
- @Autowired
- private AsrsService asrsService;
@Autowired
private ErpService erpService;
@Autowired
@@ -254,9 +252,59 @@
List<Pakout> pakouts = pakoutService.selectList(new EntityWrapper<Pakout>()
.eq("doc_num", param.getNumber())
.in("wrk_sts", 1, 2));
- // 淇敼搴撳瓨鏁伴噺
for (Pakout pakout : pakouts) {
LocDetl locDetl = locDetlService.getLocDetl(pakout.getNodeId(), pakout.getMatnr());
+ // 缂鸿揣 or 绔嬪簱
+ if (locDetl == null) {
+ // 缂鸿揣
+ if (pakout.getLocNo().equals("缂鸿揣")) {
+ Double count = Optional.ofNullable(locDetlService.selectCountByMatnr(pakout.getMatnr())).orElse(0.0D);
+ if (count < pakout.getAnfme()) {
+ throw new CoolException(pakout.getMaktx()+"缂鸿揣");
+ }
+ Date now = new Date();
+ // 鏌ユ壘鎺ㄨ崘璐т綅鏄惁搴撳瓨瓒冲
+ List<LocDetl> locDetls = locDetlService.findOfSort(pakout.getMatnr());
+ double issued = Optional.ofNullable(pakout.getAnfme()).orElse(0.0D) ;
+ for (LocDetl locDetl1 : locDetls) {
+ if (issued > 0) {
+ // 淇濆瓨鍑哄簱閫氱煡鍗�
+ Pakout newPakout = new Pakout();
+ newPakout.setWrkSts(3L);
+ newPakout.setAnfme(issued>=locDetl1.getAnfme()?locDetl1.getAnfme():issued);
+ newPakout.setZpallet(locDetl1.getZpallet());
+ newPakout.setLocNo(locDetl1.getLocNo());
+ newPakout.setNodeId(locDetl1.getNodeId());
+ newPakout.setWrkNo(String.valueOf(snowflakeIdWorker.nextId()));
+ VersionUtils.setPakout(newPakout, locDetl1);
+ newPakout.setDocId(pakout.getDocId()); // 鍗曟嵁绫诲瀷
+ newPakout.setDocNum(pakout.getDocNum()); // 鍗曟嵁缂栧彿
+ newPakout.setCreateTime(now);
+ newPakout.setUpdateTime(now);
+ newPakout.setStatus(1);
+ if (!pakoutService.insert(newPakout)) {
+ throw new CoolException("淇濆瓨鍑哄簱閫氱煡鍗曞け璐�");
+ }
+ if (issued>=locDetl1.getAnfme()) {
+ // 鍒犻櫎搴撳瓨鏄庣粏
+ if (!locDetlService.removeStock(locDetl1.getNodeId(), newPakout.getMatnr())) {
+ throw new CoolException("鍒犻櫎搴撳瓨鏄庣粏澶辫触");
+ }
+ } else {
+ // 淇敼搴撳瓨鏄庣粏鏁伴噺
+ if (!locDetlService.reduceStock(locDetl1.getNodeId(), newPakout.getMatnr(), issued)) {
+ throw new CoolException("淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触");
+ }
+ }
+ // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
+ issued = issued - locDetl1.getAnfme();
+ }
+ }
+
+ }
+ continue;
+ }
+ // 淇敼搴撳瓨鏁伴噺
if (pakout.getAnfme()>=locDetl.getAnfme()) {
// 鍒犻櫎搴撳瓨鏄庣粏
if (!locDetlService.removeStock(locDetl.getNodeId(), pakout.getMatnr())) {
@@ -269,6 +317,7 @@
}
}
}
+
// 淇敼鍑哄簱鍗曠姸鎬�
if (!pakoutService.stockOutComplete(param.getWrkNo(), param.getNumber(), userId)) {
return R.error("淇濆瓨鏁版嵁澶辫触");
@@ -452,63 +501,6 @@
}
}
return R.ok("鐢熸垚閿�鍞鍗�" + param.getNumber() + "鎴愬姛");
- }
-
- @Override
- @Transactional
- public R stockTransfer(String number, Long userId) {
- List<CustOrder> custOrders = custOrderService.selectList(new EntityWrapper<CustOrder>().eq("number", number).eq("status", 1));
- boolean asrs = false;
- List<StockTransferParam> params = new ArrayList<>();
- for (CustOrder custOrder : custOrders) {
- Double count = locDetlService.selectCountByMatnr(custOrder.getUserCode());
- if (count == null) {
- count = 0.0D;
- }
- if (count < custOrder.getQty()) {
- if (!asrs) { asrs = true; }
- StockTransferParam param = new StockTransferParam();
- param.setMatnr(custOrder.getUserCode());
- param.setAnfme(custOrder.getQty() - count);
- params.add(param);
- }
- }
- if (asrs) {
-// if (asrsService.stockTransfer(params)) {
-// for (StockTransferParam param : params) {
-// // 淇敼閿�鍞鍗曞緟鍑烘暟閲�
-// if (!custOrderService.updateQty(number, param.getMatnr(), param.getAnfme())) {
-// throw new CoolException("淇敼閿�鍞鍗曞緟鍑烘暟閲忓け璐�");
-// }
-// }
-// return R.ok("搴撳瓨璋冩嫧鎴愬姛");
-// } else {
-// return R.error("绔嬪簱璋冩嫧澶辫触锛岃鑱旂郴绠$悊鍛�");
-// }
- }
- return R.error("鏆備笉缂鸿揣锛屼笉闇�瑕佺珛搴撹皟鎷�");
- }
-
- @Override
- public R asrsStockTransfer(AsrsTransferParam param, Long userId) {
- if (Cools.isEmpty(param.getNode_id(), param.getMatnr(), param.getSafe_qua(), param.getAmount())) {
- return R.error("鏁伴噺閿欒");
- }
- List<StockTransferParam> params = new ArrayList<>();
- StockTransferParam transferParam = new StockTransferParam();
- transferParam.setMatnr(param.getMatnr());
- transferParam.setAnfme(Arith.subtract(2, param.getSafe_qua(), param.getAmount()));
- transferParam.setAllotNo(param.getNode_id()+ "_" +param.getMatnr());
- params.add(transferParam);
- Result1 result = asrsService.stockTransfer(params);
- if (result.getCode() == 500) {
- if (Cools.isEmpty(result.getData())) {
- throw new CoolException(result.getMsg());
- } else {
- throw new CodeCoolException("20001-" + result.getData());
- }
- }
- return R.ok("琛ヤ粨鎴愬姛锛岀瓑寰呯珛搴撹皟鎷�");
}
@Override
--
Gitblit v1.9.1