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

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

huangwenjie преди 7 години
родител
ревизия
1dbc67cb63

+ 17 - 5
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/device/DeviceDetailService.java

@ -18,6 +18,7 @@ import com.yihu.wlyy.service.BaseService;
import com.yihu.wlyy.util.DateUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@ -44,6 +45,8 @@ public class DeviceDetailService extends BaseService {
	private DoctorDao doctorDao;
	@Autowired
	private PatientDeviceDao patientDeviceDao;
	@Autowired
	private JdbcTemplate jdbcTemplate;
	/**
@ -53,6 +56,7 @@ public class DeviceDetailService extends BaseService {
	 * @param isFirst
	 * @throws Exception
	 */
	@Transactional
	public void updateAfterBinding(PatientDevice patientDevice, Date grantTime,boolean isFirst)throws Exception{
		DeviceDetail deviceDetail = deviceDetailDao.findBySn(patientDevice.getDeviceSn());
		List<SignFamily> signFamilyList = signFamilyDao.findSSandJTByIdcard(patientDevice.getUserIdcard());
@ -84,11 +88,15 @@ public class DeviceDetailService extends BaseService {
		}
		if (isFirst){
			deviceDetailDao.updateAfterBindingFirst(String.valueOf(adminTeam),hospital,isFirstBind,grantTime,patientDevice.getDeviceSn());
			String updateFirstSql ="update device.wlyy_devices dd set dd.is_grant=1,dd.grant_admin_team=?,dd.grant_org_code=?,dd.binding_count=?,dd.grant_time = ?,dd.is_binding=1 where dd.device_code=?";
			jdbcTemplate.update(updateFirstSql,new Object[]{String.valueOf(adminTeam),hospital,isFirstBind,grantTime,patientDevice.getDeviceSn()});
			//deviceDetailDao.updateAfterBindingFirst(String.valueOf(adminTeam),hospital,isFirstBind,grantTime,patientDevice.getDeviceSn());
		}else {
			List<PatientDevice> patientDeviceList = patientDeviceDao.findByDeviceSn(patientDevice.getDeviceSn());
			int patientDeviceSize = patientDeviceList.size();
			deviceDetailDao.updateAfterBinding(String.valueOf(adminTeam),hospital,isFirstBind,patientDevice.getDeviceSn(),patientDeviceSize);
			String updateSql ="update device.wlyy_devices dd set dd.is_grant=1,dd.grant_admin_team=?,dd.grant_org_code=?,dd.binding_count=?,dd.is_binding=? where dd.device_code=?";
			jdbcTemplate.update(updateSql,new Object[]{String.valueOf(adminTeam),hospital,isFirstBind,patientDeviceSize,patientDevice.getDeviceSn()});
			//deviceDetailDao.updateAfterBinding(String.valueOf(adminTeam),hospital,isFirstBind,patientDevice.getDeviceSn(),patientDeviceSize);
		}
	}
@ -147,14 +155,18 @@ public class DeviceDetailService extends BaseService {
	 */
	public void unBindUpdateIsBinding(String deviceSn)throws Exception{
		List<PatientDevice> patientDeviceList = patientDeviceDao.findByDeviceSn(deviceSn);
		String sql = "update device.wlyy_devices dd set dd.is_binding=? where dd.device_code=?";
		if (patientDeviceList.size()==0){
			deviceDetailDao.updateUnbindAll(0,deviceSn);
			jdbcTemplate.update(sql,new Object[]{0,deviceSn});
			//deviceDetailDao.updateUnbindAll(0,deviceSn);
		}
		if (patientDeviceList.size()==1){
			deviceDetailDao.updateUnbindAll(1,deviceSn);
			jdbcTemplate.update(sql,new Object[]{1,deviceSn});
			//deviceDetailDao.updateUnbindAll(1,deviceSn);
		}
		if (patientDeviceList.size()>1){
			deviceDetailDao.updateUnbindAll(2,deviceSn);
			jdbcTemplate.update(sql,new Object[]{2,deviceSn});
			//deviceDetailDao.updateUnbindAll(2,deviceSn);
		}
	}
}

+ 1 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/device/PatientDeviceLogService.java

@ -40,6 +40,7 @@ public class PatientDeviceLogService extends BaseService {
     * @param operateCode
     * @throws Exception
     */
    @Transactional
    public void savePatientDeviceLog(PatientDevice patientDevice,String deviceSn,int role,int operateCode)throws Exception{
       if (patientDevice==null){
           patientDevice = patientDeviceDao.findByDeviceSn(deviceSn).get(0);

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/device/PatientDeviceService.java

@ -155,7 +155,7 @@ public class PatientDeviceService extends BaseService {
            }
        }
        /*DeviceDetail deviceDetail = deviceDetailDao.findBySn(deviceSn);
        //if(deviceDetail != null){
        if(deviceDetail != null){
            flag = true;
        }*/
        return flag;

+ 84 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/message/MessageService.java

@ -15,6 +15,7 @@ import com.yihu.wlyy.service.BaseService;
import com.yihu.wlyy.util.DateUtil;
import com.yihu.wlyy.util.HttpClientUtil;
import com.yihu.wlyy.util.IdCardUtil;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
@ -704,4 +705,87 @@ public class MessageService extends BaseService {
        List<Map<String,Object>> messagelist = jdbcTemplate.queryForList(sql,new Object[]{start,pageSize});
        return messagelist;
    }
    public JSONObject getPatientInfo(String patientCode){
        JSONObject jsonObject = new JSONObject();
        Patient patient = patientDao.findByCode(patientCode);
        // 患者code
        jsonObject.put("code",patient.getCode());
        // 社保号
        jsonObject.put("ssc",patient.getSsc());
        // openid
        jsonObject.put("openid",StringUtils.isNotEmpty(patient.getOpenid()) ? patient.getOpenid() : "");
        // 性别
        jsonObject.put("sex",patient.getSex());
        // 患者手机号码
        jsonObject.put("mobile",patient.getMobile());
        // 头像
        jsonObject.put("photo",patient.getPhoto());
        // 身份证号码
        jsonObject.put("idcard",patient.getIdcard());
        // 患者名字
        jsonObject.put("name",patient.getName());
        // 患者年纪
        jsonObject.put("age",IdCardUtil.getAgeForIdcard(patient.getIdcard()));
        String sql = "SELECT sf.* FROM wlyy_sign_family sf LEFT JOIN wlyy_patient p ON sf.patient = p.`code` WHERE sf.`status`>0 and sf.patient='"+patientCode+"'";
        List<SignFamily> signFamilys = jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(SignFamily.class));
        if (signFamilys!=null && signFamilys.size()>0){
            SignFamily signFamily = signFamilys.get(0);
            // 签约类型
            jsonObject.put("signType",signFamily.getType()== null ? "" : signFamily.getType());
            // 签约时间
            jsonObject.put("qyrq",signFamily.getApplyDate() != null ? DateUtil.dateToStr((signFamily.getApplyDate()),DateUtil.YYYY_MM_DD) : "");
            //紧急联系人
            jsonObject.put("emerMobile",signFamily.getEmerMobile() == null ? "" : signFamily.getEmerMobile());
            if (String.valueOf(signFamily.getType()).equals("2")) {
                // 缴费情况
                jsonObject.put("expensesStatus", signFamily.getExpensesStatus() != null ? String.valueOf(signFamily.getExpensesStatus()) : "0");
                // 缴费时间
                jsonObject.put("expensesTime", signFamily.getExpensesTime() != null ? DateUtil.dateToStr((signFamily.getExpensesTime()), DateUtil.YYYY_MM_DD_HH_MM) : "");
                // 缴费类型
                jsonObject.put("expensesType", signFamily.getExpensesType() != null ? String.valueOf(signFamily.getExpensesType()) : "");
                if (StringUtils.isEmpty(String.valueOf(signFamily.getExpensesStatus())) || String.valueOf(signFamily.getExpensesStatus()).equals("0")) {
                    boolean epTime = false;
                    try {
                        epTime = redisTemplate.opsForSet().isMember("expenses:remind:set", patient.getCode());
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    if (!epTime) {
                        jsonObject.put("expensesRemindStatus", 0);
                    } else {
                        jsonObject.put("expensesRemindStatus", 1);
                    }
                }
            } else {
                // 缴费情况
                jsonObject.put("expensesStatus", "1");
            }
            boolean epTime = false;
            try {
                epTime = redisTemplate.opsForSet().isMember("wechat:focus:remind:set", patient.getCode());
            } catch (Exception e) {
                e.printStackTrace();
            }
            if (!epTime) {
                jsonObject.put("wechatFocusRemind", 0);
            } else {
                jsonObject.put("wechatFocusRemind", 1);
            }
        }
        String devcieSql = "select group_concat(category_code) deviceType FROM wlyy_patient_device where user = '"+patientCode+"'";
        Map<String,Object> deviceMap = null;
        try {
            deviceMap = jdbcTemplate.queryForMap(devcieSql);
        }catch (Exception e){
            System.out.println(e.getMessage());
            deviceMap.put("devicrType",0);
        }
        /// 设备状态:0未绑定,1血糖仪,2血压仪,3血糖仪+血压仪
        jsonObject.put("deviceType",String.valueOf(deviceMap.get("deviceType")));
        return  jsonObject;
    }
}

+ 4 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/util/HttpClientUtil.java

@ -4,6 +4,7 @@ import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
@ -121,8 +122,11 @@ public class HttpClientUtil {
     */
    public  String httpPost(String url, Map<String, String> params) throws Exception {
        CloseableHttpClient httpclient = HttpClients.createDefault();
        RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(30000).setConnectTimeout(10000).build();//设置请求和传输超时时间
        try {
            HttpPost httpPost = new HttpPost(url);
            httpPost.setConfig(requestConfig);
            if (params != null && params.size() > 0) {
                List<NameValuePair> valuePairs = new ArrayList<NameValuePair>(params.size());
                for (Map.Entry<String, String> entry : params.entrySet()) {

+ 5 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/data/DataHandlingController.java

@ -276,4 +276,9 @@ public class DataHandlingController extends BaseController {
            return write(0, "清洗数据失败!");
        }
    }
    //将wlyy_patient_device的数据清洗至wlyy_patietn_devcie_log
    //将devcie库中wlyy_device新增的字段补充完整
}

+ 12 - 4
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/device/DoctorDeviceController.java

@ -11,6 +11,7 @@ import com.yihu.wlyy.entity.doctor.team.admin.AdminTeam;
import com.yihu.wlyy.entity.patient.Patient;
import com.yihu.wlyy.entity.wechat.WechatTemplateConfig;
import com.yihu.wlyy.repository.patient.PatientDao;
import com.yihu.wlyy.repository.patient.PatientDeviceDao;
import com.yihu.wlyy.repository.wechat.WechatTemplateConfigDao;
import com.yihu.wlyy.service.app.device.DeviceDetailService;
import com.yihu.wlyy.service.app.device.DeviceWxMessageService;
@ -84,6 +85,8 @@ public class DoctorDeviceController extends BaseController {
	private CommonUtil commonUtil;
	@Autowired
	private DeviceWxMessageService deviceWxMessageService;
	@Autowired
	private PatientDeviceDao patientDeviceDao;
	@Autowired
	private JmsTemplate jmsTemplate;
@ -142,7 +145,7 @@ public class DoctorDeviceController extends BaseController {
			deviceDetailService.updateAfterBinding(device,new Date(),flag);
			Patient patient = patientDao.findByCode(device.getUser());
			//调用增加积分接口  海沧区的居民才能添加积分
			if (flag && "350205".equals(patient.getTown())){
			if (flag){
				String creditDetail = "{\"tradeType\":\"HEALTH_TASK\",\"flag\":\"BIND\",\"tradeDirection\":1,\"status\":1,\"patientId\":\""+device.getUser()+"\",\"hospital\":\""+patient.getTown()+"\"}";
				JSONObject jsonObject = JSONObject.parseObject(creditDetail);
				JSONObject response = creditLogService.insert(jsonObject);
@ -236,8 +239,8 @@ public class DoctorDeviceController extends BaseController {
				if(StringUtils.isNotBlank(pd.getDoctor())&&StringUtils.equals(pd.getDoctor(), getUID())){
					List<com.alibaba.fastjson.JSONObject> objects = patientDeviceService.deleteDevice(id,getUID());
					//全部解绑后去判断就更新设备表中是否绑定字段
					deviceDetailService.unBindUpdateIsBinding(pd.getDeviceSn());
					patientDeviceLogService.savePatientDeviceLog(pd,pd.getDeviceSn(),1,2);
					deviceDetailService.unBindUpdateIsBinding(pd.getDeviceSn());
					return write(200,"","data",objects);
				}
				else if(StringUtils.isNotBlank(pd.getDoctor())&&!StringUtils.equals(pd.getDoctor(), getUID())){
@ -249,8 +252,8 @@ public class DoctorDeviceController extends BaseController {
					}
					if(bo){//同行政团队
						List<com.alibaba.fastjson.JSONObject> objects = patientDeviceService.deleteDevice(id,getUID());
						deviceDetailService.unBindUpdateIsBinding(pd.getDeviceSn());
						patientDeviceLogService.savePatientDeviceLog(pd,pd.getDeviceSn(),1,2);
						deviceDetailService.unBindUpdateIsBinding(pd.getDeviceSn());
						return write(200,"","data",objects);
					}else{
						return error(-1, "只允许删除自己及自己行政团队绑定的设备!");
@ -280,10 +283,15 @@ public class DoctorDeviceController extends BaseController {
						@ApiParam(name="type",value="设备类型")
						@RequestParam(value="type",required = true) String type) {
		try{
			List<PatientDevice> patientDevices = patientDeviceDao.findByDeviceSnAndCategoryCode(deviceSn, type);
			PatientDevice patientDevice = new PatientDevice();
			if (patientDevices!=null && patientDevices.size()>0){
				patientDevice = patientDevices.get(0);
			}
			patientDeviceService.deleteDevices(deviceSn,type,getUID());
			//全部解绑后去判断就更新设备表中是否绑定字段
			patientDeviceLogService.savePatientDeviceLog(patientDevice,deviceSn,1,2);
			deviceDetailService.unBindUpdateIsBinding(deviceSn);
			patientDeviceLogService.savePatientDeviceLog(null,deviceSn,1,2);
			return write(200,"解绑成功!");
		}catch (Exception e){
			error(e);

+ 14 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/message/DoctorMessageController.java

@ -476,4 +476,18 @@ public class DoctorMessageController extends BaseController {
    }
    @RequestMapping(value = "getDevcieMessageDetailToInfo",method = RequestMethod.POST)
    @ApiOperation("点击具体的设备解绑的消息跳转至具名详情页")
    @ResponseBody
    public String getDeviceMessageDetailToInfo(@ApiParam(name = "msgid",value = "消息主键id")@RequestParam(value = "msgid",required = true)long msgid,
                                               @ApiParam(name = "patientCode",value = "居民code")@RequestParam(value = "patientCode",required = true)String patientCode){
        try {
            messageService.readHealth(msgid);
            return write(200,"获取成功!","data",messageService.getPatientInfo(patientCode));
        }catch (Exception e){
            error(e);
            return error( -1, "操作失败!");
        }
    }
}

+ 2 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/device/PatientDeviceController.java

@ -235,7 +235,7 @@ public class PatientDeviceController extends BaseController {
                patientDeviceService.saveDevice(device);
                patientDeviceLogService.savePatientDeviceLog(device,device.getDeviceSn(),2,1);
            }
            //修改设备表中{"1":"0", "2":"0"}的绑定次数 和其他绑定信息,
            //修改设备表中{"1":"0", "2":"0"}的绑定次数 和其他绑定信息
            deviceDetailService.updateAfterBinding(device,new Date(),flag);
            if (flag && "350205".equals(patient.getTown())){
                String creditDetail = "{\"tradeType\":\"HEALTH_TASK\",\"flag\":\"BIND\",\"tradeDirection\":1,\"status\":1,\"patientId\":\""+device.getUser()+"\",\"hospital\":\""+patient.getTown()+"\"}";
@ -409,6 +409,7 @@ public class PatientDeviceController extends BaseController {
                message.setType(301);//解绑设备消息
                message.setReadonly(1);//是否只读消息
                message.setSex(1);
                message.setRelationCode(patient.getCode());
                message.setOver("1");//未处理
                message.setData("");
                message.setDel("1");