法规认证流程-待办流程(过滤掉项目状态为取消的)

This commit is contained in:
zhn
2023-12-21 10:06:49 +08:00
parent f40a880141
commit 12f8decf16
6 changed files with 242 additions and 7 deletions
@@ -7,7 +7,9 @@ package com.jero.common.constant.enums;
*/
public enum YesOrNoEnum {
NO("","NO","0"),
YES("","YES","1");
YES("","YES","1"),
CANCEL("取消","",""),
;
String name;
@@ -9,6 +9,7 @@ public enum DicCodeEnum {
PROBLEM_TYPE("问题类型","1697066042058821634","wen4_ti2_lei4_xing2"),
PROBLEM_PRIORITY("问题优先级","1716030928484503553","wen4_ti2_you1_xian1_ji2"),
CERTIFICATION_PROGRESS("认证清单-认证进度","1524311122804346881","certification_progress"),
PROJECT_STATUS("项目状态","78bda155fe380b3b3f17551e88c284c6","project_status"),
;
String name;
@@ -1,12 +1,13 @@
package com.jero.modules.todoCenter.mapper;
import java.util.Map;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.modules.todoCenter.entity.ProcessInfoEO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.todoCenter.vo.ProcessInfoVO;
import java.util.List;
import java.util.Map;
/**
* @Description: 流程信息表
* @Author: jero-boot
@@ -30,6 +31,9 @@ public interface ProcessInfoEOMapper extends BaseMapper<ProcessInfoEO> {
*/
IPage<ProcessInfoVO> queryProjectProcessTodoTaskListList(IPage page,Map<String, Object> params);
List<ProcessInfoVO> queryProjectProcessTodoTaskList(IPage page, Map<String, Object> params);
/**
* 查询法规评估流程分页列表
* @param page
@@ -230,7 +230,8 @@
plb.studio_engineer,
plb.project_version,
plb.parent_id,
plb.platform
plb.platform,
plb.project_status
FROM
process_info pi
LEFT JOIN project_library_base plb ON plb.id = pi.project_library_id
@@ -325,7 +326,214 @@
plb.studio_engineer,
plb.project_version,
plb.parent_id,
plb.platform
plb.platform,
plb.project_status
FROM
process_info pi
LEFT JOIN project_library_base plb ON plb.id = pi.project_library_id
LEFT JOIN project_name_info pni ON pni.id = plb.project_name_id
LEFT JOIN project_year_name_info pyni ON pyni.id = plb.year_name_id
LEFT JOIN project_laws_inventory pli ON pi.project_laws_inventory_id = pli.id
WHERE
(
pi.id IN (
SELECT
pid.process_info_id
FROM
process_info_detail pid
where pid.user_id = #{params.currentUserId} and pid.status = #{params.taskStatus}
)
)
AND pi.flow_type IN
<foreach collection="params.qdqrFlowTypeValue" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
)temp
<include refid="BaseQuerySql"/>
order by
temp.end_time IS NULL,
temp.end_time,
temp.project_name IS NULL,
temp.project_name,
standard_info IS NULL,
standard_info,
flow_type_show_order_by
ASC
</select>
<select id="queryProjectProcessTodoTaskList" resultType="com.jero.modules.todoCenter.vo.ProcessInfoVO">
select
temp.*,
(case temp.flow_type when '10' THEN '1' when '21' THEN '2' when '2' THEN '3' when '4' THEN '4' END) as flow_type_show_order_by
from (
SELECT
pi.id,
pi.project_library_id,
pi.project_laws_inventory_id,
pi.buss_document_library_id,
pi.acti_proc_inst_id,
case
when
year_name_id is null
THEN
concat(
plb.power,
'-',
plb.producer,
'-',
(
SELECT
CASE
WHEN
GROUP_CONCAT( item_text SEPARATOR ',' ) IS NULL THEN
'' ELSE GROUP_CONCAT( item_text SEPARATOR ',' )
END AS item_text
FROM
sys_dict_item
WHERE
FIND_IN_SET( item_value, plb.target_market ) > 0
AND dict_id = ( SELECT id FROM sys_dict WHERE dict_code = 'region' )
)
)
when year_name_id is not null
THEN
concat(
pni.project_name, '-',
pyni.year_name, '-',
(
SELECT
<if test="params.cut == 'cn'">
CASE WHEN GROUP_CONCAT( item_text SEPARATOR ',' ) IS NULL THEN '' ELSE GROUP_CONCAT( item_text SEPARATOR ',' ) END AS item_text
</if>
<if test="params.cut == 'en'">
CASE WHEN GROUP_CONCAT( en_name SEPARATOR ',' ) IS NULL THEN '' ELSE GROUP_CONCAT( en_name SEPARATOR ',' ) END AS item_text
</if>
FROM
sys_dict_item
WHERE
FIND_IN_SET( item_value, plb.target_market ) > 0
AND dict_id = ( SELECT id FROM sys_dict WHERE dict_code = 'region' )
) , '-',
plb.project_version
) end AS project_name,
pyni.year_name,
pli.serial_number,
pli.title,
bdl.title_en,
<if test="params.cut == 'cn'">
concat(pli.serial_number,' ',pli.title) as standard_info,
</if>
<if test="params.cut == 'en'">
concat(pli.serial_number,' ',bdl.title_en) as standard_info,
</if>
(case pi.flow_type when '32' THEN '2' when '34' THEN '4' else pi.flow_type END) as flow_type,
pi.create_by,
pi.end_time,
pi.STATUS,
pi.prc_num,
pi.prc_name,
plb.project_name_id,
plb.target_market,
plb.studio_engineer,
plb.project_version,
plb.parent_id,
plb.platform,
plb.project_status
FROM
process_info pi
LEFT JOIN project_library_base plb ON plb.id = pi.project_library_id
LEFT JOIN project_name_info pni ON pni.id = plb.project_name_id
LEFT JOIN project_year_name_info pyni ON pyni.id = plb.year_name_id
LEFT JOIN project_laws_inventory pli ON pi.project_laws_inventory_id = pli.id
LEFT JOIN buss_document_library bdl ON pi.buss_document_library_id = bdl.id
where
(
pi.id IN (
SELECT
pid.process_info_id
FROM
process_info_detail pid
where pid.user_id = #{params.currentUserId} and pid.status = #{params.taskStatus}
)
)
AND pi.flow_type IN
<foreach collection="params.flowTypeList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
union
SELECT
pi.id,
pi.project_library_id,
pi.project_laws_inventory_id,
pi.buss_document_library_id,
pi.acti_proc_inst_id,
case
when
year_name_id is null
THEN
concat(
plb.power,
'-',
plb.producer,
'-',
(
SELECT
CASE
WHEN
GROUP_CONCAT( item_text SEPARATOR ',' ) IS NULL THEN
'' ELSE GROUP_CONCAT( item_text SEPARATOR ',' )
END AS item_text
FROM
sys_dict_item
WHERE
FIND_IN_SET( item_value, plb.target_market ) > 0
AND dict_id = ( SELECT id FROM sys_dict WHERE dict_code = 'region' )
)
)
when year_name_id is not null
THEN
concat(
pni.project_name, '-',
pyni.year_name, '-',
(
SELECT
<if test="params.cut == 'cn'">
CASE WHEN GROUP_CONCAT( item_text SEPARATOR ',' ) IS NULL THEN '' ELSE GROUP_CONCAT( item_text SEPARATOR ',' ) END AS item_text
</if>
<if test="params.cut == 'en'">
CASE WHEN GROUP_CONCAT( en_name SEPARATOR ',' ) IS NULL THEN '' ELSE GROUP_CONCAT( en_name SEPARATOR ',' ) END AS item_text
</if>
FROM
sys_dict_item
WHERE
FIND_IN_SET( item_value, plb.target_market ) > 0
AND dict_id = ( SELECT id FROM sys_dict WHERE dict_code = 'region' )
) , '-',
plb.project_version
) end AS project_name,
pyni.year_name,
'--' as serial_number,
'--' as standard_info,
'' as title,
'' as title_en,
pi.flow_type,
pi.create_by,
(
select
pid.end_time
from
process_info_detail pid
where pid.process_info_id = pi.id and pid.STATUS = 'NotDone' and pid.end_time is not null and pid.user_id = #{params.currentUserId} order by pid.end_time asc limit 1
) as end_time,
pi.STATUS,
pi.prc_num,
pi.prc_name,
plb.project_name_id,
plb.target_market,
plb.studio_engineer,
plb.project_version,
plb.parent_id,
plb.platform,
plb.project_status
FROM
process_info pi
LEFT JOIN project_library_base plb ON plb.id = pi.project_library_id
@@ -7,10 +7,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Result;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.DictModel;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.DateUtils;
import com.jero.common.util.PageUtil;
import com.jero.modules.dummy.enums.OrderEnum;
import com.jero.modules.lawsOpinionGather.entity.LawsOpinionGatherEO;
import com.jero.modules.lawsOpinionGather.service.ILawsOpinionGatherEOService;
@@ -40,6 +42,7 @@ import com.jero.modules.project.service.IProjectTaskInventoryFeedbackEOService;
import com.jero.modules.system.entity.SysCategory;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.enums.DicCodeEnum;
import com.jero.modules.system.service.ISysDictService;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.service.impl.SysCategoryServiceImpl;
@@ -261,7 +264,21 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
params.put("qdqrFlowTypeValue",qdqrFlowTypeValue);
IPage page = new Page(pageNo, pageSize);
IPage<ProcessInfoVO> result = this.baseMapper.queryProjectProcessTodoTaskListList(page,params);
List<ProcessInfoVO> processInfoVOS = this.baseMapper.queryProjectProcessTodoTaskList(page,params);
if(ObjectUtils.isEmpty(processInfoVOS)){
return new Page();
}
List<DictModel> projectStatus = sysDictService.queryDictItemsByCode(DicCodeEnum.PROJECT_STATUS.getCode());
projectStatus = projectStatus.stream().filter(e-> YesOrNoEnum.CANCEL.getName().equals(e.getText())).collect(Collectors.toList());
//过滤掉项目状态为取消的
List<DictModel> finalProjectStatus = projectStatus;
processInfoVOS = processInfoVOS.stream()
.filter(e->StringUtils.isNotBlank(e.getProjectStatus())
&& ObjectUtils.isNotEmpty(finalProjectStatus) && !e.getProjectStatus().equals(finalProjectStatus.get(0).getValue()))
.collect(Collectors.toList());
IPage<ProcessInfoVO> result = PageUtil.getPages(pageNo, pageSize,processInfoVOS);
// IPage<ProcessInfoVO> result = this.baseMapper.queryProjectProcessTodoTaskListList(page,params);
this.disposeData(result.getRecords(),cut,TaskStatusEnum.NOT_DONE.getValue());
result = this.hearSort(params, result);
return result;
@@ -123,4 +123,7 @@ public class ProcessInfoVO implements Serializable {
//该字段有值时,代表数据为平台件的数据
private String platform;
//项目状态
private String projectStatus;
}