|  | @ -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();
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | }
 |