diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java index cd962c8..378acca 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java @@ -31,11 +31,9 @@ import org.springframework.stereotype.Component; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; +import java.text.DecimalFormat; import java.util.*; -import java.util.concurrent.Callable; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.Future; +import java.util.concurrent.*; /** * @@ -109,7 +107,7 @@ public class BabyBookbuildingFacade { private AutoMatchFacade autoMatchFacade; - private static ExecutorService pool = Executors.newFixedThreadPool(4); + private static ExecutorService pool = Executors.newFixedThreadPool(10); public BaseResponse getBabyBase(String babyId) { @@ -530,7 +528,7 @@ public class BabyBookbuildingFacade { return; } - ExceptionUtils.catchException("儿童建档1---------->"+babyModel.getMphone()+";name="+babyModel.getName()); + ExceptionUtils.catchException("儿童建档1---------->" + babyModel.getMphone() + ";name=" + babyModel.getName()); SmsTemplateQuery query = new SmsTemplateQuery(); query.setYn(YnEnums.YES.getId()); @@ -1956,41 +1954,108 @@ public class BabyBookbuildingFacade { List> datas = new ArrayList<>(); BabyModelQuery babyQuery = new BabyModelQuery(); babyQuery.setHospitalId(String.valueOf(hospitalId)); - List models = getBabayListByCondition(request, false, babyQuery); - if (CollectionUtils.isNotEmpty(models)) { - for (BabyModel model : models) { - Map data = new HashMap<>(); - if (model.getLastHighRisk() == null || model.getLastHighRisk() == 0) { - data.put("highRisk", "健康"); - } else { - data.put("highRisk", "高危"); + List ms = getBabayListByCondition(request, false, babyQuery); + + if (CollectionUtils.isNotEmpty(ms)) { + + int batchSize = 100; + int end = 0; + List futures = new ArrayList<>(); + for (int i = 0; i < ms.size(); i += batchSize) { + end = (end + batchSize); + if (end > ms.size()) { + end = ms.size(); } - data.put("sex", StringUtils.emptyDeal(SexEnum.getTextById(model.getSex()))); - data.put("babyName", StringUtils.emptyDeal(model.getName())); - data.put("birthday", StringUtils.emptyDeal(DateUtil.getyyyy_MM_dd(model.getBirth()))); - data.put("mommyName", StringUtils.emptyDeal(model.getMname())); - data.put("mommnyPhone", StringUtils.emptyDeal(model.getMphone())); - data.put("serviceType", StringUtils.emptyDeal(model.getServiceType() == null ? "" : ServiceTypeEnums.getTitleById(model.getServiceType()))); - data.put("serviceStatus", StringUtils.emptyDeal(model.getServiceStatus() == null ? "" : ServiceStatusEnums.getNameById(model.getServiceStatus()))); - data.put("nextDate", StringUtils.emptyDeal(DateUtil.getyyyy_MM_dd(model.getNextDate()))); - data.put("monthAge", StringUtils.emptyDeal(DateUtil.getBabyMonthAge(model.getBirth(), new Date()))); - - String diagnose = ""; - if (StringUtils.isNotEmpty(model.getPid())) { - List diagList = babyCheckFacade.getBabyLastDiagnose(model.getPid()); - if (CollectionUtils.isNotEmpty(diagList)) { - for (Object obj : diagList) { - BasicConfig basicConfig = basicConfigService.getOneBasicConfigById((String) obj); - if (basicConfig != null) { - diagnose += basicConfig.getName() + " "; + + final List models = ms.subList(i, end); + Callable c = new Callable() + { + @Override + public List> call() throws Exception { + List> results = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(models)) { + for (BabyModel model : models) { + Map data = new HashMap<>(); + if (model.getLastHighRisk() == null || model.getLastHighRisk() == 0) { + data.put("highRisk", "健康"); + } else { + data.put("highRisk", "高危"); + } + data.put("sex", StringUtils.emptyDeal(SexEnum.getTextById(model.getSex()))); + data.put("babyName", StringUtils.emptyDeal(model.getName())); + data.put("birthday", StringUtils.emptyDeal(DateUtil.getyyyy_MM_dd(model.getBirth()))); + data.put("mommyName", StringUtils.emptyDeal(model.getMname())); + data.put("mommnyPhone", StringUtils.emptyDeal(model.getMphone())); + data.put("serviceType", StringUtils.emptyDeal(model.getServiceType() == null ? "" : ServiceTypeEnums.getTitleById(model.getServiceType()))); + data.put("serviceStatus", StringUtils.emptyDeal(model.getServiceStatus() == null ? "" : ServiceStatusEnums.getNameById(model.getServiceStatus()))); + data.put("nextDate", StringUtils.emptyDeal(DateUtil.getyyyy_MM_dd(model.getNextDate()))); + data.put("monthAge", StringUtils.emptyDeal(DateUtil.getBabyMonthAge(model.getBirth(), new Date()))); + + String diagnose = ""; + if (StringUtils.isNotEmpty(model.getPid())) { + List diagList = babyCheckFacade.getBabyLastDiagnose(model.getPid()); + if (CollectionUtils.isNotEmpty(diagList)) { + for (Object obj : diagList) { + BasicConfig basicConfig = basicConfigService.getOneBasicConfigById((String) obj); + if (basicConfig != null) { + diagnose += basicConfig.getName() + " "; + } + } + } + } + data.put("diagnose", diagnose); + results.add(data); } } + return results; } + }; + + Future f = pool.submit(c); + futures.add(f); + } + for (Future f : futures) { + try { + datas.addAll((List) f.get(30, TimeUnit.SECONDS)); + } catch (Exception e) { + ExceptionUtils.catchException(e, "baby list export."); } - data.put("diagnose", diagnose); - datas.add(data); } } +// if (CollectionUtils.isNotEmpty(models)) { +// for (BabyModel model : models) { +// Map data = new HashMap<>(); +// if (model.getLastHighRisk() == null || model.getLastHighRisk() == 0) { +// data.put("highRisk", "健康"); +// } else { +// data.put("highRisk", "高危"); +// } +// data.put("sex", StringUtils.emptyDeal(SexEnum.getTextById(model.getSex()))); +// data.put("babyName", StringUtils.emptyDeal(model.getName())); +// data.put("birthday", StringUtils.emptyDeal(DateUtil.getyyyy_MM_dd(model.getBirth()))); +// data.put("mommyName", StringUtils.emptyDeal(model.getMname())); +// data.put("mommnyPhone", StringUtils.emptyDeal(model.getMphone())); +// data.put("serviceType", StringUtils.emptyDeal(model.getServiceType() == null ? "" : ServiceTypeEnums.getTitleById(model.getServiceType()))); +// data.put("serviceStatus", StringUtils.emptyDeal(model.getServiceStatus() == null ? "" : ServiceStatusEnums.getNameById(model.getServiceStatus()))); +// data.put("nextDate", StringUtils.emptyDeal(DateUtil.getyyyy_MM_dd(model.getNextDate()))); +// data.put("monthAge", StringUtils.emptyDeal(DateUtil.getBabyMonthAge(model.getBirth(), new Date()))); +// +// String diagnose = ""; +// if (StringUtils.isNotEmpty(model.getPid())) { +// List diagList = babyCheckFacade.getBabyLastDiagnose(model.getPid()); +// if (CollectionUtils.isNotEmpty(diagList)) { +// for (Object obj : diagList) { +// BasicConfig basicConfig = basicConfigService.getOneBasicConfigById((String) obj); +// if (basicConfig != null) { +// diagnose += basicConfig.getName() + " "; +// } +// } +// } +// } +// data.put("diagnose", diagnose); +// datas.add(data); +// } +// } OutputStream out = httpServletResponse.getOutputStream(); Map cnames = new LinkedHashMap<>(); cnames.put("sex", "性别");