add:单据回传新增回传策略功能CallbackStrategy

This commit is contained in:
zhangzq
2026-06-24 13:53:03 +08:00
parent e29664cc90
commit e0d0669dae
11 changed files with 74 additions and 24 deletions

View File

@@ -7,14 +7,11 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.IdUtil;
import org.nl.common.utils.MapOf;
import org.nl.common.utils.SecurityUtils;
import org.nl.config.SpringContextHolder;
import org.nl.wms.basedata_manage.service.*;
import org.nl.wms.basedata_manage.service.dao.*;
import org.nl.wms.pda_manage.ios_manage.purchase.service.dto.GroupPlateInboundDto;
@@ -29,10 +26,7 @@ import org.nl.wms.pda_manage.ios_manage.purchase.service.InboundPdaService;
import org.nl.wms.pda_manage.ios_manage.purchase.service.vo.PurchaseMatInfoVo;
import org.nl.wms.pm_manage.purchase.service.dao.Purchasedtl;
import org.nl.wms.pm_manage.purchase.service.dao.Purchasemst;
import org.nl.wms.pm_manage.purchase.service.dao.mapper.PurchasedtlMapper;
import org.nl.wms.pm_manage.purchase.service.dao.mapper.PurchasemstMapper;
import org.nl.wms.pda_manage.ios_manage.purchase.service.dto.PdaGroupPlateDto;
import org.nl.wms.sch_manage.enums.StatusEnum;
import org.nl.wms.warehouse_manage.enums.IOSEnum;
import org.nl.wms.warehouse_manage.inAndOut.service.IInBillService;
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDtl;
@@ -44,11 +38,9 @@ import org.nl.wms.warehouse_manage.inventory.core.enums.InventoryChangeType;
import org.nl.wms.warehouse_manage.inventory.core.param.impl.AddInvParam;
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
import org.nl.wms.warehouse_manage.service.dao.GroupPlate;
import org.nl.wms.warehouse_manage.stockReturn.service.IPmStockReturnService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;

View File

@@ -2,11 +2,7 @@ package org.nl.wms.pm_manage.preceiving.listenerHandler;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import org.nl.wms.pm_manage.demand.service.IPmDemandService;
import org.nl.wms.pm_manage.demand.service.dao.PmDemand;
import org.nl.wms.pm_manage.demand.service.enums.DemandStatus;
import org.nl.wms.pm_manage.listener.core.BaseFormListenerHandler;
import org.nl.wms.warehouse_manage.enums.IOSEnum;
import org.nl.wms.warehouse_manage.stockReturn.service.IPmStockReturnService;

View File

@@ -6,7 +6,6 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.time.DateFormatUtils;
import org.nl.common.utils.IdUtil;
import org.nl.wms.ext_manage.purchase.service.dto.EasAuditRequestDto;
import org.nl.wms.ext_manage.service.WmsToErpService;
import org.nl.wms.pm_manage.listener.core.BaseFormListenerHandler;

View File

@@ -15,7 +15,6 @@ import org.nl.common.utils.SecurityUtils;
import org.nl.wms.ext_manage.service.WmsToErpService;
import org.nl.wms.pda_manage.ios_manage.purchase.service.vo.PurchaseMatInfoVo;
import com.alibaba.fastjson.JSON;
import org.nl.common.utils.IdUtil;
import org.nl.wms.pm_manage.purchase.service.PurchaseService;
import org.nl.wms.pm_manage.purchase.service.dao.Purchasedtl;
import org.nl.wms.pm_manage.purchase.service.dao.Purchasemst;

View File

@@ -3,6 +3,7 @@ package org.nl.wms.warehouse_manage.inAndOut.service.dao;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import org.nl.wms.warehouse_manage.stockReturn.strategy.core.CallbackStrategy;
import java.io.Serializable;
import java.math.BigDecimal;
@@ -109,4 +110,11 @@ public class IOStorInvDtl implements Serializable {
* 未分配数量
*/
private BigDecimal unassign_qty;
/**
* 单据回传策略
* @see CallbackStrategy
*/
private String callback_strategy ;
}

View File

@@ -29,8 +29,6 @@ import org.nl.wms.basedata_manage.service.dao.Sectattr;
import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper;
import org.nl.wms.basedata_manage.service.dto.*;
import org.nl.wms.pm_manage.demand.listenerHandler.DemandListenerParams;
import org.nl.wms.pm_manage.listener.PmManageEvent;
import org.nl.wms.sch_manage.enums.TaskStatus;
import org.nl.wms.sch_manage.service.ISchBasePointService;
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
@@ -38,6 +36,7 @@ import org.nl.wms.sch_manage.service.dao.SchBasePoint;
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
import org.nl.wms.sch_manage.service.dao.mapper.SchBasePointMapper;
import org.nl.wms.sch_manage.service.core.tasks.StOutTask;
import org.nl.wms.warehouse_manage.stockReturn.strategy.CallbackStrategyPublish;
import org.nl.wms.warehouse_manage.enums.IOSConstant;
import org.nl.wms.warehouse_manage.enums.IOSEnum;
import org.nl.wms.warehouse_manage.inventory.IStInventoryService;
@@ -58,7 +57,6 @@ import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvMapper;
import org.nl.wms.warehouse_manage.inAndOut.service.dto.IOStorInvDisDto;
import org.nl.wms.warehouse_manage.inAndOut.service.dto.IOStorInvDtlDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
@@ -110,7 +108,7 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
@Autowired
private ISectattrService iSectattrService;
@Autowired
private ApplicationEventPublisher eventPublisher;
private CallbackStrategyPublish callbackStrategyPublish;
@Autowired
private MdPbStoragevehicleextMapper mdPbStoragevehicleextMapper;
@Autowired
@@ -1195,10 +1193,7 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
// 更新明细表状态
ioStorInvDtl.setBill_status(IOSEnum.BILL_STATUS.code("完成"));
ioStorInvDtlMapper.updateById(ioStorInvDtl);
//TODO这里不区分后续在smart中区分需求单出库才走这个
eventPublisher.publishEvent(
new PmManageEvent(ioStorInvDtl.getSource_bill_type()
,new DemandListenerParams(ioStorInvDtl.getSource_bill_code(),ioStorInvDtl.getAssign_qty(),ioStorInvDtl.getMaterial_code())));
callbackStrategyPublish.callbackStrategy(ioStorInvDtl.getCallback_strategy(),ioStorInvDtl);
// 查看明细是否全部完成
int countDtl = ioStorInvDtlMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDtl.class)
.eq(IOStorInvDtl::getIostorinv_id,ioStorInvDtl.getIostorinv_id())

View File

@@ -15,7 +15,6 @@ import org.nl.wms.warehouse_manage.stockReturn.service.dao.PmStockReturn;
import org.nl.wms.warehouse_manage.stockReturn.service.enums.StockReturnStatusEnum;
import org.nl.wms.warehouse_manage.stockReturn.service.mapper.PmStockReturnMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;

View File

@@ -0,0 +1,21 @@
package org.nl.wms.warehouse_manage.stockReturn.strategy;
import org.nl.wms.warehouse_manage.stockReturn.strategy.core.CallbackStrategy;
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDtl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Map;
@Service
public class CallbackStrategyPublish {
@Autowired
Map<String, CallbackStrategy> callbackStrategyMap;
public void callbackStrategy(String strategy, IOStorInvDtl param){
CallbackStrategy callbackStrategy = callbackStrategyMap.get(strategy);
if (callbackStrategy!=null){
callbackStrategy.buildCallback(param);
}
}
}

View File

@@ -0,0 +1,16 @@
package org.nl.wms.warehouse_manage.stockReturn.strategy.core;
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDtl;
/**
* 单据回传策略,出入库明细完成时需要做回传则配置
*/
public interface CallbackStrategy {
default String getSourceType(){
return this.getClass().getSimpleName();
};
void buildCallback(IOStorInvDtl param);
}

View File

@@ -0,0 +1,25 @@
package org.nl.wms.warehouse_manage.stockReturn.strategy.core.impl;
import org.nl.wms.warehouse_manage.stockReturn.service.IPmStockReturnService;
import org.nl.wms.warehouse_manage.stockReturn.strategy.core.CallbackStrategy;
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDtl;
import org.nl.wms.welding_manage.service.work_order.IWorkOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* 生产入库回传
*/
@Service
public class DealManufactureRecBillCallback implements CallbackStrategy {
@Autowired
private IWorkOrderService iWorkOrderService;
@Autowired
private IPmStockReturnService iPmStockReturnService;
@Override
public void buildCallback(IOStorInvDtl param) {
}
}

View File

@@ -174,7 +174,7 @@ sa-token:
is-print: false
lucene:
index:
path: D:\lms\lucene\index
path: D:\lucene\index
eas:
webservice:
wsdl: http://192.168.100.100:8080/ormrpc/services/WSNLWQFacade?wsdl