From aa973f31ab7505d0a5baa2b395024cec806e4c62 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期五, 18 七月 2025 14:40:59 +0800
Subject: [PATCH] 盘点复核代码优化

---
 rsf-admin/src/page/orders/check/checkDiffItem/CheckDiffItemCreate.jsx                      |    6 
 rsf-admin/src/page/orders/check/checkDiffItem/CheckDiffItemPanel.jsx                       |    2 
 rsf-admin/src/page/orders/check/checkDiff/CheckDiffEdit.jsx                                |    0 
 rsf-admin/src/page/orders/check/checkDiffItem/CheckDiffItemList.jsx                        |   10 +-
 rsf-admin/src/page/orders/check/checkDiff/CheckDiffList.jsx                                |   10 +-
 rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/CheckDiffExceStatus.java     |   21 +++++
 rsf-admin/src/page/orders/check/checkDiff/CheckDiffPanel.jsx                               |    2 
 rsf-admin/src/page/orders/check/checkDiff/CheckDiffCreate.jsx                              |    6 
 rsf-admin/src/page/orders/check/CheckOrderPub.jsx                                          |   16 +--
 rsf-admin/src/page/orders/check/checkDiffItem/index.jsx                                    |    0 
 rsf-admin/src/page/orders/check/checkDiffItem/CheckDiffItemEdit.jsx                        |    8 +-
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/CheckOrderSchedules.java |  104 ++++++++++++++++++++++++++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WkOrder.java                |    3 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/CheckDiffItem.java          |    9 ++
 rsf-admin/src/page/orders/check/checkDiff/index.jsx                                        |    0 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/CheckDiff.java              |    7 +
 16 files changed, 172 insertions(+), 32 deletions(-)

diff --git a/rsf-admin/src/page/orders/check/CheckOrderPub.jsx b/rsf-admin/src/page/orders/check/CheckOrderPub.jsx
index dd0816b..e9d4ded 100644
--- a/rsf-admin/src/page/orders/check/CheckOrderPub.jsx
+++ b/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
diff --git a/rsf-admin/src/page/checkDiff/CheckDiffCreate.jsx b/rsf-admin/src/page/orders/check/checkDiff/CheckDiffCreate.jsx
similarity index 96%
rename from rsf-admin/src/page/checkDiff/CheckDiffCreate.jsx
rename to rsf-admin/src/page/orders/check/checkDiff/CheckDiffCreate.jsx
index a089a43..94aec21 100644
--- a/rsf-admin/src/page/checkDiff/CheckDiffCreate.jsx
+++ b/rsf-admin/src/page/orders/check/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;
diff --git a/rsf-admin/src/page/checkDiff/CheckDiffEdit.jsx b/rsf-admin/src/page/orders/check/checkDiff/CheckDiffEdit.jsx
similarity index 100%
rename from rsf-admin/src/page/checkDiff/CheckDiffEdit.jsx
rename to rsf-admin/src/page/orders/check/checkDiff/CheckDiffEdit.jsx
diff --git a/rsf-admin/src/page/checkDiff/CheckDiffList.jsx b/rsf-admin/src/page/orders/check/checkDiff/CheckDiffList.jsx
similarity index 95%
rename from rsf-admin/src/page/checkDiff/CheckDiffList.jsx
rename to rsf-admin/src/page/orders/check/checkDiff/CheckDiffList.jsx
index 8aa3fc7..81df873 100644
--- a/rsf-admin/src/page/checkDiff/CheckDiffList.jsx
+++ b/rsf-admin/src/page/orders/check/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';
 
diff --git a/rsf-admin/src/page/checkDiff/CheckDiffPanel.jsx b/rsf-admin/src/page/orders/check/checkDiff/CheckDiffPanel.jsx
similarity index 98%
rename from rsf-admin/src/page/checkDiff/CheckDiffPanel.jsx
rename to rsf-admin/src/page/orders/check/checkDiff/CheckDiffPanel.jsx
index 4ad45b5..171505f 100644
--- a/rsf-admin/src/page/checkDiff/CheckDiffPanel.jsx
+++ b/rsf-admin/src/page/orders/check/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 = () => {
diff --git a/rsf-admin/src/page/checkDiff/index.jsx b/rsf-admin/src/page/orders/check/checkDiff/index.jsx
similarity index 100%
rename from rsf-admin/src/page/checkDiff/index.jsx
rename to rsf-admin/src/page/orders/check/checkDiff/index.jsx
diff --git a/rsf-admin/src/page/checkDiffItem/CheckDiffItemCreate.jsx b/rsf-admin/src/page/orders/check/checkDiffItem/CheckDiffItemCreate.jsx
similarity index 97%
rename from rsf-admin/src/page/checkDiffItem/CheckDiffItemCreate.jsx
rename to rsf-admin/src/page/orders/check/checkDiffItem/CheckDiffItemCreate.jsx
index 6a1ddad..f0b0b58 100644
--- a/rsf-admin/src/page/checkDiffItem/CheckDiffItemCreate.jsx
+++ b/rsf-admin/src/page/orders/check/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;
diff --git a/rsf-admin/src/page/checkDiffItem/CheckDiffItemEdit.jsx b/rsf-admin/src/page/orders/check/checkDiffItem/CheckDiffItemEdit.jsx
similarity index 95%
rename from rsf-admin/src/page/checkDiffItem/CheckDiffItemEdit.jsx
rename to rsf-admin/src/page/orders/check/checkDiffItem/CheckDiffItemEdit.jsx
index ea5a6b6..49b77a9 100644
--- a/rsf-admin/src/page/checkDiffItem/CheckDiffItemEdit.jsx
+++ b/rsf-admin/src/page/orders/check/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();
diff --git a/rsf-admin/src/page/checkDiffItem/CheckDiffItemList.jsx b/rsf-admin/src/page/orders/check/checkDiffItem/CheckDiffItemList.jsx
similarity index 95%
rename from rsf-admin/src/page/checkDiffItem/CheckDiffItemList.jsx
rename to rsf-admin/src/page/orders/check/checkDiffItem/CheckDiffItemList.jsx
index fc65063..cbcd722 100644
--- a/rsf-admin/src/page/checkDiffItem/CheckDiffItemList.jsx
+++ b/rsf-admin/src/page/orders/check/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';
 
diff --git a/rsf-admin/src/page/checkDiffItem/CheckDiffItemPanel.jsx b/rsf-admin/src/page/orders/check/checkDiffItem/CheckDiffItemPanel.jsx
similarity index 98%
rename from rsf-admin/src/page/checkDiffItem/CheckDiffItemPanel.jsx
rename to rsf-admin/src/page/orders/check/checkDiffItem/CheckDiffItemPanel.jsx
index 0e47dc6..a127db9 100644
--- a/rsf-admin/src/page/checkDiffItem/CheckDiffItemPanel.jsx
+++ b/rsf-admin/src/page/orders/check/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 = () => {
diff --git a/rsf-admin/src/page/checkDiffItem/index.jsx b/rsf-admin/src/page/orders/check/checkDiffItem/index.jsx
similarity index 100%
rename from rsf-admin/src/page/checkDiffItem/index.jsx
rename to rsf-admin/src/page/orders/check/checkDiffItem/index.jsx
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/CheckDiff.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/CheckDiff.java
index eba3df0..36faced 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/CheckDiff.java
+++ b/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("鐩樼偣鍗旾D ")
+    private Long orderId;
+
     /**
      * 鐩樼偣绫诲瀷 0: 鏄庣洏   1: 鏆楃洏  
      */
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/CheckDiffItem.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/CheckDiffItem.java
index 3cfe075..03496a2 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/CheckDiffItem.java
+++ b/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;
+
     /**
      * 鐩樼偣鍗�
      */
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WkOrder.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WkOrder.java
index 2b5f9c3..3da396a 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WkOrder.java
+++ b/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;
+
     /**
      * 閫佽揣鏁伴噺
      */
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/CheckDiffExceStatus.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/CheckDiffExceStatus.java
new file mode 100644
index 0000000..bf08086
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/CheckDiffExceStatus.java
@@ -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;
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/CheckOrderSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/CheckOrderSchedules.java
new file mode 100644
index 0000000..e470f48
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/CheckOrderSchedules.java
@@ -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("鐩樼偣宸紓鍗曚繚瀛樺け璐ワ紒锛�");
+           }
+        });
+    }
+}

--
Gitblit v1.9.1