From 4c88b75c1bac1d332f8057cce9d587a120560e9b Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期二, 26 十一月 2024 00:58:43 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- business/src/main/java/com/ycl/service/ProjectPlanRecordService.java | 6 business/src/main/java/com/ycl/controller/ProjectPlanRecordController.java | 9 business/src/main/java/com/ycl/domain/vo/PlanVO.java | 8 business/src/main/java/com/ycl/domain/vo/ProjectPlanRecordAddRequest.java | 16 + business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml | 4 business/src/main/resources/mapper/ProjectPlanRecordMapper.xml | 52 ++++ business/src/main/resources/mapper/PlanMapper.xml | 52 +++- business/src/main/java/com/ycl/domain/vo/ProjectPlanResponseVO.java | 22 ++ business/src/main/java/com/ycl/mapper/ProjectPlanRecordMapper.java | 9 business/src/main/java/com/ycl/domain/entity/ProjectPlanRecord.java | 13 + business/src/main/java/com/ycl/domain/vo/ProjectPlanExamineRecordVO.java | 8 business/src/main/java/com/ycl/service/impl/FlowableTypeServiceImpl.java | 23 ++ business/src/main/java/com/ycl/controller/FlowableTypeController.java | 72 +++++++ business/src/main/java/com/ycl/controller/PlanController.java | 2 business/src/main/java/com/ycl/domain/entity/Plan.java | 10 - business/src/main/java/com/ycl/domain/entity/ProjectPlanExamineRecord.java | 9 business/src/main/java/com/ycl/service/FlowableTypeService.java | 12 + business/src/main/resources/mapper/FlowableTypeMapper.xml | 57 +++++ business/src/main/java/com/ycl/controller/ProjectPlanExamineRecordController.java | 21 +- business/src/main/java/com/ycl/service/impl/ProjectPlanRecordServiceImpl.java | 90 ++++++++ business/src/main/java/com/ycl/domain/vo/ProjetPlanRecordItem.java | 29 ++ business/src/main/java/com/ycl/domain/vo/ProjectPlanRecordResponseVO.java | 16 + business/src/main/java/com/ycl/domain/entity/FlowableType.java | 39 +++ business/src/main/java/com/ycl/service/impl/PlanServiceImpl.java | 3 business/src/main/java/com/ycl/mapper/FlowableTypeMapper.java | 11 + 25 files changed, 512 insertions(+), 81 deletions(-) diff --git a/business/src/main/java/com/ycl/controller/FlowableTypeController.java b/business/src/main/java/com/ycl/controller/FlowableTypeController.java new file mode 100644 index 0000000..3541bf4 --- /dev/null +++ b/business/src/main/java/com/ycl/controller/FlowableTypeController.java @@ -0,0 +1,72 @@ +package com.ycl.controller; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.ycl.common.base.Result; +import com.ycl.common.group.Add; +import com.ycl.common.group.Update; +import com.ycl.domain.entity.FlowableType; +import com.ycl.domain.form.PlanForm; +import com.ycl.domain.query.PlanQuery; +import com.ycl.domain.vo.PlanVO; +import com.ycl.framework.utils.PageUtil; +import com.ycl.service.FlowableTypeService; +import com.ycl.service.PlanService; +import com.ycl.system.domain.base.AbsQuery; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.validation.constraints.NotEmpty; +import java.util.List; + +/** + * 宸ヤ綔娴佸垎绫� 鍓嶇鎺у埗鍣� + */ +@Validated +@RequiredArgsConstructor +@Api(value = "宸ヤ綔娴佸垎绫�", tags = "宸ヤ綔娴佸垎绫荤鐞�") +@RestController +@RequestMapping("/flowable_type") +public class FlowableTypeController { + + private final FlowableTypeService flowableTypeService; + + @PostMapping + @ApiOperation(value = "娣诲姞", notes = "娣诲姞") +// @PreAuthorize("hasAuthority('flowableType:add')") + public Result add(@RequestBody @Validated(Add.class) FlowableType form) { + flowableTypeService.save(form); + return Result.ok(); + } + + @PutMapping + @ApiOperation(value = "淇敼", notes = "淇敼") +// @PreAuthorize("hasAuthority('flowableType:edit')") + public Result update(@RequestBody @Validated(Update.class) FlowableType form) { + flowableTypeService.updateById(form); + return Result.ok(); + } + + @DeleteMapping("/{id}") + @ApiOperation(value = "ID鍒犻櫎", notes = "ID鍒犻櫎") +// @PreAuthorize("hasAuthority('flowableType:del')") + public Result removeById(@PathVariable("id") String id) { + flowableTypeService.removeById(id); + return Result.ok(); + } + + + @GetMapping("/page") + @ApiOperation(value = "鍒嗛〉", notes = "鍒嗛〉") +// @PreAuthorize("hasAuthority('flowableType:page')") + public Result page(AbsQuery query) { + IPage<FlowableType> page = PageUtil.getPage(query, FlowableType.class); + flowableTypeService.page(page); + return Result.ok().data(page.getRecords()).total(page.getTotal()); + } + +} diff --git a/business/src/main/java/com/ycl/controller/PlanController.java b/business/src/main/java/com/ycl/controller/PlanController.java index 1e30b2c..f7d6b75 100644 --- a/business/src/main/java/com/ycl/controller/PlanController.java +++ b/business/src/main/java/com/ycl/controller/PlanController.java @@ -62,7 +62,7 @@ @GetMapping("/page") @ApiOperation(value = "鍒嗛〉", notes = "鍒嗛〉") - @PreAuthorize("hasAuthority('plan:page')") +// @PreAuthorize("hasAuthority('plan:page')") public Result page(PlanQuery query) { return planService.page(query); } diff --git a/business/src/main/java/com/ycl/controller/ProjectPlanExamineRecordController.java b/business/src/main/java/com/ycl/controller/ProjectPlanExamineRecordController.java index 3c36314..c7f7aa2 100644 --- a/business/src/main/java/com/ycl/controller/ProjectPlanExamineRecordController.java +++ b/business/src/main/java/com/ycl/controller/ProjectPlanExamineRecordController.java @@ -1,22 +1,21 @@ package com.ycl.controller; -import com.ycl.common.group.Update; -import com.ycl.common.group.Add; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import lombok.RequiredArgsConstructor; -import java.util.List; -import org.springframework.validation.annotation.Validated; -import javax.validation.constraints.NotEmpty; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import com.ycl.service.ProjectPlanExamineRecordService; import com.ycl.common.base.Result; +import com.ycl.common.group.Add; +import com.ycl.common.group.Update; import com.ycl.domain.form.ProjectPlanExamineRecordForm; import com.ycl.domain.query.ProjectPlanExamineRecordQuery; +import com.ycl.service.ProjectPlanExamineRecordService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import javax.validation.constraints.NotEmpty; +import java.util.List; + /** * 椤圭洰瀹℃牳璁板綍琛� 鍓嶇鎺у埗鍣� * diff --git a/business/src/main/java/com/ycl/controller/ProjectPlanRecordController.java b/business/src/main/java/com/ycl/controller/ProjectPlanRecordController.java index e8cdc8e..d9c3fb5 100644 --- a/business/src/main/java/com/ycl/controller/ProjectPlanRecordController.java +++ b/business/src/main/java/com/ycl/controller/ProjectPlanRecordController.java @@ -6,6 +6,7 @@ import com.ycl.common.group.Update; import com.ycl.domain.form.ProjectPlanRecordForm; import com.ycl.domain.query.ProjectPlanRecordQuery; +import com.ycl.domain.vo.ProjectPlanRecordAddRequest; import com.ycl.service.ProjectPlanRecordService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -34,8 +35,8 @@ @PostMapping @ApiOperation(value = "娣诲姞", notes = "娣诲姞") - @PreAuthorize("hasAuthority('projectPlanRecord:add')") - public Result add(@RequestBody @Validated(Add.class) ProjectPlanRecordForm form) { +// @PreAuthorize("hasAuthority('projectPlanRecord:add')") + public Result add(@RequestBody @Validated(Add.class) ProjectPlanRecordAddRequest form) { return projectPlanRecordService.add(form); } @@ -67,9 +68,9 @@ return projectPlanRecordService.page(query); } - @GetMapping("/{id}") + @PostMapping("/{id}") @ApiOperation(value = "璇︽儏", notes = "璇︽儏") - @PreAuthorize("hasAuthority('projectPlanRecord:detail')") +// @PreAuthorize("hasAuthority('projectPlanRecord:detail')") public Result detail(@PathVariable("id") Integer id) { return projectPlanRecordService.detail(id); } diff --git a/business/src/main/java/com/ycl/domain/entity/FlowableType.java b/business/src/main/java/com/ycl/domain/entity/FlowableType.java new file mode 100644 index 0000000..fa18704 --- /dev/null +++ b/business/src/main/java/com/ycl/domain/entity/FlowableType.java @@ -0,0 +1,39 @@ +package com.ycl.domain.entity; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.ycl.system.domain.base.AbsEntity; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 娴佺▼鍒嗙被 + */ +@Data +@TableName("t_flowable_type") +public class FlowableType extends AbsEntity { + + private static final long serialVersionUID = 1L; + + @TableField(value = "name") + private String name; + + @TableField(value = "parent_id") + private Integer parentId; + + @TableField(value = "level") + private Integer level; + + @TableField(value = "leaf") + private Boolean leaf; + + @TableField(value = "create_by") + private String createBy; + + @TableField(value = "update_by") + private String updateBy; + + +} diff --git a/business/src/main/java/com/ycl/domain/entity/Plan.java b/business/src/main/java/com/ycl/domain/entity/Plan.java index bca52e4..f0f7feb 100644 --- a/business/src/main/java/com/ycl/domain/entity/Plan.java +++ b/business/src/main/java/com/ycl/domain/entity/Plan.java @@ -38,14 +38,4 @@ @TableField("year_status") /** 骞村害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛� */ private Integer yearStatus; - - @TableField("gmt_create_time") - /** 鍒涘缓鏃堕棿 */ - private LocalDateTime gmtCreateTime; - - @TableField("gmt_update_time") - /** 淇敼鏃堕棿 */ - private LocalDateTime gmtUpdateTime; - - } diff --git a/business/src/main/java/com/ycl/domain/entity/ProjectPlanExamineRecord.java b/business/src/main/java/com/ycl/domain/entity/ProjectPlanExamineRecord.java index 67bce8a..cf82104 100644 --- a/business/src/main/java/com/ycl/domain/entity/ProjectPlanExamineRecord.java +++ b/business/src/main/java/com/ycl/domain/entity/ProjectPlanExamineRecord.java @@ -67,13 +67,4 @@ /** 寤舵湡缁撴潫鏃堕棿 */ private LocalDateTime delayEndTime; - @TableField("gmt_create_time") - /** 鍒涘缓鏃堕棿 */ - private LocalDateTime gmtCreateTime; - - @TableField("gmt_update_time") - /** 淇敼鏃堕棿 */ - private LocalDateTime gmtUpdateTime; - - } diff --git a/business/src/main/java/com/ycl/domain/entity/ProjectPlanRecord.java b/business/src/main/java/com/ycl/domain/entity/ProjectPlanRecord.java index 379ec2d..9495cb1 100644 --- a/business/src/main/java/com/ycl/domain/entity/ProjectPlanRecord.java +++ b/business/src/main/java/com/ycl/domain/entity/ProjectPlanRecord.java @@ -1,11 +1,13 @@ package com.ycl.domain.entity; +import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.ycl.system.domain.base.AbsEntity; import lombok.Data; import java.math.BigDecimal; +import java.util.Date; /** * 椤圭洰璁″垝璁板綍 @@ -39,6 +41,10 @@ /** 鏈堝害/瀛e害/骞村害 0/1/2 */ private Integer planTimeFlag; + @TableField("create_time") + /** 鍒涘缓鏃堕棿 */ + private Date createTime; + @TableField("report_status") /** 涓婃姤鐘舵�� 宸蹭笂鎶�/鏈笂鎶� 0/1 */ private Integer reportStatus; @@ -47,5 +53,12 @@ /** 鎶曡祫 */ private BigDecimal actualInvest; + @TableField(exist = false) + private Date gmtCreate; + @TableField(exist = false) + private Date gmtUpdate; + + @TableField(exist = false) + private Integer deleted; } diff --git a/business/src/main/java/com/ycl/domain/vo/PlanVO.java b/business/src/main/java/com/ycl/domain/vo/PlanVO.java index 38bd9b6..2d978d5 100644 --- a/business/src/main/java/com/ycl/domain/vo/PlanVO.java +++ b/business/src/main/java/com/ycl/domain/vo/PlanVO.java @@ -42,14 +42,6 @@ @ApiModelProperty("骞村害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛�") private Integer yearStatus; - /** 鍒涘缓鏃堕棿 */ - @ApiModelProperty("鍒涘缓鏃堕棿") - private Date gmtCreateTime; - - /** 淇敼鏃堕棿 */ - @ApiModelProperty("淇敼鏃堕棿") - private Date gmtUpdateTime; - public static PlanVO getVoByEntity(@NonNull Plan entity, PlanVO vo) { if(vo == null) { vo = new PlanVO(); diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectPlanExamineRecordVO.java b/business/src/main/java/com/ycl/domain/vo/ProjectPlanExamineRecordVO.java index 8cdcc4f..6add4a4 100644 --- a/business/src/main/java/com/ycl/domain/vo/ProjectPlanExamineRecordVO.java +++ b/business/src/main/java/com/ycl/domain/vo/ProjectPlanExamineRecordVO.java @@ -68,14 +68,6 @@ @ApiModelProperty("寤舵湡缁撴潫鏃堕棿") private Date delayEndTime; - /** 鍒涘缓鏃堕棿 */ - @ApiModelProperty("鍒涘缓鏃堕棿") - private Date gmtCreateTime; - - /** 淇敼鏃堕棿 */ - @ApiModelProperty("淇敼鏃堕棿") - private Date gmtUpdateTime; - public static ProjectPlanExamineRecordVO getVoByEntity(@NonNull ProjectPlanExamineRecord entity, ProjectPlanExamineRecordVO vo) { if(vo == null) { vo = new ProjectPlanExamineRecordVO(); diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectPlanRecordAddRequest.java b/business/src/main/java/com/ycl/domain/vo/ProjectPlanRecordAddRequest.java new file mode 100644 index 0000000..818ae81 --- /dev/null +++ b/business/src/main/java/com/ycl/domain/vo/ProjectPlanRecordAddRequest.java @@ -0,0 +1,16 @@ +package com.ycl.domain.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ProjectPlanRecordAddRequest { + // 椤圭洰璁″垝璁板綍ID + private Integer id; + // 椤圭洰璁″垝ID + private Long projectInfoId; + private Integer planTimeFlag; +} diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectPlanRecordResponseVO.java b/business/src/main/java/com/ycl/domain/vo/ProjectPlanRecordResponseVO.java new file mode 100644 index 0000000..30d2ead --- /dev/null +++ b/business/src/main/java/com/ycl/domain/vo/ProjectPlanRecordResponseVO.java @@ -0,0 +1,16 @@ +package com.ycl.domain.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ProjectPlanRecordResponseVO { + private List<ProjetPlanRecordItem> monthRecords; + private List<ProjetPlanRecordItem> seasonRecords; + private List<ProjetPlanRecordItem> yearRecords; +} diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectPlanResponseVO.java b/business/src/main/java/com/ycl/domain/vo/ProjectPlanResponseVO.java new file mode 100644 index 0000000..b12c748 --- /dev/null +++ b/business/src/main/java/com/ycl/domain/vo/ProjectPlanResponseVO.java @@ -0,0 +1,22 @@ +package com.ycl.domain.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ProjectPlanResponseVO { + private Integer id; + private String projectName; + private Integer reportStatus; + private String projectCode; + private Integer projectType; + private Integer projectPhase; + private Integer monthStatus; + private Integer seasonStatus; + private Integer yearStatus; + private Integer projectStatus; + private Integer investType; +} diff --git a/business/src/main/java/com/ycl/domain/vo/ProjetPlanRecordItem.java b/business/src/main/java/com/ycl/domain/vo/ProjetPlanRecordItem.java new file mode 100644 index 0000000..6bfc7a4 --- /dev/null +++ b/business/src/main/java/com/ycl/domain/vo/ProjetPlanRecordItem.java @@ -0,0 +1,29 @@ +package com.ycl.domain.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ProjetPlanRecordItem { + // 椤圭洰璁″垝璁板綍id + private Integer id; + // 椤圭洰鍚嶇О + private String projectName; + // 椤圭洰浠g爜 + private String projectCode; + // 璁″垝鏈� + private Integer planTime; + // 璁″垝鏈熸爣蹇� + private Integer planTimeFlag; + // 鍒涘缓鏃堕棿 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + // 涓婃姤鐘舵�� + private Integer reportStatus; +} diff --git a/business/src/main/java/com/ycl/mapper/FlowableTypeMapper.java b/business/src/main/java/com/ycl/mapper/FlowableTypeMapper.java new file mode 100644 index 0000000..428a7ee --- /dev/null +++ b/business/src/main/java/com/ycl/mapper/FlowableTypeMapper.java @@ -0,0 +1,11 @@ +package com.ycl.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ycl.domain.entity.FlowableType; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface FlowableTypeMapper extends BaseMapper<FlowableType> { + + +} diff --git a/business/src/main/java/com/ycl/mapper/ProjectPlanRecordMapper.java b/business/src/main/java/com/ycl/mapper/ProjectPlanRecordMapper.java index 2931072..1d5a729 100644 --- a/business/src/main/java/com/ycl/mapper/ProjectPlanRecordMapper.java +++ b/business/src/main/java/com/ycl/mapper/ProjectPlanRecordMapper.java @@ -7,6 +7,8 @@ import com.ycl.domain.vo.ProjectPlanRecordVO; import com.ycl.domain.form.ProjectPlanRecordForm; import java.util.List; + +import com.ycl.domain.vo.ProjetPlanRecordItem; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -31,4 +33,11 @@ */ IPage getPage(IPage page, @Param("query") ProjectPlanRecordQuery query); + + /** + * 鏍规嵁椤圭洰id鍜屾爣蹇楁煡璇㈣鍒掑垪琛� + */ + List<ProjetPlanRecordItem> selectPlanList(@Param("id") Integer id, @Param("flag") Integer flag); + + void insertItem(ProjectPlanRecord item); } diff --git a/business/src/main/java/com/ycl/service/FlowableTypeService.java b/business/src/main/java/com/ycl/service/FlowableTypeService.java new file mode 100644 index 0000000..924b6e9 --- /dev/null +++ b/business/src/main/java/com/ycl/service/FlowableTypeService.java @@ -0,0 +1,12 @@ +package com.ycl.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ycl.common.base.Result; +import com.ycl.domain.entity.FlowableType; + +import java.util.List; + +public interface FlowableTypeService extends IService<FlowableType> { + + +} diff --git a/business/src/main/java/com/ycl/service/ProjectPlanRecordService.java b/business/src/main/java/com/ycl/service/ProjectPlanRecordService.java index 1481c01..f81c01b 100644 --- a/business/src/main/java/com/ycl/service/ProjectPlanRecordService.java +++ b/business/src/main/java/com/ycl/service/ProjectPlanRecordService.java @@ -5,6 +5,8 @@ import com.ycl.domain.entity.ProjectPlanRecord; import com.ycl.domain.form.ProjectPlanRecordForm; import com.ycl.domain.query.ProjectPlanRecordQuery; +import com.ycl.domain.vo.ProjectPlanRecordAddRequest; +import com.ycl.domain.vo.ProjetPlanRecordItem; import java.util.List; @@ -18,10 +20,10 @@ /** * 娣诲姞 - * @param form + * @param request * @return */ - Result add(ProjectPlanRecordForm form); + Result add(ProjectPlanRecordAddRequest request); /** * 淇敼 diff --git a/business/src/main/java/com/ycl/service/impl/FlowableTypeServiceImpl.java b/business/src/main/java/com/ycl/service/impl/FlowableTypeServiceImpl.java new file mode 100644 index 0000000..c871d79 --- /dev/null +++ b/business/src/main/java/com/ycl/service/impl/FlowableTypeServiceImpl.java @@ -0,0 +1,23 @@ +package com.ycl.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ycl.common.base.Result; +import com.ycl.domain.entity.FlowableType; +import com.ycl.framework.utils.PageUtil; +import com.ycl.mapper.FlowableTypeMapper; +import com.ycl.service.FlowableTypeService; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.util.Assert; + +import java.util.List; +import java.util.stream.Collectors; + + +@Service +@RequiredArgsConstructor +public class FlowableTypeServiceImpl extends ServiceImpl<FlowableTypeMapper, FlowableType> implements FlowableTypeService { + +} diff --git a/business/src/main/java/com/ycl/service/impl/PlanServiceImpl.java b/business/src/main/java/com/ycl/service/impl/PlanServiceImpl.java index 9dba0cd..092592c 100644 --- a/business/src/main/java/com/ycl/service/impl/PlanServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/PlanServiceImpl.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.ycl.common.base.Result; import com.ycl.domain.entity.Plan; +import com.ycl.domain.vo.ProjectPlanResponseVO; import com.ycl.framework.utils.PageUtil; import com.ycl.mapper.PlanMapper; import com.ycl.service.PlanService; @@ -87,7 +88,7 @@ */ @Override public Result page(PlanQuery query) { - IPage<PlanVO> page = PageUtil.getPage(query, PlanVO.class); + IPage<ProjectPlanResponseVO> page = PageUtil.getPage(query, ProjectPlanResponseVO.class); baseMapper.getPage(page, query); return Result.ok().data(page.getRecords()).total(page.getTotal()); } diff --git a/business/src/main/java/com/ycl/service/impl/ProjectPlanRecordServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectPlanRecordServiceImpl.java index dafefc2..059f563 100644 --- a/business/src/main/java/com/ycl/service/impl/ProjectPlanRecordServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/ProjectPlanRecordServiceImpl.java @@ -1,9 +1,17 @@ package com.ycl.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; +import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; import com.ycl.common.base.Result; +import com.ycl.common.utils.DateUtils; +import com.ycl.domain.entity.Plan; import com.ycl.domain.entity.ProjectPlanRecord; +import com.ycl.domain.vo.ProjectPlanRecordAddRequest; +import com.ycl.domain.vo.ProjectPlanRecordResponseVO; +import com.ycl.domain.vo.ProjetPlanRecordItem; import com.ycl.framework.utils.PageUtil; +import com.ycl.mapper.PlanMapper; import com.ycl.mapper.ProjectPlanRecordMapper; import com.ycl.service.ProjectPlanRecordService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,6 +23,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.util.Assert; +import java.time.LocalDate; import java.util.List; import java.util.stream.Collectors; @@ -28,17 +37,81 @@ @RequiredArgsConstructor public class ProjectPlanRecordServiceImpl extends ServiceImpl<ProjectPlanRecordMapper, ProjectPlanRecord> implements ProjectPlanRecordService { + private static final Integer MONTH_FLAG = 0; + private static final Integer SEASON_FLAG = 1; + private static final Integer YEAR_FLAG = 2; + private final ProjectPlanRecordMapper projectPlanRecordMapper; + private final PlanMapper planMapper; /** * 娣诲姞 - * @param form + * @param request * @return */ @Override - public Result add(ProjectPlanRecordForm form) { - ProjectPlanRecord entity = ProjectPlanRecordForm.getEntityByForm(form, null); - baseMapper.insert(entity); + public Result add(ProjectPlanRecordAddRequest request) { + ProjectPlanRecord item = new ProjectPlanRecord(); + // 鏌ヨ椤圭洰璁″垝id + item.setPlanId(new LambdaQueryChainWrapper<>(planMapper).eq(Plan::getProjectInfoId, request.getProjectInfoId()).one().getId().longValue()); + // 鍒ゆ柇鏍囧織浣嶆槸鍚︿负0锛屽鏋滀负0锛屽垯涓烘湀搴﹁鍒掞紝1涓哄搴﹁鍒掞紝2涓哄勾搴﹁鍒� + if (request.getPlanTimeFlag() == MONTH_FLAG) { + // 鍒ゆ柇id鏄惁涓�0 + if (request.getId() == 0) { + // 鏂板鏈堝害璁″垝 + item.setProjectInfoId(request.getProjectInfoId()); + item.setPlanTime(LocalDate.now().getMonthValue()); + item.setPlanTimeFlag(MONTH_FLAG); + item.setCreateTime(DateUtils.getNowDate()); + item.setReportStatus(1); + } else { + // 鏂板鏈堝害璁″垝 + item = baseMapper.selectById(request.getId()); + item.setId(null); + Integer planTime = item.getPlanTime(); + item.setPlanTime(planTime == 12 ? 1 : planTime + 1); + item.setCreateTime(DateUtils.getNowDate()); + item.setReportStatus(1); + item.setActualInvest(null); + } + } else if (request.getPlanTimeFlag() == SEASON_FLAG) { + // 鍒ゆ柇id鏄惁涓�0 + if (request.getId() == 0) { + // 鏂板瀛e害璁″垝 + item.setProjectInfoId(request.getProjectInfoId()); + item.setPlanTime(1); + item.setPlanTimeFlag(SEASON_FLAG); + item.setCreateTime(DateUtils.getNowDate()); + item.setReportStatus(1); + } else { + // 鏂板瀛e害璁″垝 + item = baseMapper.selectById(request.getId()); + item.setId(null); + item.setPlanTime(item.getPlanTime() + 1); + item.setCreateTime(DateUtils.getNowDate()); + item.setReportStatus(1); + item.setActualInvest(null); + } + }else { + // 鍒ゆ柇id鏄惁涓�0 + if (request.getId() == 0) { + // 鏂板骞村害璁″垝 + item.setProjectInfoId(request.getProjectInfoId()); + item.setPlanTime(LocalDate.now().getYear()); + item.setPlanTimeFlag(YEAR_FLAG); + item.setCreateTime(DateUtils.getNowDate()); + item.setReportStatus(1); + } else { + // 鏂板骞磋鍒� + item = baseMapper.selectById(request.getId()); + item.setId(null); + item.setPlanTime(item.getPlanTime() + 1); + item.setCreateTime(DateUtils.getNowDate()); + item.setReportStatus(1); + item.setActualInvest(null); + } + } + baseMapper.insertItem(item); return Result.ok("娣诲姞鎴愬姛"); } @@ -99,8 +172,13 @@ */ @Override public Result detail(Integer id) { - ProjectPlanRecordVO vo = baseMapper.getById(id); - Assert.notNull(vo, "璁板綍涓嶅瓨鍦�"); + ProjectPlanRecordResponseVO vo = new ProjectPlanRecordResponseVO(); + // 鑾峰彇鏈堝害璁″垝 + vo.setMonthRecords(baseMapper.selectPlanList(id, MONTH_FLAG)); + // 鑾峰彇瀛e害璁″垝 + vo.setSeasonRecords(baseMapper.selectPlanList(id, SEASON_FLAG)); + // 鑾峰彇骞村害璁″垝 + vo.setYearRecords(baseMapper.selectPlanList(id, YEAR_FLAG)); return Result.ok().data(vo); } diff --git a/business/src/main/resources/mapper/FlowableTypeMapper.xml b/business/src/main/resources/mapper/FlowableTypeMapper.xml new file mode 100644 index 0000000..456f26d --- /dev/null +++ b/business/src/main/resources/mapper/FlowableTypeMapper.xml @@ -0,0 +1,57 @@ +<?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.ycl.mapper.FlowableTypeMapper"> + + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.ycl.domain.entity.FlowableType"> + <result column="id" property="id" /> + <result column="name" property="name" /> + <result column="parent_id" property="parentId" /> + <result column="level" property="level" /> + <result column="leaf" property="leaf" /> + <result column="create_by" property="createBy"/> + <result column="update_by" property="updateBy"/> + <result column="gmt_create_time" property="gmtCreateTime" /> + <result column="gmt_update_time" property="gmtUpdateTime" /> + </resultMap> + + + + + + + + <select id="getById" resultMap="BaseResultMap"> + SELECT + TP.project_info_id, + TP.report_status, + TP.month_status, + TP.season_status, + TP.year_status, + TP.gmt_create_time, + TP.gmt_update_time, + TP.id + FROM + t_plan TP + WHERE + TP.id = #{id} AND TP.deleted = 0 + </select> + + + <select id="getPage" resultMap="BaseResultMap"> + SELECT + TP.project_info_id, + TP.report_status, + TP.month_status, + TP.season_status, + TP.year_status, + TP.gmt_create_time, + TP.gmt_update_time, + TP.id + FROM + t_plan TP + WHERE + TP.deleted = 0 + </select> + +</mapper> diff --git a/business/src/main/resources/mapper/PlanMapper.xml b/business/src/main/resources/mapper/PlanMapper.xml index f257919..b69243e 100644 --- a/business/src/main/resources/mapper/PlanMapper.xml +++ b/business/src/main/resources/mapper/PlanMapper.xml @@ -9,8 +9,23 @@ <result column="month_status" property="monthStatus" /> <result column="season_status" property="seasonStatus" /> <result column="year_status" property="yearStatus" /> - <result column="gmt_create_time" property="gmtCreateTime" /> - <result column="gmt_update_time" property="gmtUpdateTime" /> + <result column="gmt_create" property="gmtCreate" /> + <result column="gmt_update" property="gmtUpdate" /> + </resultMap> + + <!-- 鍒嗛〉鏉′欢鏌ヨ椤圭洰璁″垝璁板綍鏄犲皠缁撴灉 --> + <resultMap id="PageResultMap" type="com.ycl.domain.vo.ProjectPlanResponseVO"> + <id property="id" column="id" /> + <result property="projectName" column="project_name" /> + <result property="reportStatus" column="report_status" /> + <result property="projectCode" column="project_code" /> + <result property="projectType" column="project_type" /> + <result property="projectPhase" column="project_phase" /> + <result property="monthStatus" column="month_status" /> + <result property="seasonStatus" column="season_status" /> + <result property="yearStatus" column="year_status" /> + <result property="projectStatus" column="project_status" /> + <result property="investType" column="invest_type" /> </resultMap> @@ -36,20 +51,27 @@ </select> - <select id="getPage" resultMap="BaseResultMap"> - SELECT - TP.project_info_id, - TP.report_status, - TP.month_status, - TP.season_status, - TP.year_status, - TP.gmt_create_time, - TP.gmt_update_time, - TP.id - FROM - t_plan TP + <select id="getPage" resultMap="PageResultMap"> + SELECT DISTINCT + pi.id, + pi.project_name, + p.report_status, + pi.project_code, + pi.project_type, + pi.project_phase, + IFNULL((select report_status from t_project_plan_record + WHERE plan_time_flag = 0 AND project_info_id = pi.id ORDER BY create_time DESC LIMIT 1),1) as month_status, + IFNULL((select report_status from t_project_plan_record + WHERE plan_time_flag = 1 AND project_info_id = pi.id ORDER BY create_time DESC LIMIT 1),1) as season_status, + IFNULL((select report_status from t_project_plan_record + WHERE plan_time_flag = 2 AND project_info_id = pi.id ORDER BY create_time DESC LIMIT 1),1) as year_status, + pi.project_status, + pi.invest_type + FROM t_plan AS p + INNER JOIN t_project_info AS pi ON p.project_info_id = pi.id + INNER JOIN t_project_plan_record AS ppr ON p.id = ppr.plan_id WHERE - TP.deleted = 0 + p.deleted = 0 </select> </mapper> diff --git a/business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml b/business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml index b9469a5..1591b70 100644 --- a/business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml +++ b/business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml @@ -16,8 +16,8 @@ <result column="event_type" property="eventType" /> <result column="delay_start_time" property="delayStartTime" /> <result column="delay_end_time" property="delayEndTime" /> - <result column="gmt_create_time" property="gmtCreateTime" /> - <result column="gmt_update_time" property="gmtUpdateTime" /> + <result column="gmt_create" property="gmtCreate" /> + <result column="gmt_update" property="gmtUpdate" /> </resultMap> diff --git a/business/src/main/resources/mapper/ProjectPlanRecordMapper.xml b/business/src/main/resources/mapper/ProjectPlanRecordMapper.xml index e6e6c5a..775d959 100644 --- a/business/src/main/resources/mapper/ProjectPlanRecordMapper.xml +++ b/business/src/main/resources/mapper/ProjectPlanRecordMapper.xml @@ -14,10 +14,37 @@ <result column="actual_invest" property="actualInvest" /> </resultMap> - - - - + <resultMap id="ProjetPlanRecordItem" type="com.ycl.domain.vo.ProjetPlanRecordItem"> + <id property="id" column="id" /> + <result column="project_name" property="projectName" /> + <result column="project_code" property="projectCode" /> + <result column="plan_time" property="planTime" /> + <result column="plan_time_flag" property="planTimeFlag" /> + <result column="create_time" property="createTime" /> + <result column="report_status" property="reportStatus" /> + </resultMap> + <insert id="insertItem"> + INSERT INTO t_project_plan_record ( + project_info_id, + plan_id, + engineering_info_id, + plan_time, + plan_time_flag, + create_time, + report_status, + actual_invest + ) + VALUES ( + #{projectInfoId}, + #{planId}, + #{engineeringInfoId}, + #{planTime}, + #{planTimeFlag}, + #{createTime}, + #{reportStatus}, + #{actualInvest} + ) + </insert> <select id="getById" resultMap="BaseResultMap"> @@ -55,4 +82,21 @@ TPPR.deleted = 0 </select> + + <select id="selectPlanList" resultMap="ProjetPlanRecordItem"> + SELECT + ppr.id, + pi.project_name, + pi.project_code, + ppr.plan_time, + ppr.plan_time_flag, + ppr.create_time, + ppr.report_status + FROM t_project_plan_record AS ppr + LEFT JOIN t_project_info AS pi ON pi.id = ppr.project_info_id + WHERE + ppr.plan_time_flag = #{flag} + AND pi.id = #{id} + </select> + </mapper> -- Gitblit v1.8.0