云
5 天以前 cccbfadcb6e96c23a33c40c0687a27c2f6efa1db
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnsales/MesWmReturnSalesServiceImpl.java
@@ -4,6 +4,9 @@
import cn.hutool.core.util.ObjUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.aftersales.api.AfterSaleTicketApi;
import cn.iocoder.yudao.module.aftersales.api.dto.AfterSaleWarehouseReturnStageReqDTO;
import cn.iocoder.yudao.module.aftersales.api.dto.AfterSaleWarehouseReturnCreateReqDTO;
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
@@ -58,6 +61,8 @@
    private MesMdmItemService mdmItemService;
    @Resource
    private MesWmTransactionService wmTransactionService;
    @Resource
    private AfterSaleTicketApi afterSaleTicketApi;
    @Override
    @Transactional(rollbackFor = Exception.class)
@@ -69,6 +74,15 @@
        MesWmReturnSalesDO returnSales = BeanUtils.toBean(createReqVO, MesWmReturnSalesDO.class);
        returnSales.setStatus(MesWmReturnSalesStatusEnum.PREPARE.getStatus());
        returnSalesMapper.insert(returnSales);
        // 3. 同步关联售后工单:仓储退货留痕 + 工单进入待退货
        AfterSaleWarehouseReturnCreateReqDTO returnReqDTO = new AfterSaleWarehouseReturnCreateReqDTO();
        returnReqDTO.setSaleOrderId(createReqVO.getSaleOrderId());
        returnReqDTO.setReturnSalesId(returnSales.getId());
        returnReqDTO.setReturnSalesCode(createReqVO.getCode());
        returnReqDTO.setReturnReason(createReqVO.getReturnReason());
        afterSaleTicketApi.onWarehouseReturnCreated(returnReqDTO);
        return returnSales.getId();
    }
@@ -189,6 +203,12 @@
        // 3. 更新退货单状态
        returnSalesMapper.updateById(new MesWmReturnSalesDO()
                .setId(id).setStatus(MesWmReturnSalesStatusEnum.FINISHED.getStatus()));
        if (returnSales.getSaleOrderId() != null) {
            afterSaleTicketApi.onWarehouseReturnInboundFinished(new AfterSaleWarehouseReturnStageReqDTO()
                    .setSaleOrderId(returnSales.getSaleOrderId())
                    .setReturnSalesId(returnSales.getId())
                    .setReturnSalesCode(returnSales.getCode()));
        }
    }
    private void createTransactionList(MesWmReturnSalesDO returnSales) {