business/src/main/java/com/ycl/controller/ProjectPlanInfoController.java
@@ -90,7 +90,7 @@ } @PostMapping("/resubmitPlanInfo") public Result resubmitPlanInfo(@RequestBody ProjectPlanInfoForm form) { public Result resubmitPlanInfo(@RequestBody @Validated(Add.class) ProjectPlanInfoForm form) { return projectPlanInfoService.resubmitPlanInfo(form); } business/src/main/java/com/ycl/domain/query/PlanQuery.java
@@ -13,5 +13,11 @@ @Data @ApiModel(value = "Plan查询参数", description = "项目计划表查询参数") public class PlanQuery extends AbsQuery { private String projectName; private String projectCode; private Integer reportStatus; private Integer yearStatus; private Integer seasonStatus; private Integer monthStatus; } business/src/main/java/com/ycl/domain/vo/ProjectPlanResponseVO.java
@@ -13,10 +13,11 @@ private Integer reportStatus; private String projectCode; private String projectType; private Integer projectPhase; private String projectPhase; private Integer monthStatus; private Integer seasonStatus; private Integer yearStatus; private String projectStatus; private String investType; private String projectColorCode; } business/src/main/java/com/ycl/service/impl/PlanServiceImpl.java
@@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.ycl.common.base.Result; import com.ycl.common.enums.business.ProjectStatusEnum; import com.ycl.common.enums.business.ProjectTypeEnum; import com.ycl.domain.entity.Plan; import com.ycl.domain.vo.ProjectPlanResponseVO; import com.ycl.framework.utils.PageUtil; @@ -90,6 +92,14 @@ public Result page(PlanQuery query) { IPage<ProjectPlanResponseVO> page = PageUtil.getPage(query, ProjectPlanResponseVO.class); baseMapper.getPage(page, query); // 对分页后的属性进行处理 List<ProjectPlanResponseVO> records = page.getRecords(); for (ProjectPlanResponseVO record : records) { record.setProjectType(ProjectTypeEnum.getDescByType(record.getProjectType())); record.setProjectStatus(ProjectStatusEnum.getDescByType(record.getProjectStatus())); record.setProjectColorCode("green"); } return Result.ok().data(page.getRecords()).total(page.getTotal()); } business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java
@@ -24,6 +24,7 @@ import com.ycl.domain.entity.*; import com.ycl.domain.excel.ProjectExcelTemplate; import com.ycl.domain.form.DocumentInfoForm; import com.ycl.domain.form.PlanForm; import com.ycl.domain.form.ProjectInfoForm; import com.ycl.domain.query.ProjectExportQuery; import com.ycl.domain.query.ProjectInfoQuery; @@ -70,6 +71,7 @@ private final ProjectUnitRegistrationInfoMapper unitRegistrationInfoMapper; private final FileService fileService; private final FileMapper fileMapper; private final PlanMapper planMapper; /** * 添加 @@ -86,6 +88,7 @@ entity.setCreateBy(userId); entity.setUpdateBy(userId); baseMapper.insert(entity); addPlan(entity.getId()); //添加计划表 //添加文件 List<File> fileList = form.getFileList(); fileList.forEach(item -> { @@ -94,6 +97,17 @@ }); fileService.saveBatch(fileList); return Result.ok("添加成功").data(entity.getId()); } public void addPlan(Long projectInfoId) { Plan plan = new Plan(); plan.setProjectInfoId(projectInfoId); plan.setReportStatus(1); plan.setMonthStatus(1); plan.setSeasonStatus(1); plan.setYearStatus(1); plan.setDeleted(0); planMapper.insert(plan); } /** @@ -390,6 +404,9 @@ ProjectInfo projectInfo = baseMapper.selectById(recordId); // 判断当前用户id是否在主管列表中 String competentDepartment = projectInfo.getCompetentDepartment(); if (StringUtils.isEmpty(competentDepartment)){ return Result.ok().data(false); } List<String> list = Arrays.asList(competentDepartment.split(",")); // 获得当前用户id Long userId = SecurityUtils.getUserId(); business/src/main/java/com/ycl/service/impl/ProjectPlanInfoServiceImpl.java
@@ -174,7 +174,7 @@ item.setDeleted(0); // 未删除 list.stream().forEach(i -> { item.setProjectPlanInfoId(i.getId().longValue()); projectPlanExamineRecordMapper.insertOne(item); projectPlanExamineRecordMapper.insert(item); }); return Result.ok("添加成功"); } @@ -207,16 +207,28 @@ .set(ProjectPlanInfo::getStartTime, request.getStartTime()) .set(ProjectPlanInfo::getEndTime, request.getEndTime()) .update(); // 查询出原来的审核记录 ProjectPlanExamineRecord item = new LambdaQueryChainWrapper<>(projectPlanExamineRecordMapper) .eq(ProjectPlanExamineRecord::getProjectPlanInfoId, request.getId()) .eq(ProjectPlanExamineRecord::getProjectPlanRecordId, request.getProjectPlanRecordId()) .ne(ProjectPlanExamineRecord::getEventType, 2) .eq(ProjectPlanExamineRecord::getDeleted, 0) // 未删除 .orderByDesc(ProjectPlanExamineRecord::getGmtCreate) .last("LIMIT 1") .one(); // 新增一条审核记录 ProjectPlanExamineRecord item = new ProjectPlanExamineRecord(); item.setProjectPlanRecordId(request.getProjectPlanRecordId().longValue()); item.setProjectPlanInfoId(request.getId().longValue()); // item.setId(null); // item.setEventType(1); // item.setDelayStartTime(request.getStartTime()); // item.setDelayEndTime(request.getEndTime()); // item.setGmtCreate(null); // item.setGmtUpdate(null); // projectPlanExamineRecordMapper.insertOne(item); // 更新原来的审核记录 item.setEventType(1); item.setDelayStartTime(request.getStartTime()); item.setDelayEndTime(request.getEndTime()); item.setGmtCreate(new Date()); item.setDeleted(0); projectPlanExamineRecordMapper.insertOne(item); projectPlanExamineRecordMapper.updateById(item); return Result.ok("延期成功"); } @@ -236,11 +248,9 @@ item.setProjectPlanRecordId(form.getProjectPlanRecordId().longValue()); item.setProjectPlanInfoId(form.getId().longValue()); item.setEventType(0); // 计划上报 item.setDelayStartTime(form.getStartTime()); item.setDelayEndTime(form.getEndTime()); item.setGmtCreate(new Date()); item.setDeleted(0); // 未删除 projectPlanExamineRecordMapper.insertOne(item); projectPlanExamineRecordMapper.insert(item); return Result.ok("重新上报成功"); } } business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java
@@ -59,18 +59,24 @@ @Transactional(rollbackFor = Exception.class) @Override public Result add(ProgressReportResponseVO form) { ProjectPlanProgressReport projectPlanProgressReport = new ProjectPlanProgressReport(); projectPlanProgressReport.setProjectPlanInfoId(form.getId().longValue()); projectPlanProgressReport.setStartTime(form.getActualStartTime()); projectPlanProgressReport.setEndTime(form.getActualEndTime()); projectPlanProgressReport.setProgressStatus(form.getProgressStatusStr()); projectPlanProgressReport.setActualInvest(form.getActualInvest()); // 判断上报状态 if (form.getProgressStatusInt() == 0) { // 未开始 上报进度 ProjectPlanProgressReport projectPlanProgressReport = new ProjectPlanProgressReport(); projectPlanProgressReport.setProjectPlanInfoId(form.getId().longValue()); projectPlanProgressReport.setStartTime(form.getActualStartTime()); projectPlanProgressReport.setEndTime(form.getActualEndTime()); projectPlanProgressReport.setProgressStatus(form.getProgressStatusStr()); projectPlanProgressReport.setActualInvest(form.getActualInvest()); // 新增进度上报内容 baseMapper.insert(projectPlanProgressReport); }else if (form.getProgressStatusInt() == 2) { // 已驳回 重新上报 ProjectPlanProgressReport projectPlanProgressReport = baseMapper.selectById(form.getProgressReportId()); projectPlanProgressReport.setProjectPlanInfoId(form.getId().longValue()); projectPlanProgressReport.setStartTime(form.getActualStartTime()); projectPlanProgressReport.setEndTime(form.getActualEndTime()); projectPlanProgressReport.setProgressStatus(form.getProgressStatusStr()); projectPlanProgressReport.setActualInvest(form.getActualInvest()); // 更新进度上报内容 baseMapper.updateById(projectPlanProgressReport); } business/src/main/java/com/ycl/service/impl/ProjectPlanRecordServiceImpl.java
@@ -55,8 +55,9 @@ @Override public Result add(ProjectPlanRecordAddRequest request) { ProjectPlanRecord item = new ProjectPlanRecord(); Plan one = new LambdaQueryChainWrapper<>(planMapper).eq(Plan::getProjectInfoId, request.getProjectInfoId()).one(); // 查询项目计划id item.setPlanId(new LambdaQueryChainWrapper<>(planMapper).eq(Plan::getProjectInfoId, request.getProjectInfoId()).one().getId().longValue()); item.setPlanId(new LambdaQueryChainWrapper<>(planMapper).eq(Plan::getProjectInfoId, request.getProjectInfoId()).one().getId()); // 判断标志位是否为0,如果为0,则为月度计划,1为季度计划,2为年度计划 if (request.getPlanTimeFlag() == MONTH_FLAG) { // 判断id是否为0 business/src/main/resources/mapper/PlanMapper.xml
@@ -29,11 +29,6 @@ </resultMap> <select id="getById" resultMap="BaseResultMap"> SELECT TP.project_info_id, @@ -59,19 +54,34 @@ 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, p.month_status, p.season_status, p.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 p.deleted = 0 FROM t_project_info AS pi LEFT JOIN t_plan AS p ON p.project_info_id = pi.id <where> pi.deleted = 0 <if test="query.projectName!= null and query.projectName!= ''"> AND pi.project_name LIKE CONCAT('%', #{query.projectName}, '%') </if> <if test="query.projectCode!= null and query.projectCode!= ''"> AND pi.project_code LIKE CONCAT('%', #{query.projectCode}, '%') </if> <if test="query.reportStatus!= null"> AND p.report_status = #{query.reportStatus} </if> <if test="query.monthStatus!= null"> AND p.month_status = #{query.monthStatus} </if> <if test="query.seasonStatus!= null"> AND p.season_status = #{query.seasonStatus} </if> <if test="query.yearStatus!= null"> AND p.year_status = #{query.yearStatus} </if> </where> </select> </mapper> business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml
@@ -179,7 +179,7 @@ FROM t_project_plan_examine_record AS pper WHERE pper.project_plan_record_id = #{projectPlanRecordId} AND pper.event_type = 0 AND pper.event_type != 2 AND pper.deleted = 0 ORDER BY gmt_update DESC </select> common/src/main/java/com/ycl/common/enums/business/ProjectStatusEnum.java
@@ -27,4 +27,13 @@ this.type = type; this.desc = desc; } public static String getDescByType(String type) { for (ProjectStatusEnum status : ProjectStatusEnum.values()) { if (status.type.equals(type)) { return status.desc; } } return null; // 如果没有找到对应的类型,可以返回 null 或者抛出异常 } } common/src/main/java/com/ycl/common/enums/business/ProjectTypeEnum.java
@@ -29,4 +29,13 @@ this.type = type; this.desc = desc; } public static String getDescByType(String type) { for (ProjectTypeEnum projectType : ProjectTypeEnum.values()) { if (projectType.type.equals(type)) { return projectType.desc; } } return null; // 如果没有找到对应的type,可以返回null或抛出异常 } } start/src/main/resources/application.yml
@@ -72,6 +72,10 @@ restart: # 热部署开关 enabled: false # 日期格式 jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 # token配置 token: