diff --git a/wms_serve_nantong_yachi/src/main/java/com/wms_main/controller/ycwms/YcwmsController.java b/wms_serve_nantong_yachi/src/main/java/com/wms_main/controller/ycwms/YcwmsController.java index 69663f4..9ab79f3 100644 --- a/wms_serve_nantong_yachi/src/main/java/com/wms_main/controller/ycwms/YcwmsController.java +++ b/wms_serve_nantong_yachi/src/main/java/com/wms_main/controller/ycwms/YcwmsController.java @@ -1,11 +1,9 @@ package com.wms_main.controller.ycwms; -import com.wms_main.model.dto.request.ycwms.OrderInReq; -import com.wms_main.model.dto.request.ycwms.OrderOutReq; -import com.wms_main.model.dto.request.ycwms.StockReq; -import com.wms_main.model.dto.request.ycwms.StockResp; +import com.wms_main.model.dto.request.ycwms.*; import com.wms_main.model.dto.response.ycwms.YcwmsResponse; +import com.wms_main.repository.utils.StringUtils; import com.wms_main.service.controller.IYcwmsControllerService; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; @@ -49,4 +47,19 @@ public class YcwmsController { public YcwmsResponse getAvailPercent(@RequestParam(value = "equipmentId") String equipmentId) { return ycwmsControllerService.getAvailPercent(equipmentId); } + + @PostMapping("/localOut") + public YcwmsResponse localOut(@RequestBody LocalOrderReq request) { + return ycwmsControllerService.localOrderOut(request); + } + + @PostMapping("/getOutLocation") + public YcwmsResponse getOutLocation(@RequestBody OrderOutReq request) { + String outLoc = ycwmsControllerService.getLocByGoodsId(request.getGoodsId()); + if (StringUtils.isEmpty(outLoc)) { + return YcwmsResponse.error("查询为空", null); + } else { + return YcwmsResponse.success(outLoc); + } + } } diff --git a/wms_serve_nantong_yachi/src/main/java/com/wms_main/model/dto/request/ycwms/LocalOrderReq.java b/wms_serve_nantong_yachi/src/main/java/com/wms_main/model/dto/request/ycwms/LocalOrderReq.java new file mode 100644 index 0000000..bbf3620 --- /dev/null +++ b/wms_serve_nantong_yachi/src/main/java/com/wms_main/model/dto/request/ycwms/LocalOrderReq.java @@ -0,0 +1,21 @@ +package com.wms_main.model.dto.request.ycwms; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class LocalOrderReq { + @JsonProperty("specification") + private String specification; + + @JsonProperty("xsfbillno") + private String xsfbillno; + + @JsonProperty("xsfseq") + private Integer xsfseq; + + @JsonProperty("neibubianhao") + private String neibubianhao; +} diff --git a/wms_serve_nantong_yachi/src/main/java/com/wms_main/service/controller/IYcwmsControllerService.java b/wms_serve_nantong_yachi/src/main/java/com/wms_main/service/controller/IYcwmsControllerService.java index efdf1c8..91dbbe1 100644 --- a/wms_serve_nantong_yachi/src/main/java/com/wms_main/service/controller/IYcwmsControllerService.java +++ b/wms_serve_nantong_yachi/src/main/java/com/wms_main/service/controller/IYcwmsControllerService.java @@ -1,9 +1,6 @@ package com.wms_main.service.controller; -import com.wms_main.model.dto.request.ycwms.OrderInReq; -import com.wms_main.model.dto.request.ycwms.OrderOutReq; -import com.wms_main.model.dto.request.ycwms.StockReq; -import com.wms_main.model.dto.request.ycwms.StockResp; +import com.wms_main.model.dto.request.ycwms.*; import com.wms_main.model.dto.response.ycwms.YcwmsResponse; import java.util.List; @@ -14,4 +11,6 @@ public interface IYcwmsControllerService { YcwmsResponse orderOut(OrderOutReq request); YcwmsResponse> stock(StockReq request); YcwmsResponse getAvailPercent(String equipmentId); + YcwmsResponse localOrderOut(LocalOrderReq request); + String getLocByGoodsId(String goodsId); } diff --git a/wms_serve_nantong_yachi/src/main/java/com/wms_main/service/controller/serviceImpl/WcsControllerServiceImpl.java b/wms_serve_nantong_yachi/src/main/java/com/wms_main/service/controller/serviceImpl/WcsControllerServiceImpl.java index 6db78df..a34b19a 100644 --- a/wms_serve_nantong_yachi/src/main/java/com/wms_main/service/controller/serviceImpl/WcsControllerServiceImpl.java +++ b/wms_serve_nantong_yachi/src/main/java/com/wms_main/service/controller/serviceImpl/WcsControllerServiceImpl.java @@ -75,12 +75,13 @@ public class WcsControllerServiceImpl implements IWcsControllerService { orderIn.setGoodsName("空托盘"); orderIn.setBatch("0"); orderIn.setGoodsType("0"); - orderIn.setSpecification("empty"); orderIn.setQuantity(4.0); orderIn.setGoodsDesc(""); - orderIn.setXsfbillno(""); + + orderIn.setSpecification("empty"); + orderIn.setXsfbillno(goodsId567); orderIn.setXsfseq(0); - orderIn.setNeibubianhao(""); + orderIn.setNeibubianhao("0"); orderIn.setOrderStatus(OrderStatusEnum.RUNNING.getCode()); orderIn.setCreateTime(LocalDateTime.now()); orderIn.setUpdateTime(LocalDateTime.now()); @@ -144,12 +145,13 @@ public class WcsControllerServiceImpl implements IWcsControllerService { orderIn.setGoodsName("空托盘"); orderIn.setBatch("0"); orderIn.setGoodsType("0"); - orderIn.setSpecification("empty"); orderIn.setQuantity(1.0); orderIn.setGoodsDesc(""); - orderIn.setXsfbillno(""); + + orderIn.setSpecification("empty"); + orderIn.setXsfbillno(goodsId34); orderIn.setXsfseq(0); - orderIn.setNeibubianhao(""); + orderIn.setNeibubianhao("0"); orderIn.setOrderStatus(OrderStatusEnum.RUNNING.getCode()); orderIn.setCreateTime(LocalDateTime.now()); orderIn.setUpdateTime(LocalDateTime.now()); diff --git a/wms_serve_nantong_yachi/src/main/java/com/wms_main/service/controller/serviceImpl/YcwmsControllerServiceImpl.java b/wms_serve_nantong_yachi/src/main/java/com/wms_main/service/controller/serviceImpl/YcwmsControllerServiceImpl.java index 953aaea..30ccfef 100644 --- a/wms_serve_nantong_yachi/src/main/java/com/wms_main/service/controller/serviceImpl/YcwmsControllerServiceImpl.java +++ b/wms_serve_nantong_yachi/src/main/java/com/wms_main/service/controller/serviceImpl/YcwmsControllerServiceImpl.java @@ -266,7 +266,52 @@ public class YcwmsControllerServiceImpl implements IYcwmsControllerService { return YcwmsResponse.error("equipmentId无效", null); } - private String getLocByGoodsId(String goodsId) { + public YcwmsResponse localOrderOut(LocalOrderReq request) { + log.info("亚驰单机出库单请求参数{}", JSON.toJSON(request)); + if(request == null) return YcwmsResponse.error("参数错误", null); + if (StringUtils.isEmpty(request.getNeibubianhao()) + || StringUtils.isEmpty(request.getXsfbillno()) + || StringUtils.isEmpty(String.valueOf(request.getXsfseq())) + || StringUtils.isEmpty(request.getSpecification())) { + return YcwmsResponse.error("参数错误", null); + } + List stocks = appStockService.list( + new LambdaQueryWrapper() + .eq(TAppStock::getNeibubianhao, request.getNeibubianhao()) + .eq(TAppStock::getXsfbillno, request.getXsfbillno()) + .eq(TAppStock::getXsfseq, request.getXsfseq()) + .eq(TAppStock::getSled, request.getSpecification()) + ); + if (stocks == null || stocks.isEmpty()) { + return YcwmsResponse.error("库存不足, 出库失败", null); + } + TAppOrderOut orderOut = new TAppOrderOut(); + orderOut.setRecordId(UUIDUtils.getNewUUID()); + orderOut.setOrderId(UUIDUtils.getNewUUID("baokai")); + orderOut.setBatch(stocks.getFirst().getBatch()); + orderOut.setSpecification(request.getSpecification()); + orderOut.setOrderStatus(OrderStatusEnum.CREATE.getCode()); + orderOut.setCreateTime(LocalDateTime.now()); + orderOut.setUpdateTime(LocalDateTime.now()); + orderOut.setRemark("Local"); + + String tmpGoodsId = stocks.getFirst().getGoodsId(); + if (tmpGoodsId.length() < 3) { + orderOut.setGoodsId(tmpGoodsId); + int tmpGoodsNum = Integer.parseInt(tmpGoodsId); + orderOut.setQuantity((tmpGoodsNum <= 1) ? 1.0 : 4.0); + } else { + orderOut.setGoodsId(stocks.getFirst().getVehicleId()); + orderOut.setQuantity(0.0); + tmpGoodsId = stocks.getFirst().getVehicleId(); + } + if(!appOrderOutService.save(orderOut)) { + return YcwmsResponse.error("出库单保存失败,请稍后再试", null); + } + return YcwmsResponse.success(getLocByGoodsId(tmpGoodsId)); + } + + public String getLocByGoodsId(String goodsId) { if (goodsId.length() < 3) { return switch (goodsId) { case "0" -> "LK-3"; diff --git a/wms_web_nantong_yachi/src/api/orderOut.js b/wms_web_nantong_yachi/src/api/orderOut.js index a0835d4..376082a 100644 --- a/wms_web_nantong_yachi/src/api/orderOut.js +++ b/wms_web_nantong_yachi/src/api/orderOut.js @@ -6,14 +6,14 @@ import axios from "axios"; */ const _request = axios.create({ - // baseURL: 'http://localhost:12315', - baseURL: 'http://10.18.58.21:12315', + baseURL: 'http://localhost:12315', + // baseURL: 'http://10.18.58.21:12315', timeout: 5000 }) const submitOrderOutForm = (params) => { return _request({ - url: '/ycwms/orderOut', + url: '/ycwms/localOut', method: 'post', data: params }) diff --git a/wms_web_nantong_yachi/src/layout/orderOut.vue b/wms_web_nantong_yachi/src/layout/orderOut.vue index 33071a9..d502187 100644 --- a/wms_web_nantong_yachi/src/layout/orderOut.vue +++ b/wms_web_nantong_yachi/src/layout/orderOut.vue @@ -7,23 +7,23 @@ - - + + - - + + + + + + + - - - - - - + @@ -73,26 +73,26 @@ const generateOrderId = () => { const orderOutFormRef = ref() const orderOutForm = reactive({ orderId: generateOrderId(), - goodsId: '', - batch: '', + neibubianhao: '', + xsfbillno: '', + xsfseq: null, specification: '', - quantity: null, clientId: "WMS" }) // 表单规则 const rules = reactive({ - goodsId: [{ required: true, message: '请输入物料编号', trigger: 'blur' }], - batch: [{ required: true, message: '请输入批次', trigger: 'blur' }], - specification: [{ required: true, message: '请输入规格', trigger: 'blur' }], - quantity: [{ required: true, message: '请输入数量', trigger: 'blur' }] + neibubianhao: [{ required: true, message: '请输入内部编号', trigger: 'blur' }], + xsfbillno: [{ required: true, message: '请输入销售单号', trigger: 'blur' }], + xsfseq: [{ required: true, message: '请输入行号', trigger: 'blur' }], + specification: [{ required: true, message: '请输入规格', trigger: 'blur' }] }) // 引用DOM元素 -const goodsIdRef = ref() -const batchRef = ref() +const neibubianhaoRef = ref() +const xsfbillnoRef = ref() +const xsfseqRef = ref() const specificationRef = ref() -const quantityRef = ref() // 响应结果对话框 const responseDialogVisible = ref(false) @@ -101,7 +101,7 @@ const responseResult = ref({}) // 初始化时聚焦第一个输入框 onMounted(() => { nextTick(() => { - goodsIdRef.value.focus() + neibubianhaoRef.value.focus() window.addEventListener('resize', resizeHeight) }) }) @@ -118,10 +118,10 @@ const resizeHeight = () => { // 处理回车事件 const handleEnter = (nextField) => { const refMap = { - 'goodsId': goodsIdRef, - 'batch': batchRef, - 'specification': specificationRef, - 'quantity': quantityRef + 'neibubianhao': neibubianhaoRef, + 'xsfbillno': xsfbillnoRef, + 'xsfseq': xsfseqRef, + 'specification': specificationRef } if (refMap[nextField]) { @@ -135,7 +135,7 @@ const resetForm = () => { // 重新生成订单号 orderOutForm.orderId = generateOrderId() nextTick(() => { - goodsIdRef.value.focus() + neibubianhaoRef.value.focus() }) }