diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/LisServiceImpl.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/LisServiceImpl.java index b933ff2..9bee808 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/LisServiceImpl.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/LisServiceImpl.java @@ -9,12 +9,16 @@ import com.lyms.platform.permission.model.LisReportItemModel; import com.lyms.platform.permission.model.LisReportModel; import com.lyms.platform.permission.model.LisReportQuery; import com.lyms.platform.permission.service.LisService; +import com.lyms.platform.pojo.BasicConfig; import org.apache.commons.collections.CollectionUtils; import org.codehaus.jackson.type.TypeReference; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.Future; @Service("lisService") @@ -25,25 +29,30 @@ public class LisServiceImpl extends DataAccessLayerService implements LisService @Override public BaseResponse saveLisData(final List lisList) { - try { System.out.println("saveLis data size = "+ lisList.size()); if (CollectionUtils.isNotEmpty(lisList)) { - new Thread(new Runnable() { - @Override - public void run() { - for(LisReportModel model : lisList) - { - List dbLis = masterLisMapper.queryLisDataByModel(model); - if (CollectionUtils.isEmpty(dbLis)) - { - masterLisMapper.saveLisData(model); - } - - } + int batchSize = 10; + //线程数 + int threadCount = lisList.size()%batchSize == 0 ? lisList.size()/batchSize : lisList.size()/batchSize+1; + System.out.println("threadCount = "+ threadCount); + CountDownLatch countDownLatch = new CountDownLatch(threadCount); + int end = 0; + for (int i = 0; i < lisList.size(); i += batchSize) { + end = (end + batchSize); + if (end > lisList.size()) { + end = lisList.size(); } - },"saveLisDataThread").start(); + List models = lisList.subList(i, end); + LisSaveTask lis =new LisSaveTask(countDownLatch,masterLisMapper,models); + Thread t1=new Thread(lis); + t1.start(); + System.out.println("spit end"); + } + countDownLatch.await(); + + System.out.println("exce end"); } return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); @@ -53,6 +62,33 @@ public class LisServiceImpl extends DataAccessLayerService implements LisService return new BaseResponse().setErrorcode(ErrorCodeConstants.SYSTEM_ERROR).setErrormsg(ErrorCodeConstants.SYSTEM_ERROR_DESCRIPTION); } +// try { +// System.out.println("saveLis data size = "+ lisList.size()); +// if (CollectionUtils.isNotEmpty(lisList)) +// { +// new Thread(new Runnable() { +// @Override +// public void run() { +// for(LisReportModel model : lisList) +// { +// List dbLis = masterLisMapper.queryLisDataByModel(model); +// if (CollectionUtils.isEmpty(dbLis)) +// { +// masterLisMapper.saveLisData(model); +// } +// +// } +// } +// },"saveLisDataThread").start(); +// +// } +// return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); +// } +// catch (Exception e) +// { +// return new BaseResponse().setErrorcode(ErrorCodeConstants.SYSTEM_ERROR).setErrormsg(ErrorCodeConstants.SYSTEM_ERROR_DESCRIPTION); +// } + } @Override @@ -88,4 +124,33 @@ public class LisServiceImpl extends DataAccessLayerService implements LisService public int saveLisDataTemp(LisReportModel models) { return masterLisMapper.saveLisDataTemp(models); } + + + public class LisSaveTask implements Runnable { + + private CountDownLatch countDownLatch; + private MasterLisMapper masterLisMapper; + private List lisList; + private LisSaveTask(CountDownLatch countDownLatch, + MasterLisMapper masterLisMapper, + List lisList) + { + this.lisList = lisList; + this.masterLisMapper = masterLisMapper; + this.countDownLatch = countDownLatch; + } + + @Override + public void run() { + for(LisReportModel model : lisList) + { + List dbLis = masterLisMapper.queryLisDataByModel(model); + if (CollectionUtils.isEmpty(dbLis)) + { + masterLisMapper.saveLisData(model); + } + } + countDownLatch.countDown(); + } + } } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/Test.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/Test.java index efffd96..4433077 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/Test.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/Test.java @@ -82,13 +82,13 @@ public class Test { // } // } - - String sql = "INSERT INTO LIS_REPORT_TBL( LIS_ID, TITLE) VALUES ('122', 'bbbb')"; - sql = sql.replaceFirst("\\(","(ID,"); - - - sql = sql.substring(0,sql.lastIndexOf("(")+1)+"11212,"+sql.substring(sql.lastIndexOf("(")+1,sql.length()); - System.out.println(sql); + System.out.println(39/20); +// String sql = "INSERT INTO LIS_REPORT_TBL( LIS_ID, TITLE) VALUES ('122', 'bbbb')"; +// sql = sql.replaceFirst("\\(","(ID,"); +// +// +// sql = sql.substring(0,sql.lastIndexOf("(")+1)+"11212,"+sql.substring(sql.lastIndexOf("(")+1,sql.length()); +// System.out.println(sql); } } diff --git a/platform-operate-api/src/main/resources/config.properties b/platform-operate-api/src/main/resources/config.properties index e10e970..1a343ef 100644 --- a/platform-operate-api/src/main/resources/config.properties +++ b/platform-operate-api/src/main/resources/config.properties @@ -28,7 +28,7 @@ postser_url=http://devmmsapi.qinhuangdao.healthbaby.com.cn:18019/initdata/reser area_count_url=119.90.57.26:1522 #同步mysql数据到各个区域的地址,多个用逗号隔开 如:https://area-qhd-api.healthbaby.com.cn:18019/syncMysqlData,https://area-dz-api.healthbaby.com.cn:12356/syncMysqlData -sync_mysql_data_url= +sync_mysql_data_url=https://dev-rp-api.healthbaby.com.cn/syncMysqlData #数据源相关配置 jdbc.0.driver=oracle.jdbc.driver.OracleDriver