Browse Source

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

huangwenjie 7 years ago
parent
commit
a284d14cf4

+ 57 - 0
patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/controller/GuahaoController.java

@ -301,6 +301,25 @@ public class GuahaoController {
		}
	}
	
	@RequestMapping(value = "/imm/get/GetOrgNumberList",method = RequestMethod.GET)
	@ResponseBody
	@ApiOperation("计免:获取免疫接种号源")
	public Result GetOrgNumberListGet(@ApiParam(name="orgId",value="机构编码",defaultValue = "350206")
	                               @RequestParam String orgId,
	                               @ApiParam(name="ScheduleId",value="排班ID",defaultValue = "350211B10402017080901")
	                               @RequestParam String ScheduleId)
	{
		try {
			
			String data = guahaoService.GetOrgNumberList(orgId,ScheduleId);
			
			return Result.success("获取免疫接种号源!",data);
		} catch (Exception ex) {
			ex.printStackTrace();
			return Result.error(ex.getMessage());
		}
	}
	
	@RequestMapping(value = "/imm/GetOrgScheduleList",method = RequestMethod.POST)
	@ResponseBody
	@ApiOperation("计免:获取免疫接种排班信息")
@ -322,6 +341,27 @@ public class GuahaoController {
		}
	}
	
	@RequestMapping(value = "/imm/get/GetOrgScheduleList",method = RequestMethod.GET)
	@ResponseBody
	@ApiOperation("计免:获取免疫接种排班信息")
	public Result GetOrgScheduleListGet(@ApiParam(name="OrgCode",value="机构编码",defaultValue = "350211B1040")
	                                 @RequestParam String OrgCode,
	                                 @ApiParam(name="StartTime",value="开始日期",defaultValue = "2017-08-09")
	                                 @RequestParam String StartTime,
	                                 @ApiParam(name="EndTime",value="结束日期",defaultValue = "2017-08-10")
	                                 @RequestParam String EndTime)
	{
		try {
			
			String data = guahaoService.GetOrgScheduleList(OrgCode,StartTime,EndTime);
			
			return Result.success("获取免疫接种排班信息!",data);
		} catch (Exception ex) {
			ex.printStackTrace();
			return Result.error(ex.getMessage());
		}
	}
	
	@RequestMapping(value = "/imm/GetOrgScheduleAndNumberList",method = RequestMethod.POST)
	@ResponseBody
	@ApiOperation("计免:获取免疫接种排班信息和号源信息")
@ -339,6 +379,23 @@ public class GuahaoController {
		}
	}
	
	@RequestMapping(value = "/imm/get/GetOrgScheduleAndNumberList",method = RequestMethod.GET)
	@ResponseBody
	@ApiOperation("计免:获取免疫接种排班信息和号源信息")
	public Result GetOrgScheduleAndNumberListGet(@ApiParam(name="OrgCode",value="机构编码",defaultValue = "")
	                                          @RequestParam String OrgCode)
	{
		try {
			
			String data = guahaoService.GetOrgScheduleAndNumberList(OrgCode);
			
			return Result.success("获取免疫接种排班信息和号源信息!",data);
		} catch (Exception ex) {
			ex.printStackTrace();
			return Result.error(ex.getMessage());
		}
	}
	
	@RequestMapping(value = "/imm/GetResImmuneListWithBarCode",method = RequestMethod.POST)
	@ResponseBody
	@ApiOperation("计免:根据条形码获取预约记录")

+ 306 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/third/guahao/ImmuneService.java

@ -528,4 +528,310 @@ public class ImmuneService {
			throw new Exception("获取免疫接种机构列表息失败!");
		}
	}
	
	/**
	 * 获取免疫接种排班信息(7天排班)
	 * @param orgCode
	 * @return
	 * @throws Exception
	 */
	public JSONObject GetOrgScheduleList(String orgCode) throws Exception{
//		String url = jwUrl + "/third/guahao/imm/GetOrgScheduleList";
//		List<NameValuePair> params = new ArrayList<>();
//		params.add(new BasicNameValuePair("OrgCode", orgCode));
//		params.add(new BasicNameValuePair("StartTime", DateUtil.getStringDateShort()));//现在的时间
//
//		Date endDate = DateUtil.getPreDays(new Date(),7);
//		params.add(new BasicNameValuePair("EndTime", DateUtil.dateToStrShort(endDate)));//现在的时间往后延7天
//
//		String response = httpClientUtil.post(url, params, "UTF-8");
//		JSONObject data = JSONObject.parseObject(response);
//		int status = data.getInteger("status");
//		String xml = data.getString("data");
		
		int status = 200;
		String xml = "<?xml version=\"1.0\" encoding=\"utf-16\"?>\n" +
				"<ArrayOfViewImmuneModel xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" +
				"\t<ViewImmuneModel>\n" +
				"\t\t<Org>\n" +
				"\t\t\t<ORG_ID>106</ORG_ID>\n" +
				"\t\t\t<CODE>350211B1009</CODE>\n" +
				"\t\t\t<NAME>思明区鹭江街道社区卫生服务中心</NAME>\n" +
				"\t\t\t<ADDRESS /><REMARK />\n" +
				"\t\t\t<SHORT_NAME>思明区鹭江街道社区卫生服务中心</SHORT_NAME>\n" +
				"\t\t\t<RESERVATION_TELEPHONE />\n" +
				"\t\t\t<NUMBER_RELEASE_TIME xsi:nil=\"true\" />\n" +
				"\t\t\t<NUMBER_RELEASE_DAY xsi:nil=\"true\" />\n" +
				"\t\t\t<AVG_SCORE>10</AVG_SCORE>\n" +
				"\t\t\t<PHONE_INTRODUCTION />\n" +
				"\t\t\t<STATUS xsi:nil=\"true\" />\n" +
				"\t\t\t<SORT>0</SORT>\n" +
				"\t\t\t<ORG_TYPE xsi:nil=\"true\" />\n" +
				"\t\t\t<ZONE_CODE>350203</ZONE_CODE>\n" +
				"\t\t\t<UPDATE_DATE xsi:nil=\"true\" />\n" +
				"\t\t\t<ORG_IMMUNE xsi:nil=\"true\" />\n" +
				"\t\t</Org>\n" +
				"\t\t<DateNumbers>\n" +
				"\t\t\t<DateNumber>\n" +
				"\t\t\t\t<SECTIONLIST />\n" +
				"\t\t\t\t<ID>8adf96c561193b5e0161196985600086</ID>\n" +
				"\t\t\t\t<DATE>2018-01-29T00:00:00</DATE>\n" +
				"\t\t\t\t<TIME>AM</TIME>\n" +
				"\t\t\t\t<MAX>43</MAX>\n" +
				"\t\t\t\t<USED>1</USED>\n" +
				"\t\t\t\t<FEE>0</FEE>\n" +
				"\t\t\t\t<STATUS>1</STATUS>\n" +
				"\t\t\t</DateNumber>\n" +
				"\t\t\t<DateNumber>\n" +
				"\t\t\t\t<SECTIONLIST />\n" +
				"\t\t\t\t<ID>8adf96c561193b5e01611969856a0101</ID>\n" +
				"\t\t\t\t<DATE>2018-01-29T00:00:00</DATE>\n" +
				"\t\t\t\t<TIME>PM</TIME>\n" +
				"\t\t\t\t<MAX>41</MAX>\n" +
				"\t\t\t\t<USED>1</USED>\n" +
				"\t\t\t\t<FEE>0</FEE>\n" +
				"\t\t\t\t<STATUS>1</STATUS>\n" +
				"\t\t\t</DateNumber>\n" +
				"\t\t\t<DateNumber>\n" +
				"\t\t\t\t<SECTIONLIST />\n" +
				"\t\t\t\t<ID>8adf96c5611b73ac01611e8fd97c0e82</ID>\n" +
				"\t\t\t\t<DATE>2018-01-30T00:00:00</DATE>\n" +
				"\t\t\t\t<TIME>AM</TIME>\n" +
				"\t\t\t\t<MAX>43</MAX>\n" +
				"\t\t\t\t<USED>1</USED>\n" +
				"\t\t\t\t<FEE>0</FEE>\n" +
				"\t\t\t\t<STATUS>1</STATUS>\n" +
				"\t\t\t</DateNumber>\n" +
				"\t\t\t<DateNumber>\n" +
				"\t\t\t\t<SECTIONLIST />\n" +
				"\t\t\t\t<ID>8adf96c5611b73ac01611e8fd9830efd</ID>\n" +
				"\t\t\t\t<DATE>2018-01-30T00:00:00</DATE>\n" +
				"\t\t\t\t<TIME>PM</TIME>\n" +
				"\t\t\t\t<MAX>41</MAX>\n" +
				"\t\t\t\t<USED>1</USED>\n" +
				"\t\t\t\t<FEE>0</FEE>\n" +
				"\t\t\t\t<STATUS>1</STATUS>\n" +
				"\t\t\t</DateNumber>\n" +
				"\t\t\t<DateNumber>\n" +
				"\t\t\t\t<SECTIONLIST />\n" +
				"\t\t\t\t<ID>8adf96c5611b73ac01611e8fd97c0e82</ID>\n" +
				"\t\t\t\t<DATE>2018-01-31T00:00:00</DATE>\n" +
				"\t\t\t\t<TIME>AM</TIME>\n" +
				"\t\t\t\t<MAX>43</MAX>\n" +
				"\t\t\t\t<USED>1</USED>\n" +
				"\t\t\t\t<FEE>0</FEE>\n" +
				"\t\t\t\t<STATUS>1</STATUS>\n" +
				"\t\t\t</DateNumber>\n" +
				"\t\t\t<DateNumber>\n" +
				"\t\t\t\t<SECTIONLIST />\n" +
				"\t\t\t\t<ID>8adf96c5611b73ac01611e8fd9830efd</ID>\n" +
				"\t\t\t\t<DATE>2018-01-31T00:00:00</DATE>\n" +
				"\t\t\t\t<TIME>PM</TIME>\n" +
				"\t\t\t\t<MAX>41</MAX>\n" +
				"\t\t\t\t<USED>1</USED>\n" +
				"\t\t\t\t<FEE>0</FEE>\n" +
				"\t\t\t\t<STATUS>1</STATUS>\n" +
				"\t\t\t</DateNumber>\n" +
				"\t\t</DateNumbers>\n" +
				"\t</ViewImmuneModel>\n" +
				"</ArrayOfViewImmuneModel>";
		
		
		
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
		
		JSONObject result = new JSONObject();
		
		if(200 == status && StringUtils.isNotBlank(xml)){
			Document document = DocumentHelper.parseText(xml);
			
			
			Element ArrayOfImmuneSchudleModel = document.getRootElement();
			Element ViewImmuneModel = ArrayOfImmuneSchudleModel.element("ViewImmuneModel");
			Element Org = ViewImmuneModel.element("Org");
			
			//机构信息
			Element ORG_ID = Org.element("ORG_ID");
			Element CODE = Org.element("CODE");
			Element NAME = Org.element("NAME");
			Element SHORT_NAME = Org.element("SHORT_NAME");
			Element SORT = Org.element("SORT");
			Element ZONE_CODE = Org.element("ZONE_CODE");
			Element AVG_SCORE = Org.element("AVG_SCORE");
			
			result.put("ORG_CODE",CODE.getTextTrim());//机构编码
			result.put("ORG_ID",ORG_ID.getTextTrim());//机构ID
			result.put("ORG_NAME",NAME.getTextTrim());//机构名称
			result.put("ORG_SHORT_NAME",SHORT_NAME.getTextTrim());//机构简称
			String hospitalcode = hospitalMappingDao.getCodeByMapping(CODE.getTextTrim(), "1");
			Hospital hospital = hospitalDao.findByCode(hospitalcode);
			result.put("ORG_PHOTO",hospital.getPhoto());//机构图片
			result.put("ORG_PHONE",hospital.getPhone());//机构电话
			result.put("ORG_ADDRESS",hospital.getAddress());//机构地址
			result.put("ORG_INFO",hospital.getIntro());//机构简介
			result.put("AVG_SCORE",AVG_SCORE.getTextTrim());
			result.put("SORT",SORT.getTextTrim());
			result.put("ZONE_CODE",ZONE_CODE.getTextTrim());//机构区域编码
			
			//排班列表
			Element DateNumbers = ViewImmuneModel.element("DateNumbers");
			Iterator<Element> iterator = DateNumbers.elementIterator();
			JSONArray DateNumbersJSON = new JSONArray();
			while(iterator.hasNext()){
				JSONObject DateNumberJSON = new JSONObject();
				Element e = iterator.next();
				Element ID = e.element("ID");
				Element DATE = e.element("DATE");
				Element TIME = e.element("TIME");
				Element MAX = e.element("MAX");
				Element USED = e.element("USED");
				Element FEE = e.element("FEE");
				Element STATUS = e.element("STATUS");
				DateNumberJSON.put("ID",ID.getTextTrim());//排班ID
				DateNumberJSON.put("DATE",DATE.getTextTrim());//排班日期
				DateNumberJSON.put("TIME",TIME.getTextTrim());//上午或者下去
				DateNumberJSON.put("MAX",MAX.getTextTrim());//号源数量
				DateNumberJSON.put("USED",USED.getTextTrim());//已使用
				DateNumberJSON.put("FEE",FEE.getTextTrim());//费用
				DateNumberJSON.put("STATUS",STATUS.getTextTrim());//排班状态:1可用,0不可用
				
				Date datevo = dateFormat.parse(DATE.getTextTrim());
				DateNumberJSON.put("DATEVO", DateUtil.dateToStrShort(datevo));
				DateNumberJSON.put("WEEK",DateUtil.getWeekByDate(datevo));
				DateNumbersJSON.add(DateNumberJSON);
			}
			
			result.put("DateNumbers",DateNumbersJSON);
			return result;
		}else{
			throw new Exception("获取免疫接种机构列表息失败!");
		}
	}
	
	/**
	 * 获取免疫接种号源
	 * @param orgId
	 * @param scheduleId
	 * @param amorpm
	 * @return
	 * @throws Exception
	 */
	public JSONArray GetOrgNumberList(String orgId, String scheduleId,String amorpm) throws Exception{
//		String url = jwUrl + "/third/guahao/imm/GetOrgNumberList";
//		List<NameValuePair> params = new ArrayList<>();
//		params.add(new BasicNameValuePair("orgId", orgId));
//		params.add(new BasicNameValuePair("ScheduleId", scheduleId);//现在的时间
//
//		String response = httpClientUtil.post(url, params, "UTF-8");
//		JSONObject data = JSONObject.parseObject(response);
//		int status = data.getInteger("status");
//		String xml = data.getString("data");
		
		int status = 200;
		String xml = "<?xml version=\"1.0\" encoding=\"utf-16\"?>\n" +
				"<ArrayOfV_NUMBER_IMMUNE\n" +
				"    xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
				"    xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n" +
				"    <V_NUMBER_IMMUNE>\n" +
				"        <ORG_ID>501</ORG_ID>\n" +
				"        <START_TIME>2017-08-24T08:00:00</START_TIME>\n" +
				"        <END_TIME>2017-08-24T08:08:00</END_TIME>\n" +
				"        <SCHEDULE_ID>350211B10392017082401</SCHEDULE_ID>\n" +
				"        <NUMBER_ID>081000</NUMBER_ID>\n" +
				"        <UPDATE_TIME>2017-08-14T10:04:41</UPDATE_TIME>\n" +
				"        <LIMIT>1</LIMIT>\n" +
				"        <USED>0</USED>\n" +
				"        <CREATE_TIME>2017-08-14T10:04:41</CREATE_TIME>\n" +
				"        <UPLOAD_STATUS>0</UPLOAD_STATUS>\n" +
				"        <DATA_STATUS>1</DATA_STATUS>\n" +
				"        <IS_CORRECT>0</IS_CORRECT>\n" +
				"        <DELAY>0</DELAY>\n" +
				"        <CANCEL_DATE xsi:nil=\"true\" />\n" +
				"        <PLATFORM_FLAG>0</PLATFORM_FLAG>\n" +
				"    </V_NUMBER_IMMUNE>\n" +
				"    <V_NUMBER_IMMUNE>\n" +
				"        <ORG_ID>501</ORG_ID>\n" +
				"        <START_TIME>2017-08-24T09:00:00</START_TIME>\n" +
				"        <END_TIME>2017-08-24T09:08:00</END_TIME>\n" +
				"        <SCHEDULE_ID>350211B10392017082401</SCHEDULE_ID>\n" +
				"        <NUMBER_ID>081000</NUMBER_ID>\n" +
				"        <UPDATE_TIME>2017-08-14T10:04:41</UPDATE_TIME>\n" +
				"        <LIMIT>1</LIMIT>\n" +
				"        <USED>0</USED>\n" +
				"        <CREATE_TIME>2017-08-14T10:04:41</CREATE_TIME>\n" +
				"        <UPLOAD_STATUS>0</UPLOAD_STATUS>\n" +
				"        <DATA_STATUS>1</DATA_STATUS>\n" +
				"        <IS_CORRECT>0</IS_CORRECT>\n" +
				"        <DELAY>0</DELAY>\n" +
				"        <CANCEL_DATE xsi:nil=\"true\" />\n" +
				"        <PLATFORM_FLAG>0</PLATFORM_FLAG>\n" +
				"    </V_NUMBER_IMMUNE>\n" +
				"    <V_NUMBER_IMMUNE>\n" +
				"        <ORG_ID>501</ORG_ID>\n" +
				"        <START_TIME>2017-08-24T10:00:00</START_TIME>\n" +
				"        <END_TIME>2017-08-24T10:08:00</END_TIME>\n" +
				"        <SCHEDULE_ID>350211B10392017082401</SCHEDULE_ID>\n" +
				"        <NUMBER_ID>081000</NUMBER_ID>\n" +
				"        <UPDATE_TIME>2017-08-14T10:04:41</UPDATE_TIME>\n" +
				"        <LIMIT>1</LIMIT>\n" +
				"        <USED>0</USED>\n" +
				"        <CREATE_TIME>2017-08-14T10:04:41</CREATE_TIME>\n" +
				"        <UPLOAD_STATUS>0</UPLOAD_STATUS>\n" +
				"        <DATA_STATUS>1</DATA_STATUS>\n" +
				"        <IS_CORRECT>0</IS_CORRECT>\n" +
				"        <DELAY>0</DELAY>\n" +
				"        <CANCEL_DATE xsi:nil=\"true\" />\n" +
				"        <PLATFORM_FLAG>0</PLATFORM_FLAG>\n" +
				"    </V_NUMBER_IMMUNE>\n" +
				"</ArrayOfV_NUMBER_IMMUNE>";
		
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
		JSONArray result = new JSONArray();
		if(200 == status && StringUtils.isNotBlank(xml)){
			Document document = DocumentHelper.parseText(xml);
			Element ArrayOfV_NUMBER_IMMUNE = document.getRootElement();
			Iterator<Element> iterator = ArrayOfV_NUMBER_IMMUNE.elementIterator();
			while(iterator.hasNext()){
				JSONObject DateNumberJSON = new JSONObject();
				Element e = iterator.next();
				Element ORG_ID = e.element("ORG_ID");
				Element START_TIME = e.element("START_TIME");
				Date START_TIME_VO = dateFormat.parse(START_TIME.getTextTrim());
				Element END_TIME = e.element("END_TIME");
				Date END_TIME_VO = dateFormat.parse(END_TIME.getTextTrim());
				Element SCHEDULE_ID = e.element("SCHEDULE_ID");
				Element NUMBER_ID = e.element("NUMBER_ID");
				Element UPDATE_TIME = e.element("UPDATE_TIME");
				Element LIMIT = e.element("LIMIT");
				Element USED = e.element("USED");
				Element CREATE_TIME = e.element("CREATE_TIME");
				Element UPLOAD_STATUS = e.element("UPLOAD_STATUS");
				Element DATA_STATUS = e.element("DATA_STATUS");
				Element IS_CORRECT = e.element("IS_CORRECT");
				Element DELAY = e.element("DELAY");
				Element PLATFORM_FLAG = e.element("PLATFORM_FLAG");
				DateNumberJSON.put("ORG_ID",ORG_ID.getTextTrim());//机构ID
				DateNumberJSON.put("ID",NUMBER_ID.getTextTrim());//排班ID
				DateNumberJSON.put("START_TIME",START_TIME.getTextTrim());//号源开始时间
				DateNumberJSON.put("START_TIME_VO",DateUtil.dateToStrLong(START_TIME_VO));//号源开始时间--前端展示和预约用
				DateNumberJSON.put("END_TIME",END_TIME.getTextTrim());//号源结束时间
				DateNumberJSON.put("END_TIME_VO",DateUtil.dateToStrLong(END_TIME_VO));//号源结束时间--前端展示用
				DateNumberJSON.put("UPDATE_TIME",UPDATE_TIME.getTextTrim());//号源更新时间
				DateNumberJSON.put("CREATE_TIME",CREATE_TIME.getTextTrim());//号源创建
				DateNumberJSON.put("TIME",amorpm);//上午或者下去
				DateNumberJSON.put("LIMIT",LIMIT.getTextTrim());//号源数量
				DateNumberJSON.put("USED",USED.getTextTrim());//已使用
				DateNumberJSON.put("DATA_STATUS",DATA_STATUS.getTextTrim());//号源状态:1可用,0不可用
				DateNumberJSON.put("UPLOAD_STATUS",UPLOAD_STATUS.getTextTrim());//上传状态:1可用,0不可用
				DateNumberJSON.put("IS_CORRECT",IS_CORRECT.getTextTrim());//是否可修改:1可以,0不可以
				DateNumberJSON.put("DELAY",DELAY.getTextTrim());//是否延迟:1可以,0不可以
				DateNumberJSON.put("PLATFORM_FLAG",PLATFORM_FLAG.getTextTrim());//平台标志
				DateNumberJSON.put("SCHEDULE_ID",SCHEDULE_ID.getTextTrim());//排班ID
				result.add(DateNumberJSON);
			}
			return result;
		}else{
			throw new Exception("获取免疫接种机构列表息失败!");
		}
	}
}

+ 36 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/booking/PatientBookingController.java

@ -191,6 +191,42 @@ public class PatientBookingController extends WeixinBaseController{
        }
    }
    
    @RequestMapping(value = "/imm/GetOrgScheduleList", method = RequestMethod.GET)
    @ResponseBody
    @ObserverRequired
    @ApiOperation("计免:获取免疫接种排班信息-7天排班")
    public String GetOrgScheduleList (@ApiParam(name = "orgCode", value = "机构编码", defaultValue = "")
                                          @RequestParam(value = "orgCode", required = true) String orgCode){
        
        try{
            com.alibaba.fastjson.JSONObject result = immuneService.GetOrgScheduleList(orgCode);
            return write(200, "查询成功","data",result);
        }catch (Exception e){
            error(e);
            return error(-1, e.getMessage());
        }
    }
    
    @RequestMapping(value = "/imm/GetOrgNumberList", method = RequestMethod.GET)
    @ResponseBody
    @ObserverRequired
    @ApiOperation("计免:获取免疫接种号源")
    public String GetOrgNumberList (@ApiParam(name="orgId",value="机构编码-ZONECODE",defaultValue = "350206")
                                    @RequestParam String orgId,
                                    @ApiParam(name="ScheduleId",value="排班ID",defaultValue = "350211B10402017080901")
                                    @RequestParam String ScheduleId,
                                    @ApiParam(name="amorpm",value="上午或者下午",defaultValue = "AM")
                                    @RequestParam String amorpm){
        
        try{
            com.alibaba.fastjson.JSONArray result = immuneService.GetOrgNumberList(orgId,ScheduleId,amorpm);
            return write(200, "查询成功","data",result);
        }catch (Exception e){
            error(e);
            return error(-1, e.getMessage());
        }
    }
    
    @RequestMapping(value = "/imm/RegisterImmune", method = RequestMethod.POST)
    @ResponseBody
    @ObserverRequired