From 47f3708c2b9aa57ba3050ed82d1ab306d6d86f00 Mon Sep 17 00:00:00 2001 From: wxc <191104855@qq.com> Date: Thu, 5 Dec 2024 16:00:12 +0800 Subject: [PATCH] =?UTF-8?q?fit:=20=E4=B8=8D=E6=BB=A1=E6=84=8F=E4=BF=A1?= =?UTF-8?q?=E4=BB=B6=EF=BC=9A=E5=B0=86=E5=88=97=E8=A1=A8=E5=88=86=E4=B8=BA?= =?UTF-8?q?=E5=85=A8=E9=83=A8=E3=80=81=E5=BE=85=E5=A4=84=E7=90=86=20fix:?= =?UTF-8?q?=20=E8=B0=83=E6=95=B4=E7=AD=BE=E6=94=B6=E8=B6=85=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E5=B0=86=E4=BA=8C=E7=BA=A7=E6=9C=BA=E6=9E=84=E3=80=81?= =?UTF-8?q?=E4=B8=89=E7=BA=A7=E6=9C=BA=E6=9E=84=E7=AD=BE=E6=94=B6=E8=B6=85?= =?UTF-8?q?=E6=97=B6=E6=94=B9=E4=B8=BA10=E5=88=86=E9=92=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lan/controller/MailTimoutController.java | 4 +- .../lan/controller/work/WorkController.java | 7 +++ .../lan/flow/node/SecondDistributeFlow.java | 2 +- .../com/biutag/lan/service/WorkService.java | 59 ++++++++++++++++++- .../src/main/resources/mapper/WorkMapper.xml | 25 ++++++-- .../main/java/com/biutag/outer/job/Job.java | 2 +- 6 files changed, 89 insertions(+), 10 deletions(-) diff --git a/mailbox-lan/src/main/java/com/biutag/lan/controller/MailTimoutController.java b/mailbox-lan/src/main/java/com/biutag/lan/controller/MailTimoutController.java index 1b83cbd..ff8c770 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/controller/MailTimoutController.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/controller/MailTimoutController.java @@ -78,12 +78,12 @@ public class MailTimoutController { .orderByDesc(MailFlow::getCreateTime)); if (!secondFlows.isEmpty()) { LocalDateTime firstDistributeTime = mail.getFirstDistributeTime(); - long time = Duration.between(firstDistributeTime, secondFlows.get(0).getCreateTime()).getSeconds() - 300; + long time = Duration.between(firstDistributeTime, secondFlows.get(0).getCreateTime()).getSeconds() - 600; log.info("信件 {} 二级机构签收是否超时 {}", mail.getId(), time > 0 ? "超时": "未超时"); mailMarkService.update(new LambdaUpdateWrapper().eq(MailMark::getMailId, mail.getId()).set(MailMark::getSignTimeout, time > 0) .set(MailMark::getSecondSignTimeoutDuration, time > 0 ? time : 0)); if (!threeFlows.isEmpty()) { - long time2 = Duration.between(secondFlows.get(0).getCreateTime(), threeFlows.get(0).getCreateTime()).getSeconds() - 300; + long time2 = Duration.between(secondFlows.get(0).getCreateTime(), threeFlows.get(0).getCreateTime()).getSeconds() - 600; log.info("信件 {} 三级机构签收是否超时 {}", mail.getId(), time2 > 0 ? "超时": "未超时"); mailMarkService.update(new LambdaUpdateWrapper().eq(MailMark::getMailId, mail.getId()).set(MailMark::getSignTimeout, time2 > 0) .set(MailMark::getThreeTimeoutDuration, time2 > 0 ? time2 : 0)); diff --git a/mailbox-lan/src/main/java/com/biutag/lan/controller/work/WorkController.java b/mailbox-lan/src/main/java/com/biutag/lan/controller/work/WorkController.java index e71ec77..8e4062d 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/controller/work/WorkController.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/controller/work/WorkController.java @@ -87,6 +87,13 @@ public class WorkController { return AjaxResult.success(workService.dissatisfied(page, todoQuery)); } + @Operation(summary = "不满意信件待办列表") + @NotPower + @GetMapping("dissatisfied/todo") + public AjaxResult> listDissatisfiedByTodo(Page page, MailQuery todoQuery) { + return AjaxResult.success(workService.listDissatisfiedByTodo(page, todoQuery)); + } + @Operation(summary = "信件详情") @NotPower @GetMapping("mail/detail") diff --git a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/SecondDistributeFlow.java b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/SecondDistributeFlow.java index 41c811d..de85b91 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/SecondDistributeFlow.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/SecondDistributeFlow.java @@ -109,7 +109,7 @@ public class SecondDistributeFlow extends Flow { mail.setMainDeptLevel(mainDeptLevel); } MailMark mailMark = mailMarkService.getById(mailId); - long duration = Duration.between(mail.getFlowLimitedLastHandlerTime(), now).getSeconds() - 300; + long duration = Duration.between(mail.getFlowLimitedLastHandlerTime(), now).getSeconds() - 600; mailMark.setThreeDeptId(mainDeptId) .setThreeDeptName(deptVo.getName()) .setSecondSignTimeoutDuration(duration < 0 ? 0 : duration); diff --git a/mailbox-lan/src/main/java/com/biutag/lan/service/WorkService.java b/mailbox-lan/src/main/java/com/biutag/lan/service/WorkService.java index 7aa9191..c3cab34 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/service/WorkService.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/service/WorkService.java @@ -643,7 +643,9 @@ public class WorkService extends ServiceImpl { // 排序 根据申诉状态排序,依次展示“申诉中、已申诉、未申诉”状态 queryWrapper.orderByAsc("CASE WHEN ma.appeal_state = '1' THEN 1 WHEN ma.appeal_state = '2' or ma.appeal_state = '3' THEN 2 ELSE 3 END") .orderByDesc("m.mail_time") - .groupBy("m.id, ma.appeal_state"); + .groupBy("m.id, ma.appeal_state, m.contact_name, m.contact_phone, m.contact_id_card, m.contact_sex, m.content, M.SOURCE, M.mail_time,M.mail_state," + + "M.mail_category, M.mail_level, M.three_dept_id, M.three_dept_name, M.flow_key, M.flow_before_name, M.mail_labels, M.flow_name, M.current_operator," + + "M.flow_limited_last_handler_time, M.extension_flag, M.extension_days"); Page result = baseMapper.selectDissatisfiedPage(page, queryWrapper); for (QueryMailVo workVo : result.getRecords()) { workVo.setNowDeptId(AdminThreadLocal.getDeptId()); @@ -673,6 +675,61 @@ public class WorkService extends ServiceImpl { return result; } + public Page listDissatisfiedByTodo(Page page, MailQuery mailQuery) { + QueryWrapper queryWrapper = new QueryWrapper() + // 必须是已办结的件才可以申诉 + .eq("m.mail_state", "completion") + .ge(StrUtil.isNotBlank(mailQuery.getMailTimeStart()), "m.mail_time", mailQuery.getMailTimeStart()) + .le(StrUtil.isNotBlank(mailQuery.getMailTimeEnd()), "m.mail_time", mailQuery.getMailTimeEnd()) + .eq(StrUtil.isNotBlank(mailQuery.getSource()), "m.source", mailQuery.getSource()) + .eq(StrUtil.isNotBlank(mailQuery.getMailLevel()), "m.mail_level", mailQuery.getMailLevel()) + .and(query -> { + query.eq("mm.satisfied", AppConstants.FALSE).or().eq("ma.appeal_state", AppealState.SUCCESS.getValue()); + }); + if (StrUtil.isNotBlank(mailQuery.getAppealState())) { + if (mailQuery.getAppealState().equals(AppealState.UN_APPEAL.getValue())) + queryWrapper.nested(q -> q.eq("ma.appeal_state", AppealState.UN_APPEAL.getValue()).or().isNull("ma.appeal_state")); + else + queryWrapper.eq("ma.appeal_state", mailQuery.getAppealState()); + } + mailCategorySearch(mailQuery, queryWrapper); + deptSearch(mailQuery, queryWrapper); + roleCheck(queryWrapper); + if (StrUtil.isNotBlank(mailQuery.getContactField()) && StrUtil.isNotBlank(mailQuery.getContactFieldValue())) { + switch (mailQuery.getContactField()) { + case "name": + queryWrapper.like("w.contact_name", mailQuery.getContactFieldValue()); + break; + case "idCard": + queryWrapper.like("w.contact_id_card", mailQuery.getContactFieldValue()); + break; + case "phone": + queryWrapper.like("w.contact_phone", mailQuery.getContactFieldValue()); + break; + } + } + // 排序 根据申诉状态排序,依次展示“申诉中、已申诉、未申诉”状态 + queryWrapper.orderByAsc("CASE WHEN ma.appeal_state = '1' THEN 1 WHEN ma.appeal_state = '2' or ma.appeal_state = '3' THEN 2 ELSE 3 END") + .orderByDesc("m.mail_time") + .groupBy("m.id, ma.appeal_state, m.contact_name, m.contact_phone, m.contact_id_card, m.contact_sex, m.content, M.SOURCE, M.mail_time,M.mail_state," + + "M.mail_category, M.mail_level, M.three_dept_id, M.three_dept_name, M.flow_key, M.flow_before_name, M.mail_labels, M.flow_name, M.current_operator," + + "M.flow_limited_last_handler_time, M.extension_flag, M.extension_days"); + if (AdminThreadLocal.getRoleId().equals(RoleEnum.SECOND_DEPT_CLASSES.getRoleId())) { + queryWrapper.eq("ma.step", "1"); + } + if (AdminThreadLocal.getRoleId().equals(RoleEnum.MUNICIPAL_DEPT_CLASSES.getRoleId())) { + queryWrapper.eq("ma.step", "2"); + } + if (AdminThreadLocal.getRoleId().equals(RoleEnum.MUNICIPAL_CLASSES_LEADER.getRoleId())) { + queryWrapper.eq("ma.step", "3").eq("ma.first_leader_emp_no", AdminThreadLocal.getEmpNo()); + } + Page result = baseMapper.selectDissatisfiedPage(page, queryWrapper); + for (QueryMailVo workVo : result.getRecords()) { + workVo.setNowDeptId(AdminThreadLocal.getDeptId()); + } + return result; + } + /** * 信件查询检查权限并显示 * 感谢信所有人都能查看 diff --git a/mailbox-lan/src/main/resources/mapper/WorkMapper.xml b/mailbox-lan/src/main/resources/mapper/WorkMapper.xml index 11fbcd0..7b108f9 100644 --- a/mailbox-lan/src/main/resources/mapper/WorkMapper.xml +++ b/mailbox-lan/src/main/resources/mapper/WorkMapper.xml @@ -99,16 +99,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"