From 7a5c123f19935f926bbcf22dd5624134d48dfaa5 Mon Sep 17 00:00:00 2001 From: dongqin <123456> Date: Wed, 12 Jun 2019 17:18:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E5=8E=86=E5=8F=B2=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operate/web/facade/BookbuildingFacade.java | 3 +- .../operate/web/facade/MatDeliverFacade.java | 42 +++++++++++----------- .../web/facade/SaveByV2ThreadPoolFacade.java | 2 +- .../operate/web/worker/MatDeliverSyncV2Work.java | 34 ++++++++++++++++++ .../operate/web/worker/SyncV2HistoryWorkerx.java | 4 +-- 5 files changed, 59 insertions(+), 26 deletions(-) create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/MatDeliverSyncV2Work.java diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java index b79df51..210998b 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java @@ -2383,7 +2383,8 @@ public class BookbuildingFacade { Connection connection; try { Class.forName("oracle.jdbc.OracleDriver"); - connection = DriverManager.getConnection("jdbc:oracle:thin:@121.17.120.149:1521:orcl", "LYMS_HENGSHUI_ZS_TEST44", "LYMS_HENGSHUI_ZS_TEST44"); + //connection = DriverManager.getConnection("jdbc:oracle:thin:@121.17.120.149:1521:orcl", "LYMS_HENGSHUI_ZS_TEST44", "LYMS_HENGSHUI_ZS_TEST44"); + connection = DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.200:1521:prmi", "LYMS_HENGSHUI_ZHENGSHI", "lyms2018"); System.out.println("成功连接数据库"); } catch (ClassNotFoundException | SQLException e) { throw new RuntimeException("class not find !", e); 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 3ac12a8..9d58eaa 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 @@ -18,10 +18,7 @@ import com.lyms.platform.operate.web.result.*; import com.lyms.platform.operate.web.service.ITrackDownService; import com.lyms.platform.operate.web.utils.CommonsHelper; import com.lyms.platform.operate.web.utils.UnitConstants; -import com.lyms.platform.operate.web.worker.ChildbearAgeWorker; -import com.lyms.platform.operate.web.worker.DueOrgCountWorker; -import com.lyms.platform.operate.web.worker.MatDeliverWorker; -import com.lyms.platform.operate.web.worker.MaterDeliverWorker; +import com.lyms.platform.operate.web.worker.*; import com.lyms.platform.permission.model.Organization; import com.lyms.platform.permission.model.OrganizationQuery; import com.lyms.platform.permission.model.Users; @@ -57,6 +54,8 @@ import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; /** * 分娩记录信息 @@ -2931,8 +2930,10 @@ public class MatDeliverFacade { Connection connection = BookbuildingFacade.getConnection(); String sql = "select * " + "from V_SYNC_TO_V3_PDR pdr " + + "left join V_SYNC_TO_V3_PATIENT p on p.p_no = pdr.p_no " + "where pdr.PDR_CHILDBIRTHDAY > sysdate - 29 " + - "and to_char(pdr.PDR_CHILDBIRTHDAY,'YYYY-MM') BETWEEN '"+param.getStartTime()+ "' and '"+ param.getEndTime() +"'"; + "and to_char(pdr.PDR_CHILDBIRTHDAY,'YYYY-MM') BETWEEN '"+param.getStartTime()+ "' and '"+ param.getEndTime() +"'" + + "and ( p.P_ADDRESSCOUNTY='160' OR p.P_POSTPARTUMCOUNTY='160' OR p.P_RRCOUNTY ='160')"; List list = new ArrayList(1024); try { PreparedStatement preparedStatement = connection.prepareStatement(sql); @@ -3000,10 +3001,10 @@ public class MatDeliverFacade { matDeliverAddRequest.setTireNumber(pdrIrenum); // TODO 2019/6/9 14:53 dongqing 胎盘 matDeliverAddRequest.setPlacenta(pdrPlacentanum); - // TODO 2019/6/9 14:54 dongqing 分娩医院 - matDeliverAddRequest.setFmHospital("216"); - // TODO 2019/6/9 14:55 dongqing 接生者 - matDeliverAddRequest.setDeliverDoctor("1000000185"); + // 分娩医院-衡水市桃城区妇幼保健院 + matDeliverAddRequest.setFmHospital("2100001981"); + // 接生者-衡水市桃城区妇幼保健院 + matDeliverAddRequest.setDeliverDoctor("2100004880"); matDeliverAddRequest.setDeliveryMode(new HashedMap()); list.add(matDeliverAddRequest); } @@ -3018,21 +3019,18 @@ public class MatDeliverFacade { } } - ExecutorService service = new ThreadPoolExecutor(3, 6, 9000, TimeUnit.MILLISECONDS, + /* ExecutorService service = new ThreadPoolExecutor(3, 6, 9000, TimeUnit.MILLISECONDS, new ArrayBlockingQueue(1), new RejectedExecutionHandler() { @Override public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) { throw new RuntimeException(); } - }); + });*/ + ExecutorService service = Executors.newFixedThreadPool(5); + Lock lock = new ReentrantLock(false); for (final MatDeliverAddRequest request : list) { - service.execute(new Runnable() { - @Override - public void run() { - addOrUpdateMatDeliver(request, id); - } - }); + service.execute(new MatDeliverSyncV2Work(this, request, id, lock)); } service.shutdown(); BaseResponse baseResponse = new BaseResponse(); @@ -3049,18 +3047,18 @@ public class MatDeliverFacade { */ public String getPregnancyOutByV2(String v2Val) { String v3Val = "1"; - if ("0".equals(v2Val)) { + if ("活产".equals(v2Val)) { v3Val = "0"; } - if ("1".equals(v2Val)) { + if ("死胎".equals(v2Val) || "侵软胎".equals(v2Val)) { v3Val = "1"; } - if ("2".equals(v2Val)) { + if ("死产".equals(v2Val)) { v3Val = "3"; } - if ("3".equals(v2Val)) { + if ("七天内死亡".equals(v2Val)) { v3Val = "3"; } return v3Val; } -} \ No newline at end of file +} 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 a994003..667e9a1 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 @@ -131,7 +131,7 @@ public class SaveByV2ThreadPoolFacade { " (select p.* from V_SYNC_TO_V3_PATIENT p " + " left join V_SYNC_TO_V3_PDR pdr on pdr.p_no = p.p_no " + " where pdr.p_no is null and to_char(p.P_FILINGTIME,'YYYY-MM') BETWEEN '" + startTime + "' and '" + endTime + "' and ( p.P_ADDRESSCOUNTY='160' OR p.P_POSTPARTUMCOUNTY='160' OR p.P_RRCOUNTY ='160')" + - " and p.P_LASTMENSTRUALPERIOD > sysdate - 2940" + + " and p.P_LASTMENSTRUALPERIOD > sysdate - 294" + " union " + " select p.* from V_SYNC_TO_V3_PATIENT p " + " right join V_SYNC_TO_V3_PDR pdr on pdr.p_no = p.p_no " + diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/MatDeliverSyncV2Work.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/MatDeliverSyncV2Work.java new file mode 100644 index 0000000..b516cb5 --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/MatDeliverSyncV2Work.java @@ -0,0 +1,34 @@ +package com.lyms.platform.operate.web.worker; + +import com.lyms.platform.operate.web.facade.MatDeliverFacade; +import com.lyms.platform.operate.web.request.MatDeliverAddRequest; + +import java.util.concurrent.locks.Lock; + +public class MatDeliverSyncV2Work implements Runnable { + private MatDeliverFacade matDeliverFacade; + private MatDeliverAddRequest request; + private Integer userId; + private Lock lock; + + + public MatDeliverSyncV2Work(final MatDeliverFacade matDeliverFacade,final MatDeliverAddRequest request,final Integer userId, final Lock lock){ + this.matDeliverFacade = matDeliverFacade; + this.request = request; + this.userId = userId; + this.lock = lock; + } + + @Override + public void run() { + + try { + lock.lock(); + matDeliverFacade.addOrUpdateMatDeliver(request, userId); + }catch (Exception e){ + e.printStackTrace(); + }finally { + lock.unlock(); + } + } +} 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 c6fbef7..82bf364 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 @@ -59,10 +59,10 @@ public class SyncV2HistoryWorkerx implements Callable { list.setHospitalId("2100001981"); list.setBookbuildingDoctor("2100004880"); - list.setBookbuildingDate(DateUtil.getyyyy_MM_dd(new Date())); + //list.setBookbuildingDate(DateUtil.getyyyy_MM_dd(new Date())); list.setHusbandNationId(queryParentConfig(list.getHusbandNationId())); list.setPregnantNationId(queryParentConfig(list.getPregnantNationId())); - p = bookbuildingFacade.addPregnantBookbuilding(list, null, false); + p = bookbuildingFacade.addPregnantBookbuilding(list, 2100004880, false); }catch (Exception e){ e.printStackTrace(); }finally { -- 1.8.3.1