Sfoglia il codice sorgente

Merge branch 'develop' of http://112.74.196.215:3000/Tech2/data-daq into develop

wangzaijun 7 mesi fa
parent
commit
bdc07645d7

+ 4 - 0
service-base/src/main/java/com/simuwang/base/mapper/CompanyEmailConfigMapper.java

@@ -35,4 +35,8 @@ public interface CompanyEmailConfigMapper extends BaseMapper<CompanyEmailConfigD
     List<CompanyEmailConfigVO> searchEmailConfigByCompanyId(@Param("companyId")String companyId);
 
     CompanyEmailConfigDO selectEmailConfig(@Param("companyId")String companyId,@Param("email") String email);
+
+    List<CompanyEmailConfigDO> getAllCompanyConfig();
+
+    List<CompanyEmailConfigDO> selectCompanyEmailConfigByIdList(@Param("idList") List<Integer> idList);
 }

+ 12 - 0
service-base/src/main/resources/mapper/CompanyEmailConfigMapper.xml

@@ -102,4 +102,16 @@
         select id,company_id,company_name,email,open_status,remark from
             PPW_EMAIL.company_email_config where isvalid =1 and company_id=#{companyId} and email=#{email} limit 1
     </select>
+    <select id="getAllCompanyConfig" resultMap="BaseResultMap">
+        select id,company_id,company_name,email,open_status,remark from
+            PPW_EMAIL.company_email_config where isvalid =1 and open_status=1
+    </select>
+    <select id="selectCompanyEmailConfigByIdList" resultMap="BaseResultMap">
+        select id,company_id,company_name,email,open_status,remark from
+            PPW_EMAIL.company_email_config where isvalid =1 and open_status=1
+        and id in
+        <foreach item="id" collection="idList" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </select>
 </mapper>

+ 2 - 0
service-manage/src/main/java/com/simuwang/manage/service/CompanyEmailConfigService.java

@@ -20,4 +20,6 @@ public interface CompanyEmailConfigService {
     void updateCompanyEmailConfig(CompanyEmailConfigVO companyEmailConfigVO);
 
     void sendCompanyEmail(List<Integer> idList);
+
+    void sendEmail(String companyId, String email);
 }

+ 22 - 10
service-manage/src/main/java/com/simuwang/manage/service/impl/CompanyEmailConfigServiceImpl.java

@@ -32,6 +32,7 @@ import org.springframework.stereotype.Service;
 import java.io.File;
 import java.io.IOException;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * FileName: CompanyEmailConfigServiceImpl
@@ -130,16 +131,21 @@ public class CompanyEmailConfigServiceImpl implements CompanyEmailConfigService
 
     @Override
     public void sendCompanyEmail(List<Integer> idList) {
-        for(Integer id : idList){
-            CompanyEmailConfigDO configDO = companyEmailConfigMapper.selectCompanyEmailConfigById(id);
-            //把缺失数据的邮件发送到该公司名下的邮箱地址
-            if(configDO.getOpenStatus().equals(OpenStatusType.YES.getCode())){
-                sendEmail(configDO.getCompanyId(),configDO.getEmail());
+        List<CompanyEmailConfigDO> configDOList = companyEmailConfigMapper.selectCompanyEmailConfigByIdList(idList);
+        Map<String,List<CompanyEmailConfigDO>> companyListMap = configDOList.stream().collect(Collectors.groupingBy(e -> e.getCompanyId()));
+        for(String companyId : companyListMap.keySet()){
+            StringBuffer emails = new StringBuffer();
+            List<CompanyEmailConfigDO> configDOS = companyListMap.get(companyId);
+            for(CompanyEmailConfigDO configDO: configDOS){
+                emails.append(configDO.getEmail()).append(";");
             }
+            //把缺失数据的邮件发送到该公司名下的邮箱地址
+            sendEmail(companyId,emails.toString());
         }
     }
+    @Override
     //邮件校验处理
-    private void sendEmail(String companyId, String email) {
+    public void sendEmail(String companyId, String emails) {
         List<String> fundIdList = fundInfoMapper.getFundIdByCompanyId(companyId);
         if(fundIdList.size() < 1){
             return;
@@ -156,13 +162,19 @@ public class CompanyEmailConfigServiceImpl implements CompanyEmailConfigService
             file.setExecutable(true);
             try {
                 MailboxInfoDTO dto = getFromEmailInfo();
-                EmailUtil.senEmail(dto,email,file,javaMailSender);
+                EmailUtil.senEmail(dto,emails,file,javaMailSender);
                 //发送成功之后修改数据为已发送
                 deletionInfoMapper.updateSendStatusByFundId(fundIdList);
                 //写入发送历史
-                saveCompanyEmailSendHistory(companyId,email,1,ResultCode.SEND_SUCCESS.getMsg());
+                String[] emailList = emails.split(";");
+                for(String email : emailList){
+                    saveCompanyEmailSendHistory(companyId,email,1,ResultCode.SEND_SUCCESS.getMsg());
+                }
             } catch (Exception e) {
-                saveCompanyEmailSendHistory(companyId,email,0,e.getMessage());
+                String[] emailList = emails.split(";");
+                for(String email : emailList){
+                    saveCompanyEmailSendHistory(companyId,email,0,e.getMessage());
+                }
                 throw new RuntimeException(e);
             }
         }
@@ -211,7 +223,7 @@ public class CompanyEmailConfigServiceImpl implements CompanyEmailConfigService
         }
         values.put(sheetName,dataList);
         HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(sheetName,head,values,null);
-        File file = new File(path+"/"+DateUtils.getDate()+"基金缺失明细.xls");
+        File file = new File(path+"/"+DateUtils.format(new Date(),DateUtils.YYYYMMDDHHMMSS)+"基金缺失明细.xls");
         if(!file.exists()){
             try {
                 file.createNewFile();

+ 13 - 13
service-manage/src/main/java/com/simuwang/manage/service/impl/ParseEmailServiceImpl.java

@@ -173,21 +173,21 @@ public class ParseEmailServiceImpl implements ParseEmailService {
                     }
                     dataList.add(navDO);
                 }
-                //处理规模
-                for(EmailParseDetailDO assetDO : assetList){
-                    int idx=0;
-                    for(EmailParseDetailDO dataDO : dataList){
-                        if((dataDO.getFundId() != null && dataDO.getFundId().equals(assetDO.getFundId()))
-                        || (dataDO.getRegisterNumber() != null && dataDO.getRegisterNumber().equals(assetDO.getRegisterNumber()))
-                        || (dataDO.getFundName() != null && dataDO.getFundName().equals(assetDO.getFundName()))){
-                            idx++;
-                        }
-                    }
-                    //没有找到说明只有规模没有净值
-                    if(idx == 0){
-                        dataList.add(assetDO);
+            }
+            //处理规模
+            for(EmailParseDetailDO assetDO : assetList){
+                int idx=0;
+                for(EmailParseDetailDO dataDO : dataList){
+                    if((dataDO.getFundId() != null && dataDO.getFundId().equals(assetDO.getFundId()))
+                            || (dataDO.getRegisterNumber() != null && dataDO.getRegisterNumber().equals(assetDO.getRegisterNumber()))
+                            || (dataDO.getFundName() != null && dataDO.getFundName().equals(assetDO.getFundName()))){
+                        idx++;
                     }
                 }
+                //没有找到说明只有规模没有净值
+                if(idx == 0){
+                    dataList.add(assetDO);
+                }
             }
         }
         long total = dataList.size();

+ 28 - 0
service-manage/src/main/java/com/simuwang/manage/task/SendCompanyEmailTask.java

@@ -1,9 +1,17 @@
 package com.simuwang.manage.task;
 
+import com.simuwang.base.mapper.CompanyEmailConfigMapper;
+import com.simuwang.base.pojo.dos.CompanyEmailConfigDO;
+import com.simuwang.manage.service.CompanyEmailConfigService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
 /**
  * FileName: SendCompanyEmailTask
  * Author:   chenjianhua
@@ -13,4 +21,24 @@ import org.springframework.stereotype.Component;
 @EnableScheduling
 @Component
 public class SendCompanyEmailTask {
+
+
+    @Autowired
+    private CompanyEmailConfigMapper companyEmailConfigMapper;
+
+    @Autowired
+    private CompanyEmailConfigService companyEmailConfigService;
+    @Scheduled(cron = "0 0/3 * * * ?")
+    public void sendEmail(){
+        List<CompanyEmailConfigDO> configDOList = companyEmailConfigMapper.getAllCompanyConfig();
+        Map<String,List<CompanyEmailConfigDO>> companyListMap = configDOList.stream().collect(Collectors.groupingBy(e -> e.getCompanyId()));
+        for(String companyId : companyListMap.keySet()){
+            List<CompanyEmailConfigDO> configDOS = companyListMap.get(companyId);
+            StringBuffer emails = new StringBuffer();
+            for(CompanyEmailConfigDO configDO : configDOS){
+                emails.append(configDO.getEmail()).append(";");
+            }
+            companyEmailConfigService.sendEmail(companyId,emails.toString());
+        }
+    }
 }