待办中心-认证参数-查询优化
This commit is contained in:
@@ -1219,6 +1219,13 @@ CREATE TABLE `laws_weilai`.`process_info_detail` (
|
|||||||
PRIMARY KEY (`id`) USING BTREE
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '流程信息明细表' ROW_FORMAT = Dynamic;
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '流程信息明细表' ROW_FORMAT = Dynamic;
|
||||||
|
|
||||||
|
-- 参数项收集清单 添加索引 2022-10-14 未同步生产环境
|
||||||
|
ALTER TABLE `laws_weilai`.`params_collect_manifest`
|
||||||
|
ADD INDEX `index_pcm_nio_number`(`nio_number`) USING BTREE,
|
||||||
|
ADD INDEX `index_pcm_state`(`state`) USING BTREE,
|
||||||
|
ADD INDEX `index_pcm_sdt_dre`(`sdt`, `dre`) USING BTREE,
|
||||||
|
ADD INDEX `index_pcm_manifest_id`(`params_manifest_id`) USING BTREE;
|
||||||
|
|
||||||
-- 待办中心 流程信息明细表 增加字段 2022-10-18 未同步生产环境
|
-- 待办中心 流程信息明细表 增加字段 2022-10-18 未同步生产环境
|
||||||
ALTER TABLE `laws_weilai`.`process_info_detail`
|
ALTER TABLE `laws_weilai`.`process_info_detail`
|
||||||
ADD COLUMN `end_time` datetime NULL COMMENT '截止时间' AFTER `flow_type`;
|
ADD COLUMN `end_time` datetime NULL COMMENT '截止时间' AFTER `flow_type`;
|
||||||
|
|||||||
+2
@@ -18,6 +18,8 @@ public interface ParamsCollectManifestEOMapper extends BaseMapper<ParamsCollectM
|
|||||||
|
|
||||||
List<ParamsCollectManifestEO> listInfo(@Param("paramsCollectManifestEO") ParamsCollectManifestEO paramsCollectManifestEO);
|
List<ParamsCollectManifestEO> listInfo(@Param("paramsCollectManifestEO") ParamsCollectManifestEO paramsCollectManifestEO);
|
||||||
|
|
||||||
|
List<ParamsCollectManifestEO> listInfoOfTodoCenter();
|
||||||
|
|
||||||
List<Map<String, Object>> listInfoForExport(@Param("paramsCollectManifestEO") ParamsCollectManifestEO paramsCollectManifestEO);
|
List<Map<String, Object>> listInfoForExport(@Param("paramsCollectManifestEO") ParamsCollectManifestEO paramsCollectManifestEO);
|
||||||
|
|
||||||
// 查询控件类型为 标题的 参数项
|
// 查询控件类型为 标题的 参数项
|
||||||
|
|||||||
+4
@@ -80,6 +80,10 @@
|
|||||||
order by del_flag desc, add_flag desc, change_flag desc, nio_number asc
|
order by del_flag desc, add_flag desc, change_flag desc, nio_number asc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="listInfoOfTodoCenter" resultMap="ParamsCollectManifestEOResultMap">
|
||||||
|
select id,nio_number,state,sdt,dre,params_manifest_id from params_collect_manifest
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="listInfoForExport" resultType="java.util.LinkedHashMap">
|
<select id="listInfoForExport" resultType="java.util.LinkedHashMap">
|
||||||
select *
|
select *
|
||||||
from params_collect_manifest
|
from params_collect_manifest
|
||||||
|
|||||||
+63
-25
@@ -1,6 +1,7 @@
|
|||||||
package com.jero.modules.todoCenter.service.impl;
|
package com.jero.modules.todoCenter.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
@@ -65,33 +66,48 @@ public class ParamsManifestTodoCenterServiceImpl implements IParamsManifestTodoC
|
|||||||
List<ParamsManifestTodoCenterEO> paramsManifestEOList = new ArrayList<>();
|
List<ParamsManifestTodoCenterEO> paramsManifestEOList = new ArrayList<>();
|
||||||
List<ProjectLibraryBase> projectLibraryBaseList = new ArrayList<>();
|
List<ProjectLibraryBase> projectLibraryBaseList = new ArrayList<>();
|
||||||
Map<String, Boolean> manifestUserTypeOfHomo = new HashMap<>();
|
Map<String, Boolean> manifestUserTypeOfHomo = new HashMap<>();
|
||||||
|
Map<String, Boolean> manifestUserTypeOfSdt = new HashMap<>();
|
||||||
|
Map<String, Boolean> manifestUserTypeOfDre = new HashMap<>();
|
||||||
|
Map<String, List<ParamsCollectManifestEO>> paramsManifestEOListMap = new HashMap<>();
|
||||||
|
|
||||||
|
// 查询清单的所有参数项
|
||||||
|
List<ParamsCollectManifestEO> pcmListAll = paramsCollectManifestEOMapper.listInfoOfTodoCenter();
|
||||||
|
|
||||||
String userType = "";
|
String userType = "";
|
||||||
for(ParamsManifestTodoCenterEO paramsManifestEO : paramsManifestEOListAll) {
|
for(ParamsManifestTodoCenterEO paramsManifestEO : paramsManifestEOListAll) {
|
||||||
|
// 查询清单的所有参数项
|
||||||
|
List<ParamsCollectManifestEO> pcmList = pcmListAll.stream().filter(e->paramsManifestEO.getId().equals(e.getParamsManifestId())).collect(Collectors.toList());
|
||||||
|
int count1 = (int) pcmList.stream().filter(e-> CollectManifestStateEnum.SUBMIT.getValue().equals(e.getState())
|
||||||
|
|| CollectManifestStateEnum.SYNC_REPORT.getValue().equals(e.getState())).count();
|
||||||
|
if (count1 == pcmList.size()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
// 判断是不是homo角色
|
// 判断是不是homo角色
|
||||||
projectLibraryBaseList = projectLibraryBaseListAll.stream().filter(e->paramsManifestEO.getProjectId().equals(e.getId())).collect(Collectors.toList());
|
projectLibraryBaseList = projectLibraryBaseListAll.stream().filter(e->paramsManifestEO.getProjectId().equals(e.getId())).collect(Collectors.toList());
|
||||||
userType = getLoginUserTypeOfHomo(projectLibraryBaseList, loginUser);
|
userType = getLoginUserTypeOfHomo(projectLibraryBaseList, loginUser);
|
||||||
if(StringUtils.isNotBlank(userType)) {
|
if(StringUtils.isNotBlank(userType)) {
|
||||||
paramsManifestEOList.add(paramsManifestEO);
|
paramsManifestEOList.add(paramsManifestEO);
|
||||||
manifestUserTypeOfHomo.put(paramsManifestEO.getId(), true);
|
manifestUserTypeOfHomo.put(paramsManifestEO.getId(), true);
|
||||||
|
paramsManifestEOListMap.put(paramsManifestEO.getId(), pcmList);
|
||||||
continue;
|
continue;
|
||||||
} else {
|
|
||||||
manifestUserTypeOfHomo.put(paramsManifestEO.getId(), false);
|
|
||||||
}
|
}
|
||||||
// 查询清单的所有参数项
|
|
||||||
ParamsCollectManifestEO paramsCollectManifestEO = new ParamsCollectManifestEO();
|
|
||||||
paramsCollectManifestEO.setParamsManifestId(paramsManifestEO.getId());
|
|
||||||
List<ParamsCollectManifestEO> pcmList = paramsCollectManifestEOMapper.listInfo(paramsCollectManifestEO);
|
|
||||||
// 判断是不是sdt角色
|
// 判断是不是sdt角色
|
||||||
userType = getLoginUserTypeOfSdt(pcmList, loginUser);
|
userType = getLoginUserTypeOfSdt(pcmList, loginUser);
|
||||||
if(StringUtils.isNotBlank(userType)) {
|
if(StringUtils.isNotBlank(userType)) {
|
||||||
paramsManifestEOList.add(paramsManifestEO);
|
paramsManifestEOList.add(paramsManifestEO);
|
||||||
|
manifestUserTypeOfSdt.put(paramsManifestEO.getId(), true);
|
||||||
|
paramsManifestEOListMap.put(paramsManifestEO.getId(), pcmList);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 判断是不是dre角色
|
// 判断是不是dre角色
|
||||||
userType = getLoginUserTypeOfDre(pcmList, loginUser);
|
userType = getLoginUserTypeOfDre(pcmList, loginUser);
|
||||||
if(StringUtils.isNotBlank(userType)) {
|
if(StringUtils.isNotBlank(userType)) {
|
||||||
paramsManifestEOList.add(paramsManifestEO);
|
paramsManifestEOList.add(paramsManifestEO);
|
||||||
|
manifestUserTypeOfDre.put(paramsManifestEO.getId(), true);
|
||||||
|
paramsManifestEOListMap.put(paramsManifestEO.getId(), pcmList);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -119,45 +135,67 @@ public class ParamsManifestTodoCenterServiceImpl implements IParamsManifestTodoC
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 统计清单中的待办参数数据
|
// 统计清单中的待办参数数据
|
||||||
List<ParamsManifestTodoCenterEO> records = getStatistics(result, manifestUserTypeOfHomo, loginUser);
|
List<ParamsManifestTodoCenterEO> records = getStatistics(result, manifestUserTypeOfHomo, manifestUserTypeOfSdt, manifestUserTypeOfDre, paramsManifestEOListMap,loginUser);
|
||||||
page.setRecords(records);
|
page.setRecords(records);
|
||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public List<ParamsManifestTodoCenterEO> getStatistics(List<ParamsManifestTodoCenterEO> paramsManifestEOList, Map<String, Boolean> manifestUserTypeOfHomo, LoginUser loginUser) {
|
public List<ParamsManifestTodoCenterEO> getStatistics(List<ParamsManifestTodoCenterEO> paramsManifestEOList, Map<String, Boolean> manifestUserTypeOfHomo
|
||||||
|
,Map<String, Boolean> manifestUserTypeOfSdt, Map<String, Boolean> manifestUserTypeOfDre, Map<String, List<ParamsCollectManifestEO>> paramsManifestEOListMap, LoginUser loginUser) {
|
||||||
List<ParamsManifestTodoCenterEO> paramsManifestTodoCenterEOList = new ArrayList<>();
|
List<ParamsManifestTodoCenterEO> paramsManifestTodoCenterEOList = new ArrayList<>();
|
||||||
|
|
||||||
for(ParamsManifestTodoCenterEO paramsManifestTodoCenterEO : paramsManifestEOList) {
|
for(ParamsManifestTodoCenterEO paramsManifestTodoCenterEO : paramsManifestEOList) {
|
||||||
// 查询清单的所有参数项
|
// 查询清单的所有参数项
|
||||||
ParamsCollectManifestEO paramsCollectManifestEO = new ParamsCollectManifestEO();
|
ParamsCollectManifestEO paramsCollectManifestEO = new ParamsCollectManifestEO();
|
||||||
paramsCollectManifestEO.setParamsManifestId(paramsManifestTodoCenterEO.getId());
|
paramsCollectManifestEO.setParamsManifestId(paramsManifestTodoCenterEO.getId());
|
||||||
List<ParamsCollectManifestEO> pcmList = paramsCollectManifestEOMapper.listInfo(paramsCollectManifestEO);
|
List<ParamsCollectManifestEO> pcmList = paramsManifestEOListMap.get(paramsManifestTodoCenterEO.getId());
|
||||||
int count = 0;
|
int count = 0;
|
||||||
// 统计待发起数量 包括状态:待发起收集,变更,工程接口人退回
|
|
||||||
if (manifestUserTypeOfHomo.get(paramsManifestTodoCenterEO.getId())) {
|
if (ObjectUtil.isNotEmpty(paramsManifestTodoCenterEO.getId()) && manifestUserTypeOfHomo.get(paramsManifestTodoCenterEO.getId())) {
|
||||||
|
// 统计待发起数量 包括状态:待发起收集,变更,工程接口人退回
|
||||||
count = (int) pcmList.stream().filter(e-> CollectManifestStateEnum.WAIT_COLLECT.getValue().equals(e.getState())
|
count = (int) pcmList.stream().filter(e-> CollectManifestStateEnum.WAIT_COLLECT.getValue().equals(e.getState())
|
||||||
|| CollectManifestStateEnum.SDT_BACK.getValue().equals(e.getState())
|
|| CollectManifestStateEnum.SDT_BACK.getValue().equals(e.getState())
|
||||||
|| CollectManifestStateEnum.CHANGE.getValue().equals(e.getState())).count();
|
|| CollectManifestStateEnum.CHANGE.getValue().equals(e.getState())).count();
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
paramsManifestTodoCenterEO.setWaitCollectNum(count);
|
paramsManifestTodoCenterEO.setWaitCollectNum(count);
|
||||||
}
|
}
|
||||||
}
|
// 统计待分配数量 包括状态:待工程接口人处理,填写人退回
|
||||||
|
count = (int) pcmList.stream().filter(e-> (CollectManifestStateEnum.WAIT_SDT.getValue().equals(e.getState())
|
||||||
|
|| CollectManifestStateEnum.DRE_BACK.getValue().equals(e.getState()))).count();
|
||||||
|
if (count > 0) {
|
||||||
|
paramsManifestTodoCenterEO.setWaitSdtNum(count);
|
||||||
|
}
|
||||||
|
// 统计待填写数量 包括状态:待填写,认证工程师退回
|
||||||
|
count = (int) pcmList.stream().filter(e-> (CollectManifestStateEnum.WAIT_FILL.getValue().equals(e.getState())
|
||||||
|
|| CollectManifestStateEnum.CERT_BACK.getValue().equals(e.getState()))).count();
|
||||||
|
if (count > 0) {
|
||||||
|
paramsManifestTodoCenterEO.setWaitFillNum(count);
|
||||||
|
}
|
||||||
|
} else if (ObjectUtil.isNotEmpty(paramsManifestTodoCenterEO.getId()) && manifestUserTypeOfSdt.get(paramsManifestTodoCenterEO.getId())) {
|
||||||
|
// 统计待分配数量 包括状态:待工程接口人处理,填写人退回
|
||||||
|
count = (int) pcmList.stream().filter(e-> (CollectManifestStateEnum.WAIT_SDT.getValue().equals(e.getState())
|
||||||
|
|| CollectManifestStateEnum.DRE_BACK.getValue().equals(e.getState()))
|
||||||
|
&& loginUser.getUsername().equals(e.getSdt())).count();
|
||||||
|
if (count > 0) {
|
||||||
|
paramsManifestTodoCenterEO.setWaitSdtNum(count);
|
||||||
|
}
|
||||||
|
// 统计待填写数量 包括状态:待填写,认证工程师退回
|
||||||
|
count = (int) pcmList.stream().filter(e-> (CollectManifestStateEnum.WAIT_FILL.getValue().equals(e.getState())
|
||||||
|
|| CollectManifestStateEnum.CERT_BACK.getValue().equals(e.getState()))).count();
|
||||||
|
if (count > 0) {
|
||||||
|
paramsManifestTodoCenterEO.setWaitFillNum(count);
|
||||||
|
}
|
||||||
|
|
||||||
// 统计待分配数量 包括状态:待工程接口人处理,填写人退回
|
} else if (ObjectUtil.isNotEmpty(paramsManifestTodoCenterEO.getId()) && manifestUserTypeOfDre.get(paramsManifestTodoCenterEO.getId())) {
|
||||||
count = (int) pcmList.stream().filter(e-> (CollectManifestStateEnum.WAIT_SDT.getValue().equals(e.getState())
|
// 统计待填写数量 包括状态:待填写,认证工程师退回
|
||||||
|| CollectManifestStateEnum.DRE_BACK.getValue().equals(e.getState()))
|
count = (int) pcmList.stream().filter(e-> (CollectManifestStateEnum.WAIT_FILL.getValue().equals(e.getState())
|
||||||
&& loginUser.getUsername().equals(e.getSdt())).count();
|
|| CollectManifestStateEnum.CERT_BACK.getValue().equals(e.getState()))
|
||||||
if (count > 0) {
|
&& loginUser.getUsername().equals(e.getDre())).count();
|
||||||
paramsManifestTodoCenterEO.setWaitSdtNum(count);
|
if (count > 0) {
|
||||||
}
|
paramsManifestTodoCenterEO.setWaitFillNum(count);
|
||||||
|
}
|
||||||
|
|
||||||
// 统计待填写数量 包括状态:待填写,认证工程师退回
|
|
||||||
count = (int) pcmList.stream().filter(e-> (CollectManifestStateEnum.WAIT_FILL.getValue().equals(e.getState())
|
|
||||||
|| CollectManifestStateEnum.CERT_BACK.getValue().equals(e.getState()))
|
|
||||||
&& loginUser.getUsername().equals(e.getDre())).count();
|
|
||||||
if (count > 0) {
|
|
||||||
paramsManifestTodoCenterEO.setWaitFillNum(count);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
paramsManifestTodoCenterEOList.add(paramsManifestTodoCenterEO);
|
paramsManifestTodoCenterEOList.add(paramsManifestTodoCenterEO);
|
||||||
|
|||||||
Reference in New Issue
Block a user