Преглед на файлове

Merge branch 'dev' of http://192.168.1.220:10080/Amoy/patient-co-management into dev

humingfen преди 6 години
родител
ревизия
0f4cccf1f5
променени са 21 файла, в които са добавени 311 реда и са изтрити 252 реда
  1. 15 1
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/synergy/doctor/DoctorSynergyManageController.java
  2. 1 1
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/entity/synergy/ManageSynergyWorkorderDO.java
  3. 3 3
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/manager/account/CustomerService.java
  4. 18 0
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/synergy/SynergyManageService.java
  5. 3 0
      patient-co-service/wlyy_device/src/main/java/com/yihu/hos/device/common/dao/PatientHealthIndexDao.java
  6. 5 1
      patient-co-service/wlyy_device/src/main/java/com/yihu/hos/device/service/DeviceService.java
  7. 3 2
      patient-co-service/wlyy_device/src/main/java/com/yihu/hos/device/service/IotDeviceService.java
  8. 1 1
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/event/ApplicationEvent.java
  9. 2 2
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/job/AlertChildImmuneVaccinJob.java
  10. 56 49
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/service/imm/ChildVaccinImmuneService.java
  11. 12 0
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/task/PushMsgTask.java
  12. 50 0
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/web/JMController.java
  13. 2 0
      patient-co/patient-co-wlyy-job/src/main/resources/application-dev.yml
  14. 4 1
      patient-co/patient-co-wlyy-job/src/main/resources/application-devtest.yml
  15. 2 0
      patient-co/patient-co-wlyy-job/src/main/resources/application-prod.yml
  16. 4 1
      patient-co/patient-co-wlyy-job/src/main/resources/application-test.yml
  17. 7 157
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/imm/ChildFamilyImmuneService.java
  18. 50 1
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/synergy/SynergyManageService.java
  19. 2 31
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/imm/DoctorImmController.java
  20. 70 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/synergy/SynergyManageController.java
  21. 1 1
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/family/FamilyMemberController.java

+ 15 - 1
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/synergy/doctor/DoctorSynergyManageController.java

@ -91,7 +91,7 @@ public class DoctorSynergyManageController extends BaseController {
    @RequestMapping(value = "createWorkorder", method = RequestMethod.POST)
    @ApiOperation("医生端-创建协同服务")
    public String workorderList(@ApiParam(name = "workorder", value = "工单对象", required = false)
    public String createWorkorder(@ApiParam(name = "workorder", value = "工单对象", required = false)
                                @RequestParam(value = "workorder")String workorder,
                                @ApiParam(name = "servicers", value = "服务对象", required = false)
                                @RequestParam(value = "servicers")String servicers){
@ -111,6 +111,20 @@ public class DoctorSynergyManageController extends BaseController {
        }
    }
    @RequestMapping(value = "updateWorkorder", method = RequestMethod.POST)
    @ApiOperation("医生端-创建协同服务")
    public String updateWorkorder(@ApiParam(name = "workorder", value = "工单对象", required = false)
                                @RequestParam(value = "workorder")String workorder){
        try {
            ManageSynergyWorkorderDO workorderDO = objectMapper.readValue(workorder,ManageSynergyWorkorderDO.class);
            synergyManageService.updateWorkorder(workorderDO);
            return write(200, "获取成功");
        } catch (Exception e) {
            error(e);
            return error(-1, "请求失败");
        }
    }
    @RequestMapping(value = "selectByWorkorderCode", method = RequestMethod.POST)
    @ApiOperation("医生端-居民列表")
    public String selectByWorkorderCode(@ApiParam(name = "workorderCode", value = "工单code", required = false)

+ 1 - 1
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/entity/synergy/ManageSynergyWorkorderDO.java

@ -26,7 +26,7 @@ public class ManageSynergyWorkorderDO extends IdEntity {
    private String remark;//备注
    private Integer createUserType;//创建人类型(1、医生,2、客服)
    private Integer createUserRole;//创建人角色(1、普通,2、管理员)
    private Integer del;//逻辑删除(0、有效,1、删除)
    private Integer del;//逻辑删除(1、有效,0、删除)
    private String content;//服务内容
    private String relationCode;//根据type关联业务code
    private String relationCodeName;//关联业务名称

+ 3 - 3
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/manager/account/CustomerService.java

@ -594,7 +594,7 @@ public class CustomerService extends BaseService{
		// 咨询、预约操作日志表
		ManageSynergyWorkorderReserveConsultDO manageSynergyWorkorderReserveConsultDO = new ManageSynergyWorkorderReserveConsultDO();
		
		manageSynergyWorkorderDO.setDel(0);
		manageSynergyWorkorderDO.setDel(1);
		//咨询
		if(0 == callService.getType()){
			manageSynergyWorkorderDO.setType(0);
@ -676,7 +676,7 @@ public class CustomerService extends BaseService{
		// 咨询、预约操作日志表
		ManageSynergyWorkorderReserveConsultDO manageSynergyWorkorderReserveConsultDO = manageSynergyWorkorderReserveConsultDao.findByWorkorderCode(manageSynergyWorkorderDO.getCode());
		
		manageSynergyWorkorderDO.setDel(0);
		manageSynergyWorkorderDO.setDel(1);
		//咨询
		if(0 == callService.getType()){
			manageSynergyWorkorderDO.setType(0);
@ -910,7 +910,7 @@ public class CustomerService extends BaseService{
//		callServiceDao.delete(c);
		//新代码--根据CODE逻辑删除工单表
		ManageSynergyWorkorderDO manageSynergyWorkorderDO = manageSynergyWorkOrderDao.findByCode(code);
		manageSynergyWorkorderDO.setDel(1);
		manageSynergyWorkorderDO.setDel(0);
		manageSynergyWorkOrderDao.save(manageSynergyWorkorderDO);
		return "1";
	}

+ 18 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/synergy/SynergyManageService.java

@ -956,6 +956,24 @@ public class SynergyManageService extends BaseJpaService {
        }
    }
    /**
     * 更新工单
     *
     * @param manageSynergyWorkorderDO
     */
    public void updateWorkorder(ManageSynergyWorkorderDO manageSynergyWorkorderDO){
        ManageSynergyWorkorderDO  manageSynergyWorkorderDO1 = workOrderDao.findByCode(manageSynergyWorkorderDO.getCode());
        if(StringUtils.isNoneBlank(manageSynergyWorkorderDO.getRelationCodeName())){
            manageSynergyWorkorderDO1.setRelationCodeName(manageSynergyWorkorderDO.getRelationCodeName());
        }
        manageSynergyWorkorderDO1.setPriority(manageSynergyWorkorderDO.getPriority());
        manageSynergyWorkorderDO1.setServiceTime(manageSynergyWorkorderDO.getServiceTime());
        manageSynergyWorkorderDO1.setReturnedRemark(manageSynergyWorkorderDO.getReturnedRemark());
        manageSynergyWorkorderDO.setStatus(1);
        workOrderDao.save(manageSynergyWorkorderDO);
    }
    public String findByPatient(String patient){
        String response = null;
        String url = wlyyUrl + "third/synergy/findByPatient";

+ 3 - 0
patient-co-service/wlyy_device/src/main/java/com/yihu/hos/device/common/dao/PatientHealthIndexDao.java

@ -61,5 +61,8 @@ public interface PatientHealthIndexDao
	@Query(value="select * from device.wlyy_patient_health_index where user = ?1 and type = ?2 ORDER BY record_date desc limit 0 ,5",nativeQuery = true)
	List<PatientHealthIndex> findByPatientAndTypeByPage(String patientCode, int type);
	@Query("select a from PatientHealthIndex a where a.user = ?1 and a.deviceSn = ?2 and a.value1 = ?3 and a.type = ?4 and a.recordDate >= ?5 and a.recordDate<=?6 and a.del = '1' ")
	List<PatientHealthIndex> findByTypeInHalfMinute(String patient, String deviceSn, String value1, Integer type, Date minDate,Date maxDate);
}

+ 5 - 1
patient-co-service/wlyy_device/src/main/java/com/yihu/hos/device/service/DeviceService.java

@ -494,7 +494,11 @@ public class DeviceService extends BaseService{
                }
            }
//            List<PatientHealthIndex> list = patientHealthIndexDao.findByType(device.getUser(),deviceSn,value1,Integer.parseInt(type),time);
            List<PatientHealthIndex> list = iotDeviceService.findByType(device.getUser(),deviceSn,value1,Integer.parseInt(type),time);
            long maxtime = time.getTime()+30*1000;
            long mintime = time.getTime()-30*1000;
            Date minDate = new Date(mintime);
            Date maxDate = new Date(maxtime);
            List<PatientHealthIndex> list = iotDeviceService.findByType(device.getUser(),deviceSn,value1,Integer.parseInt(type),time,minDate,maxDate);
            if(list!=null&&list.size()>0){
                DeviceInfo deviceInfo = new DeviceInfo();
                deviceInfo.setDeviceData(json.toString());

+ 3 - 2
patient-co-service/wlyy_device/src/main/java/com/yihu/hos/device/service/IotDeviceService.java

@ -130,11 +130,12 @@ public class IotDeviceService extends BaseService{
     * @param time
     * @return
     */
    public List<PatientHealthIndex> findByType(String user,String deviceSn,String value1,Integer type,Date time){
    public List<PatientHealthIndex> findByType(String user,String deviceSn,String value1,Integer type,Date time,Date timeMin,Date timeMax){
        if(isUploadIot()){
            return findRepeat(user,deviceSn,value1,type,time);
        }else {
            return  patientHealthIndexDao.findByType(user,deviceSn,value1,type,time);
            //return  patientHealthIndexDao.findByType(user,deviceSn,value1,type,time);
            return  patientHealthIndexDao.findByTypeInHalfMinute(user,deviceSn,value1,type,timeMin,timeMax);
        }
    }

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

@ -292,7 +292,7 @@ public class ApplicationEvent implements ApplicationListener<ContextRefreshedEve
                logger.info("child_immune_vaccin_job  job exist");
            }
            //获取儿童可预约疫苗,每天凌晨1点执行一次
            //提醒儿童可预约疫苗,每天9点执行一次
            if (!quartzHelper.isExistJob("alert_child_immune_vaccin_job")) {
                String trigger = SystemConf.getInstance().getSystemProperties().getProperty("alert_child_immune_vaccin_job");
                quartzHelper.addJob(AlertChildImmuneVaccinJob.class, trigger, "alert_child_immune_vaccin_job", new HashMap<String, Object>());

+ 2 - 2
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/job/AlertChildImmuneVaccinJob.java

@ -18,8 +18,8 @@ public class AlertChildImmuneVaccinJob implements Job {
    public void execute(JobExecutionContext context) throws JobExecutionException {
        logger.info("START========每天九点提醒居民待接种JOB========");
        try {
            childVaccinImmuneService.alertBefore();
            logger.info("END========每天九点提醒居民待接种JOB========");
            int result = childVaccinImmuneService.alertBefore();
            logger.info("END========每天九点提醒居民待接种JOB========"+result);
        }catch (Exception e){
            e.printStackTrace();
            logger.info("END===ERROE===每天九点提醒居民待接种JOB,message:"+e.getMessage());

+ 56 - 49
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/service/imm/ChildVaccinImmuneService.java

@ -197,47 +197,53 @@ public class ChildVaccinImmuneService extends BaseService {
		return result;
	}
	public int alertBefore()throws Exception{
		JSONArray jsonArray =  new JSONArray();
		String sql ="SELECT" +
				" v.*, i.birthday" +
				" FROM" +
				" wlyy_child_immune_vaccin v" +
				" LEFT JOIN wlyy_child_info i ON v.child_info_code = i.`code`" +
				" WHERE" +
				" v.del = 0" +
				" AND ymkc = 'true'";
		List<Map<String,Object>> mapList = jdbcTemplate.queryForList(sql);
		String nowDate = DateUtil.dateToStrShort(new Date());
		for (Map<String,Object> map : mapList){
			Calendar calendar=Calendar.getInstance();
			String birthDayStr = String.valueOf(map.get("birthday"));
			if (StringUtils.isNotBlank(birthDayStr)){
				String[] biStr = birthDayStr.split("-");
				int birthdayDate = Integer.valueOf(biStr[biStr.length-1]);
				int nowDayDate = calendar.get(GregorianCalendar.DAY_OF_MONTH);
				int nowMonthDate = calendar.get(GregorianCalendar.MONTH)+1;
				int nowYearDate = calendar.get(GregorianCalendar.YEAR);
				//如果生日在今天的日期之前,则取下个月生日的日期的15天的是否是今天.
				if (birthdayDate<nowDayDate){
					calendar.set(nowYearDate,nowMonthDate+1,birthdayDate);
				}else {
					//如果生日在今天之前后,则看生日的15天之前是否是今天
					calendar.set(nowYearDate,nowMonthDate,birthdayDate);
				}
				String needAlertDate = DateUtil.dateToStrShort(DateUtil.getPreDays(calendar.getTime(),-15));
				if (needAlertDate.equals(nowDate)){
					JSONObject jsonObject = new JSONObject();
					jsonObject.put("vaccinCode",map.get("code"));//待接种疫苗记录code
					jsonObject.put("childName", map.get("name"));//儿童姓名
					jsonObject.put("childCode", map.get("child_info_code"));//儿童code
					jsonObject.put("vaccinName", map.get("ymmc"));//疫苗名称
					jsonArray.put(jsonObject);
				}
			}
		}
		return alertImmVacclinByChildInfoCodes(jsonArray.toString());
	}
    public int alertBefore()throws Exception{
        JSONArray jsonArray =  new JSONArray();
        String sql ="SELECT" +
                " v.*, i.birthday" +
                " FROM" +
                " wlyy_child_immune_vaccin v" +
                " LEFT JOIN wlyy_child_info i ON v.child_info_code = i.`code`" +
                " WHERE" +
                " v.del = 0" +
                " AND ymkc = 'true' and ymsx=1";
        List<Map<String,Object>> mapList = jdbcTemplate.queryForList(sql);
        String nowDate = DateUtil.dateToStrShort(new Date());
        for (Map<String,Object> map : mapList){
            Calendar calendar=Calendar.getInstance();
            String birthDayStr = String.valueOf(map.get("birthday"));
            if (StringUtils.isNotBlank(birthDayStr)){
                String[] biStr = birthDayStr.split("-");
                int birthdayDate = Integer.valueOf(biStr[biStr.length-1]);
                int nowDayDate = calendar.get(GregorianCalendar.DAY_OF_MONTH);
                int nowMonthDate = calendar.get(GregorianCalendar.MONTH)+1;
                int nowYearDate = calendar.get(GregorianCalendar.YEAR);
                //如果生日在今天的日期之前,则取下个月生日的日期的15天的是否是今天.
                if (birthdayDate<nowDayDate){
                    calendar.clear();
                    calendar.set(nowYearDate,nowMonthDate,birthdayDate);
                }else {
                    //如果生日在今天之前后,则看生日的15天之前是否是今天
                    calendar.clear();
                    calendar.set(nowYearDate,nowMonthDate-1,birthdayDate);
                }
                String needAlertDate = DateUtil.dateToStrShort(DateUtil.getPreDays(calendar.getTime(),-15));
                if (needAlertDate.equals(nowDate)){
                    JSONObject jsonObject = new JSONObject();
                    jsonObject.put("vaccinCode",map.get("code"));//待接种疫苗记录code
                    jsonObject.put("childName", map.get("name"));//儿童姓名
                    jsonObject.put("childCode", map.get("child_info_code"));//儿童code
                    jsonObject.put("vaccinName", map.get("ymmc"));//疫苗名称
                    jsonArray.put(jsonObject);
                }
            }
        }
        if (jsonArray.length()>0){
            return alertImmVacclinByChildInfoCodes(jsonArray.toString());
        }else {
            return 0;
        }
    }
	public int alertImmVacclinByChildInfoCodes(String alertDataJsonStr)throws Exception{
		if (StringUtils.isEmpty(alertDataJsonStr)){
@ -271,17 +277,18 @@ public class ChildVaccinImmuneService extends BaseService {
			for (Map<String,Object> map : list){
				//如果父母亲都在就都发
				if (!openIdList.contains(String.valueOf(map.get("openid")))){
					if (("1".equals(String.valueOf(map.get("relation"))) || "2".equals(String.valueOf(map.get("relation")))) && StringUtils.isNotBlank(String.valueOf(map.get("openid")))){
					if (StringUtils.isNotBlank(String.valueOf(map.get("openid")))){
						boolean flag =true;
						try {
							WechatTemplateConfig temp = templateConfigDao.findByScene("template_deal_with_job", "dsymjztx");
							WechatTemplateConfig temp = templateConfigDao.findByScene("template_doctor_survey", "dsymjztx");
							JSONObject json = new JSONObject();
							json.put("toUser",String.valueOf(map.get("code")));
							json.put("keyword1", temp.getKeyword1().replace("key1",DateUtil.dateToStr(new Date(), "yyyy-MM-dd")));
							json.put("keyword2", temp.getKeyword2().replace("key1", vaccinName));
							json.put("remark", temp.getRemark());
							json.put("first", temp.getFirst().replace("key1", childName));
							logger.info("weiTempJOSN:"+json.toString());
                            json.put("toUser",String.valueOf(map.get("code")));
                            json.put("keyword1", temp.getKeyword1());
                            json.put("keyword2", temp.getKeyword2().replace("key1",DateUtil.dateToStr(new Date(), "yyyy-MM-dd")));
                            json.put("remark", temp.getRemark());
                            json.put("first", temp.getFirst().replace("key1",String.valueOf(map.get("name"))).replace("key2", childName));
                            json.put("url",temp.getUrl().replace("key1",childCode));
                            logger.info("weiTempJOSN:"+json.toString());
							pushMsgTask.putWxMsg(weiXinAccessTokenUtils.getAccessToken(), 24,String.valueOf(map.get("openid")) , String.valueOf(map.get("name")), json);
						}catch (Exception e){
							e.printStackTrace();

+ 12 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/task/PushMsgTask.java

@ -60,6 +60,8 @@ public class PushMsgTask {
    private String template_doctor_service;//服务结果通知
    @Value("${wechat.message.template_device_measure_notice}")
    private String template_device_measure_notice;//设备测量提醒
    @Value("${wechat.message.template_deal_with}")
    private String template_deal_with;
    @Autowired
    private WechatPushLogDao wechatPushLogDao;
@ -670,6 +672,16 @@ public class PushMsgTask {
                keyword4.setColor("#000000");
                keyword4.setValue(json.getString("keyword4"));
                m.put("keyword4", keyword4);
            }else if (type == 24) {//结果处理通知
                temp.setTemplate_id(template_deal_with);
                WechatTemplateData keyword1 = new WechatTemplateData();
                keyword1.setColor("#000000");
                keyword1.setValue(json.getString("keyword1"));
                m.put("keyword1", keyword1);
                WechatTemplateData keyword2 = new WechatTemplateData();
                keyword2.setColor("#000000");
                keyword2.setValue(json.getString("keyword2"));
                m.put("keyword2", keyword2);
            }
            temp.setData(m);

+ 50 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/web/JMController.java

@ -0,0 +1,50 @@
package com.yihu.wlyy.web;
import com.yihu.wlyy.service.imm.ChildVaccinImmuneService;
import com.yihu.wlyy.service.specialist.SpecialistService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
/**
 * Created by zhangdan on 2018/10/16.
 */
@RestController
@RequestMapping(value = "/job/imm/", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@Api(description = "计免免疫")
public class JMController extends BaseController{
    @Autowired
    private ChildVaccinImmuneService childVaccinImmuneService;
    @RequestMapping(value = "getChildImmuneVaccinEveryDay", method = RequestMethod.GET)
    @ResponseBody
    @ApiOperation("每天获取可预约疫苗test")
    public String getChildImmuneVaccinEveryDay (){
        try{
            int res = childVaccinImmuneService.getChildImmuneVaccinEveryDay();
            return write(200,"获取成功!","data",res);
        }catch (Exception e){
            error(e);
            return error(-1, e.getMessage());
        }
    }
    @RequestMapping(value = "alertJobTest", method = RequestMethod.GET)
    @ResponseBody
    @ApiOperation("job提醒居民预约测试.")
    public String alertJobTest (){
        try{
            int res = childVaccinImmuneService.alertBefore();
            return write(200,"获取成功!","data",res);
        }catch (Exception e){
            error(e);
            return error(-1, e.getMessage());
        }
    }
}

+ 2 - 0
patient-co/patient-co-wlyy-job/src/main/resources/application-dev.yml

@ -71,6 +71,8 @@ wechat:
   template_doctor_service:  ezr5RlX0nvh7bGU9aVsGDMJbjKDp1uMKP-AGGYXwI5g
   #设备测量提醒
   template_device_measure_notice: bzwLOFFPSe2vq74IljvVIPmvjP-C4ebEUAFORyq-2dY
   #处理结果通知
    template_deal_with:  q9AiUpG7h2_4MUVE7iIKLV8lVwVaytTrHozqnkPGSes
yihu:
  yihu_OpenPlatform_url: http://ssotest.yihu.cn/OpenPlatform/cgiBin/1.0/

+ 4 - 1
patient-co/patient-co-wlyy-job/src/main/resources/application-devtest.yml

@ -64,13 +64,16 @@ wechat:
    #医生变更
    template_doctor_change:  V5h0F84t972kUzQvWy8qYrgdaYGJVj10pFeFVl19Nb8
    #问卷调查
    template_doctor_survey:  OqQXrb-e43_TJpq_70_K_y6vYJgY5mpjFYY4c5RWFP4
    #template_doctor_survey:  OqQXrb-e43_TJpq_70_K_y6vYJgY5mpjFYY4c5RWFP4
    template_doctor_survey:  q9AiUpG7h2_4MUVE7iIKLV8lVwVaytTrHozqnkPGSes
    #审核结果通知
    template_doctor_audit:  lCtOgJgL1tBJbAytqN7cn-FgCH_Usg99FENEy2TrC08
    #服务结果通知
    template_doctor_service: i34rq3xFLnpf_VN2Jor9n2YlQqJMM7oXyYvuctriISw
    #设备测量提醒
    template_device_measure_notice: bzwLOFFPSe2vq74IljvVIPmvjP-C4ebEUAFORyq-2dY
    #处理结果通知
    template_deal_with:  q9AiUpG7h2_4MUVE7iIKLV8lVwVaytTrHozqnkPGSes
yihu:
  yihu_OpenPlatform_url: http://ssotest.yihu.cn/OpenPlatform/cgiBin/1.0/

+ 2 - 0
patient-co/patient-co-wlyy-job/src/main/resources/application-prod.yml

@ -73,6 +73,8 @@ wechat:
   template_doctor_service:  xhi1LEudiZwJfZylOHuZNo8EiA73GtSshPQv5XOt9Lk
   #设备测量提醒
   template_device_measure_notice: bzwLOFFPSe2vq74IljvVIPmvjP-C4ebEUAFORyq-2dY
   #处理结果通知
   template_deal_with:  GyXCmXVYCD7PXi0IbHdPOD8apa-RQoSrSw-4-0pj9Go
yihu:
  yihu_OpenPlatform_url: http://api.yihu.com.cn/OpenPlatform/cgiBin/1.0/

+ 4 - 1
patient-co/patient-co-wlyy-job/src/main/resources/application-test.yml

@ -65,13 +65,16 @@ wechat:
   #医生变更
   template_doctor_change:  RMKwJ-PLHP-uBwjJlHDgPaVFZhjuXvhSO7V8Dwh7vPc
   #问卷调查
   template_doctor_survey:  OqQXrb-e43_TJpq_70_K_y6vYJgY5mpjFYY4c5RWFP4
   #template_doctor_survey:  OqQXrb-e43_TJpq_70_K_y6vYJgY5mpjFYY4c5RWFP4
   template_doctor_survey: q9AiUpG7h2_4MUVE7iIKLV8lVwVaytTrHozqnkPGSes
   #审核结果通知
   template_doctor_audit:  kyrkan8cWQ22J_NC01e8yGwsn75MeUtfgdCrZKkwSLQ
   #服务结果通知
   template_doctor_service:  2hEhp2bLfmM-7Goc6rJ3EE4a4wvuhyndKufruYTk6A0
   #设备测量提醒
   template_device_measure_notice: 5bzC6o_9zlL24loYnF7hFLskuRzCyX8v48KfWmYOL3c
   #处理结果通知
   template_deal_with:  q9AiUpG7h2_4MUVE7iIKLV8lVwVaytTrHozqnkPGSes
yihu:
  yihu_OpenPlatform_url: http://ssotest.yihu.cn/OpenPlatform/cgiBin/1.0/

+ 7 - 157
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/imm/ChildFamilyImmuneService.java

@ -328,18 +328,19 @@ public class ChildFamilyImmuneService extends BaseService {
		for (Map<String,Object> map : list){
			//如果父母亲都在就都发
			if (!openIdList.contains(String.valueOf(map.get("openid")))){
				if (("1".equals(String.valueOf(map.get("relation"))) || "2".equals(String.valueOf(map.get("relation")))) && StringUtils.isNotBlank(String.valueOf(map.get("openid")))){
				if (StringUtils.isNotBlank(String.valueOf(map.get("openid")))){
					boolean flag =true;
					try {
						WechatTemplateConfig temp = templateConfigDao.findByScene("template_deal_with", "ymjztx");
						WechatTemplateConfig temp = templateConfigDao.findByScene("template_doctor_survey", "ymjztx");
						JSONObject json = new JSONObject();
						json.put("toUser",String.valueOf(map.get("code")));
						json.put("keyword1", temp.getKeyword1().replace("key1",DateUtil.dateToStr(new Date(), "yyyy-MM-dd")));
						json.put("keyword2", temp.getKeyword2().replace("key1", doctorName+"("+doctorLevel+")"));
						json.put("keyword1", temp.getKeyword1());
						json.put("keyword2", temp.getKeyword2().replace("key1",DateUtil.dateToStr(new Date(), "yyyy-MM-dd")));
						json.put("remark", temp.getRemark());
						json.put("first", temp.getFirst().replace("key1",String.valueOf(map.get("name"))).replace("key2", childName).replace("key3",vaccinName));
						json.put("first", temp.getFirst().replace("key1",String.valueOf(map.get("name"))).replace("key2", childName));
						json.put("url",temp.getUrl().replace("key1",childCode));
						logger.info("weiTempJOSN:"+json.toString());
						pushMsgTask.putWxMsg(weiXinAccessTokenUtils.getAccessToken(), 24,String.valueOf(map.get("openid")) , String.valueOf(map.get("name")), json);
						pushMsgTask.putWxMsg(weiXinAccessTokenUtils.getAccessToken(), 11,String.valueOf(map.get("openid")) , String.valueOf(map.get("name")), json);
					}catch (Exception e){
						e.printStackTrace();
						flag = false;
@ -390,115 +391,6 @@ public class ChildFamilyImmuneService extends BaseService {
		return  flag;
	}
	@Transactional(rollbackFor = Exception.class)
	public int getChildImmuneVaccinEveryDay()throws Exception{
		int result = 0;
		try {
			String sql ="SELECT" +
					" DISTINCT ci.`code`," +
					" ci.idcard," +
					" ci.`name`," +
					" ci.ssc," +
					" ci.barcode" +
					" FROM" +
					" wlyy_child_family_immune fi" +
					" LEFT JOIN wlyy_child_info ci ON fi.child_code = ci.`code`" +
					" WHERE" +
					" fi.del = 0";
			List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
			for (Map<String,Object> map : list){
				String barcode = String.valueOf(map.get("barcode"));
				System.out.println("===============barcode=============="+barcode);
				String deptStr = immuneService.findDept(barcode);
				if (StringUtils.isNotBlank(deptStr)){
					JSONObject jsonObject = new JSONObject(deptStr);
					if (jsonObject.getInt("status")==200) {
						JSONObject json = new JSONObject(jsonObject.getString("data"));
						JSONArray jsonArray = json.getJSONArray("body");
						for (int i = 0;i<jsonArray.length();i++){
							String deptNum  = jsonArray.getJSONObject(i).getString("deptNum");
							String vaccinStr = immuneService.findMyVaccin(barcode,deptNum);
							JSONObject vaccinJson = new JSONObject(vaccinStr);
							if (vaccinJson.getInt("status")==200) {
								JSONObject vaccinJson2 = new JSONObject(vaccinJson.getString("data"));
								JSONArray vaccinJsonJSONArray = vaccinJson2.getJSONArray("body");
								List<ChildImmuneVaccin> vaccinList = childImmuneVaccinDao.findByBarcode(barcode);
								//原来有的则不用新增,原来有的但是在返回回来的数据没有的话删除数据
								for (ChildImmuneVaccin childImmuneVaccin : vaccinList){
									int count = 0;
									for (int j=0;j<vaccinJsonJSONArray.length();j++){
										String ymbm = vaccinJsonJSONArray.getJSONObject(j).getString("ymBm");
										String jzzc = vaccinJsonJSONArray.getJSONObject(j).getString("jzZc");
										if (childImmuneVaccin.getYmbm().equals(ymbm) && childImmuneVaccin.getJzzc().equals(jzzc)){
											count++;
										}
									}
									//原来有的疫苗要判断是否有超过预约时间的7天,并且看提醒是否超过7天,超过7天可以重新提醒
									if (count>0 && childImmuneVaccin.getIsOut()==1){
										if (DateUtil.getPreDays(childImmuneVaccin.getJzrq(),7).before(new Date())){
											//过了预约时间7天,更新为isOut=0,则不能预约了
											childImmuneVaccinDao.updateIsOutByCode(childImmuneVaccin.getCode());
										}else {
											//判断是否过了7天提醒时间
											if (childImmuneVaccin.getAlert_tag()==1 && DateUtil.getPreDays(childImmuneVaccin.getAlert_time(),7).before(new Date())){
												childImmuneVaccinDao.updateAlertTagByCode(childImmuneVaccin.getCode(),0);
											}
										}
									}
									if (count==0){
										result+= childImmuneVaccinDao.updateDelByCode(childImmuneVaccin.getCode());
									}
								}
								//如果本地没有就是新增的
								List<ChildImmuneVaccin> vaccins = new ArrayList<>();
								for (int j=0;j<vaccinJsonJSONArray.length();j++){
									String ymbm = vaccinJsonJSONArray.getJSONObject(j).getString("ymBm");
									String jzzc = vaccinJsonJSONArray.getJSONObject(j).getString("jzZc");
									int count = 0;
									for (ChildImmuneVaccin childImmuneVaccin : vaccinList){
										if (childImmuneVaccin.getYmbm().equals(ymbm) && childImmuneVaccin.getJzzc().equals(jzzc)){
											count++;
										}
									}
									if (count==0){
										ChildImmuneVaccin childImmuneVaccin = new ChildImmuneVaccin();
										childImmuneVaccin.setCode(getUUID());
										childImmuneVaccin.setName(String.valueOf(map.get("name")));
										childImmuneVaccin.setIdcard(String.valueOf(map.get("idcard")));
										childImmuneVaccin.setSsc(String.valueOf(map.get("ssc")));
										childImmuneVaccin.setBarcode(barcode);
										childImmuneVaccin.setChildInfoCode(String.valueOf(map.get("code")));
										childImmuneVaccin.setYmkc(vaccinJsonJSONArray.getJSONObject(j).getString("ymkc"));
										childImmuneVaccin.setYmmc(vaccinJsonJSONArray.getJSONObject(j).getString("ymmc"));
										childImmuneVaccin.setYmkcsm(vaccinJsonJSONArray.getJSONObject(j).getString("ymkcsm"));
										childImmuneVaccin.setYmbm(ymbm);
										childImmuneVaccin.setJzzc(jzzc);
										childImmuneVaccin.setJzrq(DateUtil.strToDate(vaccinJsonJSONArray.getJSONObject(j).getString("jzRq"),DateUtil.YYYY_MM_DD));
										childImmuneVaccin.setAlert_tag(0);
										childImmuneVaccin.setDel(0);
										childImmuneVaccin.setCreate_time(new Date());
										if (DateUtil.getPreDays(DateUtil.strToDate(vaccinJsonJSONArray.getJSONObject(j).getString("jzRq")),7).before(new Date())){
											//过了预约时间7天,更新为isOut=0,则不能预约了
											childImmuneVaccin.setIsOut(0);
										}else {
											childImmuneVaccin.setIsOut(1);
										}
										vaccins.add(childImmuneVaccin);
										result++;
									}
								}
								childImmuneVaccinDao.save(vaccins);
							}
						}
					}
				}
			}
		}catch (Exception e){
			e.printStackTrace();
		}
		return result;
	}
	public int alertImmVacclinByDoctor(String doctor)throws Exception{
		List<Map<String, Object>> immVaccinList = getImmVaccinList(doctor,0,0,0);
		String alertJsonStr="";
@ -516,46 +408,4 @@ public class ChildFamilyImmuneService extends BaseService {
		alertJsonStr = jsonArray.toString();
		return alertImmVacclinByChildInfoCodes(alertJsonStr,doctor);
	}
    public int alertBefore()throws Exception{
        JSONArray jsonArray =  new JSONArray();
        String sql ="SELECT" +
                " v.*, i.birthday" +
                " FROM" +
                " wlyy_child_immune_vaccin v" +
                " LEFT JOIN wlyy_child_info i ON v.child_info_code = i.`code`" +
                " WHERE" +
                " v.del = 0" +
                " AND ymkc = 'true'";
        List<Map<String,Object>> mapList = jdbcTemplate.queryForList(sql);
        String nowDate = DateUtil.dateToStrShort(new Date());
        for (Map<String,Object> map : mapList){
            Calendar calendar=Calendar.getInstance();
            String birthDayStr = String.valueOf(map.get("birthday"));
            if (StringUtils.isNotBlank(birthDayStr)){
                String[] biStr = birthDayStr.split("-");
                int birthdayDate = Integer.valueOf(biStr[biStr.length-1]);
                int nowDayDate = calendar.get(GregorianCalendar.DAY_OF_MONTH);
                int nowMonthDate = calendar.get(GregorianCalendar.MONTH)+1;
                int nowYearDate = calendar.get(GregorianCalendar.YEAR);
                //如果生日在今天的日期之前,则取下个月生日的日期的15天的是否是今天.
                if (birthdayDate<nowDayDate){
                    calendar.set(nowYearDate,nowMonthDate+1,birthdayDate);
                }else {
                    //如果生日在今天之前后,则看生日的15天之前是否是今天
                    calendar.set(nowYearDate,nowMonthDate,birthdayDate);
                }
                String needAlertDate = DateUtil.dateToStrShort(DateUtil.getPreDays(calendar.getTime(),-15));
                if (needAlertDate.equals(nowDate)){
                    JSONObject jsonObject = new JSONObject();
                    jsonObject.put("vaccinCode",map.get("code"));//待接种疫苗记录code
                    jsonObject.put("childName", map.get("name"));//儿童姓名
                    jsonObject.put("childCode", map.get("child_info_code"));//儿童code
                    jsonObject.put("vaccinName", map.get("ymmc"));//疫苗名称
                    jsonArray.put(jsonObject);
                }
            }
        }
        return alertImmVacclinByChildInfoCodes(jsonArray.toString(),"rll201703150222");
    }
}

+ 50 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/synergy/SynergyManageService.java

@ -67,6 +67,53 @@ public class SynergyManageService extends BaseService {
        return rs;
    }
    public String updateWorkorder(String code,Integer type, String objectId, String serviceDate, Integer priority, String remark, String followupClass, String followupType) throws Exception {
        String response = null;
        JSONObject object = new JSONObject();
        object.put("code",code);
        object.put("serviceTime",serviceDate);
        object.put("priority",priority);
        object.put("remark",remark);
        if (type == 3){
            Followup followup = followUpDao.findOne(Long.parseLong(objectId));
            DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String a = serviceDate+":00";
            Date date = dateFormat.parse(serviceDate+":00");
            followup.setFollowupDate(date);
            followup.setFollowupType(followupType);
            followup.setFollowupClass(followupClass);
            followup = followUpDao.save(followup);
            if (followupClass.equals("1")){
                object.put("relationCodeName","高血压");
            }else if (followupClass.equals("2")){
                object.put("relationCodeName","糖尿病");
            }else if (followupClass.equals("1,2")){
                object.put("relationCodeName","高血压,糖尿病");
            }
        }
        String url = customerUrl + "synergy/doctor/updateWorkorder";
        Map<String, String> params = new HashMap<>();
        params.put("workorder",object.toString());
        response = httpClientUtil.httpPost(url,params);
        com.alibaba.fastjson.JSONObject object1 = JSON.parseObject(response);
        if (object1.getInteger("status")==200){
            return response;
        }else {
            throw new Exception("请求客服系统服务失败!");
        }
    }
    public String getWorkorById(String code) throws Exception {
        String response = null;
        String url = customerUrl + "synergy/doctor/getWorkorderInfo?workorderCode="+code;
        response = httpClientUtil.get(url,"UTF-8");
        com.alibaba.fastjson.JSONObject object1 = JSON.parseObject(response);
        if (object1.getInteger("status")==200){
            return object1.getJSONObject("data").toString();
        }else {
            throw new Exception("请求客服系统服务失败!");
        }
    }
    public String createWorkorder(String doctor, Set<String> patientSet, Integer type, String objectId, String serviceDate, Integer priority, String remark, String followupClass, String followupType) throws Exception {
        String response = null;
@ -134,8 +181,10 @@ public class SynergyManageService extends BaseService {
            object.put("relationCode",followup.getId());
            if (followupClass.equals("1")){
                object.put("relationCodeName","高血压");
            }else if (followupClass.equals("1")){
            }else if (followupClass.equals("2")){
                object.put("relationCodeName","糖尿病");
            }else if (followupClass.equals("1,2")){
                object.put("relationCodeName","高血压,糖尿病");
            }
            object.put("createUserRole",1);
        }else if (type == 1){

+ 2 - 31
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/imm/DoctorImmController.java

@ -147,7 +147,7 @@ public class DoctorImmController extends BaseController {
	@RequestMapping(value = "/alertImmVacclinByChildInfoCodes", method = RequestMethod.POST)
	@ApiOperation(value = "医生提醒居民疫苗接种")
	@ApiOperation(value = "医生提醒居民疫苗接种(作废)")
	public String alertImmVacclinByChildInfoCodes(@ApiParam(name = "alertDataJsonStr", value = "[{\"childCode\":\"123\",\"childName\":\"张三\",\"vaccinCode\":\"asd123\",\"vaccinName\":\"疫苗名称\"}]", defaultValue = "")
										   @RequestParam(value = "alertDataJsonStr", required = true) String alertDataJsonStr){
		try {
@ -160,7 +160,7 @@ public class DoctorImmController extends BaseController {
	}
	@RequestMapping(value = "/alertImmVacclinByChildInfoCode", method = RequestMethod.POST)
	@ApiOperation(value = "医生提醒居民疫苗接种(作废)")
	@ApiOperation(value = "医生提醒居民疫苗接种")
	public String alertImmVacclinByChildInfoCode(@ApiParam(name = "alertDataJsonStr", value = "{\"childCode\":\"123\",\"childName\":\"张三\",\"vaccinCode\":\"asd123\",\"vaccinName\":\"疫苗名称\"}", defaultValue = "")
												  @RequestParam(value = "alertDataJsonStr", required = true) String alertDataJsonStr){
		try {
@ -212,33 +212,4 @@ public class DoctorImmController extends BaseController {
		}
	}
	@RequestMapping(value = "/imm/getChildImmuneVaccinEveryDay", method = RequestMethod.GET)
	@ResponseBody
	@ObserverRequired
	@ApiOperation("每天获取可预约疫苗test")
	public String getChildImmuneVaccinEveryDay (){
		try{
			int res = childFamilyImmuneService.getChildImmuneVaccinEveryDay();
			return write(200,"获取成功!","data",res);
		}catch (Exception e){
			error(e);
			return error(-1, e.getMessage());
		}
	}
	@RequestMapping(value = "/imm/alertJobTest", method = RequestMethod.GET)
	@ResponseBody
	@ObserverRequired
	@ApiOperation("job提醒居民预约测试")
	public String alertJobTest (){
		try{
			int res = childFamilyImmuneService.alertBefore();
			return write(200,"获取成功!","data",res);
		}catch (Exception e){
			error(e);
			return error(-1, e.getMessage());
		}
	}
}

+ 70 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/synergy/SynergyManageController.java

@ -50,6 +50,76 @@ public class SynergyManageController extends BaseController {
        }
    }
    /**
     * 医生查看协同服务
     *
     * @param code
     * @return
     */
    @RequestMapping(value = "doctorGetSynergy", method = RequestMethod.POST)
    @ApiOperation("医生查看协同服务")
    public String doctorGetSynergy(
            @RequestParam(value = "code",required = true)String code){
        try {
            return  write(200,"请求成功","data",synergyManageService.getWorkorById(code));
        } catch (Exception e) {
            error(e);
            return error(-1,"请求失败");
        }
    }
    /**
     * 医生编辑协同服务
     *
     * @param code
     * @param objectId
     * @param type
     * @param serviceDate
     * @param priority
     * @param remark
     * @param followupClass
     * @param followupType
     * @return
     */
    @RequestMapping(value = "doctorUpdateSynergy", method = RequestMethod.POST)
    @ApiOperation("医生更新协同服务")
    public String doctorUpdateSynergy(
            @RequestParam(value = "code",required = true)String code,
            @RequestParam(value = "objectId", required = false) String objectId,
            @RequestParam(value = "type",required = false)Integer type,
            @RequestParam(value = "serviceDate",required = false)String serviceDate,
            @RequestParam(value = "priority",required = false)Integer priority,
            @RequestParam(value = "remark",required = false)String remark,
            @RequestParam(value = "followupClass",required = false)String followupClass,
            @RequestParam(value = "followupType",required = false)String followupType){
        try {
            synergyManageService.updateWorkorder(code,type,objectId,serviceDate,priority,remark,followupClass,followupType);
            return  write(200,"请求成功");
        } catch (Exception e) {
            error(e);
            return error(-1,"保存失败");
        }
    }
    /**
     * g派发工单
     *
     * @param patient
     * @param group
     * @param labelType
     * @param teamCode
     * @param objectId
     * @param type
     * @param serviceDate
     * @param priority
     * @param remark
     * @param followupClass
     * @param followupType
     * @return
     */
    @RequestMapping(value = "doctorCreateSynergy", method = RequestMethod.POST)
    @ApiOperation("医生派发协同服务")
    public String doctorSendArticleToPatients(

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/family/FamilyMemberController.java

@ -575,7 +575,7 @@ public class FamilyMemberController extends WeixinBaseController {
                JSONObject json = new JSONObject(jsonObject.getString("data"));
                return write(200, "查询成功","data",json.getJSONArray("body"));
            }else {
                return error(-1,jsonObject.getString("error")+"--"+jsonObject.getString("message") );
                return error(-1,jsonObject.getString("msg") );
            }
        }catch (Exception e){
            error(e);