This commit is contained in:
Paidax
2025-10-17 15:49:02 +08:00
parent 1cb3ee9d58
commit ca2e204395
28 changed files with 1841 additions and 30 deletions
@@ -0,0 +1,11 @@
package com.budwk.app.zhgh.staffmanage.personnelcheck.controller;
/**
* @version 1.0
* @Author FKY
* @nameCheckTaskBranchAuditController
* @Date 2025/10/15 10:48
* @注释
*/
public class CheckTaskBranchAuditController {
}
@@ -0,0 +1,139 @@
package com.budwk.app.zhgh.staffmanage.personnelcheck.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.util.StrUtil;
import com.budwk.app.base.annotation.SLog;
import com.budwk.app.base.constant.RoleConstant;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.param.PageForm;
import com.budwk.app.base.result.Result;
import com.budwk.app.sys.controller.SysRoleController;
import com.budwk.app.sys.models.Sys_role;
import com.budwk.app.sys.services.SysRoleService;
import com.budwk.app.zhgh.staffmanage.personnelcheck.model.CheckTaskBusinessConfig;
import com.budwk.app.zhgh.staffmanage.personnelcheck.service.CheckTaskCommonService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.nutz.dao.Chain;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.lang.Lang;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import javax.validation.Valid;
import java.util.List;
/**
* @version 1.0
* @Author FKY
* @nameCheckTaskTypeController
* @Date 2025/10/15 16:41
* @注释
*/
@Slf4j
@IocBean
@Ok("json:full")
@Api("业务配置管理")
@At("/platform/personnel/check/verification/config")
public class CheckTaskBusinessConfigController {
@Inject
private Dao dao;
@Inject
private SysRoleService sysRoleService;
@Inject
private CheckTaskCommonService checkTaskCommonService;
@At("/")
@SaCheckPermission("personnel.check.verification.config")
@Ok("beetl:/platform/zhgh/staffmanage/personnelcheck/config/index.html")
public void index() {
}
@At
@SaCheckPermission("personnel.check.verification.config")
public Result pageData(PageForm pageForm){
Sql sql = Sqls.create("select * from check_task_business_config $condition");
Cnd cnd = Cnd.NEW();
cnd.andEX("`name`", "like", "%" + pageForm.getSearchKeyword() + "%");
cnd.asc("sortNum");
sql.setCondition(cnd);
Pagination pagination = checkTaskCommonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success(pagination);
}
@At
@ApiOperation("添加或修改业务配置")
@SLog(tag = "业务配置", msg = "添加或修改业务配置")
@SaCheckPermission("personnel.check.verification.config")
public Result doAddOrModify(CheckTaskBusinessConfig config){
if (StrUtil.isBlank(config.getId())) {
int count = dao.count(CheckTaskBusinessConfig.class,
Cnd.where(Cnd.exps("code", "=", config.getCode())
.or("sortNum", "=", config.getSortNum())));
if (count > 0) {
return Result.error("业务编码或排序编号已存在");
}
config.setIsActive(true);
}
dao.insertOrUpdate(config);
return Result.success();
}
@At
@ApiOperation("修改业务配置状态")
@SaCheckPermission("personnel.check.verification.config")
public Result doUpdateActive(@Valid String id){
Sql sql = Sqls.create("update check_task_business_config set isActive = isActive ^ 1 where id = @id").setParam("id", id);
dao.execute(sql);
return Result.success();
}
@At
@ApiOperation("删除业务配置")
@SLog(tag = "业务配置", msg = "删除业务配置")
@SaCheckPermission("personnel.check.verification.config")
public Result onDelete(@Valid String id){
dao.delete(CheckTaskBusinessConfig.class, id);
return Result.success();
}
@At
@ApiOperation("根据查询业务配置")
@SaCheckPermission("personnel.check.verification.config")
public Result findOne(@Valid String id){
CheckTaskBusinessConfig fetch = dao.fetch(CheckTaskBusinessConfig.class, id);
return Result.success(fetch);
}
@At
@ApiOperation("查询所有业务配置")
@SaCheckPermission("personnel.check.verification.config")
public Result findAll() {
List<CheckTaskBusinessConfig> query = dao.query(CheckTaskBusinessConfig.class, Cnd.where(CheckTaskBusinessConfig::getIsActive, "=", true));
return Result.success(query);
}
@At
@Ok("json")
@ApiOperation("获取所有角色")
@SaCheckPermission("personnel.check.verification.config")
public Result listRoles() {
List<Sys_role> list = sysRoleService.query(Cnd.NEW().asc("sort"));
return Result.success(list);
}
}
@@ -0,0 +1,11 @@
package com.budwk.app.zhgh.staffmanage.personnelcheck.controller;
/**
* @version 1.0
* @Author FKY
* @nameCheckTaskSchoolAuditController
* @Date 2025/10/15 10:48
* @注释
*/
public class CheckTaskSchoolAuditController {
}
@@ -0,0 +1,11 @@
package com.budwk.app.zhgh.staffmanage.personnelcheck.controller;
/**
* @version 1.0
* @Author FKY
* @nameCheckTaskSingleController
* @Date 2025/10/15 10:48
* @注释
*/
public class CheckTaskSingleController {
}
@@ -0,0 +1,116 @@
package com.budwk.app.zhgh.staffmanage.personnelcheck.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.budwk.app.base.annotation.SLog;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.result.Result;
import com.budwk.app.flow.engine.FlowEngine;
import com.budwk.app.zhgh.staffmanage.personnelcheck.model.CheckTaskBusinessConfig;
import com.budwk.app.zhgh.staffmanage.personnelcheck.model.CheckTaskFiledConfig;
import com.budwk.app.zhgh.staffmanage.personnelcheck.model.CheckTaskVerification;
import com.budwk.app.zhgh.staffmanage.personnelcheck.model.CheckTaskPersonnel;
import com.budwk.app.zhgh.staffmanage.personnelcheck.service.CheckTaskCommonService;
import com.budwk.app.zhgh.staffmanage.personnelcheck.vo.CheckTaskVerificationVO;
import com.budwk.app.zhgh.staffmanage.personnelcheck.vo.pageform.CheckTaskManagePageForm;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.nutz.aop.interceptor.ioc.TransAop;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
import org.nutz.ioc.aop.Aop;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.mvc.annotation.AdaptBy;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;
import org.nutz.mvc.upload.TempFile;
import org.nutz.mvc.upload.UploadAdaptor;
/**
* @version 1.0
* @Author FKY
* @nameCheckTaskController
* @Date 2025/10/15 10:47
* @注释
*/
@Slf4j
@IocBean
@Ok("json:full")
@Api("核对任务")
@At("/platform/personnel/check/verification/manage")
public class CheckTaskVerificationController {
@Inject
private Dao dao;
@Inject
private FlowEngine flowEngine;
@Inject
private CheckTaskCommonService checkTaskCommonService;
@At("/")
@SaCheckPermission("personnel.check.verification.manage")
@Ok("beetl:/platform/zhgh/staffmanage/personnelcheck/manage/index.html")
public void index() {
}
@At
@SaCheckPermission("personnel.check.verification.manage")
public Result pageData(CheckTaskManagePageForm pageForm){
Sql sql = Sqls.create("SELECT * FROM check_task $condition");
Cnd cnd = Cnd.NEW();
cnd.andEX("YEAR(createTime)", "=", pageForm.getYear());
cnd.andEX("taskName", "like", "%" + pageForm.getSearchKeyword() + "%");
sql.setCondition(cnd);
Pagination pagination = checkTaskCommonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success(pagination);
}
@At
@Aop(TransAop.READ_COMMITTED)
@SLog(tag = "核对任务", msg = "添加核对任务")
@SaCheckPermission("personnel.check.verification.manage")
@AdaptBy(type = UploadAdaptor.class, args = {"ioc:fileUpload"})
public Result doAddOrModify(@Param("baseData") String data, TempFile file){
log.info("=================================主体数据:{}", data);
log.info("=================================导入文件:{}", file);
CheckTaskVerificationVO vo = JSONUtil.toBean(data, CheckTaskVerificationVO.class);
if (StrUtil.isNotBlank(vo.getId())) {
// 如果是修改,执行以下步骤
// 1.重新配置核对字段,filedConfigData
dao.clear(CheckTaskFiledConfig.class, Cnd.where("taskId", "=", vo.getId()));
// 2.重新设置待核对人员表,personnelData
// dao.clear(Check)
}
// 修改审核流程配置
dao.update(vo.getBusinessConfig());
log.info("=================================数据转换:{}", vo);
return Result.success();
}
@At
@Aop(TransAop.READ_COMMITTED)
@SaCheckPermission("personnel.check.verification.manage")
@SLog(tag = "核对任务", msg = "删除核对任务ID:${args[0]}")
public Result onDelete(String id){
dao.clear(CheckTaskVerification.class, Cnd.where("id", "=", id));
dao.clear(CheckTaskPersonnel.class, Cnd.where("taskId", "=", id));
flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id);
return Result.success();
}
}
@@ -0,0 +1,60 @@
package com.budwk.app.zhgh.staffmanage.personnelcheck.model;
import com.budwk.app.base.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.nutz.dao.entity.annotation.*;
import org.nutz.dao.interceptor.annotation.PrevInsert;
import org.nutz.lang.util.NutMap;
import java.util.List;
/**
* @version 1.0
* @Author FKY
* @nameCheckTaskBusinessConfig
* @Date 2025/10/16 10:41
* @注释
*/
@Data
@Table
@Comment("业务配置表")
@EqualsAndHashCode(callSuper = true)
public class CheckTaskBusinessConfig extends BaseModel {
@Name
@Comment("ID")
@ColDefine(type = ColType.VARCHAR, width = 32)
@PrevInsert(uu32 = true)
private String id;
@Column
@Comment("业务编码")
@ColDefine(type = ColType.VARCHAR, width = 50)
private String code;
@Column
@Comment("业务名称")
@ColDefine(type = ColType.VARCHAR, width = 100)
private String name;
@Column
@Comment("排序编号")
@ColDefine(type = ColType.INT)
private String sortNum;
@Column
@Comment("目标表名")
@ColDefine(type = ColType.VARCHAR, width = 100)
private String targetTable;
@Column
@Comment("审核流程步骤数组")
@ColDefine(type = ColType.MYSQL_JSON)
private List<NutMap> workflowSteps;
@Column
@Comment("是否启用")
@ColDefine(type = ColType.BOOLEAN)
private Boolean isActive;
}
@@ -0,0 +1,63 @@
package com.budwk.app.zhgh.staffmanage.personnelcheck.model;
import com.budwk.app.base.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.nutz.dao.entity.annotation.*;
import org.nutz.dao.interceptor.annotation.PrevInsert;
/**
* @version 1.0
* @Author FKY
* @nameCheckTaskFiledConfig
* @Date 2025/10/16 11:39
* @注释 字段配置表
*/
@Data
@Table
@Comment("核对任务字段配置表")
@EqualsAndHashCode(callSuper = true)
public class CheckTaskFiledConfig extends BaseModel {
@Name
@Comment("ID")
@ColDefine(type = ColType.VARCHAR, width = 32)
@PrevInsert(uu32 = true)
private String id;
@Column
@Comment("任务Id")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String taskId;
@Column
@Comment("字段代码")
@ColDefine(type = ColType.VARCHAR, width = 50)
private String fieldCode;
@Column
@Comment("字段名称")
@ColDefine(type = ColType.VARCHAR, width = 50)
private String fieldName;
@Column
@Default("string")
@Comment("数据类型")
@ColDefine(type = ColType.VARCHAR, width = 50)
private String dataType;
@Column
@Comment("是否必填")
@ColDefine(type = ColType.BOOLEAN)
private Boolean isRequired;
@Column
@Comment("是否在核对界面显示")
@ColDefine(type = ColType.BOOLEAN)
private Boolean isVisible;
@Column
@Comment("排序")
@ColDefine(type = ColType.INT)
private Integer sortOrder;
}
@@ -0,0 +1,88 @@
package com.budwk.app.zhgh.staffmanage.personnelcheck.model;
import com.budwk.app.base.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.nutz.dao.entity.annotation.*;
import org.nutz.dao.interceptor.annotation.PrevInsert;
import java.util.List;
/**
* @version 1.0
* @Author FKY
* @nameCheckTaskPersonnel
* @Date 2025/10/15 9:40
* @注释
*/
@Data
@Table
@Comment("待核对人员表")
@EqualsAndHashCode(callSuper = true)
@TableIndexes({
@Index(name = "IDX_LOGIN_NAME", fields = {"loginname"}, unique = false),
})
public class CheckTaskPersonnel extends BaseModel {
@Name
@Comment("ID")
@ColDefine(type = ColType.VARCHAR, width = 32)
@PrevInsert(uu32 = true)
private String id;
@Column
@Comment("任务Id")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String taskId;
@Column
@Comment("工号")
@ColDefine(type = ColType.VARCHAR, width = 30)
private String loginname;
@Column
@Comment("当前步骤")
@ColDefine(type = ColType.VARCHAR, width = 50)
private String currentStep;
@Column
@Comment("当前状态")
@ColDefine(type = ColType.VARCHAR, width = 30)
private String status;
@Column
@Comment("动态扩展字段(用户表其余列)")
@ColDefine(type = ColType.MYSQL_JSON)
private List<String> data;
@Column
@Comment("审核意见")
@ColDefine(type = ColType.VARCHAR, width = 255)
private String remark;
@Column
@Default("0")
@Comment("是否已核对")
@ColDefine(type = ColType.BOOLEAN)
private Boolean isCheck;
@Column
@Comment("核对人Id")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String checkUserId;
@Column
@Comment("核对人Id")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String checkLoginname;
@Column
@Comment("核对人姓名")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String checkUsername;
@Column
@Comment("变更信息")
@ColDefine(type = ColType.MYSQL_JSON)
private String changeInfos;
}
@@ -0,0 +1,74 @@
package com.budwk.app.zhgh.staffmanage.personnelcheck.model;
import com.budwk.app.base.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.nutz.dao.entity.annotation.*;
import org.nutz.dao.interceptor.annotation.PrevInsert;
import java.util.Date;
/**
* @version 1.0
* @Author FKY
* @nameCheckTaskVerification
* @Date 2025/10/15 9:40
* @注释
*/
@Data
@Table
@Comment("核对任务事项表")
@EqualsAndHashCode(callSuper = true)
public class CheckTaskVerification extends BaseModel {
@Name
@Comment("ID")
@ColDefine(type = ColType.VARCHAR, width = 32)
@PrevInsert(uu32 = true)
private String id;
@Column
@Comment("事项名称")
@ColDefine(type = ColType.VARCHAR, width = 30)
private String title;
@Column
@Comment("唯一编码,用于标识")
@ColDefine(type = ColType.VARCHAR, width = 50)
private String code;
@Column
@Comment("业务类型")
@ColDefine(type = ColType.VARCHAR, width = 50)
private String businessType;
@Column
@Comment("核对年份")
@ColDefine(type = ColType.INT)
private Integer year;
@Column
@Comment("原文件名")
@ColDefine(type = ColType.VARCHAR, width = 255)
private String fileName;
@Column
@Comment("开始时间")
@ColDefine(type = ColType.DATETIME)
private Date startTime;
@Column
@Comment("结束时间")
@ColDefine(type = ColType.DATETIME)
private Date endTime;
@Column
@Comment("创建时间")
@ColDefine(type = ColType.DATETIME)
private Date createTime;
@Column
@Comment("当前状态")
@ColDefine(type = ColType.VARCHAR, width = 20)
private String status;
}
@@ -0,0 +1,62 @@
package com.budwk.app.zhgh.staffmanage.personnelcheck.model;
import com.budwk.app.base.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.nutz.dao.entity.annotation.*;
import org.nutz.dao.interceptor.annotation.PrevInsert;
/**
* @version 1.0
* @Author FKY
* @nameCheckTaskLog
* @Date 2025/10/15 9:41
* @注释
*/
@Data
@Table
@Comment("审核日志表")
@EqualsAndHashCode(callSuper = true)
public class CheckTaskVerificationLog extends BaseModel {
@Name
@Comment("ID")
@ColDefine(type = ColType.VARCHAR, width = 32)
@PrevInsert(uu32 = true)
private String id;
@Column
@Comment("任务Id")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String verificationId;
@Column
@Comment("待核对人员Id")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String pendingId;
@Column
@Comment("节点")
@ColDefine(type = ColType.VARCHAR, width = 30)
private String fromStatus;
@Column
@Comment("节点")
@ColDefine(type = ColType.VARCHAR, width = 30)
private String toStatus;
@Column
@Comment("操作人")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String operator;
@Column
@Comment("状态(PASS/REJECT/ROLLBACK")
@ColDefine(type = ColType.VARCHAR, width = 20)
private String action;
@Column
@Comment("备注")
@ColDefine(type = ColType.TEXT)
private String remark;
}
@@ -0,0 +1,54 @@
package com.budwk.app.zhgh.staffmanage.personnelcheck.model;
import com.budwk.app.base.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.nutz.dao.entity.annotation.*;
import org.nutz.dao.interceptor.annotation.PrevInsert;
import java.util.List;
/**
* @version 1.0
* @Author FKY
* @nameCheckTaskWorkflowStep
* @Date 2025/10/16 11:30
* @注释 审核流程节点配置
*/
@Data
@Table
@Comment("审核流程节点配置表")
@EqualsAndHashCode(callSuper = true)
public class CheckTaskWorkflowStep extends BaseModel {
@Name
@Comment("ID")
@ColDefine(type = ColType.VARCHAR, width = 32)
@PrevInsert(uu32 = true)
private String id;
@Column
@Comment("任务Id")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String taskId;
@Column
@Comment("执行顺序")
@ColDefine(type = ColType.INT)
private Integer stepOrder;
@Column
@Comment("步骤代码")
@ColDefine(type = ColType.VARCHAR, width = 50)
private String stepCode;
@Column
@Comment("步骤名称")
@ColDefine(type = ColType.VARCHAR, width = 50)
private String stepName;
@Column
@Comment("处理角色,可多选")
@ColDefine(type = ColType.MYSQL_JSON)
private List<String> assignRoles;
}
@@ -0,0 +1,14 @@
package com.budwk.app.zhgh.staffmanage.personnelcheck.service;
import com.budwk.app.base.service.BaseService;
import com.budwk.app.zhgh.staffmanage.personnelcheck.model.CheckTaskPersonnel;
/**
* @version 1.0
* @Author FKY
* @nameCheckTaskCommonService
* @Date 2025/10/15 14:41
* @注释
*/
public interface CheckTaskCommonService extends BaseService<CheckTaskPersonnel> {
}
@@ -0,0 +1,21 @@
package com.budwk.app.zhgh.staffmanage.personnelcheck.service.impl;
import com.budwk.app.base.service.impl.BaseServiceImpl;
import com.budwk.app.zhgh.staffmanage.personnelcheck.model.CheckTaskPersonnel;
import com.budwk.app.zhgh.staffmanage.personnelcheck.service.CheckTaskCommonService;
import org.nutz.dao.Dao;
import org.nutz.ioc.loader.annotation.IocBean;
/**
* @version 1.0
* @Author FKY
* @nameCheckTaskCommonServiceImpl
* @Date 2025/10/15 14:41
* @注释
*/
@IocBean(args = {"refer:dao"})
public class CheckTaskCommonServiceImpl extends BaseServiceImpl<CheckTaskPersonnel> implements CheckTaskCommonService {
public CheckTaskCommonServiceImpl(Dao dao) {
super(dao);
}
}
@@ -0,0 +1,44 @@
package com.budwk.app.zhgh.staffmanage.personnelcheck.vo;
import com.budwk.app.zhgh.staffmanage.personnelcheck.model.CheckTaskBusinessConfig;
import com.budwk.app.zhgh.staffmanage.personnelcheck.model.CheckTaskFiledConfig;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import java.util.List;
/**
* @version 1.0
* @Author FKY
* @nameCheckTaskVerificationVO
* @Date 2025/10/17 14:16
* @注释
*/
@Data
@ApiModel("核对事项表")
public class CheckTaskVerificationVO {
@ApiModelProperty("主键Id")
private String id;
@ApiModelProperty("标题")
private String title;
@ApiModelProperty("业务标签")
private String businessType;
@ApiModelProperty("开始时间")
private Date startTime;
@ApiModelProperty("结束时间")
private Date endTime;
@ApiModelProperty("业务配置数据")
private CheckTaskBusinessConfig businessConfig;
@ApiModelProperty("字段配置数据")
private List<CheckTaskFiledConfig> fieldConfig;
}
@@ -0,0 +1,24 @@
package com.budwk.app.zhgh.staffmanage.personnelcheck.vo.pageform;
import com.budwk.app.base.param.PageForm;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @version 1.0
* @Author FKY
* @nameCheckTaskManagePageForm
* @Date 2025/10/15 14:31
* @注释
*/
@Data
@ApiModel("核对任务")
@EqualsAndHashCode(callSuper = true)
public class CheckTaskManagePageForm extends PageForm {
@ApiModelProperty("年份")
private String year;
}