fix 87894 年度数据锁定--新增,删除,批量删除性能需要调整

This commit is contained in:
lijiarao
2024-07-31 16:54:23 +08:00
parent 9f019b3c43
commit 511dcaa46c
@@ -43,6 +43,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -115,6 +116,7 @@ public class AnnualDataLockingService extends ServiceImpl<AnnualDataLockingMappe
throw new JeroBootException(year+"年年度数据已经锁定"); throw new JeroBootException(year+"年年度数据已经锁定");
} }
this.save(annualDataLocking); this.save(annualDataLocking);
CompletableFuture.supplyAsync(() -> {
//第一步先获取所有企业和联系人 //第一步先获取所有企业和联系人
List<PayMeetingSituation> meetingSituations = meetingSituationMapper.listByYear(year); List<PayMeetingSituation> meetingSituations = meetingSituationMapper.listByYear(year);
List<PayWorkingGroupSubItem> workingGroupSubItems = payWorkingGroupSubItemMapper.listByYear(year); List<PayWorkingGroupSubItem> workingGroupSubItems = payWorkingGroupSubItemMapper.listByYear(year);
@@ -129,7 +131,7 @@ public class AnnualDataLockingService extends ServiceImpl<AnnualDataLockingMappe
ArrayList<String> distinctContactIdList = getDistinctContactIdList(meetingSituations, workingGroupSubItems, workingGroupSubItemContacts, payCommonProjects, memberProjectSubitems, tbMemberProjectSubitems,packCompanyList); ArrayList<String> distinctContactIdList = getDistinctContactIdList(meetingSituations, workingGroupSubItems, workingGroupSubItemContacts, payCommonProjects, memberProjectSubitems, tbMemberProjectSubitems,packCompanyList);
//如果企业或联系人为空那么直接返回 //如果企业或联系人为空那么直接返回
if (CollectionUtil.isEmpty(distinctCompanyIdList)||CollectionUtil.isEmpty(distinctContactIdList)){ if (CollectionUtil.isEmpty(distinctCompanyIdList)||CollectionUtil.isEmpty(distinctContactIdList)){
return; return "";
} }
//生成企业和联系人临时数据 //生成企业和联系人临时数据
List<PayCompanyManagementTemporary> companyTemporaryList = companyTemporaryService.insertList(distinctCompanyIdList,year); List<PayCompanyManagementTemporary> companyTemporaryList = companyTemporaryService.insertList(distinctCompanyIdList,year);
@@ -334,6 +336,9 @@ public class AnnualDataLockingService extends ServiceImpl<AnnualDataLockingMappe
updatePackCompanyList.add(update); updatePackCompanyList.add(update);
} }
packCompanyService.updateBatchById(updatePackCompanyList); packCompanyService.updateBatchById(updatePackCompanyList);
return "";
});
} }
@NotNull @NotNull
@@ -426,6 +431,7 @@ public class AnnualDataLockingService extends ServiceImpl<AnnualDataLockingMappe
AnnualDataLocking annualDataLocking = this.getById(id); AnnualDataLocking annualDataLocking = this.getById(id);
this.removeById(id); this.removeById(id);
String year = annualDataLocking.getYear(); String year = annualDataLocking.getYear();
CompletableFuture.supplyAsync(() -> {
//会议项目 //会议项目
List<PayMeetingSituation> updateMeetingSituationList = new ArrayList<>(); List<PayMeetingSituation> updateMeetingSituationList = new ArrayList<>();
List<PayMeetingSituation> meetingSituations = meetingSituationMapper.listByYear(year); List<PayMeetingSituation> meetingSituations = meetingSituationMapper.listByYear(year);
@@ -547,6 +553,8 @@ public class AnnualDataLockingService extends ServiceImpl<AnnualDataLockingMappe
updatePackCompanyList.add(update); updatePackCompanyList.add(update);
} }
packCompanyService.updateBatchById(updatePackCompanyList); packCompanyService.updateBatchById(updatePackCompanyList);
return "";
});
} }