src/main/java/zy/cloud/wms/common/service/MainService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/zy/cloud/wms/common/service/asrs/AsrsService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/zy/cloud/wms/common/service/asrs/entity/Result.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/zy/cloud/wms/common/service/asrs/entity/Result1.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/zy/cloud/wms/manager/controller/WorkController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/zy/cloud/wms/manager/service/WorkService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/views/safeSto/safeSto.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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()) { // 判断物料是否存在 src/main/java/zy/cloud/wms/common/service/asrs/AsrsService.java
New file @@ -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); } } } src/main/java/zy/cloud/wms/common/service/asrs/entity/Result.java
New file @@ -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; } } src/main/java/zy/cloud/wms/common/service/asrs/entity/Result1.java
New file @@ -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; } } 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") 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); 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("新增库存明细档失败"); } } else { if (!locDetlService.incrementStock(node.getId(), param.getMatnr(), anfme)) { throw new CoolException("新增库存明细档失败"); } } return R.ok("补仓成功,等待立库调拨"); } @Override public R stockCheck(StoCheckParam param, Long userId) { if (Cools.isEmpty(param.getLocNo())) { return R.error("请选择货位"); 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 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>