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