Browse Source

信件查询查看详情

dev_ycq
wxc 2 years ago
parent
commit
a4533d5bb0
  1. 4
      mailbox-lan/src/main/java/com/biutag/lan/controller/MailController.java
  2. 8
      mailbox-lan/src/main/java/com/biutag/lan/controller/work/WorkController.java
  3. 3
      mailbox-lan/src/main/java/com/biutag/lan/domain/MailSource.java
  4. 35
      mailbox-lan/src/main/java/com/biutag/lan/service/MailService.java

4
mailbox-lan/src/main/java/com/biutag/lan/controller/MailController.java

@ -24,8 +24,8 @@ public class MailController {
@NotPower @NotPower
@GetMapping("{id}") @GetMapping("{id}")
public AjaxResult<MailFlowDetail> get(@PathVariable String id, @RequestParam Integer workId) { public AjaxResult<MailFlowDetail> get(@PathVariable String id) {
return AjaxResult.success(mailService.getMailFlowDetail(id, workId)); return AjaxResult.success(mailService.getMailFlowDetailByWork(id));
} }
@SaCheckPermission("mail:add") @SaCheckPermission("mail:add")

8
mailbox-lan/src/main/java/com/biutag/lan/controller/work/WorkController.java

@ -8,6 +8,7 @@ import com.biutag.lan.domain.Mail;
import com.biutag.lan.domain.Work; import com.biutag.lan.domain.Work;
import com.biutag.lan.domain.bo.MailQuery; import com.biutag.lan.domain.bo.MailQuery;
import com.biutag.lan.domain.vo.MailExcel; import com.biutag.lan.domain.vo.MailExcel;
import com.biutag.lan.domain.vo.MailFlowDetail;
import com.biutag.lan.domain.vo.QueryMailVo; import com.biutag.lan.domain.vo.QueryMailVo;
import com.biutag.lan.domain.vo.WorkVo; import com.biutag.lan.domain.vo.WorkVo;
import com.biutag.lan.service.MailService; import com.biutag.lan.service.MailService;
@ -64,4 +65,11 @@ public class WorkController {
public AjaxResult<Page<QueryMailVo>> dissatisfied(Page<Mail> page, MailQuery todoQuery) { public AjaxResult<Page<QueryMailVo>> dissatisfied(Page<Mail> page, MailQuery todoQuery) {
return AjaxResult.success(workService.dissatisfied(page, todoQuery)); return AjaxResult.success(workService.dissatisfied(page, todoQuery));
} }
@NotPower
@GetMapping("mail/detail")
public AjaxResult<MailFlowDetail> get(@RequestParam String mailId, @RequestParam Integer workId) {
return AjaxResult.success(mailService.getMailFlowDetailByWork(mailId, workId));
}
} }

3
mailbox-lan/src/main/java/com/biutag/lan/domain/MailSource.java

@ -81,7 +81,8 @@ public class MailSource {
Mail mail = new Mail(); Mail mail = new Mail();
BeanUtils.copyProperties(this, mail); BeanUtils.copyProperties(this, mail);
mail.setCreateTime(LocalDateTime.now()) mail.setCreateTime(LocalDateTime.now())
.setUpdateTime(mail.getCreateTime()); .setUpdateTime(mail.getCreateTime())
.setFlowLimitedLastHandlerTime(createTime);
return mail; return mail;
} }

35
mailbox-lan/src/main/java/com/biutag/lan/service/MailService.java

@ -71,29 +71,19 @@ public class MailService extends ServiceImpl<MailMapper, Mail> {
@Autowired @Autowired
private FlowConfig flowConfig; private FlowConfig flowConfig;
public MailFlowDetail getMailFlowDetail(String mailId, Integer workId) { public MailFlowDetail getMailFlowDetailByWork(String mailId) {
MailSource mailSource = mailSourceService.getById(mailId); MailSource mailSource = mailSourceService.getById(mailId);
Flow flow = null; Flow flow;
Mail mail; Mail mail;
MailFlowDetail flowDetail = new MailFlowDetail(); MailFlowDetail flowDetail = new MailFlowDetail();
Work work = workService.getById(workId);
if (!mailSource.getSignFlag()) { if (!mailSource.getSignFlag()) {
flow = SpringUtil.getBean(FirstSignFlow.class); flow = SpringUtil.getBean(FirstSignFlow.class);
mail = mailSource.toMail(); mail = mailSource.toMail();
// 将流程开始时间设置为
mail.setFlowLimitedLastHandlerTime(mailSource.getCreateTime());
} else { } else {
mail = getById(mailId); mail = getById(mailId);
if (!FlowNodeEnum.COMPLETION.getKey().equals(mail.getFlowKey())) {
flow = flowNodes.stream() flow = flowNodes.stream()
.filter(item -> mail.getFlowKey().equals(item.getFlowNode().getKey())) .filter(item -> mail.getFlowKey().equals(item.getFlowNode().getKey()))
.findFirst().orElseThrow(() -> new BusinessException("没有该流程节点")); .findFirst().orElse(null);
}
if (!work.getMainDeptFlag()) {
flow = flowNodes.stream()
.filter(item -> work.getFlowKey().equals(item.getFlowNode().getKey()))
.findFirst().orElseThrow(() -> new BusinessException("没有该流程节点"));
}
} }
MailVo mailVo = MailVo.of(mail); MailVo mailVo = MailVo.of(mail);
@ -136,7 +126,7 @@ public class MailService extends ServiceImpl<MailMapper, Mail> {
flowDetail.setApprovals(approvalVos); flowDetail.setApprovals(approvalVos);
} }
} }
if (!FlowNodeEnum.COMPLETION.getKey().equals(mail.getFlowKey())) { if (Objects.nonNull(flow)) {
FlowNode flowNode = flow.getFlowNode(); FlowNode flowNode = flow.getFlowNode();
int limitedTime = flowNode.getLimitedTime().intValue(); int limitedTime = flowNode.getLimitedTime().intValue();
if (Objects.nonNull(mail.getExtensionFlag()) && mail.getExtensionFlag()) { if (Objects.nonNull(mail.getExtensionFlag()) && mail.getExtensionFlag()) {
@ -151,8 +141,7 @@ public class MailService extends ServiceImpl<MailMapper, Mail> {
.setFlowRemainingTime(flowRemainingTime) .setFlowRemainingTime(flowRemainingTime)
.setFlowLimitedTime(limitedTime); .setFlowLimitedTime(limitedTime);
flowDetail.setFlowNode(flowNode).setActions(flow.getActions()); flowDetail.setFlowNode(flowNode).setActions(flow.getActions());
// 如果是会签中 } else { // 如果是会签中
} else {
flowDetail.setFlowNode(flowNodeService.getById(mail.getFlowKey())); flowDetail.setFlowNode(flowNodeService.getById(mail.getFlowKey()));
} }
List<String> flowNodes = Arrays.asList(FlowNodeEnum.SECOND_APPROVAL.getKey()); List<String> flowNodes = Arrays.asList(FlowNodeEnum.SECOND_APPROVAL.getKey());
@ -169,10 +158,20 @@ public class MailService extends ServiceImpl<MailMapper, Mail> {
long mainDeptSignTime = flows.stream().filter(item -> item.getFlowKey().contains("_sign") || item.getFlowKey().contains("_distribute")).mapToLong(MailFlow::getConsumingTime).sum(); long mainDeptSignTime = flows.stream().filter(item -> item.getFlowKey().contains("_sign") || item.getFlowKey().contains("_distribute")).mapToLong(MailFlow::getConsumingTime).sum();
mailVo.setMainDeptSignTime(mainDeptSignTime); mailVo.setMainDeptSignTime(mainDeptSignTime);
} }
return flowDetail;
}
public MailFlowDetail getMailFlowDetailByWork(String mailId, Integer workId) {
MailFlowDetail mailDetail = getMailFlowDetailByWork(mailId);
Work work = workService.getById(workId);
if (!work.getMainDeptFlag()) { if (!work.getMainDeptFlag()) {
mailVo.setSecondaryResponsibleFlag(true); Flow flow = flowNodes.stream()
.filter(item -> work.getFlowKey().equals(item.getFlowNode().getKey()))
.findFirst().orElseThrow(() -> new BusinessException("没有该流程节点"));
mailDetail.setFlowNode(flow.getFlowNode());
mailDetail.getMail().setSecondaryResponsibleFlag(true);
} }
return flowDetail; return mailDetail;
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)

Loading…
Cancel
Save