diff --git a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/ApprovalFlow.java b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/ApprovalFlow.java index e5ff91c..9fef18d 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/flow/node/ApprovalFlow.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/flow/node/ApprovalFlow.java @@ -3,9 +3,7 @@ package com.biutag.lan.flow.node; import cn.hutool.core.util.NumberUtil; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.biutag.constants.AppConstants; -import com.biutag.entity.system.PoliceUser; import com.biutag.enums.MailState; import com.biutag.enums.RoleEnum; import com.biutag.exception.BusinessException; @@ -13,15 +11,16 @@ 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.WorkType; +import com.biutag.lan.enums.LocalProcessingEnum; import com.biutag.lan.flow.ActionEnum; import com.biutag.lan.flow.Flow; import com.biutag.lan.flow.FlowNameEnum; import com.biutag.lan.flow.FlowNodeEnum; -import com.biutag.lan.service.*; +import com.biutag.lan.service.MailMarkService; +import com.biutag.lan.service.MailReturnService; +import com.biutag.lan.service.MailService; +import com.biutag.lan.service.WorkService; import com.biutag.mapper.system.DeptMapper; -import com.biutag.util.NumberUtils; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; import org.springframework.util.Assert; @@ -139,10 +138,14 @@ public class ApprovalFlow extends Flow { mailReturnService.save(mailReturn); Integer extensionDays = data.getInteger("extensionDays"); + String flowKey = FlowNodeEnum.FIRST_APPROVAL.getKey(); + if (Objects.nonNull(mail.getLocalProcessingFlag()) && mail.getLocalProcessingFlag() && LocalProcessingEnum.FIRST.getValue().equals(mail.getLocalProcessing())) { + flowKey = FlowNodeEnum.VERIFY.getKey(); + } // 更新信件 mail.setUpdateTime(now) .setExtensionDays(NumberUtil.nullToZero(mail.getExtensionDays()) + NumberUtil.nullToZero(extensionDays)) - .setFlowKey(FlowNodeEnum.FIRST_APPROVAL.getKey()) + .setFlowKey(flowKey) .setCurrentOperator(String.format("%s专班", deptMapper.selectById(mail.getFirstDeptId()).getShortName())) .setReturnOperate(returnOperate); mailService.updateById(mail); 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 19978a2..c572b5e 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 @@ -4,14 +4,12 @@ import cn.hutool.core.util.NumberUtil; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.biutag.constants.AppConstants; 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.MailReturn; -import com.biutag.lan.domain.Work; -import com.biutag.lan.enums.WorkType; +import com.biutag.lan.enums.LocalProcessingEnum; import com.biutag.lan.flow.ActionEnum; import com.biutag.lan.flow.Flow; import com.biutag.lan.flow.FlowNameEnum; @@ -21,6 +19,7 @@ import com.biutag.lan.service.MailReturnService; import com.biutag.lan.service.MailService; import com.biutag.lan.service.WorkService; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.springframework.util.Assert; @@ -28,6 +27,7 @@ import java.time.LocalDateTime; import java.util.Objects; import java.util.stream.Collectors; +@Slf4j @RequiredArgsConstructor @Component public class FirstApprovalFlow extends Flow { @@ -116,11 +116,18 @@ public class FirstApprovalFlow extends Flow { // 更新二级机构专班的待办 workService.updateTodo(mailId, RoleEnum.SECOND_DEPT_CLASSES.getRoleId(), mail.getSecondDeptId(), FlowNameEnum.RETURN_RECTIFICATION.getName()); - Integer extensionDays = data.getInteger("extensionDays"); + Integer days = data.getInteger("extensionDays"); + + String flowKey = FlowNodeEnum.SECOND_APPROVAL.getKey(); + if (Objects.nonNull(mail.getLocalProcessingFlag()) && mail.getLocalProcessingFlag() && LocalProcessingEnum.SECOND.getValue().equals(mail.getLocalProcessing())) { + flowKey = FlowNodeEnum.VERIFY.getKey(); + } + Integer extensionDays = NumberUtil.nullToZero(mail.getExtensionDays()) + NumberUtil.nullToZero(days); + log.info("延期天数:{}, 总共延期天数:{}", days, extensionDays); // 更新信件 mail.setUpdateTime(now) - .setExtensionDays(NumberUtil.nullToZero(mail.getExtensionDays()) + NumberUtil.nullToZero(extensionDays)) - .setFlowKey(FlowNodeEnum.SECOND_APPROVAL.getKey()) + .setExtensionDays(extensionDays) + .setFlowKey(flowKey) .setCurrentOperator(String.format("%s专班", mail.getSecondDeptName())) .setReturnOperate(returnOperate); mailService.updateById(mail); 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 39ba3d6..e0438f2 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 @@ -145,6 +145,8 @@ public class FirstSignFlow extends Flow { .set(Mail::getFirstDeptId, null) .set(Mail::getFirstDeptName, null) .set(Mail::getSimpleFlowFlag, false) + .set(Mail::getLocalProcessingFlag, false) + .set(Mail::getLocalProcessing, null) .set(Mail::getCurrentOperator, "省厅专班") ); // 删除 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 96a7459..e5ff21a 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 @@ -87,6 +87,7 @@ public class SecondSignFlow extends Flow { .set(Mail::getFirstDistributeInfo, null) .set(Mail::getThreeDeptId, null) .set(Mail::getThreeDeptName, null) + .set(Mail::getLocalProcessing, null) .set(Mail::getCurrentOperator, String.format("%s专班", deptService.detail(mail.getFirstDeptId()).getShortName())) ); } else { 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 493b177..230d45c 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 @@ -222,16 +222,16 @@ public class ThreeVerifyFlow extends Flow { if (Objects.nonNull(mail.getLocalProcessingFlag()) && mail.getLocalProcessingFlag() && LocalProcessingEnum.FIRST.getValue().equals(mail.getLocalProcessing())) { mail.setCurrentOperator("省厅专班") .setFlowKey(FlowNodeEnum.APPROVAL.getKey()) - .setFlowName(FlowNodeEnum.APPROVAL.getFullName()); + .setFlowName("待审核"); } else if (Objects.nonNull(mail.getLocalProcessingFlag()) && mail.getLocalProcessingFlag() && LocalProcessingEnum.SECOND.getValue().equals(mail.getLocalProcessing())) { DeptVo deptVo = deptService.detail(mail.getFirstDeptId()); mail.setCurrentOperator(String.format("%s专班", deptVo.getShortName())) .setFlowKey(FlowNodeEnum.FIRST_APPROVAL.getKey()) - .setFlowName(FlowNodeEnum.FIRST_APPROVAL.getKey()); + .setFlowName("待审核"); } else { mail.setFlowKey(nextNode.getFlowNode().getKey()) - .setFlowName(nextNode.getFlowNode().getFullName()); + .setFlowName("待审核"); if (ActionEnum.offline.name().equals(nextActionKey)) { mail.setCurrentOperator(String.format("%s专班", mail.getSecondDeptName())); } else { diff --git a/mailbox-lan/src/main/java/com/biutag/lan/service/GenReportService.java b/mailbox-lan/src/main/java/com/biutag/lan/service/GenReportService.java index 678a8a2..facdeb1 100644 --- a/mailbox-lan/src/main/java/com/biutag/lan/service/GenReportService.java +++ b/mailbox-lan/src/main/java/com/biutag/lan/service/GenReportService.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.biutag.constants.AppConstants; import com.biutag.entity.setting.DictData; import com.biutag.entity.system.Dept; +import com.biutag.lan.domain.Mail; import com.biutag.lan.domain.Report; import com.biutag.lan.domain.vo.*; import com.biutag.lan.enums.DeptCategory; @@ -37,6 +38,7 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.temporal.TemporalAdjusters; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -53,6 +55,8 @@ public class GenReportService { private final MailMapper mailMapper; + private final MailService mailService; + private final IDictDataService dictDataService; private final Template template; @@ -62,11 +66,12 @@ public class GenReportService { private StorageService storageService; @Autowired - public GenReportService(IDictDataService dictDataService, DataMapper dataMapper, ReportMapper reportMapper, DeptMapper deptMapper, MailMapper mailMapper) throws IOException { + public GenReportService(IDictDataService dictDataService, DataMapper dataMapper, ReportMapper reportMapper, DeptMapper deptMapper, MailMapper mailMapper, MailService mailService) throws IOException { this.dataMapper = dataMapper; this.reportMapper = reportMapper; this.deptMapper = deptMapper; this.mailMapper = mailMapper; + this.mailService = mailService; this.dictDataService = dictDataService; Configuration configuration = new Configuration(new Version("2.3.28")); configuration.setDefaultEncoding("UTF-8"); @@ -282,4 +287,19 @@ public class GenReportService { .eq(Report::getId, reportId)); } } + + /** + * 半月报 + */ + + @Async + public void genBimonthly(Integer reportId, String startTime, String endTime) { + String startTime1 = DateUtil.format(DateUtil.parse(startTime, DatePattern.NORM_DATETIME_FORMATTER), DatePattern.CHINESE_DATE_FORMAT); + String endTime1 = DateUtil.format(DateUtil.parse(endTime, DatePattern.NORM_DATETIME_FORMATTER), DatePattern.CHINESE_DATE_FORMAT); + String createTime = DateUtil.format(new Date(), DatePattern.CHINESE_DATE_FORMAT); + + List mails = mailService.list(new LambdaQueryWrapper().between(Mail::getMailTime, startTime, endTime)); + Map> categoryGroup = mails.stream().collect(Collectors.groupingBy(Mail::getMailFirstCategory)); + + } } \ No newline at end of file