修复bug:
1. 105~107口入库时添加库存的物料号未完全区分 2. 添加点位映射, LK-[X] => 10[X] 3. 添加获取2号3号库的库位实时使用率接口
This commit is contained in:
parent
16a9981ece
commit
bd9eb7101d
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
@ -44,4 +44,9 @@ public class YcwmsController {
|
||||||
public YcwmsResponse<List<StockResp>> stock(@RequestBody StockReq request) {
|
public YcwmsResponse<List<StockResp>> stock(@RequestBody StockReq request) {
|
||||||
return ycwmsControllerService.stock(request);
|
return ycwmsControllerService.stock(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/getAvailPercent")
|
||||||
|
public YcwmsResponse<Object> getAvailPercent(String equipmentId) {
|
||||||
|
return ycwmsControllerService.getAvailPercent(equipmentId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -76,4 +76,17 @@ public class ConvertUtils {
|
||||||
default -> "";
|
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 -> "";
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,4 +13,5 @@ public interface IYcwmsControllerService {
|
||||||
YcwmsResponse<Object> orderIn(OrderInReq request);
|
YcwmsResponse<Object> orderIn(OrderInReq request);
|
||||||
YcwmsResponse<Object> orderOut(OrderOutReq request);
|
YcwmsResponse<Object> orderOut(OrderOutReq request);
|
||||||
YcwmsResponse<List<StockResp>> stock(StockReq request);
|
YcwmsResponse<List<StockResp>> stock(StockReq request);
|
||||||
|
YcwmsResponse<Object> getAvailPercent(String equipmentId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,14 @@ public class WcsControllerServiceImpl implements IWcsControllerService {
|
||||||
if(targetLocation == null) {
|
if(targetLocation == null) {
|
||||||
return WcsApiResponse.error("没有空闲库位,请稍后再试", 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();
|
String vehicleId = UUIDUtils.getNewUUID();
|
||||||
// 插入一条默认入库单
|
// 插入一条默认入库单
|
||||||
TAppOrderIn orderIn = new TAppOrderIn();
|
TAppOrderIn orderIn = new TAppOrderIn();
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
package com.wms_main.service.controller.serviceImpl;
|
package com.wms_main.service.controller.serviceImpl;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.wms_main.constant.enums.wms.OrderStatusEnum;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.wms_main.constant.enums.wms.WmsApiResponseCodeEnums;
|
import com.wms_main.constant.enums.wms.*;
|
||||||
|
import com.wms_main.dao.ITAppLocationService;
|
||||||
import com.wms_main.dao.ITAppOrderInService;
|
import com.wms_main.dao.ITAppOrderInService;
|
||||||
import com.wms_main.dao.ITAppOrderOutService;
|
import com.wms_main.dao.ITAppOrderOutService;
|
||||||
import com.wms_main.dao.ITAppStockService;
|
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.bo.erp.ErpVehicleNoResp;
|
||||||
import com.wms_main.model.dto.request.ycwms.*;
|
import com.wms_main.model.dto.request.ycwms.*;
|
||||||
import com.wms_main.model.dto.response.ycwms.YcwmsResponse;
|
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.TAppOrderIn;
|
||||||
import com.wms_main.model.po.TAppOrderOut;
|
import com.wms_main.model.po.TAppOrderOut;
|
||||||
import com.wms_main.model.po.TAppStock;
|
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.StringUtils;
|
||||||
import com.wms_main.repository.utils.UUIDUtils;
|
import com.wms_main.repository.utils.UUIDUtils;
|
||||||
import com.wms_main.service.api.IExternalApiService;
|
import com.wms_main.service.api.IExternalApiService;
|
||||||
|
|
@ -35,6 +38,7 @@ public class YcwmsControllerServiceImpl implements IYcwmsControllerService {
|
||||||
private final ITAppOrderInService appOrderInService;
|
private final ITAppOrderInService appOrderInService;
|
||||||
private final ITAppOrderOutService appOrderOutService;
|
private final ITAppOrderOutService appOrderOutService;
|
||||||
private final ITAppStockService appStockService;
|
private final ITAppStockService appStockService;
|
||||||
|
private final ITAppLocationService appLocationService;
|
||||||
private final IExternalApiService externalApiService;
|
private final IExternalApiService externalApiService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -55,6 +59,7 @@ public class YcwmsControllerServiceImpl implements IYcwmsControllerService {
|
||||||
return YcwmsResponse.error("入库单已存在,请勿重复推送", null);
|
return YcwmsResponse.error("入库单已存在,请勿重复推送", null);
|
||||||
}
|
}
|
||||||
String vehicleNo = request.getVehicleNo();
|
String vehicleNo = request.getVehicleNo();
|
||||||
|
String inStand = ConvertUtils.convertPointToDestination(request.getInStand());
|
||||||
List<ErpGoodsDetail> erpGoodsDetails = new ArrayList<>();
|
List<ErpGoodsDetail> erpGoodsDetails = new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
YcwmsResponse<ErpVehicleNoResp> erpResp = externalApiService.getVehicleNoData(vehicleNo);
|
YcwmsResponse<ErpVehicleNoResp> erpResp = externalApiService.getVehicleNoData(vehicleNo);
|
||||||
|
|
@ -74,13 +79,17 @@ public class YcwmsControllerServiceImpl implements IYcwmsControllerService {
|
||||||
Iterator<OrderInGoodsDetail> iterator = mesGoodsDetails.iterator();
|
Iterator<OrderInGoodsDetail> iterator = mesGoodsDetails.iterator();
|
||||||
while (iterator.hasNext()) {
|
while (iterator.hasNext()) {
|
||||||
OrderInGoodsDetail goodsDetail = iterator.next();
|
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 ->
|
boolean matchFound = erpGoodsDetails.stream().anyMatch(erpGoodsDetail ->
|
||||||
erpGoodsDetail.getGoodsId().equals(goodsDetail.getGoodsId()) &&
|
erpGoodsDetail.getGoodsId().equals(goodsDetail.getGoodsId()) &&
|
||||||
erpGoodsDetail.getGoodsBarcode().equals(goodsDetail.getGoodsBarcode()) &&
|
Objects.equals(erpGoodsDetail.getQuantity(), goodsDetail.getQuantity()) &&
|
||||||
Objects.equals(erpGoodsDetail.getQuantity(), goodsDetail.getQuantity()) &&
|
erpGoodsDetail.getGoodsType().equals(goodsDetail.getGoodsType()));
|
||||||
erpGoodsDetail.getGoodsType().equals(goodsDetail.getGoodsType()) &&
|
|
||||||
Objects.equals(erpGoodsDetail.getSpecification(), goodsDetail.getSpecification())
|
|
||||||
);
|
|
||||||
if (matchFound) {
|
if (matchFound) {
|
||||||
// 找到匹配的任务,删除该 goodsDetail
|
// 找到匹配的任务,删除该 goodsDetail
|
||||||
iterator.remove();
|
iterator.remove();
|
||||||
|
|
@ -99,7 +108,7 @@ public class YcwmsControllerServiceImpl implements IYcwmsControllerService {
|
||||||
orderIn.setOrderId(request.getOrderId());
|
orderIn.setOrderId(request.getOrderId());
|
||||||
orderIn.setVehicleNo(request.getVehicleNo());
|
orderIn.setVehicleNo(request.getVehicleNo());
|
||||||
orderIn.setVehicleSize(request.getVehicleSize());
|
orderIn.setVehicleSize(request.getVehicleSize());
|
||||||
orderIn.setInStand(request.getInStand());
|
orderIn.setInStand(inStand);
|
||||||
orderIn.setClientId(request.getClientId());
|
orderIn.setClientId(request.getClientId());
|
||||||
orderIn.setGoodsId(goodsDetail.getGoodsId());
|
orderIn.setGoodsId(goodsDetail.getGoodsId());
|
||||||
orderIn.setGoodsName(goodsDetail.getGoodsName());
|
orderIn.setGoodsName(goodsDetail.getGoodsName());
|
||||||
|
|
@ -210,5 +219,33 @@ public class YcwmsControllerServiceImpl implements IYcwmsControllerService {
|
||||||
return YcwmsResponse.success(respList);
|
return YcwmsResponse.success(respList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public YcwmsResponse<Object> 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<TAppLocation>()
|
||||||
|
.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<TAppLocation>()
|
||||||
|
.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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user