|
|
@ -1,22 +1,33 @@ |
|
|
|
package com.yxt.messagecenter.biz.messageurgeList; |
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.yxt.anrui.flowable.api.flow.FlowSelectVo; |
|
|
|
import com.yxt.anrui.flowable.api.flow.FlowableFeign; |
|
|
|
import com.yxt.anrui.flowable.api.flow2.FlowFeign; |
|
|
|
import com.yxt.anrui.flowable.api.flow2.FlowableMessageVo; |
|
|
|
import com.yxt.anrui.flowable.api.flowtask.FlowTaskDto; |
|
|
|
import com.yxt.anrui.portal.api.sysparameter.SysParameter; |
|
|
|
import com.yxt.anrui.portal.api.sysparameter.SysParameterVo; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.SysUserFeign; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.SysUserVo; |
|
|
|
import com.yxt.common.base.service.MybatisBaseService; |
|
|
|
import com.yxt.common.base.utils.PagerUtil; |
|
|
|
import com.yxt.common.base.utils.StringUtils; |
|
|
|
import com.yxt.common.core.query.PagerQuery; |
|
|
|
import com.yxt.common.core.result.ResultBean; |
|
|
|
import com.yxt.common.core.vo.PagerVo; |
|
|
|
import com.yxt.messagecenter.api.message.PushMessageQuery; |
|
|
|
import com.yxt.messagecenter.api.messagetype.MessageType; |
|
|
|
import com.yxt.messagecenter.api.messageurgeList.MessageListDto; |
|
|
|
import com.yxt.messagecenter.api.messageurgeList.MessageUrgeList; |
|
|
|
import com.yxt.messagecenter.api.messageurgeList.UrgeDto; |
|
|
|
import com.yxt.messagecenter.api.messageurgeList.*; |
|
|
|
import com.yxt.messagecenter.biz.message.MessageService; |
|
|
|
import com.yxt.messagecenter.biz.messagetype.MessageTypeMapper; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import java.util.Arrays; |
|
|
|
import java.util.List; |
|
|
|
import java.text.ParseException; |
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
import java.util.*; |
|
|
|
|
|
|
|
/** |
|
|
|
* @description: |
|
|
@ -32,7 +43,10 @@ public class MessageUrgeListService extends MybatisBaseService<MessageUrgeListMa |
|
|
|
private MessageService messageService; |
|
|
|
@Autowired |
|
|
|
private MessageUrgeListService messageUrgeListService; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private SysUserFeign sysUserFeign; |
|
|
|
@Autowired |
|
|
|
private FlowableFeign flowableFeign; |
|
|
|
|
|
|
|
ResultBean saveMessage(MessageListDto dto) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
@ -45,10 +59,11 @@ public class MessageUrgeListService extends MybatisBaseService<MessageUrgeListMa |
|
|
|
public ResultBean manualReminder(UrgeDto dto) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
String proDefId = dto.getProDefId(); |
|
|
|
String proInstId = dto.getProInstId(); |
|
|
|
String proInstId = dto.getProcInstId(); |
|
|
|
ResultBean<FlowableMessageVo> resultBean = flowFeign.getMessageReminder(proDefId, proInstId); |
|
|
|
if (resultBean.getData() != null) { |
|
|
|
FlowableMessageVo flowableMessageVo = resultBean.getData(); |
|
|
|
String taskId = flowableMessageVo.getTaskId(); |
|
|
|
MessageListDto messageListDto = new MessageListDto(); |
|
|
|
BeanUtil.copyProperties(flowableMessageVo, messageListDto); |
|
|
|
//===================================================
|
|
|
@ -64,6 +79,29 @@ public class MessageUrgeListService extends MybatisBaseService<MessageUrgeListMa |
|
|
|
String msgSid = msgSidResultBean.getData(); |
|
|
|
messageListDto.setMsgSid(msgSid); |
|
|
|
messageListDto.setType(2); |
|
|
|
messageListDto.setUrgeType("2"); |
|
|
|
String urgeName = ""; |
|
|
|
if (StringUtils.isNotBlank(flowableMessageVo.getAssignee())) { |
|
|
|
StringBuffer sb = new StringBuffer(); |
|
|
|
List<String> userSids = Arrays.asList(flowableMessageVo.getAssignee().split(",")); |
|
|
|
if (!userSids.isEmpty()) { |
|
|
|
for (String userSid : userSids) { |
|
|
|
ResultBean<SysUserVo> sysUserVoResultBean = sysUserFeign.fetchBySid(userSid); |
|
|
|
if (sysUserVoResultBean.getData() != null) { |
|
|
|
sb.append(sysUserVoResultBean.getData().getName()).append(","); |
|
|
|
} |
|
|
|
} |
|
|
|
sb.delete(sb.length() - 1, sb.length()); |
|
|
|
urgeName = sb.toString(); |
|
|
|
} |
|
|
|
} |
|
|
|
messageListDto.setUrgeName(urgeName); |
|
|
|
FlowTaskDto flowTaskDto = flowFeign.getTaskNameForUrgeCount(taskId, proInstId).getData(); |
|
|
|
if (null != flowTaskDto) { |
|
|
|
if (StringUtils.isNotBlank(flowTaskDto.getProcDefName())) { |
|
|
|
messageListDto.setUrgeContent(flowTaskDto.getProcDefName()); |
|
|
|
} |
|
|
|
} |
|
|
|
messageUrgeListService.saveMessage(messageListDto); |
|
|
|
} |
|
|
|
return rb.success(); |
|
|
@ -72,4 +110,117 @@ public class MessageUrgeListService extends MybatisBaseService<MessageUrgeListMa |
|
|
|
public List<MessageUrgeList> selecct(String taskId) { |
|
|
|
return baseMapper.selecct(taskId); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 催办统计 |
|
|
|
* |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
public PagerVo<MessageUrgeListVo> urgeCount(PagerQuery<MessageUrgeListQuery> pagerQuery) { |
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
|
|
|
IPage<MessageUrgeList> page = PagerUtil.queryToPage(pagerQuery); |
|
|
|
IPage<MessageUrgeListVo> pagging = baseMapper.urgeCount(page); |
|
|
|
List<MessageUrgeListVo> records = pagging.getRecords(); |
|
|
|
records.removeAll(Collections.singleton(null)); |
|
|
|
if (!records.isEmpty()) { |
|
|
|
for (MessageUrgeListVo urgeVo : records) { |
|
|
|
String taskId = urgeVo.getTaskId(); |
|
|
|
String procInstId = urgeVo.getProcInstId(); |
|
|
|
FlowableMessageVo flowableMessageVo = flowFeign.getApplicantInfoForUrgeCount(taskId, procInstId).getData(); |
|
|
|
if (null != flowableMessageVo) { |
|
|
|
//发起人
|
|
|
|
if (StringUtils.isNotBlank(flowableMessageVo.getAssignee())) { |
|
|
|
SysUserVo userVo = sysUserFeign.fetchBySid(flowableMessageVo.getAssignee()).getData(); |
|
|
|
if (null != userVo) { |
|
|
|
urgeVo.setApplyName(userVo.getName()); |
|
|
|
} |
|
|
|
} |
|
|
|
//发起时间
|
|
|
|
if (StringUtils.isNotBlank(flowableMessageVo.getCreateTime())) { |
|
|
|
try { |
|
|
|
Date parseStartTime = sdf.parse(flowableMessageVo.getCreateTime()); |
|
|
|
urgeVo.setStartTime(sdf.format(parseStartTime)); |
|
|
|
} catch (ParseException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
String proDefId = flowableMessageVo.getProDefId(); |
|
|
|
//结束时间
|
|
|
|
//根据流程定义id以及实例id查询结束时间
|
|
|
|
ResultBean<FlowSelectVo> flowSelectVoResultBean = flowableFeign.selectFlows(proDefId, procInstId); |
|
|
|
if (flowSelectVoResultBean.getData() != null) { |
|
|
|
FlowSelectVo flowSelectVo = flowSelectVoResultBean.getData(); |
|
|
|
if (StringUtils.isNotBlank(flowSelectVo.getEndTime())) { |
|
|
|
urgeVo.setEndTime(flowSelectVo.getEndTime()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
FlowableMessageVo taskVo = flowFeign.getTask(taskId, procInstId).getData(); |
|
|
|
if (null != taskVo) { |
|
|
|
//审批结果
|
|
|
|
String proDefId = taskVo.getProDefId(); |
|
|
|
FlowableMessageVo resultVo = flowFeign.getApprovalResult(proDefId, procInstId).getData(); |
|
|
|
if (null != resultVo) { |
|
|
|
if (StringUtils.isNotBlank(resultVo.getResult())) { |
|
|
|
urgeVo.setResult(resultVo.getResult()); |
|
|
|
} |
|
|
|
} |
|
|
|
//审批环节
|
|
|
|
if (StringUtils.isNotBlank(taskVo.getNodeName())) { |
|
|
|
urgeVo.setAspect(taskVo.getNodeName()); |
|
|
|
} |
|
|
|
//审批接收时间
|
|
|
|
String recTime = ""; |
|
|
|
if (StringUtils.isNotBlank(taskVo.getCreateTime())) { |
|
|
|
recTime = taskVo.getCreateTime(); |
|
|
|
try { |
|
|
|
Date parseRecTime = sdf.parse(recTime); |
|
|
|
urgeVo.setReceiveTime(sdf.format(parseRecTime)); |
|
|
|
} catch (ParseException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
//审批通过时间
|
|
|
|
String endTime = ""; |
|
|
|
if (StringUtils.isNotBlank(taskVo.getEndTime())) { |
|
|
|
endTime = taskVo.getEndTime(); |
|
|
|
try { |
|
|
|
Date parseEndTime = sdf.parse(endTime); |
|
|
|
Date parseRecTime = sdf.parse(recTime); |
|
|
|
urgeVo.setPassTime(sdf.format(parseEndTime)); |
|
|
|
//审批用时
|
|
|
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm:ss"); |
|
|
|
long interval = parseEndTime.getTime() - parseRecTime.getTime(); |
|
|
|
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("GMT+00:00")); |
|
|
|
String hms = simpleDateFormat.format(interval); |
|
|
|
urgeVo.setApprovalTime(hms); |
|
|
|
} catch (ParseException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
urgeVo.setApprovalState("已完成"); |
|
|
|
} else { |
|
|
|
urgeVo.setApprovalState("未完成"); |
|
|
|
} |
|
|
|
} |
|
|
|
int count = 0; |
|
|
|
//查询系统催办次数
|
|
|
|
count = 1; |
|
|
|
int sysCount = baseMapper.selCuiBanCount(taskId, procInstId, count); |
|
|
|
urgeVo.setSysCount(String.valueOf(sysCount)); |
|
|
|
//查询人工催办次数
|
|
|
|
count = 2; |
|
|
|
int renGong = baseMapper.selCuiBanCount(taskId, procInstId, count); |
|
|
|
urgeVo.setArtificialCount(String.valueOf(renGong)); |
|
|
|
//查询系统催办时间间隔
|
|
|
|
MessageUrgeList messageUrgeList = baseMapper.selecctOneBySys(taskId, procInstId); |
|
|
|
if (null != messageUrgeList) { |
|
|
|
if (StringUtils.isNotBlank(messageUrgeList.getTimeInterval())) { |
|
|
|
urgeVo.setTimeInterval(messageUrgeList.getTimeInterval() + "分钟"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
PagerVo<MessageUrgeListVo> p = PagerUtil.pageToVo(pagging, null); |
|
|
|
return p; |
|
|
|
} |
|
|
|
} |
|
|
|