工作提交、审批后更新机组、项目状态
This commit is contained in:
parent
6f88759f8f
commit
2f24dc0b25
|
@ -1,6 +1,7 @@
|
||||||
package com.dite.znpt.enums;
|
package com.dite.znpt.enums;
|
||||||
|
|
||||||
import cn.hutool.json.JSONObject;
|
import cn.hutool.json.JSONObject;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -12,19 +13,16 @@ import java.util.List;
|
||||||
* @Description:
|
* @Description:
|
||||||
*/
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
|
@AllArgsConstructor
|
||||||
public enum ProjectStatusEnum {
|
public enum ProjectStatusEnum {
|
||||||
PENDING("PENDING","待施工"),
|
PENDING("PENDING","待施工", 0),
|
||||||
IN_PROGRESS("IN_PROGRESS","施工中"),
|
IN_PROGRESS("IN_PROGRESS","施工中", 1),
|
||||||
COMPLETED("COMPLETED","已完工"),
|
COMPLETED("COMPLETED","已完工", 2),
|
||||||
AUDITED("AUDITED","已审核"),
|
AUDITED("AUDITED","已审核", 3),
|
||||||
ACCEPTED("ACCEPTED","已验收");
|
ACCEPTED("ACCEPTED","已验收", 4);
|
||||||
private final String code;
|
private final String code;
|
||||||
private final String desc;
|
private final String desc;
|
||||||
|
private final int intValue;
|
||||||
ProjectStatusEnum(String code, String desc){
|
|
||||||
this.code = code;
|
|
||||||
this.desc = desc;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static ProjectStatusEnum getByCode(String code){
|
public static ProjectStatusEnum getByCode(String code){
|
||||||
for (ProjectStatusEnum e : ProjectStatusEnum.values() ) {
|
for (ProjectStatusEnum e : ProjectStatusEnum.values() ) {
|
||||||
|
|
|
@ -99,5 +99,14 @@ public interface TurbineService extends IService<TurbineEntity> {
|
||||||
* @date 2025/04/11 23:17
|
* @date 2025/04/11 23:17
|
||||||
**/
|
**/
|
||||||
void deleteByProjectId(String projectId);
|
void deleteByProjectId(String projectId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 功能描述:更新状态
|
||||||
|
*
|
||||||
|
* @param turbineId 机组id
|
||||||
|
* @author cuizhibin
|
||||||
|
* @date 2025/05/12 15:45
|
||||||
|
**/
|
||||||
|
void updateStatus(String turbineId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.dite.znpt.service.impl;
|
package com.dite.znpt.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.ListUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
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.ProjectEntity;
|
||||||
import com.dite.znpt.domain.entity.TurbineEntity;
|
import com.dite.znpt.domain.entity.TurbineEntity;
|
||||||
import com.dite.znpt.domain.vo.*;
|
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.exception.ServiceException;
|
||||||
import com.dite.znpt.mapper.TurbineMapper;
|
import com.dite.znpt.mapper.TurbineMapper;
|
||||||
import com.dite.znpt.service.PartService;
|
import com.dite.znpt.service.PartService;
|
||||||
import com.dite.znpt.service.ProjectService;
|
import com.dite.znpt.service.ProjectService;
|
||||||
import com.dite.znpt.service.TurbineService;
|
import com.dite.znpt.service.TurbineService;
|
||||||
|
import com.dite.znpt.service.job.JobService;
|
||||||
import com.dite.znpt.util.PageUtil;
|
import com.dite.znpt.util.PageUtil;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -37,6 +45,8 @@ public class TurbineServiceImpl extends ServiceImpl<TurbineMapper, TurbineEntity
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private PartService partService;
|
private PartService partService;
|
||||||
|
@Autowired
|
||||||
|
private JobService jobService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 功能描述:分页查询机组列表
|
* 功能描述:分页查询机组列表
|
||||||
|
@ -175,4 +185,95 @@ public class TurbineServiceImpl extends ServiceImpl<TurbineMapper, TurbineEntity
|
||||||
partService.deleteByTurbineIds(turbineIds);
|
partService.deleteByTurbineIds(turbineIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 功能描述:更新状态
|
||||||
|
*
|
||||||
|
* @param turbineId 机组id
|
||||||
|
* @author cuizhibin
|
||||||
|
* @date 2025/05/12 15:45
|
||||||
|
**/
|
||||||
|
@Override
|
||||||
|
public void updateStatus(String turbineId) {
|
||||||
|
if (StringUtils.isEmpty(turbineId)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
TurbineEntity turbine = getById(turbineId);
|
||||||
|
if (turbine == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (turbine.getStatus() == ProjectStatusEnum.AUDITED.getIntValue()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
List<TurbineStatusResp> turbineStatusList = jobService.calCrewStatus(ListUtil.of(turbineId));
|
||||||
|
TurbineStatusResp turbineStatusVo = turbineStatusList.get(0);
|
||||||
|
|
||||||
|
List<String> status1 = ListUtil.of(Enums.ECrewWorkStatus.NON_EXISTS.getValue(), Enums.ECrewWorkStatus.NOT_START.getValue());
|
||||||
|
List<String> status2 = ListUtil.of(Enums.ECrewWorkStatus.NON_EXISTS.getValue(), Enums.ECrewWorkStatus.START_CONSTRUCTION.getValue());
|
||||||
|
List<String> status3 = ListUtil.of(Enums.ECrewWorkStatus.NON_EXISTS.getValue(), Enums.ECrewWorkStatus.SUBMITTED_REPORT.getValue());
|
||||||
|
List<String> 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<Integer> 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue