commit d185e86aafcb4c7947d03a56e078f8d0bb350a69 Author: ALW <850658129@qq.com> Date: Wed Dec 14 15:09:36 2022 +0800 检验护理记录注释 diff --git a/demo.iml b/demo.iml new file mode 100644 index 0000000..5053cdc --- /dev/null +++ b/demo.iml @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..99d4273 --- /dev/null +++ b/pom.xml @@ -0,0 +1,123 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.2.1.RELEASE + + com.ann + demo + 0.0.1-SNAPSHOT + war + demo + Demo project for Spring Boot + + + 1.8 + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-tomcat + provided + + + + + + + com.alibaba + druid + 1.0.9 + + + + + com.microsoft.sqlserver + sqljdbc4 + 4.0 + + + + com.oracle.database.jdbc + ojdbc6 + 11.2.0.4 + + + + org.apache.commons + commons-lang3 + 3.3.2 + + + + + + com.baomidou + mybatis-plus-extension + 3.4.2 + + + + com.baomidou + mybatis-plus-boot-starter + 3.4.2 + + + com.baomidou + mybatis-plus-annotation + 3.4.2 + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + org.projectlombok + lombok + + + + + org.apache.cxf + cxf-spring-boot-starter-jaxws + 3.2.5 + + + org.springframework.boot + spring-boot-starter-test + test + + + org.junit.vintage + junit-vintage-engine + + + + + com.baomidou + mybatis-plus-core + 3.4.2 + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + synchronization + + + diff --git a/src/main/java/com/ann/demo/DemoApplication.java b/src/main/java/com/ann/demo/DemoApplication.java new file mode 100644 index 0000000..c238a98 --- /dev/null +++ b/src/main/java/com/ann/demo/DemoApplication.java @@ -0,0 +1,15 @@ +package com.ann.demo; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class DemoApplication { + public DemoApplication() { + } + + public static void main(String[] args) { + SpringApplication.run(DemoApplication.class, args); + } + +} diff --git a/src/main/java/com/ann/demo/ServletInitializer.java b/src/main/java/com/ann/demo/ServletInitializer.java new file mode 100644 index 0000000..a11ca39 --- /dev/null +++ b/src/main/java/com/ann/demo/ServletInitializer.java @@ -0,0 +1,15 @@ +package com.ann.demo; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +public class ServletInitializer extends SpringBootServletInitializer { + + public ServletInitializer() { + } + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(DemoApplication.class); + } + +} diff --git a/src/main/java/com/ann/demo/dao/OracleHLMapper.java b/src/main/java/com/ann/demo/dao/OracleHLMapper.java new file mode 100644 index 0000000..b8f27af --- /dev/null +++ b/src/main/java/com/ann/demo/dao/OracleHLMapper.java @@ -0,0 +1,27 @@ +package com.ann.demo.dao; + +import com.ann.demo.entity.filing.OracleHL; +import org.apache.ibatis.annotations.Mapper; +import org.mybatis.spring.annotation.MapperScan; + +import java.util.Date; +import java.util.List; + + +@Mapper +public interface OracleHLMapper { + + + String getConfigureTime(); + + + + Integer save(OracleHL oracleHL); + + + Integer setConfigureTime(String afterDate); + + List getOracleHByJzh(String jzh,String zyh,String zycs); + + Integer del(String jzh,String zyh,String zycs); +} diff --git a/src/main/java/com/ann/demo/dao/OraclePacsMappper.java b/src/main/java/com/ann/demo/dao/OraclePacsMappper.java new file mode 100644 index 0000000..1eb530e --- /dev/null +++ b/src/main/java/com/ann/demo/dao/OraclePacsMappper.java @@ -0,0 +1,16 @@ +package com.ann.demo.dao; + +import com.ann.demo.entity.filing.OraclePACS; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface OraclePacsMappper { + + Integer save(OraclePACS oraclePACS); + + List getOracleHByFrecId(String pdfFileNo); + + Integer del(String pdfFileNo); +} diff --git a/src/main/java/com/ann/demo/entity/filing/OracleHL.java b/src/main/java/com/ann/demo/entity/filing/OracleHL.java new file mode 100644 index 0000000..86a2e17 --- /dev/null +++ b/src/main/java/com/ann/demo/entity/filing/OracleHL.java @@ -0,0 +1,22 @@ +package com.ann.demo.entity.filing; + +import lombok.Data; + +import javax.persistence.Id; +import java.util.Date; + +@Data +public class OracleHL { + @Id + private Long id; + //文件名称 + private String showName; + //最后更新时间 + private Date kdsj; + //记帐号 + private String jzh; + //住院号 + private String zyh; + //住院次数 + private String zycs; +} diff --git a/src/main/java/com/ann/demo/entity/filing/OraclePACS.java b/src/main/java/com/ann/demo/entity/filing/OraclePACS.java new file mode 100644 index 0000000..86f2d14 --- /dev/null +++ b/src/main/java/com/ann/demo/entity/filing/OraclePACS.java @@ -0,0 +1,23 @@ +package com.ann.demo.entity.filing; + +import lombok.Data; + +import javax.persistence.Id; +import java.util.Date; + +@Data +public class OraclePACS { + @Id + private Long id; + //文件名称 + private String fentryName; + //文件id + private String pdfFileNo; + //最后更新时间 + private Date affirmTime; + //记帐号 + private String jzh; + //记帐号 + private String zyh; + +} diff --git a/src/main/java/com/ann/demo/integrityTimeCon.java b/src/main/java/com/ann/demo/integrityTimeCon.java new file mode 100644 index 0000000..f57194f --- /dev/null +++ b/src/main/java/com/ann/demo/integrityTimeCon.java @@ -0,0 +1,46 @@ +package com.ann.demo; + + +import com.ann.demo.interfaces.HomepageDictionary; +import com.ann.demo.service.OracleHLService; +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.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; + +@Component +@Configuration +@EnableScheduling +public class integrityTimeCon { + @Autowired + private HomepageDictionary homepageDictionary; + @Autowired + private OracleHLService oracleHLService; + + + @Scheduled(cron = "0 0/20 * * * ? ") + public void refreshIndicators(){ + String configureTime = oracleHLService.getConfigureTime(); + System.out.println("开始轮询时间"+configureTime); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date sTime=null; + try { + sTime = simpleDateFormat.parse(configureTime); + } catch (ParseException e) { + e.printStackTrace(); + } + //当时开始轮询时间四十分钟后 + Date format = new Date(sTime .getTime() + 1200000); + String afterDate = simpleDateFormat.format(format); + homepageDictionary.Synchronizationhuli(configureTime); + homepageDictionary.SynchronizationPacs(configureTime); + oracleHLService.setConfigureTime(afterDate); + + + } +} diff --git a/src/main/java/com/ann/demo/interfaces/HomepageDictionary.java b/src/main/java/com/ann/demo/interfaces/HomepageDictionary.java new file mode 100644 index 0000000..eee3db5 --- /dev/null +++ b/src/main/java/com/ann/demo/interfaces/HomepageDictionary.java @@ -0,0 +1,20 @@ +package com.ann.demo.interfaces; + +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebService; +import java.util.Date; + +@WebService +public interface HomepageDictionary { + + @WebMethod + String Synchronizationhuli(@WebParam(name = "configureTime") String configureTime); + + + @WebMethod + String SynchronizationPacs(@WebParam(name = "configureTime") String configureTime); + + + +} diff --git a/src/main/java/com/ann/demo/interfaces/config/WebServiceConfig.java b/src/main/java/com/ann/demo/interfaces/config/WebServiceConfig.java new file mode 100644 index 0000000..5ab3545 --- /dev/null +++ b/src/main/java/com/ann/demo/interfaces/config/WebServiceConfig.java @@ -0,0 +1,41 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.ann.demo.interfaces.config; + +import com.ann.demo.interfaces.HomepageDictionary; +import com.ann.demo.interfaces.impl.HomepageDictionaryImpl; +import javax.xml.ws.Endpoint; +import org.apache.cxf.bus.spring.SpringBus; +import org.apache.cxf.jaxws.EndpointImpl; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class WebServiceConfig { + public WebServiceConfig() { + } + + @Bean( + name = {"cxf"} + ) + public SpringBus springBus() { + return new SpringBus(); + } + + @Bean + public HomepageDictionary homepageDictionary() { + return new HomepageDictionaryImpl(); + } + + @Bean + public Endpoint endpoint() { + System.out.println("-----------------------已发布-------------------------"); + System.out.println("地址:http://localhost:8080/services/HomepageDictionary?wsdl"); + EndpointImpl endpoint = new EndpointImpl(this.springBus(), this.homepageDictionary()); + endpoint.publish("HomepageDictionary"); + return endpoint; + } +} \ No newline at end of file diff --git a/src/main/java/com/ann/demo/interfaces/impl/HomepageDictionaryImpl.java b/src/main/java/com/ann/demo/interfaces/impl/HomepageDictionaryImpl.java new file mode 100644 index 0000000..dcb785a --- /dev/null +++ b/src/main/java/com/ann/demo/interfaces/impl/HomepageDictionaryImpl.java @@ -0,0 +1,149 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.ann.demo.interfaces.impl; + +import com.ann.demo.entity.filing.OraclePACS; +import com.ann.demo.entity.filing.OracleHL; +import com.ann.demo.interfaces.HomepageDictionary; + +import java.util.*; +import javax.jws.WebService; + +import com.ann.demo.service.OraclePacsService; +import com.ann.demo.service.OracleHLService; +import com.ann.demo.util.OracleConnect; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; + +@WebService( + serviceName = "HomepageDictionary", + targetNamespace = "http://interfaces.demo.ann.com/", + endpointInterface = "com.ann.demo.interfaces.HomepageDictionary" +) + +public class HomepageDictionaryImpl implements HomepageDictionary { + + @Autowired + OracleHLService oracleHLService; + @Autowired + OraclePacsService oraclePacsService; + + //同步护理记录 + @Override + public String Synchronizationhuli(String configureTime) { + String sql1 = "SELECT DISTINCT JZH,ZYH,ZYCS FROM V_JSWZH_HL_DATA WHERE (ENABLED_VALUE = 'Y' OR ENABLED_VALUE IS NULL) AND SHOW_NAME != '护嘱单' AND SHOW_NAME != '术前准备与手术交接记录单' AND SHOW_NAME != '新生儿转NICU交接记录单' AND SHOW_NAME != '护理计划' AND SHOW_NAME != '首次护理记录单(二)' AND SHOW_NAME != '健康教育' AND SHOW_NAME != '产程图' AND SHOW_NAME != '普外科术后疼痛护理单' and KDSJ > to_date('" + configureTime + "', 'YYYY/MM/DD HH24:MI:SS')"; + try { + List selectList1 = OracleConnect.selectListConvertMap(sql1); + if (!CollectionUtils.isEmpty(selectList1)) { + for (Map map1 : selectList1) { + String jzh = (String) map1.get("JZH"); + String zyh = (String) map1.get("ZYH"); + String zycs = map1.get("ZYCS").toString(); + //查询是否有记录 + List oracleHByJzh = oracleHLService.getOracleHByJzh(jzh,zyh,zycs); + if (oracleHByJzh.size() > 0) { + oracleHLService.del(jzh,zyh,zycs); + String sqlHl = "SELECT SHOW_NAME,KDSJ,JZH,ZYH,ZYCS FROM V_JSWZH_HL_DATA WHERE (ENABLED_VALUE = 'Y' OR ENABLED_VALUE IS NULL) AND SHOW_NAME != '护嘱单' AND SHOW_NAME != '术前准备与手术交接记录单' AND SHOW_NAME != '新生儿转NICU交接记录单' AND SHOW_NAME != '护理计划' AND SHOW_NAME != '首次护理记录单(二)' AND SHOW_NAME != '健康教育' AND SHOW_NAME != '产程图' AND SHOW_NAME != '普外科术后疼痛护理单' and JZH = '" + jzh + "' and ZYH = '" + zyh + "' and ZYCS = '" + zycs + "'"; + List mapHl = OracleConnect.selectListConvertMap(sqlHl); + for (Map oracleHl : mapHl) { + String jzhHl = (String) oracleHl.get("JZH"); + //获取文件名 + String showName = (String) oracleHl.get("SHOW_NAME"); + Date kdsjDate = null; + if (null != oracleHl.get("KDSJ")) { + try { + kdsjDate = (Date) oracleHl.get("KDSJ"); + } catch (Exception e) { + e.printStackTrace(); + } + } + String zyhhl = (String) map1.get("ZYH"); + String zycshl = (String) map1.get("ZYCS").toString(); + OracleHL oracleHL = new OracleHL(); + oracleHL.setShowName(showName); + oracleHL.setKdsj(kdsjDate); + oracleHL.setJzh(jzhHl); + oracleHL.setZyh(zyhhl); + oracleHL.setZycs(zycshl); + oracleHLService.save(oracleHL); + } + }else { + //不存在则新增 + String sqlHl = "SELECT SHOW_NAME,KDSJ,JZH,ZYH,ZYCS FROM V_JSWZH_HL_DATA WHERE (ENABLED_VALUE = 'Y' OR ENABLED_VALUE IS NULL) AND SHOW_NAME != '护嘱单' AND SHOW_NAME != '术前准备与手术交接记录单' AND SHOW_NAME != '新生儿转NICU交接记录单' AND SHOW_NAME != '护理计划' AND SHOW_NAME != '首次护理记录单(二)' AND SHOW_NAME != '健康教育' AND SHOW_NAME != '产程图' AND SHOW_NAME != '普外科术后疼痛护理单' and JZH = '" + jzh + "' and ZYH = '" + zyh + "' and ZYCS = '" + zycs + "'"; + List mapHl = OracleConnect.selectListConvertMap(sqlHl); + for (Map oracleHl : mapHl) { + String jzhHl = (String) oracleHl.get("JZH"); + //获取文件名 + String showName = (String) oracleHl.get("SHOW_NAME"); + Date kdsjDate = null; + if (null != oracleHl.get("KDSJ")) { + try { + kdsjDate = (Date) oracleHl.get("KDSJ"); + } catch (Exception e) { + e.printStackTrace(); + } + } + String zyhhl = (String) map1.get("ZYH"); + String zycshl = (String) map1.get("ZYCS").toString(); + OracleHL oracleHL = new OracleHL(); + oracleHL.setShowName(showName); + oracleHL.setKdsj(kdsjDate); + oracleHL.setJzh(jzhHl); + oracleHL.setZyh(zyhhl); + oracleHL.setZycs(zycshl); + oracleHLService.save(oracleHL); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + //同步Pacs + @Override + public String SynchronizationPacs(String configureTime) { + String sql1 = "SELECT VISIT_ID,ZYH,REPORT_NAME,PDF_FILE_NO,REGISTER_TIME FROM V_JSWZH_PACS_DATA_NEW WHERE REGISTER_TIME > to_date('" + configureTime + "', 'YYYY/MM/DD HH24:MI:SS') "; + try { + List selectList1 = OracleConnect.selectListConvertMap(sql1); + if (!CollectionUtils.isEmpty(selectList1)) { + for (Map map1 : selectList1) { + String pdfFileNo = (String) map1.get("PDF_FILE_NO"); + //查询是否有记录 + List oracleHByFrecId = oraclePacsService.getOracleHByFrecId(pdfFileNo); + //有记录更新 + if (oracleHByFrecId.size()>0){ + oraclePacsService.del(pdfFileNo); + } + String jzh = (String) map1.get("VISIT_ID"); + String zyh = (String) map1.get("ZYH"); + //获取文件名 + String fentryName = (String) map1.get("REPORT_NAME"); + Date affirmTime = null; + if (null != map1.get("REGISTER_TIME")) { + try { + affirmTime = (Date) map1.get("REGISTER_TIME"); + } catch (Exception e) { + e.printStackTrace(); + } + } + OraclePACS oraclePACS = new OraclePACS(); + oraclePACS.setJzh(jzh); + oraclePACS.setZyh(zyh); + oraclePACS.setAffirmTime(affirmTime); + oraclePACS.setFentryName(fentryName); + oraclePACS.setPdfFileNo(pdfFileNo); + oraclePacsService.save(oraclePACS); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } +} diff --git a/src/main/java/com/ann/demo/service/OracleHLService.java b/src/main/java/com/ann/demo/service/OracleHLService.java new file mode 100644 index 0000000..7b29018 --- /dev/null +++ b/src/main/java/com/ann/demo/service/OracleHLService.java @@ -0,0 +1,18 @@ +package com.ann.demo.service; + +import com.ann.demo.entity.filing.OracleHL; + +import java.util.List; + +public interface OracleHLService { + + int setConfigureTime(String afterDate); + + String getConfigureTime(); + + Integer save(OracleHL oracleHL); + + List getOracleHByJzh(String jzh,String zyh,String zycs); + + Integer del(String jzh,String zyh,String zycs); +} diff --git a/src/main/java/com/ann/demo/service/OraclePacsService.java b/src/main/java/com/ann/demo/service/OraclePacsService.java new file mode 100644 index 0000000..31eb908 --- /dev/null +++ b/src/main/java/com/ann/demo/service/OraclePacsService.java @@ -0,0 +1,14 @@ +package com.ann.demo.service; + +import com.ann.demo.entity.filing.OraclePACS; + +import java.util.List; + +public interface OraclePacsService { + + Integer save(OraclePACS oraclePACS); + + List getOracleHByFrecId(String pdfFileNo); + + Integer del(String pdfFileNo); +} diff --git a/src/main/java/com/ann/demo/service/impl/OracleHLServiceImpl.java b/src/main/java/com/ann/demo/service/impl/OracleHLServiceImpl.java new file mode 100644 index 0000000..e78a0a7 --- /dev/null +++ b/src/main/java/com/ann/demo/service/impl/OracleHLServiceImpl.java @@ -0,0 +1,42 @@ +package com.ann.demo.service.impl; + + +import com.ann.demo.entity.filing.OracleHL; +import com.ann.demo.dao.OracleHLMapper; +import com.ann.demo.service.OracleHLService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +@Service +public class OracleHLServiceImpl implements OracleHLService { + @Autowired + OracleHLMapper oracleHLMapper; + + @Override + public int setConfigureTime(String afterDate) { + return oracleHLMapper.setConfigureTime(afterDate); + } + + @Override + public String getConfigureTime() { + return oracleHLMapper.getConfigureTime(); + } + + @Override + public Integer save(OracleHL oracleHL) { + return oracleHLMapper.save(oracleHL); + } + + @Override + public List getOracleHByJzh(String jzh,String zyh,String zycs) { + return oracleHLMapper.getOracleHByJzh(jzh,zyh,zycs); + } + + @Override + public Integer del(String jzh,String zyh,String zycs) { + return oracleHLMapper.del(jzh,zyh,zycs); + } +} diff --git a/src/main/java/com/ann/demo/service/impl/OraclePacsServiceImpl.java b/src/main/java/com/ann/demo/service/impl/OraclePacsServiceImpl.java new file mode 100644 index 0000000..5d6b218 --- /dev/null +++ b/src/main/java/com/ann/demo/service/impl/OraclePacsServiceImpl.java @@ -0,0 +1,29 @@ +package com.ann.demo.service.impl; + +import com.ann.demo.dao.OraclePacsMappper; +import com.ann.demo.entity.filing.OraclePACS; +import com.ann.demo.service.OraclePacsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class OraclePacsServiceImpl implements OraclePacsService { + @Autowired + OraclePacsMappper oraclePacsMappper; + @Override + public Integer save(OraclePACS oraclePACS) { + return oraclePacsMappper.save(oraclePACS); + } + + @Override + public List getOracleHByFrecId(String pdfFileNo) { + return oraclePacsMappper.getOracleHByFrecId(pdfFileNo); + } + + @Override + public Integer del(String pdfFileNo) { + return oraclePacsMappper.del(pdfFileNo); + } +} diff --git a/src/main/java/com/ann/demo/util/MapObjUtil.java b/src/main/java/com/ann/demo/util/MapObjUtil.java new file mode 100644 index 0000000..c7a0bd1 --- /dev/null +++ b/src/main/java/com/ann/demo/util/MapObjUtil.java @@ -0,0 +1,75 @@ +package com.ann.demo.util; + +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +public class MapObjUtil { + + /** + * 实体对象转成Map + * + * @param obj 实体对象 + * @return + */ + public static Map object2Map(Object obj) { + Map map = new HashMap(); + if (obj == null) { + return map; + } + Class clazz = obj.getClass(); + Field[] fields = clazz.getDeclaredFields(); + try { + for (Field field : fields) { + field.setAccessible(true); + map.put(field.getName(), field.get(obj)); + } + } catch (Exception e) { + e.printStackTrace(); + } + return map; + } + + /** + * Map转成实体对象 + * + * @param map map实体对象包含属性 + * @param clazz 实体对象类型 + * @return + */ + public static T map2Object(Map map, Class clazz) { + if (map == null) { + return null; + } + T obj = null; + try { + obj = clazz.newInstance(); + Field[] fields = obj.getClass().getDeclaredFields(); + for (Field field : fields) { + int mod = field.getModifiers(); + if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) { + continue; + } + field.setAccessible(true); + String filedTypeName = field.getType().getName(); + if (filedTypeName.equalsIgnoreCase("java.util.date")) { + String datetimestamp = String.valueOf(map.get(field.getName())); + if (datetimestamp.equalsIgnoreCase("null")) { + field.set(obj, null); + } else { + field.set(obj, new Date(Long.parseLong(datetimestamp))); + } + } else { + field.set(obj, map.get(field.getName())); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return obj; + } + + +} diff --git a/src/main/java/com/ann/demo/util/OracleConnect.java b/src/main/java/com/ann/demo/util/OracleConnect.java new file mode 100644 index 0000000..630b54e --- /dev/null +++ b/src/main/java/com/ann/demo/util/OracleConnect.java @@ -0,0 +1,191 @@ +package com.ann.demo.util; + + + +import com.alibaba.druid.pool.DruidDataSource; + +import java.sql.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * Oracle链接数据库对象 + * + * @author ZL + * + * 2017年7月27日 + */ +public class OracleConnect { + private static DruidDataSource dataSourceTest = null; + private static PreparedStatement pst = null; + public static ResultSet rs = null; + + private String url = PropertiesUtils.getProperty("oracleUrl"); + private String userName = PropertiesUtils.getProperty("oracleUserName"); + private String passWord = PropertiesUtils.getProperty("oraclePassWord"); + /** + * 构造函数完成数据库的连接和连接对象的生成 + */ + private OracleConnect() { + try { + if (dataSourceTest == null) { + dataSourceTest = new DruidDataSource(); + // 设置连接参数 + dataSourceTest.setUrl("jdbc:oracle:thin:@" + url); + dataSourceTest.setDriverClassName("oracle.jdbc.driver.OracleDriver"); + dataSourceTest.setUsername(userName); + dataSourceTest.setPassword(passWord); + dataSourceTest.setInitialSize(3); + dataSourceTest.setMaxActive(10); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * 取得已经构造生成的数据库连接 + * + * @return 返回数据库连接对象 + */ + public Connection getConnect() { + try { + return dataSourceTest.getConnection(); + } catch (SQLException e) { + e.printStackTrace(); + } + return null; + } + + /** + * 使用完一定要关闭(释放资源) + * @param rs ResultSet + * @param stat Statement + * @param conn Connection + * @throws Exception + */ + private static void CloseConn(ResultSet rs, Statement stat, Connection conn){ + if (rs != null) { + try { + rs.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + if (stat != null) { + try { + stat.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + if (conn != null) { + try { + conn.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + } + + /** + * 查询一条(多条)记录 + * + * @param arg0 查询的sql语句 + * @return list + * @throws Exception + */ + @SuppressWarnings({ "rawtypes", "unchecked" }) + public static String select(String arg0) throws Exception { + String str = ""; + Connection conn = new OracleConnect().getConnect(); + pst = conn.prepareStatement(arg0); + rs = pst.executeQuery(); + try { + if (rs != null) { + while (rs.next()) { + str = rs.getString(1); + } + } + } catch (SQLException e) { + e.printStackTrace(); + } finally { + OracleConnect.CloseConn(rs, pst, conn); + } + return str; + } + public static List selectList(String arg0) throws Exception { + List str = new ArrayList<>(); + Connection conn = new OracleConnect().getConnect(); + pst = conn.prepareStatement(arg0); + rs = pst.executeQuery(); + try { + if (rs != null) { + while (rs.next()) { + str.add(rs.getString(1)); + } + } + } catch (SQLException e) { + e.printStackTrace(); + } finally { + OracleConnect.CloseConn(rs, pst, conn); + } + return str; + } + public static List selectListConvertMap(String sql) throws Exception{ + List list = new ArrayList<>(); + Connection conn = new OracleConnect().getConnect(); + pst = conn.prepareStatement(sql); + rs = pst.executeQuery(); + try { + if (rs != null) { + ResultSetMetaData md = rs.getMetaData();//获取键名 + int columnCount = md.getColumnCount();//获取列的数量 + while (rs.next()) { + Map rowData = new HashMap<>();//声明Map + for (int i = 1; i <= columnCount; i++) { + rowData.put(md.getColumnName(i), rs.getObject(i));//获取键名及值 + } + list.add(rowData); + } + } + } catch (SQLException e) { + e.printStackTrace(); + } finally { + OracleConnect.CloseConn(rs, pst, conn); + } + return list; + } + + public static int insert(String sql){ + Connection conn = new OracleConnect().getConnect(); + try { + pst=conn.prepareStatement(sql); + int i = pst.executeUpdate(); + conn.commit(); + return i; + } catch (SQLException e) { + e.printStackTrace(); + throw new RuntimeException(""); + }finally { + OracleConnect.CloseConn(null, pst, conn); + } + } + + public static int update(String sql) throws Exception { + Connection conn = new OracleConnect().getConnect(); + try { + Statement stmt=conn.createStatement();//创建一个Statement对象 + int i = stmt.executeUpdate(sql);//执行SQL语句 + conn.commit(); + return i; + } catch (SQLException e) { + e.printStackTrace(); + }finally { + OracleConnect.CloseConn(null, pst, conn); + } + return 1; + } +} diff --git a/src/main/java/com/ann/demo/util/PropertiesUtils.java b/src/main/java/com/ann/demo/util/PropertiesUtils.java new file mode 100644 index 0000000..ebc5841 --- /dev/null +++ b/src/main/java/com/ann/demo/util/PropertiesUtils.java @@ -0,0 +1,29 @@ +package com.ann.demo.util; + + +import java.io.IOException; +import java.util.Properties; + +public class PropertiesUtils { + private static String fileName = "\\config\\application.properties"; + private static Properties props; + + synchronized static private void loadProps(){ + if (props==null) { + props = new Properties(); + ClassLoader loader = Thread.currentThread().getContextClassLoader(); + try { + props.load(loader.getResourceAsStream(fileName)); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + public static String getProperty(String key){ + if(null == props) { + loadProps(); + } + return props.getProperty(key); + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml new file mode 100644 index 0000000..31d5954 --- /dev/null +++ b/src/main/resources/application.yml @@ -0,0 +1,31 @@ +spring: + datasource: + url: jdbc:sqlserver://db.docus.cn:1433;DatabaseName=emr_record + username: sa + password: docus@702 +# url: jdbc:sqlserver://localhost:1433;DatabaseName=gm_record +# username: sa +# password: admin123 + driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver + + jpa: + hibernate: + dialect: org.hibernate.dialect.SQLServer2008Dialect + + hikari: + #是否为只读数据库 + read-only: false + # 等待连接池分配链接的最大时长 + connection-timeout: 60000 + # 一个链接idle状态最大时长 + idle-timeout: 60000 + validation-timeout: 3000 + # 一个链接最长的生命时长,超时没有被使用则被释放掉 简易比数据库超时时长少 30s + max-lifetime: 70000 + login-timeout: 5 + # 连接池允许的最大连接数 + maximum-pool-size: 60 + # 连接池维护的最小空闲连接数 + minimum-idle: 10 + + diff --git a/src/main/resources/config/application.properties b/src/main/resources/config/application.properties new file mode 100644 index 0000000..a1097c8 --- /dev/null +++ b/src/main/resources/config/application.properties @@ -0,0 +1,13 @@ +#server.port=8899 +#server.address=localhost + +oracleUrl = 200.100.100.1:1521/orc1 +oracleUserName = Jswzh +oraclePassWord = Jswzh + + + +#oracleUrl = 47.111.21.195:1521/ORCL +#oracleUserName = docus +#oraclePassWord = docus702 + diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..656eddd --- /dev/null +++ b/src/main/resources/logback-spring.xml @@ -0,0 +1,47 @@ + + + + logback + + + + + + + + + INFO + + + + ${LOG_PATTERN} + + + + + + + ${FILE_PATH} + + 30 + + + 2MB + + + 1GB + + + ${LOG_PATTERN} + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/OracleHLMapper.xml b/src/main/resources/mapper/OracleHLMapper.xml new file mode 100644 index 0000000..51a3803 --- /dev/null +++ b/src/main/resources/mapper/OracleHLMapper.xml @@ -0,0 +1,56 @@ + + + + + insert into oracleHL + + + showName, + + + kdsj , + + + jzh, + + + zyh, + + + zycs, + + + + + #{showName}, + + + #{kdsj}, + + + #{jzh}, + + + #{zyh}, + + + #{zycs}, + + + + + update oracleTime set integrityTime=#{afterDate} + + + delete from oracleHL + where jzh=#{jzh} and zyh=#{zyh} and zycs=#{zycs} + + + + + + diff --git a/src/main/resources/mapper/OraclePacsMapper.xml b/src/main/resources/mapper/OraclePacsMapper.xml new file mode 100644 index 0000000..04ab670 --- /dev/null +++ b/src/main/resources/mapper/OraclePacsMapper.xml @@ -0,0 +1,51 @@ + + + + + + + insert into oraclePACS + + + jzh, + + + zyh , + + + fentryName, + + + pdfFileNo, + + + affirmTime, + + + + + #{jzh}, + + + #{zyh}, + + + #{fentryName}, + + + #{pdfFileNo}, + + + #{affirmTime}, + + + + + delete from oraclePACS + where pdfFileNo=#{pdfFileNo} + + +