Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/develop' into develop

FengChaoYu 5 mesi fa
parent
commit
7b06157ddc

+ 3 - 3
mall-server-api/src/main/java/com/gree/mall/manager/controller/policy/MailboxController.java

@@ -131,9 +131,9 @@ public class MailboxController {
     @ApiOperation(value = "发送邮件")
     @PostMapping("test")
     public ResponseHelper send(){
-        agreementLogic.sendEmailSche();
-        agreementLogic.sendEmailScheEM();
-        agreementLogic.sendEmailScheIN();
+        agreementLogic.sendEmailScheTask2();
+        agreementLogic.sendEmailScheEMTask2();
+        agreementLogic.sendEmailScheINTask2();
         return ResponseHelper.success();
     }
 

+ 1 - 1
mall-server-api/src/main/java/com/gree/mall/manager/enums/LeletterExamineEnum.java

@@ -12,7 +12,7 @@ import lombok.Getter;
 public enum  LeletterExamineEnum implements BaseEnum {
     SUB("SUB","减免"),
     FAIL("FAIL","驳回"),
-    OK("OK","OK"),
+    OK("OK","通过"),
 
             ;
 

+ 2 - 0
mall-server-api/src/main/java/com/gree/mall/manager/logic/LetterLogic.java

@@ -388,6 +388,7 @@ public class LetterLogic {
             throw new RemoteServiceException("存在有非审批的联络函");
 
         leLetterService.lambdaUpdate().in(LeLetter::getLeLetterId,ids)
+                .set(LeLetter::getSendTime,new Date())
                 .set(LeLetter::getStatus, LetterStatusEnum.SEND.getKey()).update();
     }
 
@@ -415,6 +416,7 @@ public class LetterLogic {
     public void examine(LeLetterItem leLetterItem) {
         AdminUserCom adminUser = commonLogic.getAdminUser();
 
+
         LeLetter leLetter = leLetterService.getById(leLetterItem.getLeLetterId());
         if (!leLetter.getStatus().equals(LetterStatusEnum.WAIT_EXAMINE.getKey()))
             throw new RemoteServiceException("不为待审批状态");

+ 3 - 0
mall-server-api/src/main/java/com/gree/mall/manager/logic/admin/AdminUserLogic.java

@@ -606,6 +606,9 @@ public class AdminUserLogic {
                 .eq(status != null, AdminUser::getStatus, status)
                 .like(StringUtils.isNotBlank(userName), AdminUser::getUserName, userName)
                 .in(CollectionUtils.isNotEmpty(adminUser.getCompanyWechatIds()), AdminUser::getCompanyWechatId, adminUser.getCompanyWechatIds())
+                .and(!CollectionUtils.isNotEmpty(adminUserIds),item -> item.in( AdminUser::getAdminUserId, adminUserIds)
+                .ne(AdminUser::getUserName,"admin")
+                )
                 .and(adminUser.getIsMaster() && adminUser.getType() == 0, v -> v.eq(AdminUser::getAdminUserId, adminUser.getAdminUserId())
                         .or()
                         .in(AdminUser::getMasterWebsitId, adminUser.getAdminWebsitIds()))

+ 293 - 7
mall-server-api/src/main/java/com/gree/mall/manager/logic/policy/AgreementLogic.java

@@ -460,14 +460,13 @@ public class AgreementLogic {
 
     @Async
     @Transactional(rollbackFor = Exception.class)
-    public void sendEmailSche() {
+    public void sendEmailScheTask2() {
 
 
         Mailbox mailbox = mailboxService.getById("1");
 
         //今天要发送的保单
-        //Date startTime = DateUtil.beginOfDay(new Date());
-/*        Date endTime = DateUtil.parseDateTime(DateUtils.formatDate(new Date(),"yyyy-MM-dd") +" "+ mailbox.getSendTime()+":00");
+  /*      Date endTime = DateUtil.parseDateTime(DateUtils.formatDate(new Date(),"yyyy-MM-dd") +" "+ mailbox.getSendTime()+":00");
         if(new Date().getTime() < endTime.getTime()){
             //还没到可发邮件的时间
             return;
@@ -548,6 +547,96 @@ public class AgreementLogic {
 
     }
 
+
+    @Async
+    @Transactional(rollbackFor = Exception.class)
+    public void sendEmailSche() {
+
+
+        Mailbox mailbox = mailboxService.getById("1");
+
+        //今天要发送的保单
+        Date endTime = DateUtil.parseDateTime(DateUtils.formatDate(new Date(),"yyyy-MM-dd") +" "+ mailbox.getSendTime()+":00");
+        if(new Date().getTime() < endTime.getTime()){
+            //还没到可发邮件的时间
+            return;
+        }
+
+        if (mailboxSendRecordService.lambdaQuery().gt(MailboxSendRecord::getSendTime, DateUtil.beginOfDay(new Date())).count() > 0) {
+            return;
+        }
+
+
+
+
+        List<MailboxReceive> mailboxReceives = mailboxReceiveService.lambdaQuery().eq(MailboxReceive::getMailboxId, mailbox.getId()).list();
+
+
+        //意外保险发送邮件
+        List<PolicyOrder> policyOrders = policyOrderService.lambdaQuery().eq(PolicyOrder::getType, PolicyTypeEnum.AC.getKey())
+                .eq(PolicyOrder::getIsPay, IsYesNoEnum.YES.getKey())
+                .eq(PolicyOrder::getIsSend, IsYesNoEnum.NO.getKey()).list();
+
+
+        if (!CollectionUtils.isEmpty(policyOrders)) {
+
+            EmailUtilsNew emailUtilsNew = new EmailUtilsNew(mailbox.getSendMailbox(), mailbox.getSendPassword());
+
+            MailboxSendRecord mailboxSendRecord = new MailboxSendRecord();
+            mailboxSendRecord.setId(IdWorker.getIdStr());
+            mailboxSendRecord.setPolicyType(PolicyTypeEnum.AC.getKey());
+            mailboxSendRecord.setSendBatch(mailboxSendRecord.getId());
+            mailboxSendRecord.setSendMailbox(mailbox.getSendMailbox());
+            mailboxSendRecord.setReceiveMailbox(mailbox.getAccidentMailbox());
+            mailboxSendRecord.setReceiptStatus(IsYesNoEnum.NO.getKey());
+            mailboxSendRecord.setCompanyWechatId(mailbox.getCompanyWechatId());
+            mailboxSendRecord.setCompanyWechatName(mailbox.getCompanyWechatName());
+
+            List<MailboxSendRecordPolicy> mailboxSendRecordPolicies = new ArrayList<>();
+
+            for (PolicyOrder policyOrder : policyOrders) {
+                MailboxSendRecordPolicy mailboxSendRecordPolicy = new MailboxSendRecordPolicy();
+
+                mailboxSendRecordPolicy.setCompanyWechatId(mailbox.getCompanyWechatId());
+                mailboxSendRecordPolicy.setCompanyWechatName(mailbox.getCompanyWechatName());
+                mailboxSendRecordPolicy.setPolicyNumber(policyOrder.getPolicyNumber());
+                mailboxSendRecordPolicy.setPolicyName(policyOrder.getWorkerName());
+                mailboxSendRecordPolicy.setWebsitName(policyOrder.getWebsitName());
+                mailboxSendRecordPolicy.setWebsitId(policyOrder.getWebsitId());
+                mailboxSendRecordPolicy.setPolicyMobile(policyOrder.getWorkerMobile());
+                mailboxSendRecordPolicy.setPolicyIdcard(policyOrder.getWorkerIdcard());
+                mailboxSendRecordPolicy.setType("IN");
+                mailboxSendRecordPolicy.setSendBatch(mailboxSendRecord.getSendBatch());
+                mailboxSendRecordPolicy.setPolicyOrderId(policyOrder.getId());
+                mailboxSendRecordPolicy.setPolicyType(PolicyTypeEnum.AC.getKey());
+
+                mailboxSendRecordPolicies.add(mailboxSendRecordPolicy);
+
+                policyOrder.setIsSend(IsYesNoEnum.YES.getKey());
+                policyOrder.setSendTime(new Date());
+                policyOrder.setSendBatch(mailboxSendRecord.getSendBatch());
+                policyOrder.updateById();
+            }
+
+            mailboxSendRecord.insert();
+            mailboxSendRecordPolicyService.saveBatch(mailboxSendRecordPolicies);
+
+            //发邮件
+            try {
+                this.sendEmailFile(mailboxSendRecordPolicies, mailboxSendRecord, mailbox,emailUtilsNew);
+                mailboxSendRecord.setSendStatus("OK");
+                mailboxSendRecord.setSendTime(new Date());
+                mailboxSendRecord.updateById();
+            } catch (Exception e) {
+                mailboxSendRecord.setSendStatus("NO");
+                mailboxSendRecord.setSendTime(new Date());
+                mailboxSendRecord.updateById();
+            }
+        }
+
+
+    }
+
     public void receEmail() throws IOException, MessagingException {
 
         Mailbox mailbox = mailboxService.getById("1");
@@ -891,6 +980,106 @@ public class AgreementLogic {
     }
 
 
+    @Async
+    @Transactional(rollbackFor = Exception.class)
+    public void sendEmailScheEMTask2() {
+
+
+        Mailbox mailbox = mailboxService.getById("1");
+
+        //今天要发送的保单
+        //Date startTime = DateUtil.beginOfDay(new Date());
+   /*     Date endTime = DateUtil.parseDateTime(DateUtils.formatDate(new Date(),"yyyy-MM-dd") +" "+ mailbox.getSendTime()+":00");
+        if(new Date().getTime() < endTime.getTime()){
+            //还没到可发邮件的时间
+            return;
+        }
+
+        if (mailboxSendRecordService.lambdaQuery().gt(MailboxSendRecord::getSendTime, DateUtil.beginOfDay(new Date())).count() > 0) {
+            return;
+        }*/
+
+
+
+
+        List<MailboxReceive> mailboxReceives = mailboxReceiveService.lambdaQuery().eq(MailboxReceive::getMailboxId, mailbox.getId()).list();
+
+
+        //雇主保险发送邮件
+        List<PolicyOrder> policyOrdersEm = policyOrderService.lambdaQuery()
+                .eq(PolicyOrder::getType, PolicyTypeEnum.EM.getKey())
+                .eq(PolicyOrder::getIsImport, IsYesNoEnum.NO.getKey())
+                .eq(PolicyOrder::getIsSend, IsYesNoEnum.NO.getKey()).list();
+
+        if (!CollectionUtils.isEmpty(policyOrdersEm)) {
+
+            EmailUtilsNew emailUtilsNew = new EmailUtilsNew(mailbox.getSendMailbox(), mailbox.getSendPassword());
+            MailboxSendRecord mailboxSendRecord = new MailboxSendRecord();
+            mailboxSendRecord.setId(IdWorker.getIdStr());
+            mailboxSendRecord.setPolicyType(PolicyTypeEnum.EM.getKey());
+            mailboxSendRecord.setSendBatch(mailboxSendRecord.getId());
+            mailboxSendRecord.setSendMailbox(mailbox.getSendMailbox());
+            mailboxSendRecord.setReceiveMailbox(mailbox.getEmployerMailbox());
+            mailboxSendRecord.setReceiptStatus(IsYesNoEnum.NO.getKey());
+            mailboxSendRecord.setCompanyWechatId(mailbox.getCompanyWechatId());
+            mailboxSendRecord.setCompanyWechatName(mailbox.getCompanyWechatName());
+
+            List<MailboxSendRecordPolicy> mailboxSendRecordPolicies = new ArrayList<>();
+
+            for (PolicyOrder policyOrder : policyOrdersEm) {
+                MailboxSendRecordPolicy mailboxSendRecordPolicy = new MailboxSendRecordPolicy();
+
+                mailboxSendRecordPolicy.setCompanyWechatId(mailboxSendRecord.getCompanyWechatId());
+                mailboxSendRecordPolicy.setCompanyWechatName(mailboxSendRecord.getCompanyWechatName());
+                mailboxSendRecordPolicy.setPolicyNumber(policyOrder.getPolicyId());
+                mailboxSendRecordPolicy.setPolicyName(policyOrder.getWorkerName());
+                mailboxSendRecordPolicy.setPolicyOrderId(policyOrder.getId());
+                mailboxSendRecordPolicy.setWebsitName(policyOrder.getWebsitName());
+                mailboxSendRecordPolicy.setWebsitId(policyOrder.getWebsitId());
+                mailboxSendRecordPolicy.setPolicyMobile(policyOrder.getWorkerMobile());
+
+                mailboxSendRecordPolicy.setPolicyIdcard(policyOrder.getWorkerIdcard());
+                mailboxSendRecordPolicy.setPolicyIdcard(policyOrder.getWorkerIdcard());
+                mailboxSendRecordPolicy.setType("IN");
+                mailboxSendRecordPolicy.setSendBatch(mailboxSendRecord.getSendBatch());
+                mailboxSendRecordPolicy.setPolicyType(PolicyTypeEnum.EM.getKey());
+
+                if (!StringUtil.isEmpty(policyOrder.getReplaceName())) {
+                    mailboxSendRecordPolicy.setType("RE");
+                    mailboxSendRecordPolicy.setReplaceName(policyOrder.getReplaceName());
+                    mailboxSendRecordPolicy.setReplaceIdcard(policyOrder.getReplaceIdcard());
+                }
+
+
+                mailboxSendRecordPolicies.add(mailboxSendRecordPolicy);
+
+                policyOrder.setIsSend(IsYesNoEnum.YES.getKey());
+                policyOrder.setSendTime(new Date());
+                policyOrder.setSendBatch(mailboxSendRecord.getSendBatch());
+                policyOrder.updateById();
+            }
+
+
+            //发邮件
+            try {
+                this.sendEmailFileEm(mailboxSendRecordPolicies, mailboxSendRecord, mailbox, emailUtilsNew);
+                mailboxSendRecord.setSendStatus("OK");
+                mailboxSendRecord.setSendTime(new Date());
+                mailboxSendRecord.updateById();
+            } catch (Exception e) {
+                mailboxSendRecord.setSendStatus("NO");
+                mailboxSendRecord.setSendTime(new Date());
+                mailboxSendRecord.updateById();
+            }
+
+            mailboxSendRecord.insert();
+            mailboxSendRecordPolicyService.saveBatch(mailboxSendRecordPolicies);
+        }
+
+
+    }
+
+
 
     @Async
     @Transactional(rollbackFor = Exception.class)
@@ -901,7 +1090,7 @@ public class AgreementLogic {
 
         //今天要发送的保单
         //Date startTime = DateUtil.beginOfDay(new Date());
-/*        Date endTime = DateUtil.parseDateTime(DateUtils.formatDate(new Date(),"yyyy-MM-dd") +" "+ mailbox.getSendTime()+":00");
+        Date endTime = DateUtil.parseDateTime(DateUtils.formatDate(new Date(),"yyyy-MM-dd") +" "+ mailbox.getSendTime()+":00");
         if(new Date().getTime() < endTime.getTime()){
             //还没到可发邮件的时间
             return;
@@ -909,7 +1098,7 @@ public class AgreementLogic {
 
         if (mailboxSendRecordService.lambdaQuery().gt(MailboxSendRecord::getSendTime, DateUtil.beginOfDay(new Date())).count() > 0) {
             return;
-        }*/
+        }
 
 
 
@@ -990,9 +1179,11 @@ public class AgreementLogic {
 
 
 }
+
+
     @Async
     @Transactional(rollbackFor = Exception.class)
-    public void sendEmailScheIN() {
+    public void sendEmailScheINTask2() {
 
         Mailbox mailbox = mailboxService.getById("1");
 
@@ -1081,6 +1272,98 @@ public class AgreementLogic {
 
     }
 
+
+    @Async
+    @Transactional(rollbackFor = Exception.class)
+    public void sendEmailScheIN() {
+
+        Mailbox mailbox = mailboxService.getById("1");
+
+        //今天要发送的保单
+        //Date startTime = DateUtil.beginOfDay(new Date());
+        Date endTime = DateUtil.parseDateTime(DateUtils.formatDate(new Date(),"yyyy-MM-dd") +" "+ mailbox.getSendTime()+":00");
+        if(new Date().getTime() < endTime.getTime()){
+            //还没到可发邮件的时间
+            return;
+        }
+
+        if (mailboxSendRecordService.lambdaQuery().gt(MailboxSendRecord::getSendTime, DateUtil.beginOfDay(new Date())).count() > 0) {
+            return;
+        }
+
+
+
+
+        List<MailboxReceive> mailboxReceives = mailboxReceiveService.lambdaQuery().eq(MailboxReceive::getMailboxId, mailbox.getId()).list();
+        //工伤保险发送邮件
+        for (MailboxReceive mailboxReceive : mailboxReceives) {
+
+            EmailUtilsNew emailUtilsNew = new EmailUtilsNew(mailbox.getSendMailbox(), mailbox.getSendPassword());
+            List<PolicyOrder> policyOrdersIn = policyOrderService.lambdaQuery()
+                    .eq(PolicyOrder::getType, PolicyTypeEnum.IN.getKey())
+                    .eq(PolicyOrder::getIsImport, IsYesNoEnum.NO.getKey())
+                    .eq(PolicyOrder::getBuyUnitId, mailboxReceive.getDictId())
+                    .eq(PolicyOrder::getIsSend, IsYesNoEnum.NO.getKey()).list();
+
+            if (!CollectionUtils.isEmpty(policyOrdersIn)) {
+
+
+                MailboxSendRecord mailboxSendRecord = new MailboxSendRecord();
+                mailboxSendRecord.setId(IdWorker.getIdStr());
+                mailboxSendRecord.setPolicyType(PolicyTypeEnum.IN.getKey());
+                mailboxSendRecord.setSendBatch(mailboxSendRecord.getId());
+                mailboxSendRecord.setSendMailbox(mailbox.getSendMailbox());
+                mailboxSendRecord.setReceiveMailbox(mailboxReceive.getReceiveMailbox());
+                mailboxSendRecord.setReceiptStatus(IsYesNoEnum.NO.getKey());
+                mailboxSendRecord.setCompanyWechatId(mailbox.getCompanyWechatId());
+                mailboxSendRecord.setCompanyWechatName(mailbox.getCompanyWechatName());
+
+                List<MailboxSendRecordPolicy> mailboxSendRecordPolicies = new ArrayList<>();
+
+                for (PolicyOrder policyOrder : policyOrdersIn) {
+                    MailboxSendRecordPolicy mailboxSendRecordPolicy = new MailboxSendRecordPolicy();
+
+                    mailboxSendRecordPolicy.setCompanyWechatId(mailboxSendRecord.getCompanyWechatId());
+                    mailboxSendRecordPolicy.setCompanyWechatName(mailboxSendRecord.getCompanyWechatName());
+                    mailboxSendRecordPolicy.setPolicyNumber(policyOrder.getPolicyId());
+                    mailboxSendRecordPolicy.setPolicyOrderId(policyOrder.getId());
+                    mailboxSendRecordPolicy.setPolicyName(policyOrder.getWorkerName());
+                    mailboxSendRecordPolicy.setWebsitName(policyOrder.getWebsitName());
+                    mailboxSendRecordPolicy.setWebsitId(policyOrder.getWebsitId());
+                    mailboxSendRecordPolicy.setPolicyMobile(policyOrder.getWorkerMobile());
+                    mailboxSendRecordPolicy.setPolicyIdcard(policyOrder.getWorkerIdcard());
+                    mailboxSendRecordPolicy.setType("IN");
+                    mailboxSendRecordPolicy.setSendBatch(mailboxSendRecord.getSendBatch());
+                    mailboxSendRecordPolicy.setPolicyType(PolicyTypeEnum.IN.getKey());
+
+
+                    mailboxSendRecordPolicies.add(mailboxSendRecordPolicy);
+
+                    policyOrder.setIsSend(IsYesNoEnum.YES.getKey());
+                    policyOrder.setSendTime(new Date());
+                    policyOrder.setSendBatch(mailboxSendRecord.getSendBatch());
+                    policyOrder.updateById();
+                }
+
+                mailboxSendRecord.insert();
+                mailboxSendRecordPolicyService.saveBatch(mailboxSendRecordPolicies);
+
+                //发邮件
+                try {
+                    this.sendEmailFileIn(mailboxSendRecordPolicies, mailboxSendRecord, mailbox, emailUtilsNew);
+                    mailboxSendRecord.setSendStatus("OK");
+                    mailboxSendRecord.setSendTime(new Date());
+                    mailboxSendRecord.updateById();
+                } catch (Exception e) {
+                    mailboxSendRecord.setSendStatus("NO");
+                    mailboxSendRecord.setSendTime(new Date());
+                    mailboxSendRecord.updateById();
+                }
+            }
+        }
+
+    }
+
     public void task6() {
 
 
@@ -1224,13 +1507,16 @@ public class AgreementLogic {
                 for (LeLetterItem letterItem : letterItems) {
 
                     letterItem.setExamineStatus("OK");
+                    letterItem.setExamineTime(new Date());
                     letterItem.setExamineName("审批截止时间已到自动批复");
 
-
+                    letterItem.updateById();
                     leLetterService.lambdaUpdate().eq(LeLetter::getStatus, LetterStatusEnum.WAIT_EXAMINE.getKey())
                             .eq(LeLetter::getLeLetterId,letterItem.getLeLetterId())
                             .set(LeLetter::getStatus, LetterStatusEnum.REVOKE.getKey())
                             .set(LeLetter::getExamineStatus, "OK")
+                            .set(LeLetter::getExamineTime, new Date())
+                            .set(LeLetter::getExamineName, "审批截止时间已到自动批复")
                             .update();
 
                 }

+ 4 - 2
mall-server-api/src/main/java/com/gree/mall/manager/schedule/InsureEmailSchedule.java

@@ -25,14 +25,16 @@ public class InsureEmailSchedule {
 
 
     //每小时执行1次
-   // @Scheduled(fixedDelay =60* 1000)
+    @Scheduled(fixedDelay =60* 1000)
     public void task() throws IOException {
         agreementLogic.sendEmailSche();
+        agreementLogic.sendEmailScheEM();
+        agreementLogic.sendEmailScheIN();
     }
 
 
     //监测今天是否有回执邮件,如果有则表示今天买保险的回执成功
-   // @Scheduled(fixedDelay = 60* 1000)
+    @Scheduled(fixedDelay = 60* 1000)
     public void task2() throws IOException, MessagingException {
         agreementLogic.receEmail();
     }

BIN
mall-server-api/src/main/resources/template/科室人员导入模版.xlsx