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