skyouc
3 天以前 a5816e4f1abd1e513d304357e542b75ff76a8f94
任务列表完成优化
5个文件已修改
68 ■■■■■ 已修改文件
rsf-admin/src/page/task/TaskList.jsx 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/system/constant/GlobalConfigCode.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/resources/application-dev.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/task/TaskList.jsx
@@ -39,6 +39,7 @@
import CancelIcon from '@mui/icons-material/Cancel';
import PageDrawer from "../components/PageDrawer";
import MyField from "../components/MyField";
import ConfirmButton from "../components/ConfirmButton";
import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
import * as Common from '@/utils/common';
@@ -188,7 +189,6 @@
    };
    //完成任务
    const completeTask = async (row) => {
        console.log(row.id);
        const { data: { code, data, msg } } = await request.post(`task/complete/` + row.id);
        if (code === 200) {
            notify(msg);
@@ -198,11 +198,7 @@
        }
    }
    return (
        <Button
            onClick={clickComplete}
            label="toolbar.complete">
            <TaskAltIcon />
        </Button>
        <ConfirmButton label={"toolbar.complete"} color="secondary" startIcon={<TaskAltIcon />} onConfirm={clickComplete} />
    )
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
@@ -55,7 +55,6 @@
    * @return
    * @time 2025/4/2 12:37
    */
//    @Scheduled(cron = "0 0/05 * * * ?  ")
    @Scheduled(cron = "0/3 * * * * ?")
    @Transactional(rollbackFor = Exception.class)
    public void completeInStock() throws Exception {
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
@@ -371,15 +371,41 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void completeTask(List<Task> tasks) throws Exception {
        if (tasks.isEmpty()) {
        for (Task task : tasks) {
            if (task.getTaskType() < TaskType.TASK_TYPE_OUT.type) {
                //入库任务
                complateInstock(task);
            } else {
                //出库任务
                complateOutStock(task);
            }
        }
    }
    /**
     * @author Ryan
     * @date 2025/5/20
     * @description: 完成出库任务,更新出库库存信息
     * @version 1.0
     */
    public void complateOutStock(Task task) {
    }
    /**
     * @author Ryan
     * @date 2025/5/20
     * @description: 完成入库任务
     * @version 1.0
     */
    public void complateInstock(Task task) {
        if (Objects.isNull(task)) {
            return;
        }
        List<Long> list = tasks.stream().map(Task::getId).collect(Collectors.toList());
        List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>().in(TaskItem::getTaskId, list));
        List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>().in(TaskItem::getTaskId, task.getId()));
        if (taskItems.isEmpty()) {
            throw new CoolException("任务明细不存在!!");
        }
        List<String> locCodes = tasks.stream().map(Task::getTargLoc).collect(Collectors.toList());
        Map<Long, List<TaskItem>> listMap = taskItems.stream().collect(Collectors.groupingBy(TaskItem::getTaskId));
        /**对任务明细按任务主单进行分组*/
        listMap.keySet().forEach(key -> {
@@ -396,10 +422,7 @@
        Map<Long, List<TaskItem>> orderMap = taskItems.stream().collect(Collectors.groupingBy(TaskItem::getSource));
        orderMap.keySet().forEach(key -> {
            WaitPakinItem pakinItem = waitPakinItemService.getById(key);
//            AsnOrder order = asnOrderService.getOne(new LambdaQueryWrapper<AsnOrder>()
//                    .eq(AsnOrder::getId, key)
//                    .select(AsnOrder::getId, AsnOrder::getPoCode, AsnOrder::getCode));
            if (null == pakinItem) {
            if (Objects.isNull(pakinItem)) {
                throw new CoolException("数据错误:组拖数据不存在,请联系管理员!!");
            }
            List<TaskItem> items = orderMap.get(key);
@@ -413,10 +436,10 @@
            }
        });
        /**修改库位状态为F.在库*/
        if (!locService.update(new LambdaUpdateWrapper<Loc>().set(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_F.type).in(Loc::getCode, locCodes))) {
        if (!locService.update(new LambdaUpdateWrapper<Loc>().set(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_F.type).eq(Loc::getCode, task.getTargLoc()))) {
            throw new CoolException("库位状态修改失败!!");
        }
        if (!this.update(new LambdaUpdateWrapper<Task>().in(Task::getId, list).set(Task::getTaskStatus, TaskStsType.UPDATED_IN.id))) {
        if (!this.update(new LambdaUpdateWrapper<Task>().eq(Task::getId, task.getId()).set(Task::getTaskStatus, TaskStsType.UPDATED_IN.id))) {
            throw new CoolException("任务状态修改失败!!");
        }
    }
@@ -486,19 +509,13 @@
    }
    /**
     * 生成库存明细
     * 生成入库库存明细
     * @param items
     * @return
     */
    @Transactional(rollbackFor = Exception.class)
    public void saveStockItems(List<TaskItem> items, WaitPakinItem order) throws Exception {
        Stock stock = new Stock();
//        if (!Objects.isNull(order.getPoCode()) && StringUtils.isNotBlank(order.getPoCode())) {
//            Purchase purchase = purchaseService.getOne(new LambdaQueryWrapper<Purchase>().eq(Purchase::getCode, order.getPoCode()));
//            if (!Objects.isNull(purchase)) {
//                stock.setPlatOrderNo(purchase.getPlatCode()).setPlatToken(purchase.getPlatId());
//            }
//        }
        String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_STOCK_CODE, null);
        if (StringUtils.isBlank(ruleCode)) {
            throw new CoolException("当前业务:" + SerialRuleCode.SYS_STOCK_CODE + ",编码规则不存在!!");
@@ -517,10 +534,6 @@
        List<StockItem> stockItems = new ArrayList<>();
        for (TaskItem item : items) {
            /**通过任务明细中的taskId查询,获取TASK的目标库位信息*/
//            AsnOrderItem orderItem = asnOrderItemService.getOne(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getId, item.getOrderItemId()));
//            if (Objects.isNull(orderItem)) {
//                throw new CoolException("单据明细不存在!!");
//            }
            StockItem stockItem = new StockItem();
            BeanUtils.copyProperties(item, stockItem);
            stockItem.setSourceItemId(item.getOrderItemId())
rsf-server/src/main/java/com/vincent/rsf/server/system/constant/GlobalConfigCode.java
@@ -14,7 +14,7 @@
    public final static String DIRECT_WAIT_PAKIN = "DirectWaitPakin";
    /**收货时是否允许超收*/
    public final static String ALLOW_OVER_CHANGE = "AllowOverchange";
    /**订单是否上报平台*/
    public final static String ORDER_INOF_REPORT_PLAT = "OrderInofReportPlat";
}
rsf-server/src/main/resources/application-dev.yml
@@ -14,7 +14,7 @@
    driver-class-name: com.mysql.jdbc.Driver
#    url: jdbc:mysql://47.76.147.249:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    url: jdbc:mysql://127.0.0.1:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
    url: jdbc:mysql://192.168.4.50:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
#    username: rsf
    password: 34821015
    type: com.alibaba.druid.pool.DruidDataSource