From 1055615997aa56ad3388705690e938509db471c3 Mon Sep 17 00:00:00 2001 From: wxc <191104855@qq.com> Date: Tue, 27 Feb 2024 19:43:47 +0800 Subject: [PATCH] =?UTF-8?q?BUG=E4=BF=AE=E5=A4=8D=E3=80=81=E5=AE=8C?= =?UTF-8?q?=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/biutag/config/Minio.java | 2 - mailbox-lan/pom.xml | 16 +++++- .../biutag/lan/config/AdminInterceptor.java | 4 +- .../biutag/lan/controller/FileController.java | 27 +++++++++ .../com/biutag/lan/domain/bo/MailOuter.java | 1 - .../com/biutag/lan/flow/FlowNameEnum.java | 33 ++++++----- .../lan/flow/node/FirstApprovalFlow.java | 9 +-- .../lan/flow/node/FirstDistributeFlow.java | 3 +- .../biutag/lan/flow/node/FirstSignFlow.java | 4 +- .../lan/flow/node/SecondApprovalFlow.java | 13 +++-- .../flow/node/SecondDeputyApprovalFlow.java | 6 +- .../flow/node/SecondLeaderApprovalFlow.java | 4 +- .../lan/flow/node/SecondReportingFlow.java | 6 +- .../biutag/lan/flow/node/SecondSignFlow.java | 2 +- .../lan/flow/node/ThreeContactWriterFlow.java | 7 ++- .../flow/node/ThreeInterviewWriterFlow.java | 8 ++- .../flow/node/ThreeLeaderApprovalFlow.java | 12 ++-- .../biutag/lan/flow/node/ThreeSignFlow.java | 10 ++-- .../biutag/lan/flow/node/ThreeVerifyFlow.java | 21 +++++-- .../com/biutag/lan/service/MailService.java | 12 ++-- .../com/biutag/lan/service/WorkService.java | 54 ++++++------------ .../src/main/resources/application.yml | 12 ++-- .../templates/《处理反馈表》.doc | Bin 0 -> 38912 bytes .../templates/《核查办理报告》.doc | Bin 0 -> 26624 bytes .../test/java/com/biutag/lan/JsonTest.java | 1 + .../java/com/biutag/lan/TestResource.java | 32 +++++++++++ pom.xml | 7 --- sql/240227.sql | 1 + 28 files changed, 196 insertions(+), 111 deletions(-) create mode 100644 mailbox-lan/src/main/resources/templates/《处理反馈表》.doc create mode 100644 mailbox-lan/src/main/resources/templates/《核查办理报告》.doc create mode 100644 mailbox-lan/src/test/java/com/biutag/lan/TestResource.java create mode 100644 sql/240227.sql diff --git a/mailbox-common/src/main/java/com/biutag/config/Minio.java b/mailbox-common/src/main/java/com/biutag/config/Minio.java index ab6e46b..0252ec4 100644 --- a/mailbox-common/src/main/java/com/biutag/config/Minio.java +++ b/mailbox-common/src/main/java/com/biutag/config/Minio.java @@ -74,8 +74,6 @@ public class Minio { byte[] buffer = new byte[1024]; int bytesRead; while ((bytesRead = response.read(buffer, 0, buffer.length)) != -1) { - // 处理读取的数据,例如写入到其他流或进行其他操作 - // 这里只是简单的打印数据 os.write(buffer, 0, bytesRead); } response.close(); diff --git a/mailbox-lan/pom.xml b/mailbox-lan/pom.xml index 89d05c8..ba21ac8 100644 --- a/mailbox-lan/pom.xml +++ b/mailbox-lan/pom.xml @@ -116,9 +116,6 @@ easyexcel 3.3.3 - - - @@ -145,6 +142,19 @@ + + + src/main/resources + false + + + src/main/resources + + application.yml + + true + + mailbox-lan diff --git a/mailbox-lan/src/main/java/com/biutag/lan/config/AdminInterceptor.java b/mailbox-lan/src/main/java/com/biutag/lan/config/AdminInterceptor.java index 26781c7..7a55ad8 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/config/AdminInterceptor.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/config/AdminInterceptor.java @@ -57,6 +57,9 @@ public class AdminInterceptor implements HandlerInterceptor { // 请求方法类型 String reqUri = request.getRequestURI(); + if (reqUri.startsWith("/api/file/download/template/")) { + return true; + } if (!(handler instanceof HandlerMethod) || !reqUri.startsWith("/api")) { return HandlerInterceptor.super.preHandle(request, response, handler); } @@ -216,7 +219,6 @@ public class AdminInterceptor implements HandlerInterceptor { if (StringUtils.isNotNull(method) && method.isAnnotationPresent(NotPower.class)) { break; } - // 路由转权限 String prefix = "/api/"; String route = uri.replaceFirst(prefix, ""); diff --git a/mailbox-lan/src/main/java/com/biutag/lan/controller/FileController.java b/mailbox-lan/src/main/java/com/biutag/lan/controller/FileController.java index 282be7a..359f58b 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/controller/FileController.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/controller/FileController.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSONObject; import com.biutag.aop.NotPower; import com.biutag.config.Minio; import com.biutag.core.AjaxResult; +import jakarta.servlet.ServletOutputStream; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; @@ -13,6 +14,9 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; +import java.io.InputStream; +import java.net.URLEncoder; +import java.util.Objects; @Slf4j @RequiredArgsConstructor @@ -43,7 +47,30 @@ public class FileController { @GetMapping("stream/**") public void download(HttpServletRequest request, HttpServletResponse response) throws IOException { String requestURI = request.getRequestURI(); + if (requestURI.toLowerCase().endsWith(".pdf")) { + response.setContentType("application/pdf"); + } minio.get(requestURI.substring("/api/file/stream/".length()), response.getOutputStream()); } + @NotPower + @GetMapping("download/template/{filename}") + public void download(@PathVariable String filename, HttpServletResponse response) throws IOException { + InputStream is = getClass().getResourceAsStream(String.format("/templates/%s", filename)); + if (Objects.isNull(is)) { + return; + } + // 下载 + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8")); + ServletOutputStream os = response.getOutputStream(); + byte[] buffer = new byte[1024]; + int bytesRead; + while ((bytesRead = is.read(buffer, 0, buffer.length)) != -1) { + os.write(buffer, 0, bytesRead); + } + is.close(); + os.close(); + } + } diff --git a/mailbox-lan/src/main/java/com/biutag/lan/domain/bo/MailOuter.java b/mailbox-lan/src/main/java/com/biutag/lan/domain/bo/MailOuter.java index 9b753f4..19eed88 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/domain/bo/MailOuter.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/domain/bo/MailOuter.java @@ -29,7 +29,6 @@ public class MailOuter { /** * 联系人性别 M / F */ - @NotBlank(message = "请选择联系人性别") private String contactSex; /** diff --git a/mailbox-lan/src/main/java/com/biutag/lan/flow/FlowNameEnum.java b/mailbox-lan/src/main/java/com/biutag/lan/flow/FlowNameEnum.java index bf6a5c1..094aaad 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/flow/FlowNameEnum.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/flow/FlowNameEnum.java @@ -3,33 +3,36 @@ package com.biutag.lan.flow; import lombok.AllArgsConstructor; import lombok.Getter; +@Getter @AllArgsConstructor public enum FlowNameEnum { - PENDING_SIGN("待签收"), - PENDING_SIGN_CO("待签收(协办)"), - PENDING_DISTRIBUTE("待下发"), + PENDING_SIGN("待签收", "已签收"), + PENDING_SIGN_CO("待签收(协办)","已签收(协办)"), + PENDING_DISTRIBUTE("待下发", "已下发"), - PENDING_DISTRIBUTE_CO("待下发(协办)"), + PENDING_DISTRIBUTE_CO("待下发(协办)", "已下发"), - CONTACT_WRITER("联系群众"), - INTERVIEW_WRITER("接访群众"), + CONTACT_WRITER("联系群众", "联系群众"), + INTERVIEW_WRITER("接访群众", "接访群众"), - VERIFY("核查办理"), + VERIFY("核查办理", "核查办理"), - PENDING_APPROVAL("待审批"), + PENDING_APPROVAL("待审批", "已审批"), - PENDING_REPORT("待呈报"), + PENDING_REPORT("待呈报", "已呈报"), - COUNTERSIGNING("会签中"), + COUNTERSIGNING("会签中", "会签完成"), - PENDING_COUNTERSIGN("待会签"), - MAIL_RETURN("信件退回"), - RETURN_RECTIFICATION("退回整改"), + PENDING_COUNTERSIGN("待会签", "已会签"), + MAIL_RETURN("信件退回", "信件退回"), + RETURN_RECTIFICATION("退回整改", "退回整改"), + + CO_HANDLING("协查办理", "协查办理"); - CO_HANDLING("协查办理"); - @Getter private String name; + private String doneName; + } diff --git a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/FirstApprovalFlow.java b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/FirstApprovalFlow.java index acbe392..d0c01e1 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/FirstApprovalFlow.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/FirstApprovalFlow.java @@ -8,6 +8,7 @@ import com.biutag.lan.config.AdminThreadLocal; import com.biutag.lan.domain.Mail; import com.biutag.lan.domain.MailMark; import com.biutag.lan.domain.MailReturn; +import com.biutag.lan.domain.Work; import com.biutag.lan.enums.MailState; import com.biutag.lan.flow.ActionEnum; import com.biutag.lan.flow.Flow; @@ -61,7 +62,7 @@ public class FirstApprovalFlow extends Flow { public void confirmedCompletion(String mailId, JSONObject data) { LocalDateTime now = LocalDateTime.now(); // 将市局专班信件改为已办 - workService.updateDone(mailId, RoleEnum.MUNICIPAL_DEPT_CLASSES.getRoleId(), now); + workService.updateByMunicipal(mailId, Work.State.done.name(), FlowNameEnum.PENDING_APPROVAL.getDoneName()); // 更新信件(信件已办结) Mail mail = mailService.getById(mailId); Boolean problemSolvingStatus = data.getBoolean("problemSolvingStatus"); @@ -96,6 +97,7 @@ public class FirstApprovalFlow extends Flow { Assert.hasText(returnOperate, "参数错误"); String reason = data.getString("reason"); Assert.hasText(reason, "参数错误"); + Mail mail = mailService.getById(mailId); MailReturn mailReturn = new MailReturn() .setMailId(mailId) .setReason(reason) @@ -106,11 +108,10 @@ public class FirstApprovalFlow extends Flow { .setCreateTime(now); mailReturnService.save(mailReturn); // 更新已办 - workService.updateDone(mailId, AdminThreadLocal.getEmpNo(), now); + workService.updateByMunicipal(mailId, Work.State.done.name(), FlowNameEnum.MAIL_RETURN.getDoneName()); // 更新二级机构专班的待办 - workService.updateTodo(mailId, RoleEnum.SECOND_DEPT_CLASSES.getRoleId(), now, FlowNameEnum.RETURN_RECTIFICATION.getName()); + workService.updateTodo(mailId, RoleEnum.SECOND_DEPT_CLASSES.getRoleId(), mail.getSecondDeptId(), FlowNameEnum.RETURN_RECTIFICATION.getName()); // 更新信件 - Mail mail = mailService.getById(mailId); mail.setUpdateTime(now) .setFlowKey(FlowNodeEnum.SECOND_APPROVAL.getKey()) .setReturnOperate(returnOperate); diff --git a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/FirstDistributeFlow.java b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/FirstDistributeFlow.java index 7aa3880..b52756b 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/FirstDistributeFlow.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/FirstDistributeFlow.java @@ -3,6 +3,7 @@ package com.biutag.lan.flow.node; import com.alibaba.fastjson2.JSONObject; import com.biutag.enums.RoleEnum; import com.biutag.lan.domain.Mail; +import com.biutag.lan.domain.Work; import com.biutag.lan.flow.Flow; import com.biutag.lan.flow.FlowNameEnum; import com.biutag.lan.flow.FlowNodeEnum; @@ -41,7 +42,7 @@ public class FirstDistributeFlow extends Flow { LocalDateTime now = LocalDateTime.now(); Mail mail = mailService.getById(mailId); // 将我的工作待办改成已办 - workService.updateDone(mailId, RoleEnum.MUNICIPAL_DEPT_CLASSES.getRoleId(),now); + workService.updateByMunicipal(mailId, Work.State.done.name(), FlowNameEnum.PENDING_DISTRIBUTE.getDoneName()); JSONObject firstDistributeInfo = JSONObject.of("mainDept", JSONObject.of("id", mainDeptId)); // 下发信件(主责单位) diff --git a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/FirstSignFlow.java b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/FirstSignFlow.java index d2df2f9..653b9c7 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/FirstSignFlow.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/FirstSignFlow.java @@ -103,7 +103,7 @@ public class FirstSignFlow extends Flow { .setUpdateTime(now); mailService.save(mail); // 更新为已办 - workService.updateDone(mailId, AdminThreadLocal.getRoleId(), now); + workService.updateByMunicipal(mailId, Work.State.done.name(), null); return null; } @@ -118,7 +118,7 @@ public class FirstSignFlow extends Flow { .setUpdateTime(now); mailService.save(mail); // 更新为已办 - workService.updateDone(mailId, AdminThreadLocal.getRoleId(), now); + workService.updateByMunicipal(mailId, Work.State.done.name(), null); return null; } diff --git a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/SecondApprovalFlow.java b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/SecondApprovalFlow.java index 4657c3f..165bb75 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/SecondApprovalFlow.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/SecondApprovalFlow.java @@ -6,6 +6,7 @@ import com.biutag.exception.BusinessException; import com.biutag.lan.config.AdminThreadLocal; import com.biutag.lan.domain.Mail; import com.biutag.lan.domain.MailReturn; +import com.biutag.lan.domain.Work; import com.biutag.lan.enums.CompleteMethod; import com.biutag.lan.flow.ActionEnum; import com.biutag.lan.flow.Flow; @@ -59,6 +60,7 @@ public class SecondApprovalFlow extends Flow { LocalDateTime now = LocalDateTime.now(); String reason = data.getString("reason"); Assert.hasText(reason, "参数错误"); + Mail mail = mailService.getById(mailId); MailReturn mailReturn = new MailReturn() .setMailId(mailId) .setReason(reason) @@ -69,11 +71,10 @@ public class SecondApprovalFlow extends Flow { .setCreateTime(now); mailReturnService.save(mailReturn); // 更新已办 - workService.updateDone(mailId, AdminThreadLocal.getEmpNo(), now); + workService.updateDone(mailId, AdminThreadLocal.getEmpNo(), FlowNameEnum.MAIL_RETURN.getDoneName()); // 更新三级机构专班的待办 - workService.updateTodo(mailId, RoleEnum.THREE_DEPT_CLASSES.getRoleId(), now, FlowNameEnum.RETURN_RECTIFICATION.getName()); + workService.updateTodo(mailId, RoleEnum.THREE_DEPT_CLASSES.getRoleId(), mail.getSecondDeptId(), FlowNameEnum.RETURN_RECTIFICATION.getName()); // 更新信件 - Mail mail = mailService.getById(mailId); mail.setUpdateTime(now) .setFlowKey(FlowNodeEnum.VERIFY.getKey()) .setFlowBeforeName("信件退回"); @@ -88,9 +89,9 @@ public class SecondApprovalFlow extends Flow { // 审批意见 mailApprovalService.saveOrUpdate(mail.getId(), mail.getFlowKey(), data.getString("approvalComment"), null, now); // 将二级专班角色的信件改为已办 - workService.updateDone(mail.getId(), RoleEnum.SECOND_DEPT_CLASSES.getRoleId(), now); + workService.updateDone(mail.getId(), RoleEnum.SECOND_DEPT_CLASSES.getRoleId(), mail.getSecondDeptId(), FlowNameEnum.PENDING_APPROVAL.getDoneName()); // 将市局专班信件改为待办 - workService.updateTodo(mail.getId(), RoleEnum.MUNICIPAL_DEPT_CLASSES.getRoleId(), now, FlowNameEnum.PENDING_APPROVAL.getName()); + workService.updateByMunicipal(mail.getId(), Work.State.todo.name(), FlowNameEnum.PENDING_APPROVAL.getName()); // 更新信件 mail.setUpdateTime(now) .setFlowKey(FlowNodeEnum.FIRST_APPROVAL.getKey()) @@ -108,7 +109,7 @@ public class SecondApprovalFlow extends Flow { // 审批意见 mailApprovalService.saveOrUpdate(mail.getId(), mail.getFlowKey(), data.getString("approvalComment"), leaderEmpNo, now); // 将二级专班角色的信件改为已办 - workService.updateDone(mail.getId(), RoleEnum.SECOND_DEPT_CLASSES.getRoleId(), now); + workService.updateDone(mail.getId(), RoleEnum.SECOND_DEPT_CLASSES.getRoleId(), AdminThreadLocal.getDeptId(), FlowNameEnum.PENDING_APPROVAL.getDoneName()); // 将二级副职领导新增信件 workService.save(mail, leaderEmpNo, now, FlowNameEnum.PENDING_APPROVAL.getName()); Flow nextNode = next.get(nextActionKey); diff --git a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/SecondDeputyApprovalFlow.java b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/SecondDeputyApprovalFlow.java index 75bc85b..8278de9 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/SecondDeputyApprovalFlow.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/SecondDeputyApprovalFlow.java @@ -51,7 +51,7 @@ public class SecondDeputyApprovalFlow extends Flow { // 审批意见 mailApprovalService.saveOrUpdate(mailId, mail.getFlowKey(), data.getString("approvalComment"), leaderEmpNo, now); // 将我的信件改为已办 - workService.updateDone(mailId, AdminThreadLocal.getEmpNo(), now); + workService.updateDone(mailId, AdminThreadLocal.getEmpNo(), FlowNameEnum.PENDING_APPROVAL.getDoneName()); // 给二级机构正职领导新增待办 workService.save(mail, leaderEmpNo, now, FlowNameEnum.PENDING_APPROVAL.getName()); Flow nextNode = next.get(nextActionKey); @@ -68,9 +68,9 @@ public class SecondDeputyApprovalFlow extends Flow { Mail mail = mailService.getById(mailId); mailApprovalService.saveOrUpdate(mailId, mail.getFlowKey(), data.getString("reason"), null, true, now); // 将我的信件改为已办 - workService.updateDone(mailId, AdminThreadLocal.getEmpNo(), now); + workService.updateDone(mailId, AdminThreadLocal.getEmpNo(), FlowNameEnum.MAIL_RETURN.getDoneName()); // 更新二级机构专班的待办 - workService.updateTodo(mailId, RoleEnum.SECOND_DEPT_CLASSES.getRoleId(), now, FlowNameEnum.PENDING_APPROVAL.getName()); + workService.updateTodo(mailId, RoleEnum.SECOND_DEPT_CLASSES.getRoleId(), mail.getSecondDeptId(), FlowNameEnum.PENDING_APPROVAL.getName()); // 更新信件 mail.setUpdateTime(now) .setFlowKey(FlowNodeEnum.SECOND_APPROVAL.getKey()) diff --git a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/SecondLeaderApprovalFlow.java b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/SecondLeaderApprovalFlow.java index 3b6ebf2..9b51ca7 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/SecondLeaderApprovalFlow.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/SecondLeaderApprovalFlow.java @@ -42,9 +42,9 @@ public class SecondLeaderApprovalFlow extends Flow { // 审批意见 mailApprovalService.saveOrUpdate(mailId, mail.getFlowKey(), data.getString("approvalComment"), null, now); // 将我的信件改为已办 - workService.updateDone(mailId, AdminThreadLocal.getEmpNo(), now); + workService.updateDone(mailId, AdminThreadLocal.getEmpNo(), FlowNameEnum.PENDING_APPROVAL.getDoneName()); // 转给二级专班 - workService.updateTodo(mailId, RoleEnum.SECOND_DEPT_CLASSES.getRoleId(), now, FlowNameEnum.PENDING_REPORT.getName()); + workService.updateTodo(mailId, RoleEnum.SECOND_DEPT_CLASSES.getRoleId(), mail.getSecondDeptId(), FlowNameEnum.PENDING_REPORT.getName()); Flow nextNode = next.get(nextActionKey); // 更新信件 mail.setUpdateTime(now) diff --git a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/SecondReportingFlow.java b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/SecondReportingFlow.java index bab4e88..d6f87d4 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/SecondReportingFlow.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/SecondReportingFlow.java @@ -2,7 +2,9 @@ package com.biutag.lan.flow.node; import com.alibaba.fastjson2.JSONObject; import com.biutag.enums.RoleEnum; +import com.biutag.lan.config.AdminThreadLocal; import com.biutag.lan.domain.Mail; +import com.biutag.lan.domain.Work; import com.biutag.lan.flow.Flow; import com.biutag.lan.flow.FlowNameEnum; import com.biutag.lan.service.MailService; @@ -25,9 +27,9 @@ public class SecondReportingFlow extends Flow { LocalDateTime now = LocalDateTime.now(); Mail mail = mailService.getById(mailId); // 将二级专班信件改为已办 - workService.updateDone(mailId, RoleEnum.SECOND_DEPT_CLASSES.getRoleId(), now); + workService.updateDone(mailId, RoleEnum.SECOND_DEPT_CLASSES.getRoleId(), AdminThreadLocal.getDeptId(), FlowNameEnum.PENDING_REPORT.getDoneName()); // 将市局专班信件改为待办 - workService.updateTodo(mailId, RoleEnum.MUNICIPAL_DEPT_CLASSES.getRoleId(), now, FlowNameEnum.PENDING_APPROVAL.getName()); + workService.updateByMunicipal(mailId, Work.State.todo.name(), FlowNameEnum.PENDING_APPROVAL.getName()); Flow nextNode = next.get(nextActionKey); // 更新信件 mail.setUpdateTime(now) diff --git a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/SecondSignFlow.java b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/SecondSignFlow.java index cab1a46..f3d4cc1 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/SecondSignFlow.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/SecondSignFlow.java @@ -67,7 +67,7 @@ public class SecondSignFlow extends Flow { work.setUpdateTime(now).setWorkState(Work.State.done.name()); workService.updateById(work); // 更新市局专班的待办 - workService.updateTodo(mailId, RoleEnum.MUNICIPAL_DEPT_CLASSES.getRoleId(), now, FlowNameEnum.MAIL_RETURN.getName()); + workService.updateByMunicipal(mailId, Work.State.todo.name(), FlowNameEnum.MAIL_RETURN.getName()); Mail mail = mailService.getById(mailId); // 主责单位 if (work.getMainDeptFlag()) { diff --git a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/ThreeContactWriterFlow.java b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/ThreeContactWriterFlow.java index d86715f..6e3bfec 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/ThreeContactWriterFlow.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/ThreeContactWriterFlow.java @@ -71,13 +71,18 @@ public class ThreeContactWriterFlow extends Flow { mail.setFlowKey(FlowNodeEnum.VERIFY.getKey()) .setFlowBeforeName(FlowNodeEnum.VERIFY.getFullName()); } - mailService.updateById(mail); + // 更新我的工作 Work work = workService.getOne(mailId, RoleEnum.THREE_DEPT_CLASSES.getRoleId(), AdminThreadLocal.getDeptId()); work.setFlowName(FlowNameEnum.INTERVIEW_WRITER.getName()).setUpdateTime(now); workService.updateById(work); // 处理协办民警 threeSignFlow.saveCoHandling(mail, data); + JSONArray coHandingPolices = data.getJSONArray("coHandingPolices"); + if (Objects.nonNull(coHandingPolices) && !coHandingPolices.isEmpty()) { + mail.setCoHandlingPolices(coHandingPolices.toJSONString()); + } + mailService.updateById(mail); return nextNode; } diff --git a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/ThreeInterviewWriterFlow.java b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/ThreeInterviewWriterFlow.java index a0fe21b..0f1b999 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/ThreeInterviewWriterFlow.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/ThreeInterviewWriterFlow.java @@ -1,5 +1,6 @@ package com.biutag.lan.flow.node; +import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.biutag.enums.RoleEnum; import com.biutag.lan.config.AdminThreadLocal; @@ -14,6 +15,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; import java.time.LocalDateTime; +import java.util.Objects; /** * 接访群众 @@ -50,9 +52,13 @@ public class ThreeInterviewWriterFlow extends Flow { .setInterviewAttachments(data.getString("interviewAttachments")) .setFlowKey(nextNode.getFlowNode().getKey()) .setFlowBeforeName(nextNode.getFlowNode().getBeforeName()); - mailService.updateById(mail); // 处理协办民警 threeSignFlow.saveCoHandling(mail, data); + JSONArray coHandingPolices = data.getJSONArray("coHandingPolices"); + if (Objects.nonNull(coHandingPolices) && !coHandingPolices.isEmpty()) { + mail.setCoHandlingPolices(coHandingPolices.toJSONString()); + } + mailService.updateById(mail); return nextNode; } diff --git a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/ThreeLeaderApprovalFlow.java b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/ThreeLeaderApprovalFlow.java index 558f757..ae59439 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/ThreeLeaderApprovalFlow.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/ThreeLeaderApprovalFlow.java @@ -42,9 +42,10 @@ public class ThreeLeaderApprovalFlow extends Flow { // 审批意见 mailApprovalService.saveOrUpdate(mailId, mail.getFlowKey(), data.getString("approvalComment"), null, now); // 将我的信件改为已办 - workService.updateDone(mailId, empNo, now); + workService.updateDone(mailId, empNo, FlowNameEnum.PENDING_APPROVAL.getDoneName()); // 将二级专班的信件改为待办 - workService.updateTodo(mailId, RoleEnum.SECOND_DEPT_CLASSES.getRoleId(), now, FlowNameEnum.PENDING_APPROVAL.getName()); + workService.updateTodo(mailId, RoleEnum.SECOND_DEPT_CLASSES.getRoleId(), mail.getSecondDeptId(), FlowNameEnum.PENDING_APPROVAL.getName()); + Flow nextNode = next.get(nextActionKey); // 更新信件 mail.setUpdateTime(now) @@ -58,6 +59,8 @@ public class ThreeLeaderApprovalFlow extends Flow { LocalDateTime now = LocalDateTime.now(); String reason = data.getString("reason"); Assert.hasText(reason, "参数错误"); + Mail mail = mailService.getById(mailId); + MailReturn mailReturn = new MailReturn() .setMailId(mailId) .setReason(reason) @@ -68,11 +71,10 @@ public class ThreeLeaderApprovalFlow extends Flow { .setCreateTime(now); mailReturnService.save(mailReturn); // 更新已办 - workService.updateDone(mailId, AdminThreadLocal.getEmpNo(), now); + workService.updateDone(mailId, AdminThreadLocal.getEmpNo(), FlowNameEnum.MAIL_RETURN.getDoneName()); // 更新三级机构专班的待办 - workService.updateTodo(mailId, RoleEnum.THREE_DEPT_CLASSES.getRoleId(), now, FlowNameEnum.RETURN_RECTIFICATION.getName()); + workService.updateTodo(mailId, RoleEnum.THREE_DEPT_CLASSES.getRoleId(), mail.getThreeDeptId(), FlowNameEnum.RETURN_RECTIFICATION.getName()); // 更新信件 - Mail mail = mailService.getById(mailId); mail.setUpdateTime(now) .setFlowKey(FlowNodeEnum.VERIFY.getKey()) .setFlowBeforeName("信件退回"); diff --git a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/ThreeSignFlow.java b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/ThreeSignFlow.java index 5fd7dd5..462775f 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/ThreeSignFlow.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/ThreeSignFlow.java @@ -22,6 +22,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; import java.time.LocalDateTime; +import java.util.LinkedHashMap; import java.util.Map; import java.util.Objects; @@ -57,6 +58,8 @@ public class ThreeSignFlow extends Flow { } String reason = data.getString("reason"); Assert.hasText(reason, "参数错误"); + Mail mail = mailService.getById(mailId); + MailReturn mailReturn = new MailReturn() .setMailId(mailId) .setReason(reason) @@ -66,12 +69,11 @@ public class ThreeSignFlow extends Flow { .setCreateTime(now); mailReturnService.save(mailReturn); // 更新已办 - work.setUpdateTime(now).setWorkState(Work.State.done.name()); + work.setUpdateTime(now).setWorkState(Work.State.done.name()).setFlowName(FlowNameEnum.MAIL_RETURN.getDoneName()); workService.updateById(work); // 更新二级机构专班的待办 - workService.updateTodo(mailId, RoleEnum.SECOND_DEPT_CLASSES.getRoleId(), now, FlowNameEnum.MAIL_RETURN.getName()); + workService.updateTodo(mailId, RoleEnum.SECOND_DEPT_CLASSES.getRoleId(), mail.getSecondDeptId(), FlowNameEnum.MAIL_RETURN.getName()); // 更新信件 - Mail mail = mailService.getById(mailId); mail.setUpdateTime(now) .setFlowKey(FlowNodeEnum.SECOND_DISTRIBUTE.getKey()) .setFlowBeforeName("信件退回"); @@ -109,7 +111,7 @@ public class ThreeSignFlow extends Flow { JSONArray coHandingPolices = data.getJSONArray("coHandingPolices"); if (Objects.nonNull(coHandingPolices) && coHandingPolices.size() > 0) { for (Object coHandingPolice : coHandingPolices) { - Map obj = (JSONObject) coHandingPolice; + Map obj = (LinkedHashMap) coHandingPolice; String empNo = obj.get("empNo").toString(); Work coWork = workService.getOne(mail.getId(), empNo); if (Objects.nonNull(coWork)) { diff --git a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/ThreeVerifyFlow.java b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/ThreeVerifyFlow.java index e6c0db5..39f4b7f 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/ThreeVerifyFlow.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/ThreeVerifyFlow.java @@ -4,11 +4,13 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.biutag.enums.RoleEnum; import com.biutag.exception.BusinessException; import com.biutag.lan.config.AdminThreadLocal; import com.biutag.lan.domain.Mail; +import com.biutag.lan.domain.Work; import com.biutag.lan.enums.ExtensionState; import com.biutag.lan.enums.WorkType; import com.biutag.lan.flow.ActionEnum; @@ -21,6 +23,7 @@ import org.springframework.stereotype.Component; import org.springframework.util.Assert; import java.time.LocalDateTime; +import java.util.Objects; import java.util.Optional; @RequiredArgsConstructor @@ -56,12 +59,14 @@ public class ThreeVerifyFlow extends Flow { Assert.notNull(extensionDays, "延期时长不能为空"); String reason = data.getString("extensionReason"); Assert.hasText(reason, "延期理由不能为空"); + Mail mail = mailService.getById(mailId); LocalDateTime now = LocalDateTime.now(); // 给二级机构增加待办 - workService.updateTodo(mailId, RoleEnum.SECOND_DEPT_CLASSES.getRoleId(), WorkType.extension_approval.name(), now, FlowNameEnum.PENDING_APPROVAL.getName()); + Work work = workService.getOne(mailId, RoleEnum.SECOND_DEPT_CLASSES.getRoleId(), mail.getSecondDeptId()); + work.setWorkType(WorkType.extension_approval.name()).setFlowName(FlowNameEnum.PENDING_APPROVAL.getName()).setUpdateTime(now); + workService.updateById(work); - Mail mail = mailService.getById(mailId); mail.setUpdateTime(now) .setExtensionDays(extensionDays) .setExtensionReason(reason) @@ -157,11 +162,17 @@ public class ThreeVerifyFlow extends Flow { .setCompleteMethod(data.getString("completeMethod")) .setFlowKey(nextNode.getFlowNode().getKey()) .setFlowBeforeName(nextNode.getFlowNode().getBeforeName()); - mailService.updateById(mail); + // 将本人下的件改为已办 - workService.updateDone(mail.getId(), AdminThreadLocal.getRoleId(), now); + workService.updateDone(mail.getId(), AdminThreadLocal.getRoleId(), AdminThreadLocal.getDeptId(), FlowNameEnum.VERIFY.getDoneName()); // 处理协办民警 threeSignFlow.saveCoHandling(mail, data); + JSONArray coHandingPolices = data.getJSONArray("coHandingPolices"); + if (Objects.nonNull(coHandingPolices) && !coHandingPolices.isEmpty()) { + mail.setCoHandlingPolices(coHandingPolices.toJSONString()); + } + // 更新信件 + mailService.updateById(mail); } public Flow offline(String nextActionKey, String mailId, JSONObject data) { @@ -170,7 +181,7 @@ public class ThreeVerifyFlow extends Flow { Mail mail = mailService.getById(mailId); applicationCompleted(nextActionKey, mail, data, now); // 给二级机构专班增加待办 - workService.updateTodo(mailId, RoleEnum.SECOND_DEPT_CLASSES.getRoleId(), now, FlowNameEnum.PENDING_APPROVAL.getName()); + workService.updateTodo(mailId, RoleEnum.SECOND_DEPT_CLASSES.getRoleId(), mail.getSecondDeptId(), FlowNameEnum.PENDING_APPROVAL.getName()); return null; } diff --git a/mailbox-lan/src/main/java/com/biutag/lan/service/MailService.java b/mailbox-lan/src/main/java/com/biutag/lan/service/MailService.java index 19d2524..17a2903 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/service/MailService.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/service/MailService.java @@ -87,7 +87,7 @@ public class MailService extends ServiceImpl { } MailVo mailVo = MailVo.of(mail); - List list = mailApprovalService.list(mailId); + List flows = mailFlowService.list(mailId) // 时间倒叙 @@ -99,6 +99,8 @@ public class MailService extends ServiceImpl { // 部门会签 mailVo.setCountersigns(mailCountersignService.list(mailId)); + // 审批 + List list = mailApprovalService.list(mailId); if (!list.isEmpty()) { // 线下 if (CompleteMethod.offline.name().equals(mail.getCompleteMethod())) { @@ -210,12 +212,12 @@ public class MailService extends ServiceImpl { public boolean invalidCompletion(InvalidCompletion completion) { LocalDateTime now = LocalDateTime.now(); // 将我的工作更新为已办 - workService.updateDone(completion.getMailId(), AdminThreadLocal.getRoleId(), now); + workService.updateByMunicipal(completion.getMailId(), Work.State.done.name(), null); MailSource mailSource = mailSourceService.getById(completion.getMailId()); Mail mail = mailSource.toMail() // 办理中 - .setMailState(MailState.processing.getValue()) + .setMailState(MailState.completion.getValue()) .setMailFirstCategory(completion.getMailFirstCategory()) .setMailCategory(completion.getMailCategory()) .setMailLevel(completion.getMailLevel()) @@ -299,7 +301,9 @@ public class MailService extends ServiceImpl { workService.updateById(work); if (!returnFlag) { // 给市局机构增加待办 - return workService.updateTodo(mailId, RoleEnum.MUNICIPAL_DEPT_CLASSES.getRoleId(), WorkType.extension_approval.name(), now, FlowNameEnum.PENDING_APPROVAL.getName()); + Work municipalWork = workService.getByMunicipal(mailId); + municipalWork.setWorkType(WorkType.extension_approval.name()).setUpdateTime(now).setFlowName(FlowNameEnum.PENDING_APPROVAL.getName()); + return workService.updateById(municipalWork); } } else { // 市局 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 bddad01..94c48b5 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 @@ -154,45 +154,36 @@ public class WorkService extends ServiceImpl { return saveBatch(collect); } - /** - * 更新角色的已办 - * - * @param mailId - * @param roleId - * @param time - * @return - */ - public boolean updateDone(String mailId, Integer roleId, LocalDateTime time) { - Work work = getByRoleId(mailId, roleId); - work.setUpdateTime(time).setWorkState(Work.State.done.name()); + public boolean updateDone(String mailId, Integer roleId, Integer deptId, String flowName) { + Work work = getOne(mailId, roleId, deptId); + work.setUpdateTime(LocalDateTime.now()).setWorkState(Work.State.done.name()).setFlowName(flowName); return updateById(work); } - /** - * 更新个人的角色已办 - * - * @param mailId - * @param empNo - * @param time - * @return - */ - public boolean updateDone(String mailId, String empNo, LocalDateTime time) { + public boolean updateDone(String mailId, String empNo, String flowName) { Work work = getOne(mailId, empNo); - work.setUpdateTime(time).setWorkState(Work.State.done.name()); + work.setUpdateTime(LocalDateTime.now()).setWorkState(Work.State.done.name()).setFlowName(flowName); return updateById(work); } + public boolean updateTodo(String mailId, String empNo, String flowName) { + Work work = getOne(mailId, empNo); + work.setUpdateTime(LocalDateTime.now()).setWorkState(Work.State.todo.name()).setFlowName(flowName); + return updateById(work); + } - public boolean updateTodo(String mailId, Integer roleId, LocalDateTime time, String flowName) { - Work work = getByRoleId(mailId, roleId); - work.setUpdateTime(time).setWorkState(Work.State.todo.name()).setPoliceEmpNo(null).setFlowName(flowName); + public boolean updateTodo(String mailId, Integer roleId, Integer deptId, String flowName) { + Work work = getOne(mailId, roleId, deptId); + work.setUpdateTime(LocalDateTime.now()).setWorkState(Work.State.todo.name()).setFlowName(flowName); return updateById(work); } - public boolean updateTodo(String mailId, Integer roleId, String workType, LocalDateTime time, String flowName) { - Work work = getByRoleId(mailId, roleId); - work.setUpdateTime(time).setWorkState(Work.State.todo.name()).setPoliceEmpNo(null).setWorkType(workType).setFlowName(flowName); + public boolean updateByMunicipal(String mailId, String workState, String flowName) { + Work work = getByMunicipal(mailId); + work.setUpdateTime(LocalDateTime.now()) + .setWorkState(workState) + .setFlowName(flowName); return updateById(work); } @@ -254,15 +245,6 @@ public class WorkService extends ServiceImpl { return getOne(queryWrapper); } - public Work getByRoleId(String mailId, Integer roleId) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() - .eq(Work::getMailId, mailId) - .eq(Work::getSignRoleId, roleId) - .eq(Work::getWorkType, WorkType.processing.name()) - .eq(Work::getMainDeptFlag, true); - return getOne(queryWrapper); - } - public Work getOne(String mailId, Integer roleId, Integer deptId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .eq(Work::getMailId, mailId) diff --git a/mailbox-lan/src/main/resources/application.yml b/mailbox-lan/src/main/resources/application.yml index c723dde..913a229 100644 --- a/mailbox-lan/src/main/resources/application.yml +++ b/mailbox-lan/src/main/resources/application.yml @@ -23,6 +23,10 @@ spring: max-file-size: 100MB max-request-size: 100MB +mybatis-plus: + # 对应的 XML 文件位置 + mapper-locations: classpath*:mapper/*Mapper.xml + # Sa-token配置 sa-token: token-name: admin # token的名称 @@ -33,11 +37,9 @@ sa-token: token-style: random-64 # token生成的风格 is-print: false # 打印版本字符画 is-log: false # 是否输出操作日志 + + logging: level: root: INFO - com.biutag: debug - -mybatis-plus: - # 对应的 XML 文件位置 - mapper-locations: classpath*:mapper/*Mapper.xml \ No newline at end of file + com.biutag: debug \ No newline at end of file diff --git a/mailbox-lan/src/main/resources/templates/《处理反馈表》.doc b/mailbox-lan/src/main/resources/templates/《处理反馈表》.doc new file mode 100644 index 0000000000000000000000000000000000000000..d60ff1539f76800a0929c609b10811e1f3a51655 GIT binary patch literal 38912 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 literal 0 HcmV?d00001 diff --git a/mailbox-lan/src/main/resources/templates/《核查办理报告》.doc b/mailbox-lan/src/main/resources/templates/《核查办理报告》.doc new file mode 100644 index 0000000000000000000000000000000000000000..0b83fe861340866d314bd0e612b1de588c533d75 GIT binary patch literal 26624 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 Mv4=|C|5OY7KfRn^ga7~l literal 0 HcmV?d00001 diff --git a/mailbox-lan/src/test/java/com/biutag/lan/JsonTest.java b/mailbox-lan/src/test/java/com/biutag/lan/JsonTest.java index af94d86..45d48e2 100644 --- a/mailbox-lan/src/test/java/com/biutag/lan/JsonTest.java +++ b/mailbox-lan/src/test/java/com/biutag/lan/JsonTest.java @@ -16,5 +16,6 @@ public class JsonTest { JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(map)); JSONArray jsonArray = jsonObject.getJSONArray("a"); System.out.println(); + } } diff --git a/mailbox-lan/src/test/java/com/biutag/lan/TestResource.java b/mailbox-lan/src/test/java/com/biutag/lan/TestResource.java new file mode 100644 index 0000000..ed7cbae --- /dev/null +++ b/mailbox-lan/src/test/java/com/biutag/lan/TestResource.java @@ -0,0 +1,32 @@ +package com.biutag.lan; + +import org.junit.jupiter.api.Test; + +import java.io.*; + +public class TestResource { + + @Test + public void testClassResource() throws IOException { +// InputStream is = getClass().getResourceAsStream("/templates/《处理反馈表》.doc"); + File file = new File("D:\\deploy\\文档.doc"); + FileInputStream is = new FileInputStream(file); + + InputStreamReader reader = new InputStreamReader(is, "UTF-8"); + + // 创建UTF-8编码的输出流 + FileOutputStream os = new FileOutputStream("D:\\deploy\\文档1.doc"); + + // 创建UTF-8编码的写入器 + OutputStreamWriter writer = new OutputStreamWriter(os, "UTF-8"); + + int c; + while ((c = reader.read()) != -1) { + // 将每个字节从ISO-8859-1转换为UTF-8并写入输出流 + writer.write((char) c); + } + // 关闭流 + reader.close(); + writer.close(); + } +} diff --git a/pom.xml b/pom.xml index 0968f3c..6ae3f6a 100644 --- a/pom.xml +++ b/pom.xml @@ -121,13 +121,6 @@ - - - src/main/resources - true - - - diff --git a/sql/240227.sql b/sql/240227.sql new file mode 100644 index 0000000..52ea8da --- /dev/null +++ b/sql/240227.sql @@ -0,0 +1 @@ +ALTER TABLE mailbox.mail ALTER COLUMN verify_attachments TYPE text USING verify_attachments::text; \ No newline at end of file