skyouc
16 小时以前 aa973f31ab7505d0a5baa2b395024cec806e4c62
盘点复核代码优化
4个文件已修改
2个文件已添加
10 文件已重命名
204 ■■■■ 已修改文件
rsf-admin/src/page/orders/check/CheckOrderPub.jsx 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/check/checkDiff/CheckDiffCreate.jsx 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/check/checkDiff/CheckDiffEdit.jsx 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/check/checkDiff/CheckDiffList.jsx 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/check/checkDiff/CheckDiffPanel.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/check/checkDiff/index.jsx 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/check/checkDiffItem/CheckDiffItemCreate.jsx 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/check/checkDiffItem/CheckDiffItemEdit.jsx 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/check/checkDiffItem/CheckDiffItemList.jsx 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/check/checkDiffItem/CheckDiffItemPanel.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/check/checkDiffItem/index.jsx 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/CheckDiff.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/CheckDiffItem.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WkOrder.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/CheckDiffExceStatus.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/CheckOrderSchedules.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/check/CheckOrderPub.jsx
@@ -441,16 +441,12 @@
            }
        })
        console.log(records);
        // const { data: { code, data, msg } } = await request.post('/check/generate/tasks', records);
        // if (code == 200) {
        //     refresh();
        //     redirect("/task")
        // } else {
        //     notify(msg);
        // }
        const { data: { code, data, msg } } = await request.post('/check/generate/tasks', records);
        if (code == 200) {
            refresh();
        } else {
            notify(msg);
        }
    }
    return (
        <ConfirmButton
rsf-admin/src/page/orders/check/checkDiff/CheckDiffCreate.jsx
File was renamed from rsf-admin/src/page/checkDiff/CheckDiffCreate.jsx
@@ -27,9 +27,9 @@
    Grid,
    Box,
} from '@mui/material';
import DialogCloseButton from "../components/DialogCloseButton";
import StatusSelectInput from "../components/StatusSelectInput";
import MemoInput from "../components/MemoInput";
import DialogCloseButton from "../../../components/DialogCloseButton";
import StatusSelectInput from "../../../components/StatusSelectInput";
import MemoInput from "../../../components/MemoInput";
const CheckDiffCreate = (props) => {
    const { open, setOpen } = props;
rsf-admin/src/page/orders/check/checkDiff/CheckDiffEdit.jsx
rsf-admin/src/page/orders/check/checkDiff/CheckDiffList.jsx
File was renamed from rsf-admin/src/page/checkDiff/CheckDiffList.jsx
@@ -36,11 +36,11 @@
import { styled } from '@mui/material/styles';
import CheckDiffCreate from "./CheckDiffCreate";
import CheckDiffPanel from "./CheckDiffPanel";
import EmptyData from "../components/EmptyData";
import MyCreateButton from "../components/MyCreateButton";
import MyExportButton from '../components/MyExportButton';
import PageDrawer from "../components/PageDrawer";
import MyField from "../components/MyField";
import EmptyData from "../../../components/EmptyData";
import MyCreateButton from "../../../components/MyCreateButton";
import MyExportButton from '../../../components/MyExportButton';
import PageDrawer from "../../../components/PageDrawer";
import MyField from "../../../components/MyField";
import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
import * as Common from '@/utils/common';
rsf-admin/src/page/orders/check/checkDiff/CheckDiffPanel.jsx
File was renamed from rsf-admin/src/page/checkDiff/CheckDiffPanel.jsx
@@ -4,7 +4,7 @@
    useTranslate,
    useRecordContext,
} from 'react-admin';
import PanelTypography from "../components/PanelTypography";
import PanelTypography from "../../../components/PanelTypography";
import * as Common from '@/utils/common'
const CheckDiffPanel = () => {
rsf-admin/src/page/orders/check/checkDiff/index.jsx
rsf-admin/src/page/orders/check/checkDiffItem/CheckDiffItemCreate.jsx
File was renamed from rsf-admin/src/page/checkDiffItem/CheckDiffItemCreate.jsx
@@ -27,9 +27,9 @@
    Grid,
    Box,
} from '@mui/material';
import DialogCloseButton from "../components/DialogCloseButton";
import StatusSelectInput from "../components/StatusSelectInput";
import MemoInput from "../components/MemoInput";
import DialogCloseButton from "../../../components/DialogCloseButton";
import StatusSelectInput from "../../../components/StatusSelectInput";
import MemoInput from "../../../components/MemoInput";
const CheckDiffItemCreate = (props) => {
    const { open, setOpen } = props;
rsf-admin/src/page/orders/check/checkDiffItem/CheckDiffItemEdit.jsx
File was renamed from rsf-admin/src/page/checkDiffItem/CheckDiffItemEdit.jsx
@@ -24,10 +24,10 @@
import { Stack, Grid, Box, Typography } from '@mui/material';
import * as Common from '@/utils/common';
import { EDIT_MODE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting';
import EditBaseAside from "../components/EditBaseAside";
import CustomerTopToolBar from "../components/EditTopToolBar";
import MemoInput from "../components/MemoInput";
import StatusSelectInput from "../components/StatusSelectInput";
import EditBaseAside from "../../../components/EditBaseAside";
import CustomerTopToolBar from "../../../components/EditTopToolBar";
import MemoInput from "../../../components/MemoInput";
import StatusSelectInput from "../../../components/StatusSelectInput";
const FormToolbar = () => {
    const { getValues } = useFormContext();
rsf-admin/src/page/orders/check/checkDiffItem/CheckDiffItemList.jsx
File was renamed from rsf-admin/src/page/checkDiffItem/CheckDiffItemList.jsx
@@ -36,11 +36,11 @@
import { styled } from '@mui/material/styles';
import CheckDiffItemCreate from "./CheckDiffItemCreate";
import CheckDiffItemPanel from "./CheckDiffItemPanel";
import EmptyData from "../components/EmptyData";
import MyCreateButton from "../components/MyCreateButton";
import MyExportButton from '../components/MyExportButton';
import PageDrawer from "../components/PageDrawer";
import MyField from "../components/MyField";
import EmptyData from "../../../components/EmptyData";
import MyCreateButton from "../../../components/MyCreateButton";
import MyExportButton from '../../../components/MyExportButton';
import PageDrawer from "../../../components/PageDrawer";
import MyField from "../../../components/MyField";
import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
import * as Common from '@/utils/common';
rsf-admin/src/page/orders/check/checkDiffItem/CheckDiffItemPanel.jsx
File was renamed from rsf-admin/src/page/checkDiffItem/CheckDiffItemPanel.jsx
@@ -4,7 +4,7 @@
    useTranslate,
    useRecordContext,
} from 'react-admin';
import PanelTypography from "../components/PanelTypography";
import PanelTypography from "../../../components/PanelTypography";
import * as Common from '@/utils/common'
const CheckDiffItemPanel = () => {
rsf-admin/src/page/orders/check/checkDiffItem/index.jsx
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/CheckDiff.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.annotation.TableLogic;
import java.text.SimpleDateFormat;
import java.util.Date;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -22,6 +24,7 @@
import java.util.Date;
@Data
@Accessors(chain = true)
@TableName("man_check_diff")
public class CheckDiff implements Serializable {
@@ -40,6 +43,10 @@
    @ApiModelProperty(value= "盘点单")
    private String orderCode;
    @ApiModelProperty("盘点单ID ")
    private Long orderId;
    /**
     * 盘点类型 0: 明盘   1: 暗盘  
     */
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/CheckDiffItem.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.annotation.TableLogic;
import java.text.SimpleDateFormat;
import java.util.Date;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -22,6 +24,7 @@
import java.util.Date;
@Data
@Accessors(chain = true)
@TableName("man_check_diff_item")
public class CheckDiffItem implements Serializable {
@@ -40,6 +43,12 @@
    @ApiModelProperty(value= "盘点ID")
    private Long checkId;
    @ApiModelProperty("任务ID")
    private Long taskId;
    @ApiModelProperty("任务明细ID")
    private Long taskItemId;
    /**
     * 盘点单
     */
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WkOrder.java
@@ -71,6 +71,9 @@
    @ApiModelProperty(value= "业务类型")
    private String wkType;
    @ApiModelProperty("盘点类型")
    private Integer checkType;
    /**
     * 送货数量
     */
rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/CheckDiffExceStatus.java
New file
@@ -0,0 +1,21 @@
package com.vincent.rsf.server.manager.enums;
public enum CheckDiffExceStatus {
    //盘点差异单执行状态
    CHECK_DIFF_EXCE_STATUS_UN("0", "未执行"),
    CHECK_DIFF_EXCE_STATUS_INIT("1", "初始化"),
    CHECK_DIFF_EXCE_STATUS_ING("2", "执行中"),
    CHECK_DIFF_EXCE_STATUS_DONE("3", "执行完成"),
    ;
    CheckDiffExceStatus(String val, String desc) {
        this.val = Integer.valueOf(val);
        this.desc = desc;
    }
    public Integer val;
    public String desc;
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/CheckOrderSchedules.java
New file
@@ -0,0 +1,104 @@
package com.vincent.rsf.server.manager.schedules;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.manager.entity.*;
import com.vincent.rsf.server.manager.enums.CheckDiffExceStatus;
import com.vincent.rsf.server.manager.enums.CheckExceStatus;
import com.vincent.rsf.server.manager.enums.TaskStsType;
import com.vincent.rsf.server.manager.enums.TaskType;
import com.vincent.rsf.server.manager.service.*;
import com.vincent.rsf.server.system.utils.SystemAuthUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
/**
 * @author Ryan
 * @version 1.0
 * @date 2025/7/18
 * @description: 盘点单任务档
 */
@Component
public class CheckOrderSchedules {
    @Autowired
    private TaskService taskService;
    @Autowired
    private TaskItemService taskItemService;
    @Autowired
    private CheckDiffService checkDiffService;
    @Autowired
    private CheckDiffItemService checkDiffItemService;
    @Autowired
    private CheckOrderService checkOrderService;
    @Autowired
    private CheckOrderItemService checkOrderItemService;
    /**
     * @author Ryan
     * @date 2025/7/18
     * @description: 自动获取已生成盘点任务的盘点列表
     * @version 1.0
     */
    @Scheduled(cron = "0/25 * * * * ?")
    @Transactional(rollbackFor = Exception.class)
    public void genReCheck() {
        List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>()
                .notExists("SELECT 1 FROM man_check_diff_item cdi WHERE id = cdi.task_item_id"));
        if (taskItems.isEmpty()) {
            return;
        }
        Long loginUserId = SystemAuthUtils.getLoginUserId();
        Map<Long, List<TaskItem>> taskMps = taskItems.stream().collect(Collectors.groupingBy(TaskItem::getOrderId));
        taskMps.keySet().forEach(orderId -> {
            WkOrder order = checkOrderService.getById(orderId);
            if (Objects.isNull(order)) {
               throw new CoolException("盘点单据不存在!!");
            }
            CheckDiff checkDiff = checkDiffService.getOne(new LambdaQueryWrapper<CheckDiff>().eq(CheckDiff::getOrderId, orderId));
            if (Objects.isNull(checkDiff)) {
                checkDiff = new CheckDiff();
                checkDiff.setAnfme(order.getAnfme())
                        .setCheckType(order.getCheckType())
                        .setOrderCode(order.getCode())
                        .setExceStatus(CheckDiffExceStatus.CHECK_DIFF_EXCE_STATUS_ING.val)
                        .setCreateBy(loginUserId)
                        .setCreateTime(new Date())
                        .setUpdateBy(loginUserId)
                        .setUpdateTime(new Date())
                        .setOrderId(order.getId());
                if (!checkDiffService.save(checkDiff)) {
                    throw new CoolException("盘点差异单保存失败!!");
                }
            }
            List<TaskItem> items = taskMps.get(orderId);
            List<CheckDiffItem> diffItems = new ArrayList<>();
            CheckDiff finalCheckDiff = checkDiff;
            items.forEach(item -> {
                CheckDiffItem checkDiffItem = new CheckDiffItem();
                BeanUtils.copyProperties(item, checkDiffItem);
                checkDiffItem.setCheckId(finalCheckDiff.getId())
                        .setTaskItemId(item.getId())
                        .setTaskId(item.getTaskId())
                        .setCreateBy(loginUserId)
                        .setCreateTime(new Date())
                        .setUpdateBy(loginUserId)
                        .setUpdateTime(new Date())
                        .setOrderCode(finalCheckDiff.getOrderCode());
                diffItems.add(checkDiffItem);
            });
           if (!checkDiffItemService.saveBatch(diffItems)) {
               throw new CoolException("盘点差异单保存失败!!");
           }
        });
    }
}