Kaynağa Gözat

居民随访信息上传BUG修复

huangwenjie 7 yıl önce
ebeveyn
işleme
83bdcce2ce

+ 27 - 13
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/service/third/jw/JwPrescriptionService.java

@ -469,6 +469,8 @@ public class JwPrescriptionService {
                        JSONArray dataArray = jwData.getJSONArray("DATA");
                        logger.info("从基卫获取随访信息数量"+ dataArray.size()+",社区名称:"+hospitalMapping.getName());
                        for (int i = 0; i < dataArray.size(); i++) {
    
//                            logger.info("同步单条随访记录-开始,时间:"+DateUtil.getStringDate());
                            Followup followup = new Followup();
                    
                            JSONObject json = dataArray.getJSONObject(i);
@ -798,6 +800,7 @@ public class JwPrescriptionService {
                                followupContentESDO10.setFollowup_project("10");
                                newList.add(followupContentESDO10);
    
//                                logger.info("同步单条随访记录-ES数据对象组装完毕,时间:"+DateUtil.getStringDate());
                                //ES保存新数据
                                this.esSaveFollowupContentData(String.valueOf(followupId),newList);
                        
@ -884,30 +887,32 @@ public class JwPrescriptionService {
    
                    //转MAP
                    followupResultMap =  this.operaESFollowUpContentData(followupContentESDOList);
    
                    String JW_ORG_CODE = followup.getJworgCode();//基卫机构编码
                    String ORG_CODE = followup.getOrgCode();//本地机构编码
                    if(StringUtils.isBlank(JW_ORG_CODE)){
                        JW_ORG_CODE = hospitalMappingDao.getMappingCode(ORG_CODE,"1");
                        followup.setJworgCode(JW_ORG_CODE);
                    }
                    
                    String OPERATOR = followup.getJwdoctorCode();//操作员&录入医生
                    if (StringUtils.isBlank(OPERATOR)) {
                        OPERATOR = doctorMappingDao.findByDocotrCodeAndJwDoctorHospital(followup.getDoctorCode(), followup.getOrgCode());
                        OPERATOR = doctorMappingDao.findByDocotrCodeAndJwDoctorHospital(followup.getDoctorCode(), followup.getJworgCode());
                        followup.setJwdoctorCode(OPERATOR);
                    }
                    
                    followupResultMap.put("OPERATOR",OPERATOR);
                    
                    String FOLLOWUP_NO = followup.getFollowupNo();//家庭医生服务随访主表ID
                    if (StringUtils.isBlank(FOLLOWUP_NO)) {
                        FOLLOWUP_NO = "0";
                    }else{
                    
                    }
                    
                    followupResultMap.put("FOLLOWUP_ID",String.valueOf(followup.getId()));
                    followupResultMap.put("FOLLOWUP_NO",FOLLOWUP_NO);
                    
                    String FAMILY_FOLLOWUP_TYPE = "3";//随访类型,必传值3 【必填】
                    String ORG_CODE = followup.getOrgCode();//本地机构编码
                    String JW_ORG_CODE = followup.getJworgCode();//基卫机构编码
                    if(StringUtils.isBlank(JW_ORG_CODE)){
                        JW_ORG_CODE = hospitalMappingDao.getMappingCode(ORG_CODE,"1");
                        followup.setJworgCode(JW_ORG_CODE);
                    }
                    String FOLLOWUP_SOURCE = "3";//健康之路移动端
                    String IDENTITY_CARD_NO = followup.getIdcard();
                    String FAMILY_FOLLOWUP_CLASS_NAMES = followup.getFollowupClass();
@ -992,18 +997,19 @@ public class JwPrescriptionService {
                        continue;
                    }
    
                    DecimalFormat df = new DecimalFormat("######0.00");
//                    DecimalFormat df = new DecimalFormat("######0.00");
    
                    //普通药品
//                    if(!followupDrugsNormal.isEmpty()){
                        for (int i = 0; i <= 6; i++) {
                            int tag = i+1;
                            if( !followupDrugsNormal.isEmpty() && followupDrugsNormal.size() >0 && followupDrugsNormal.size() <= tag){
                            if( !followupDrugsNormal.isEmpty() && followupDrugsNormal.size() >0 && i < followupDrugsNormal.size()){
                                followupResultMap.put("PHYSIC_NAME"+tag,followupDrugsNormal.get(i).getDrugsName());
                                followupResultMap.put("FREQUENCY"+tag,followupDrugsNormal.get(i).getFrequency());
                                followupResultMap.put("PHYSIC_UNIT"+tag,followupDrugsNormal.get(i).getUnit());
                                if(followupDrugsNormal.get(i).getDose() !=null){
                                    followupResultMap.put("PHYSIC_DOSE"+tag,df.format(followupDrugsNormal.get(i).getDose()));
                                    followupResultMap.put("PHYSIC_DOSE"+tag,followupDrugsNormal.get(i).getDose());
//                                    followupResultMap.put("PHYSIC_DOSE"+tag,df.format(followupDrugsNormal.get(i).getDose()));
                                }else{
                                    followupResultMap.put("PHYSIC_DOSE"+tag,"");
                                }
@ -1024,7 +1030,8 @@ public class JwPrescriptionService {
                            followupResultMap.put("INSULIN_FREQUENCY"+tag,followupDrugsInsulin.get(j).getFrequency());
                            followupResultMap.put("INSULIN_UNIT"+tag,followupDrugsInsulin.get(j).getUnit());
                            if(followupDrugsInsulin.get(j).getDose() !=null){
                                followupResultMap.put("INSULIN_DOSE"+tag,df.format(followupDrugsInsulin.get(j).getDose()));
                                followupResultMap.put("INSULIN_DOSE"+tag,followupDrugsInsulin.get(j).getDose());
//                                followupResultMap.put("INSULIN_DOSE"+tag,df.format(followupDrugsInsulin.get(j).getDose()));
                            }else{
                                followupResultMap.put("INSULIN_DOSE","");
                            }
@ -1200,6 +1207,7 @@ public class JwPrescriptionService {
        JestClient jestClient = null;
        
        try {
//            logger.info("同步单条随访记录-开始建立ES数据连接,时间:"+DateUtil.getStringDate());
            jestClient = elasticFactory.getJestClient();
            //先根据条件查找出来
            SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
@ -1209,13 +1217,19 @@ public class JwPrescriptionService {
            );
            Search search = new Search.Builder(searchSourceBuilder.toString()).addIndex(esIndex).addType(esType).build();
            SearchResult result = jestClient.execute(search);
//            logger.info("同步单条随访记录-开始查询ES数据,时间:"+DateUtil.getStringDate());
            List<FollowupContentESDO> dataList = result.getSourceAsObjectList(FollowupContentESDO.class);
//            logger.info("同步单条随访记录-ES数据查询成功,时间:"+DateUtil.getStringDate());
            if(!dataList.isEmpty()){
                //删除原有记录
//                logger.info("同步单条随访记录-开始删除ES数据,时间:"+DateUtil.getStringDate());
                this.esDeleteFollowUpContent(dataList);
//                logger.info("同步单条随访记录-ES数据删除成功,时间:"+DateUtil.getStringDate());
            }
            //保存新的随访详情记录
//            logger.info("同步单条随访记录-开始保存ES数据,时间:"+DateUtil.getStringDate());
            elastricSearchSave.save(newdatalist,esIndex,esType);
//            logger.info("同步单条随访记录-ES数据保存成功,时间:"+DateUtil.getStringDate());
            jestClient.shutdownClient();
        }catch (Exception e){
            logger.error(" save error :" + e.getMessage());