From a272c80f565aa5ace23820558fdb7cde636d15f0 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期二, 26 十一月 2024 09:51:27 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- business/src/main/java/com/ycl/service/impl/ProjectPlanRecordServiceImpl.java | 90 ++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 84 insertions(+), 6 deletions(-) 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); } -- Gitblit v1.8.0