From bd9eb7101d6b7fece3d119c1765701c94c25d310 Mon Sep 17 00:00:00 2001 From: liyuqi Date: Sun, 20 Apr 2025 14:59:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug:=201.=20105~107=E5=8F=A3?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E6=97=B6=E6=B7=BB=E5=8A=A0=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E7=9A=84=E7=89=A9=E6=96=99=E5=8F=B7=E6=9C=AA=E5=AE=8C=E5=85=A8?= =?UTF-8?q?=E5=8C=BA=E5=88=86=202.=20=E6=B7=BB=E5=8A=A0=E7=82=B9=E4=BD=8D?= =?UTF-8?q?=E6=98=A0=E5=B0=84,=20LK-[X]=20=3D>=2010[X]=203.=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E8=8E=B7=E5=8F=962=E5=8F=B73=E5=8F=B7=E5=BA=93?= =?UTF-8?q?=E7=9A=84=E5=BA=93=E4=BD=8D=E5=AE=9E=E6=97=B6=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E7=8E=87=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../enums/wms/WmsLocationNumEnums.java | 14 +++++ .../controller/ycwms/YcwmsController.java | 5 ++ .../repository/utils/ConvertUtils.java | 13 +++++ .../controller/IYcwmsControllerService.java | 1 + .../serviceImpl/WcsControllerServiceImpl.java | 9 ++- .../YcwmsControllerServiceImpl.java | 55 ++++++++++++++++--- 6 files changed, 87 insertions(+), 10 deletions(-) create mode 100644 wms_serve_nantong_yachi/src/main/java/com/wms_main/constant/enums/wms/WmsLocationNumEnums.java diff --git a/wms_serve_nantong_yachi/src/main/java/com/wms_main/constant/enums/wms/WmsLocationNumEnums.java b/wms_serve_nantong_yachi/src/main/java/com/wms_main/constant/enums/wms/WmsLocationNumEnums.java new file mode 100644 index 0000000..55a57ed --- /dev/null +++ b/wms_serve_nantong_yachi/src/main/java/com/wms_main/constant/enums/wms/WmsLocationNumEnums.java @@ -0,0 +1,14 @@ +package com.wms_main.constant.enums.wms; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum WmsLocationNumEnums { + LOCATION_NUM_2(316, "2号库"), + LOCATION_NUM_3(540, "3号库"); + + private final Integer code; + private final String desc; +} 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 af0aa68..8c59f36 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 @@ -44,4 +44,9 @@ public class YcwmsController { public YcwmsResponse> stock(@RequestBody StockReq request) { return ycwmsControllerService.stock(request); } + + @GetMapping("/getAvailPercent") + public YcwmsResponse getAvailPercent(String equipmentId) { + return ycwmsControllerService.getAvailPercent(equipmentId); + } } diff --git a/wms_serve_nantong_yachi/src/main/java/com/wms_main/repository/utils/ConvertUtils.java b/wms_serve_nantong_yachi/src/main/java/com/wms_main/repository/utils/ConvertUtils.java index dbeb8ba..eec93dd 100644 --- a/wms_serve_nantong_yachi/src/main/java/com/wms_main/repository/utils/ConvertUtils.java +++ b/wms_serve_nantong_yachi/src/main/java/com/wms_main/repository/utils/ConvertUtils.java @@ -76,4 +76,17 @@ public class ConvertUtils { default -> ""; }; } + + public static String convertPointToDestination(String point) { + return switch (point) { + case "LK-1" -> "101"; + case "LK-2" -> "102"; + case "LK-3" -> "103"; + case "LK-4" -> "104"; + case "LK-5" -> "105"; + case "LK-6" -> "106"; + case "LK-7" -> "107"; + default -> ""; + }; + } } 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 891af64..efdf1c8 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 @@ -13,4 +13,5 @@ public interface IYcwmsControllerService { YcwmsResponse orderIn(OrderInReq request); YcwmsResponse orderOut(OrderOutReq request); YcwmsResponse> stock(StockReq request); + YcwmsResponse getAvailPercent(String equipmentId); } 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 3501637..8d1bfc9 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 @@ -53,7 +53,14 @@ public class WcsControllerServiceImpl implements IWcsControllerService { if(targetLocation == null) { return WcsApiResponse.error("没有空闲库位,请稍后再试", null); } - String goodsId567 = point.equals("105") ? "3" : "2"; + String goodsId567 = ""; + if (point.equals("105")) { + goodsId567 = "2"; + } else if (point.equals("106")) { + goodsId567 = "3"; + } else { + goodsId567 = "4"; + } String vehicleId = UUIDUtils.getNewUUID(); // 插入一条默认入库单 TAppOrderIn orderIn = new TAppOrderIn(); 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 7e5d778..6e51260 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 @@ -1,8 +1,9 @@ package com.wms_main.service.controller.serviceImpl; import com.alibaba.fastjson.JSON; -import com.wms_main.constant.enums.wms.OrderStatusEnum; -import com.wms_main.constant.enums.wms.WmsApiResponseCodeEnums; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.wms_main.constant.enums.wms.*; +import com.wms_main.dao.ITAppLocationService; import com.wms_main.dao.ITAppOrderInService; import com.wms_main.dao.ITAppOrderOutService; import com.wms_main.dao.ITAppStockService; @@ -10,9 +11,11 @@ import com.wms_main.model.bo.erp.ErpGoodsDetail; import com.wms_main.model.bo.erp.ErpVehicleNoResp; import com.wms_main.model.dto.request.ycwms.*; import com.wms_main.model.dto.response.ycwms.YcwmsResponse; +import com.wms_main.model.po.TAppLocation; import com.wms_main.model.po.TAppOrderIn; import com.wms_main.model.po.TAppOrderOut; import com.wms_main.model.po.TAppStock; +import com.wms_main.repository.utils.ConvertUtils; import com.wms_main.repository.utils.StringUtils; import com.wms_main.repository.utils.UUIDUtils; import com.wms_main.service.api.IExternalApiService; @@ -35,6 +38,7 @@ public class YcwmsControllerServiceImpl implements IYcwmsControllerService { private final ITAppOrderInService appOrderInService; private final ITAppOrderOutService appOrderOutService; private final ITAppStockService appStockService; + private final ITAppLocationService appLocationService; private final IExternalApiService externalApiService; @Override @@ -55,6 +59,7 @@ public class YcwmsControllerServiceImpl implements IYcwmsControllerService { return YcwmsResponse.error("入库单已存在,请勿重复推送", null); } String vehicleNo = request.getVehicleNo(); + String inStand = ConvertUtils.convertPointToDestination(request.getInStand()); List erpGoodsDetails = new ArrayList<>(); try { YcwmsResponse erpResp = externalApiService.getVehicleNoData(vehicleNo); @@ -74,13 +79,17 @@ public class YcwmsControllerServiceImpl implements IYcwmsControllerService { Iterator iterator = mesGoodsDetails.iterator(); while (iterator.hasNext()) { OrderInGoodsDetail goodsDetail = iterator.next(); +// boolean matchFound = erpGoodsDetails.stream().anyMatch(erpGoodsDetail -> +// erpGoodsDetail.getGoodsId().equals(goodsDetail.getGoodsId()) && +// erpGoodsDetail.getGoodsBarcode().equals(goodsDetail.getGoodsBarcode()) && +// Objects.equals(erpGoodsDetail.getQuantity(), goodsDetail.getQuantity()) && +// erpGoodsDetail.getGoodsType().equals(goodsDetail.getGoodsType()) && +// Objects.equals(erpGoodsDetail.getSpecification(), goodsDetail.getSpecification()) +// ); boolean matchFound = erpGoodsDetails.stream().anyMatch(erpGoodsDetail -> erpGoodsDetail.getGoodsId().equals(goodsDetail.getGoodsId()) && - erpGoodsDetail.getGoodsBarcode().equals(goodsDetail.getGoodsBarcode()) && - Objects.equals(erpGoodsDetail.getQuantity(), goodsDetail.getQuantity()) && - erpGoodsDetail.getGoodsType().equals(goodsDetail.getGoodsType()) && - Objects.equals(erpGoodsDetail.getSpecification(), goodsDetail.getSpecification()) - ); + Objects.equals(erpGoodsDetail.getQuantity(), goodsDetail.getQuantity()) && + erpGoodsDetail.getGoodsType().equals(goodsDetail.getGoodsType())); if (matchFound) { // 找到匹配的任务,删除该 goodsDetail iterator.remove(); @@ -99,7 +108,7 @@ public class YcwmsControllerServiceImpl implements IYcwmsControllerService { orderIn.setOrderId(request.getOrderId()); orderIn.setVehicleNo(request.getVehicleNo()); orderIn.setVehicleSize(request.getVehicleSize()); - orderIn.setInStand(request.getInStand()); + orderIn.setInStand(inStand); orderIn.setClientId(request.getClientId()); orderIn.setGoodsId(goodsDetail.getGoodsId()); orderIn.setGoodsName(goodsDetail.getGoodsName()); @@ -210,5 +219,33 @@ public class YcwmsControllerServiceImpl implements IYcwmsControllerService { return YcwmsResponse.success(respList); } - + public YcwmsResponse getAvailPercent(String equipmentId) { + if (equipmentId == null || equipmentId.isEmpty()) { + return YcwmsResponse.error("参数错误", null); + } + if (equipmentId.equals("1")) { + return YcwmsResponse.error("该库无成品物料", null); + } else if (equipmentId.equals("2")) { + Integer queryId = Integer.parseInt(equipmentId); + Long locationNum = appLocationService.count( + new LambdaQueryWrapper() + .eq(TAppLocation::getEquipmentId, queryId) + .eq(TAppLocation::getLocationType, WmsLocationTypeEnums.TYPE_PRODUCT.getCode()) + .eq(TAppLocation::getIsOccupy, WmsLocationOccupyStatusEnums.OCCUPY.getCode()) + ); + Double percent = Double.parseDouble(locationNum.toString()) / WmsLocationNumEnums.LOCATION_NUM_2.getCode(); + return YcwmsResponse.success(percent); + } else if (equipmentId.equals("3")) { + Integer queryId = Integer.parseInt(equipmentId); + Long locationNum = appLocationService.count( + new LambdaQueryWrapper() + .eq(TAppLocation::getEquipmentId, queryId) + .eq(TAppLocation::getLocationType, WmsLocationTypeEnums.TYPE_PRODUCT.getCode()) + .eq(TAppLocation::getIsOccupy, WmsLocationOccupyStatusEnums.OCCUPY.getCode()) + ); + Double percent = Double.parseDouble(locationNum.toString()) / WmsLocationNumEnums.LOCATION_NUM_3.getCode(); + return YcwmsResponse.success(percent); + } + return YcwmsResponse.error("equipmentId无效", null); + } }