待办中心开发-待办列表接口修改。

This commit is contained in:
wangzhijiang
2022-10-18 14:12:35 +08:00
parent b6f1b13782
commit 000e85a035
7 changed files with 142 additions and 19 deletions
@@ -1218,3 +1218,7 @@ CREATE TABLE `laws_weilai`.`process_info_detail` (
`flow_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流程类型',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '流程信息明细表' ROW_FORMAT = Dynamic;
-- 待办中心 流程信息明细表 增加字段 2022-10-18 未同步生产环境
ALTER TABLE `laws_weilai`.`process_info_detail`
ADD COLUMN `end_time` datetime NULL COMMENT '截止时间' AFTER `flow_type`;
@@ -1393,6 +1393,12 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//清单确认截止时间
String inventoryAffirmDueDate = json.getString("inventoryAffirmDueDate");
Date endTime = new Date();
try {
endTime = sdf.parse(inventoryAffirmDueDate);
} catch (ParseException e) {
e.printStackTrace();
}
QueryWrapper<ProjectLawsInventoryEO> queryWrapper = new QueryWrapper<>();
if(StringUtils.isNotEmpty(ids)){
@@ -1404,9 +1410,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
List<String> userIdList = new ArrayList<>();
List<ProcessInfoDetailEO> processInfoDetailEOList = new ArrayList<>();
for (ProjectLawsInventoryEO projectLawsInventoryEO : projectLawsInventoryEOS) {
List<String> tempUserIdList = new ArrayList<>();
//tempUserIdList 未发起或拒绝 可以发起清单确认
//未发起或拒绝 可以发起清单确认
boolean checkStatus = (StringUtils.equals(projectLawsInventoryEO.getInventoryAffirmStatus(),InventoryAffirmStatusEnum.NOT_STARTED.getValue())
||StringUtils.equals(projectLawsInventoryEO.getInventoryAffirmStatus(),InventoryAffirmStatusEnum.REJECTED.getValue()));
//如果该数据的法规工程师认证工程师都不为空
@@ -1436,6 +1440,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
processInfoDetailEO.setProjectLawsInventoryId(projectLawsInventoryEO.getId());
processInfoDetailEO.setUserId(projectLawsInventoryEO.getHomologationEngineerId());
processInfoDetailEO.setTaskDefinitionKey(InventoryAffirmNodeEnum.HOMOLOGATION_ENGINEER_AUDIT.getKey());
processInfoDetailEO.setEndTime(endTime);
processInfoDetailEOList.add(processInfoDetailEO);
}
if(regulationOwnerFlag){
@@ -1446,6 +1451,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
processInfoDetailEO.setProjectLawsInventoryId(projectLawsInventoryEO.getId());
processInfoDetailEO.setUserId(projectLawsInventoryEO.getRegulationOwnerId());
processInfoDetailEO.setTaskDefinitionKey(InventoryAffirmNodeEnum.REGULATION_OWNER_AUDIT.getKey());
processInfoDetailEO.setEndTime(endTime);
processInfoDetailEOList.add(processInfoDetailEO);
}
@@ -1497,8 +1503,8 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
//往待办中心添加数据
ProcessInfoEO processInfoEO = new ProcessInfoEO();
this.addProcessInfo(processInfoEO,projectLibraryId,inventoryAffirmDueDate);
this.addProcessInfoDetail(processInfoEO.getId(),processInfoDetailEOList);
this.addProcessInfo(processInfoEO,projectLibraryId,endTime);
this.addProcessInfoDetail(processInfoEO.getId(),processInfoDetailEOList,endTime);
}
result = "发起清单确认";
@@ -8623,9 +8629,9 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
* 添加流程信息
* @param processInfoEO
* @param projectLibraryId
* @param inventoryAffirmDueDate
* @param endTime
*/
public void addProcessInfo(ProcessInfoEO processInfoEO,String projectLibraryId,String inventoryAffirmDueDate){
public void addProcessInfo(ProcessInfoEO processInfoEO,String projectLibraryId,Date endTime){
String id = null;
//查询当前项目之前有没有启动过清单确认
QueryWrapper<ProcessInfoEO> processInfoQueryWrap = new QueryWrapper<>();
@@ -8643,13 +8649,6 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
processInfoEO.setId(id);
processInfoEO.setProjectLibraryId(projectLibraryId);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date endTime = new Date();
try {
endTime = sdf.parse(inventoryAffirmDueDate);
} catch (ParseException e) {
e.printStackTrace();
}
processInfoEO.setEndTime(endTime);
processInfoEO.setStatus(TodoCenterStatusEnum.LIST_TO_CONFIRM.getValue());
processInfoEO.setFlowType(FlowTypeEnum.QDQR.getValue());
@@ -8663,8 +8662,9 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
* 添加流程信息用户的待办已办信息
* @param processInfoId
* @param processInfoDetailEOList
* @param endTime
*/
public void addProcessInfoDetail(String processInfoId,List<ProcessInfoDetailEO> processInfoDetailEOList){
public void addProcessInfoDetail(String processInfoId,List<ProcessInfoDetailEO> processInfoDetailEOList,Date endTime){
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
processInfoDetailEOList.forEach(detail -> {
@@ -8691,6 +8691,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
processInfoDetailEO.setCreateTime(new Date());
processInfoDetailEO.setUpdateTime(new Date());
processInfoDetailEO.setCreateBy(currentUser.getId());
processInfoDetailEO.setEndTime(endTime);
processInfoDetailEOList.add(processInfoDetailEO);
//删除studio在这个项目的清单确认已办任务
@@ -113,4 +113,10 @@ public class ProcessInfoDetailEO implements Serializable {
@ApiModelProperty(value = "流程类型")
private java.lang.String flowType;
/**截止时间*/
@Excel(name = "截止时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "截止时间")
private java.util.Date endTime;
}
@@ -126,4 +126,10 @@ public class ProcessInfoEO implements Serializable {
/**年份*/
@TableField(exist = false)
private String yearName;
/**待办id*/
@TableField(exist = false)
private String taskId;
/**任务节点定义key*/
@TableField(exist = false)
private String taskDefinitionKey;
}
@@ -1,10 +1,8 @@
package com.jero.modules.todoCenter.mapper;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.todoCenter.entity.ProcessInfoEO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -17,4 +15,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface ProcessInfoEOMapper extends BaseMapper<ProcessInfoEO> {
IPage<ProcessInfoEO> queryPageList(IPage page,Map<String, Object> params);
IPage<ProcessInfoEO> queryProjectProcessTodoTaskListList(IPage page,Map<String, Object> params);
}
@@ -85,5 +85,107 @@
left join project_laws_inventory pli on pi.project_laws_inventory_id = pli.id
LEFT JOIN sys_user createBy on createBy.id = pi.create_by
<include refid="BaseQuerySql"/>
order by pi.create_time desc
</select>
<select id="queryProjectProcessTodoTaskListList" resultType="com.jero.modules.todoCenter.entity.ProcessInfoEO">
select temp.* from (
SELECT
pi.id,
pi.project_library_id,
pi.project_laws_inventory_id,
pi.buss_document_library_id,
pi.acti_proc_inst_id,
pni.project_name,
pyni.year_name,
pli.serial_number,
pli.title,
pi.flow_type,
createBy.username AS "create_by",
pi.end_time,
(select detail.task_id from process_info_detail detail where detail.process_info_id = pi.id and detail.user_id = #{params.currentUserId} and detail.`status` = 'NotDone' limit 1) as task_id,
(select detail.task_definition_key from process_info_detail detail where detail.process_info_id = pi.id and detail.user_id = #{params.currentUserId} and detail.`status` = 'NotDone' limit 1) as task_definition_key,
pi.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 sys_user createBy ON createBy.id = pi.create_by
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,
pni.project_name,
pyni.year_name,
pli.serial_number,
pli.title,
pi.flow_type,
createBy.username AS "create_by",
(select pid.end_time from process_info_detail pid where pid.process_info_id = pi.id and pid.STATUS = 'NotDone' order by pid.end_time asc limit 1) as end_time,
'' as task_id,
'' as task_definition_key,
pi.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 sys_user createBy ON createBy.id = pi.create_by
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 = #{params.qdqrFlowTypeValue}
)temp
<where>
<if test="params.projectName != null and params.projectName !=''">
and (
temp.project_name like CONCAT(CONCAT('%',#{params.projectName}),'%')
or temp.year_name like CONCAT(CONCAT('%',#{params.projectName}),'%')
)
</if>
<if test="params.serialNumber != null and params.serialNumber !=''">
and (
temp.serial_number like CONCAT(CONCAT('%',#{params.serialNumber}),'%')
)
</if>
<if test="params.flowType != null and params.flowType !=''">
and temp.flow_type = #{params.flowType}
</if>
<if test="params.status != null and params.status !=''">
and temp.status = #{params.status}
</if>
<if test="params.createBy != null and params.createBy != ''">
and temp.create_by = #{params.createBy}
</if>
</where>
order by temp.end_time asc
</select>
</mapper>
@@ -150,13 +150,17 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
List<String> flowTypeList = new ArrayList<>();
this.setFlowTypeList(flowTypeList);
flowTypeList.add(FlowTypeEnum.RWQRLC.getValue());
flowTypeList.add(FlowTypeEnum.SJFHXSHLC.getValue());
flowTypeList.add(FlowTypeEnum.YZFHXSCLC.getValue());
flowTypeList.add(FlowTypeEnum.PREHOMOQRLC.getValue());
params.put("flowTypeList",flowTypeList);
params.put("taskStatus", TaskStatusEnum.NOT_DONE.getValue());
params.put("currentUserId",currentUser.getId());
params.put("qdqrFlowTypeValue",FlowTypeEnum.QDQR.getValue());
IPage page = new Page(pageNo, pageSize);
IPage<ProcessInfoEO> result = this.baseMapper.queryPageList(page,params);
IPage<ProcessInfoEO> result = this.baseMapper.queryProjectProcessTodoTaskListList(page,params);
this.disposeData(result.getRecords(),cut);
return result;
}