Browse Source

feat: 添加维修养护记录字段

master_tdsql
hxh 9 months ago
parent
commit
92bae3b077
  1. 14
      shuili-system/src/main/java/com/kms/yxgh/common/dto/SupplementDto.java
  2. 1
      shuili-system/src/main/java/com/kms/yxgh/df/domain/DfYhOperator.java
  3. 11
      shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhPlanDetailDto.java
  4. 56
      shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhRecordDetailDto.java
  5. 34
      shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhRecordSearchDto.java
  6. 1
      shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfYhOperatorMapper.java
  7. 7
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhPlanService.java
  8. 69
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhRecordService.java
  9. 20
      sql/sy/v1.4.0/增量脚本/v1.4.0-update.sql

14
shuili-system/src/main/java/com/kms/yxgh/common/dto/SupplementDto.java

@ -0,0 +1,14 @@
package com.kms.yxgh.common.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("资金补充")
@Data
public class SupplementDto {
@ApiModelProperty("类型")
private String type;
@ApiModelProperty("金额(万元)")
private String amount;
}

1
shuili-system/src/main/java/com/kms/yxgh/df/domain/DfYhOperator.java

@ -14,6 +14,7 @@ import lombok.Data;
* @author sy
* @date 2023-11-20
*/
@Deprecated
@TableName("bs_sgc_df_yhjlzx")
@Data
@ApiModel("堤防维修养护执行人")

11
shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhPlanDetailDto.java

@ -2,6 +2,7 @@ package com.kms.yxgh.df.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.kms.yxgh.common.dto.DocDto;
import com.kms.yxgh.common.dto.SupplementDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
@ -51,7 +52,7 @@ public class DfYhPlanDetailDto {
private Date endDate;
@ApiModelProperty("资金")
private List<Supplement> supplements;
private List<SupplementDto> supplements;
@ApiModelProperty("文档")
private DocDto doc;
@ -73,12 +74,6 @@ public class DfYhPlanDetailDto {
private String status;
@Data
public static class Supplement {
@ApiModelProperty("类型")
private String type;
@ApiModelProperty("金额(万元)")
private String amount;
}
}

56
shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhRecordDetailDto.java

@ -3,6 +3,7 @@ package com.kms.yxgh.df.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.kms.yxgh.common.dto.DocDto;
import com.kms.yxgh.common.dto.OperatorDto;
import com.kms.yxgh.common.dto.SupplementDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -24,50 +25,67 @@ public class DfYhRecordDetailDto {
@ApiModelProperty("养护记录id")
private String id;
@ApiModelProperty("堤防码")
@ApiModelProperty("堤防码")
private String dikeCode;
@ApiModelProperty("堤防名称")
private String dikeName;
@ApiModelProperty("堤防类型")
private Integer dikeType;
@ApiModelProperty("计划代码")
private String planId;
@ApiModelProperty("计划名称")
private String planName;
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("维护前")
private String before;
@ApiModelProperty("资金")
private List<SupplementDto> supplements;
@ApiModelProperty("维护过程")
private String middle;
@ApiModelProperty("备注")
private String remark;
@ApiModelProperty("维护结束")
private String after;
@ApiModelProperty("状态")
private String status;
@ApiModelProperty("养护费用")
private Long maintenanceFunds;
@ApiModelProperty("维修养护类型")
private String type;
@ApiModelProperty("落实情况")
private String implement;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("计划开始时间")
private Date startDate;
@ApiModelProperty("状态")
private String status;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("计划结束时间")
private Date endDate;
@ApiModelProperty("工程单位")
private String engineeringUnit;
@ApiModelProperty("负责人")
private String responsiblePerson;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("提醒时间")
private Date reminderTime;
@ApiModelProperty("备注")
private String remark;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("创建时间")
private Date createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("最近修改时间")
private Date updateTime;
@ApiModelProperty("养护人员")
private List<OperatorDto> operators;
@ApiModelProperty("文档")
private DocDto doc;
private List<DocDto> doc;
@ApiModelProperty("台账")
private List<DocDto> ledgerDoc;
@ApiModelProperty("计划信息")
private DfYhPlanDetailDto plan;

34
shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhRecordSearchDto.java

@ -20,31 +20,27 @@ import java.util.Date;
@ApiModel("堤防养护记录查询")
public class DfYhRecordSearchDto {
@ApiModelProperty("堤防编号")
@ApiModelProperty("行政区划")
private String adcd;
@ApiModelProperty("堤防代码")
private String dikeCode;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("创建起始时间")
private Date startCreatedTime;
@ApiModelProperty("堤防名称")
private String dikeName;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("创建结束时间")
private Date endCreatedTime;
@ApiModelProperty("堤防id")
private String dikeId;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("更新起始时间")
private Date startUpdateTime;
@ApiModelProperty("名称")
private String name;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("更新结束时间")
private Date endUpdateTime;
@ApiModelProperty("状态")
private String status;
@ApiModelProperty("计划开始时间")
private Date startDate;
@ApiModelProperty("最小维修费用")
private Double minRepairCost;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("计划结束时间")
private Date endDate;
@ApiModelProperty("最大维修费用")
private Double maxRepairCost;
}

1
shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfYhOperatorMapper.java

@ -10,6 +10,7 @@ import org.springframework.stereotype.Repository;
* @author sy
* @date 2023-11-20
*/
@Deprecated
@Repository
public interface DfYhOperatorMapper extends BaseMapper<DfYhOperator> {

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

@ -8,10 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kms.yg.df.service.BsSgcDfSafeJbxxService;
import com.kms.yxgh.base.DfException;
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.DocDto;
import com.kms.yxgh.common.dto.OperatorDto;
import com.kms.yxgh.common.dto.*;
import com.kms.yxgh.common.service.ApprovalBusinessService;
import com.kms.yxgh.df.domain.DfYhPlan;
import com.kms.yxgh.df.dto.DfYhPlanDetailDto;
@ -46,7 +43,7 @@ public class DfYhPlanService extends BaseService<DfYhPlanMapper, DfYhPlan> imple
DfYhPlanDetailDto dto = BeanCopyUtils.copy(dfPlan, DfYhPlanDetailDto.class);
if (dto != null) {
dto.setDoc(JSON.parseObject(dfPlan.getDoc(), DocDto.class));
dto.setSupplements(JSON.parseArray(dfPlan.getSupplement(), DfYhPlanDetailDto.Supplement.class));
dto.setSupplements(JSON.parseArray(dfPlan.getSupplement(), SupplementDto.class));
}
return dto;
}

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

@ -1,6 +1,5 @@
package com.kms.yxgh.df.service;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -8,19 +7,13 @@ 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.dto.ApprovalDetailDto;
import com.kms.yxgh.common.dto.ApprovalSearchDto;
import com.kms.yxgh.common.dto.DocDto;
import com.kms.yxgh.common.dto.OperatorDto;
import com.kms.yxgh.common.dto.*;
import com.kms.yxgh.common.service.ApprovalBusinessService;
import com.kms.yxgh.df.domain.DfYhOperator;
import com.kms.yxgh.df.domain.DfYhRecord;
import com.kms.yxgh.df.dto.DfYhRecordDetailDto;
import com.kms.yxgh.df.dto.DfYhRecordSearchDto;
import com.kms.yxgh.df.mapper.DfYhOperatorMapper;
import com.kms.yxgh.df.mapper.DfYhRecordMapper;
import com.kms.yxgh.util.BeanCopyUtils;
import com.kms.yxgh.util.StreamUtils;
import com.shuili.common.core.domain.SearchParam;
import com.shuili.common.core.service.BaseService;
import lombok.AllArgsConstructor;
@ -30,7 +23,6 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.function.Consumer;
/**
* 堤防维修养护记录Service接口
@ -42,26 +34,17 @@ import java.util.function.Consumer;
@Service
public class DfYhRecordService extends BaseService<DfYhRecordMapper, DfYhRecord> implements ApprovalBusinessService<DfYhRecordSearchDto, DfYhRecordDetailDto, DfYhRecord> {
private final DfYhOperatorMapper dfYhOperatorMapper;
private final DfYhPlanService dfYhPlanService;
public DfYhRecordDetailDto getDetailById(String id) {
DfYhRecord record = this.getBaseMapper().selectById(id);
if (record != null) {
DfYhRecordDetailDto dto = BeanCopyUtils.copy(record, DfYhRecordDetailDto.class);
if (dto != null) {
dto.setDoc(JSON.parseObject(record.getDoc(), DocDto.class));
}
Wrapper<DfYhOperator> wp = Wrappers.<DfYhOperator>lambdaQuery()
.eq(DfYhOperator::getRecordId, id);
List<DfYhOperator> items = dfYhOperatorMapper.selectList(wp);
if (CollectionUtil.isNotEmpty(items) && dto != null) {
dto.setOperators(StreamUtils.toList(items, r -> {
OperatorDto operatorDto = new OperatorDto();
operatorDto.setId(r.getId());
operatorDto.setUid(r.getOperatorUid());
operatorDto.setName(r.getOperatorName());
return operatorDto;
}));
dto.setDoc(JSON.parseArray(record.getDoc(), DocDto.class));
dto.setLedgerDoc(JSON.parseArray(record.getLedgerDoc(), DocDto.class));
dto.setSupplements(JSON.parseArray(record.getSupplement(), SupplementDto.class));
dto.setPlan(dfYhPlanService.getDetailById(dto.getPlanId()));
}
return dto;
}
@ -74,11 +57,10 @@ public class DfYhRecordService extends BaseService<DfYhRecordMapper, DfYhRecord>
if (dfYhRecord != null) {
dfYhRecord.setId(null);
dfYhRecord.setDoc(JSON.toJSONString(dto.getDoc()));
dfYhRecord.setLedgerDoc(JSON.toJSONString(dto.getLedgerDoc()));
dfYhRecord.setSupplement(JSON.toJSONString(dto.getSupplements()));
getBaseMapper().insert(dfYhRecord);
dto.setId(dfYhRecord.getId());
if (CollectionUtil.isNotEmpty(dto.getOperators())) {
dto.getOperators().forEach(insertOperator(dto.getId()));
}
return dto;
}
return null;
@ -92,12 +74,9 @@ public class DfYhRecordService extends BaseService<DfYhRecordMapper, DfYhRecord>
DfYhRecord dfYhRecord = BeanCopyUtils.copy(dfRecord, DfYhRecord.class);
if (dfYhRecord != null) {
dfYhRecord.setDoc(JSON.toJSONString(dfRecord.getDoc()));
dfYhRecord.setLedgerDoc(JSON.toJSONString(dfRecord.getLedgerDoc()));
dfYhRecord.setSupplement(JSON.toJSONString(dfRecord.getSupplements()));
getBaseMapper().updateById(dfYhRecord);
String id = dfRecord.getId();
deleteItems(id);
if (CollectionUtil.isNotEmpty(dfRecord.getOperators())) {
dfRecord.getOperators().forEach(insertOperator(id));
}
return dfRecord;
}
} else {
@ -107,29 +86,10 @@ public class DfYhRecordService extends BaseService<DfYhRecordMapper, DfYhRecord>
throw new DfException("源数据不存在,请确认id值是否正确");
}
private Consumer<OperatorDto> insertOperator(String id) {
return (o) -> {
DfYhOperator item = new DfYhOperator();
item.setRecordId(id);
item.setOperatorName(o.getName());
item.setOperatorUid(o.getUid());
dfYhOperatorMapper.insert(item);
};
}
@Transactional(rollbackFor = Exception.class)
public Boolean deleteById(String id) {
boolean rt = removeById(id);
if (rt) {
deleteItems(id);
}
return rt;
}
private void deleteItems(String id) {
Wrapper<DfYhOperator> wp = Wrappers.<DfYhOperator>lambdaQuery()
.eq(DfYhOperator::getRecordId, id);
dfYhOperatorMapper.delete(wp);
return removeById(id);
}
private boolean checkStatus(String id) {
@ -145,13 +105,6 @@ public class DfYhRecordService extends BaseService<DfYhRecordMapper, DfYhRecord>
return this.getBaseMapper().selectCount(wp) > 0;
}
private boolean existRecord(String planId) {
Wrapper<DfYhRecord> wp = Wrappers.<DfYhRecord>lambdaQuery()
.eq(DfYhRecord::getPlanId, planId);
Integer count = this.getBaseMapper().selectCount(wp);
return count > 0;
}
public IPage<DfYhRecordDetailDto> search(SearchParam<DfYhRecordSearchDto> sp) {
Page<DfYhRecordDetailDto> page = new Page<>(sp.getPageNum(), sp.getPageSize());
return this.getBaseMapper().searchPage(page, Optional.ofNullable(sp.getData()).orElse(new DfYhRecordSearchDto()));

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

@ -2,7 +2,6 @@ SET NAMES utf8mb4;
ALTER TABLE `bs_sgc_df_yhjh` ADD `DIKE_NAME` varchar(50) COLLATE utf8mb4_general_ci COMMENT '堤防名称';
ALTER TABLE `bs_sgc_df_yhjh` ADD `DIKE_TYPE` int COMMENT '堤防类型';
ALTER TABLE `bs_sgc_df_yhjh` ADD `NAME` varchar(100) COLLATE utf8mb4_general_ci COMMENT '名称';
ALTER TABLE `bs_sgc_df_yhjh` ADD `TYPE` int DEFAULT NULL COMMENT '维修养护类型';
ALTER TABLE `bs_sgc_df_yhjh` ADD `START_DATE` datetime DEFAULT NULL COMMENT '计划开始时间';
ALTER TABLE `bs_sgc_df_yhjh` ADD `END_DATE` datetime DEFAULT NULL COMMENT '计划结束时间';
@ -14,14 +13,11 @@ ALTER TABLE `bs_sgc_df_yhjh` ADD `REMINDER_TIME` datetime DEFAULT NULL COMMENT '
ALTER TABLE `bs_sgc_df_yhjh` ADD `STATUS` int NOT NULL COMMENT '状态';
ALTER TABLE `ba_sgc_df_yhjl` ADD `DIKE_NAME` varchar(50) COLLATE utf8mb4_general_ci COMMENT '堤防名称';
ALTER TABLE `ba_sgc_df_yhjl` ADD `DIKE_TYPE` int COMMENT '堤防类型';
ALTER TABLE `ba_sgc_df_yhjl` ADD `NAME` varchar(100) COLLATE utf8mb4_general_ci COMMENT '名称';
ALTER TABLE `ba_sgc_df_yhjl` ADD `SUPPLEMENT` varchar(500) DEFAULT NULL COMMENT '资金';
ALTER TABLE `ba_sgc_df_yhjl` ADD `DOC` text COLLATE utf8mb4_general_ci COMMENT '维养文档';
ALTER TABLE `ba_sgc_df_yhjl` ADD `LEDGER_DOC` text COLLATE utf8mb4_general_ci COMMENT '维养台账';
ALTER TABLE `ba_sgc_df_yhjl` ADD `PLAN_NAME` varchar(100) COLLATE utf8mb4_general_ci COMMENT '计划名称';
ALTER TABLE `bs_sgc_df_yhjl` ADD `DIKE_NAME` varchar(50) COLLATE utf8mb4_general_ci COMMENT '堤防名称';
ALTER TABLE `bs_sgc_df_yhjl` ADD `DIKE_TYPE` int COMMENT '堤防类型';
ALTER TABLE `bs_sgc_df_yhjl` ADD `SUPPLEMENT` varchar(500) DEFAULT NULL COMMENT '资金';
ALTER TABLE `bs_sgc_df_yhjl` ADD `LEDGER_DOC` text COLLATE utf8mb4_general_ci COMMENT '维养台账';
ALTER TABLE `bs_sgc_df_yhjl` ADD `PLAN_NAME` varchar(100) COLLATE utf8mb4_general_ci COMMENT '计划名称';
CREATE TABLE `bs_sgc_sp_task` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '审批编号ID',
@ -29,6 +25,9 @@ CREATE TABLE `bs_sgc_sp_task` (
`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 '审批人',
`COMMENT` text COLLATE utf8mb4_general_ci COMMENT '审批意见',
`DOC` text COLLATE utf8mb4_general_ci COMMENT '审批文档',
`APPROVAL_TIME` datetime DEFAULT NULL COMMENT '审批时间',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
@ -41,11 +40,10 @@ CREATE TABLE `bs_sgc_dp_operator` (
`UID` varchar(32) COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户ID',
`NAME` varchar(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户名称',
`TASK_ID` int NOT NULL COMMENT '审批任务ID',
`COMMENT` text COLLATE utf8mb4_general_ci COMMENT '审批意见',
`DOC` text COLLATE utf8mb4_general_ci COMMENT '审批文档',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='审批执行人表';

Loading…
Cancel
Save