skyouc
3 天以前 a6f41778b7770deee34870d53c889d4d06821d7b
终止波次功能优化
4个文件已修改
84 ■■■■ 已修改文件
rsf-admin/src/page/orders/wave/WaveList.jsx 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaveController.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WaveService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/wave/WaveList.jsx
@@ -227,9 +227,8 @@
    const refresh = useRefresh()
    const notify = useNotify()
    const stopClick = async (event) => {
        event.stopPropagation()
        const { data: { code, data, msg } } = await request.post('', { val: true, flag: 'WaveAutoExce' });
    const stopClick = async () => {
        const { data: { code, data, msg } } = await request.post('/wave/stop/pub/' + record?.id);
        if (code === 200) {
            notify(msg);
        } else {
@@ -238,7 +237,7 @@
    }
    return (
        <ConfirmButton label={"toolbar.stopPub"} startIcon={<StopOutlinedIcon />} onConfirm={stopClick} size='small' />
        record?.exceStatus != 3 ? <ConfirmButton label={"toolbar.stopPub"} startIcon={<StopOutlinedIcon />} onConfirm={stopClick} size='small' /> : <></>
    )
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaveController.java
@@ -24,6 +24,7 @@
import com.vincent.rsf.server.manager.service.TaskItemService;
import com.vincent.rsf.server.manager.service.WaveService;
import com.vincent.rsf.server.manager.service.impl.TaskItemLogServiceImpl;
import com.vincent.rsf.server.manager.service.impl.WaveItemServiceImpl;
import com.vincent.rsf.server.system.controller.BaseController;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
@@ -45,6 +46,8 @@
    private OutStockService outStockService;
    @Autowired
    private TaskItemLogService taskItemLogService;
    @Autowired
    private WaveItemServiceImpl waveItemService;
    @PreAuthorize("hasAuthority('manager:wave:list')")
    @PostMapping("/wave/page")
@@ -193,22 +196,7 @@
        if (Objects.isNull(id)) {
            return R.error("参数不能为空!!");
        }
        Wave wave = waveService.getById(id);
        if (Objects.isNull(wave)) {
            throw new CoolException("波次单不存在!!");
        }
        List<TaskItemLog> taskItems = taskItemLogService.list(new LambdaQueryWrapper<TaskItemLog>().eq(TaskItemLog::getSourceId, wave.getId()));
        if (taskItems.isEmpty()) {
        } else {
        }
        waveService.update(new LambdaUpdateWrapper<Wave>()
                .eq(Wave::getId, id)
                .set(Wave::getExceStatus, WaveExceStatus.WAVE_EXCE_STATUS_TASK.val));
        return R.ok();
        return waveService.stopPubTask(id);
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WaveService.java
@@ -47,4 +47,11 @@
     * @time 2025/4/25 16:24
     */
    R waveToTask(Map<String, Object> map, Long loginUserId);
    /**
     * 终止下发
     * @param id
     * @return
     */
    R stopPubTask(Long id);
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java
@@ -56,6 +56,8 @@
    private WaveService waveService;
    @Autowired
    private WaveRuleServiceImpl waveRuleService;
    @Autowired
    private WaveOrderRelaServiceImpl waveOrderRelaService;
    /**
     * @param
@@ -213,6 +215,54 @@
    }
    /**
     * 终止波次下发任务
     *
     * @param id
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R stopPubTask(Long id) {
        Wave wave = this.getById(id);
        if (Objects.isNull(wave)) {
            throw new CoolException("波次单不存在!!");
        }
        List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>()
                .eq(TaskItem::getSourceId, wave.getId()));
        if (!taskItems.isEmpty()) {
            throw new CoolException("已生成任务不可终止当前波次!!");
        }
        List<WaveOrderRela> orderRelas = waveOrderRelaService.list(new LambdaQueryWrapper<WaveOrderRela>().eq(WaveOrderRela::getWaveId, id));
        if (orderRelas.isEmpty()) {
            throw new CoolException("无关联明细!!");
        }
        List<Long> orderIds = orderRelas.stream().map(WaveOrderRela::getOrderItemId).collect(Collectors.toList());
        List<AsnOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>().in(AsnOrderItem::getId, orderIds));
        orderItems.forEach(asnOrderItem -> {
            asnOrderItem.setWorkQty(0.0);
            if (!asnOrderItemService.updateById(asnOrderItem)) {
                throw new CoolException("单据明细更新失败!!");
            }
        });
        List<Long> orders = orderRelas.stream().map(WaveOrderRela::getOrderId).collect(Collectors.toList());
        if (!asnOrderService.update(new LambdaUpdateWrapper<AsnOrder>()
                .set(AsnOrder::getWorkQty, 0.0)
                .set(AsnOrder::getExceStatus, AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.val)
                .in(AsnOrder::getId, orders))) {
            throw new CoolException("单据更新失败!!");
        }
        this.update(new LambdaUpdateWrapper<Wave>()
                .eq(Wave::getId, id)
                .set(Wave::getExceStatus, WaveExceStatus.WAVE_EXCE_STATUS_TASK.val));
        return R.ok();
    }
    /**
     * @param
     * @param loginUserId
     * @param wave