|
@ -1,351 +1,391 @@
|
|
|
package com.yihu.wlyy.service;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.yihu.wlyy.repository.organization.HospitalDao;
|
|
|
import com.yihu.wlyy.entity.zydict.*;
|
|
|
import com.yihu.wlyy.repository.zydict.*;
|
|
|
import com.yihu.wlyy.service.third.jw.JwPrescriptionService;
|
|
|
import net.sf.json.JSONArray;
|
|
|
import net.sf.json.JSONObject;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.Date;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.List;
|
|
|
import java.util.regex.Matcher;
|
|
|
import java.util.regex.Pattern;
|
|
|
|
|
|
/**
|
|
|
* Created by chenweida on 2017/8/10.
|
|
|
* 每天1点同步 智业的字典数据
|
|
|
* 智业的字典数据
|
|
|
*/
|
|
|
@Service
|
|
|
public class ZyDictDataService extends BaseService {
|
|
|
|
|
|
private Logger logger = LoggerFactory.getLogger(ZyDictDataService.class);
|
|
|
@Autowired
|
|
|
private JwPrescriptionService jwPrescriptionService;
|
|
|
@Autowired
|
|
|
private HospitalDao hospitalDao;
|
|
|
private ZyCommonDictDao zyCommonDictDao;
|
|
|
@Autowired
|
|
|
private JdbcTemplate jdbcTemplate;
|
|
|
|
|
|
|
|
|
public void synchronizeZy_iv_subject_class_dict() {
|
|
|
try{
|
|
|
String re = jwPrescriptionService.getDictForI(IV_SUBJECT_CLASS_DICT);
|
|
|
JSONObject jsonObject = JSONObject.parseObject(re);
|
|
|
if(jsonObject.getInteger("status")==200){
|
|
|
JSONObject data = jsonObject.getJSONObject("data");
|
|
|
if("1".equals(data.getString("CODE"))){
|
|
|
JSONArray returnData = data.getJSONArray("returnData");
|
|
|
System.out.println("returnData="+returnData.toString());
|
|
|
if(returnData.size()==0){
|
|
|
return;
|
|
|
}
|
|
|
JSONArray dictArray = returnData.getJSONArray(0);
|
|
|
for(int i=0;i<dictArray.size();i++){
|
|
|
JSONObject dict = dictArray.getJSONObject(i);
|
|
|
StringBuffer sql = new StringBuffer("insert into ");
|
|
|
sql.append(TableName.zy_iv_subject_class_dict.getDict()).append(" (class_code,class_name,upper_class,spell_code,wbzx_code) " );
|
|
|
sql.append("values('").append(dict.getString("CLASS_CODE")).append("','");
|
|
|
sql.append(dict.getString("CLASS_NAME")).append("','");
|
|
|
sql.append(dict.getString("UPPER_CLASS")).append("','");
|
|
|
sql.append(dict.getString("SPELL_CODE")).append("','");
|
|
|
sql.append(dict.getString("WBZX_CODE")).append("')");
|
|
|
System.out.println("sql="+sql.toString());
|
|
|
jdbcTemplate.execute(sql.toString());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
private ZyIvDeptDictDao zyIvDeptDictDao;
|
|
|
@Autowired
|
|
|
private ZyIvDeptStaffAllotDictDao zyIvDeptStaffAllotDictDao;
|
|
|
@Autowired
|
|
|
private ZyIvDiagnoseClassDictDao zyIvDiagnoseClassDictDao;
|
|
|
@Autowired
|
|
|
private ZyIvDiagnoseDictDao zyIvDiagnoseDictDao;
|
|
|
@Autowired
|
|
|
private ZyIvOrgPhysicAllotDictDao zyIvOrgPhysicAllotDictDao;
|
|
|
@Autowired
|
|
|
private ZyIvPhysicDictDao zyIvPhysicDictDao;
|
|
|
@Autowired
|
|
|
private ZyIvStaffDictDao zyIvStaffDictDao;
|
|
|
@Autowired
|
|
|
private ZyIvStaffRegTypeAllotDictDao zyIvStaffRegTypeAllotDictDao;
|
|
|
@Autowired
|
|
|
private ZyIvSubjectClassDictDao zyIvSubjectClassDictDao;
|
|
|
|
|
|
/**
|
|
|
* 根据字典名称下载字典
|
|
|
* @param dictName
|
|
|
*/
|
|
|
public void dictByDictName(String dictName){
|
|
|
switch (dictName){
|
|
|
case IV_SUBJECT_CLASS_DICT:
|
|
|
synchronizeZy_iv_subject_class_dict();
|
|
|
break;
|
|
|
case IV_STAFF_REG_TYPE_ALLOT_DICT:
|
|
|
synchronizeZy_iv_staff_reg_type_allot_dict();
|
|
|
break;
|
|
|
case IV_STAFF_DICT:
|
|
|
synchronizeZy_iv_staff_dict();
|
|
|
break;
|
|
|
case IV_PHYSIC_DICT:
|
|
|
synchronizeZy_iv_physic_dict();
|
|
|
break;
|
|
|
case IV_ORG_PHYSIC_ALLOT_DICT:
|
|
|
synchronizeZy_iv_org_physic_allot_dict();
|
|
|
break;
|
|
|
case IV_DIAGNOSE_CLASS_DICT:
|
|
|
synchronizeZy_iv_diagnose_class_dict();
|
|
|
break;
|
|
|
case IV_DEPT_STAFF_ALLOT_DICT:
|
|
|
synchronizeZy_iv_dept_staff_allot_dict();
|
|
|
break;
|
|
|
case "commonDict":
|
|
|
synchronizeZyCommonDict();
|
|
|
break;
|
|
|
case IV_DEPT_DICT:
|
|
|
synchronizeZy_iv_dept_dict();
|
|
|
break;
|
|
|
default:break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public void synchronizeZy_iv_staff_reg_type_allot_dict() {
|
|
|
try{
|
|
|
String re = jwPrescriptionService.getDictForI(IV_STAFF_REG_TYPE_ALLOT_DICT);
|
|
|
JSONObject jsonObject = JSONObject.parseObject(re);
|
|
|
if(jsonObject.getInteger("status")==200){
|
|
|
JSONObject data = jsonObject.getJSONObject("data");
|
|
|
if("1".equals(data.getString("CODE"))){
|
|
|
JSONArray returnData = data.getJSONArray("returnData");
|
|
|
System.out.println("returnData="+returnData.toString());
|
|
|
if(returnData.size()==0){
|
|
|
return;
|
|
|
}
|
|
|
JSONArray dictArray = returnData.getJSONArray(0);
|
|
|
for(int i=0;i<dictArray.size();i++){
|
|
|
JSONObject dict = dictArray.getJSONObject(i);
|
|
|
StringBuffer sql = new StringBuffer("insert into ");
|
|
|
sql.append(TableName.zy_iv_staff_reg_type_allot_dict.getDict()).append(" (org_code,staff_code,register_type,register_type_name,register_fee) " );
|
|
|
sql.append("values('").append(dict.getString("ORG_CODE")).append("','");
|
|
|
sql.append(dict.getString("STAFF_CODE")).append("','");
|
|
|
sql.append(dict.getString("REGISTER_TYPE")).append("','");
|
|
|
sql.append(dict.getString("REGISTER_TYPE_NAME")).append("','");
|
|
|
sql.append(dict.getString("REGISTER_FEE")).append("')");
|
|
|
System.out.println("sql="+sql.toString());
|
|
|
jdbcTemplate.execute(sql.toString());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
public void allDict() {
|
|
|
try {
|
|
|
//同步 zy_common_dict
|
|
|
synchronizeZyCommonDict();
|
|
|
//同步 zy_iv_dept_dict
|
|
|
synchronizeZy_iv_dept_dict();
|
|
|
//同步 zy_iv_dept_staff_allot_dict
|
|
|
synchronizeZy_iv_dept_staff_allot_dict();
|
|
|
//同步 zy_iv_diagnose_dict
|
|
|
synchronizeZy_iv_diagnose_dict();
|
|
|
//同步 zy_iv_diagnose_class_dict
|
|
|
synchronizeZy_iv_diagnose_class_dict();
|
|
|
//同步 zy_iv_org_physic_allot_dict
|
|
|
synchronizeZy_iv_org_physic_allot_dict();
|
|
|
//同步 zy_iv_physic_dict
|
|
|
synchronizeZy_iv_physic_dict();
|
|
|
//同步 zy_iv_staff_dict
|
|
|
synchronizeZy_iv_staff_dict(); //birthday Date(529084800000+0800) 无法解析
|
|
|
//同步 zy_iv_staff_reg_type_allot_dict
|
|
|
synchronizeZy_iv_staff_reg_type_allot_dict();
|
|
|
//同步 zy_iv_subject_class_dict
|
|
|
synchronizeZy_iv_subject_class_dict();
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public void synchronizeZ_iv_staff_dict() {
|
|
|
try{
|
|
|
String re = jwPrescriptionService.getDictForI(IV_STAFF_DICT);
|
|
|
JSONObject jsonObject = JSONObject.parseObject(re);
|
|
|
if(jsonObject.getInteger("status")==200){
|
|
|
JSONObject data = jsonObject.getJSONObject("data");
|
|
|
if("1".equals(data.getString("CODE"))){
|
|
|
JSONArray returnData = data.getJSONArray("returnData");
|
|
|
System.out.println("returnData="+returnData.toString());
|
|
|
if(returnData.size()==0){
|
|
|
return;
|
|
|
}
|
|
|
JSONArray dictArray = returnData.getJSONArray(0);
|
|
|
for(int i=0;i<dictArray.size();i++){
|
|
|
JSONObject dict = dictArray.getJSONObject(i);
|
|
|
StringBuffer sql = new StringBuffer("insert into ");
|
|
|
sql.append(TableName.zy_iv_staff_dict.getDict()).append(" (org_code,staff_code,staff_name,work_code,birthday,sex,spell_code,wbzx_code,identity_no,certificate_no) " );
|
|
|
sql.append("values('").append(dict.getString("ORG_CODE")).append("','");
|
|
|
sql.append(dict.getString("STAFF_CODE")).append("','");
|
|
|
sql.append(dict.getString("STAFF_NAME")).append("','");
|
|
|
sql.append(dict.getString("WORK_CODE")).append("','");
|
|
|
sql.append(dict.getString("BIRTHDAY")).append("','");
|
|
|
sql.append(dict.getString("SEX")).append("','");
|
|
|
sql.append(dict.getString("SPELL_CODE")).append("','");
|
|
|
sql.append(dict.getString("WBZX_CODE")).append("','");
|
|
|
sql.append(dict.getString("IDENTITY_NO")).append("','");
|
|
|
sql.append(dict.getString("CERTIFICATE_NO")).append("')");
|
|
|
System.out.println("sql="+sql.toString());
|
|
|
jdbcTemplate.execute(sql.toString());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
|
|
|
private void synchronizeZy_iv_diagnose_dict() {
|
|
|
logger.info("synchronized zy_iv_diagnose_dict start");
|
|
|
String dictName = this.IV_DIAGNOSE_DICT;
|
|
|
List<ZyIvDiagnoseDict> zyIvDiagnoseDicts = new ArrayList<>();
|
|
|
//得到list
|
|
|
zyIvDiagnoseDicts = commonGetOneDict(ZyIvDiagnoseDict.class, dictName);
|
|
|
if (zyIvDiagnoseDicts != null && zyIvDiagnoseDicts.size() > 0) {
|
|
|
//清空表
|
|
|
zyIvDiagnoseDictDao.deleteAll();
|
|
|
//新增数据
|
|
|
logger.info("save table zy_iv_diagnose_dict ,size:" + zyIvDiagnoseDicts.size());
|
|
|
zyIvDiagnoseDictDao.save(zyIvDiagnoseDicts);
|
|
|
}
|
|
|
logger.info("synchronized zy_iv_diagnose_dict end");
|
|
|
}
|
|
|
|
|
|
private String changDate(String date){
|
|
|
String str=date.replace("/Date(","").replace(")/","");
|
|
|
String time = str.substring(0,str.length()-5);
|
|
|
Date data = new Date(Long.parseLong(time));
|
|
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
return format.format(data);
|
|
|
|
|
|
@Transactional
|
|
|
private void synchronizeZy_iv_subject_class_dict() {
|
|
|
logger.info("synchronized zy_iv_subject_class_dict start");
|
|
|
String dictName = this.IV_SUBJECT_CLASS_DICT;
|
|
|
List<ZyIvSubjectClassDict> zyIvSubjectClassDicts = new ArrayList<>();
|
|
|
//得到list
|
|
|
zyIvSubjectClassDicts = commonGetOneDict(ZyIvSubjectClassDict.class, dictName);
|
|
|
if (zyIvSubjectClassDicts.size() > 0) {
|
|
|
//清空表
|
|
|
zyIvSubjectClassDictDao.deleteAll();
|
|
|
//新增数据
|
|
|
logger.info("save table zy_iv_subject_class_dict ,size:" + zyIvSubjectClassDicts.size());
|
|
|
zyIvSubjectClassDictDao.save(zyIvSubjectClassDicts);
|
|
|
logger.info("synchronized zy_iv_subject_class_dict end");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public void synchronizeZy_iv_physic_dict() {
|
|
|
try{
|
|
|
String re = jwPrescriptionService.getDictForI(IV_PHYSIC_DICT);
|
|
|
JSONObject jsonObject = JSONObject.parseObject(re);
|
|
|
if(jsonObject.getInteger("status")==200){
|
|
|
JSONObject data = jsonObject.getJSONObject("data");
|
|
|
if("1".equals(data.getString("CODE"))){
|
|
|
JSONArray returnData = data.getJSONArray("returnData");
|
|
|
System.out.println("returnData="+returnData.toString());
|
|
|
if(returnData.size()==0){
|
|
|
return;
|
|
|
}
|
|
|
JSONArray dictArray = returnData.getJSONArray(0);
|
|
|
for(int i=0;i<dictArray.size();i++){
|
|
|
JSONObject dict = dictArray.getJSONObject(i);
|
|
|
StringBuffer sql = new StringBuffer("insert into ");
|
|
|
sql.append(TableName.zy_iv_physic_dict.getDict()).append(" (physic_code,physic_name,physic_spec,subject_class,dose_unit,quantity_unit,pack_unit,min_dose,pack_spec, " );
|
|
|
sql.append("retail_price,physic_from,toxicology_type,basic_flag,valid_flag,spell_code,wbzx_code,sequence)");
|
|
|
sql.append("values('").append(dict.getString("PHYSIC_CODE")).append("','");//药品代码
|
|
|
sql.append(dict.getString("PHYSIC_NAME")).append("','");//'药品名称'
|
|
|
sql.append(dict.getString("PHYSIC_SPEC")).append("','");//'药品规格'
|
|
|
sql.append(dict.getString("SUBJECT_CLASS")).append("','");//'药品科目 科目类别字典中定义'
|
|
|
sql.append(dict.getString("DOSE_UNIT")).append("','");//'剂量单位 计量单位字典中定义'
|
|
|
sql.append(dict.getString("QUANTITY_UNIT")).append("','");///'数量单位 计量单位字典中定义'
|
|
|
sql.append(dict.getString("PACK_UNIT")).append("',");//'包装单位 计量单位字典中定义'
|
|
|
sql.append(dict.getDouble("MIN_DOSE")).append(",");//'最小剂量'
|
|
|
sql.append(dict.getDouble("PACK_SPEC")).append(",");//
|
|
|
sql.append(dict.getDouble("RETAIL_PRICE")).append(",'");//'零售价'
|
|
|
sql.append(dict.getString("PHYSIC_FROM")).append("','");//'药品剂型 药品剂型字典中定义'
|
|
|
sql.append(dict.getString("TOXICOLOGY_TYPE")).append("','");//'毒理分类 药品毒理分类字典中定义'
|
|
|
sql.append(dict.getString("BASIC_FLAG")).append("','");//'基本药物标志 0:否;1:是'
|
|
|
sql.append(dict.getString("VALID_FLAG")).append("','");//'有效标志 0:无效;1:有效'
|
|
|
sql.append(dict.getString("SPELL_CODE")).append("','");//'拼音首码'
|
|
|
sql.append(dict.getString("WBZX_CODE")).append("',");//'五笔首码'
|
|
|
if(dict.getInteger("SEQUENCE")==null){
|
|
|
sql.append(dict.getInteger("SEQUENCE")).append(")");//'排序号'
|
|
|
}else {
|
|
|
sql.append(dict.getString("SEQUENCE")).append(")");//'排序号'
|
|
|
}
|
|
|
System.out.println("sql="+sql.toString());
|
|
|
jdbcTemplate.execute(sql.toString());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
@Transactional
|
|
|
private void synchronizeZy_iv_staff_reg_type_allot_dict() {
|
|
|
logger.info("synchronized zy_iv_staff_reg_type_allot_dict start");
|
|
|
String dictName = this.IV_STAFF_REG_TYPE_ALLOT_DICT;
|
|
|
List<ZyIvStaffRegTypeAllotDict> zyIvStaffRegTypeAllotDicts = new ArrayList<>();
|
|
|
//得到list
|
|
|
zyIvStaffRegTypeAllotDicts = commonGetOneDict(ZyIvStaffRegTypeAllotDict.class, dictName);
|
|
|
if (zyIvStaffRegTypeAllotDicts != null && zyIvStaffRegTypeAllotDicts.size() > 0) {
|
|
|
//清空表
|
|
|
zyIvStaffRegTypeAllotDictDao.deleteAll();
|
|
|
//新增数据
|
|
|
logger.info("save table zy_iv_staff_reg_type_allot_dict ,size:" + zyIvStaffRegTypeAllotDicts.size());
|
|
|
zyIvStaffRegTypeAllotDictDao.save(zyIvStaffRegTypeAllotDicts);
|
|
|
logger.info("synchronized zy_iv_staff_reg_type_allot_dict end");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public void synchronizeZy_iv_org_physic_allot_dict() {
|
|
|
try{
|
|
|
String re = jwPrescriptionService.getDictForI(IV_ORG_PHYSIC_ALLOT_DICT);
|
|
|
JSONObject jsonObject = JSONObject.parseObject(re);
|
|
|
if(jsonObject.getInteger("status")==200){
|
|
|
JSONObject data = jsonObject.getJSONObject("data");
|
|
|
if("1".equals(data.getString("CODE"))){
|
|
|
JSONArray returnData = data.getJSONArray("returnData");
|
|
|
System.out.println("returnData="+returnData.toString());
|
|
|
if(returnData.size()==0){
|
|
|
return;
|
|
|
}
|
|
|
JSONArray dictArray = returnData.getJSONArray(0);
|
|
|
for(int i=0;i<dictArray.size();i++){
|
|
|
JSONObject dict = dictArray.getJSONObject(i);
|
|
|
StringBuffer sql = new StringBuffer("insert into ");
|
|
|
sql.append(TableName.zy_iv_org_physic_allot_dict.getDict()).append(" (org_code,physic_code) " );
|
|
|
sql.append("values('").append(dict.getString("ORG_CODE")).append("','");//'机构编码'
|
|
|
sql.append(dict.getString("PHYSIC_CODE")).append("')");//'药品代码'
|
|
|
System.out.println("sql="+sql.toString());
|
|
|
jdbcTemplate.execute(sql.toString());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
@Transactional
|
|
|
private void synchronizeZy_iv_staff_dict() {
|
|
|
logger.info("synchronized zy_iv_staff_dict start");
|
|
|
String dictName = this.IV_STAFF_DICT;
|
|
|
List<ZyIvStaffDict> zyIvStaffDicts = new ArrayList<>();
|
|
|
//得到list
|
|
|
zyIvStaffDicts = commonGetOneDict(ZyIvStaffDict.class, dictName);
|
|
|
//清空表
|
|
|
if (zyIvStaffDicts != null && zyIvStaffDicts.size() > 0) {
|
|
|
zyIvStaffDictDao.deleteAll();
|
|
|
//新增数据
|
|
|
logger.info("save table zy_iv_staff_dict ,size:" + zyIvStaffDicts.size());
|
|
|
zyIvStaffDictDao.save(zyIvStaffDicts);
|
|
|
logger.info("synchronized zy_iv_staff_dict end");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public void synchronizeZy_iv_diagnose_class_dict() {
|
|
|
try{
|
|
|
String re = jwPrescriptionService.getDictForI(IV_DIAGNOSE_CLASS_DICT);
|
|
|
JSONObject jsonObject = JSONObject.parseObject(re);
|
|
|
if(jsonObject.getInteger("status")==200){
|
|
|
JSONObject data = jsonObject.getJSONObject("data");
|
|
|
if("1".equals(data.getString("CODE"))){
|
|
|
JSONArray returnData = data.getJSONArray("returnData");
|
|
|
System.out.println("returnData="+returnData.toString());
|
|
|
if(returnData.size()==0){
|
|
|
return;
|
|
|
}
|
|
|
JSONArray dictArray = returnData.getJSONArray(0);
|
|
|
for(int i=0;i<dictArray.size();i++){
|
|
|
JSONObject dict = dictArray.getJSONObject(i);
|
|
|
StringBuffer sql = new StringBuffer("insert into ");
|
|
|
sql.append(TableName.zy_iv_diagnose_class_dict.getDict()).append(" (class_sub_no,class_code,class_name,upper_class,valid_flag,spell_code,wbzx_code) " );
|
|
|
sql.append("values('").append(dict.getString("CLASS_SUB_NO")).append("','");//''类别子序号''
|
|
|
sql.append(dict.getString("CLASS_CODE")).append("','");//'类别代码'
|
|
|
sql.append(dict.getString("CLASS_NAME")).append("','");//'类别名称'
|
|
|
sql.append(dict.getString("UPPER_CLASS")).append("','");//'上级类别'
|
|
|
sql.append(dict.getString("VALID_FLAG")).append("','");//'有效标志 0 :无效;1:有效'
|
|
|
sql.append(dict.getString("SPELL_CODE")).append("','");//'拼音首码'
|
|
|
sql.append(dict.getString("WBZX_CODE")).append("')");//''五笔首码''
|
|
|
System.out.println("sql="+sql.toString());
|
|
|
jdbcTemplate.execute(sql.toString());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
@Transactional
|
|
|
private void synchronizeZy_iv_physic_dict() {
|
|
|
logger.info("synchronized zy_iv_physic_dict start");
|
|
|
String dictName = this.IV_PHYSIC_DICT;
|
|
|
List<ZyIvPhysicDict> zyIvPhysicDicts = new ArrayList<>();
|
|
|
//得到list
|
|
|
zyIvPhysicDicts = commonGetOneDict(ZyIvPhysicDict.class, dictName);
|
|
|
if (zyIvPhysicDicts != null && zyIvPhysicDicts.size() > 0) {
|
|
|
//清空表
|
|
|
zyIvPhysicDictDao.deleteAll();
|
|
|
//新增数据
|
|
|
logger.info("save table zy_iv_physic_dict ,size:" + zyIvPhysicDicts.size());
|
|
|
zyIvPhysicDictDao.save(zyIvPhysicDicts);
|
|
|
logger.info("synchronized zy_iv_physic_dict end");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public void synchronizeZy_iv_dept_staff_allot_dict() {
|
|
|
try{
|
|
|
String re = jwPrescriptionService.getDictForI(IV_DEPT_STAFF_ALLOT_DICT);
|
|
|
JSONObject jsonObject = JSONObject.parseObject(re);
|
|
|
if(jsonObject.getInteger("status")==200){
|
|
|
JSONObject data = jsonObject.getJSONObject("data");
|
|
|
if("1".equals(data.getString("CODE"))){
|
|
|
JSONArray returnData = data.getJSONArray("returnData");
|
|
|
System.out.println("returnData="+returnData.toString());
|
|
|
if(returnData.size()==0){
|
|
|
return;
|
|
|
}
|
|
|
JSONArray dictArray = returnData.getJSONArray(0);
|
|
|
for(int i=0;i<dictArray.size();i++){
|
|
|
JSONObject dict = dictArray.getJSONObject(i);
|
|
|
StringBuffer sql = new StringBuffer("insert into ");
|
|
|
sql.append(TableName.zy_iv_dept_staff_allot_dict.getDict()).append(" (org_code,dept_code,staff_code) " );
|
|
|
sql.append("values('").append(dict.getString("ORG_CODE")).append("','");//'''机构编码'''
|
|
|
sql.append(dict.getString("DEPT_CODE")).append("','");//''科室编码''
|
|
|
sql.append(dict.getString("STAFF_CODE")).append("')");//'''员工编码'''
|
|
|
System.out.println("sql="+sql.toString());
|
|
|
jdbcTemplate.execute(sql.toString());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
@Transactional
|
|
|
private void synchronizeZy_iv_org_physic_allot_dict() {
|
|
|
logger.info("synchronized zy_iv_org_physic_allot_dict start");
|
|
|
String dictName = this.IV_ORG_PHYSIC_ALLOT_DICT;
|
|
|
List<ZyIvOrgPhysicAllotDict> zyIvOrgPhysicAllotDicts = new ArrayList<>();
|
|
|
//得到list
|
|
|
zyIvOrgPhysicAllotDicts = commonGetOneDict(ZyIvOrgPhysicAllotDict.class, dictName);
|
|
|
if (zyIvOrgPhysicAllotDicts != null && zyIvOrgPhysicAllotDicts.size() > 0) {
|
|
|
//清空表
|
|
|
zyIvOrgPhysicAllotDictDao.deleteAll();
|
|
|
//新增数据
|
|
|
logger.info("save table zy_iv_org_physic_allot_dict ,size:" + zyIvOrgPhysicAllotDicts.size());
|
|
|
zyIvOrgPhysicAllotDictDao.save(zyIvOrgPhysicAllotDicts);
|
|
|
}
|
|
|
logger.info("synchronized zy_iv_org_physic_allot_dict end");
|
|
|
}
|
|
|
|
|
|
@Transactional
|
|
|
private void synchronizeZy_iv_diagnose_class_dict() {
|
|
|
logger.info("synchronized zy_iv_diagnose_class_dict start");
|
|
|
String dictName = this.IV_DIAGNOSE_CLASS_DICT;
|
|
|
List<ZyIvDiagnoseClassDict> zIvDiagnoseClassDicts = new ArrayList<>();
|
|
|
//得到list
|
|
|
zIvDiagnoseClassDicts = commonGetOneDict(ZyIvDiagnoseClassDict.class, dictName);
|
|
|
if (zIvDiagnoseClassDicts != null && zIvDiagnoseClassDicts.size() > 0) {
|
|
|
//清空表
|
|
|
zyIvDiagnoseClassDictDao.deleteAll();
|
|
|
//新增数据
|
|
|
|
|
|
logger.info("save table zy_iv_diagnose_class_dict ,size:" + zIvDiagnoseClassDicts.size());
|
|
|
zyIvDiagnoseClassDictDao.save(zIvDiagnoseClassDicts);
|
|
|
}
|
|
|
logger.info("synchronized zy_iv_diagnose_class_dict end");
|
|
|
}
|
|
|
|
|
|
@Transactional
|
|
|
private void synchronizeZy_iv_dept_staff_allot_dict() {
|
|
|
logger.info("synchronized zy_iv_dept_staff_allot_dict start");
|
|
|
String dictName = this.IV_DEPT_STAFF_ALLOT_DICT;
|
|
|
List<ZyIvDeptStaffAllotDict> syIvDeptStaffAllotDictz = new ArrayList<>();
|
|
|
//得到list
|
|
|
syIvDeptStaffAllotDictz = commonGetOneDict(ZyIvDeptStaffAllotDict.class, dictName);
|
|
|
|
|
|
if (syIvDeptStaffAllotDictz != null && syIvDeptStaffAllotDictz.size() > 0) {
|
|
|
//清空表
|
|
|
zyIvDeptStaffAllotDictDao.deleteAll();
|
|
|
//新增数据
|
|
|
logger.info("save table zy_iv_dept_staff_allot_dict ,size:" + syIvDeptStaffAllotDictz.size());
|
|
|
zyIvDeptStaffAllotDictDao.save(syIvDeptStaffAllotDictz);
|
|
|
}
|
|
|
logger.info("synchronized zy_iv_dept_staff_allot_dict end");
|
|
|
}
|
|
|
|
|
|
public void synchronizeZyCommonDict() {
|
|
|
@Transactional
|
|
|
private void synchronizeZyCommonDict() {
|
|
|
logger.info("synchronized zy_common_dict start");
|
|
|
String[] dictNames = new String[]{
|
|
|
this.IV_PHYSIC_FORM_DICT, this.IV_PHYSIC_INJECT_PLACE_DICT, this.IV_PHYSIC_SKIN_TEST_DICT,
|
|
|
this.IV_RATE_TYPE_DICT, this.IV_RECIPE_FREQUENCY_DICT, this.IV_RECIPE_USAGE_DICT,
|
|
|
this.IV_SEX_DICT, this.IV_PHYSIC_TOXICOLOGY_TYPE_DICT, this.IV_MEASURE_UNIT_DICT,
|
|
|
this.IV_DEPT_TYPE_DICT};
|
|
|
|
|
|
try{
|
|
|
for (String dictName : dictNames) {
|
|
|
String re = jwPrescriptionService.getDictForI(dictName);
|
|
|
JSONObject jsonObject = JSONObject.parseObject(re);
|
|
|
if(jsonObject.getInteger("status")==200){
|
|
|
JSONObject data = jsonObject.getJSONObject("data");
|
|
|
if("1".equals(data.getString("CODE"))){
|
|
|
JSONArray returnData = data.getJSONArray("returnData");
|
|
|
System.out.println("returnData="+returnData.toString());
|
|
|
if(returnData.size()==0){
|
|
|
continue;
|
|
|
}
|
|
|
JSONArray dictArray = returnData.getJSONArray(0);
|
|
|
for(int i=0;i<dictArray.size();i++){
|
|
|
JSONObject dict = dictArray.getJSONObject(i);
|
|
|
StringBuffer sql = new StringBuffer("insert into ");
|
|
|
sql.append(TableName.zy_common_dict.getDict()).append(" (dict_name,code,name) " );
|
|
|
sql.append("values('").append(dict.getString("DICT_NAME")).append("','");
|
|
|
sql.append(dict.getString("CODE")).append("','");
|
|
|
sql.append(dict.getString("NAME")).append("')");
|
|
|
System.out.println("sql="+sql.toString());
|
|
|
jdbcTemplate.execute(sql.toString());
|
|
|
}
|
|
|
List<ZyCommonDict> zyCommonDictz = new ArrayList<>();
|
|
|
Boolean isFlush = true;
|
|
|
for (String dictName : dictNames) {
|
|
|
String json = null;
|
|
|
try {
|
|
|
//调用智业的接口得到字典
|
|
|
json = jwPrescriptionService.getDictForI(dictName);
|
|
|
JSONObject returnJson = JSONObject.fromObject(json);
|
|
|
if (returnJson.getInt("status") != 200) {
|
|
|
throw new Exception("zy dict error status not 200");
|
|
|
}
|
|
|
if (returnJson.containsKey("data")) {
|
|
|
String dataString = returnJson.getString("data");
|
|
|
JSONArray dataJSONArray = JSONObject.fromObject(dataString).getJSONArray("returnData");
|
|
|
if (dataJSONArray.size() == 0) {
|
|
|
logger.info("zy dict data size " + dataJSONArray.size() + ",dictname:" + dictName);
|
|
|
continue;
|
|
|
}
|
|
|
//下划线转驼峰
|
|
|
JSONArray newJA = new JSONArray();
|
|
|
JSONArray jsonArrayTemp = dataJSONArray.getJSONArray(0);
|
|
|
logger.info("zy dict data size " + jsonArrayTemp.size() + ",dictname:" + dictName);
|
|
|
for (int i = 0; i < jsonArrayTemp.size(); i++) {
|
|
|
JSONObject jo = jsonArrayTemp.getJSONObject(i);
|
|
|
JSONObject newJO = new JSONObject();
|
|
|
jo.keySet().stream().forEach(key -> {
|
|
|
Object value = jo.get(key);
|
|
|
String newKey = Tool.lineToHump(key.toString());
|
|
|
newJO.put(newKey, value);
|
|
|
});
|
|
|
newJA.add(newJO);
|
|
|
}
|
|
|
|
|
|
ZyCommonDict[] zyCommonDictArrays = (ZyCommonDict[]) JSONArray.toArray(newJA, ZyCommonDict.class);
|
|
|
zyCommonDictz.addAll(Arrays.asList(zyCommonDictArrays));
|
|
|
} else {
|
|
|
throw new Exception("zy dict error no contain data");
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
isFlush = false; //设置状态不能更新
|
|
|
logger.error("dictName:" + dictName);
|
|
|
logger.error("returnJson:" + json);
|
|
|
logger.error(e.getMessage());
|
|
|
}
|
|
|
}
|
|
|
//判断是否可以更新
|
|
|
if (isFlush) {
|
|
|
// 判断返回的数据是否大于0
|
|
|
if (zyCommonDictz.size() > 0) {
|
|
|
//清空表
|
|
|
zyCommonDictDao.deleteAll();
|
|
|
//新增数据
|
|
|
logger.info("save table zy_common_dict ,size:" + zyCommonDictz.size());
|
|
|
zyCommonDictDao.save(zyCommonDictz);
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
|
|
|
logger.info("synchronized zy_common_dict end");
|
|
|
}
|
|
|
|
|
|
public void synchronizeZy_iv_dept_dict() {
|
|
|
try{
|
|
|
String re = jwPrescriptionService.getDictForI(IV_DEPT_DICT);
|
|
|
JSONObject jsonObject = JSONObject.parseObject(re);
|
|
|
if(jsonObject.getInteger("status")==200){
|
|
|
JSONObject data = jsonObject.getJSONObject("data");
|
|
|
if("1".equals(data.getString("CODE"))){
|
|
|
JSONArray returnData = data.getJSONArray("returnData");
|
|
|
System.out.println("returnData="+returnData.toString());
|
|
|
if(returnData.size()==0){
|
|
|
return;
|
|
|
}
|
|
|
JSONArray dictArray = returnData.getJSONArray(0);
|
|
|
for(int i=0;i<dictArray.size();i++){
|
|
|
JSONObject dict = dictArray.getJSONObject(i);
|
|
|
StringBuffer sql = new StringBuffer("insert into ");
|
|
|
sql.append(TableName.zy_iv_dept_dict.getDict()).append(" (org_code,dept_code,dept_name,dept_type,upper_dept) " );
|
|
|
sql.append("values('").append(dict.getString("ORG_CODE")).append("','");//机构编码
|
|
|
sql.append(dict.getString("DEPT_CODE")).append("','");//'科室编码
|
|
|
sql.append(dict.getString("DEPT_NAME")).append("','");//'科室名称
|
|
|
sql.append(dict.getString("DEPT_TYPE")).append("','");//'科室类型 详见科室类型字典中定义
|
|
|
sql.append(dict.getString("UPPER_DEPT")).append("')");//'上级科室
|
|
|
System.out.println("sql="+sql.toString());
|
|
|
jdbcTemplate.execute(sql.toString());
|
|
|
}
|
|
|
@Transactional
|
|
|
private void synchronizeZy_iv_dept_dict() {
|
|
|
logger.info("synchronized zy_iv_dept_dict start");
|
|
|
String dictName = this.IV_DEPT_DICT;
|
|
|
List<ZyIvDeptDict> zyIvDeptDicts = new ArrayList<>();
|
|
|
//得到list
|
|
|
zyIvDeptDicts = commonGetOneDict(ZyIvDeptDict.class, dictName);
|
|
|
if (zyIvDeptDicts != null && zyIvDeptDicts.size() > 0) {
|
|
|
//清空表
|
|
|
zyIvDeptDictDao.deleteAll();
|
|
|
//新增数据
|
|
|
logger.info("save table zy_iv_dept_dict ,size:" + zyIvDeptDicts.size());
|
|
|
zyIvDeptDictDao.save(zyIvDeptDicts);
|
|
|
}
|
|
|
logger.info("synchronized zy_iv_dept_dict end");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 得到单个字典
|
|
|
*
|
|
|
* @param clazz class
|
|
|
* @param dictName 字典名称
|
|
|
*/
|
|
|
private List commonGetOneDict(Class clazz, String dictName) {
|
|
|
String json = null;
|
|
|
try {
|
|
|
//调用智业的接口得到字典
|
|
|
json = jwPrescriptionService.getDictForI(dictName);
|
|
|
JSONObject returnJson = JSONObject.fromObject(json);
|
|
|
if (returnJson.getInt("status") != 200) {
|
|
|
throw new Exception("zy dict error status not 200");
|
|
|
}
|
|
|
if (returnJson.containsKey("data")) {
|
|
|
String dataJSONStr = returnJson.getString("data");
|
|
|
JSONObject joTemp = JSONObject.fromObject(dataJSONStr);
|
|
|
JSONArray dataJSONArray = joTemp.getJSONArray("returnData");
|
|
|
if (dataJSONArray.size() == 0) {
|
|
|
logger.info("zy dict data size " + dataJSONArray.size() + ",dictname:" + dictName);
|
|
|
return null;
|
|
|
} else {
|
|
|
dataJSONArray = dataJSONArray.getJSONArray(0);
|
|
|
}
|
|
|
|
|
|
logger.info("zy dict data size " + dataJSONArray.size() + ",dictname:" + dictName);
|
|
|
|
|
|
//下划线转驼峰
|
|
|
JSONArray newJA = new JSONArray();
|
|
|
for (int i = 0; i < dataJSONArray.size(); i++) {
|
|
|
JSONObject jo = dataJSONArray.getJSONObject(i);
|
|
|
JSONObject newJO = new JSONObject();
|
|
|
jo.keySet().stream().forEach(key -> {
|
|
|
Object value = jo.get(key);
|
|
|
String newKey = Tool.lineToHump(key.toString());
|
|
|
newJO.put(newKey, value);
|
|
|
});
|
|
|
newJA.add(newJO);
|
|
|
}
|
|
|
return (List) JSONArray.toCollection(newJA, clazz);
|
|
|
} else {
|
|
|
throw new Exception("zy dict error no contain data");
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
} catch (Exception e) {
|
|
|
logger.error("dictName:" + dictName);
|
|
|
logger.error("returnJson:" + json);
|
|
|
logger.error(e.getMessage());
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@ -371,7 +411,9 @@ public class ZyDictDataService extends BaseService {
|
|
|
public static final String IV_STAFF_REG_TYPE_ALLOT_DICT = "IV_STAFF_REG_TYPE_ALLOT_DICT";//("员工挂号类型配置字典", "IV_STAFF_REG_TYPE_ALLOT_DICT"),
|
|
|
public static final String IV_DEPT_STAFF_ALLOT_DICT = "IV_DEPT_STAFF_ALLOT_DICT";//("科室员工配置字典", "IV_DEPT_STAFF_ALLOT_DICT");
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 字典表的枚举类
|
|
|
*/
|
|
|
public enum TableName {
|
|
|
|
|
|
zy_common_dict("通用字典", "zy_common_dict"),
|
|
@ -408,6 +450,7 @@ public class ZyDictDataService extends BaseService {
|
|
|
public void setDict(String dict) {
|
|
|
this.dict = dict;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
@ -479,4 +522,45 @@ public class ZyDictDataService extends BaseService {
|
|
|
}
|
|
|
return "";
|
|
|
}
|
|
|
|
|
|
public static class Tool {
|
|
|
private static Pattern linePattern = Pattern.compile("_(\\w)");
|
|
|
|
|
|
/**
|
|
|
* 下划线转驼峰
|
|
|
*/
|
|
|
public static String lineToHump(String str) {
|
|
|
str = str.toLowerCase();
|
|
|
Matcher matcher = linePattern.matcher(str);
|
|
|
StringBuffer sb = new StringBuffer();
|
|
|
while (matcher.find()) {
|
|
|
matcher.appendReplacement(sb, matcher.group(1).toUpperCase());
|
|
|
}
|
|
|
matcher.appendTail(sb);
|
|
|
return sb.toString();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 驼峰转下划线(简单写法,效率低于{@link #humpToLine2(String)})
|
|
|
*/
|
|
|
public static String humpToLine(String str) {
|
|
|
return str.replaceAll("[A-Z]", "_$0").toLowerCase();
|
|
|
}
|
|
|
|
|
|
private static Pattern humpPattern = Pattern.compile("[A-Z]");
|
|
|
|
|
|
/**
|
|
|
* 驼峰转下划线,效率比上面高
|
|
|
*/
|
|
|
public static String humpToLine2(String str) {
|
|
|
Matcher matcher = humpPattern.matcher(str);
|
|
|
StringBuffer sb = new StringBuffer();
|
|
|
while (matcher.find()) {
|
|
|
matcher.appendReplacement(sb, "_" + matcher.group(0).toLowerCase());
|
|
|
}
|
|
|
matcher.appendTail(sb);
|
|
|
return sb.toString();
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|