| | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import com.ycl.system.domain.base.AbsEntity; |
| | | import com.ycl.system.domain.base.AbsEntityOnlyIdAndDeleted; |
| | | import lombok.Data; |
| | | |
| | | import java.time.LocalDateTime; |
| | |
| | | */ |
| | | @Data |
| | | @TableName("t_project_plan_info") |
| | | public class ProjectPlanInfo extends AbsEntity { |
| | | public class ProjectPlanInfo extends AbsEntityOnlyIdAndDeleted { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | |
| | | private Integer progressStatus; |
| | | |
| | | @TableField("start_time") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | /** 计划开始时间 */ |
| | | private Date startTime; |
| | | |
| | | @TableField("end_time") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | /** 计划完成时间 */ |
| | | private Date endTime; |
| | | |
| | | /** 创建时间 */ |
| | | @TableField(exist = false) |
| | | private Date gmtCreate; |
| | | |
| | | /** 修改时间 */ |
| | | @TableField(exist = false) |
| | | private Date gmtUpdate; |
| | | |
| | | @TableField(exist = false) |
| | | private Integer deleted; |
| | | } |
| | |
| | | @NoArgsConstructor |
| | | public class ProjectPlanInfoItem { |
| | | private String title; |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | private Date startTime; |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | private Date endTime; |
| | | } |
| | |
| | | |
| | | |
| | | import com.ycl.domain.entity.ProjectPlanInfo; |
| | | import com.ycl.system.domain.base.AbsEntity; |
| | | import com.ycl.system.domain.base.AbsVo; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | |
| | | */ |
| | | @Data |
| | | @ApiModel(value = "项目计划项响应数据", description = "项目计划项响应数据") |
| | | public class ProjectPlanInfoVO extends AbsVo { |
| | | public class ProjectPlanInfoVO extends AbsEntity { |
| | | |
| | | /** 项目计划记录id */ |
| | | @ApiModelProperty("项目计划记录id") |
| | |
| | | import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; |
| | | import com.ycl.common.utils.SecurityUtils; |
| | | import com.ycl.domain.entity.ProjectPlanExamineRecord; |
| | | import com.ycl.domain.entity.ProjectPlanRecord; |
| | | import com.ycl.domain.vo.DepartmentApprovalResponseVO; |
| | | import com.ycl.mapper.ProjectPlanExamineRecordMapper; |
| | | import com.ycl.mapper.ProjectPlanRecordMapper; |
| | | import com.ycl.service.ProjectPlanExamineRecordService; |
| | | import com.ycl.common.base.Result; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | |
| | | public class ProjectPlanExamineRecordServiceImpl extends ServiceImpl<ProjectPlanExamineRecordMapper, ProjectPlanExamineRecord> implements ProjectPlanExamineRecordService { |
| | | |
| | | private final ProjectPlanExamineRecordMapper projectPlanExamineRecordMapper; |
| | | private final ProjectPlanRecordMapper projectPlanRecordMapper; |
| | | |
| | | /** |
| | | * 添加 |
| | |
| | | |
| | | @Override |
| | | public Result saveExamine(ProjectPlanExamineRecordForm form) { |
| | | // 判断,如果都同意,则直接更新审批记录 |
| | | if (null != form.getDepartmentExamine() && null != form.getManageExamine() && form.getDepartmentExamine() == 0 && form.getManageExamine() == 0){ |
| | | ProjectPlanExamineRecord projectPlanExamineRecord = ProjectPlanExamineRecordForm.getEntityByForm(form, null); |
| | | projectPlanExamineRecord.setId(form.getId().longValue()); |
| | | projectPlanExamineRecord.setDepartmentUserId(SecurityUtils.getUserId()); |
| | | projectPlanExamineRecord.setManagerUserId(SecurityUtils.getUserId()); |
| | | baseMapper.updateById(projectPlanExamineRecord); |
| | | } |
| | | // 否则,将项目记录设置为未上报,并将记录逻辑删除 |
| | | new LambdaUpdateChainWrapper<>(projectPlanRecordMapper) |
| | | .eq(ProjectPlanRecord::getId, form.getProjectPlanRecordId()) |
| | | .set(ProjectPlanRecord::getReportStatus,1); |
| | | new LambdaUpdateChainWrapper<>(baseMapper) |
| | | .eq(ProjectPlanExamineRecord::getProjectPlanRecordId, form.getProjectPlanRecordId()) |
| | | .remove(); |
| | | return Result.ok("回复成功"); |
| | | } |
| | | } |
| | |
| | | return Result.error("请选择要添加的计划项"); |
| | | }} |
| | | // 删除原有记录 |
| | | new LambdaUpdateChainWrapper<>(baseMapper).eq(ProjectPlanInfo::getProjectPlanRecordId, request.getProjectPlanRecordId()).remove(); |
| | | new LambdaUpdateChainWrapper<>(baseMapper) |
| | | .eq(ProjectPlanInfo::getProjectPlanRecordId, request.getProjectPlanRecordId()) |
| | | .set(ProjectPlanInfo::getDeleted, 1) |
| | | .update(); |
| | | // 批量插入新记录 |
| | | List<ProjectPlanInfo> list = new ArrayList<>(); |
| | | request.getAddList().forEach(item -> { |
| | |
| | | projectPlanInfo.setProgressStatus(0); |
| | | projectPlanInfo.setStartTime(item.getStartTime()); |
| | | projectPlanInfo.setEndTime(item.getEndTime()); |
| | | projectPlanInfo.setDeleted(0); |
| | | list.add(projectPlanInfo); |
| | | }); |
| | | baseMapper.batchInsert(list); |
| | | list.stream().forEach(i -> { |
| | | baseMapper.insert(i); |
| | | }); |
| | | // 更新计划记录的投资,以及上报状态 |
| | | new LambdaUpdateChainWrapper<>(projectPlanRecordMapper) |
| | | .eq(ProjectPlanRecord::getId, request.getProjectPlanRecordId()) |
| | | .set(ProjectPlanRecord::getActualInvest, request.getActualInvest()) |
| | | .set(ProjectPlanRecord::getReportStatus, 0) |
| | | .update(); |
| | | |
| | | // 新增一条审核记录 |
| | | ProjectPlanExamineRecord item = new ProjectPlanExamineRecord(); |
| | | item.setProjectPlanRecordId(request.getProjectPlanRecordId().longValue()); |
| | |
| | | item.setDeleted(0); |
| | | list.stream().forEach(i -> { |
| | | item.setProjectPlanInfoId(i.getId().longValue()); |
| | | // projectPlanExamineRecordMapper.insert(item); |
| | | projectPlanExamineRecordMapper.insertOne(item); |
| | | // projectPlanExamineRecordMapper.insertOne(item); |
| | | }); |
| | | return Result.ok("添加成功"); |
| | | } |
| | |
| | | baseMapper.insertOne(projectPlanProgressReport); |
| | | }else { |
| | | projectPlanProgressReport.setId(form.getProgressReportId()); |
| | | // baseMapper.updateOne(projectPlanProgressReport); |
| | | baseMapper.updateById(projectPlanProgressReport); |
| | | } |
| | | |
| | |
| | | WHERE project_plan_record_id = #{projectPlanRecordId} |
| | | ) AS ranked |
| | | WHERE rn = 1 AND ranked.deleted = 0 |
| | | Order by gmt_create DESC |
| | | </select> |
| | | |
| | | <select id="getPlanLog" resultType="com.ycl.domain.vo.DepartmentApprovalResponseVO"> |
| | |
| | | <result column="progress_status" property="progressStatus" /> |
| | | <result column="start_time" property="startTime" /> |
| | | <result column="end_time" property="endTime" /> |
| | | <result column="deleted" property="deleted" /> |
| | | </resultMap> |
| | | <insert id="batchInsert" keyColumn="id" useGeneratedKeys="true" keyProperty="id"> |
| | | insert into t_project_plan_info(project_plan_record_id, title, progress_status, start_time, end_time) |
| | | insert into t_project_plan_info(project_plan_record_id, title, progress_status, start_time, end_time, deleted) |
| | | values |
| | | <foreach collection="list" item="item" separator=","> |
| | | (#{item.projectPlanRecordId}, #{item.title}, #{item.progressStatus}, #{item.startTime}, #{item.endTime}) |
| | | (#{item.projectPlanRecordId}, #{item.title}, #{item.progressStatus}, #{item.startTime}, #{item.endTime}, #{item.deleted}) |
| | | </foreach> |
| | | </insert> |
| | | <insert id="insertOne"> |
| | |
| | | LEFT JOIN t_project_plan_progress_report AS pppr ON pppr.project_plan_info_id = ppi.id |
| | | RIGHT JOIN t_project_plan_examine_record AS pper ON pper.project_plan_info_id = ppi.id |
| | | WHERE ppi.id = #{id} |
| | | ORDER BY pper.gmt_create DESC LIMIT 1 |
| | | </select> |
| | | |
| | | </mapper> |