浏览代码

feat:缺失数据下载优化

chenjianhua 1 月之前
父节点
当前提交
2354278642

+ 2 - 0
service-base/src/main/java/com/simuwang/base/mapper/daq/ContactInformationMapper.java

@@ -25,4 +25,6 @@ public interface ContactInformationMapper extends BaseMapper<ContactInformationD
     List<ContactInformationDO> getAllRecords();
 
     ContactInformationDO selectByKey(ContactInformationDO contactInformationDO);
+
+    List<ContactInformationDO> selectIdList(@Param("idList") List<Integer> idList);
 }

+ 2 - 0
service-base/src/main/java/com/simuwang/base/mapper/daq/FundInfoMapper.java

@@ -62,4 +62,6 @@ public interface FundInfoMapper {
     List<FundInfoDO> searchFundInfoListByFundIdList(@Param("fundIdList")List<String> fundIdList);
 
     List<FundInfoDO> searchFundInfoListByFundNameList(@Param("fundNameList")List<String> fundNameList);
+
+    List<FundInfoDO> getCompanyNameByFundIdList(@Param("fundIdList")List<String> list);
 }

+ 9 - 0
service-base/src/main/resources/mapper/daq/ContactInformationMapper.xml

@@ -72,5 +72,14 @@
     select * from CONTACT_INFORMATION where isvalid=1
     and company_id =#{companyId} and contact_name=#{contactName} limit 1
   </select>
+    <select id="selectIdList" resultType="com.simuwang.base.pojo.dos.ContactInformationDO">
+      select id,company_id, contact_name, contact_email, contact_phone, contact_wechat, contact_position,
+             contact_remark, file_id, creatorid, createtime, updaterid,
+             updatetime, isvalid,open_status,is_receiver from CONTACT_INFORMATION where isvalid=1 and open_status=1
+             and id in
+            <foreach collection="idList" item="id" index="index" separator=",">
+              #{id}
+            </foreach>
+    </select>
 
 </mapper>

+ 9 - 0
service-base/src/main/resources/mapper/daq/FundInfoMapper.xml

@@ -305,4 +305,13 @@
             #{fundName}
         </foreach>
     </select>
+    <select id="getCompanyNameByFundIdList"  resultMap="BaseResultMap">
+        select info.fund_id,c.company_name as trust_company_name from pvn_company_info c
+                                       join pvn_fund_info info on info.trust_id=c.company_id
+        where info.fund_id in
+        <foreach collection="fundIdList" index="index" item="fundId" separator="," open="(" close=")">
+            #{fundId}
+        </foreach>
+        and info.isvalid=1 and c.isvalid=1
+    </select>
 </mapper>

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

@@ -25,4 +25,6 @@ public interface ContactInformationService {
     ResultVo uploadContactInformation(MultipartFile file);
 
     ResultVo sendEmail(List<MultipartFile> files, String contractId, String emailTitle, String templateCode, String emailBody);
+
+    List<ContactInformationDO> selectByIdList(List<Integer> idList);
 }

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

@@ -15,6 +15,7 @@ import com.simuwang.base.pojo.dto.EmailInfoDTO;
 import com.simuwang.base.pojo.dto.MailboxInfoDTO;
 import com.simuwang.base.pojo.vo.CompanyEmailConfigVO;
 import com.simuwang.manage.service.CompanyEmailConfigService;
+import com.simuwang.manage.service.ContactInformationService;
 import com.simuwang.shiro.utils.UserUtils;
 import com.smppw.common.pojo.ResultVo;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@@ -75,6 +76,8 @@ public class CompanyEmailConfigServiceImpl implements CompanyEmailConfigService
 
     @Autowired
     private ContactInformationServiceImpl contactInformationServiceImpl;
+    @Autowired
+    private ContactInformationService contactInformationService;
 
     @Override
     public ResultVo saveCompanyEmailConfig(List<CompanyEmailConfigVO> companyEmailConfigVOS) {
@@ -150,13 +153,13 @@ public class CompanyEmailConfigServiceImpl implements CompanyEmailConfigService
 
     @Override
     public void sendCompanyEmail(List<Integer> idList) {
-        List<CompanyEmailConfigDO> configDOList = companyEmailConfigMapper.selectCompanyEmailConfigByIdList(idList);
-        Map<String,List<CompanyEmailConfigDO>> companyListMap = configDOList.stream().collect(Collectors.groupingBy(e -> e.getCompanyId()));
+        List<ContactInformationDO> configDOList = contactInformationService.selectByIdList(idList);
+        Map<String,List<ContactInformationDO>> 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(";");
+            List<ContactInformationDO> configDOS = companyListMap.get(companyId);
+            for(ContactInformationDO configDO: configDOS){
+                emails.append(configDO.getContactEmail()).append(";");
             }
             //把缺失数据的邮件发送到该公司名下的邮箱地址
             sendEmail(companyId,emails.toString());
@@ -214,6 +217,7 @@ public class CompanyEmailConfigServiceImpl implements CompanyEmailConfigService
         if(fundEmailDeletionInfoDOList.isEmpty()){
             return;
         }
+        fundEmailDeletionInfoDOList = fundEmailDeletionInfoDOList.stream().filter(e -> e.getChannelId() != null).collect(Collectors.toList());
         Map<Integer, List<EmailDeletionInfoDO>> channelDeletionMap = fundEmailDeletionInfoDOList.stream().collect(Collectors.groupingBy(EmailDeletionInfoDO::getChannelId));
         FundReportFrequencyDO fundReportFrequencyDO = fundReportFrequencyMapper.getFrequencyByFundId(fundId);
         if(fundReportFrequencyDO == null){
@@ -300,6 +304,7 @@ public class CompanyEmailConfigServiceImpl implements CompanyEmailConfigService
         if(fundEmailDeletionInfoDOList.isEmpty()){
             return;
         }
+        fundEmailDeletionInfoDOList = fundEmailDeletionInfoDOList.stream().filter(e -> e.getChannelId() != null).collect(Collectors.toList());
         Map<Integer, List<EmailDeletionInfoDO>> channelDeletionMap = fundEmailDeletionInfoDOList.stream().collect(Collectors.groupingBy(EmailDeletionInfoDO::getChannelId));
         FundReportFrequencyDO fundReportFrequencyDO = fundReportFrequencyMapper.getFrequencyByFundId(fundId);
         if(fundReportFrequencyDO == null){
@@ -452,13 +457,13 @@ public class CompanyEmailConfigServiceImpl implements CompanyEmailConfigService
 
     @Override
     public void sendDistributeEmailById(List<Integer> idList) {
-        List<CompanyEmailConfigDO> configDOList = companyEmailConfigMapper.selectCompanyEmailConfigByIdList(idList);
-        Map<String,List<CompanyEmailConfigDO>> companyListMap = configDOList.stream().collect(Collectors.groupingBy(e -> e.getCompanyId()));
+        List<ContactInformationDO> configDOList = contactInformationService.selectByIdList(idList);
+        Map<String,List<ContactInformationDO>> 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(";");
+            List<ContactInformationDO> configDOS = companyListMap.get(companyId);
+            for(ContactInformationDO configDO: configDOS){
+                emails.append(configDO.getContactEmail()).append(";");
             }
             //把缺失数据的邮件发送到该公司名下的邮箱地址
             sendDistributeEmail(companyId,emails.toString());

+ 5 - 0
service-manage/src/main/java/com/simuwang/manage/service/impl/ContactInformationServiceImpl.java

@@ -205,6 +205,11 @@ public class ContactInformationServiceImpl implements ContactInformationService
         return vo;
     }
 
+    @Override
+    public List<ContactInformationDO> selectByIdList(List<Integer> idList) {
+        return contactInformationMapper.selectIdList(idList);
+    }
+
 
     private MailboxInfoDTO getFromEmailInfo(){
         MailboxInfoDTO dto = new MailboxInfoDTO();

+ 9 - 2
service-manage/src/main/java/com/simuwang/manage/service/impl/DeletionServiceImpl.java

@@ -140,10 +140,17 @@ public class DeletionServiceImpl implements DeletionService {
         List<DeletionDownParam> deletionDownParamList = fundDeletionListVO.getDeletionDownParamList();
         for(DeletionDownParam deletionDownParam : deletionDownParamList){
             List<FundDeletionInfoDO> deletionInfoDOList = deletionInfoMapper.selectFundDeletionInfoVOList(deletionDownParam.getFundId(),deletionDownParam.getDeletionType());
+            Set<String> fundIdList = deletionInfoDOList.stream().map(FundDeletionInfoDO::getFundId).collect(Collectors.toSet());
+            List<FundInfoDO> fundInfoDOList = fundInfoMapper.searchFundInfoListByFundIdList(fundIdList.stream().toList());
+            Map<String,String> fundIdNameMap = new HashMap<>();
+            fundInfoDOList.forEach(infoDO -> fundIdNameMap.put(infoDO.getFundId(),infoDO.getFundName()));
+            List<FundInfoDO> fundIdCompanyNameList = fundInfoMapper.getCompanyNameByFundIdList(fundIdList.stream().toList());
+            Map<String,String> companyNameMap = new HashMap<>();
+            fundIdCompanyNameList.forEach(info -> companyNameMap.put(info.getFundId(),info.getTrustCompanyName()));
             for(FundDeletionInfoDO infoDO : deletionInfoDOList){
                 ExcelDeletionInfoDTO dto = new ExcelDeletionInfoDTO();
-                dto.setFundName(fundInfoMapper.getFundNameByFundId(infoDO.getFundId()));
-                dto.setCompanyName(fundInfoMapper.getCompanyNameByFundId(infoDO.getFundId()));
+                dto.setFundName(fundIdNameMap.get(infoDO.getFundId()));
+                dto.setCompanyName(companyNameMap.get(infoDO.getFundId()));
                 dto.setDeletionType(DeletionType.getDeletionTypeByCode(infoDO.getDeletionType()).getInfo());
                 dto.setDeletionDate(infoDO.getDeletionDate());
                 dto.setRemark(infoDO.getRemark());