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