‘linchangsheng’ 5 months ago
parent
commit
c1ef3dc012

+ 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();
     }
 

+ 289 - 6
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() {
 
 

+ 3 - 1
mall-server-api/src/main/java/com/gree/mall/manager/schedule/InsureEmailSchedule.java

@@ -25,9 +25,11 @@ public class InsureEmailSchedule {
 
 
     //每小时执行1次
-   // @Scheduled(fixedDelay =60* 1000)
+    @Scheduled(fixedDelay =60* 1000)
     public void task() throws IOException {
         agreementLogic.sendEmailSche();
+        agreementLogic.sendEmailScheEM();
+        agreementLogic.sendEmailScheIN();
     }