From 2e1f9aa6203409345c2952914d44623a143c8644 Mon Sep 17 00:00:00 2001 From: dongqin <123456> Date: Tue, 11 Jun 2019 09:09:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operate/web/facade/MatDeliverFacade.java | 2 +- .../web/facade/SaveByV2ThreadPoolFacade.java | 10 ++++-- .../operate/web/worker/SyncV2HistoryWorkerx.java | 39 +++++++++++++--------- 3 files changed, 32 insertions(+), 19 deletions(-) diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java index 35f86a6..2ab1487 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java @@ -3007,7 +3007,7 @@ public class MatDeliverFacade { } } - ExecutorService service = new ThreadPoolExecutor(5, 10, 9000, TimeUnit.MILLISECONDS, + ExecutorService service = new ThreadPoolExecutor(3, 6, 9000, TimeUnit.MILLISECONDS, new ArrayBlockingQueue(1), new RejectedExecutionHandler() { @Override diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SaveByV2ThreadPoolFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SaveByV2ThreadPoolFacade.java index 09b5a00..f4e24e4 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SaveByV2ThreadPoolFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SaveByV2ThreadPoolFacade.java @@ -23,6 +23,7 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; +import java.util.concurrent.atomic.AtomicInteger; @Component public class SaveByV2ThreadPoolFacade { @@ -49,6 +50,11 @@ public class SaveByV2ThreadPoolFacade { String startTime = param.getStartTime(); String endTime = param.getEndTime(); Connection connection = null; + // 同步计数器 + AtomicInteger okSize=new AtomicInteger(0); + AtomicInteger existSize=new AtomicInteger(0); + AtomicInteger errorSize=new AtomicInteger(0); + try { connection = bookbuildingFacade.getConnection(); String sql = getSqlString(startTime, endTime); @@ -63,7 +69,7 @@ public class SaveByV2ThreadPoolFacade { if (end > lists.size()) { end = lists.size(); } - Future f = commonThreadPool.submit(new SyncV2HistoryWorkerx(bookbuildingFacade, lists.subList(i, end), mongoTemplate)); + Future f = commonThreadPool.submit(new SyncV2HistoryWorkerx(bookbuildingFacade, lists.subList(i, end), mongoTemplate, okSize, existSize, errorSize)); } } @@ -79,7 +85,7 @@ public class SaveByV2ThreadPoolFacade { } } } - return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); + return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("同步结果: ok ===>" + okSize + "exist===>" + existSize + "error===>" + errorSize); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/SyncV2HistoryWorkerx.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/SyncV2HistoryWorkerx.java index 6aeaa69..84fe28b 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/SyncV2HistoryWorkerx.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/SyncV2HistoryWorkerx.java @@ -1,24 +1,12 @@ package com.lyms.platform.operate.web.worker; -import com.lyms.platform.biz.service.AntenatalExaminationService; -import com.lyms.platform.biz.service.PatientsService; -import com.lyms.platform.biz.service.PostReviewService; -import com.lyms.platform.common.enums.YnEnums; +import com.lyms.platform.common.constants.ErrorCodeConstants; import com.lyms.platform.common.result.BaseObjectResponse; import com.lyms.platform.common.utils.DateUtil; -import com.lyms.platform.common.utils.ExceptionUtils; -import com.lyms.platform.operate.web.facade.AntenatalExaminationFacade; import com.lyms.platform.operate.web.facade.BookbuildingFacade; import com.lyms.platform.operate.web.request.SyncV2HistoryRequest; import com.lyms.platform.operate.web.request.YunBookbuildingAddRequest; -import com.lyms.platform.pojo.AntExChuModel; -import com.lyms.platform.pojo.AntenatalExaminationModel; import com.lyms.platform.pojo.Patients; -import com.lyms.platform.query.AntExChuQuery; -import com.lyms.platform.query.AntExQuery; -import com.lyms.platform.query.PostReviewQuery; -import org.apache.commons.collections.CollectionUtils; -import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; @@ -26,7 +14,7 @@ import org.springframework.data.mongodb.core.query.Query; import java.util.Date; import java.util.List; import java.util.concurrent.Callable; -import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.AtomicInteger; /** * 纠正数据线程 @@ -41,10 +29,24 @@ public class SyncV2HistoryWorkerx implements Callable { private MongoTemplate mongoTemplate; - public SyncV2HistoryWorkerx(BookbuildingFacade bookbuildingFacade, List lists, MongoTemplate mongoTemplate) { + private AtomicInteger okSize; + private AtomicInteger existSize; + private AtomicInteger errorSize; + + public SyncV2HistoryWorkerx(BookbuildingFacade bookbuildingFacade, + List lists, + MongoTemplate mongoTemplate, + AtomicInteger okSize, + AtomicInteger existSize, + AtomicInteger errorSize + ) { this.bookbuildingFacade = bookbuildingFacade; this.lists = lists; this.mongoTemplate = mongoTemplate; + this.okSize = okSize; + this.existSize = existSize; + this.errorSize = errorSize; + } @Override @@ -53,6 +55,7 @@ public class SyncV2HistoryWorkerx implements Callable { for (YunBookbuildingAddRequest list : lists) { Patients patients = mongoTemplate.findOne(Query.query(Criteria.where("cardNo").is(list.getPregnantCertificateNum())), Patients.class); if (patients != null) { + existSize.incrementAndGet(); continue; } @@ -60,7 +63,11 @@ public class SyncV2HistoryWorkerx implements Callable { list.setBookbuildingDoctor("1000000185");//todo list.setBookbuildingDate(DateUtil.getyyyy_MM_dd(new Date())); p = bookbuildingFacade.addPregnantBookbuilding(list, null, false); - //System.out.println("当前线程名称:"+Thread.currentThread().getName()+"===保存好建档_id:"+p.getData()); + if (ErrorCodeConstants.SUCCESS == p.getErrorcode()) { + okSize.incrementAndGet(); + } else { + errorSize.incrementAndGet(); + } } return p; } -- 1.8.3.1