Commit f3df88180f8e729500a8fcf146003424847c6953

Authored by liquanyu
1 parent b33b2ce23f

追访统计

Showing 5 changed files with 121 additions and 35 deletions

platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java View file @ f3df881
1 1 package com.lyms.platform.common.utils;
2 2  
3   -import java.util.ArrayList;
4   -import java.util.Date;
5   -import java.util.List;
6   -import java.util.UUID;
  3 +import java.util.*;
  4 +import java.util.regex.Matcher;
  5 +import java.util.regex.Pattern;
7 6  
8 7 /**
9 8 * 添加类的一句话简单描述。
... ... @@ -324,8 +323,56 @@
324 323 return list;
325 324 }
326 325  
327   -// public static void main(String[] arg) {
328   -// System.out.print(encryPhone("18382670036"));
329   -// }
  326 + public static void main(String[] arg) {
  327 + System.out.print(checkNum("75.82umol/l") );
  328 + }
  329 +
  330 +
  331 + public static String checkNum(String str) {
  332 + //先判断有没有整数,如果没有整数那就肯定就没有小数
  333 + Pattern p = Pattern.compile("(\\d+)");
  334 + Matcher m = p.matcher(str);
  335 + String result = "";
  336 + if (m.find()) {
  337 + Map<Integer, String> map = new TreeMap();
  338 + Pattern p2 = Pattern.compile("(\\d+\\.\\d+)");
  339 + m = p2.matcher(str);
  340 + //遍历小数部分
  341 + while (m.find()) {
  342 + result = m.group(1) == null ? "" : m.group(1);
  343 + int i = str.indexOf(result);
  344 + String s = str.substring(i, i + result.length());
  345 + map.put(i, s);
  346 + //排除小数的整数部分和另一个整数相同的情况下,寻找整数位置出现错误的可能,还有就是寻找重复的小数
  347 + // 例子中是排除第二个345.56时第一个345.56产生干扰和寻找整数345的位置时,前面的小数345.56会干扰
  348 + str = str.substring(0, i) + str.substring(i + result.length());
  349 + }
  350 + //遍历整数
  351 + Pattern p3 = Pattern.compile("(\\d+)");
  352 + m = p3.matcher(str);
  353 + while (m.find()) {
  354 + result = m.group(1) == null ? "" : m.group(1);
  355 + int i = str.indexOf(result);
  356 + //排除jia567.23.23在第一轮过滤之后留下来的jia.23对整数23产生干扰
  357 + if (String.valueOf(str.charAt(i - 1)).equals(".")) {
  358 + //将这个字符串删除
  359 + str = str.substring(0, i - 1) + str.substring(i + result.length());
  360 + continue;
  361 + }
  362 + String s = str.substring(i, i + result.length());
  363 + map.put(i, s);
  364 + str = str.substring(0, i) + str.substring(i + result.length());
  365 + }
  366 + result = "";
  367 + for (Map.Entry<Integer, String> e : map.entrySet()) {
  368 + result += e.getValue() + ",";
  369 + }
  370 + result = result.substring(0, result.length()-1);
  371 + } else {
  372 + result = "";
  373 + }
  374 + return result;
  375 + }
  376 +
330 377 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java View file @ f3df881
... ... @@ -1276,7 +1276,7 @@
1276 1276 }
1277 1277 }
1278 1278 }
1279   - saveTrackCount(recordModel.getNextCheckTime(), patients);
  1279 + saveTrackCount(checkTime, patients);
1280 1280 }
1281 1281 }
1282 1282  
platform-transfer/src/main/java/com/lyms/platform/microelement/MicroelementWorker.java View file @ f3df881
... ... @@ -3,8 +3,8 @@
3 3 import com.lyms.platform.common.utils.HttpClientUtil;
4 4 import com.lyms.platform.common.utils.JsonUtil;
5 5 import com.lyms.platform.common.utils.PropertiesUtils;
  6 +import com.lyms.platform.common.utils.StringUtils;
6 7 import com.lyms.platform.conn.MicroelementConnection;
7   -import com.lyms.platform.pojo.MicroelementModel;
8 8  
9 9 import java.sql.Connection;
10 10 import java.sql.ResultSet;
11 11  
12 12  
13 13  
14 14  
15 15  
16 16  
17 17  
18 18  
19 19  
20 20  
21 21  
22 22  
23 23  
24 24  
25 25  
... ... @@ -16,57 +16,97 @@
16 16 import java.util.Map;
17 17  
18 18 public class MicroelementWorker {
  19 +
19 20 public static final String url = PropertiesUtils.getPropertyValue("url");
20   - public static Map<String,Object> getMicroelementRecords()
  21 +
  22 + public static void getMicroelementRecords()
21 23 {
22   - Map<String,Object> data = new HashMap<>();
23 24 Connection conn = null;
24 25 Statement sta = null;
25 26 ResultSet rst = null;
26 27 try {
27 28 conn = MicroelementConnection.getConnection();
28 29 sta = conn.createStatement();
29   - rst = sta.executeQuery("select * from BaseInfo where AUTOID=23928");
30   - if(rst.next()){
  30 + rst = sta.executeQuery("select * from BaseInfo where status is null ");
  31 + while (rst.next()){
  32 + Map<String,Object> data = new HashMap<>();
31 33 String numberCode = rst.getString("编号");
32 34 String autoId = rst.getString("AUTOID");
33   - data.put("numberCode","123456");
34   - rst = sta.executeQuery("select * from ItemsInfo where BaseAutoId = "+autoId);
  35 + data.put("numberCode",numberCode);
  36 + data.put("autoId",autoId);
  37 + getMicroelementRecords(data);
  38 + }
  39 + }
  40 + catch (SQLException e) {
  41 + }
  42 + finally {
  43 + MicroelementConnection.close(conn, sta,rst);
  44 + }
  45 + }
35 46  
36   - List<Map> microelements = new ArrayList<>();
37   - while (rst.next()) {
38   - Map map = new HashMap();
39   - String eleName = rst.getString("元素名称");
40   - String result = rst.getString("测量值");
41   - map.put("result",result);
42   - map.put("eleName",eleName);
43   - microelements.add(map);
  47 +
  48 + public static void getMicroelementRecords(Map<String,Object> data)
  49 + {
  50 + Connection conn = null;
  51 + Statement sta = null;
  52 + ResultSet rst = null;
  53 + try {
  54 + String autoId = data.get("autoId").toString();
  55 + sta = conn.createStatement();
  56 + rst = sta.executeQuery("select * from ItemsInfo where BaseAutoId = "+autoId);
  57 +
  58 + List<Map> microelements = new ArrayList<>();
  59 + while (rst.next()) {
  60 + Map map = new HashMap();
  61 + String eleName = rst.getString("元素名称");
  62 + String value = rst.getString("测量值");
  63 + String result = StringUtils.checkNum(value);
  64 + map.put("result",result);
  65 + map.put("unit",value.contains("mmol") ? "mmol/l" : (value.contains("umol") ? "umol/l" : "ug/l"));
  66 + map.put("eleName",eleName);
  67 + map.put("refValue","");//TODO
  68 + microelements.add(map);
  69 + }
  70 + data.put("microelements", microelements);
  71 + data.remove("autoId");
  72 + if (microelements.size() > 0)
  73 + {
  74 + String response = autoTransfer(data);
  75 + if (response.contains("0"))
  76 + {
  77 + sta.executeUpdate("update BaseInfo set status='1' where AUTOID="+autoId);
  78 + conn.commit();
44 79 }
45   - data.put("microelements",microelements);
46 80 }
  81 +
47 82 }
48   - catch (SQLException e) {
  83 + catch (Exception e) {
  84 + try {
  85 + conn.rollback();
  86 + } catch (SQLException e1) {
  87 + e1.printStackTrace();
  88 + }
49 89 }
50 90 finally {
51   - MicroelementConnection.close(conn,sta,rst);
  91 + MicroelementConnection.close(conn, sta,rst);
52 92 }
53   - return data;
54 93 }
55 94  
56   - public static void autoTransfer()
  95 + public static String autoTransfer( Map<String,Object> data)
57 96 {
58   - Map<String,Object> data = getMicroelementRecords();
59 97 if (data != null && data.size() > 0)
60 98 {
61 99 String json = JsonUtil.obj2Str(data);
62 100 System.out.println(json);
63 101 String result = HttpClientUtil.doPostSSL(url,json);
64 102 System.out.println("http result= "+result);
  103 + return result;
65 104 }
  105 + return "";
66 106 }
67 107  
68   - public static void main(String[] args) {
69   - autoTransfer();
70   - }
  108 +// public static void main(String[] args) {
  109 +// getMicroelementRecords();
  110 +// }
71 111 }
platform-transfer/src/main/resources/spring/applicationContext-quartz.xml View file @ f3df881
... ... @@ -15,14 +15,14 @@
15 15 <!-- 要调用的bean -->
16 16 <property name="targetObject" ref="microelementWorker"></property>
17 17 <!-- 要调用的Method -->
18   - <property name="targetMethod" value="microelementAutoTransfer"></property>
  18 + <property name="targetMethod" value="getMicroelementRecords"></property>
19 19 <!-- 是否并发,false表示 如果发生错误也不影响下一次的调用 -->
20 20 <property name="concurrent" value="false"></property>
21 21 </bean>
22 22 <!-- 配置一个触发器 -->
23 23 <bean id="microelementWorkerTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
24 24 <property name="jobDetail" ref="startWorkTask"></property>
25   - <property name="cronExpression" value="0 0 1 * * ?"></property>
  25 + <property name="cronExpression" value="0 0/1 * * * ?"></property>
26 26 </bean>
27 27  
28 28 <!-- 总调度,用于启动定时器 -->
platform-transfer/src/main/resources/spring/applicationContext.xml View file @ f3df881
... ... @@ -22,7 +22,6 @@
22 22  
23 23 <!-- 采用注释的方式配置bean -->
24 24 <context:annotation-config />
25   - <import resource="applicationContext_biz_patient.xml"/>
26 25 <import resource="applicationContext-dal.xml"/>
27 26 </beans>