From 2f24dc0b25a255cb4817b3a09a904eb83fbc27d3 Mon Sep 17 00:00:00 2001 From: cuizhibin Date: Mon, 12 May 2025 16:36:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=8F=90=E4=BA=A4=E3=80=81?= =?UTF-8?q?=E5=AE=A1=E6=89=B9=E5=90=8E=E6=9B=B4=E6=96=B0=E6=9C=BA=E7=BB=84?= =?UTF-8?q?=E3=80=81=E9=A1=B9=E7=9B=AE=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dite/znpt/enums/ProjectStatusEnum.java | 18 ++-- .../com/dite/znpt/service/TurbineService.java | 9 ++ .../znpt/service/impl/TurbineServiceImpl.java | 101 ++++++++++++++++++ 3 files changed, 118 insertions(+), 10 deletions(-) diff --git a/core/src/main/java/com/dite/znpt/enums/ProjectStatusEnum.java b/core/src/main/java/com/dite/znpt/enums/ProjectStatusEnum.java index 58ab7bb..af7fc89 100644 --- a/core/src/main/java/com/dite/znpt/enums/ProjectStatusEnum.java +++ b/core/src/main/java/com/dite/znpt/enums/ProjectStatusEnum.java @@ -1,6 +1,7 @@ package com.dite.znpt.enums; import cn.hutool.json.JSONObject; +import lombok.AllArgsConstructor; import lombok.Getter; import java.util.ArrayList; @@ -12,19 +13,16 @@ import java.util.List; * @Description: */ @Getter +@AllArgsConstructor public enum ProjectStatusEnum { - PENDING("PENDING","待施工"), - IN_PROGRESS("IN_PROGRESS","施工中"), - COMPLETED("COMPLETED","已完工"), - AUDITED("AUDITED","已审核"), - ACCEPTED("ACCEPTED","已验收"); + PENDING("PENDING","待施工", 0), + IN_PROGRESS("IN_PROGRESS","施工中", 1), + COMPLETED("COMPLETED","已完工", 2), + AUDITED("AUDITED","已审核", 3), + ACCEPTED("ACCEPTED","已验收", 4); private final String code; private final String desc; - - ProjectStatusEnum(String code, String desc){ - this.code = code; - this.desc = desc; - } + private final int intValue; public static ProjectStatusEnum getByCode(String code){ for (ProjectStatusEnum e : ProjectStatusEnum.values() ) { diff --git a/core/src/main/java/com/dite/znpt/service/TurbineService.java b/core/src/main/java/com/dite/znpt/service/TurbineService.java index 4dd8990..d9ce894 100644 --- a/core/src/main/java/com/dite/znpt/service/TurbineService.java +++ b/core/src/main/java/com/dite/znpt/service/TurbineService.java @@ -99,5 +99,14 @@ public interface TurbineService extends IService { * @date 2025/04/11 23:17 **/ void deleteByProjectId(String projectId); + + /** + * 功能描述:更新状态 + * + * @param turbineId 机组id + * @author cuizhibin + * @date 2025/05/12 15:45 + **/ + void updateStatus(String turbineId); } diff --git a/core/src/main/java/com/dite/znpt/service/impl/TurbineServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/TurbineServiceImpl.java index 0ad42e3..1703b13 100644 --- a/core/src/main/java/com/dite/znpt/service/impl/TurbineServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/impl/TurbineServiceImpl.java @@ -1,5 +1,6 @@ package com.dite.znpt.service.impl; +import cn.hutool.core.collection.ListUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -8,19 +9,26 @@ import com.dite.znpt.converts.Converts; import com.dite.znpt.domain.entity.ProjectEntity; import com.dite.znpt.domain.entity.TurbineEntity; import com.dite.znpt.domain.vo.*; +import com.dite.znpt.domain.vo.job.resp.TurbineStatusResp; +import com.dite.znpt.enums.Enums; +import com.dite.znpt.enums.ProjectStatusEnum; import com.dite.znpt.exception.ServiceException; import com.dite.znpt.mapper.TurbineMapper; import com.dite.znpt.service.PartService; import com.dite.znpt.service.ProjectService; import com.dite.znpt.service.TurbineService; +import com.dite.znpt.service.job.JobService; import com.dite.znpt.util.PageUtil; import lombok.RequiredArgsConstructor; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.Arrays; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -37,6 +45,8 @@ public class TurbineServiceImpl extends ServiceImpl turbineStatusList = jobService.calCrewStatus(ListUtil.of(turbineId)); + TurbineStatusResp turbineStatusVo = turbineStatusList.get(0); + + List status1 = ListUtil.of(Enums.ECrewWorkStatus.NON_EXISTS.getValue(), Enums.ECrewWorkStatus.NOT_START.getValue()); + List status2 = ListUtil.of(Enums.ECrewWorkStatus.NON_EXISTS.getValue(), Enums.ECrewWorkStatus.START_CONSTRUCTION.getValue()); + List status3 = ListUtil.of(Enums.ECrewWorkStatus.NON_EXISTS.getValue(), Enums.ECrewWorkStatus.SUBMITTED_REPORT.getValue()); + List status4 = ListUtil.of(Enums.ECrewWorkStatus.NON_EXISTS.getValue(), Enums.ECrewWorkStatus.APPROVAL.getValue()); + if (status1.contains(turbineStatusVo.getInWorkStatus()) + && status1.contains(turbineStatusVo.getOutWorkStatus()) + && status1.contains(turbineStatusVo.getAntiThunderWorkStatus()) + && status1.contains(turbineStatusVo.getSummaryWorkStatus())) { +// 未施工 + return; + } + if (status3.contains(turbineStatusVo.getInWorkStatus()) + && status3.contains(turbineStatusVo.getOutWorkStatus()) + && status3.contains(turbineStatusVo.getAntiThunderWorkStatus()) + && status3.contains(turbineStatusVo.getSummaryWorkStatus())) { +// 全部提交已完工 + turbine.setStatus(ProjectStatusEnum.COMPLETED.getIntValue()); + } else if (status4.contains(turbineStatusVo.getInWorkStatus()) + && status4.contains(turbineStatusVo.getOutWorkStatus()) + && status4.contains(turbineStatusVo.getAntiThunderWorkStatus()) + && status4.contains(turbineStatusVo.getSummaryWorkStatus())) { +// 全部审批已审批 + turbine.setStatus(ProjectStatusEnum.AUDITED.getIntValue()); + } else if (status2.contains(turbineStatusVo.getInWorkStatus()) + || status2.contains(turbineStatusVo.getOutWorkStatus()) + || status2.contains(turbineStatusVo.getAntiThunderWorkStatus()) + || status2.contains(turbineStatusVo.getSummaryWorkStatus())) { +// 有一个开始则开始 + turbine.setStatus(ProjectStatusEnum.IN_PROGRESS.getIntValue()); + } + this.updateById(turbine); + // 更新项目状态 + updateProjectStatus(turbine.getProjectId()); + } + + /** + * 功能描述:更新项目状态 + * + * @param projectId 项目id + * @author cuizhibin + * @date 2025/05/12 16:35 + **/ + private void updateProjectStatus(String projectId) { + ProjectEntity project = projectService.getById(projectId); + Integer status = project.getStatus(); + List statusList = this.lambdaQuery().eq(TurbineEntity::getProjectId, projectId).list() + .stream().map(TurbineEntity::getStatus).toList(); +// 有施工中,则是施工中 + if (statusList.contains(ProjectStatusEnum.IN_PROGRESS.getIntValue())) { + status = ProjectStatusEnum.IN_PROGRESS.getIntValue(); + } +// 如果机组列表没有状态为 待施工、施工中 的则项目 完工 + if (!statusList.contains(ProjectStatusEnum.PENDING.getIntValue()) && + !statusList.contains(ProjectStatusEnum.IN_PROGRESS.getIntValue())) { + status = ProjectStatusEnum.COMPLETED.getIntValue(); +// 如果机组列表没有状态为 待施工、施工中、已完工 的则项目 已审核 + if (!statusList.contains(ProjectStatusEnum.COMPLETED.getIntValue())) { + status = ProjectStatusEnum.AUDITED.getIntValue(); +// 如果机组列表没有状态为 待施工、施工中、已完工、已审核 的则项目 已验收 + if (!statusList.contains(ProjectStatusEnum.AUDITED.getIntValue())) { + status = ProjectStatusEnum.ACCEPTED.getIntValue(); + } + } + } + if (!Objects.equals(project.getStatus(), status)) { + project.setStatus(status); + projectService.updateById(project); + } + } }