diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/MasterLisMapper.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/MasterLisMapper.java index ff208e7..053bd18 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/MasterLisMapper.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/MasterLisMapper.java @@ -26,4 +26,6 @@ public interface MasterLisMapper { List queryLisDataByQuery(LisReportQuery query); void updateAppLisStatus(List list); + + int saveLisDataTemp(LisReportModel models); } \ No newline at end of file diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/LisService.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/LisService.java index 1ac64c5..d426248 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/LisService.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/LisService.java @@ -21,4 +21,6 @@ public interface LisService { List queryLisDataByQuery(LisReportQuery query); void updateAppLisStatus(List list); + + int saveLisDataTemp(LisReportModel models); } \ No newline at end of file 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 a9340fe..b933ff2 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 @@ -83,4 +83,9 @@ public class LisServiceImpl extends DataAccessLayerService implements LisService public void updateAppLisStatus(List list) { masterLisMapper.updateAppLisStatus(list); } + + @Override + public int saveLisDataTemp(LisReportModel models) { + return masterLisMapper.saveLisDataTemp(models); + } } \ No newline at end of file diff --git a/platform-biz-service/src/main/resources/mainOrm/master/MasterLis.xml b/platform-biz-service/src/main/resources/mainOrm/master/MasterLis.xml index 0d20561..7c37759 100644 --- a/platform-biz-service/src/main/resources/mainOrm/master/MasterLis.xml +++ b/platform-biz-service/src/main/resources/mainOrm/master/MasterLis.xml @@ -277,4 +277,53 @@ + + + + + SELECT LAST_INSERT_ID() + INSERT INTO LIS_REPORT_TBL( + LIS_ID, + TITLE, + TYPE, + VCCARDNO, + NAME, + BHNUM, + AGE, + SEX, + APPLY_TIME, + CHECK_TIME, + PUBLISH_TIME, + APPLY_DOCTOR, + APPLY_DEPT, + CHECKER, + MODIFIED, + CREATED, + HOSPITAL_ID, + PHONE, + ITEM_JSON + ) VALUES ( + #{lisId}, + #{title}, + #{type}, + #{vcCardNo}, + #{name}, + #{ bhnum}, + #{age}, + #{sex}, + #{applyTime}, + #{checkTime}, + #{publishTime}, + #{applyDoctor}, + #{applyDept}, + #{checker}, + #{modified}, + #{created}, + #{hospitalId}, + #{phone}, + #{itemJson} + ) + + + \ 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 019841a..efffd96 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 @@ -25,10 +25,10 @@ public class Test { // // // System.out.print("5878388d0cf235c11f845399".length()); - - for (Integer i = PatientCheckTicketFacade.complyCurrentDay(DateUtil.parseYMD("2016-08-06")); i <= 5; i++) { - System.out.println(i); - } +// +// for (Integer i = PatientCheckTicketFacade.complyCurrentDay(DateUtil.parseYMD("2016-08-06")); i <= 5; i++) { +// System.out.println(i); +// } // String str = // "{\"yesOrNo\":\"yes\",\"26cac65c-a040-4898-b7da-8deed3ba0ec3\":{\"checkBox\":true,\"proName\":\"循环系统类\",\"selected\":[\"6c46f0c0-97f1-4b72-a11c-98eacfff9a8f\",\"3beb4592-0fda-4041-b148-97d315fccb94\",\"87f35a26-379d-4a05-8ab8-01e634835474\",\"17e9c0ff-92e6-4f48-9f02-264711a8689d\",\"fd51e86b-d3ef-4b38-9dc3-174cf5431855\",\"f14e3084-2ad5-4e25-a634-196e96949ef3\",\"f9acf716-50b0-4b45-bebc-9d21983c616f\",\"31f9dcd6-d7f0-42b5-bd7d-72dd7fe3b01a\",\"322ad477-8130-46d0-a67c-de1b4dc9c640\",\"e7582017-b94c-46ed-b7fd-e36c747da13a\",\"04f8bb8b-f074-41bc-8f41-d3bedb65874b\"]},\"57e4bedbf0f0baa1bee496cd\":{\"checkBox\":true,\"proName\":\"其他\",\"selected\":\"其他既往史\"}}"; // @@ -82,5 +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); + } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/LisController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/LisController.java index 83986ae..e560f96 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/LisController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/LisController.java @@ -89,6 +89,15 @@ public class LisController extends BaseController { } +// @RequestMapping(method = RequestMethod.POST, value = "/saveLisDataTemp") +// @ResponseBody +// public Integer saveLisDataTemp(@RequestBody LisReportModel models, +// HttpServletRequest httpServletRequest) { +// +// return lisService.saveLisDataTemp(models); +// } + + /** * 获取lis和ris报告的接口 * 包含这个孕妇在整个区域的lis、ris数据 diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/inteceptor/MybatisSqlInterceptor.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/inteceptor/MybatisSqlInterceptor.java index f1ada48..615e05a 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/inteceptor/MybatisSqlInterceptor.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/inteceptor/MybatisSqlInterceptor.java @@ -1,14 +1,16 @@ package com.lyms.platform.operate.web.inteceptor; +import java.sql.ResultSet; +import java.sql.Statement; import java.text.DateFormat; -import java.util.Date; -import java.util.List; -import java.util.Locale; -import java.util.Properties; +import java.util.*; import com.lyms.platform.operate.web.utils.SendMysqlSyncDatUtil; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringUtils; import org.apache.ibatis.executor.Executor; +import org.apache.ibatis.executor.resultset.ResultSetHandler; import org.apache.ibatis.mapping.BoundSql; import org.apache.ibatis.mapping.MappedStatement; import org.apache.ibatis.mapping.ParameterMapping; @@ -22,44 +24,76 @@ import org.apache.ibatis.session.Configuration; import org.apache.ibatis.type.TypeHandlerRegistry; /** + * 同步线上mysql的操作到区域 * Created by Administrator on 2017-04-24. */ @Intercepts({ - @Signature(type = Executor.class, method = "update", args = { MappedStatement.class, Object.class }) - + @Signature(type = Executor.class, method = "update", args = { MappedStatement.class,Object.class }), + @Signature(type= ResultSetHandler.class, method = "handleResultSets", args = {Statement.class}) }) public class MybatisSqlInterceptor implements Interceptor { + private String sql; -// @Signature(type= ResultSetHandler.class, method = "handleResultSets", args = {Statement.class}) private Properties properties; + private String sqlCommandType; + + private String sqlId; + public Object intercept(Invocation invocation) throws Throwable { - MappedStatement mappedStatement = (MappedStatement) invocation.getArgs()[0]; - Object parameter = null; - if (invocation.getArgs().length > 1) { - parameter = invocation.getArgs()[1]; + + Object[] args = invocation.getArgs(); + Object returnValue = null; + if (args != null && args.length == 2) + { + MappedStatement mappedStatement = (MappedStatement) invocation.getArgs()[0]; + Object parameter = null; + if (invocation.getArgs().length > 1) { + parameter = invocation.getArgs()[1]; + } + + sqlId = mappedStatement.getId(); + BoundSql boundSql = mappedStatement.getBoundSql(parameter); + Configuration configuration = mappedStatement.getConfiguration(); + sqlCommandType = mappedStatement.getSqlCommandType().name(); + + sql = getSql(configuration, boundSql, sqlId); + System.out.println("sqlCommandType = "+sqlCommandType+":mysql sql =" + sql); + returnValue = invocation.proceed(); + } + else + { + returnValue = invocation.proceed(); + if (StringUtils.isNotEmpty(sql) && "insert".equals(sqlCommandType.toLowerCase())) + { + if (returnValue != null && returnValue instanceof ArrayList) + { + List list = (ArrayList)returnValue; + if (CollectionUtils.isNotEmpty(list)) + { + sql = sql.replaceFirst("\\(","(ID,"); + sql = sql.substring(0,sql.lastIndexOf("(")+1)+list.get(0)+","+sql.substring(sql.lastIndexOf("(")+1,sql.length()); + } + } + } + + //排除lis表 + if (sql == null || sql.toUpperCase().contains("LIS_REPORT_TBL") || sql.toUpperCase().contains("RIS_REPORT_TBL")) + { + return returnValue; + } + System.out.println("sync sql = "+sql); + //发送要同步的sql + SendMysqlSyncDatUtil.sendSql(sql, sqlId); } - String sqlId = mappedStatement.getId(); - BoundSql boundSql = mappedStatement.getBoundSql(parameter); - Configuration configuration = mappedStatement.getConfiguration(); - Object returnValue = invocation.proceed(); - System.out.println("mysql result ======" + returnValue); - System.out.println(mappedStatement.getResulSets()); - String sql = getSql(configuration, boundSql, sqlId); - System.out.println("mysql sql ======" + sql); return returnValue; } public static String getSql(Configuration configuration, BoundSql boundSql, String sqlId) { String sql = showSql(configuration, boundSql); - //排除lis表 - if (sql.toUpperCase().contains("LIS_REPORT_TBL") || sql.toUpperCase().contains("RIS_REPORT_TBL")) - { - return sql; - } - SendMysqlSyncDatUtil.sendSql(sql,sqlId); + return sql; } @@ -74,9 +108,8 @@ public class MybatisSqlInterceptor implements Interceptor { if (obj != null) { value = obj.toString(); } else { - value = ""; + value = "''"; } - } return value; } @@ -104,14 +137,9 @@ public class MybatisSqlInterceptor implements Interceptor { } } } - return sql; } - - - - public Object plugin(Object target) { return Plugin.wrap(target, this); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/SendMysqlSyncDatUtil.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/SendMysqlSyncDatUtil.java index 1f92458..3edf405 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/SendMysqlSyncDatUtil.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/SendMysqlSyncDatUtil.java @@ -27,7 +27,6 @@ public class SendMysqlSyncDatUtil { CollectionUtils.addAll(urls, arrs); } } - } public static void sendSql(String sql ,String sqlId)