diff --git a/shuili-system/src/main/java/com/kms/yxgh/common/ApprovalTypeEnum.java b/shuili-system/src/main/java/com/kms/yxgh/common/ApprovalTypeEnum.java index 43efc9e1..2ed6af3d 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/common/ApprovalTypeEnum.java +++ b/shuili-system/src/main/java/com/kms/yxgh/common/ApprovalTypeEnum.java @@ -7,8 +7,10 @@ import lombok.Getter; @Getter public enum ApprovalTypeEnum { - YH_PLAN("养护计划", "yh_plan", "dfYhPlanService"), - YH_RECORD("养护记录", "yh_record", "dfYhRecordService"); + YH_PLAN("堤防维修养护计划", "yh_plan", "dfYhPlanService"), + YH_RECORD("堤防维修养护记录", "yh_record", "dfYhRecordService"), + SZ_YH_PLAN("水闸维修养护计划", "sz_yh_plan", "szYhPlanService"), + SZ_YH_RECORD("水闸维修养护记录", "sz_yh_record", "szYhRecordService"); private final String name; diff --git a/shuili-system/src/main/java/com/kms/yxgh/common/dto/ApprovalCommentDto.java b/shuili-system/src/main/java/com/kms/yxgh/common/dto/ApprovalCommentDto.java index 3cf48265..f0088dca 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/common/dto/ApprovalCommentDto.java +++ b/shuili-system/src/main/java/com/kms/yxgh/common/dto/ApprovalCommentDto.java @@ -21,5 +21,5 @@ public class ApprovalCommentDto { @ApiModelProperty("审批人") private OperatorDto operator; @ApiModelProperty("审批文档") - private List docs; + private DocDto docs; } diff --git a/shuili-system/src/main/java/com/kms/yxgh/common/dto/ApprovalDetailDto.java b/shuili-system/src/main/java/com/kms/yxgh/common/dto/ApprovalDetailDto.java index d2f78789..8b510dfd 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/common/dto/ApprovalDetailDto.java +++ b/shuili-system/src/main/java/com/kms/yxgh/common/dto/ApprovalDetailDto.java @@ -40,7 +40,7 @@ public class ApprovalDetailDto { private String comment; @ApiModelProperty("审批材料") - private List doc; + private DocDto doc; @ApiModelProperty("审批详情") private T detail; diff --git a/shuili-system/src/main/java/com/kms/yxgh/common/mapper/handler/DocHandler.java b/shuili-system/src/main/java/com/kms/yxgh/common/mapper/handler/DocHandler.java new file mode 100644 index 00000000..1ab25cf4 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/common/mapper/handler/DocHandler.java @@ -0,0 +1,42 @@ +package com.kms.yxgh.common.mapper.handler; + +import com.alibaba.fastjson.JSON; +import com.kms.yxgh.common.dto.DocDto; +import com.kms.yxgh.common.dto.OperatorDto; +import org.apache.ibatis.type.BaseTypeHandler; +import org.apache.ibatis.type.JdbcType; + +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +public class DocHandler extends BaseTypeHandler { + public DocHandler() { + } + + public void setNonNullParameter(PreparedStatement ps, int i, DocDto parameter, JdbcType jdbcType) throws SQLException { + ps.setString(i, JSON.toJSONString(parameter)); + } + + public DocDto getNullableResult(ResultSet rs, String columnName) throws SQLException { + if (rs.getString(columnName) != null) { + return JSON.parseObject(rs.getString(columnName), DocDto.class); + } + return null; + } + + public DocDto getNullableResult(ResultSet rs, int columnIndex) throws SQLException { + if (rs.getString(columnIndex) != null) { + return JSON.parseObject(rs.getString(columnIndex), DocDto.class); + } + return null; + } + + public DocDto getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { + if (cs.getString(columnIndex) != null) { + return JSON.parseObject(cs.getString(columnIndex), DocDto.class); + } + return null; + } +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/common/service/ApprovalService.java b/shuili-system/src/main/java/com/kms/yxgh/common/service/ApprovalService.java index 718a3305..bad1f102 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/common/service/ApprovalService.java +++ b/shuili-system/src/main/java/com/kms/yxgh/common/service/ApprovalService.java @@ -118,7 +118,7 @@ public class ApprovalService { commentDto.setComment(approvalTask.getComment()); commentDto.setApprovalTime(approvalTask.getApprovalTime()); commentDto.setOperator(JSON.parseObject(approvalTask.getOperator(), OperatorDto.class)); - commentDto.setDocs(JSON.parseArray(approvalTask.getDoc(), DocDto.class)); + commentDto.setDocs(JSON.parseObject(approvalTask.getDoc(), DocDto.class)); commentDto.setStatus(approvalTask.getStatus()); return commentDto; }).filter(commentDto -> commentDto.getApprovalTime() != null) diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhPlanDetailDto.java b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhPlanDetailDto.java index 594a1a63..2d228a77 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhPlanDetailDto.java +++ b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhPlanDetailDto.java @@ -56,7 +56,7 @@ public class DfYhPlanDetailDto { private List supplements; @ApiModelProperty("文档") - private List doc; + private DocDto doc; @ApiModelProperty("工程单位") private String engineeringUnit; diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhRecordDetailDto.java b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhRecordDetailDto.java index 77c8f0b3..98357146 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhRecordDetailDto.java +++ b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYhRecordDetailDto.java @@ -61,10 +61,10 @@ public class DfYhRecordDetailDto { private OperatorDto responsiblePerson; @ApiModelProperty("文档") - private List doc; + private DocDto doc; @ApiModelProperty("台账") - private List ledgerDoc; + private DocDto ledgerDoc; @ApiModelProperty("计划信息") private DfYhPlanDetailDto plan; diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfYhPlanMapper.java b/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfYhPlanMapper.java index b6f874f4..643acdaa 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfYhPlanMapper.java +++ b/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfYhPlanMapper.java @@ -5,7 +5,9 @@ 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.DocHandler; 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; @@ -62,8 +64,8 @@ public interface DfYhPlanMapper extends BaseMapper { "" }) @Results({ - @Result(column = "doc", property = "doc", typeHandler = ListDocHandler.class), - @Result(column = "supplement", property = "supplements", typeHandler = ListDocHandler.class), + @Result(column = "doc", property = "doc", typeHandler = DocHandler.class), + @Result(column = "supplement", property = "supplements", typeHandler = ListSupplementHandler.class), @Result(column = "responsible_person", property = "responsiblePerson", typeHandler = OperatorHandler.class) }) IPage selectPage(Page page, @Param("dto") DfYhPlanSearchDto dto); diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfYhRecordMapper.java b/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfYhRecordMapper.java index 1039007a..9aa99159 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfYhRecordMapper.java +++ b/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfYhRecordMapper.java @@ -5,6 +5,7 @@ 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.DocHandler; import com.kms.yxgh.common.mapper.handler.ListSupplementHandler; import com.kms.yxgh.common.mapper.handler.OperatorHandler; import com.kms.yxgh.df.domain.DfYhRecord; @@ -66,8 +67,8 @@ public interface DfYhRecordMapper extends BaseMapper { @Results({ @Result(column = "responsible_person", property = "responsiblePerson", typeHandler = OperatorHandler.class), @Result(column = "supplement", property = "supplements", typeHandler = ListSupplementHandler.class), - @Result(column = "doc", property = "doc", typeHandler = ListSupplementHandler.class), - @Result(column = "ledger_doc", property = "ledgerDoc", typeHandler = ListSupplementHandler.class) + @Result(column = "doc", property = "doc", typeHandler = DocHandler.class), + @Result(column = "ledger_doc", property = "ledgerDoc", typeHandler = DocHandler.class) }) IPage searchPage(IPage page, @Param("searchDto") DfYhRecordSearchDto searchDto); diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhPlanService.java b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhPlanService.java index df9cccfb..04cfe79b 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhPlanService.java +++ b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhPlanService.java @@ -43,7 +43,7 @@ public class DfYhPlanService extends BaseService imple DfYhPlan dfPlan = this.getById(id); DfYhPlanDetailDto dto = BeanCopyUtils.copy(dfPlan, DfYhPlanDetailDto.class); if (dto != null) { - dto.setDoc(JSON.parseArray(dfPlan.getDoc(), DocDto.class)); + dto.setDoc(JSON.parseObject(dfPlan.getDoc(), DocDto.class)); dto.setSupplements(JSON.parseArray(dfPlan.getSupplement(), SupplementDto.class)); dto.setResponsiblePerson(JSON.parseObject(dfPlan.getResponsiblePerson(), OperatorDto.class)); } diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhRecordService.java b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhRecordService.java index 82320e1e..c8086c58 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhRecordService.java +++ b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhRecordService.java @@ -47,8 +47,8 @@ public class DfYhRecordService extends BaseService if (record != null) { DfYhRecordDetailDto dto = BeanCopyUtils.copy(record, DfYhRecordDetailDto.class); if (dto != null) { - dto.setDoc(JSON.parseArray(record.getDoc(), DocDto.class)); - dto.setLedgerDoc(JSON.parseArray(record.getLedgerDoc(), DocDto.class)); + dto.setDoc(JSON.parseObject(record.getDoc(), DocDto.class)); + dto.setLedgerDoc(JSON.parseObject(record.getLedgerDoc(), DocDto.class)); dto.setSupplements(JSON.parseArray(record.getSupplement(), SupplementDto.class)); dto.setPlan(dfYhPlanService.getDetailById(dto.getPlanId())); } diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzYhPlanController.java b/shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzYhPlanController.java index 4fe6c8e5..3546bf96 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzYhPlanController.java +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzYhPlanController.java @@ -2,11 +2,12 @@ package com.kms.yxgh.sz.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.kms.yxgh.base.Response; +import com.kms.yxgh.common.ApprovalTypeEnum; +import com.kms.yxgh.common.controller.ApprovalAbstractController; import com.kms.yxgh.sz.dto.SzYhPlanDetailDto; import com.kms.yxgh.sz.dto.SzYhPlanSearchDto; import com.kms.yxgh.sz.service.SzYhPlanService; import com.shuili.common.annotation.Log; -import com.shuili.common.core.controller.BaseController; import com.shuili.common.core.domain.SearchParam; import com.shuili.common.enums.BusinessType; import io.swagger.annotations.Api; @@ -24,56 +25,62 @@ import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/run/sz/yh/plan") @Api(tags = "水闸维修养护计划") -public class SzYhPlanController extends BaseController { +public class SzYhPlanController extends ApprovalAbstractController { - @Autowired - private SzYhPlanService szYhPlanService; - /** - * 查询水闸维修养护计划列表 - */ - @PostMapping("/list") - @ApiOperation("水闸维修养护计划列表") - public IPage list(@RequestBody SearchParam sp) { - return szYhPlanService.search(sp); - } + @Autowired + private SzYhPlanService szYhPlanService; - /** - * 获取水闸维修养护计划详细信息 - */ - @ApiOperation(" 水闸维修养护计划详情") - @GetMapping(value = "/{id}") - public Response getInfo(@PathVariable("id") String id) { - return Response.ok(szYhPlanService.getDetailById(id)); - } + /** + * 查询水闸维修养护计划列表 + */ + @PostMapping("/list") + @ApiOperation("水闸维修养护计划列表") + public IPage list(@RequestBody SearchParam sp) { + return szYhPlanService.search(sp); + } - /** - * 新增水闸维修养护计划 - */ - @Log(title = "水闸维修养护计划新增", businessType = BusinessType.INSERT) - @PostMapping - @ApiOperation("水闸维修养护计划新增") - public Response add(@RequestBody SzYhPlanDetailDto szYhPlan) { - return Response.ok(szYhPlanService.add(szYhPlan)); - } + /** + * 获取水闸维修养护计划详细信息 + */ + @ApiOperation(" 水闸维修养护计划详情") + @GetMapping(value = "/{id}") + public Response getInfo(@PathVariable("id") String id) { + return Response.ok(szYhPlanService.getDetailById(id)); + } - /** - * 修改水闸维修养护计划 - */ - @ApiOperation("水闸维修养护计划修改") - @Log(title = "水闸维修养护计划修改", businessType = BusinessType.UPDATE) - @PutMapping - public Response edit(@RequestBody SzYhPlanDetailDto szYhPlan) { - return Response.ok(szYhPlanService.update(szYhPlan)); - } + /** + * 新增水闸维修养护计划 + */ + @Log(title = "水闸维修养护计划新增", businessType = BusinessType.INSERT) + @PostMapping + @ApiOperation("水闸维修养护计划新增") + public Response add(@RequestBody SzYhPlanDetailDto szYhPlan) { + return Response.ok(szYhPlanService.add(szYhPlan)); + } - /** - * 删除水闸维修养护计划 - */ - @ApiOperation("水闸维修养护计划删除") - @Log(title = "水闸维修养护计划删除", businessType = BusinessType.DELETE) - @DeleteMapping("/{id}") - public Response remove(@PathVariable String id) { - return Response.ok(szYhPlanService.deleteById(id)); - } + /** + * 修改水闸维修养护计划 + */ + @ApiOperation("水闸维修养护计划修改") + @Log(title = "水闸维修养护计划修改", businessType = BusinessType.UPDATE) + @PutMapping + public Response edit(@RequestBody SzYhPlanDetailDto szYhPlan) { + return Response.ok(szYhPlanService.update(szYhPlan)); + } + + /** + * 删除水闸维修养护计划 + */ + @ApiOperation("水闸维修养护计划删除") + @Log(title = "水闸维修养护计划删除", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public Response remove(@PathVariable String id) { + return Response.ok(szYhPlanService.deleteById(id)); + } + + @Override + public ApprovalTypeEnum getApprovalType() { + return ApprovalTypeEnum.SZ_YH_PLAN; + } } diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzYhRecordController.java b/shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzYhRecordController.java index 3fec1254..4503b28d 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzYhRecordController.java +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzYhRecordController.java @@ -2,12 +2,13 @@ package com.kms.yxgh.sz.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.kms.yxgh.base.Response; +import com.kms.yxgh.common.ApprovalTypeEnum; +import com.kms.yxgh.common.controller.ApprovalAbstractController; import com.kms.yxgh.sz.dto.SzYhRecordDetailDto; import com.kms.yxgh.sz.dto.SzYhRecordSearchDto; import com.kms.yxgh.sz.service.SzYhPlanService; import com.kms.yxgh.sz.service.SzYhRecordService; import com.shuili.common.annotation.Log; -import com.shuili.common.core.controller.BaseController; import com.shuili.common.core.domain.SearchParam; import com.shuili.common.enums.BusinessType; import io.swagger.annotations.Api; @@ -25,7 +26,7 @@ import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/run/sz/yh/record") @Api(tags = "水闸维修养护记录") -public class SzYhRecordController extends BaseController { +public class SzYhRecordController extends ApprovalAbstractController { @Autowired private SzYhRecordService szYhRecordService; @@ -94,4 +95,9 @@ public class SzYhRecordController extends BaseController { public Response remove(@PathVariable String id) { return Response.ok(szYhRecordService.deleteById(id)); } + + @Override + public ApprovalTypeEnum getApprovalType() { + return ApprovalTypeEnum.SZ_YH_RECORD; + } } diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzYhPlan.java b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzYhPlan.java index 2ceda552..33e61e87 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzYhPlan.java +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzYhPlan.java @@ -3,12 +3,10 @@ package com.kms.yxgh.sz.domain; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import com.kms.yxgh.base.SyBaseEntity; -import com.shuili.common.annotation.Excel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.math.BigDecimal; import java.util.Date; @@ -23,57 +21,51 @@ import java.util.Date; @ApiModel("水闸维修养护计划") public class SzYhPlan extends SyBaseEntity { - private static final long serialVersionUID = 1L; - - /** - * 水闸代码 - */ - @Excel(name = "水闸代码") - @ApiModelProperty("水闸代码") - private String wagaCode; - - /** - * 名称 - */ - @Excel(name = "名称") - @ApiModelProperty("名称") - private String name; - - /** - * 计划时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd") - @Excel(name = "计划时间", width = 30, dateFormat = "yyyy-MM-dd") - @ApiModelProperty("计划时间") - private Date planTime; - - /** - * 国补资金 - */ - @Excel(name = "国补资金") - @ApiModelProperty("国补资金") - private BigDecimal nationalSupplement; - - /** - * 自筹资金 - */ - @Excel(name = "自筹资金") - @ApiModelProperty("自筹资金") - private BigDecimal selfSupplement; - - /** - * 具体地点 - */ - @Excel(name = "具体地点") - @ApiModelProperty("具体地点") - private String location; - - /** - * 维修养护内容 - */ - @Excel(name = "维修养护内容") - @ApiModelProperty("维修养护内容") - private String content; + private static final long serialVersionUID = 1L; + + @ApiModelProperty("水闸代码") + private String wagaCode; + @ApiModelProperty("水闸名称") + private String wagaName; + @ApiModelProperty("水闸类型") + private Integer wagaType; + + + @ApiModelProperty("名称") + private String name; + + @ApiModelProperty("维修养护类型") + private String type; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("计划开始时间") + private Date startDate; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("计划结束时间") + private Date endDate; + + @ApiModelProperty("资金") + private String supplement; + + @ApiModelProperty("文档") + private String doc; + + @ApiModelProperty("工程单位") + private String engineeringUnit; + + @ApiModelProperty("负责人") + private String responsiblePerson; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("提醒时间") + private Date reminderTime; + + @ApiModelProperty("备注") + private String remark; + + @ApiModelProperty("状态") + private String status; } diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzYhRecord.java b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzYhRecord.java index 933f02c8..1d8ea05c 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzYhRecord.java +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzYhRecord.java @@ -1,9 +1,7 @@ package com.kms.yxgh.sz.domain; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.kms.yxgh.base.SyBaseEntity; -import com.shuili.common.annotation.Excel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,70 +23,33 @@ public class SzYhRecord extends SyBaseEntity { /** * 水闸代码 */ - @Excel(name = "水闸代码") @ApiModelProperty("水闸代码") private String wagaCode; - /** - * 计划代码 - */ - @Excel(name = "计划代码") + @ApiModelProperty("水闸名称") + private String wagaName; + + @ApiModelProperty("水闸类型") + private Integer wagaType; + @ApiModelProperty("计划代码") private String planId; - /** - * 名称 - */ - @Excel(name = "名称") - @ApiModelProperty("名称") - private String name; - - /** - * 维护前 - */ - @Excel(name = "维护前") - @ApiModelProperty("维护前") - @TableField(value = "`before`") - private String before; + @ApiModelProperty("计划名称") + private String planName; - /** - * 维护过程 - */ - @Excel(name = "维护过程") - @ApiModelProperty("维护过程") - @TableField(value = "`middle`") - private String middle; + @ApiModelProperty("资金") + private String supplement; - /** - * 维护结束 - */ - @Excel(name = "维护结束") - @ApiModelProperty("维护结束") - @TableField(value = "`after`") - private String after; + @ApiModelProperty("维养文档") + private String doc; - /** - * 养护费用 - */ - @Excel(name = "养护费用") - @ApiModelProperty("养护费用") - private Long maintenanceFunds; + @ApiModelProperty("维养台账") + private String ledgerDoc; - /** - * 落实情况 - */ - @Excel(name = "落实情况") - @ApiModelProperty("落实情况") - private String implement; + @ApiModelProperty("备注") + private String remark; - - /** - * 状态 - */ - @Excel(name = "状态") @ApiModelProperty("状态") private String status; - - @ApiModelProperty("文件档案") - private String doc; } diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYhPlanDetailDto.java b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYhPlanDetailDto.java index da0ef801..b7610163 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYhPlanDetailDto.java +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYhPlanDetailDto.java @@ -1,12 +1,15 @@ package com.kms.yxgh.sz.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; -import java.math.BigDecimal; import java.util.Date; +import java.util.List; /** @@ -19,57 +22,60 @@ import java.util.Date; @ApiModel("水闸维修养护计划") public class SzYhPlanDetailDto { - @ApiModelProperty("养护计划id") - private String id; + @ApiModelProperty("养护计划id") + private String id; - /** - * 水闸代码 - */ - @ApiModelProperty("水闸代码") - private String wagaCode; + /** + * 水闸代码 + */ + @ApiModelProperty("水闸代码") + private String wagaCode; - /** - * 水闸名称 - */ + + /** + * 水闸名称 + */ @ApiModelProperty("水闸名称") private String wagaName; - /** - * 名称 - */ - @ApiModelProperty("名称") - private String name; - - /** - * 计划时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd") - @ApiModelProperty("计划时间") - private Date planTime; - - /** - * 国补资金 - */ - @ApiModelProperty("国补资金") - private BigDecimal nationalSupplement; - - /** - * 自筹资金 - */ - @ApiModelProperty("自筹资金") - private BigDecimal selfSupplement; - - /** - * 具体地点 - */ - @ApiModelProperty("具体地点") - private String location; - - /** - * 维修养护内容 - */ - @ApiModelProperty("维修养护内容") - private String content; + @ApiModelProperty("水闸类型") + private Integer wagaType; + + @ApiModelProperty("名称") + private String name; + + @ApiModelProperty("维修养护类型") + private String type; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("计划开始时间") + private Date startDate; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("计划结束时间") + private Date endDate; + + @ApiModelProperty("资金") + private List supplements; + + @ApiModelProperty("文档") + private DocDto doc; + + @ApiModelProperty("工程单位") + private String engineeringUnit; + + @ApiModelProperty("负责人") + private OperatorDto responsiblePerson; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("提醒时间") + private Date reminderTime; + + @ApiModelProperty("备注") + private String remark; + + @ApiModelProperty("状态") + private String status; } diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYhPlanSearchDto.java b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYhPlanSearchDto.java index 42953b26..e2ca3fd0 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYhPlanSearchDto.java +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYhPlanSearchDto.java @@ -18,64 +18,36 @@ import java.util.Date; @ApiModel("水闸维修养护计划检索") public class SzYhPlanSearchDto { - @ApiModelProperty("养护计划id") + @ApiModelProperty("id") private String id; - /** - * 水闸代码 - */ + @ApiModelProperty("行政区划") + private String adcd; + @ApiModelProperty("水闸代码") private String wagaCode; @ApiModelProperty("水闸名称") private String wagaName; + @ApiModelProperty("水闸类型") + private String wagaType; + @ApiModelProperty("水闸id") private String wagaId; - /** - * 名称 - */ @ApiModelProperty("名称") private String name; - /** - * 计划时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd") - @ApiModelProperty("计划时间") - private Date planTime; - - /** - * 国补资金 - */ - @ApiModelProperty("国补资金") - private Long nationalSupplement; - - /** - * 自筹资金 - */ - @ApiModelProperty("自筹资金") - private Long selfSupplement; - - /** - * 具体地点 - */ - @ApiModelProperty("具体地点") - private String location; - - /** - * 维修养护内容 - */ - @ApiModelProperty("维修养护内容") - private String content; + @ApiModelProperty("状态") + private String status; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @ApiModelProperty("创建时间") - private Date createTime; + @ApiModelProperty("计划开始时间") + private Date startDate; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @ApiModelProperty("最近修改时间") - private Date updateTime; + @ApiModelProperty("计划结束时间") + private Date endDate; } diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYhRecordApprovalDto.java b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYhRecordApprovalDto.java new file mode 100644 index 00000000..df5ebd97 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYhRecordApprovalDto.java @@ -0,0 +1,58 @@ +package com.kms.yxgh.sz.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +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; + +import java.util.Date; +import java.util.List; + + +/** + * 水闸维修养护记录 + * + * @author sy + * @date 2023-11-20 + */ +@Data +@ApiModel("水闸维修养护记录验收列表") +public class SzYhRecordApprovalDto { + + @ApiModelProperty("养护记录id") + private String id; + + @ApiModelProperty("水闸代码") + private String wagaCode; + + @ApiModelProperty("水闸名称") + private String wagaName; + + @ApiModelProperty("水闸类型") + private Integer wagaType; + + @ApiModelProperty("维修养护类型") + private String type; + + @ApiModelProperty("计划代码") + private String planId; + + @ApiModelProperty("计划名称") + private String planName; + + @ApiModelProperty("资金") + private List supplements; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("完成时间") + private Date finishedTime; + + @ApiModelProperty("维修养护负责人") + private OperatorDto responsiblePerson; + + @ApiModelProperty("工程单位") + private String engineeringUnit; + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYhRecordDetailDto.java b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYhRecordDetailDto.java index 8f4a8d8d..011e906b 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYhRecordDetailDto.java +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYhRecordDetailDto.java @@ -3,6 +3,7 @@ package com.kms.yxgh.sz.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,39 +25,30 @@ public class SzYhRecordDetailDto { @ApiModelProperty("养护记录id") private String id; - @ApiModelProperty("计划代码") - private String planId; - @ApiModelProperty("水闸代码") private String wagaCode; @ApiModelProperty("水闸名称") private String wagaName; - @ApiModelProperty("名称") - private String name; - - @ApiModelProperty("维护前") - private String before; + @ApiModelProperty("水闸类型") + private Integer wagaType; - @ApiModelProperty("维护过程") - private String middle; + @ApiModelProperty("计划代码") + private String planId; - @ApiModelProperty("维护结束") - private String after; + @ApiModelProperty("计划名称") + private String planName; - @ApiModelProperty("养护费用") - private Long maintenanceFunds; + @ApiModelProperty("资金") + private List supplements; - @ApiModelProperty("落实情况") - private String implement; + @ApiModelProperty("备注") + private String remark; @ApiModelProperty("状态") private String status; - @ApiModelProperty("备注") - private String remark; - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty("创建时间") private Date createTime; @@ -65,15 +57,16 @@ public class SzYhRecordDetailDto { @ApiModelProperty("最近修改时间") private Date updateTime; - @ApiModelProperty("养护人员") - private List operators; - + @ApiModelProperty("负责人") + private OperatorDto responsiblePerson; @ApiModelProperty("文档") private DocDto doc; - @ApiModelProperty("计划信息") + @ApiModelProperty("台账") + private DocDto ledgerDoc; + @ApiModelProperty("计划信息") private SzYhPlanDetailDto plan; } diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYhRecordSearchDto.java b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYhRecordSearchDto.java index f3de5028..44fea3f0 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYhRecordSearchDto.java +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYhRecordSearchDto.java @@ -20,28 +20,32 @@ import java.util.Date; @ApiModel("水闸养护记录查询") public class SzYhRecordSearchDto { - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @ApiModelProperty("创建起始时间") - private Date startCreatedTime; + @ApiModelProperty("行政区划") + private String adcd; - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @ApiModelProperty("创建结束时间") - private Date endCreatedTime; + @ApiModelProperty("水闸代码") + private String wagaCode; - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @ApiModelProperty("更新起始时间") - private Date startUpdateTime; + @ApiModelProperty("水闸名称") + private String wagaName; - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @ApiModelProperty("更新结束时间") - private Date endUpdateTime; + @ApiModelProperty("水闸类型") + private String wagaType; + + @ApiModelProperty("水闸id") + private String wagaId; + + @ApiModelProperty("名称") + private String name; @ApiModelProperty("状态") private String status; - @ApiModelProperty("最小维修费用") - private Double minRepairCost; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("计划开始时间") + private Date startDate; - @ApiModelProperty("最大维修费用") - private Double maxRepairCost; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("计划结束时间") + private Date endDate; } diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzYhOperatorMapper.java b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzYhOperatorMapper.java index 0ca595a0..a5f8af5e 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzYhOperatorMapper.java +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzYhOperatorMapper.java @@ -11,6 +11,7 @@ import org.springframework.stereotype.Repository; * @date 2023-11-20 */ @Repository +@Deprecated public interface SzYhOperatorMapper extends BaseMapper { } diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzYhPlanMapper.java b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzYhPlanMapper.java index cc38a97f..7f9c1463 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzYhPlanMapper.java +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzYhPlanMapper.java @@ -3,16 +3,21 @@ package com.kms.yxgh.sz.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; 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.DocHandler; +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.sz.domain.SzYhPlan; +import com.kms.yxgh.sz.dto.SzYhPlanDetailDto; import com.kms.yxgh.sz.dto.SzYhPlanSearchDto; -import com.shuili.common.utils.StringUtils; import org.apache.ibatis.annotations.Param; -import org.apache.ibatis.annotations.SelectProvider; -import org.apache.ibatis.jdbc.SQL; +import org.apache.ibatis.annotations.Result; +import org.apache.ibatis.annotations.Results; +import org.apache.ibatis.annotations.Select; import org.springframework.stereotype.Repository; -import java.util.Map; - /** * 水闸维修养护计划Mapper接口 * @@ -23,30 +28,50 @@ import java.util.Map; public interface SzYhPlanMapper extends BaseMapper { - @SelectProvider(type = SzYhPlanSqlProvider.class, method = "selectPage") - IPage selectPage(Page page, @Param("dto") SzYhPlanSearchDto dto); + @Select({ + "" + }) + @Results({ + @Result(column = "doc", property = "doc", typeHandler = DocHandler.class), + @Result(column = "supplement", property = "supplements", typeHandler = ListSupplementHandler.class), + @Result(column = "responsible_person", property = "responsiblePerson", typeHandler = OperatorHandler.class) + }) + IPage selectPage(Page page, @Param("dto") SzYhPlanSearchDto dto); - class SzYhPlanSqlProvider { - public String selectPage(final Map param) { - return new SQL() {{ - SELECT("p.id, p.waga_code, j.waga_name as wagaName, p.name, p.plan_time, " + - "p.national_supplement, p.self_supplement, p.location, p.content, j.waga_name,j.id as waga_id, " + - "p.create_time, p.update_time"); // 添加了 p.create_time 和 p.update_time - FROM("bs_sgc_sz_yhjh p"); - LEFT_OUTER_JOIN("att_waga_base j ON p.waga_code = j.waga_code and j.expr_date is null "); - WHERE("1=1 "); + IPage> approvalSearchPage(Page page, @Param("dto") ApprovalSearchDto dto); - SzYhPlanSearchDto dto = (SzYhPlanSearchDto) param.get("dto"); - if (dto != null) { - if (StringUtils.isNotBlank(dto.getName())) { - WHERE("p.name LIKE CONCAT('%', #{dto.name}, '%')"); - } - if (StringUtils.isNotBlank(dto.getWagaCode())) { - WHERE("p.waga_code = #{dto.wagaCode}"); - } - } - }}.toString(); - } - } } diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzYhRecordMapper.java b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzYhRecordMapper.java index fb0fadea..0f358dd1 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzYhRecordMapper.java +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzYhRecordMapper.java @@ -2,10 +2,19 @@ package com.kms.yxgh.sz.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; 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.DocHandler; +import com.kms.yxgh.common.mapper.handler.ListSupplementHandler; +import com.kms.yxgh.common.mapper.handler.OperatorHandler; import com.kms.yxgh.sz.domain.SzYhRecord; +import com.kms.yxgh.sz.dto.SzYhRecordApprovalDto; import com.kms.yxgh.sz.dto.SzYhRecordDetailDto; import com.kms.yxgh.sz.dto.SzYhRecordSearchDto; 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; @@ -22,55 +31,51 @@ public interface SzYhRecordMapper extends BaseMapper { @Select("") + @Results({ + @Result(column = "responsible_person", property = "responsiblePerson", typeHandler = OperatorHandler.class), + @Result(column = "supplement", property = "supplements", typeHandler = ListSupplementHandler.class), + @Result(column = "doc", property = "doc", typeHandler = DocHandler.class), + @Result(column = "ledger_doc", property = "ledgerDoc", typeHandler = DocHandler.class) + }) IPage searchPage(IPage page, @Param("searchDto") SzYhRecordSearchDto searchDto); @Select("SELECT MAX(create_time) FROM bs_sgc_sz_yhjl WHERE waga_code = #{wagaCode} ") Date getLastInsertTimeByWagaCode(@Param("wagaCode") String wagaCode); + IPage> approvalSearchPage(Page page, @Param("dto") ApprovalSearchDto data); } diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYhPlanService.java b/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYhPlanService.java index 0d15330d..0e190846 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYhPlanService.java +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYhPlanService.java @@ -1,24 +1,35 @@ package com.kms.yxgh.sz.service; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.kms.system.service.SysUserService; import com.kms.yg.sz.domain.BsSgcSzSafeJbxx; import com.kms.yg.sz.service.BsSgcSzSafeJbxxService; +import com.kms.yxgh.base.DfException; import com.kms.yxgh.base.SzException; +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.DfYhPlan; import com.kms.yxgh.sz.domain.SzYhPlan; import com.kms.yxgh.sz.dto.SzYhPlanDetailDto; import com.kms.yxgh.sz.dto.SzYhPlanSearchDto; import com.kms.yxgh.sz.mapper.SzYhPlanMapper; import com.kms.yxgh.util.BeanCopyUtils; import com.shuili.common.core.domain.SearchParam; +import com.shuili.common.core.domain.entity.SysUser; import com.shuili.common.core.service.BaseService; import com.shuili.common.utils.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Collections; +import java.util.List; + /** * 水闸维修养护计划Service接口 * @@ -26,15 +37,19 @@ import org.springframework.transaction.annotation.Transactional; * @date 2023-11-20 */ @Service -public class SzYhPlanService extends BaseService { - @Autowired - private BsSgcSzSafeJbxxService bsSgcSzSafeJbxxService; +@AllArgsConstructor +public class SzYhPlanService extends BaseService implements ApprovalBusinessService { + private final BsSgcSzSafeJbxxService bsSgcSzSafeJbxxService; + private final SysUserService sysUserService; public SzYhPlanDetailDto getDetailById(String id) { SzYhPlan szPlan = this.getById(id); SzYhPlanDetailDto dto = BeanCopyUtils.copy(szPlan, SzYhPlanDetailDto.class); - BsSgcSzSafeJbxx szInfo = bsSgcSzSafeJbxxService.selectByWagaCode(dto.getWagaCode()); - dto.setWagaName(szInfo.getWagaName()); + if (dto != null) { + dto.setDoc(JSON.parseObject(szPlan.getDoc(), DocDto.class)); + dto.setSupplements(JSON.parseArray(szPlan.getSupplement(), SupplementDto.class)); + dto.setResponsiblePerson(JSON.parseObject(szPlan.getResponsiblePerson(), OperatorDto.class)); + } return dto; } @@ -44,6 +59,10 @@ public class SzYhPlanService extends BaseService { SzYhPlan szPlan = BeanCopyUtils.copy(dto, SzYhPlan.class); if (szPlan != null) { szPlan.setId(null); + szPlan.setDoc(JSON.toJSONString(dto.getDoc())); + szPlan.setSupplement(JSON.toJSONString(dto.getSupplements())); + szPlan.setResponsiblePerson(JSON.toJSONString(dto.getResponsiblePerson())); + szPlan.setStatus(ApprovalStatusEnum.SUBMITTING.getValue()); if (checkNameDistinct(szPlan.getId(), szPlan.getName())) { getBaseMapper().insert(szPlan); dto.setId(szPlan.getId()); @@ -58,18 +77,27 @@ public class SzYhPlanService extends BaseService { @Transactional(rollbackFor = Exception.class) public SzYhPlanDetailDto update(SzYhPlanDetailDto dto) { - if (exist(dto.getId())) { - SzYhPlan szPlan = BeanCopyUtils.copy(dto, SzYhPlan.class); - if (szPlan != null) { - if (checkNameDistinct(szPlan.getId(), szPlan.getName())) { - getBaseMapper().updateById(szPlan); - return dto; - } else { - throw new SzException("该名称已存在"); + SzYhPlan oldPlan = this.getById(dto.getId()); + if (oldPlan != null) { + if (ApprovalStatusEnum.canUpdate(oldPlan.getStatus())) { + SzYhPlan szPlan = BeanCopyUtils.copy(dto, SzYhPlan.class); + if (szPlan != null) { + szPlan.setDoc(JSON.toJSONString(dto.getDoc())); + szPlan.setSupplement(JSON.toJSONString(dto.getSupplements())); + szPlan.setResponsiblePerson(JSON.toJSONString(dto.getResponsiblePerson())); + szPlan.setStatus(oldPlan.getStatus()); + if (checkNameDistinct(szPlan.getId(), szPlan.getName())) { + getBaseMapper().updateById(szPlan); + return dto; + } else { + throw new DfException("该名称已存在"); + } } + } else { + throw new DfException("审批中或者已通过的计划不允许修改"); } } - throw new SzException("源数据不存在,请确认id值是否正确"); + throw new DfException("源数据不存在,请确认id值是否正确"); } @@ -86,14 +114,34 @@ public class SzYhPlanService extends BaseService { return this.getBaseMapper().selectCount(wp) <= 0; } - private boolean exist(String id) { - Wrapper wp = Wrappers.lambdaQuery() - .eq(SzYhPlan::getId, id); - return this.getBaseMapper().selectCount(wp) > 0; + public IPage search(SearchParam sp) { + Page page = new Page<>(sp.getPageNum(), sp.getPageSize()); + return this.getBaseMapper().selectPage(page, sp.getData()); } - public IPage search(SearchParam sp) { + @Override + public IPage> approvalSearch(SearchParam> sp) { Page page = new Page<>(sp.getPageNum(), sp.getPageSize()); - return this.getBaseMapper().selectPage(page, sp.getData()); + return this.getBaseMapper().approvalSearchPage(page, sp.getData()); + } + + @Override + public List getOperatorList(String formId) { + SysUser user = sysUserService.getById("1"); + if (user != null) { + OperatorDto operatorDto = new OperatorDto(); + operatorDto.setUid(user.getId()); + operatorDto.setName(user.getNickName()); + return Collections.singletonList(operatorDto); + } + return Collections.emptyList(); + } + + @Override + public void updateApprovalStatus(String formId, ApprovalStatusEnum status) { + Wrapper wp = Wrappers.lambdaUpdate() + .eq(SzYhPlan::getId, formId) + .set(SzYhPlan::getStatus, status.getValue()); + getBaseMapper().update(null, wp); } } diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYhRecordService.java b/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYhRecordService.java index 9c6c2064..1f886b4a 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYhRecordService.java +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYhRecordService.java @@ -1,32 +1,32 @@ package com.kms.yxgh.sz.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; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.kms.system.service.SysUserService; import com.kms.yxgh.base.SzException; import com.kms.yxgh.base.enums.YhRecordStatus; -import com.kms.yxgh.common.dto.DocDto; -import com.kms.yxgh.common.dto.OperatorDto; -import com.kms.yxgh.sz.domain.SzYhOperator; +import com.kms.yxgh.common.ApprovalStatusEnum; +import com.kms.yxgh.common.dto.*; +import com.kms.yxgh.common.service.ApprovalBusinessService; import com.kms.yxgh.sz.domain.SzYhRecord; +import com.kms.yxgh.sz.dto.SzYhRecordApprovalDto; import com.kms.yxgh.sz.dto.SzYhRecordDetailDto; import com.kms.yxgh.sz.dto.SzYhRecordSearchDto; -import com.kms.yxgh.sz.mapper.SzYhOperatorMapper; import com.kms.yxgh.sz.mapper.SzYhRecordMapper; import com.kms.yxgh.util.BeanCopyUtils; -import com.kms.yxgh.util.StreamUtils; import com.shuili.common.core.domain.SearchParam; +import com.shuili.common.core.domain.entity.SysUser; import com.shuili.common.core.service.BaseService; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Collections; import java.util.List; import java.util.Optional; -import java.util.function.Consumer; /** * 水闸维修养护记录Service接口 @@ -36,29 +36,20 @@ import java.util.function.Consumer; */ @AllArgsConstructor @Service -public class SzYhRecordService extends BaseService { +public class SzYhRecordService extends BaseService implements ApprovalBusinessService { - private final SzYhOperatorMapper szYhOperatorMapper; + private final SzYhPlanService szYhPlanService; + private final SysUserService sysUserService; public SzYhRecordDetailDto getDetailById(String id) { SzYhRecord record = this.getBaseMapper().selectById(id); if (record != null) { - record.setId(null); SzYhRecordDetailDto dto = BeanCopyUtils.copy(record, SzYhRecordDetailDto.class); if (dto != null) { dto.setDoc(JSON.parseObject(record.getDoc(), DocDto.class)); - } - Wrapper wp = Wrappers.lambdaQuery() - .eq(SzYhOperator::getRecordId, id); - List items = szYhOperatorMapper.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.setLedgerDoc(JSON.parseObject(record.getLedgerDoc(), DocDto.class)); + dto.setSupplements(JSON.parseArray(record.getSupplement(), SupplementDto.class)); + dto.setPlan(szYhPlanService.getDetailById(dto.getPlanId())); } return dto; } @@ -69,12 +60,12 @@ public class SzYhRecordService extends BaseService public SzYhRecordDetailDto add(SzYhRecordDetailDto dto) { SzYhRecord szYhRecord = BeanCopyUtils.copy(dto, SzYhRecord.class); if (szYhRecord != null) { + szYhRecord.setId(null); szYhRecord.setDoc(JSON.toJSONString(dto.getDoc())); + szYhRecord.setLedgerDoc(JSON.toJSONString(dto.getLedgerDoc())); + szYhRecord.setSupplement(JSON.toJSONString(dto.getSupplements())); getBaseMapper().insert(szYhRecord); dto.setId(szYhRecord.getId()); - if (CollectionUtil.isNotEmpty(dto.getOperators())) { - dto.getOperators().forEach(insertOperator(dto.getId())); - } return dto; } return null; @@ -88,12 +79,9 @@ public class SzYhRecordService extends BaseService SzYhRecord szYhRecord = BeanCopyUtils.copy(szRecord, SzYhRecord.class); if (szYhRecord != null) { szYhRecord.setDoc(JSON.toJSONString(szRecord.getDoc())); + szYhRecord.setLedgerDoc(JSON.toJSONString(szRecord.getLedgerDoc())); + szYhRecord.setSupplement(JSON.toJSONString(szRecord.getSupplements())); getBaseMapper().updateById(szYhRecord); - String id = szRecord.getId(); - deleteItems(id); - if (CollectionUtil.isNotEmpty(szRecord.getOperators())) { - szRecord.getOperators().forEach(insertOperator(id)); - } return szRecord; } } else { @@ -103,29 +91,10 @@ public class SzYhRecordService extends BaseService throw new SzException("源数据不存在,请确认id值是否正确"); } - private Consumer insertOperator(String id) { - return (o) -> { - SzYhOperator item = new SzYhOperator(); - item.setRecordId(id); - item.setOperatorName(o.getName()); - item.setOperatorUid(o.getUid()); - szYhOperatorMapper.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 wp = Wrappers.lambdaQuery() - .eq(SzYhOperator::getRecordId, id); - szYhOperatorMapper.delete(wp); + return removeById(id); } private boolean checkStatus(String id) { @@ -141,21 +110,44 @@ public class SzYhRecordService extends BaseService return this.getBaseMapper().selectCount(wp) > 0; } - private boolean existRecord(String planId) { - Wrapper wp = Wrappers.lambdaQuery() - .eq(SzYhRecord::getPlanId, planId); - return this.getBaseMapper().selectCount(wp) > 0; + public IPage search(SearchParam sp) { + Page page = new Page<>(sp.getPageNum(), sp.getPageSize()); + return this.getBaseMapper().searchPage(page, Optional.ofNullable(sp.getData()).orElse(new SzYhRecordSearchDto())); } + ///更新状态 public Boolean updateStatus(SzYhRecordDetailDto szYhRecord) { Wrapper wp = Wrappers.lambdaUpdate() .eq(SzYhRecord::getId, szYhRecord.getId()) .set(SzYhRecord::getStatus, szYhRecord.getStatus()); - return this.update(wp); + return this.getBaseMapper().update(null, wp) > 0; } - public IPage search(SearchParam sp) { - Page page = new Page<>(sp.getPageNum(), sp.getPageSize()); - return this.getBaseMapper().searchPage(page, Optional.ofNullable(sp.getData()).orElse(new SzYhRecordSearchDto())); + @Override + public IPage> approvalSearch(SearchParam> sp) { + Page page = new Page<>(sp.getPageNum(), sp.getPageSize()); + return this.getBaseMapper().approvalSearchPage(page, sp.getData()); + } + + @Override + public List getOperatorList(String formId) { + SysUser user = sysUserService.getById("1"); + if (user != null) { + OperatorDto operatorDto = new OperatorDto(); + operatorDto.setUid(user.getId()); + operatorDto.setName(user.getNickName()); + return Collections.singletonList(operatorDto); + } + return Collections.emptyList(); } + + @Override + public void updateApprovalStatus(String formId, ApprovalStatusEnum status) { + Wrapper wp = Wrappers.lambdaUpdate() + .eq(SzYhRecord::getId, formId) + .set(SzYhRecord::getStatus, status.getValue()); + getBaseMapper().update(null, wp); + } + + } diff --git a/shuili-system/src/main/resources/mapper/yxgh/DfYhPlanMapper.xml b/shuili-system/src/main/resources/mapper/yxgh/DfYhPlanMapper.xml index 56b12be2..ca2743dc 100644 --- a/shuili-system/src/main/resources/mapper/yxgh/DfYhPlanMapper.xml +++ b/shuili-system/src/main/resources/mapper/yxgh/DfYhPlanMapper.xml @@ -10,7 +10,7 @@ - + @@ -21,7 +21,7 @@ - + diff --git a/shuili-system/src/main/resources/mapper/yxgh/DfYhRecordMapper.xml b/shuili-system/src/main/resources/mapper/yxgh/DfYhRecordMapper.xml index 43100fdb..4e03d936 100644 --- a/shuili-system/src/main/resources/mapper/yxgh/DfYhRecordMapper.xml +++ b/shuili-system/src/main/resources/mapper/yxgh/DfYhRecordMapper.xml @@ -10,7 +10,7 @@ - + diff --git a/shuili-system/src/main/resources/mapper/yxgh/SzYhPlanMapper.xml b/shuili-system/src/main/resources/mapper/yxgh/SzYhPlanMapper.xml new file mode 100644 index 00000000..3b72f913 --- /dev/null +++ b/shuili-system/src/main/resources/mapper/yxgh/SzYhPlanMapper.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/shuili-system/src/main/resources/mapper/yxgh/SzYhRecordMapper.xml b/shuili-system/src/main/resources/mapper/yxgh/SzYhRecordMapper.xml new file mode 100644 index 00000000..a479ed61 --- /dev/null +++ b/shuili-system/src/main/resources/mapper/yxgh/SzYhRecordMapper.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file