diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java b/platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java index 7585bdd..53947d1 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java @@ -1,5 +1,7 @@ package com.lyms.platform.common.utils; +import java.math.BigDecimal; +import java.text.DecimalFormat; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -265,6 +267,10 @@ public final class StringUtils { return String.valueOf(str); } + public static double formatDouble2(double retainTwoDecimal) { + BigDecimal bg = new BigDecimal(retainTwoDecimal); + return bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + } /** * 替换短信中的表达式 diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/BoneModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/BoneModel.java index 5d264a5..23e59e1 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/BoneModel.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/BoneModel.java @@ -2,6 +2,7 @@ package com.lyms.platform.pojo; import com.lyms.platform.beans.SerialIdEnum; import com.lyms.platform.common.result.BaseModel; +import com.lyms.platform.common.utils.StringUtils; import org.springframework.data.mongodb.core.mapping.Document; import java.util.Date; @@ -151,7 +152,8 @@ public class BoneModel extends BaseModel { } public void setSos(Double sos) { - this.sos = sos; + + this.sos = StringUtils.formatDouble2(sos); } public Double getTvalue() { @@ -159,7 +161,8 @@ public class BoneModel extends BaseModel { } public void setTvalue(Double tvalue) { - this.tvalue = tvalue; + + this.tvalue = StringUtils.formatDouble2(tvalue); } public Double getZvalue() { @@ -167,7 +170,7 @@ public class BoneModel extends BaseModel { } public void setZvalue(Double zvalue) { - this.zvalue = zvalue; + this.zvalue = StringUtils.formatDouble2(zvalue); } public Double getBqi() { @@ -175,7 +178,7 @@ public class BoneModel extends BaseModel { } public void setBqi(Double bqi) { - this.bqi = bqi; + this.bqi = StringUtils.formatDouble2(bqi); } public Double getRrf() { @@ -183,7 +186,7 @@ public class BoneModel extends BaseModel { } public void setRrf(Double rrf) { - this.rrf = rrf; + this.rrf = StringUtils.formatDouble2(rrf); } public Double getEoa() { @@ -191,7 +194,7 @@ public class BoneModel extends BaseModel { } public void setEoa(Double eoa) { - this.eoa = eoa; + this.eoa = StringUtils.formatDouble2(eoa); } public Double getAdultPercent() { @@ -199,7 +202,7 @@ public class BoneModel extends BaseModel { } public void setAdultPercent(Double adultPercent) { - this.adultPercent = adultPercent; + this.adultPercent = StringUtils.formatDouble2(adultPercent); } public Double getAgePercent() { @@ -207,7 +210,7 @@ public class BoneModel extends BaseModel { } public void setAgePercent(Double agePercent) { - this.agePercent = agePercent; + this.agePercent = StringUtils.formatDouble2(agePercent); } public Double getAge() { @@ -215,7 +218,7 @@ public class BoneModel extends BaseModel { } public void setAge(Double age) { - this.age = age; + this.age = StringUtils.formatDouble2(age); } public Integer getType() { diff --git a/platform-transfer/src/main/java/com/lyms/platform/comm/ApplicationProperties.java b/platform-transfer/src/main/java/com/lyms/platform/comm/ApplicationProperties.java index 741125f..abc6d76 100644 --- a/platform-transfer/src/main/java/com/lyms/platform/comm/ApplicationProperties.java +++ b/platform-transfer/src/main/java/com/lyms/platform/comm/ApplicationProperties.java @@ -10,25 +10,16 @@ import org.springframework.stereotype.Component; @ConfigurationProperties(prefix = "param") public class ApplicationProperties { - private String microelementPath; - private String bonePath; + private String dataPath; private Integer type; private String url; - public String getMicroelementPath() { - return microelementPath; + public String getDataPath() { + return dataPath; } - public void setMicroelementPath(String microelementPath) { - this.microelementPath = microelementPath; - } - - public String getBonePath() { - return bonePath; - } - - public void setBonePath(String bonePath) { - this.bonePath = bonePath; + public void setDataPath(String dataPath) { + this.dataPath = dataPath; } public Integer getType() { diff --git a/platform-transfer/src/main/java/com/lyms/platform/worker/BoneTransferWorker.java b/platform-transfer/src/main/java/com/lyms/platform/worker/BoneTransferWorker.java new file mode 100644 index 0000000..d6abebc --- /dev/null +++ b/platform-transfer/src/main/java/com/lyms/platform/worker/BoneTransferWorker.java @@ -0,0 +1,97 @@ +package com.lyms.platform.worker; + +import com.lyms.platform.comm.ApplicationProperties; +import com.lyms.platform.conn.BoneConnectionFactory; +import com.lyms.platform.conn.inf.ConnectionFactoryMethod; +import com.lyms.platform.conn.inf.IConnection; +import org.apache.commons.httpclient.util.DateUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * 骨密度 + */ +@Component +public class BoneTransferWorker extends TransferAbstract implements ITransfer{ + + @Autowired + private ApplicationProperties properties; + + @Override + public void doTransfer() { + System.out.println("getBoneRecords start"); + Connection conn = null; + Statement sta = null; + ResultSet rst = null; + ConnectionFactoryMethod factoryMethod = new BoneConnectionFactory(); + IConnection iConnection = factoryMethod.createConnection(properties.getDataPath()); + try { + + conn = iConnection.getConnection(); + sta = conn.createStatement(); + rst = sta.executeQuery("select PatientID,ZScore,TScore,dbSos,dbBqi,dbRrf,dbEoa,YoungAdult,ageMatched,dbAge,PartDisplayName from PatientInfo where status is null and DayTimeOfSave > #"+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+"#"); + while (rst.next()) { + Map map = new HashMap(); + + String PatientID = rst.getString("PatientID"); //身份证后八位 + //String position = rst.getString(""); + map.put("cardNo",PatientID); + + String PartDisplayName = rst.getString("PartDisplayName"); + map.put("position",PartDisplayName); + + String ZScore = rst.getString("ZScore"); + String TScore = rst.getString("TScore"); + String dbSos = rst.getString("dbSos"); + + String bqi = rst.getString("dbBqi"); + String rrf = rst.getString("dbRrf"); + String eoa = rst.getString("dbEoa"); + + String adultPercent = rst.getString("YoungAdult"); + String agePercent = rst.getString("ageMatched"); + String age = rst.getString("dbAge"); + + map.put("zvalue",ZScore); + map.put("tvalue",TScore); + map.put("sos",dbSos); + + map.put("bqi",bqi); + map.put("rrf",rrf); + map.put("eoa",eoa); + + map.put("adultPercent",adultPercent); + map.put("agePercent",agePercent); + map.put("age",age); + map.put("type",1); // + + if (map.size() > 0 && PatientID != null) + { + String response = send(map, properties.getUrl() + "/saveBone"); + if (response.contains("0")) + { + sta.executeUpdate("update PatientInfo set status='1' where PatientID='"+PatientID+"'"); + conn.commit(); + } + } + } + } catch (Exception e) { + try { + conn.rollback(); + } catch (SQLException e1) { + e1.printStackTrace(); + } + } + finally { + iConnection.close(conn, sta,rst); + } + } +} diff --git a/platform-transfer/src/main/java/com/lyms/platform/worker/BoneWorker.java b/platform-transfer/src/main/java/com/lyms/platform/worker/BoneWorker.java deleted file mode 100644 index 534f509..0000000 --- a/platform-transfer/src/main/java/com/lyms/platform/worker/BoneWorker.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.lyms.platform.worker; - -import com.lyms.platform.comm.ApplicationProperties; -import com.lyms.platform.comm.HttpClientUtil; -import com.lyms.platform.comm.JsonUtil; -import com.lyms.platform.conn.BoneConnectionFactory; -import com.lyms.platform.conn.inf.ConnectionFactoryMethod; -import com.lyms.platform.conn.inf.IConnection; -import org.apache.commons.httpclient.util.DateUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; - -import java.sql.Connection; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -/** - * 骨密度 - */ -@Component -public class BoneWorker { - - @Autowired - private ApplicationProperties properties; - - @Scheduled(cron = "0 0/1 * * * ?") - public void getBoneRecords() - { - System.out.println("getBoneRecords start"); - Connection conn = null; - Statement sta = null; - ResultSet rst = null; - ConnectionFactoryMethod factoryMethod = new BoneConnectionFactory(); - IConnection iConnection = factoryMethod.createConnection(properties.getBonePath()); - try { - - conn = iConnection.getConnection(); - sta = conn.createStatement(); - rst = sta.executeQuery("select PatientID,ZScore,TScore,dbSos,dbBqi,dbRrf,dbEoa,YoungAdult,ageMatched,dbAge,PartDisplayName from PatientInfo where status is null and DayTimeOfSave > #"+ DateUtil.formatDate(new Date(),"yyyy-MM-dd")+"#"); - while (rst.next()) { - Map map = new HashMap(); - - String PatientID = rst.getString("PatientID"); //身份证后八位 - //String position = rst.getString(""); - map.put("cardNo",PatientID); - - String PartDisplayName = rst.getString("PartDisplayName"); - map.put("position",PartDisplayName); - - String ZScore = rst.getString("ZScore"); - String TScore = rst.getString("TScore"); - String dbSos = rst.getString("dbSos"); - - String bqi = rst.getString("dbBqi"); - String rrf = rst.getString("dbRrf"); - String eoa = rst.getString("dbEoa"); - - String adultPercent = rst.getString("YoungAdult"); - String agePercent = rst.getString("ageMatched"); - String age = rst.getString("dbAge"); - - map.put("zvalue",ZScore); - map.put("tvalue",TScore); - map.put("sos",dbSos); - - map.put("bqi",bqi); - map.put("rrf",rrf); - map.put("eoa",eoa); - - map.put("adultPercent",adultPercent); - map.put("agePercent",agePercent); - map.put("age",age); - map.put("type",1); // - - if (map.size() > 0 && PatientID != null) - { - String response = autoTransfer(map); - if (response.contains("0")) - { - sta.executeUpdate("update PatientInfo set status='1' where PatientID='"+PatientID+"'"); - conn.commit(); - } - } - } - } catch (Exception e) { - try { - conn.rollback(); - } catch (SQLException e1) { - e1.printStackTrace(); - } - } - finally { - iConnection.close(conn, sta,rst); - } - } - - public String autoTransfer(Map data) - { - if (data != null && data.size() > 0) - { - String json = JsonUtil.obj2Str(data); - System.out.println(json); - String result = HttpClientUtil.doPostSSL(properties.getUrl() + "/saveBone", json); - System.out.println("http result= "+result); - return result; - } - return ""; - } -} diff --git a/platform-transfer/src/main/java/com/lyms/platform/worker/ITransfer.java b/platform-transfer/src/main/java/com/lyms/platform/worker/ITransfer.java new file mode 100644 index 0000000..8c80bef --- /dev/null +++ b/platform-transfer/src/main/java/com/lyms/platform/worker/ITransfer.java @@ -0,0 +1,13 @@ +package com.lyms.platform.worker; + +import java.util.Map; + +/** + * Created by Administrator on 2020-03-23. + */ +public interface ITransfer { + + void doTransfer(); + + String send(Map data,String path); +} diff --git a/platform-transfer/src/main/java/com/lyms/platform/worker/MicroelementTransferWorker.java b/platform-transfer/src/main/java/com/lyms/platform/worker/MicroelementTransferWorker.java new file mode 100644 index 0000000..1ab6337 --- /dev/null +++ b/platform-transfer/src/main/java/com/lyms/platform/worker/MicroelementTransferWorker.java @@ -0,0 +1,106 @@ +package com.lyms.platform.worker; + +import com.lyms.platform.comm.ApplicationProperties; +import com.lyms.platform.comm.StringUtils; +import com.lyms.platform.conn.*; +import com.lyms.platform.conn.inf.ConnectionFactoryMethod; +import com.lyms.platform.conn.inf.IConnection; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +@Component +public class MicroelementTransferWorker extends TransferAbstract implements ITransfer{ + + @Autowired + private ApplicationProperties properties; + + public void doTransfer() + { + System.out.println("getMicroelementRecords start"); + Connection conn = null; + Statement sta = null; + ResultSet rst = null; + + ConnectionFactoryMethod factoryMethod = new MicroelementConnectionFactory(); + IConnection iConnection = factoryMethod.createConnection(properties.getDataPath()); + try { + conn = iConnection.getConnection(); + sta = conn.createStatement(); + rst = sta.executeQuery("select * from BaseInfo where status is null "); + while (rst.next()){ + Map data = new HashMap(); + String numberCode = rst.getString("编号"); + String autoId = rst.getString("AUTOID"); + data.put("numberCode",numberCode); + data.put("type",properties.getType()); + data.put("autoId",autoId); + getMicroelementRecords(data); + } + } + catch (SQLException e) { + } + finally { + iConnection.close(conn, sta,rst); + } + } + + + private void getMicroelementRecords(Map data) + { + Connection conn = null; + Statement sta = null; + ResultSet rst = null; + ConnectionFactoryMethod factoryMethod = new MicroelementConnectionFactory(); + IConnection iConnection = factoryMethod.createConnection(properties.getDataPath()); + try { + conn = iConnection.getConnection(); + String autoId = data.get("autoId").toString(); + sta = conn.createStatement(); + rst = sta.executeQuery("select * from ItemsInfo where BaseAutoId = "+autoId); + + List microelements = new ArrayList(); + while (rst.next()) { + Map map = new HashMap(); + String eleName = rst.getString("元素名称"); + String value = rst.getString("测量值"); + String result = StringUtils.checkNum(value); + map.put("result",result); + map.put("unit",value.contains("mmol") ? "mmol/l" : (value.contains("umol") ? "umol/l" : "ug/l")); + map.put("eleName",eleName); + map.put("refValue","");//TODO + microelements.add(map); + } + data.put("microelements", microelements); + data.remove("autoId"); + if (microelements.size() > 0) + { + String response = send(data, properties.getUrl() + "/saveMicroelement"); + if (response.contains("0")) + { + sta.executeUpdate("update BaseInfo set status='1' where AUTOID="+autoId); + conn.commit(); + } + } + } + catch (Exception e) + { + try { + conn.rollback(); + } catch (SQLException e1) { + e1.printStackTrace(); + } + } + finally { + iConnection.close(conn, sta,rst); + } + } + +} diff --git a/platform-transfer/src/main/java/com/lyms/platform/worker/MicroelementWorker.java b/platform-transfer/src/main/java/com/lyms/platform/worker/MicroelementWorker.java deleted file mode 100644 index 30955dc..0000000 --- a/platform-transfer/src/main/java/com/lyms/platform/worker/MicroelementWorker.java +++ /dev/null @@ -1,127 +0,0 @@ -package com.lyms.platform.worker; - -import com.lyms.platform.comm.ApplicationProperties; -import com.lyms.platform.comm.HttpClientUtil; -import com.lyms.platform.comm.JsonUtil; -import com.lyms.platform.comm.StringUtils; -import com.lyms.platform.conn.*; -import com.lyms.platform.conn.inf.ConnectionFactoryMethod; -import com.lyms.platform.conn.inf.IConnection; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Configuration; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; - -import java.sql.Connection; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -@Configuration -@EnableScheduling -@Component -public class MicroelementWorker { - - @Autowired - private ApplicationProperties properties; - - @Scheduled(cron = "0 0/1 * * * ?") - public void getMicroelementRecords() - { - System.out.println("getMicroelementRecords start"); - Connection conn = null; - Statement sta = null; - ResultSet rst = null; - - ConnectionFactoryMethod factoryMethod = new MicroelementConnectionFactory(); - IConnection iConnection = factoryMethod.createConnection(properties.getMicroelementPath()); - try { - conn = iConnection.getConnection(); - sta = conn.createStatement(); - rst = sta.executeQuery("select * from BaseInfo where status is null "); - while (rst.next()){ - Map data = new HashMap(); - String numberCode = rst.getString("编号"); - String autoId = rst.getString("AUTOID"); - data.put("numberCode",numberCode); - data.put("type",properties.getType()); - data.put("autoId",autoId); - getMicroelementRecords(data); - } - } - catch (SQLException e) { - } - finally { - iConnection.close(conn, sta,rst); - } - } - - - public void getMicroelementRecords(Map data) - { - Connection conn = null; - Statement sta = null; - ResultSet rst = null; - ConnectionFactoryMethod factoryMethod = new MicroelementConnectionFactory(); - IConnection iConnection = factoryMethod.createConnection(properties.getMicroelementPath()); - try { - conn = iConnection.getConnection(); - String autoId = data.get("autoId").toString(); - sta = conn.createStatement(); - rst = sta.executeQuery("select * from ItemsInfo where BaseAutoId = "+autoId); - - List microelements = new ArrayList(); - while (rst.next()) { - Map map = new HashMap(); - String eleName = rst.getString("元素名称"); - String value = rst.getString("测量值"); - String result = StringUtils.checkNum(value); - map.put("result",result); - map.put("unit",value.contains("mmol") ? "mmol/l" : (value.contains("umol") ? "umol/l" : "ug/l")); - map.put("eleName",eleName); - map.put("refValue","");//TODO - microelements.add(map); - } - data.put("microelements", microelements); - data.remove("autoId"); - if (microelements.size() > 0) - { - String response = autoTransfer(data); - if (response.contains("0")) - { - sta.executeUpdate("update BaseInfo set status='1' where AUTOID="+autoId); - conn.commit(); - } - } - } - catch (Exception e) - { - try { - conn.rollback(); - } catch (SQLException e1) { - e1.printStackTrace(); - } - } - finally { - iConnection.close(conn, sta,rst); - } - } - - public String autoTransfer(Map data) - { - if (data != null && data.size() > 0) - { - String json = JsonUtil.obj2Str(data); - System.out.println(json); - String result = HttpClientUtil.doPostSSL(properties.getUrl() + "/saveMicroelement", json); - System.out.println("http result= "+result); - return result; - } - return ""; - } - -} diff --git a/platform-transfer/src/main/java/com/lyms/platform/worker/TransferAbstract.java b/platform-transfer/src/main/java/com/lyms/platform/worker/TransferAbstract.java new file mode 100644 index 0000000..599e631 --- /dev/null +++ b/platform-transfer/src/main/java/com/lyms/platform/worker/TransferAbstract.java @@ -0,0 +1,27 @@ +package com.lyms.platform.worker; + +import com.lyms.platform.comm.HttpClientUtil; +import com.lyms.platform.comm.JsonUtil; + +import java.util.Map; + +/** + * Created by Administrator on 2020-03-23. + */ +public abstract class TransferAbstract implements ITransfer { + + public abstract void doTransfer(); + + @Override + public String send(Map data,String path) { + if (data != null && data.size() > 0) + { + String json = JsonUtil.obj2Str(data); + System.out.println(json); + String result = HttpClientUtil.doPostSSL(path, json); + System.out.println("http result= "+result); + return result; + } + return ""; + } +} diff --git a/platform-transfer/src/main/java/com/lyms/platform/worker/TransferWorker.java b/platform-transfer/src/main/java/com/lyms/platform/worker/TransferWorker.java new file mode 100644 index 0000000..fad143e --- /dev/null +++ b/platform-transfer/src/main/java/com/lyms/platform/worker/TransferWorker.java @@ -0,0 +1,28 @@ +package com.lyms.platform.worker; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +/** + * Created by Administrator on 2020-03-23. + */ +@Component +@EnableScheduling +public class TransferWorker extends TransferAbstract implements ITransfer { + + @Autowired + private BoneTransferWorker boneTransferWorker; + + @Autowired + private MicroelementTransferWorker microelementTransferWorker; + + @Override + @Scheduled(cron = "0 0/1 * * * ?") + public void doTransfer() { + boneTransferWorker.doTransfer(); + } + + +} diff --git a/platform-transfer/src/main/resources/application.yml b/platform-transfer/src/main/resources/application.yml index f3ef2bf..74702b2 100644 --- a/platform-transfer/src/main/resources/application.yml +++ b/platform-transfer/src/main/resources/application.yml @@ -3,10 +3,8 @@ server: param: - #微量元素access路径 - microelement-path: D://tc.mdb - #骨密度access数据库路径 - bone-path: D://EK-8800181001-net_Plus//System//Patient.mdb + #access数据库路径 + data-path: D://EK-8800181001-net_Plus//System//Patient.mdb #区域url地址 url: https://dev-rp-api.healthbaby.com.cn type: 0 # 0孕妇 1儿童 \ No newline at end of file