diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/ProjectInfoController.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/ProjectInfoController.java index f6ac5961..89c861d3 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/ProjectInfoController.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/ProjectInfoController.java @@ -63,7 +63,8 @@ public class ProjectInfoController extends BaseController @ResponseBody public AjaxResult export(ProjectInfo projectInfo) { - List list = projectInfoService.selectProjectInfoList(projectInfo); + //导出查询是否需要单独 + List list = projectInfoService.selectProjectInfoExportList(projectInfo); ExcelUtil util = new ExcelUtil(ProjectInfo.class); return util.exportExcel(list, "项目管理数据"); } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectInfo.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectInfo.java index cd47b4ce..c382a653 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectInfo.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectInfo.java @@ -34,7 +34,7 @@ public class ProjectInfo extends BaseEntity private String projectName; /** 客户code */ - @Excel(name = "客户code") +// @Excel(name = "客户code") private String customerCode; /** 客户名称 */ @@ -48,14 +48,14 @@ public class ProjectInfo extends BaseEntity /** 属地 */ @Excel(name = "属地") private String province; - + /** 项目把握度 */ + @Excel(name = "项目把握度") + private String projectGraspDegree; /** 项目阶段 */ @Excel(name = "项目阶段") private String projectStage; - /** 项目把握度 */ - @Excel(name = "项目把握度") - private String projectGraspDegree; + /** 汇智支撑人员id */ @Excel(name = "汇智支撑人员id") @@ -112,6 +112,7 @@ public class ProjectInfo extends BaseEntity /** 项目描述 */ @Excel(name = "项目描述") private String projectDesc; + private Boolean highlight; /** 软件项目产品信息 */ private List softwareProjectProductInfoList; /** 硬件项目产品信息 */ diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IProjectInfoService.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IProjectInfoService.java index dd477015..00abaa16 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IProjectInfoService.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IProjectInfoService.java @@ -58,4 +58,6 @@ public interface IProjectInfoService * @return 结果 */ public int deleteProjectInfoById(Long id); + + List selectProjectInfoExportList(ProjectInfo projectInfo); } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectInfoServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectInfoServiceImpl.java index 8a40cdff..6321134d 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectInfoServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectInfoServiceImpl.java @@ -1,24 +1,27 @@ package com.ruoyi.sip.service.impl; -import java.math.BigDecimal; -import java.util.*; -import java.util.stream.Collectors; -import java.util.stream.Stream; - import cn.hutool.core.collection.CollUtil; import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DictUtils; import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.sip.domain.*; +import com.ruoyi.sip.mapper.ProjectInfoMapper; +import com.ruoyi.sip.service.IProjectInfoService; import com.ruoyi.sip.service.IProjectOperateLogService; import com.ruoyi.sip.service.IProjectProductInfoService; import com.ruoyi.sip.service.IProjectWorkProgressService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ruoyi.sip.mapper.ProjectInfoMapper; -import com.ruoyi.sip.service.IProjectInfoService; -import com.ruoyi.common.core.text.Convert; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.Period; +import java.time.ZoneId; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** * 项目管理Service业务层处理 @@ -77,7 +80,15 @@ public class ProjectInfoServiceImpl implements IProjectInfoService { */ @Override public List selectProjectInfoList(ProjectInfo projectInfo) { - return projectInfoMapper.selectProjectInfoList(projectInfo); + //todo 生成订单按钮置灰查询 + List projectInfos = projectInfoMapper.selectProjectInfoList(projectInfo); + LocalDate now = LocalDate.now(); + for (ProjectInfo info : projectInfos) { + LocalDate localDate = info.getUpdateTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + Period between = Period.between(localDate, now); + info.setHighlight(between.getMonths() >= 2); + } + return projectInfos; } /** @@ -89,6 +100,16 @@ public class ProjectInfoServiceImpl implements IProjectInfoService { @Override public int insertProjectInfo(ProjectInfo projectInfo) { //生成项目编码 + setProjectCode(projectInfo); + projectInfo.setCreateTime(DateUtils.getNowDate()); + projectInfo.setUpdateTime(DateUtils.getNowDate()); + projectInfo.setCreateBy(ShiroUtils.getUserId().toString()); + int i = projectInfoMapper.insertProjectInfo(projectInfo); + saveOtherInfo(projectInfo); + return i; + } + + private void setProjectCode(ProjectInfo projectInfo) { String s = projectInfoMapper.selectMaxProjectCode(projectInfo); if (s == null) { projectInfo.setProjectCode(PROJECT_CODE_PREFIX + "00001"); @@ -96,11 +117,6 @@ public class ProjectInfoServiceImpl implements IProjectInfoService { projectInfo.setProjectCode(PROJECT_CODE_PREFIX + String.format("%0" + PROJECT_CODE_LENGTH + "d", Integer.parseInt(s.substring(PROJECT_CODE_PREFIX.length())) + 1)); } - projectInfo.setCreateTime(DateUtils.getNowDate()); - projectInfo.setCreateBy(ShiroUtils.getUserId().toString()); - int i = projectInfoMapper.insertProjectInfo(projectInfo); - saveOtherInfo(projectInfo); - return i; } private void saveOtherInfo(ProjectInfo projectInfo1) { @@ -142,9 +158,22 @@ public class ProjectInfoServiceImpl implements IProjectInfoService { @Override public int updateProjectInfo(ProjectInfo projectInfo) { // 获取更新前的项目信息 - ProjectInfo oldProjectInfo = projectInfoMapper.selectProjectInfoById(projectInfo.getId()); + ProjectInfo oldProjectInfo = this.selectProjectInfoById(projectInfo.getId()); + //变更属地校验 + if (!projectInfo.getProvince().equals(oldProjectInfo.getProvince())) { + //todo 查询订单信息 如果有抛出异常 + //如果没有 变更编码 是否考虑高并发加锁 + setProjectCode(projectInfo); + } + + + int newWorkSize = projectInfo.getProjectWorkProgressList() == null ? 0 : projectInfo.getProjectWorkProgressList().size(); + int existWorkSize = oldProjectInfo.getProjectWorkProgressList() == null ? 0 : oldProjectInfo.getProjectWorkProgressList().size(); + boolean changeWork = newWorkSize > existWorkSize; // 更新项目信息 - projectInfo.setUpdateTime(DateUtils.getNowDate()); + if (changeWork) { + projectInfo.setUpdateTime(DateUtils.getNowDate()); + } int result = projectInfoMapper.updateProjectInfo(projectInfo); //变更其它信息 saveOtherInfo(projectInfo); @@ -315,4 +344,19 @@ public class ProjectInfoServiceImpl implements IProjectInfoService { public int deleteProjectInfoById(Long id) { return projectInfoMapper.deleteProjectInfoById(id); } + + @Override + public List selectProjectInfoExportList(ProjectInfo projectInfo) { + List projectInfos = projectInfoMapper.selectProjectInfoList(projectInfo); + for (ProjectInfo info : projectInfos) { + info.setIndustryType(DictUtils.getDictLabel(INDUSTRY_TYPE_DICT_TYPE, info.getIndustryType())); + info.setProjectStage(DictUtils.getDictLabel(PROJECT_STAGE_DICT_TYPE, info.getIndustryType())); + if (info.getHzSupportUser() != null) { + List sysUsers = projectInfoMapper.selectUserById(Collections.singletonList(info.getHzSupportUser())); + Map userMap = sysUsers.stream().collect(Collectors.toMap(item -> item.getUserId().toString(), SysUser::getUserName)); + info.setHzSupportUser(userMap.getOrDefault(info.getHzSupportUser(), "")); + } + } + return projectInfos; + } } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectProductInfoServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectProductInfoServiceImpl.java index 197cb894..b3d4d7e9 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectProductInfoServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectProductInfoServiceImpl.java @@ -105,9 +105,6 @@ public class ProjectProductInfoServiceImpl implements IProjectProductInfoService } //新增数据 projectProductInfoMapper.saveBatch(addList); - //todo 记录变更信息 - - } }