From a25366e407f60ef2cb7ee124f443688ad1ce6608 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E9=94=90=E6=B3=A2?= <10549902+zhuangruibo@user.noreply.gitee.com> Date: Tue, 26 May 2026 22:12:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=A7=E6=B3=95=E7=AB=AF-=E8=AE=A1=E5=88=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../013-计划任务表设计.sql | 52 +++++---- .../1003-查询-计划预约字典翻译.sql | 109 ++++++++++++++++++ .../domain/EfcodeCpReserve.java | 9 ++ .../service/impl/EfcodeCpPlanServiceImpl.java | 2 + .../impl/EfcodeCpReserveServiceImpl.java | 16 ++- .../enforcementcode/EfcodeCpReserveMapper.xml | 9 +- 6 files changed, 163 insertions(+), 34 deletions(-) create mode 100644 script/sql/zfjd-refactoring-v1/1003-查询-计划预约字典翻译.sql diff --git a/script/sql/zfjd-refactoring-v1/013-计划任务表设计.sql b/script/sql/zfjd-refactoring-v1/013-计划任务表设计.sql index 4e2e434b..41600f82 100644 --- a/script/sql/zfjd-refactoring-v1/013-计划任务表设计.sql +++ b/script/sql/zfjd-refactoring-v1/013-计划任务表设计.sql @@ -81,6 +81,7 @@ CREATE TABLE `efcode_cp_reserve` `plan_group_id` varchar(50) NOT NULL COMMENT '计划分组ID:相同的表示预约同一个计划', `reserve_time` datetime NOT NULL COMMENT '预约时间', + `op_status` tinyint NOT NULL COMMENT '操作状态' DEFAULT 3 COMMENT '操作状态:1=同意,2=拒绝,3=待确认,4=超期取消', `op_order` int NOT NULL COMMENT '联合时用户的操作顺序', `op_time` datetime NULL COMMENT '联合时用户的操作时间', @@ -88,7 +89,10 @@ CREATE TABLE `efcode_cp_reserve` `op_set_date` datetime NOT NULL COMMENT '联合时用户选择的操作时间', `op_set_time` tinyint NOT NULL COMMENT '执行时段:1=上午,2=下午,3=其他', - `res_from` tinyint NOT NULL COMMENT '来自' COMMENT '来自:系统匹配=1,手动匹配=0', + `res_from` tinyint NOT NULL COMMENT '来自:系统匹配=1,手动匹配=0', + `sender_id` varchar(50) NULL DEFAULT '' COMMENT '发送者用户ID', + `receiver_id` varchar(50) NULL DEFAULT '' COMMENT '接收者用户ID', + `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_dept` varchar(64) DEFAULT NULL COMMENT '创建人部门', `update_by` varchar(64) DEFAULT '' COMMENT '更新者', @@ -201,26 +205,26 @@ CREATE TABLE `efcode_cp_log` /*初始化数据*/ -/*INSERT INTO `efcode_cp_setting` (`id`, `setting_name`, `setting_value`, `remark`, `create_by`, `create_dept`) -VALUES ('CP_SETTING_SUBMIT_DEADLINE', '下阶段计划提交最晚时间', '26', '每月几号前需提交下阶段计划<=', '0', '0'), - ('CP_SETTING_AUTO_MATCH_START', '系统自动推荐匹配开始时间', '27', '系统自动推荐匹配的开始时间(号)=', '0', '0'), - ('CP_SETTING_RESERVE_CANCEL_DURATION', '预约自动取消时长', '7', '发起预约后,如果多长时间没有处理,则自动取消', - '0', '0'), - ('CP_SETTING_MANUAL_MATCH_DAYS', '手工匹配距计划开始天数', '3', '手工匹配距离计划开始的天数>=', '0', '0'), - ('CP_MAX_UNION_UNIT', '单次联合单位最大数量', '3', '单次联合单位最大数量<=3', '0', '0'), - ('CP_MAX_INNER_UNIT_AC_PERSON_NUM', '单位内部单次计划最多参与人数', '3', '单位内部单次计划最多参与人数<=3', '0', - '0');*/ - -/*创建计划任务*/ -/*INSERT INTO sys_job (job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, - create_time, remark) -VALUES ('计划自动匹配预约', - 'DEFAULT', - 'cpPlanAutoMatchJob.execute()', - '0 0 2 * * ?', - '3', - '1', - '0', - 'admin', - NOW(), - '每天凌晨2点扫描待预约计划并自动匹配生成预约记录');*/ +-- INSERT INTO `efcode_cp_setting` (`id`, `setting_name`, `setting_value`, `remark`, `create_by`, `create_dept`) +-- VALUES ('CP_SETTING_SUBMIT_DEADLINE', '下阶段计划提交最晚时间', '26', '每月几号前需提交下阶段计划<=', '0', '0'), +-- ('CP_SETTING_AUTO_MATCH_START', '系统自动推荐匹配开始时间', '27', '系统自动推荐匹配的开始时间(号)=', '0', '0'), +-- ('CP_SETTING_RESERVE_CANCEL_DURATION', '预约自动取消时长', '7', '发起预约后,如果多长时间没有处理,则自动取消', +-- '0', '0'), +-- ('CP_SETTING_MANUAL_MATCH_DAYS', '手工匹配距计划开始天数', '3', '手工匹配距离计划开始的天数>=', '0', '0'), +-- ('CP_MAX_UNION_UNIT', '单次联合单位最大数量', '3', '单次联合单位最大数量<=3', '0', '0'), +-- ('CP_MAX_INNER_UNIT_AC_PERSON_NUM', '单位内部单次计划最多参与人数', '3', '单位内部单次计划最多参与人数<=3', '0', +-- '0'); +-- +-- /*创建计划任务*/ +-- INSERT INTO sys_job (job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, +-- create_time, remark) +-- VALUES ('计划自动匹配预约', +-- 'DEFAULT', +-- 'cpPlanAutoMatchJob.execute()', +-- '0 0 2 * * ?', +-- '3', +-- '1', +-- '0', +-- 'admin', +-- NOW(), +-- '每天凌晨2点扫描待预约计划并自动匹配生成预约记录'); diff --git a/script/sql/zfjd-refactoring-v1/1003-查询-计划预约字典翻译.sql b/script/sql/zfjd-refactoring-v1/1003-查询-计划预约字典翻译.sql new file mode 100644 index 00000000..d9458ad0 --- /dev/null +++ b/script/sql/zfjd-refactoring-v1/1003-查询-计划预约字典翻译.sql @@ -0,0 +1,109 @@ +-- ============================================================ +-- 查询 efcode_cp_plan (字典值转描述) +-- ============================================================ +SELECT + p.id AS 计划ID, + p.plan_date AS 计划执行日期, + CASE p.plan_type + WHEN 1 THEN '日常计划' + WHEN 2 THEN '专项计划' + ELSE CONCAT('未知(', p.plan_type, ')') + END AS 计划类别, + CASE p.plan_time + WHEN 1 THEN '上午' + WHEN 2 THEN '下午' + WHEN 3 THEN '其他' + ELSE CONCAT('未知(', p.plan_time, ')') + END AS 执行时段, + p.plan_actual_date AS 实际执行日期, + CASE p.plan_actual_time + WHEN 1 THEN '上午' + WHEN 2 THEN '下午' + WHEN 3 THEN '其他' + ELSE CONCAT('未知(', p.plan_actual_time, ')') + END AS 实际执行时段, + p.enforce_content AS 执法事项, + p.enterprise_name AS 被检查企业, + p.enterprise_number AS 企业信用代码, + p.enforce_user_names AS 执法人员, + p.bureau_dept_name AS 执法单位, + CASE p.is_public + WHEN 1 THEN '是' + WHEN 0 THEN '否' + ELSE CONCAT('未知(', p.is_public, ')') + END AS 是否公开, + CASE p.is_union + WHEN 1 THEN '是' + WHEN 0 THEN '否' + ELSE CONCAT('未知(', p.is_union, ')') + END AS 是否联合执法, + p.union_bureau_dept_names AS 联合执法单位, + CASE p.reserve_status + WHEN 0 THEN '草稿' + WHEN 1 THEN '待预约(未发起联合)' + WHEN 2 THEN '预约中' + WHEN 3 THEN '预约完成' + WHEN 4 THEN '重新预约中' + WHEN 5 THEN '待预约(还有位置可加入)' + WHEN 6 THEN '待预约(人数已满)' + ELSE CONCAT('未知(', p.reserve_status, ')') + END AS 预约状态, + p.task_id AS 关联任务ID, + CASE p.system_reserved + WHEN 1 THEN '是' + WHEN 0 THEN '否' + ELSE CONCAT('未知(', p.system_reserved, ')') + END AS 已系统推荐预约, + CASE p.manual_reserved + WHEN 1 THEN '是' + WHEN 0 THEN '否' + ELSE CONCAT('未知(', p.manual_reserved, ')') + END AS 已手动预约, + CASE p.is_delete + WHEN 0 THEN '否' + WHEN 1 THEN '是' + ELSE CONCAT('未知(', p.is_delete, ')') + END AS 是否删除, + p.create_by AS 创建人_ID, + p.create_time AS 创建时间, + p.update_time AS 更新时间, + p.remark AS 备注 +FROM efcode_cp_plan p +ORDER BY p.create_time DESC; + + +-- ============================================================ +-- 查询 efcode_cp_reserve (字典值转描述) +-- ============================================================ +SELECT + r.id AS 预约记录ID, + r.plan_id AS 计划ID, + r.plan_group_id AS 预约分组ID, + r.reserve_time AS 预约时间, + CASE r.op_status + WHEN 1 THEN '同意' + WHEN 2 THEN '拒绝' + WHEN 3 THEN '待确认' + WHEN 4 THEN '超期取消' + ELSE CONCAT('未知(', r.op_status, ')') + END AS 操作状态, + r.op_order AS 操作顺序, + r.op_time AS 操作时间, + r.op_message AS 操作留言, + r.op_set_date AS 协商执行日期, + CASE r.op_set_time + WHEN 1 THEN '上午' + WHEN 2 THEN '下午' + WHEN 3 THEN '其他' + ELSE CONCAT('未知(', r.op_set_time, ')') + END AS 协商执行时段, + CASE r.res_from + WHEN 1 THEN '系统匹配' + WHEN 0 THEN '手动匹配' + ELSE CONCAT('未知(', r.res_from, ')') + END AS 预约来源, + r.create_by AS 创建人_ID, + r.create_time AS 创建时间, + r.update_time AS 更新时间 +FROM efcode_cp_reserve r +ORDER BY r.plan_group_id ASC, r.op_order ASC; diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/EfcodeCpReserve.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/EfcodeCpReserve.java index 9dc4a876..93acbec0 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/EfcodeCpReserve.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/EfcodeCpReserve.java @@ -80,5 +80,14 @@ public class EfcodeCpReserve extends BaseEntity { @TableField(value = "res_from") private Long resFrom; + /** + * 发送者用户ID + */ + private String senderId; + + /** + * 接收者用户ID + */ + private String receiverId; } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpPlanServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpPlanServiceImpl.java index 64cbc8be..0e8e2dd1 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpPlanServiceImpl.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpPlanServiceImpl.java @@ -544,6 +544,8 @@ public class EfcodeCpPlanServiceImpl implements IEfcodeCpPlanService { reserve.setOpSetDate(matchedPlan.getPlanDate()); reserve.setOpSetTime(matchedPlan.getPlanTime()); reserve.setResFrom(1L); // 系统匹配 + reserve.setSenderId("from_system"); + reserve.setReceiverId(String.valueOf(matchedPlan.getCreateBy())); if (insertReserve) { efcodeCpReserveMapper.insert(reserve); diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpReserveServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpReserveServiceImpl.java index 6a25dc1b..d1253830 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpReserveServiceImpl.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpReserveServiceImpl.java @@ -226,10 +226,12 @@ public class EfcodeCpReserveServiceImpl implements IEfcodeCpReserveService { if (2 > maxUnionUnit) { return R.fail("该计划的预约已经到达最大数量(" + maxUnionUnit + "),无法参与预约"); } + String senderIdStr = String.valueOf(currentUserId); + String receiverIdStr = String.valueOf(targetPlan.getCreateBy()); // 目标计划记录 - insertReserveRecord(targetPlanId, planGroupId, "", targetPlan.getPlanDate(), targetPlan.getPlanTime(), 0L); + insertReserveRecord(targetPlanId, planGroupId, "", targetPlan.getPlanDate(), targetPlan.getPlanTime(), 0L, senderIdStr, receiverIdStr); // 我的计划记录 - insertReserveRecord(myPlan.getId(), planGroupId, opMessage, targetPlan.getPlanDate(), targetPlan.getPlanTime(), 0L); + insertReserveRecord(myPlan.getId(), planGroupId, opMessage, targetPlan.getPlanDate(), targetPlan.getPlanTime(), 0L, senderIdStr, receiverIdStr); } else { // 已存在:检查人数上限 long activeCount = countActiveReserves(planGroupId); @@ -242,7 +244,7 @@ public class EfcodeCpReserveServiceImpl implements IEfcodeCpReserveService { return R.fail("您已经预约过该计划"); } // 插入1条记录 - insertReserveRecord(myPlan.getId(), planGroupId, opMessage, targetPlan.getPlanDate(), targetPlan.getPlanTime(), 0L); + insertReserveRecord(myPlan.getId(), planGroupId, opMessage, targetPlan.getPlanDate(), targetPlan.getPlanTime(), 0L, String.valueOf(currentUserId), String.valueOf(targetPlan.getCreateBy())); } // ===== 插入预约记录后:更新两个计划的 reserve_status ===== @@ -320,8 +322,12 @@ public class EfcodeCpReserveServiceImpl implements IEfcodeCpReserveService { /** * 插入一条预约记录 + * + * @param senderId 发送者用户ID + * @param receiverId 接收者用户ID */ - private void insertReserveRecord(String planId, String planGroupId, String opMessage, Date opSetDate, Long opSetTime, Long resFrom) { + private void insertReserveRecord(String planId, String planGroupId, String opMessage, Date opSetDate, Long opSetTime, Long resFrom, + String senderId, String receiverId) { EfcodeCpReserve record = new EfcodeCpReserve(); record.setPlanId(planId); record.setPlanGroupId(planGroupId); @@ -332,6 +338,8 @@ public class EfcodeCpReserveServiceImpl implements IEfcodeCpReserveService { record.setOpSetDate(opSetDate); record.setOpSetTime(opSetTime); record.setResFrom(resFrom); + record.setSenderId(senderId); + record.setReceiverId(receiverId); baseMapper.insert(record); } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EfcodeCpReserveMapper.xml b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EfcodeCpReserveMapper.xml index ba6e8911..f517a5f3 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EfcodeCpReserveMapper.xml +++ b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EfcodeCpReserveMapper.xml @@ -4,7 +4,7 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - +