|
@@ -47,6 +47,9 @@ import java.time.format.DateTimeFormatter;
|
|
|
import java.time.format.DateTimeParseException;
|
|
|
import java.time.temporal.ChronoUnit;
|
|
|
import java.util.*;
|
|
|
+import java.util.concurrent.CountDownLatch;
|
|
|
+import java.util.concurrent.Executor;
|
|
|
+import java.util.concurrent.Executors;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -62,7 +65,7 @@ import java.util.stream.Collectors;
|
|
|
public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> implements ReportService {
|
|
|
// @Resource
|
|
|
// AsyncTaskExecutor asyncTaskExecutor;//注入线程池对象
|
|
|
-
|
|
|
+ private final static Executor executor = Executors.newFixedThreadPool(3);//启用多线程
|
|
|
@Value("${wx.template_report_pass}")
|
|
|
public String TEMPLATE_REPORT_PASS;
|
|
|
@Value("${wx.template_report_reject}")
|
|
@@ -3993,7 +3996,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
return msg;
|
|
|
}
|
|
|
ThirdPartyInterface thirdPartyInterface = thirdPartyInterfaceList.get(0);
|
|
|
- List<ReportLog> reportLogList = reportLogMapper.selectList(new QueryWrapper<ReportLog>().eq("company_id", thirdPartyInterface.getCompanyId()).orderByAsc("operate_date"));
|
|
|
+ List<ReportLog> reportLogList = reportLogMapper.selectList(new QueryWrapper<ReportLog>().eq("company_id", thirdPartyInterface.getCompanyId()).ge("operate_date",openDate.atTime(LocalTime.now())).orderByAsc("operate_date"));
|
|
|
List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", thirdPartyInterface.getCompanyId()));
|
|
|
if(LocalDateTime.now().isAfter(thirdPartyInterface.getExpireTime())){
|
|
|
msg.setError("token过期失效");
|
|
@@ -4001,37 +4004,49 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
if(token.equals(thirdPartyInterface.getToken())){
|
|
|
List<HashMap<String, Object>> allReportByDate = reportMapper.getAllReportByDate(startDate,thirdPartyInterface.getCompanyId(), null, endDate, null, 1, null);
|
|
|
+ final CountDownLatch latch=new CountDownLatch(allReportByDate.size());
|
|
|
for (HashMap<String, Object> map : allReportByDate) {
|
|
|
- java.sql.Date sqlCreateDate= (java.sql.Date) map.get("createDate");
|
|
|
- java.sql.Timestamp sqlProjectAuditTime= (Timestamp) map.get("projectAuditTime");
|
|
|
- java.sql.Timestamp sqlTime= (Timestamp) map.get("time");
|
|
|
- if(sqlCreateDate!=null){
|
|
|
- LocalDate createDate = sqlCreateDate.toLocalDate();
|
|
|
- map.put("createDate",df.format(createDate));
|
|
|
- }
|
|
|
- if(sqlProjectAuditTime!=null){
|
|
|
- LocalDateTime projectAuditTime = sqlProjectAuditTime.toLocalDateTime();
|
|
|
- map.put("projectAuditTime",projectAuditTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
|
|
- }
|
|
|
- if(sqlTime!=null){
|
|
|
- LocalDateTime time = sqlTime.toLocalDateTime();
|
|
|
- map.put("time",time.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
|
|
- }
|
|
|
- List<ReportLog> item=new ArrayList<>();
|
|
|
- Integer reportId = (Integer) map.get("id");
|
|
|
- for (ReportLog reportLog : reportLogList) {
|
|
|
- List<String> list = Arrays.asList(reportLog.getReportIds().split(","));
|
|
|
- reportLog.setCreatorName(!userList.stream().filter(
|
|
|
- ul->ul.getId().equals(reportLog.getCreatorId())).findFirst().isPresent()?"":userList.stream().filter(
|
|
|
- ul->ul.getId().equals(reportLog.getCreatorId())).findFirst().get().getName());
|
|
|
- reportLog.setOperateName(!userList.stream().filter(
|
|
|
- ul->ul.getId().equals(reportLog.getOperatorId())).findFirst().isPresent()?"":userList.stream().filter(
|
|
|
- ul->ul.getId().equals(reportLog.getOperatorId())).findFirst().get().getName());
|
|
|
- if(list.contains(String.valueOf(reportId))&&!reportLog.getMsg().contains("提交")){
|
|
|
- item.add(reportLog);
|
|
|
+ executor.execute(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ java.sql.Date sqlCreateDate= (java.sql.Date) map.get("createDate");
|
|
|
+ java.sql.Timestamp sqlProjectAuditTime= (Timestamp) map.get("projectAuditTime");
|
|
|
+ java.sql.Timestamp sqlTime= (Timestamp) map.get("time");
|
|
|
+ if(sqlCreateDate!=null){
|
|
|
+ LocalDate createDate = sqlCreateDate.toLocalDate();
|
|
|
+ map.put("createDate",df.format(createDate));
|
|
|
+ }
|
|
|
+ if(sqlProjectAuditTime!=null){
|
|
|
+ LocalDateTime projectAuditTime = sqlProjectAuditTime.toLocalDateTime();
|
|
|
+ map.put("projectAuditTime",projectAuditTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
|
|
+ }
|
|
|
+ if(sqlTime!=null){
|
|
|
+ LocalDateTime time = sqlTime.toLocalDateTime();
|
|
|
+ map.put("time",time.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
|
|
+ }
|
|
|
+ List<ReportLog> item=new ArrayList<>();
|
|
|
+ Integer reportId = (Integer) map.get("id");
|
|
|
+ for (ReportLog reportLog : reportLogList) {
|
|
|
+ List<String> list = Arrays.asList(reportLog.getReportIds().split(","));
|
|
|
+ reportLog.setCreatorName(!userList.stream().filter(
|
|
|
+ ul->ul.getId().equals(reportLog.getCreatorId())).findFirst().isPresent()?"":userList.stream().filter(
|
|
|
+ ul->ul.getId().equals(reportLog.getCreatorId())).findFirst().get().getName());
|
|
|
+ reportLog.setOperateName(!userList.stream().filter(
|
|
|
+ ul->ul.getId().equals(reportLog.getOperatorId())).findFirst().isPresent()?"":userList.stream().filter(
|
|
|
+ ul->ul.getId().equals(reportLog.getOperatorId())).findFirst().get().getName());
|
|
|
+ if(list.contains(String.valueOf(reportId))&&!reportLog.getMsg().contains("提交")){
|
|
|
+ item.add(reportLog);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ map.put("checkLog",item);
|
|
|
+ latch.countDown();
|
|
|
}
|
|
|
- }
|
|
|
- map.put("checkLog",item);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ latch.await();
|
|
|
+ } catch (InterruptedException e) {
|
|
|
+ e.printStackTrace();
|
|
|
}
|
|
|
msg.data=allReportByDate;
|
|
|
}
|