Jelajahi Sumber

Merge branch 'dev' of huangwenjie/patient-co-management into dev

chenweida 7 tahun lalu
induk
melakukan
bd38b97a70

+ 13 - 13
common/common-entity/src/main/java/com/yihu/wlyy/entity/oldpeople/OldPeoplePhysicalExaminationEntity.java

@ -13,19 +13,19 @@ import java.sql.Timestamp;
@Entity
@Table(name = "wlyy_old_people_physical_examination",catalog = "")
public class OldPeoplePhysicalExaminationEntity extends IdEntity implements Serializable {
	private String code;
	private String medicalNo;
	private String patientName;
	private String patientCode;
	private String idCard;
	private String doctorCode;
	private String jwDoctorCode;
	private String orgCode;
	private String orgName;
	private Timestamp medicalTime;
	private Integer sex;
	private String homeAddres;
	private Timestamp createTime;
	private String code;            //业务CODE
	private String medicalNo;       //体检编码
	private String patientName;     //患者名称
	private String patientCode;     //患者CODE
	private String idCard;          //患者身份证号
	private String doctorCode;      //体检医生CODE
	private String jwDoctorCode;    //体检医生的基卫CODE
	private String orgCode;         //体检医院机构编码
	private String orgName;         //体检医院名称
	private Timestamp medicalTime;  //体检时间
	private Integer sex;            //居民性别,1男,2女
	private String homeAddres;      //具名地址
	private Timestamp createTime;   //创建时间
	
	private static final long serialVersionUID = 8358924836164389434L;
	

+ 8 - 6
common/common-entity/src/main/java/com/yihu/wlyy/entity/patient/PatientRemindRecordsEntity.java

@ -7,18 +7,20 @@ import java.io.Serializable;
import java.sql.Timestamp;
/**
 * 居民提醒记录表
 * 老年人体检提醒&免疫计划提醒
 * @author huangwenjie
 * @date 2017/10/18 17:15
 */
@Entity
@Table(name = "wlyy_people_remind_records", catalog = "")
@Table(name = "wlyy_people_remind_records")
public class PatientRemindRecordsEntity extends IdEntity implements Serializable {
	private String code;
	private Integer type;
	private String patientCode;
	private String relationCode;
	private Timestamp remindTime;
	private Timestamp createTime;
	private Integer type;           //1老年人体检提醒,2免疫计划提醒
	private String patientCode;     //居民CODE
	private String relationCode;    //关联的业务逻辑CODE
	private Timestamp remindTime;   //提醒时间
	private Timestamp createTime;   //创建时间
	
	private static final long serialVersionUID = 8358924836164389434L;
	

+ 9 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/event/ApplicationEvent.java

@ -160,6 +160,15 @@ public class ApplicationEvent implements ApplicationListener<ContextRefreshedEve
            } else {
                logger.info("prenatal_inspector_job exist");
            }
    
            //老年人体检记录同步,每天凌晨1点执行一次
            if (!quartzHelper.isExistJob("old_people_tijian_syb_job")) {
                String trigger = SystemConf.getInstance().getSystemProperties().getProperty("old_people_tijian_syb_job");
                quartzHelper.addJob(OldPeoplePhysicalExaminationSynJob.class, trigger, "old_people_tijian_syb_job", new HashMap<String, Object>());
                logger.info("old_people_tijian_syb_job  job success");
            } else {
                logger.info("old_people_tijian_syb_job  job exist");
            }
            // 启动redis 消息队列线程
            logger.info("redis message start");

+ 42 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/job/OldPeoplePhysicalExaminationSynJob.java

@ -0,0 +1,42 @@
package com.yihu.wlyy.job;
import com.yihu.wlyy.service.third.jw.JwPrescriptionService;
import com.yihu.wlyy.util.DateUtil;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
/**
 * 老年人体检记录同步JOB
 * @author huangwenjie
 * @date 2017/10/18 21:01
 */
public class OldPeoplePhysicalExaminationSynJob implements Job {
	
	private static final Logger logger = LoggerFactory.getLogger(OldPeoplePhysicalExaminationSynJob.class);
	
	@Autowired
	private JwPrescriptionService jwPrescriptionService;
	
	@Override
	public void execute(JobExecutionContext context) throws JobExecutionException {
		logger.info("START=====老年人体检记录同步JOB");
		try {
			
			//获取前一天的时间范围
			String startdate = DateUtil.getNextDay(DateUtil.getStringDateShort(),-1) + " 00:00:00";
			String enddate = DateUtil.getNextDay(DateUtil.getStringDateShort(),-1) + " 23:59:59";
			
			//根据起止时间查询家签慢病患者定标情况,并同步到本地数据库
			jwPrescriptionService.getPatientDiseaseContentMapByTime(startdate,enddate);
			
			logger.info("END========老年人体检记录同步JOB");
		}catch (Exception e){
			e.printStackTrace();
			logger.info("END===ERROE===老年人体检记录同步JOB,message:"+e.getMessage());
		}
	}
}

+ 14 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/repository/oldpeople/OldPeoplePhysicalExaminationDao.java

@ -0,0 +1,14 @@
package com.yihu.wlyy.repository.oldpeople;
import com.yihu.wlyy.entity.oldpeople.OldPeoplePhysicalExaminationEntity;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * 老年人体检记录
 * @author huangwenjie
 * @date 2017/10/18 21:33
 */
public interface OldPeoplePhysicalExaminationDao extends PagingAndSortingRepository<OldPeoplePhysicalExaminationEntity, Long>,JpaSpecificationExecutor<OldPeoplePhysicalExaminationEntity> {
}

+ 8 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/service/app/oldpeople/OldPeoplePhysicalExaminationService.java

@ -0,0 +1,8 @@
package com.yihu.wlyy.service.app.oldpeople;
/**
 * @author huangwenjie
 * @date 2017/10/18 21:32
 */
public class OldPeoplePhysicalExaminationService {
}

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

@ -3,9 +3,12 @@ package com.yihu.wlyy.service.third.jw;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.wlyy.entity.oldpeople.OldPeoplePhysicalExaminationEntity;
import com.yihu.wlyy.entity.patient.prescription.Prescription;
import com.yihu.wlyy.repository.oldpeople.OldPeoplePhysicalExaminationDao;
import com.yihu.wlyy.repository.prescription.PrescriptionDao;
import com.yihu.wlyy.service.common.account.PatientService;
import com.yihu.wlyy.util.DateUtil;
import com.yihu.wlyy.util.HttpClientUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.NameValuePair;
@ -17,10 +20,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
 * 基位长处方接口
@ -41,6 +41,8 @@ public class JwPrescriptionService {
    private PrescriptionDao prescriptionDao;
    @Autowired
    private PatientService patientService;
    @Autowired
    private OldPeoplePhysicalExaminationDao oldPeoplePhysicalExaminationDao;
    /**
     * 获取字典列表
@ -286,4 +288,77 @@ public class JwPrescriptionService {
            throw new Exception("获取慢病患者定标情况请求失败,无数据返回!");
        }
    }
    
    /**
     * 根据起止时间查询老年人体检记录,并同步到本地数据库
     * @param startdate
     * @param enddate
     * @return
     */
    public void getOldPeoplePhysicalExaminationByTime(String startdate, String enddate)throws Exception {
        
        logger.info("查询老年人体检记录,开始时间"+startdate+",结束时间:"+enddate);
        
        
        String url = jwUrl + "/third/sign/getSickMedicalSimpleListInfo";
        List<NameValuePair> params = new ArrayList<>();
        params.add(new BasicNameValuePair("TIME_START", startdate));//开始时间
        params.add(new BasicNameValuePair("TIME_END", enddate));//结束时间
        String response = httpClientUtil.post(url, params, "UTF-8");
        
        //老年人体检记录列表
        List<OldPeoplePhysicalExaminationEntity> oldPeoplePhysicalExaminationEntities = new ArrayList<>();
        
        if(StringUtils.isNotBlank(response)){
            JSONObject reobj =  JSON.parseObject(response);
            Integer status = reobj.getInteger("status");
            String errmsg = reobj.getString("msg");
            if(200 == status){
                JSONObject jwData = reobj.getJSONObject("data");
                Integer jwCode = jwData.getInteger("CODE");
                if(1 == jwCode){
                    JSONArray dataArray = jwData.getJSONArray("DATA");
                    for (int i = 0; i < dataArray.size(); i++) {
    
                        OldPeoplePhysicalExaminationEntity oldPeoplePhysicalExaminationEntity = new OldPeoplePhysicalExaminationEntity();
    
                        JSONObject json = dataArray.getJSONObject(i);
                        String idcard = json.getString("IDENTITY_CARD_NO");//身份证号码
                        String medicalNo = json.getString("MEDICAL_NO");//体检编码
                        String patientName = json.getString("SICK_NAME");//姓名
                        String orgName = json.getString("ORG_NAME");//医院名称
                        String orgCode = json.getString("ORG_CODE");//医院机构编码
                        String jwDoctorCode = json.getString("MEDICAL_OPERATOR");//体检医生
                        String medicalTime = json.getString("MEDICAL_TIME");//体检时间
    
                        oldPeoplePhysicalExaminationEntity.setCode(UUID.randomUUID().toString());
                        oldPeoplePhysicalExaminationEntity.setIdCard(idcard);
                        oldPeoplePhysicalExaminationEntity.setMedicalNo(medicalNo);
                        oldPeoplePhysicalExaminationEntity.setPatientName(patientName);
                        oldPeoplePhysicalExaminationEntity.setOrgName(orgName);
                        oldPeoplePhysicalExaminationEntity.setOrgCode(orgCode);
                        oldPeoplePhysicalExaminationEntity.setJwDoctorCode(jwDoctorCode);
                        oldPeoplePhysicalExaminationEntity.setMedicalTime(DateUtil.fomrmatStringToTimeStamp(medicalTime));
                        oldPeoplePhysicalExaminationEntity.setCreateTime(DateUtil.getNowTimestamp());
                        oldPeoplePhysicalExaminationEntities.add(oldPeoplePhysicalExaminationEntity);
                    }
                    
                    if(!oldPeoplePhysicalExaminationEntities.isEmpty()){
                        logger.info("从基卫接口获取老年人体检记录数为"+oldPeoplePhysicalExaminationEntities.size());
                        oldPeoplePhysicalExaminationDao.save(oldPeoplePhysicalExaminationEntities);
                    }else{
                        logger.info("从基卫接口获取老年人体检记录数个数为"+oldPeoplePhysicalExaminationEntities.size());
                    }
                }else{
                    String jwMessage = jwData.getString("MESSAGE");
                    throw new Exception("从基卫接口获取老年人体检记,请求基卫接口失败:"+jwMessage);
                }
                
            }else{
                throw new Exception("从基卫接口获取老年人体检记请求失败,"+errmsg);
            }
        }else{
            throw new Exception("从基卫接口获取老年人体检记请求失败,无数据返回!");
        }
    }
}

+ 24 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/util/DateUtil.java

@ -2,6 +2,7 @@ package com.yihu.wlyy.util;
import org.apache.commons.lang3.StringUtils;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
@ -844,4 +845,27 @@ public class DateUtil {
		cal.add(Calendar.DAY_OF_YEAR,day);
		return cal.getTime();
	}
	
	/**
	 * 转换日期字符串为Timestamp
	 * @return
	 */
	public static Timestamp fomrmatStringToTimeStamp(String dateStr){
		
		dateStr = getStringDate(YYYY_MM_DD_HH_MM_SS);
		
		Timestamp ts = Timestamp.valueOf(dateStr);
		
		return ts;
	}
	
	/**
	 * 获取当前时间的Timestamp
	 * @return
	 */
	public static Timestamp getNowTimestamp(){
		Date date = new Date();
		Timestamp nousedate = new Timestamp(date.getTime());
		return nousedate;
	}
}

+ 34 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/web/quota/JobController.java

@ -572,4 +572,38 @@ public class JobController extends BaseController {
            return error(-1, e.getMessage());
        }
    }
    /**
     *根据时间范围同步老年人体检记录
     *@author huangwenjie
     *@date 2017/10/18 21:40
     */
    @RequestMapping(value = "/executeOldPeoplePhysicalExaminationSynByTime", method = RequestMethod.POST)
    @ApiOperation("根据时间范围同步老年人体检记录")
    public String executeOldPeoplePhysicalExaminationSynByTime(
            @ApiParam(name="startdate", value="开始时间:yyyy-mm-dd")
            @RequestParam(value = "startdate",required = true) String startdate,
            @ApiParam(name="enddate", value="结束时间:yyyy-mm-dd")
            @RequestParam(value = "enddate",required = true) String enddate) {
        try {
            
            String start = "";
            String end = "";
            
            do{
                start = startdate + " 00:00:00";
                end = startdate + " 23:59:59";
                //根据时间范围同步老年人体检记录,并同步到本地数据库
                jwPrescriptionService.getOldPeoplePhysicalExaminationByTime(start,end);
                
                startdate = DateUtil.getNextDay(startdate,1);
                
            }while (!startdate.equals(enddate));
            
            return write(200, "执行成功");
        } catch (Exception e) {
            error(e);
            return error(-1, e.getMessage());
        }
    }
}

+ 2 - 0
patient-co/patient-co-wlyy-job/src/main/resources/system.properties

@ -110,6 +110,8 @@ sign_family_pay_result_migisterno_job=0 0/3 * * * ?
# 家庭签约支付回调失败,每3分钟一次去主动查询并保存
onepay_query_job=0 0/3 * * * ?
# 老年人体检记录同步,每天凌晨1点执行一次
old_people_tijian_syb_job=0 0 1 * * ?
#统一支付平台支付成功后页面跳转地址
return_url={server}/wx/html/qygl/html/pay_result.html

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/followup/DoctorFollowUpController.java

@ -61,7 +61,7 @@ public class DoctorFollowUpController extends BaseController {
     * @param pagesize
     * @return
     */
    @RequestMapping(value = "/list_by_team", method = RequestMethod.GET)
    @RequestMapping(value = "/list_by_team", method = {RequestMethod.GET,RequestMethod.POST})
    @ResponseBody
    @ApiOperation(value = "查询居民随访列表")
    public String getListByPatientAndTeam(@RequestParam @ApiParam(value = "居民Code") String patient,