From 1d853e91b6561317a9cb113b4d61de0b7f891708 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期三, 14 四月 2021 14:16:18 +0800
Subject: [PATCH] #
---
src/main/webapp/views/safeSto/safeSto.html | 2
src/main/java/zy/cloud/wms/common/service/asrs/entity/Result1.java | 28 +++++
src/main/java/zy/cloud/wms/common/service/asrs/AsrsService.java | 53 ++++++++++
src/main/java/zy/cloud/wms/manager/controller/WorkController.java | 2
src/main/java/zy/cloud/wms/common/service/asrs/entity/Result.java | 28 +++++
src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java | 59 +++++++++++
src/main/java/zy/cloud/wms/manager/service/WorkService.java | 2
src/main/resources/application.yml | 3
src/main/java/zy/cloud/wms/common/service/MainService.java | 64 ++++++++++++
9 files changed, 236 insertions(+), 5 deletions(-)
diff --git a/src/main/java/zy/cloud/wms/common/service/MainService.java b/src/main/java/zy/cloud/wms/common/service/MainService.java
index 6c81900..827ef29 100644
--- a/src/main/java/zy/cloud/wms/common/service/MainService.java
+++ b/src/main/java/zy/cloud/wms/common/service/MainService.java
@@ -7,11 +7,20 @@
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.MatnrDto;
import zy.cloud.wms.common.model.OrderStoDto;
+import zy.cloud.wms.common.service.asrs.AsrsService;
+import zy.cloud.wms.common.service.asrs.entity.Result;
+import zy.cloud.wms.common.service.asrs.entity.Result1;
import zy.cloud.wms.common.utils.VersionUtils;
import zy.cloud.wms.manager.entity.*;
-import zy.cloud.wms.manager.service.*;
+import zy.cloud.wms.manager.entity.param.StockTransferParam;
+import zy.cloud.wms.manager.entity.result.PakoutVo;
+import zy.cloud.wms.manager.service.LocDetlService;
+import zy.cloud.wms.manager.service.MatService;
+import zy.cloud.wms.manager.service.OrderService;
+import zy.cloud.wms.manager.service.PakoutService;
import java.util.*;
@@ -32,6 +41,8 @@
private SnowflakeIdWorker snowflakeIdWorker;
@Autowired
private OrderService orderService;
+ @Autowired
+ private AsrsService asrsService;
@Transactional
public List<StoPreTab> stockOutPreview(OrderStoDto orderStoDto) {
@@ -40,7 +51,17 @@
}
List<StoPreTab> res = new ArrayList<>();
// 妫�鏌ュ簱瀛樻槸鍚﹁冻澶�
- locDetlService.checkLocDetlCount(orderStoDto.getDtos());
+ List<StockTransferParam> transferParams = locDetlService.checkLocDetlCountOfRes(orderStoDto.getDtos());
+ if (!Cools.isEmpty(transferParams)) {
+ // 鏌ョ湅绔嬪簱搴撳瓨
+ Result result = asrsService.stockTransferPrew(transferParams);
+ if (result.getCode() == 500) {
+ throw new CodeCoolException("20001-" + String.valueOf(result.getMsg()));
+ }
+ if (result.getCode() == 200) {
+ res = (List<StoPreTab>) result.getData();
+ }
+ }
for (MatnrDto matnrDto : orderStoDto.getDtos()) {
// 鍒ゆ柇鐗╂枡鏄惁瀛樺湪
@@ -97,7 +118,44 @@
}
Date now = new Date();
// 妫�鏌ュ簱瀛樻槸鍚﹁冻澶�
- locDetlService.checkLocDetlCount(orderStoDto.getDtos());
+ List<StockTransferParam> transferParams = locDetlService.checkLocDetlCountOfRes(orderStoDto.getDtos());
+ if (!Cools.isEmpty(transferParams)) {
+ // 鏌ョ湅绔嬪簱搴撳瓨
+ Result1 result = asrsService.stockTransfer(transferParams);
+ if (result.getCode() == 500) {
+ if (Cools.isEmpty(result.getData())) {
+ throw new CoolException(result.getMsg());
+ } else {
+ throw new CodeCoolException("20001-" + result.getData());
+ }
+ }
+ if (result.getCode() == 200) {
+ for (PakoutVo vo : result.getData()) {
+ // 鍒ゆ柇鐗╂枡鏄惁瀛樺湪
+ Mat mat = matService.selectByMatnr(vo.getMatnr());
+ if (null == mat) {
+ throw new CoolException(vo.getMatnr() + "鐗╂枡灏氭湭鏇存柊銆�" + orderStoDto.getOrderNo() +"鍗曟嵁鍥犳涓柇锛�");
+ }
+ Pakout pakout = new Pakout();
+ pakout.setWrkSts(1L);
+ pakout.setAnfme(vo.getAnfme());
+ pakout.setZpallet(vo.getZpallet());
+ pakout.setLocNo(vo.getLocNo());
+ pakout.setNodeId(-1L);
+ pakout.setWrkNo(String.valueOf(snowflakeIdWorker.nextId()));
+ VersionUtils.setPakout(pakout, mat);
+ pakout.setDocId(order.getDocType()); // 鍗曟嵁绫诲瀷
+ pakout.setDocNum(order.getOrderNo()); // 鍗曟嵁缂栧彿
+ pakout.setCreateTime(now);
+ pakout.setUpdateTime(now);
+ pakout.setStatus(1);
+ if (!pakoutService.insert(pakout)) {
+ throw new CoolException("淇濆瓨鍑哄簱閫氱煡鍗曞け璐�");
+ }
+ }
+
+ }
+ }
for (MatnrDto matnrDto : orderStoDto.getDtos()) {
// 鍒ゆ柇鐗╂枡鏄惁瀛樺湪
diff --git a/src/main/java/zy/cloud/wms/common/service/asrs/AsrsService.java b/src/main/java/zy/cloud/wms/common/service/asrs/AsrsService.java
new file mode 100644
index 0000000..c6590d1
--- /dev/null
+++ b/src/main/java/zy/cloud/wms/common/service/asrs/AsrsService.java
@@ -0,0 +1,53 @@
+package zy.cloud.wms.common.service.asrs;
+
+import com.alibaba.fastjson.JSON;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import zy.cloud.wms.common.service.asrs.entity.Result;
+import zy.cloud.wms.common.service.asrs.entity.Result1;
+import zy.cloud.wms.manager.entity.param.StockTransferParam;
+import zy.cloud.wms.manager.utils.HttpHandler;
+
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * Created by vincent on 2021/3/20
+ */
+@Service("asrsService")
+public class AsrsService {
+
+ @Value("${asrs.baseUrl}")
+ private String asrsBaseUrl;
+
+ public Result stockTransferPrew(List<StockTransferParam> params) {
+ try {
+ String response = new HttpHandler.Builder()
+ .setUri(asrsBaseUrl)
+ .setPath("/open/api/stockOut/prew")
+ .setJson(JSON.toJSONString(params))
+ .build()
+ .doPost();
+ return JSON.parseObject(response, Result.class);
+ } catch (IOException e) {
+ e.printStackTrace();
+ return new Result(500, "鏈嶅姟鍣ㄥ紓甯�", null);
+ }
+ }
+
+ public Result1 stockTransfer(List<StockTransferParam> params) {
+ try {
+ String response = new HttpHandler.Builder()
+ .setUri(asrsBaseUrl)
+ .setPath("/open/api/stockOut")
+ .setJson(JSON.toJSONString(params))
+ .build()
+ .doPost();
+ return JSON.parseObject(response, Result1.class);
+ } catch (IOException e) {
+ e.printStackTrace();
+ return new Result1(500, "鏈嶅姟鍣ㄥ紓甯�", null);
+ }
+ }
+
+}
diff --git a/src/main/java/zy/cloud/wms/common/service/asrs/entity/Result.java b/src/main/java/zy/cloud/wms/common/service/asrs/entity/Result.java
new file mode 100644
index 0000000..bb31cd6
--- /dev/null
+++ b/src/main/java/zy/cloud/wms/common/service/asrs/entity/Result.java
@@ -0,0 +1,28 @@
+package zy.cloud.wms.common.service.asrs.entity;
+
+import lombok.Data;
+import zy.cloud.wms.manager.entity.StoPreTab;
+
+import java.util.List;
+
+/**
+ * Created by vincent on 2021/3/20
+ */
+@Data
+public class Result {
+
+ private Integer code;
+
+ private String msg;
+
+ private List<StoPreTab> data;
+
+ public Result() {
+ }
+
+ public Result(Integer code, String msg, List<StoPreTab> data) {
+ this.code = code;
+ this.msg = msg;
+ this.data = data;
+ }
+}
diff --git a/src/main/java/zy/cloud/wms/common/service/asrs/entity/Result1.java b/src/main/java/zy/cloud/wms/common/service/asrs/entity/Result1.java
new file mode 100644
index 0000000..cda8c58
--- /dev/null
+++ b/src/main/java/zy/cloud/wms/common/service/asrs/entity/Result1.java
@@ -0,0 +1,28 @@
+package zy.cloud.wms.common.service.asrs.entity;
+
+import lombok.Data;
+import zy.cloud.wms.manager.entity.result.PakoutVo;
+
+import java.util.List;
+
+/**
+ * Created by vincent on 2021/3/20
+ */
+@Data
+public class Result1 {
+
+ private Integer code;
+
+ private String msg;
+
+ private List<PakoutVo> data;
+
+ public Result1() {
+ }
+
+ public Result1(Integer code, String msg, List<PakoutVo> data) {
+ this.code = code;
+ this.msg = msg;
+ this.data = data;
+ }
+}
diff --git a/src/main/java/zy/cloud/wms/manager/controller/WorkController.java b/src/main/java/zy/cloud/wms/manager/controller/WorkController.java
index b1100d0..3bb9361 100644
--- a/src/main/java/zy/cloud/wms/manager/controller/WorkController.java
+++ b/src/main/java/zy/cloud/wms/manager/controller/WorkController.java
@@ -144,7 +144,7 @@
@RequestMapping("/stock/transfer")
@ManagerAuth(memo = "搴撳瓨璋冩嫧")
public R stockTransfer(@RequestBody AsrsTransferParam number) {
- return R.error();
+ return workService.asrsStockTransfer(number, getUserId());
}
@RequestMapping("/stock/check")
diff --git a/src/main/java/zy/cloud/wms/manager/service/WorkService.java b/src/main/java/zy/cloud/wms/manager/service/WorkService.java
index f261d36..85a45ea 100644
--- a/src/main/java/zy/cloud/wms/manager/service/WorkService.java
+++ b/src/main/java/zy/cloud/wms/manager/service/WorkService.java
@@ -27,6 +27,8 @@
R cancelPakout(String wrkNo, Long userId);
+ R asrsStockTransfer(AsrsTransferParam param, Long userId);
+
R initOrder(InitOrderParam param, Long userId);
R stockCheck(StoCheckParam param, Long userId);
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 0c0cb46..fb26290 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,6 +1,7 @@
package zy.cloud.wms.manager.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Arith;
import com.core.common.Cools;
import com.core.common.R;
import com.core.common.SnowflakeIdWorker;
@@ -9,10 +10,13 @@
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.*;
@@ -55,6 +59,8 @@
private CstmrService cstmrService;
@Autowired
private ErpService erpService;
+ @Autowired
+ private AsrsService asrsService;
@Override
@Transactional
@@ -515,6 +521,59 @@
}
@Override
+ public R asrsStockTransfer(AsrsTransferParam param, Long userId) {
+ if (Cools.isEmpty(param.getNode_id(), param.getMatnr(), param.getSafe_qua(), param.getAmount())) {
+ return R.error("鏁伴噺閿欒");
+ }
+ Node node = nodeService.selectById(param.getNode_id());
+ Mat mat = matService.selectByMatnr(param.getMatnr());
+ if (node == null || mat == null) {
+ return R.error();
+ }
+ double anfme = Arith.subtract(2, param.getSafe_qua(), param.getAmount());
+ List<StockTransferParam> params = new ArrayList<>();
+ StockTransferParam transferParam = new StockTransferParam();
+ transferParam.setMatnr(param.getMatnr());
+ transferParam.setAnfme(anfme);
+ 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());
+ }
+ }
+ // 鐩存帴澧炲姞搴撳瓨
+ LocDetl locDetl = locDetlService.getLocDetl(param.getNode_id(), param.getMatnr());
+ if (locDetl == null) {
+ // 鏇存柊璐т綅搴撳瓨鏄庣粏
+ locDetl = new LocDetl();
+ locDetl.setLocNo(node.getName());
+ locDetl.setNodeId(node.getId());
+ locDetl.setAnfme(anfme);
+ VersionUtils.setLocDetl(locDetl, mat);
+ locDetl.setStatus(1);
+ locDetl.setCreateBy(userId);
+ locDetl.setCreateTime(new Date());
+ locDetl.setUpdateBy(userId);
+ locDetl.setUpdateTime(new Date());
+ boolean insert = locDetlService.insert(locDetl);
+ if (!insert) {
+ throw new CoolException("鏂板搴撳瓨鏄庣粏妗eけ璐�");
+ }
+ } else {
+ if (!locDetlService.incrementStock(node.getId(), param.getMatnr(), anfme)) {
+ throw new CoolException("鏂板搴撳瓨鏄庣粏妗eけ璐�");
+ }
+ }
+
+ return R.ok("琛ヤ粨鎴愬姛锛岀瓑寰呯珛搴撹皟鎷�");
+ }
+
+
+ @Override
public R stockCheck(StoCheckParam param, Long userId) {
if (Cools.isEmpty(param.getLocNo())) {
return R.error("璇烽�夋嫨璐т綅");
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 609a6ed..668e2de 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -51,3 +51,6 @@
secret: 84CHL7tF21LbU1qpaP0jn9mIAZP9bv
bucket: tjdt
endpoint: http://oss-cn-hangzhou.aliyuncs.com
+
+asrs:
+ baseUrl: http://localhost:8081/htwms
\ No newline at end of file
diff --git a/src/main/webapp/views/safeSto/safeSto.html b/src/main/webapp/views/safeSto/safeSto.html
index 3a05d72..b5ada3a 100644
--- a/src/main/webapp/views/safeSto/safeSto.html
+++ b/src/main/webapp/views/safeSto/safeSto.html
@@ -56,7 +56,7 @@
</script>
<script type="text/html" id="operate">
- {{# if(d.status > 1){ }}
+ {{# if(d.status > 2){ }}
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="allot">琛ヤ粨</a>
{{# } }}
</script>
--
Gitblit v1.9.1