skyouc
1 天以前 5264cf0915ee9901cb9520fdcc6b8cdd5ecd4837
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
@@ -79,6 +79,12 @@
    private TransferService transferService;
    @Autowired
    private TransferItemService transferItemService;
    @Autowired
    private LocReviseService locReviseService;
    @Autowired
    private ReviseLogService reviseLogService;
    @Autowired
    private ReviseLogItemService reviseLogItemService;
    /**
@@ -474,4 +480,56 @@
        return R.ok();
    }
    /**
     * @author Ryan
     * @date 2025/8/20
     * @description: 库存调整单同步
     * @version 1.0
     */
    @Override
    @Transactional(timeout = 60, rollbackFor = Exception.class)
    public R syncLocRevise(SyncLocReviseParams reviseParams) {
        LocRevise locRevise = new LocRevise();
        if (Objects.isNull(reviseParams.getAreaName())) {
            throw new CoolException("库区不能为空!!");
        }
        WarehouseAreas warehouseAreas = warehouseAreasService
                .getOne(new LambdaQueryWrapper<WarehouseAreas>()
                        .eq(WarehouseAreas::getName, reviseParams.getAreaName()));
        if (Objects.isNull(warehouseAreas)) {
            throw new CoolException("库区不存在!!");
        }
        locRevise.setAreaName(locRevise.getAreaName())
                .setAreaId(warehouseAreas.getId());
        locRevise.setCode(SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_LOC_REVISE_CODE, null));
        if (!locReviseService.save(locRevise)) {
            throw new CoolException("库存调整单保存失败!!");
        }
        reviseParams.getItems().forEach(revise -> {
            Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, revise.getLocCode()));
            ReviseLog reviseLog = new ReviseLog();
            BeanUtils.copyProperties(loc, reviseLog);
            reviseLog.setReviseId(locRevise.getId()).setReviseCode(locRevise.getCode());
            if (!reviseLogService.save(reviseLog)) {
                throw new CoolException("库存调整单不能为空!!");
            }
            revise.getItems().forEach(reviseItem -> {
                ReviseLogItem logItem = new ReviseLogItem();
                BeanUtils.copyProperties(reviseItem, logItem);
                logItem.setLocId(loc.getId())
                        .setLocCode(loc.getCode())
                        .setId(null)
                        .setReviseQty(reviseItem.getAnfme());
                if (!reviseLogItemService.save(logItem)) {
                    throw new CoolException("调整库存明细保存失败!!");
                }
            });
        });
        return R.ok();
    }
}