From d2543bf964381057e5ada034b088ff1653bab2d8 Mon Sep 17 00:00:00 2001 From: PoffyZhang <99775271@qq.com> Date: Tue, 4 Apr 2023 10:39:47 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E5=8D=95=E4=BD=8D=E8=A6=81=E5=88=A4?= =?UTF-8?q?=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/PrequalificationDeclaredProjectManage.java | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/PrequalificationDeclaredProjectManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/PrequalificationDeclaredProjectManage.java index 4811bd3..b5764e9 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/PrequalificationDeclaredProjectManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/PrequalificationDeclaredProjectManage.java @@ -2,23 +2,16 @@ package com.ningdatech.pmapi.projectdeclared.manage; import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.TypeReference; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ningdatech.basic.function.VUtils; import com.ningdatech.basic.model.PageVo; import com.ningdatech.basic.util.NdDateUtils; -import com.ningdatech.pmapi.common.constant.CommonConst; -import com.ningdatech.pmapi.common.enumeration.ProjectProcessStageEnum; import com.ningdatech.pmapi.common.helper.UserInfoHelper; import com.ningdatech.pmapi.common.statemachine.util.StateMachineUtils; import com.ningdatech.pmapi.common.util.ExcelDownUtil; import com.ningdatech.pmapi.common.util.ExcelExportStyle; -import com.ningdatech.pmapi.projectdeclared.model.dto.DeclaredProjectExportDTO; import com.ningdatech.pmapi.projectdeclared.model.dto.DefaultDeclaredDTO; import com.ningdatech.pmapi.projectdeclared.model.dto.PretrialDeclaredExportDTO; -import com.ningdatech.pmapi.projectdeclared.model.dto.ProjectConditionDTO; import com.ningdatech.pmapi.projectdeclared.model.req.PrequalificationDeclaredListReq; import com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum; import com.ningdatech.pmapi.projectlib.enumeration.ProjectTypeEnum; @@ -26,33 +19,22 @@ import com.ningdatech.pmapi.projectlib.helper.ProjectHelper; import com.ningdatech.pmapi.projectlib.manage.ProjectLibManage; import com.ningdatech.pmapi.projectlib.model.dto.ProjectDTO; import com.ningdatech.pmapi.projectlib.model.entity.Project; -import com.ningdatech.pmapi.projectlib.model.entity.ProjectInst; import com.ningdatech.pmapi.projectlib.model.req.ProjectListReq; import com.ningdatech.pmapi.projectlib.model.vo.ProjectLibListItemVO; -import com.ningdatech.pmapi.projectlib.service.IProjectInstService; import com.ningdatech.pmapi.projectlib.service.IProjectService; import com.ningdatech.pmapi.staging.service.IProjectStagingService; import com.ningdatech.pmapi.user.security.auth.model.UserFullInfoDTO; -import com.ningdatech.pmapi.user.security.auth.model.UserInfoDetails; import com.ningdatech.pmapi.user.util.LoginUserUtil; -import com.wflow.bean.entity.WflowModels; import com.wflow.exception.BusinessException; -import com.wflow.workflow.bean.dto.OrgInfoDTO; -import com.wflow.workflow.bean.vo.ProcessStartParamsVo; -import com.wflow.workflow.service.ProcessInstanceService; -import com.wflow.workflow.service.ProcessModelService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; - import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.time.LocalDateTime; -import java.util.Collections; import java.util.List; -import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; @@ -108,7 +90,6 @@ public class PrequalificationDeclaredProjectManage { VUtils.isTrue(!ProjectStatusEnum.PENDING_PREQUALIFICATION.getCode().equals(projectInfo.getStatus()) || !ProjectStatusEnum.NOT_APPROVED.getCode().equals(projectInfo.getStage())) .throwMessage("提交失败 该项目不是 待预审状态或者未立项阶段"); - //TODO 再判断 该项目是否 真实走完 单位内部审批 //使用状态机 进入下一步 看看需不需要走省级审批 stateMachineUtils.pass(projectInfo); From 20ea994acc7889ee35d4a5f0b45a33cc0c04b59d Mon Sep 17 00:00:00 2001 From: PoffyZhang <99775271@qq.com> Date: Tue, 4 Apr 2023 11:46:43 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=8D=95=E4=BD=8D=E8=A6=81=E5=88=A4?= =?UTF-8?q?=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ningdatech/pmapi/projectdeclared/manage/DeclaredProjectManage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/DeclaredProjectManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/DeclaredProjectManage.java index 9037a04..3db3a2a 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/DeclaredProjectManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/DeclaredProjectManage.java @@ -278,7 +278,7 @@ public class DeclaredProjectManage { projectApplication.setProjectId(project.getId()); return projectApplication; }).collect(Collectors.toList()); - projectApplicationService.saveBatch(applications); + projectApplicationService.saveOrUpdateBatch(applications); } //保存项目和实例的关系 ProjectInst projectInst = new ProjectInst(); From fff515c869334bce267efe5c13ad7f9253a3b144 Mon Sep 17 00:00:00 2001 From: WendyYang Date: Tue, 4 Apr 2023 13:35:59 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E5=9B=9E=E9=81=BF=E5=8D=95=E4=BD=8D?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pmapi/meeting/manage/ExpertInviteManage.java | 50 +++++++--------------- .../pmapi/meeting/mapper/MeetingExpertMapper.xml | 2 +- 2 files changed, 17 insertions(+), 35 deletions(-) diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/manage/ExpertInviteManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/manage/ExpertInviteManage.java index ac0a65b..161c061 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/manage/ExpertInviteManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/manage/ExpertInviteManage.java @@ -67,7 +67,7 @@ public class ExpertInviteManage { private final ExpertInviteHelper expertInviteHelper; private final IExpertUserFullInfoService expertUserFullInfoService; private final IMeetingService meetingService; - private final IExpertAvoidCompanyService iExpertAvoidCompanyService; + private final IExpertAvoidCompanyService expertAvoidCompanyService; private final YxtCallOrSmsHelper yxtCallOrSmsHelper; private static final Predicate> COLL_EMPTY = (coll) -> coll != null && coll.isEmpty(); @@ -114,27 +114,17 @@ public class ExpertInviteManage { /** * 如果抽取回避单位和专家回避单位一致,同样需要回避该专家 * - * @param companyNames / + * @param unitCodeList / * @return / */ - private List avoidCompanyExpertIds(List companyNames) { - if (CollUtil.isEmpty(companyNames)) { + private List avoidCompanyExpertIds(List unitCodeList) { + if (CollUtil.isEmpty(unitCodeList)) { return new ArrayList<>(); } - List dealCompanyNames = new ArrayList<>(); - for (String companyName : companyNames) { - if (companyName.contains(",")) { - String[] splitCompanyNames = companyName.split(","); - for (String splitCompanyName : splitCompanyNames) { - dealCompanyNames.add(splitCompanyName); - } - } else { - dealCompanyNames.add(companyName); - } - } - List expertAvoidCompanyList = iExpertAvoidCompanyService.list(Wrappers.lambdaQuery(ExpertAvoidCompany.class) - .in(ExpertAvoidCompany::getCompanyName, dealCompanyNames)); - return expertAvoidCompanyList.stream().map(ExpertAvoidCompany::getUserId).distinct().collect(Collectors.toList()); + LambdaQueryWrapper query = Wrappers.lambdaQuery(ExpertAvoidCompany.class) + .in(ExpertAvoidCompany::getCompanyUniqCode, unitCodeList); + List expertAvoidCompanyList = expertAvoidCompanyService.list(query); + return CollUtils.fieldList(expertAvoidCompanyList, ExpertAvoidCompany::getUserId); } private List mergeExpertIdsByCondition(RandomInviteRuleDTO rule, AvoidRuleDTO avoidInfo) { @@ -268,22 +258,14 @@ public class ExpertInviteManage { boolean avoidCompany = CollUtil.isNotEmpty(avoidRule.getAvoidUnitIdList()); Set tmpAvoidCompany = new HashSet<>(); if (avoidCompany) { - List companyIds = avoidRule.getAvoidUnitIdList(); - for (String companyId : companyIds) { - if (companyId.contains(",")) { - String[] splitCompanyIds = companyId.split(","); - Collections.addAll(tmpAvoidCompany, splitCompanyIds); - } else { - tmpAvoidCompany.add(companyId); - } - } + tmpAvoidCompany.addAll(avoidRule.getAvoidUnitIdList()); } // 回避信息 LambdaQueryWrapper query = buildBaseExpertQuery(); - query.notIn(!tmpAvoidCompany.isEmpty(), ExpertUserFullInfo::getCompany, tmpAvoidCompany); + query.notIn(!tmpAvoidCompany.isEmpty(), ExpertUserFullInfo::getCompanyUniqCode, tmpAvoidCompany); if (avoidCompany) { query.notExists("select 1 from expert_avoid_company eac where eac.user_id = nd_expert_user_full_info.user_id" + - " and company_name in ({0})", CollUtils.joinByComma(avoidRule.getAvoidUnitIdList())); + " and company_uniq_code in ({0})", CollUtils.joinByComma(avoidRule.getAvoidUnitIdList())); } // 处理专家层级 addRegionLimit(query, randomRule); @@ -322,7 +304,7 @@ public class ExpertInviteManage { if (userInfoList.isEmpty()) { return result; } - Map> userGroupByUnit = CollUtils.group(userInfoList, ExpertUserFullInfo::getCompany); + Map> userGroupByUnit = CollUtils.group(userInfoList, ExpertUserFullInfo::getCompanyUniqCode); result.setTotal(userInfoList.size()); // count为空表示数量校验 if (randomRule.getCount() == null || result.getTotal() >= randomRule.getCount()) { @@ -357,9 +339,9 @@ public class ExpertInviteManage { return result; } LambdaQueryWrapper query = buildBaseExpertQuery(); - query.notIn(ExpertUserFullInfo::getCompany, avoidRule.getAvoidUnitIdList()); + query.notIn(ExpertUserFullInfo::getCompanyUniqCode, avoidRule.getAvoidUnitIdList()); query.notExists("select 1 from expert_avoid_company eac where eac.user_id = nd_expert_user_full_info.user_id" + - " and company_name in ({0})", CollUtils.joinByComma(avoidRule.getAvoidOrgIdList())); + " and company_uniq_code in ({0})", CollUtils.joinByComma(avoidRule.getAvoidOrgIdList())); // 处理专家层级 if (StrUtils.isNotBlank(randomRule.getExpertRegionCode())) { @@ -411,7 +393,7 @@ public class ExpertInviteManage { List tempExpertIds = CollUtils.fieldList(removeExpertByCompany, MeetingExpert::getExpertId); // 移除确认参加、通知中的、拒绝参加、已取消 userFullInfos.removeIf(w -> tempExpertIds.contains(w.getUserId()) || removeExpertIds.contains(w.getUserId())); - Map> userGroupByUnit = CollUtils.group(userFullInfos, ExpertUserFullInfo::getCompany); + Map> userGroupByUnit = CollUtils.group(userFullInfos, ExpertUserFullInfo::getCompanyUniqCode); result.setTotal(userGroupByUnit.size()); result.setExperts(inviteGroupByCompany(userGroupByUnit, count)); return result; @@ -439,7 +421,7 @@ public class ExpertInviteManage { * * @param expertGroupByUnit 需要抽取的人 * @param count 抽取数量 - * @return java.util.List + * @return 抽取到的专家信息 * @author WendyYang **/ private List inviteGroupByCompany(Map> expertGroupByUnit, Integer count) { diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/mapper/MeetingExpertMapper.xml b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/mapper/MeetingExpertMapper.xml index e8420d5..e371beb 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/mapper/MeetingExpertMapper.xml +++ b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/mapper/MeetingExpertMapper.xml @@ -67,7 +67,7 @@ From f063964861887afb31db25dd809d0e6059171e4a Mon Sep 17 00:00:00 2001 From: WendyYang Date: Tue, 4 Apr 2023 13:58:57 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=8A=BD=E5=8F=96=E4=B8=93=E5=AE=B6?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=A2=9E=E5=8A=A0=E4=B8=93=E5=AE=B6=E7=BB=84?= =?UTF-8?q?=E9=95=BF=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ningdatech/pmapi/meeting/entity/vo/InviteExpertListItemVO.java | 3 +++ .../main/java/com/ningdatech/pmapi/meeting/manage/MeetingManage.java | 1 + 2 files changed, 4 insertions(+) diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/vo/InviteExpertListItemVO.java b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/vo/InviteExpertListItemVO.java index 15295e7..8170155 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/vo/InviteExpertListItemVO.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/vo/InviteExpertListItemVO.java @@ -29,6 +29,9 @@ public class InviteExpertListItemVO extends ExpertBasicInfoVO { @ApiModelProperty("手机号") private String mobile; + @ApiModelProperty("是否是专家组长") + private Boolean isHeadman; + @ApiModelProperty("专家会议ID") private Long expertMeetingId; diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/manage/MeetingManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/manage/MeetingManage.java index 8440879..464634e 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/manage/MeetingManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/manage/MeetingManage.java @@ -456,6 +456,7 @@ public class MeetingManage { item.setMobile(me.getMobile()); item.setNoticeTime(me.getCreateOn()); item.setRuleId(me.getRuleId()); + item.setIsHeadman(me.getIsHeadman()); if (NOTICING.eq(me.getStatus())) { item.setNoticeStatus("通知中"); } else { From a5dc596ffe3ebd0282c1f7a61caf15c92c6139a0 Mon Sep 17 00:00:00 2001 From: PoffyZhang <99775271@qq.com> Date: Tue, 4 Apr 2023 14:48:59 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E9=A2=84=E5=AE=A1=20=E5=BB=BA=E8=AE=BE?= =?UTF-8?q?=E6=96=B9=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pmapi/projectdeclared/manage/ConstructionPlanManage.java | 3 +++ .../projectdeclared/manage/PrequalificationDeclaredProjectManage.java | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/ConstructionPlanManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/ConstructionPlanManage.java index ed11320..570d09c 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/ConstructionPlanManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/ConstructionPlanManage.java @@ -107,6 +107,9 @@ public class ConstructionPlanManage { String regionCode = projectInfo.getAreaCode(); + //放入文件 + projectInfo.setConstructionPlanFile(projectDto.getConstructionPlanFile()); + WflowModels model = processModelService.getOne(Wrappers.lambdaQuery(WflowModels.class) .eq(WflowModels::getRegionCode, regionCode) .eq(WflowModels::getProcessType, ProjectProcessStageEnum.CONSTRUCTION_PROJECT_APPROVAL_PROCESS.getCode()) diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/PrequalificationDeclaredProjectManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/PrequalificationDeclaredProjectManage.java index b5764e9..809fd76 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/PrequalificationDeclaredProjectManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/PrequalificationDeclaredProjectManage.java @@ -91,7 +91,8 @@ public class PrequalificationDeclaredProjectManage { !ProjectStatusEnum.NOT_APPROVED.getCode().equals(projectInfo.getStage())) .throwMessage("提交失败 该项目不是 待预审状态或者未立项阶段"); - //使用状态机 进入下一步 看看需不需要走省级审批 + //使用状态机 进入下一步 看看需不需要走省级审批 放入文件 + projectInfo.setHigherLineSuperOrgReviewComments(projectDto.getHigherLineSuperOrgReviewComments()); stateMachineUtils.pass(projectInfo); String instanceId = null; //如果是省级部门 需要联审的(申报金额大于1000万 并且是市级项目)