Merge remote-tracking branch 'origin/feature_dev_20221008_TODO' into feature_dev_20221008_TODO

This commit is contained in:
wangzhijiang
2022-10-20 18:06:29 +08:00
8 changed files with 176 additions and 61 deletions
@@ -1219,6 +1219,13 @@ CREATE TABLE `laws_weilai`.`process_info_detail` (
PRIMARY KEY (`id`) USING BTREE
) 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 未同步生产环境
ALTER TABLE `laws_weilai`.`process_info_detail`
ADD COLUMN `end_time` datetime NULL COMMENT '截止时间' AFTER `flow_type`;
@@ -18,6 +18,8 @@ public interface ParamsCollectManifestEOMapper extends BaseMapper<ParamsCollectM
List<ParamsCollectManifestEO> listInfo(@Param("paramsCollectManifestEO") ParamsCollectManifestEO paramsCollectManifestEO);
List<ParamsCollectManifestEO> listInfoOfTodoCenter();
List<Map<String, Object>> listInfoForExport(@Param("paramsCollectManifestEO") ParamsCollectManifestEO paramsCollectManifestEO);
// 查询控件类型为 标题的 参数项
@@ -80,6 +80,10 @@
order by del_flag desc, add_flag desc, change_flag desc, nio_number asc
</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 *
from params_collect_manifest
@@ -1,6 +1,7 @@
package com.jero.modules.todoCenter.service.impl;
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.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -65,33 +66,48 @@ public class ParamsManifestTodoCenterServiceImpl implements IParamsManifestTodoC
List<ParamsManifestTodoCenterEO> paramsManifestEOList = new ArrayList<>();
List<ProjectLibraryBase> projectLibraryBaseList = new ArrayList<>();
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 = "";
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角色
projectLibraryBaseList = projectLibraryBaseListAll.stream().filter(e->paramsManifestEO.getProjectId().equals(e.getId())).collect(Collectors.toList());
userType = getLoginUserTypeOfHomo(projectLibraryBaseList, loginUser);
if(StringUtils.isNotBlank(userType)) {
paramsManifestEOList.add(paramsManifestEO);
manifestUserTypeOfHomo.put(paramsManifestEO.getId(), true);
paramsManifestEOListMap.put(paramsManifestEO.getId(), pcmList);
continue;
} else {
manifestUserTypeOfHomo.put(paramsManifestEO.getId(), false);
}
// 查询清单的所有参数项
ParamsCollectManifestEO paramsCollectManifestEO = new ParamsCollectManifestEO();
paramsCollectManifestEO.setParamsManifestId(paramsManifestEO.getId());
List<ParamsCollectManifestEO> pcmList = paramsCollectManifestEOMapper.listInfo(paramsCollectManifestEO);
// 判断是不是sdt角色
userType = getLoginUserTypeOfSdt(pcmList, loginUser);
if(StringUtils.isNotBlank(userType)) {
paramsManifestEOList.add(paramsManifestEO);
manifestUserTypeOfSdt.put(paramsManifestEO.getId(), true);
paramsManifestEOListMap.put(paramsManifestEO.getId(), pcmList);
continue;
}
// 判断是不是dre角色
userType = getLoginUserTypeOfDre(pcmList, loginUser);
if(StringUtils.isNotBlank(userType)) {
paramsManifestEOList.add(paramsManifestEO);
manifestUserTypeOfDre.put(paramsManifestEO.getId(), true);
paramsManifestEOListMap.put(paramsManifestEO.getId(), pcmList);
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);
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<>();
for(ParamsManifestTodoCenterEO paramsManifestTodoCenterEO : paramsManifestEOList) {
// 查询清单的所有参数项
ParamsCollectManifestEO paramsCollectManifestEO = new ParamsCollectManifestEO();
paramsCollectManifestEO.setParamsManifestId(paramsManifestTodoCenterEO.getId());
List<ParamsCollectManifestEO> pcmList = paramsCollectManifestEOMapper.listInfo(paramsCollectManifestEO);
List<ParamsCollectManifestEO> pcmList = paramsManifestEOListMap.get(paramsManifestTodoCenterEO.getId());
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())
|| CollectManifestStateEnum.SDT_BACK.getValue().equals(e.getState())
|| CollectManifestStateEnum.CHANGE.getValue().equals(e.getState())).count();
if (count > 0) {
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);
}
// 统计待分配数量 包括状态待工程接口人处理,填写人退回
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);
}
} else if (ObjectUtil.isNotEmpty(paramsManifestTodoCenterEO.getId()) && manifestUserTypeOfDre.get(paramsManifestTodoCenterEO.getId())) {
// 统计待填写数量 包括状态待填写,认证工程师退回
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);
}
// 统计待填写数量 包括状态待填写,认证工程师退回
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);
@@ -12,6 +12,8 @@
>
<!-- -->
<span slot="operation" slot-scope="text,record">
<a class="text-operation" v-if="record.flowType != '10'"
@click="monitoringProcessClick(record)">{{$t('monitoringProcess')}}</a>
<a class="text-operation"
@click="viewClick(record)">{{$t('view')}}</a>
</span>
@@ -120,6 +122,17 @@
this.getList()
},
methods: {
monitoringProcessClick(row) {
let newUrl = this.$router.resolve({
path: '/processDetails',
query: {
prcNum: row.prcNum,
prcType: row.flowType,
prcId: row.actiProcInstId
}
})
window.open(newUrl.href, '_blank')
},
RelatedItemsClick(item) {
let newUrl = this.$router.resolve({
path: '/ProjectDetails',
@@ -332,4 +345,7 @@
margin-top: 20px;
}
.text-operation {
margin-right: 8px;
}
</style>
@@ -12,9 +12,11 @@
>
<!-- -->
<span slot="operation" slot-scope="text,record">
<a class="text-operation" v-if="record.flowType != '10'"
@click="monitoringProcessClick(record)">{{$t('monitoringProcess')}}</a>
<a class="text-operation"
@click="viewClick(record)">{{$t('view')}}</a>
</span>
</span>
<span slot="RelatedItems" slot-scope="text,record">
<a @click="RelatedItemsClick(record)" :title="text">{{text}}</a>
</span>
@@ -120,6 +122,17 @@
this.getList()
},
methods: {
monitoringProcessClick(row){
let newUrl = this.$router.resolve({
path: '/processDetails',
query: {
prcNum: row.prcNum,
prcType:row.flowType,
prcId:row.actiProcInstId,
}
})
window.open(newUrl.href, '_blank')
},
RelatedItemsClick(item) {
let newUrl = this.$router.resolve({
path: '/ProjectDetails',
@@ -331,5 +344,7 @@
text-align: right;
margin-top: 20px;
}
.text-operation{
margin-right: 8px;
}
</style>
@@ -12,6 +12,8 @@
>
<!-- -->
<span slot="operation" slot-scope="text,record">
<a class="text-operation"
@click="monitoringProcessClick(record)">{{$t('monitoringProcess')}}</a>
<a class="text-operation"
@click="viewClick(record)">{{$t('view')}}</a>
</span>
@@ -106,6 +108,17 @@
}
},
methods: {
monitoringProcessClick(row) {
let newUrl = this.$router.resolve({
path: '/processDetails',
query: {
prcNum: row.prcNum,
prcType: row.flowType,
prcId: row.actiProcInstId
}
})
window.open(newUrl.href, '_blank')
},
standardInformationClick(item) {
let newUrl = this.$router.resolve({
path: '/docManage/library/detail',
@@ -207,4 +220,7 @@
margin-top: 20px;
}
.text-operation {
margin-right: 8px;
}
</style>
@@ -12,6 +12,8 @@
>
<!-- -->
<span slot="operation" slot-scope="text,record">
<a class="text-operation"
@click="monitoringProcessClick(record)">{{$t('monitoringProcess')}}</a>
<a class="text-operation"
@click="viewClick(record)">{{$t('view')}}</a>
</span>
@@ -36,13 +38,14 @@
<script>
import { getAction, postAction, deleteAction } from '@/api/manage'
export default {
name: 'doneList',
data(){
return{
dataSource:[],
loading:false,
columns:[
data() {
return {
dataSource: [],
loading: false,
columns: [
{
title: this.$t('standardInformation'),
align: 'center',
@@ -94,38 +97,49 @@
scopedSlots: { customRender: 'operation' }
}
],
selectedRowKeys:[],
pageSize:10,
pageNo:1,
total:0,
queryParam:{},
url:{
list:'',
},
selectedRowKeys: [],
pageSize: 10,
pageNo: 1,
total: 0,
queryParam: {},
url: {
list: ''
}
}
},
methods:{
standardInformationClick(item){
methods: {
monitoringProcessClick(row) {
let newUrl = this.$router.resolve({
path: '/docManage/library/detail',
path: '/processDetails',
query: {
id: item.bussDocumentLibraryId,
prcNum: row.prcNum,
prcType: row.flowType,
prcId: row.actiProcInstId
}
})
window.open(newUrl.href, '_blank')
},
viewClick(row){
standardInformationClick(item) {
let newUrl = this.$router.resolve({
path: '/docManage/library/detail',
query: {
id: item.bussDocumentLibraryId
}
})
window.open(newUrl.href, '_blank')
},
viewClick(row) {
row.router = this.$route.path
let query = {}
if (row.flowType == '5') {
query = {
prcId:row.actiProcInstId,
taskIds:row.taskId,
prcType:row.flowType,
router:row.router,
prcNum:row.prcNum,
taskDefinitionKey:row.taskDefinitionKey,
isDisabled:true
prcId: row.actiProcInstId,
taskIds: row.taskId,
prcType: row.flowType,
router: row.router,
prcNum: row.prcNum,
taskDefinitionKey: row.taskDefinitionKey,
isDisabled: true
}
let newUrl = this.$router.resolve({
path: '/regulatoryProcessReview',
@@ -134,13 +148,13 @@
window.open(newUrl.href, '_blank')
} else if (row.flowType == '6') {
query = {
taskDefinitionKey:row.taskDefinitionKey,
taskIds:row.taskId,
prcType:row.flowType,
prcNum:row.prcNum,
prcId:row.actiProcInstId,
router:row.router,
isDisabled:true,
taskDefinitionKey: row.taskDefinitionKey,
taskIds: row.taskId,
prcType: row.flowType,
prcNum: row.prcNum,
prcId: row.actiProcInstId,
router: row.router,
isDisabled: true
}
let newUrl = this.$router.resolve({
path: '/evaluationProcess',
@@ -168,7 +182,7 @@
this.pageSize = pageSize
this.getList()
},
getList(){
getList() {
let queryParam = JSON.parse(JSON.stringify(this.queryParam))
Object.keys(queryParam).forEach(val => {
if (queryParam[val] instanceof Array) {
@@ -195,7 +209,7 @@
this.loading = false
}
})
},
}
}
}
</script>
@@ -206,4 +220,7 @@
margin-top: 20px;
}
.text-operation {
margin-right: 8px;
}
</style>