feat: observe outbound allocation without changing legacy
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package com.ruoyi.out.outStockout.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.ruoyi.algorithm.shadow.OutboundShadowObservation;
|
||||
import com.ruoyi.algorithm.shadow.ShadowObservationGateway;
|
||||
import com.ruoyi.api.service.IToWcsService;
|
||||
import com.ruoyi.bas.basJobId.service.IBasJobIdService;
|
||||
import com.ruoyi.common.annotation.DataScope;
|
||||
@@ -14,6 +16,7 @@ import com.ruoyi.out.outStockout.service.IOutStockoutService;
|
||||
import com.ruoyi.out.outStockoutDetail.domain.OutStockoutDetail;
|
||||
import com.ruoyi.out.outStockoutDetail.mapper.OutStockoutDetailMapper;
|
||||
import com.ruoyi.out.outStockoutDetail.service.IOutStockoutDetailService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.core.context.SecurityContextHolder;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -32,6 +35,7 @@ import java.util.List;
|
||||
* @date 2025-05-20
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class OutStockoutServiceImpl implements IOutStockoutService
|
||||
{
|
||||
@Autowired
|
||||
@@ -45,6 +49,8 @@ public class OutStockoutServiceImpl implements IOutStockoutService
|
||||
private IOutStockoutDetailService outStockoutDetailService;
|
||||
@Autowired
|
||||
private IToWcsService toWcsService;
|
||||
@Autowired
|
||||
private ShadowObservationGateway shadowObservationGateway;
|
||||
|
||||
/**
|
||||
* 查询出库主单
|
||||
@@ -182,7 +188,10 @@ public class OutStockoutServiceImpl implements IOutStockoutService
|
||||
map.put("v_stockout_detail_id", detail.getStockoutDetailId());
|
||||
map.put("v_result", null);
|
||||
map.put("v_resultmsg", null);
|
||||
OutboundShadowObservation shadowObservation =
|
||||
planProjectOutboundShadow(detail.getStockoutDetailId());
|
||||
outStockoutMapper.autoAllot(map);
|
||||
compareOutboundShadow(shadowObservation, map.get("v_result"));
|
||||
if (!"10".equals(map.get("v_result"))){
|
||||
stringBuilder.append(",").append(detail.getStockoutDetailId()+map.get("v_resultmsg"));
|
||||
}
|
||||
@@ -209,7 +218,10 @@ public class OutStockoutServiceImpl implements IOutStockoutService
|
||||
for (String stock : stockList) {
|
||||
map.put("v_stockout_detail_id", stockoutDetailId);
|
||||
map.put("v_stock_id", stock);
|
||||
OutboundShadowObservation shadowObservation =
|
||||
planExactStockOutboundShadow(stockoutDetailId, stock);
|
||||
outStockoutMapper.manualAllot(map);
|
||||
compareOutboundShadow(shadowObservation, map.get("v_result"));
|
||||
//toWcsService.pushOutMydoJob();
|
||||
if (!"10".equals(map.get("v_result"))){
|
||||
stringBuilder.append(",").append(stockoutDetailId+map.get("v_resultString"));
|
||||
@@ -221,6 +233,35 @@ public class OutStockoutServiceImpl implements IOutStockoutService
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
private OutboundShadowObservation planProjectOutboundShadow(String stockoutDetailId) {
|
||||
try {
|
||||
return shadowObservationGateway.planProjectOutbound(stockoutDetailId);
|
||||
} catch (RuntimeException exception) {
|
||||
log.warn("Project outbound shadow observation failed open for detail {}: {}",
|
||||
stockoutDetailId, exception.getMessage());
|
||||
return OutboundShadowObservation.empty();
|
||||
}
|
||||
}
|
||||
|
||||
private OutboundShadowObservation planExactStockOutboundShadow(String stockoutDetailId, String stockId) {
|
||||
try {
|
||||
return shadowObservationGateway.planExactStockOutbound(stockoutDetailId, stockId);
|
||||
} catch (RuntimeException exception) {
|
||||
log.warn("Exact-stock shadow observation failed open for detail {} stock {}: {}",
|
||||
stockoutDetailId, stockId, exception.getMessage());
|
||||
return OutboundShadowObservation.empty();
|
||||
}
|
||||
}
|
||||
|
||||
private void compareOutboundShadow(OutboundShadowObservation observation, String legacyResultCode) {
|
||||
try {
|
||||
shadowObservationGateway.compareOutbound(observation, legacyResultCode);
|
||||
} catch (RuntimeException exception) {
|
||||
log.warn("Outbound shadow comparison failed open for request {}: {}",
|
||||
observation == null ? null : observation.requestId(), exception.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateOutStockouts(OutStockout mainOut) {
|
||||
outStockoutMapper.updateOutStockouts(mainOut);
|
||||
|
||||
Reference in New Issue
Block a user