From 1b9936ba920d65df09ab8dba79c6252568ee26e4 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期三, 26 三月 2025 12:16:02 +0800 Subject: [PATCH] 任务统计bug --- business/src/main/java/com/ycl/service/impl/ProjectPlanRecordServiceImpl.java | 109 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 97 insertions(+), 12 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..f563322 100644 --- a/business/src/main/java/com/ycl/service/impl/ProjectPlanRecordServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/ProjectPlanRecordServiceImpl.java @@ -1,20 +1,30 @@ 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.common.base.Result; +import com.ycl.common.utils.DateUtils; +import com.ycl.domain.entity.Plan; +import com.ycl.domain.entity.ProjectPlanInfo; import com.ycl.domain.entity.ProjectPlanRecord; +import com.ycl.domain.form.ProjectPlanRecordAddRequestForm; +import com.ycl.domain.form.ProjectPlanRecordForm; +import com.ycl.domain.query.ProjectPlanRecordQuery; +import com.ycl.domain.vo.ProjectPlanRecordResponseVO; +import com.ycl.domain.vo.ProjectPlanRecordVO; import com.ycl.framework.utils.PageUtil; +import com.ycl.mapper.PlanMapper; +import com.ycl.mapper.ProjectPlanInfoMapper; import com.ycl.mapper.ProjectPlanRecordMapper; import com.ycl.service.ProjectPlanRecordService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ycl.domain.form.ProjectPlanRecordForm; -import com.ycl.domain.vo.ProjectPlanRecordVO; -import com.ycl.domain.query.ProjectPlanRecordQuery; -import org.springframework.stereotype.Service; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; import org.springframework.util.Assert; +import java.time.LocalDate; import java.util.List; import java.util.stream.Collectors; @@ -28,7 +38,13 @@ @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; + private final ProjectPlanInfoMapper projectPlanInfoMapper; /** * 娣诲姞 @@ -36,9 +52,68 @@ * @return */ @Override - public Result add(ProjectPlanRecordForm form) { - ProjectPlanRecord entity = ProjectPlanRecordForm.getEntityByForm(form, null); - baseMapper.insert(entity); + public Result add(ProjectPlanRecordAddRequestForm form) { + ProjectPlanRecord item = new ProjectPlanRecord(); + // 鏌ヨ椤圭洰璁″垝id + item.setPlanId(new LambdaQueryChainWrapper<>(planMapper).eq(Plan::getProjectInfoId, form.getProjectInfoId()).one().getId()); + // 鍒ゆ柇鏍囧織浣嶆槸鍚︿负0锛屽鏋滀负0锛屽垯涓烘湀搴﹁鍒掞紝1涓哄搴﹁鍒掞紝2涓哄勾搴﹁鍒� + if (form.getPlanTimeFlag() == MONTH_FLAG) { + // 鍒ゆ柇id鏄惁涓�0 + if (form.getId() == 0) { + // 鏂板鏈堝害璁″垝 + item.setProjectInfoId(form.getProjectInfoId()); + item.setPlanTime(LocalDate.now().getMonthValue()); + item.setPlanTimeFlag(MONTH_FLAG); + item.setCreateTime(DateUtils.getNowDate()); + item.setReportStatus(1); + } else { + // 鏂板鏈堝害璁″垝 + item = baseMapper.selectById(form.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 (form.getPlanTimeFlag() == SEASON_FLAG) { + // 鍒ゆ柇id鏄惁涓�0 + if (form.getId() == 0) { + // 鏂板瀛e害璁″垝 + item.setProjectInfoId(form.getProjectInfoId()); + item.setPlanTime(1); + item.setPlanTimeFlag(SEASON_FLAG); + item.setCreateTime(DateUtils.getNowDate()); + item.setReportStatus(1); + } else { + // 鏂板瀛e害璁″垝 + item = baseMapper.selectById(form.getId()); + item.setId(null); + item.setPlanTime(item.getPlanTime() + 1); + item.setCreateTime(DateUtils.getNowDate()); + item.setReportStatus(1); + item.setActualInvest(null); + } + }else { + // 鍒ゆ柇id鏄惁涓�0 + if (form.getId() == 0) { + // 鏂板骞村害璁″垝 + item.setProjectInfoId(form.getProjectInfoId()); + item.setPlanTime(LocalDate.now().getYear()); + item.setPlanTimeFlag(YEAR_FLAG); + item.setCreateTime(DateUtils.getNowDate()); + item.setReportStatus(1); + } else { + // 鏂板骞磋鍒� + item = baseMapper.selectById(form.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("娣诲姞鎴愬姛"); } @@ -75,8 +150,13 @@ * @return */ @Override - public Result removeById(String id) { + public Result removeById(Long id) { + // 鍒犻櫎璁″垝璁板綍 baseMapper.deleteById(id); + // 鍒犻櫎璁″垝椤� + new LambdaUpdateChainWrapper<>(projectPlanInfoMapper) + .eq(ProjectPlanInfo::getProjectPlanRecordId, id) + .remove(); return Result.ok("鍒犻櫎鎴愬姛"); } @@ -98,9 +178,14 @@ * @return */ @Override - public Result detail(Integer id) { - ProjectPlanRecordVO vo = baseMapper.getById(id); - Assert.notNull(vo, "璁板綍涓嶅瓨鍦�"); + public Result detail(Long id) { + 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