Browse Source

执法端-计划

dev-V1.0.1
庄锐波 5 months ago
parent
commit
be42151d18
  1. 52
      script/sql/zfjd-refactoring-v1/013-计划任务表设计.sql
  2. 5
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/EfcodeCpPlan.java
  3. 5
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/EfcodeCpReserve.java
  4. 6
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/EfcodeCpPlanBo.java
  5. 6
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/EfcodeCpReserveBo.java
  6. 4
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/EfcodeCpPlanVo.java
  7. 6
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/EfcodeCpReserveVo.java
  8. 2
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEfcodeCpSettingService.java
  9. 25
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpPlanServiceImpl.java
  10. 2
      zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/plan.js
  11. 2
      zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/plan/cp_plan_edit.vue
  12. 1
      zdxt-web-server/zdxt-admin-web-server/src/test/java/com/zdxt/rest/test/cp/AppEnfCpPlanControllerTest.java

52
script/sql/zfjd-refactoring-v1/013-计划任务表设计.sql

@ -26,8 +26,6 @@ CREATE TABLE `efcode_cp_plan`
`reserve_status` tinyint NOT NULL DEFAULT 0 COMMENT '预约状态:0=草稿,1=待预约,2=预约中,3=预约完成',
`system_reserved` tinyint NOT NULL DEFAULT 0 COMMENT '是否已经经过系统推荐预约:1=是,0=否',
`manual_reserved` tinyint NOT NULL DEFAULT 0 COMMENT '是否已经经过手动预约:1=是,0=否',
`edit_enable` tinyint NOT NULL DEFAULT 1 COMMENT '是否可以修改:1=是,0=否',
`bureau_dept_id` varchar(50) NOT NULL COMMENT '执法单位ID',
`bureau_dept_name` varchar(100) NOT NULL COMMENT '执法单位名称',
`organ_id` varchar(50) NOT NULL COMMENT '市认证机构ID',
@ -74,23 +72,24 @@ CREATE TABLE `efcode_cp_plan_users`
CREATE TABLE `efcode_cp_reserve`
(
`id` varchar(50) NOT NULL COMMENT '主键ID' primary key,
`plan_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 NOT NULL COMMENT '联合时用户的操作时间',
`op_message` varchar(500) NOT NULL COMMENT '联合时用户输入的操作消息',
`op_set_date` datetime NOT NULL COMMENT '联合时用户选择的操作时间',
`op_set_time` tinyint NOT NULL COMMENT '执行时段:1=上午,2=下午,3=其他',
`from` tinyint NOT NULL COMMENT '来自' COMMENT '来自:系统匹配=1,手动匹配=0',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_dept` varchar(64) DEFAULT NULL COMMENT '创建人部门',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
`id` varchar(50) NOT NULL COMMENT '主键ID' primary key,
`plan_id` varchar(50) NOT NULL COMMENT '计划ID',
`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 NOT NULL COMMENT '联合时用户的操作时间',
`op_message` varchar(500) NOT NULL COMMENT '联合时用户输入的操作消息',
`op_set_date` datetime NOT NULL COMMENT '联合时用户选择的操作时间',
`op_set_time` tinyint NOT NULL COMMENT '执行时段:1=上午,2=下午,3=其他',
`from` tinyint NOT NULL COMMENT '来自' COMMENT '来自:系统匹配=1,手动匹配=0',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_dept` varchar(64) DEFAULT NULL COMMENT '创建人部门',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) comment '行政执法检查计划-预约表' row_format = DYNAMIC;
CREATE TABLE `efcode_cp_notice`
@ -156,11 +155,11 @@ CREATE TABLE `efcode_cp_notice_message`
`user_name` varchar(100) NOT NULL COMMENT '用户名称',
`from` tinyint NOT NULL COMMENT '来自' COMMENT '来自:企业=1,执法单位=0',
`message` varchar(1000) NOT NULL COMMENT '消息内容',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_dept` varchar(64) DEFAULT NULL COMMENT '创建人部门',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_dept` varchar(64) DEFAULT NULL COMMENT '创建人部门',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_delete` tinyint NOT NULL DEFAULT 0 COMMENT '是否删除:0=否,1=是'
) comment '行政执法检查计划-预告交流表' row_format = DYNAMIC;
@ -184,5 +183,6 @@ VALUES ('CP_SETTING_SUBMIT_DEADLINE', '下阶段计划提交最晚时间', '26',
('CP_SETTING_AUTO_MATCH_START', '系统自动推荐匹配开始时间', '26', '系统自动推荐匹配的开始时间(号)>=', '0',
'0'),
('CP_SETTING_MANUAL_MATCH_DAYS', '手工匹配距计划开始天数', '3', '手工匹配距离计划开始的天数>=', '0', '0'),
('CP_MAX_UNION_UNIT', '单次联合单位最大数量', '3', '单次联合单位最大数量>=2', '0', '0'),
('CP_MAX_INNER_UNIT_AC_PERSON_NUM', '单位内部单次计划最多参与人数', '3', '单位内部单次计划最多参与人数<=3', '0', '0');
('CP_MAX_UNION_UNIT', '单次联合单位最大数量', '3', '单次联合单位最大数量<=3', '0', '0'),
('CP_MAX_INNER_UNIT_AC_PERSON_NUM', '单位内部单次计划最多参与人数', '3', '单位内部单次计划最多参与人数<=3', '0',
'0');

5
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/EfcodeCpPlan.java

@ -119,11 +119,6 @@ public class EfcodeCpPlan extends BaseEntity {
*/
private Long manualReserved;
/**
* 是否可以修改:1=是,0=否
*/
private Long editEnable;
/**
* 执法单位ID
*/

5
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/EfcodeCpReserve.java

@ -34,6 +34,11 @@ public class EfcodeCpReserve extends BaseEntity {
*/
private String planId;
/**
* 计划分组ID:相同的表示预约同一个计划
*/
private String planGroupId;
/**
* 预约时间
*/

6
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/EfcodeCpPlanBo.java

@ -135,12 +135,6 @@ public class EfcodeCpPlanBo extends BaseEntity {
@NotNull(message = "是否已经经过手动预约:1=是,0=否不能为空", groups = { AddGroup.class, EditGroup.class })
private Long manualReserved;
/**
* 是否可以修改:1=是,0=否
*/
@NotNull(message = "是否可以修改:1=是,0=否不能为空", groups = { AddGroup.class, EditGroup.class })
private Long editEnable;
/**
* 执法单位ID
*/

6
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/EfcodeCpReserveBo.java

@ -34,6 +34,12 @@ public class EfcodeCpReserveBo extends BaseEntity {
@NotBlank(message = "计划ID不能为空", groups = { AddGroup.class, EditGroup.class })
private String planId;
/**
* 计划分组ID:相同的表示预约同一个计划
*/
@NotBlank(message = "计划分组ID不能为空", groups = { AddGroup.class, EditGroup.class })
private String planGroupId;
/**
* 预约时间
*/

4
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/EfcodeCpPlanVo.java

@ -152,9 +152,9 @@ public class EfcodeCpPlanVo implements Serializable {
private Long manualReserved;
/**
* 是否可以修改:1=是,0=否
* 是否可以修改:1=是,0=否(非数据库字段,后置计算)
*/
@ExcelProperty(value = "是否可以修改:1=是,0=否")
@com.baomidou.mybatisplus.annotation.TableField(exist = false)
private Long editEnable;
/**

6
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/EfcodeCpReserveVo.java

@ -42,6 +42,12 @@ public class EfcodeCpReserveVo implements Serializable {
@ExcelProperty(value = "计划ID")
private String planId;
/**
* 计划分组ID:相同的表示预约同一个计划
*/
@ExcelProperty(value = "计划分组ID")
private String planGroupId;
/**
* 预约时间
*/

2
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEfcodeCpSettingService.java

@ -32,7 +32,7 @@ public interface IEfcodeCpSettingService {
String SETTING_ID_MANUAL_MATCH_DAYS = "CP_SETTING_MANUAL_MATCH_DAYS";
/**
* 设置项主键:单次联合单位最大数量>=2
* 设置项主键:单次联合单位最大数量<=3
*/
String SETTING_ID_MAX_UNION_UNIT = "CP_MAX_UNION_UNIT";

25
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpPlanServiceImpl.java

@ -64,6 +64,8 @@ public class EfcodeCpPlanServiceImpl implements IEfcodeCpPlanService {
public TableDataInfo<EfcodeCpPlanVo> queryPageList(EfcodeCpPlanBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<EfcodeCpPlan> lqw = buildQueryWrapper(bo);
Page<EfcodeCpPlanVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
// 后置计算 editEnable
computeEditEnable(result.getRecords());
return TableDataInfo.build(result);
}
@ -76,7 +78,10 @@ public class EfcodeCpPlanServiceImpl implements IEfcodeCpPlanService {
@Override
public List<EfcodeCpPlanVo> queryList(EfcodeCpPlanBo bo) {
LambdaQueryWrapper<EfcodeCpPlan> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
List<EfcodeCpPlanVo> list = baseMapper.selectVoList(lqw);
// 后置计算 editEnable
computeEditEnable(list);
return list;
}
/**
@ -139,6 +144,23 @@ public class EfcodeCpPlanServiceImpl implements IEfcodeCpPlanService {
}
}
/**
* 后置计算 editEnable:判断记录是否可编辑
* <p>规则:预约状态为草稿(0)或待预约(1)时可编辑,其他状态不可编辑</p>
*
* @param records 查询结果列表
*/
private void computeEditEnable(List<EfcodeCpPlanVo> records) {
if (records == null || records.isEmpty()) {
return;
}
for (EfcodeCpPlanVo vo : records) {
Long status = vo.getReserveStatus();
// 草稿(0)或待预约(1)可编辑,其他状态不可编辑
vo.setEditEnable(status != null && status <= 1L ? 1L : 0L);
}
}
private LambdaQueryWrapper<EfcodeCpPlan> buildQueryWrapper(EfcodeCpPlanBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<EfcodeCpPlan> lqw = Wrappers.lambdaQuery();
@ -161,7 +183,6 @@ public class EfcodeCpPlanServiceImpl implements IEfcodeCpPlanService {
lqw.eq(bo.getReserveStatus() != null, EfcodeCpPlan::getReserveStatus, bo.getReserveStatus());
lqw.eq(bo.getSystemReserved() != null, EfcodeCpPlan::getSystemReserved, bo.getSystemReserved());
lqw.eq(bo.getManualReserved() != null, EfcodeCpPlan::getManualReserved, bo.getManualReserved());
lqw.eq(bo.getEditEnable() != null, EfcodeCpPlan::getEditEnable, bo.getEditEnable());
lqw.eq(StringUtils.isNotBlank(bo.getBureauDeptId()), EfcodeCpPlan::getBureauDeptId, bo.getBureauDeptId());
lqw.like(StringUtils.isNotBlank(bo.getBureauDeptName()), EfcodeCpPlan::getBureauDeptName, bo.getBureauDeptName());
lqw.eq(StringUtils.isNotBlank(bo.getOrganId()), EfcodeCpPlan::getOrganId, bo.getOrganId());

2
zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/plan.js

@ -2,7 +2,7 @@ import { _get, _post, _put, _delete } from "@/http/index";
// region 计划管理接口
const planBaseUrl = "/api/app-enf/cpPlan";
const planBaseUrl = "/app-enf/cpPlan";
// 计划列表(分页)
export const getPlanList = (params, success, error) => _get(planBaseUrl + "/list", params, success, error);

2
zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/plan/cp_plan_edit.vue

@ -296,7 +296,6 @@ const form = ref({
reserveStatus: 0,
systemReserved: 0,
manualReserved: 0,
editEnable: 1,
organId: '',
organName: '',
deptId: '',
@ -634,7 +633,6 @@ const onSubmit = () => {
if (form.value.isUnion == null) form.value.isUnion = 0;
if (form.value.systemReserved == null) form.value.systemReserved = 0;
if (form.value.manualReserved == null) form.value.manualReserved = 0;
if (form.value.editEnable == null) form.value.editEnable = 1;
if (form.value.isDelete == null) form.value.isDelete = 0;
const api = isEdit.value ? editPlan : addPlan;

1
zdxt-web-server/zdxt-admin-web-server/src/test/java/com/zdxt/rest/test/cp/AppEnfCpPlanControllerTest.java

@ -258,7 +258,6 @@ public class AppEnfCpPlanControllerTest {
bo.put("reserveStatus", (long) random.nextInt(4)); // 0=草稿,1=待预约,2=预约中,3=预约完成
bo.put("systemReserved", 0L);
bo.put("manualReserved", 0L);
bo.put("editEnable", random.nextInt(2) == 0 ? 0L : 1L);
bo.put("bureauDeptId", loginInfo.get("bureauUnitId"));
bo.put("bureauDeptName", loginInfo.get("bureauUnitName"));
bo.put("organId", loginInfo.get("organId"));

Loading…
Cancel
Save