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); + } }