| | |
| | | import com.ycl.service.ProjectPlanInfoService; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.Assert; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public Result addPlanInfo(ProjectPlanInfoRequest request) { |
| | | if (request.getAddList() == null || request.getAddList().isEmpty()) {{ |
| | | if (CollectionUtils.isEmpty(request.getAddList())) {{ |
| | | return Result.error("请选择要添加的计划项"); |
| | | }} |
| | | // 删除原有记录 |
| | | new LambdaUpdateChainWrapper<>(baseMapper).eq(ProjectPlanInfo::getProjectPlanRecordId, request.getProjectPlanRecordId()).remove(); |
| | | new LambdaUpdateChainWrapper<>(baseMapper) |
| | | .eq(ProjectPlanInfo::getProjectPlanRecordId, request.getProjectPlanRecordId()) |
| | | .remove(); |
| | | // 批量插入新记录 |
| | | List<ProjectPlanInfo> list = new ArrayList<>(); |
| | | request.getAddList().forEach(item -> { |
| | | ProjectPlanInfo projectPlanInfo = new ProjectPlanInfo(); |
| | | projectPlanInfo.setProjectPlanRecordId(request.getProjectPlanRecordId().longValue()); |
| | | projectPlanInfo.setTitle(item.getTitle()); |
| | | projectPlanInfo.setProgressStatus(0); |
| | | projectPlanInfo.setStartTime(item.getStartTime()); |
| | | projectPlanInfo.setEndTime(item.getEndTime()); |
| | | projectPlanInfo.setTitle(item.getTitle()); // 计划项标题 |
| | | projectPlanInfo.setPlanStatus(0); // 计划项状态为未开始 |
| | | projectPlanInfo.setProgressStatus(0); // 计划项进度为未开始 |
| | | projectPlanInfo.setStartTime(item.getStartTime()); // 计划项开始时间 |
| | | projectPlanInfo.setEndTime(item.getEndTime()); // 计划项结束时间 |
| | | list.add(projectPlanInfo); |
| | | }); |
| | | baseMapper.batchInsert(list); |
| | | this.saveBatch(list); |
| | | // 更新计划记录的投资,以及上报状态 |
| | | 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.setEventType(0); |
| | | item.setGmtCreate(new Date()); |
| | | item.setProjectPlanRecordId(request.getProjectPlanRecordId()); |
| | | item.setEventType(0); // 计划上报 |
| | | list.stream().forEach(i -> { |
| | | item.setProjectPlanInfoId(i.getId().longValue()); |
| | | projectPlanExamineRecordMapper.insertOne(item); |
| | | item.setProjectPlanInfoId(i.getId()); |
| | | projectPlanExamineRecordMapper.insert(item); |
| | | }); |
| | | return Result.ok("添加成功"); |
| | | } |
| | | |
| | | @Override |
| | | public Result savePlanInfo(ProjectPlanInfo item) { |
| | | item.setProgressStatus(0); |
| | | public Result savePlanInfo(ProjectPlanInfo item, Integer planRecordId) { |
| | | item.setProjectPlanRecordId(planRecordId.longValue()); // 项目计划记录id |
| | | item.setProgressStatus(0); // 未开始 |
| | | item.setDeleted(0); // 未删除 |
| | | item.setPlanStatus(0); // 未审核 |
| | | // 判断id是否存在,存在则更新,不存在则新增 |
| | | if (item.getId() == null) { |
| | | baseMapper.insertOne(item); |
| | | baseMapper.insert(item); |
| | | } else { |
| | | new LambdaUpdateChainWrapper<>(baseMapper).eq(ProjectPlanInfo::getId, item.getId()) |
| | | .set(ProjectPlanInfo::getTitle, item.getTitle()) |
| | |
| | | } |
| | | return Result.ok("保存成功"); |
| | | } |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public Result delayPlanInfo(ProjectPlanInfoForm request) { |
| | | // 更改计划项时间 |
| | | new LambdaUpdateChainWrapper<>(baseMapper) |
| | | .eq(ProjectPlanInfo::getId, request.getId()) |
| | | .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(); |
| | | // 新增一条审核记录 |
| | | // 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()); |
| | | projectPlanExamineRecordMapper.updateById(item); |
| | | return Result.ok("延期成功"); |
| | | } |
| | | |
| | | @Override |
| | | public Result resubmitPlanInfo(ProjectPlanInfoForm form) { |
| | | // 更新重新上报后的内容 |
| | | new LambdaUpdateChainWrapper<>(baseMapper) |
| | | .eq(ProjectPlanInfo::getId, form.getId()) |
| | | .set(ProjectPlanInfo::getTitle, form.getTitle()) |
| | | .set(ProjectPlanInfo::getStartTime, form.getStartTime()) |
| | | .set(ProjectPlanInfo::getEndTime, form.getEndTime()) |
| | | .set(ProjectPlanInfo::getPlanStatus, 0) // 将该计划项设置为未审核的状态 |
| | | .update(); |
| | | |
| | | // 新增一条计划上报的审核记录 |
| | | ProjectPlanExamineRecord item = new ProjectPlanExamineRecord(); |
| | | item.setProjectPlanRecordId(form.getProjectPlanRecordId().longValue()); |
| | | item.setProjectPlanInfoId(form.getId().longValue()); |
| | | item.setEventType(0); // 计划上报 |
| | | item.setGmtCreate(new Date()); |
| | | item.setDeleted(0); // 未删除 |
| | | projectPlanExamineRecordMapper.insert(item); |
| | | return Result.ok("重新上报成功"); |
| | | } |
| | | } |