Browse Source

feat: 完善维修计划审批

master_tdsql
hxh 9 months ago
parent
commit
392b1b866f
  1. 6
      shuili-system/src/main/java/com/kms/yxgh/common/domain/ApprovalOperator.java
  2. 4
      shuili-system/src/main/java/com/kms/yxgh/common/domain/ApprovalTask.java
  3. 2
      shuili-system/src/main/java/com/kms/yxgh/common/dto/ApprovalDetailDto.java
  4. 21
      shuili-system/src/main/java/com/kms/yxgh/common/service/ApprovalBusinessService.java
  5. 8
      shuili-system/src/main/java/com/kms/yxgh/common/service/IApprovalStats.java
  6. 3
      shuili-system/src/main/java/com/kms/yxgh/df/domain/DfYhPlan.java
  7. 3
      shuili-system/src/main/java/com/kms/yxgh/df/domain/DfYhRecord.java
  8. 60
      shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfYhPlanMapper.java
  9. 11
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhPlanService.java
  10. 13
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhRecordService.java
  11. 74
      shuili-system/src/main/resources/mapper/yxgh/DfYhPlanMapper.xml
  12. 4
      sql/sy/v1.4.0/全量脚本/v1.4.0-all.sql
  13. 4
      sql/sy/v1.4.0/增量脚本/v1.4.0-update.sql

6
shuili-system/src/main/java/com/kms/yxgh/common/domain/ApprovalOperator.java

@ -1,13 +1,14 @@
package com.kms.yxgh.common.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kms.yxgh.base.SyBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@TableName("bs_sgc_dp_operator")
@TableName("bs_sgc_sp_operator")
@Data
@ApiModel("审批执行人")
public class ApprovalOperator extends SyBaseEntity {
@ -20,4 +21,7 @@ public class ApprovalOperator extends SyBaseEntity {
@ApiModelProperty("审批任务ID")
private String taskId;
@TableField(exist = false)
private String remark;
}

4
shuili-system/src/main/java/com/kms/yxgh/common/domain/ApprovalTask.java

@ -1,5 +1,6 @@
package com.kms.yxgh.common.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kms.yxgh.base.SyBaseEntity;
import io.swagger.annotations.ApiModel;
@ -33,4 +34,7 @@ public class ApprovalTask extends SyBaseEntity {
@ApiModelProperty("审批时间")
private Date approvalTime;
@TableField(exist = false)
private String remark;
}

2
shuili-system/src/main/java/com/kms/yxgh/common/dto/ApprovalDetailDto.java

@ -34,7 +34,7 @@ public class ApprovalDetailDto<T> {
private String status;
@ApiModelProperty("审批人")
private OperatorDto approver;
private OperatorDto operator;
@ApiModelProperty("审批意见")
private String comment;

21
shuili-system/src/main/java/com/kms/yxgh/common/service/ApprovalBusinessService.java

@ -1,19 +1,15 @@
package com.kms.yxgh.common.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.kms.yxgh.common.ApprovalStatusEnum;
import com.kms.yxgh.common.dto.ApprovalDetailDto;
import com.kms.yxgh.common.dto.ApprovalSearchDto;
import com.kms.yxgh.common.dto.OperatorDto;
import com.shuili.common.core.domain.SearchParam;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
public interface ApprovalBusinessService<S, V, T extends IApprovalStats> {
public interface ApprovalBusinessService<S, V> {
/**
* 查询审批列表
@ -37,18 +33,7 @@ public interface ApprovalBusinessService<S, V, T extends IApprovalStats> {
* @param formId 业务表单id
* @param status 状态
*/
@Transactional(rollbackFor = Exception.class)
default void updateApprovalStatus(String formId, ApprovalStatusEnum status) {
Wrapper<T> wp = Wrappers.<T>lambdaUpdate()
.eq(T::getId, formId)
.set(T::getStatus, status.getValue());
getBaseMapper().update(null, wp);
}
void updateApprovalStatus(String formId, ApprovalStatusEnum status);
/**
* 获取Mapper
*
* @return Mapper
*/
BaseMapper<T> getBaseMapper();
}

8
shuili-system/src/main/java/com/kms/yxgh/common/service/IApprovalStats.java

@ -1,8 +0,0 @@
package com.kms.yxgh.common.service;
public interface IApprovalStats {
String getId();
String getStatus();
}

3
shuili-system/src/main/java/com/kms/yxgh/df/domain/DfYhPlan.java

@ -3,7 +3,6 @@ package com.kms.yxgh.df.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.kms.yxgh.base.SyBaseEntity;
import com.kms.yxgh.common.service.IApprovalStats;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -20,7 +19,7 @@ import java.util.Date;
@TableName("bs_sgc_df_yhjh")
@Data
@ApiModel("堤防维修养护计划")
public class DfYhPlan extends SyBaseEntity implements IApprovalStats {
public class DfYhPlan extends SyBaseEntity {
private static final long serialVersionUID = 1L;

3
shuili-system/src/main/java/com/kms/yxgh/df/domain/DfYhRecord.java

@ -2,7 +2,6 @@ package com.kms.yxgh.df.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kms.yxgh.base.SyBaseEntity;
import com.kms.yxgh.common.service.IApprovalStats;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -10,7 +9,7 @@ import lombok.Data;
@TableName("bs_sgc_df_yhjl")
@Data
@ApiModel("堤防维修养护记录")
public class DfYhRecord extends SyBaseEntity implements IApprovalStats {
public class DfYhRecord extends SyBaseEntity {
private static final long serialVersionUID = 1L;

60
shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfYhPlanMapper.java

@ -5,15 +5,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kms.yxgh.common.dto.ApprovalDetailDto;
import com.kms.yxgh.common.dto.ApprovalSearchDto;
import com.kms.yxgh.common.mapper.handler.ListDocHandler;
import com.kms.yxgh.common.mapper.handler.ListSupplementHandler;
import com.kms.yxgh.common.mapper.handler.OperatorHandler;
import com.kms.yxgh.df.domain.DfYhPlan;
import com.kms.yxgh.df.dto.DfYhPlanDetailDto;
import com.kms.yxgh.df.dto.DfYhPlanSearchDto;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
@ -58,61 +53,6 @@ public interface DfYhPlanMapper extends BaseMapper<DfYhPlan> {
})
IPage<DfYhPlanDetailDto> selectPage(Page<DfYhPlanSearchDto> page, @Param("dto") DfYhPlanSearchDto dto);
@Select({"<script>",
"SELECT ts.id id, ts.form_id formId, ts.create_time submit_time, ts.approval_time approval_time, ts.status status, ",
"ts.approver approver, ts.comment comment, ts.doc ts_doc, ",
"yh.di_code dike_code, yh.dike_name dike_name, yh.name plan_name, yh.start_date start_date, yh.end_date end_date, ",
"yh.supplement supplement, yh.doc doc, yh.engineering_unit engineering_unit, yh.responsible_person responsible_person, ",
"yh.type type ",
"FROM bs_sgc_sp_task ts ",
"LEFT JOIN bs_sgc_dp_operator op ON ts.id = op.task_id and op.uid = #{dto.userId} ",
"LEFT JOIN bs_sgc_df_yhjh yh ON yh.id = ts.form_id ",
"LEFT JOIN att_dike_base jb ON yh.dike_code = jb.dike_code and jb.expr_date is null ",
"",
"WHERE ts.business_type = #{dto.businessType} ",
"<if test='dto.status != null'>",
"AND ts.status = #{dto.status} ",
"</if>",
"<if test='dto.condition.dikeCode != null and dto.condition.dikeCode != \"\"'>",
"AND yh.dike_code = #{dto.condition.dikeCode} ",
"</if>",
"<if test='dto.condition.name != null'>",
"AND yh.name LIKE CONCAT('%',#{dto.condition.name},'%') ",
"</if>",
"<if test='dto.condition.adcd != null and dto.condition.adcd != \"\"'>",
"AND jb.adcd LIKE CONCAT(#{dto.condition.adcd},'%') ",
"</if>",
"<if test='dto.condition.dikeName != null and dto.condition.dikeName != \"\"'>",
"AND yh.dike_name LIKE CONCAT('%',#{dto.condition.dikeName},'%') ",
"</if>",
"<if test='dto.condition.startDate != null'>",
"AND yh.start_date &gt;= #{dto.condition.startDate} ",
"</if>",
"<if test='dto.condition.endDate != null'>",
"AND yh.end_date &lt;= #{dto.condition.endDate} ",
"</if>",
"ORDER BY yh.create_time DESC",
"</script>"
})
@Results({
@Result(property = "detail.dikeCode", column = "dike_code"),
@Result(property = "detail.dikeName", column = "dike_name"),
@Result(property = "detail.name", column = "plan_name"),
@Result(property = "detail.startDate", column = "start_date"),
@Result(property = "detail.endDate", column = "end_date"),
@Result(property = "detail.supplements", column = "supplement", typeHandler = ListSupplementHandler.class),
@Result(property = "detail.doc", column = "doc", typeHandler = ListDocHandler.class),
@Result(property = "detail.engineeringUnit", column = "engineering_unit"),
@Result(property = "detail.responsiblePerson", column = "responsible_person", typeHandler = OperatorHandler.class),
@Result(property = "detail.type", column = "type"),
@Result(property = "detail.id", column = "form_id"),
@Result(property = "detail.startDate", column = "startDate"),
@Result(property = "detail.endDate", column = "endDate"),
@Result(property = "detail.dikeType", column = "dike_type"),
@Result(property = "doc", column = "ts_doc", typeHandler = ListDocHandler.class),
@Result(property = "approver", column = "approver", typeHandler = OperatorHandler.class)
})
IPage<ApprovalDetailDto<DfYhPlanDetailDto>> approvalSearchPage(Page<DfYhPlanSearchDto> page, @Param("dto") ApprovalSearchDto<DfYhPlanSearchDto> dto);
}

11
shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhPlanService.java

@ -35,7 +35,7 @@ import java.util.Optional;
*/
@Service
@AllArgsConstructor
public class DfYhPlanService extends BaseService<DfYhPlanMapper, DfYhPlan> implements ApprovalBusinessService<DfYhPlanSearchDto, DfYhPlanDetailDto, DfYhPlan> {
public class DfYhPlanService extends BaseService<DfYhPlanMapper, DfYhPlan> implements ApprovalBusinessService<DfYhPlanSearchDto, DfYhPlanDetailDto> {
private final SysUserService sysUserService;
@ -135,4 +135,13 @@ public class DfYhPlanService extends BaseService<DfYhPlanMapper, DfYhPlan> imple
return Collections.emptyList();
}
@Override
public void updateApprovalStatus(String formId, ApprovalStatusEnum status) {
Wrapper<DfYhPlan> wp = Wrappers.<DfYhPlan>lambdaUpdate()
.eq(DfYhPlan::getId, formId)
.set(DfYhPlan::getStatus, status.getValue());
getBaseMapper().update(null, wp);
}
}

13
shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhRecordService.java

@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kms.yxgh.base.DfException;
import com.kms.yxgh.base.enums.YhRecordStatus;
import com.kms.yxgh.common.ApprovalStatusEnum;
import com.kms.yxgh.common.dto.*;
import com.kms.yxgh.common.service.ApprovalBusinessService;
import com.kms.yxgh.df.domain.DfYhRecord;
@ -32,7 +33,7 @@ import java.util.Optional;
*/
@AllArgsConstructor
@Service
public class DfYhRecordService extends BaseService<DfYhRecordMapper, DfYhRecord> implements ApprovalBusinessService<DfYhRecordSearchDto, DfYhRecordDetailDto, DfYhRecord> {
public class DfYhRecordService extends BaseService<DfYhRecordMapper, DfYhRecord> implements ApprovalBusinessService<DfYhRecordSearchDto, DfYhRecordDetailDto> {
private final DfYhPlanService dfYhPlanService;
@ -127,4 +128,14 @@ public class DfYhRecordService extends BaseService<DfYhRecordMapper, DfYhRecord>
public List<OperatorDto> getOperatorList(String formId) {
return Collections.emptyList();
}
@Override
public void updateApprovalStatus(String formId, ApprovalStatusEnum status) {
Wrapper<DfYhRecord> wp = Wrappers.<DfYhRecord>lambdaUpdate()
.eq(DfYhRecord::getId, formId)
.set(DfYhRecord::getStatus, status.getValue());
getBaseMapper().update(null, wp);
}
}

74
shuili-system/src/main/resources/mapper/yxgh/DfYhPlanMapper.xml

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.kms.yxgh.df.mapper.DfYhPlanMapper">
<resultMap id="approvalMap" type="com.kms.yxgh.common.dto.ApprovalDetailDto">
<id property="id" column="id"/>
<result property="formId" column="formId"/>
<result property="submitTime" column="submit_time"/>
<result property="approvalTime" column="approval_time"/>
<result property="status" column="status"/>
<result property="comment" column="comment"/>
<result property="operator" column="operator" typeHandler="com.kms.yxgh.common.mapper.handler.OperatorHandler"/>
<result property="doc" column="ts_doc" typeHandler="com.kms.yxgh.common.mapper.handler.ListDocHandler"/>
<association property="detail" javaType="com.kms.yxgh.df.dto.DfYhPlanDetailDto">
<id property="id" column="dike_id"/>
<result property="dikeCode" column="dike_code"/>
<result property="dikeName" column="dike_name"/>
<result property="dikeType" column="dike_type"/>
<result property="name" column="plan_name"/>
<result property="startDate" column="start_date"/>
<result property="endDate" column="end_date"/>
<result property="supplements" column="supplement"
typeHandler="com.kms.yxgh.common.mapper.handler.ListSupplementHandler"/>
<result property="doc" column="doc" typeHandler="com.kms.yxgh.common.mapper.handler.ListDocHandler"/>
<result property="engineeringUnit" column="engineering_unit"/>
<result property="responsiblePerson" column="responsible_person"
typeHandler="com.kms.yxgh.common.mapper.handler.OperatorHandler"/>
<result property="type" column="type"/>
<result property="status" column="status"/>
<result property="remark" column="remark"/>
</association>
</resultMap>
<select id="approvalSearchPage" resultMap="approvalMap">
SELECT ts.id id, ts.form_id formId, ts.create_time submit_time, ts.approval_time approval_time, ts.status
status,
ts.operator operator, ts.comment comment, ts.doc ts_doc,
yh.dike_code dike_code, yh.dike_name dike_name, yh.name plan_name, yh.start_date start_date, yh.end_date
end_date,
yh.supplement supplement, yh.doc doc, yh.engineering_unit engineering_unit, yh.responsible_person
responsible_person,
yh.type type
FROM bs_sgc_sp_task ts
LEFT JOIN bs_sgc_sp_operator op ON ts.id = op.task_id and op.uid = #{dto.userId}
LEFT JOIN bs_sgc_df_yhjh yh ON yh.id = ts.form_id
LEFT JOIN att_dike_base jb ON yh.dike_code = jb.dike_code and jb.expr_date is null
WHERE ts.business_type = #{dto.businessType}
<if test='dto.status != null'>
AND ts.status = #{dto.status}
</if>
<if test='dto.condition.dikeCode != null and dto.condition.dikeCode != ""'>
AND yh.dike_code = #{dto.condition.dikeCode}
</if>
<if test='dto.condition.name != null'>
AND yh.name LIKE CONCAT('%',#{dto.condition.name},'%')
</if>
<if test='dto.condition.adcd != null and dto.condition.adcd != ""'>
AND jb.adcd LIKE CONCAT(#{dto.condition.adcd},'%')
</if>
<if test='dto.condition.dikeName != null and dto.condition.dikeName != ""'>
AND yh.dike_name LIKE CONCAT('%',#{dto.condition.dikeName},'%')
</if>
<if test='dto.condition.startDate != null'>
AND yh.start_date &gt;= #{dto.condition.startDate}
</if>
<if test='dto.condition.endDate != null'>
AND yh.end_date &lt;= #{dto.condition.endDate}
</if>
ORDER BY yh.create_time DESC
</select>
</mapper>

4
sql/sy/v1.4.0/全量脚本/v1.4.0-all.sql

@ -200,7 +200,7 @@ CREATE TABLE `bs_sgc_sp_task` (
`FORM_ID` int NOT NULL COMMENT '表单ID',
`BUSINESS_TYPE` VARCHAR(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT '业务类型',
`STATUS` int NOT NULL COMMENT '状态',
`OPERATOR` VARCHAR(32) COLLATE utf8mb4_general_ci NOT NULL COMMENT '审批人',
`OPERATOR` VARCHAR(32) COLLATE utf8mb4_general_ci COMMENT '审批人',
`COMMENT` text COLLATE utf8mb4_general_ci COMMENT '审批意见',
`DOC` text COLLATE utf8mb4_general_ci COMMENT '审批文档',
`APPROVAL_TIME` datetime DEFAULT NULL COMMENT '审批时间',
@ -211,7 +211,7 @@ CREATE TABLE `bs_sgc_sp_task` (
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='审批任务表';
CREATE TABLE `bs_sgc_dp_operator` (
CREATE TABLE `bs_sgc_sp_operator` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '审批执行人员编号',
`UID` varchar(32) COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户ID',
`NAME` varchar(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户名称',

4
sql/sy/v1.4.0/增量脚本/v1.4.0-update.sql

@ -24,7 +24,7 @@ CREATE TABLE `bs_sgc_sp_task` (
`FORM_ID` int NOT NULL COMMENT '表单ID',
`BUSINESS_TYPE` VARCHAR(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT '业务类型',
`STATUS` int NOT NULL COMMENT '状态',
`OPERATOR` VARCHAR(32) COLLATE utf8mb4_general_ci NOT NULL COMMENT '审批人',
`OPERATOR` VARCHAR(32) COLLATE utf8mb4_general_ci COMMENT '审批人',
`COMMENT` text COLLATE utf8mb4_general_ci COMMENT '审批意见',
`DOC` text COLLATE utf8mb4_general_ci COMMENT '审批文档',
`APPROVAL_TIME` datetime DEFAULT NULL COMMENT '审批时间',
@ -35,7 +35,7 @@ CREATE TABLE `bs_sgc_sp_task` (
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='审批任务表';
CREATE TABLE `bs_sgc_dp_operator` (
CREATE TABLE `bs_sgc_sp_operator` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '审批执行人员编号',
`UID` varchar(32) COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户ID',
`NAME` varchar(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户名称',

Loading…
Cancel
Save