skyouc
2025-04-29 e01c5a713793239e26b2e304fafd551affa4bcfc
波次任务下发功能优化
9个文件已修改
81 ■■■■■ 已修改文件
rsf-admin/src/App.jsx 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/i18n/core/chineseMessages.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/i18n/en.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/i18n/zh.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/wave/ItemToTaskModal.jsx 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/task/TaskList.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TaskItem.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/App.jsx
@@ -44,6 +44,9 @@
  [
    { locale: "en", name: "English" },
    { locale: "zh", name: "简体中文" },
    // { locale: "zh", name: "简体中文" },
    // { locale: "zh", name: "简体中文" },
    // { locale: "zh", name: "简体中文" },
  ],
  {
    // msg in console
rsf-admin/src/i18n/core/chineseMessages.js
@@ -95,7 +95,7 @@
      delete_title: "删除 %{name} #%{id}",
      details: "Details",
      error: "A client error occurred and your request couldn't be completed.",
      invalid_form: "表单无效 请检查是否有错误!",
      loading: "Please wait",
      no: "No",
rsf-admin/src/i18n/en.js
@@ -1028,6 +1028,13 @@
        order: 'Orders',
    },
    request: {
        error: {
            stock: "Insufficient inventory to deliver !!"
        }
    }
};
export default customEnglishMessages;
rsf-admin/src/i18n/zh.js
@@ -1042,6 +1042,12 @@
        createWave: "生成波次",
        recover: "继续收货",
    },
    request: {
        error: {
            stock: "库存不足,无法提交!!"
        }
    }
};
export default customChineseMessages;
rsf-admin/src/page/orders/wave/ItemToTaskModal.jsx
@@ -150,7 +150,7 @@
                </DialogContent>
                <DialogActions>
                    <Toolbar sx={{ width: '100%', justifyContent: 'end' }} >
                        <GenerateTaskButton record={record?.id} dataSource={data} />
                        <GenerateTaskButton record={record?.id} dataSource={data} setOpen={setOpen}/>
                    </Toolbar>
                </DialogActions>
            </Dialog>
@@ -160,22 +160,32 @@
export default ItemToTaskModal;
const GenerateTaskButton = (record, dataSource) => {
const GenerateTaskButton = (record) => {
    const refresh = useRefresh();
    const notify = useNotify();
    const redirect = useRedirect();
    const translate = useTranslate();
    const { locs, setLocs } = useState([]);
    const generateTask = async () => {
        const params = {wave: record, waveItem: dataSource}
        console.log('---------->');
        console.log(record);
        const res = await request.post(`/wave/public/task`, { wave: record?.record, waveItem: record?.dataSource });
        if (res?.data?.code === 200) {
            notify(res.data.msg);
            redirect("/task")
        record?.dataSource.map(item => {
            const loc = JSON.parse(item.stockLocs);
            if (loc != undefined && loc.length > 0) {
                setLocs(...loc)
            }
        })
        if (locs == undefined || locs.length < 1) {
            notify(translate('request.error.stock'))
        } else {
            notify(res.data.msg);
            const res = await request.post(`/wave/public/task`, { wave: record?.record, waveItem: record?.dataSource });
            if (res?.data?.code === 200) {
                notify(res.data.msg);
                redirect("/task")
            } else {
                notify(res.data.msg);
            }
            refresh();
        }
        refresh();
        record.setOpen(false)
    }
    return (<Button variant="contained" label={"ra.action.save"} onClick={generateTask}></Button>)
}
rsf-admin/src/page/task/TaskList.jsx
@@ -103,7 +103,7 @@
                title={"menu.task"}
                empty={false}
                filters={filters}
                sort={{ field: "sort", order: "desc" }}
                sort={{ field: "create_time", order: "desc" }}
                actions={(
                    <TopToolbar>
                        <FilterButton />
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TaskItem.java
@@ -99,6 +99,12 @@
    private Double anfme;
    /**
     * 库存数量
     */
    @ApiModelProperty("库存数量")
    private Double stockQty;
    /**
     * 库存批次
     */
    @ApiModelProperty(value= "库存批次")
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
@@ -301,7 +301,7 @@
        double sum2 = orderItems.stream().mapToDouble(AsnOrderItem::getWorkQty).sum();
        if (!this.update(new LambdaUpdateWrapper<AsnOrder>()
                .set(AsnOrder::getWaveId, wave.getId())
                        .set(AsnOrder::getWorkQty, sum2)
                .set(AsnOrder::getWorkQty, sum2)
                .set(AsnOrder::getExceStatus, AsnExceStatus.OUT_STOCK_STATUS_TASK_WAVE.val)
                .in(AsnOrder::getId, ids))) {
            throw new CoolException("执行状态修改修改失败!!");
@@ -310,10 +310,10 @@
    }
    /**
     * @author Ryan
     * @description 保存出库主单及明细
     * @param
     * @return
     * @author Ryan
     * @description 保存出库主单及明细
     * @time 2025/4/29 13:47
     */
    @Override
@@ -334,9 +334,9 @@
        if (Objects.isNull(ruleCode) || StringUtils.isBlank(ruleCode)) {
            throw new CoolException("编码规则错误:请检查「SYS_OUT_STOCK_CODE」是否设置正确!!");
        }
        orders.setCode(ruleCode)
                .setType(OrderType.ORDER_OUT.type)
                .setExceStatus(AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.val)
                .setUpdateBy(loginUserId)
                .setCreateBy(loginUserId);
        if (!this.save(orders)) {
@@ -347,7 +347,7 @@
        }
        params.setOrders(orders);
        try {
            svaeOrUpdateOrderItem(params,loginUserId);
            svaeOrUpdateOrderItem(params, loginUserId);
        } catch (Exception e) {
            throw new CoolException(e.getMessage());
        }
@@ -357,10 +357,10 @@
    /**
     * @author Ryan
     * @description 修改主单及明细
     * @param
     * @return
     * @author Ryan
     * @description 修改主单及明细
     * @time 2025/4/29 13:47
     */
    @Override
@@ -380,7 +380,7 @@
        }
        try {
            svaeOrUpdateOrderItem(params,loginUserId);
            svaeOrUpdateOrderItem(params, loginUserId);
        } catch (Exception e) {
            throw new CoolException(e.getMessage());
        }
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java
@@ -68,7 +68,6 @@
        if (Objects.isNull(waves)) {
            throw new CoolException("波次数据不存在!!");
        }
//        List<Long> list = itemParams.stream().map(WaveItem::getWaveId).collect(Collectors.toList());
        List<WaveItem> waveItems = waveItemService.list(new LambdaQueryWrapper<WaveItem>().eq(WaveItem::getWaveId, waves.getId()));
        if (waveItems.isEmpty()) {
            throw new CoolException("波次明细不存在!!");
@@ -85,17 +84,12 @@
        // 3. 修改主单、波次执行数量
        // 4. 判断全仓出库或拣料出库
        List<Long> orderIds = waveItems.stream().map(WaveItem::getOrderId).collect(Collectors.toList());
//        List<AsnOrder> orders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>().in(AsnOrder::getId, orderIds));
        /**修改出库单状态*/
        if (!asnOrderService.update(new LambdaUpdateWrapper<AsnOrder>()
                .set(AsnOrder::getExceStatus, AsnExceStatus.OUT_STOCK_STATUS_TASK_WORKING.val)
                .in(AsnOrder::getId, orderIds))) {
            throw new CoolException("出库单据状态修改失败!!");
        }
//        /**修改波次单据执行状态*/
//        if (!this.update(new LambdaUpdateWrapper<Wave>().set(Wave::getExceStatus, WaveExceStatus.WAVE_EXCE_STATUS_TASK).eq(Wave::getId, waves.getId()))) {
//            throw new CoolException("波次状态修改失败!!");
//        }
        return R.ok();
    }
@@ -178,6 +172,7 @@
                TaskItem taskItem = new TaskItem();
                BeanUtils.copyProperties(item, taskItem);
                taskItem.setTaskId(task.getId())
                        .setAnfme(waveItem.getAnfme())
                        .setId(null)
                        .setSource(item.getWaveItemId());
                taskItems.add(taskItem);