From 178b4ee9f38a8b38b1cb5321fee25a6038b39df9 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期三, 19 二月 2025 11:05:28 +0800 Subject: [PATCH] 中标单位id设为null --- business/src/main/java/com/ycl/service/impl/PlanServiceImpl.java | 143 ++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 140 insertions(+), 3 deletions(-) diff --git a/business/src/main/java/com/ycl/service/impl/PlanServiceImpl.java b/business/src/main/java/com/ycl/service/impl/PlanServiceImpl.java index 5b307f2..a8a5814 100644 --- a/business/src/main/java/com/ycl/service/impl/PlanServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/PlanServiceImpl.java @@ -1,13 +1,18 @@ package com.ycl.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; import com.ycl.common.base.Result; +import com.ycl.common.enums.business.ProjectCategoryEnum; import com.ycl.common.enums.business.ProjectStatusEnum; import com.ycl.common.enums.business.ProjectTypeEnum; +import com.ycl.common.utils.DateUtils; import com.ycl.domain.entity.Plan; import com.ycl.domain.vo.ProjectPlanResponseVO; +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.PlanService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.domain.form.PlanForm; @@ -18,7 +23,10 @@ import org.springframework.beans.BeanUtils; import org.springframework.util.Assert; +import java.util.Calendar; +import java.util.Date; import java.util.List; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; /** @@ -32,6 +40,12 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements PlanService { private final PlanMapper planMapper; + private final ProjectPlanRecordServiceImpl projectPlanRecordServiceImpl; + private final ProjectPlanRecordMapper projectPlanRecordMapper; + + private static final Integer MONTH_FLAG = 0; + private static final Integer SEASON_FLAG = 1; + private static final Integer YEAR_FLAG = 2; /** * 娣诲姞 @@ -91,7 +105,7 @@ @Override public Result page(PlanQuery query) { IPage<ProjectPlanResponseVO> page = PageUtil.getPage(query, ProjectPlanResponseVO.class); - baseMapper.getPage(page, query); + baseMapper.getPage(query, page); // 瀵瑰垎椤靛悗鐨勫睘鎬ц繘琛屽鐞� List<ProjectPlanResponseVO> records = page.getRecords(); for (ProjectPlanResponseVO record : records) { @@ -99,8 +113,131 @@ record.setProjectStatus(ProjectStatusEnum.getDescByType(record.getProjectStatus())); record.setProjectColorCode("green"); } - + updateException(records); return Result.ok().data(page.getRecords()).total(page.getTotal()); + } + + // 瀵规煡璇㈠悗鐨勭粨鏋滆繘琛屽紓甯搁棶棰樻洿鏂� + public void updateException(List<ProjectPlanResponseVO> records) { + records.forEach(record -> { + if (null != record.getProjectPhase() && record.getProjectPhase().equals(ProjectCategoryEnum.IMPLEMENT.getDesc())){ // 瀹炴柦闃舵 + List<ProjetPlanRecordItem> month = projectPlanRecordMapper.selectPlanList(record.getId(), MONTH_FLAG); + List<ProjetPlanRecordItem> season = projectPlanRecordMapper.selectPlanList(record.getId(), SEASON_FLAG); + List<ProjetPlanRecordItem> year = projectPlanRecordMapper.selectPlanList(record.getId(), YEAR_FLAG); + + Date now = DateUtils.getNowDate(); + Calendar calendar = Calendar.getInstance(); + // 鏈堝害鍒ゆ柇 + if (month.size() > 0) { + Integer planMonth = month.get(month.size() - 1).getPlanTime(); + calendar.setTime(now); + calendar.add(Calendar.DAY_OF_MONTH, 3); + int monthAfterThreeDays = calendar.get(Calendar.MONTH) + 1; + + if ((planMonth < 12 && planMonth < monthAfterThreeDays)) { + new LambdaUpdateChainWrapper<>(planMapper) + .eq(Plan::getProjectInfoId, record.getId()) + .set(Plan::getException, 0) + .update(); + }else if((planMonth == 12 && monthAfterThreeDays == 1)){ + new LambdaUpdateChainWrapper<>(planMapper) + .eq(Plan::getProjectInfoId, record.getId()) + .set(Plan::getException, 0) + .update(); + } else { + new LambdaUpdateChainWrapper<>(planMapper) + .eq(Plan::getProjectInfoId, record.getId()) + .set(Plan::getException, null) + .update(); + } + }else { + new LambdaUpdateChainWrapper<>(planMapper) + .eq(Plan::getProjectInfoId, record.getId()) + .set(Plan::getException, 0) + .update(); + } + + if (season.size() > 0) { + // 瀛e害鍒ゆ柇 + int seasonNum =season.get(season.size() - 1).getPlanTime(); + Date createTime = season.get(0).getCreateTime(); + calendar.setTime(createTime); + calendar.add(Calendar.MONTH, seasonNum * 3); + Date createTimeAfterMonths = calendar.getTime(); + // 璁$畻涓や釜鏃ユ湡涔嬮棿鐨勫樊鍊硷紝鍗曚綅涓烘绉� + long diffInMillies = createTimeAfterMonths.getTime() - now.getTime(); + // 灏嗗樊鍊艰浆鎹负澶╂暟 + long diffInDays = TimeUnit.DAYS.convert(diffInMillies, TimeUnit.MILLISECONDS); + if (diffInDays < 3) { + new LambdaUpdateChainWrapper<>(planMapper) + .eq(Plan::getProjectInfoId, record.getId()) + .set(Plan::getException, 0) + .update(); + }else { + new LambdaUpdateChainWrapper<>(planMapper) + .eq(Plan::getProjectInfoId, record.getId()) + .set(Plan::getException, null) + .update(); + } + }else { + new LambdaUpdateChainWrapper<>(planMapper) + .eq(Plan::getProjectInfoId, record.getId()) + .set(Plan::getException, 0) + .update(); + } + + if (year.size() > 0) { + // 骞村害鍒ゆ柇 + Integer planYear = year.get(year.size() - 1).getPlanTime(); + calendar.setTime(now); + calendar.add(Calendar.DAY_OF_YEAR, 3); // 娣诲姞3澶� + int planYearAfter3Days = calendar.get(Calendar.YEAR); + if (planYearAfter3Days > planYear) { + new LambdaUpdateChainWrapper<>(planMapper) + .eq(Plan::getProjectInfoId, record.getId()) + .set(Plan::getException, 0) + .update(); + }else { + new LambdaUpdateChainWrapper<>(planMapper) + .eq(Plan::getProjectInfoId, record.getId()) + .set(Plan::getException, null) + .update(); + } + }else { + new LambdaUpdateChainWrapper<>(planMapper) + .eq(Plan::getProjectInfoId, record.getId()) + .set(Plan::getException, 0) + .update(); + } + + month.forEach(item -> { + if (item.getReportStatus() == 1) { // 鏈笂鎶� + new LambdaUpdateChainWrapper<>(planMapper) + .eq(Plan::getProjectInfoId, record.getId()) + .set(Plan::getException, 0) + .update(); + } + }); + season.forEach(item -> { + if (item.getReportStatus() == 1) { // 鏈笂鎶� + new LambdaUpdateChainWrapper<>(planMapper) + .eq(Plan::getProjectInfoId, record.getId()) + .set(Plan::getException, 0) + .update(); + } + }); + year.forEach(item -> { + if (item.getReportStatus() == 1) { // 鏈笂鎶� + new LambdaUpdateChainWrapper<>(planMapper) + .eq(Plan::getProjectInfoId, record.getId()) + .set(Plan::getException, 0) + .update(); + } + }); + + + } + }); } /** @@ -109,7 +246,7 @@ * @return */ @Override - public Result detail(Integer id) { + public Result detail(Long id) { PlanVO vo = baseMapper.getById(id); Assert.notNull(vo, "璁板綍涓嶅瓨鍦�"); return Result.ok().data(vo); -- Gitblit v1.8.0