瀏覽代碼

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

huangwenjie 7 年之前
父節點
當前提交
1932eee060

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

@ -484,6 +484,7 @@ public class DeviceService extends BaseService{
                String sql = "select count(*) num from wlyy.wlyy_devices where device_code = '"+deviceSn+"'";
                Map<String,Object> deviceCountMap = jdbcTemplate.queryForMap(sql);
                if (Integer.valueOf(String.valueOf(deviceCountMap.get("num")))>0){
                    String url = wlyyService + "healthBank/insertCredits";
                    List<NameValuePair> params = new ArrayList<>();
                    params.add(new BasicNameValuePair("creditsDetail", "{\"tradeType\":\"HEALTH_TASK\",\"flag\":\"MEASURE\",\"tradeDirection\":1,\"status\":1,\"patientId\":\""+result.getUser()+"\",\"hospital\":\"350205\"}"));

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

@ -75,7 +75,7 @@ public class DeviceDetailService extends BaseService {
		}
		//设备表没有数据则插入一条数据
		if (deviceDetail==null){
			insertDevice(patientDevice,String.valueOf(adminTeam),hospitalName,hospital);
			insertDevice(patientDevice,String.valueOf(adminTeam),hospitalName,hospital,"");
			deviceDetail = deviceDetailDao.findBySn(patientDevice.getDeviceSn());
		}
@ -108,7 +108,7 @@ public class DeviceDetailService extends BaseService {
	 * @param orgCode
	 * @throws Exception
	 */
	public void insertDevice(PatientDevice patientDevice, String adminTeam, String orgName, String orgCode)throws Exception{
	public void insertDevice(PatientDevice patientDevice, String adminTeam, String orgName, String orgCode,String bindCount)throws Exception{
		//获取原始数据
		DeviceDetail deviceDetail = new DeviceDetail();
		Patient patient = patientDao.findByCode(patientDevice.getUser());
@ -122,7 +122,7 @@ public class DeviceDetailService extends BaseService {
		deviceDetail.setGrantAdminTeam(adminTeam);
		deviceDetail.setGrantOrgCode(orgCode);
		deviceDetail.setIsBinding(1);
		deviceDetail.setGrantTime(new Date());
		deviceDetail.setGrantTime(patientDevice.getCzrq());
		deviceDetail.setApplyDate(DateUtil.getStringDate("yyyy-MM-dd HH:mm:ss"));
		deviceDetail.setOrgName(orgName);
@ -130,12 +130,15 @@ public class DeviceDetailService extends BaseService {
			deviceDetail.setDeviceModel(device.getModel());
		}
		if (Integer.valueOf(patientDevice.getUserType())>0){
			deviceDetail.setBindingCount("{\"1\":\"0\",\"2\":\"0\"}");
		if (StringUtils.isNotEmpty(bindCount)){
			deviceDetail.setBindingCount(bindCount);
		}else {
			deviceDetail.setBindingCount("{\"1\":\"0\"}");
			if (Integer.valueOf(patientDevice.getUserType())>0){
				deviceDetail.setBindingCount("{\"1\":\"0\",\"2\":\"0\"}");
			}else {
				deviceDetail.setBindingCount("{\"1\":\"0\"}");
			}
		}
		if (patient!=null){
			deviceDetail.setLinkman(patient.getName());
			deviceDetail.setTel(patient.getPhone());
@ -169,4 +172,8 @@ public class DeviceDetailService extends BaseService {
			//deviceDetailDao.updateUnbindAll(2,deviceSn);
		}
	}
	public DeviceDetail findByDeviceSn(String deviceSn){
		return deviceDetailDao.findBySn(deviceSn);
	}
}

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

@ -62,6 +62,7 @@ public class PatientDeviceLogService extends BaseService {
            patientDeviceLog.setOperator(patientDevice.getAgent());
        }
        patientDeviceLog.setCreateTime(new Date());
        patientDeviceLog.setIsDel(1);
        patientDeviceLogDao.save(patientDeviceLog);
    }
@ -98,7 +99,7 @@ public class PatientDeviceLogService extends BaseService {
        }
        //筛选条件--一个月内未测量
        if (!StringUtils.isEmpty(noGaugeDay) && StringUtils.equals("3",noGaugeDay)){
            sql += " and b.patient NOT IN (SELECT user FROM device.wlyy_patient_health_index WHERE DATE_SUB(CURDATE(), INTERVAL INTERVAL 1 MONTH) <= DATE(record_date))";
            sql += " and b.patient NOT IN (SELECT user FROM device.wlyy_patient_health_index WHERE DATE_SUB(CURDATE(), INTERVAL 1 MONTH) <= DATE(record_date))";
        }
        //筛选条件--超过一个月未测量
        if (!StringUtils.isEmpty(noGaugeDay) && StringUtils.equals("4",noGaugeDay)){

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

@ -1161,7 +1161,7 @@ public class PatientDeviceService extends BaseService {
    public Map<String,Object> getDeviceByDeviceSn(String deviceSn)throws Exception {
        Map<String,Object> map  = new HashedMap();
        String sql = "SELECT d.id,d.device_name deviceName,d.device_model deviceMode,d.sim,d.device_activity_type deviceActivityType,e.is_multi_user isMultiUser,e.category_code as deviceType,e.multi_user multiUser,e.id as device_id FROM wlyy_devices d LEFT JOIN dm_device e ON d.device_model = e.model WHERE d.device_code='"+deviceSn+"'";
        String sql = "SELECT d.id,d.device_name deviceName,d.device_model deviceMode,d.sim,e.is_multi_user isMultiUser,e.category_code as deviceType,e.multi_user multiUser,e.id as device_id FROM device.wlyy_devices d LEFT JOIN wlyy.dm_device e ON d.device_model = e.model WHERE d.device_code='"+deviceSn+"'";
        List<Map<String,Object>> mapSqlList = jdbcTemplate.queryForList(sql);
        if (mapSqlList!=null && mapSqlList.size()>0){
            map = mapSqlList.get(0);

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

@ -122,7 +122,7 @@ 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();//设置请求和传输超时时间
        RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(60000).setConnectTimeout(60000).build();//设置请求和传输超时时间
        try {
            HttpPost httpPost = new HttpPost(url);

+ 124 - 5
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/data/DataHandingService.java

@ -1,9 +1,12 @@
package com.yihu.wlyy.web.data;
import com.alibaba.fastjson.JSON;
import com.yihu.device.entity.DeviceDetail;
import com.yihu.es.entity.HealthEduArticleES;
//import com.yihu.es.entity.MapDataDTO;
import com.yihu.wlyy.config.es.ElastricSearchSave;
import com.yihu.wlyy.entity.device.PatientDevice;
import com.yihu.wlyy.entity.device.PatientDeviceLog;
import com.yihu.wlyy.entity.doctor.profile.Doctor;
import com.yihu.wlyy.entity.manage.User;
import com.yihu.wlyy.entity.patient.Patient;
@ -11,22 +14,26 @@ import com.yihu.wlyy.repository.doctor.DoctorDao;
import com.yihu.wlyy.repository.manage.UserDao;
import com.yihu.wlyy.repository.patient.PatientDao;
import com.yihu.wlyy.repository.patient.PatientDeviceDao;
import com.yihu.wlyy.util.Base64Utils;
import com.yihu.wlyy.util.ElasticsearchUtil;
import com.yihu.wlyy.util.LatitudeUtils;
import com.yihu.wlyy.util.MD5;
import com.yihu.wlyy.repository.patient.PatientDeviceLogDao;
import com.yihu.wlyy.service.app.device.DeviceDetailService;
import com.yihu.wlyy.service.app.device.PatientDeviceService;
import com.yihu.wlyy.util.*;
import net.sf.json.JSONArray;
import org.apache.commons.collections.map.HashedMap;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;
@ -49,6 +56,10 @@ public class DataHandingService {
    @Autowired
    private PatientDeviceDao patientDeviceDao;
    @Autowired
    private PatientDeviceLogDao patientDeviceLogDao;
    @Autowired
    private DeviceDetailService deviceDetailService;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Transactional
@ -118,7 +129,7 @@ public class DataHandingService {
    }
    @Transactional
    private void saveUser(Doctor doctor) {
    public void saveUser(Doctor doctor) {
        User userTemp = new User();
        userTemp.setCode(doctor.getCode());
        userTemp.setMobile(doctor.getMobile());
@ -230,4 +241,112 @@ public class DataHandingService {
        }
        return  flag;
    }
    @Transactional(rollbackFor = Exception.class)
    public void updateToPaitentDevcieLog()throws Exception{
        List<PatientDevice> patientDeviceList = patientDeviceDao.findAll();
        List<PatientDeviceLog> patientDeviceLogList = new ArrayList<>();
        for (PatientDevice patientDevice : patientDeviceList){
            PatientDeviceLog patientDeviceLog = new PatientDeviceLog();
            patientDeviceLog.setDeviceId(patientDevice.getDeviceId());
            patientDeviceLog.setAgreementPhoto(patientDevice.getAgreementPhoto());
            if (!StringUtils.isEmpty(patientDevice.getDoctor())){
                patientDeviceLog.setOperator(patientDevice.getDoctor());
                patientDeviceLog.setOperatorName(patientDevice.getDoctorName());
                patientDeviceLog.setRole(1);
            }else if (!StringUtils.isEmpty(patientDevice.getAgent())){
                patientDeviceLog.setOperator(patientDevice.getAgent());
                patientDeviceLog.setOperatorName(patientDevice.getAgentName());
                patientDeviceLog.setRole(2);
            }
            patientDeviceLog.setCreateTime(patientDevice.getCzrq());
            patientDeviceLog.setDeviceSn(patientDevice.getDeviceSn());
            patientDeviceLog.setDeviceName(patientDevice.getDeviceName());
            patientDeviceLog.setCategoryCode(patientDevice.getCategoryCode());
            patientDeviceLog.setPatient(patientDevice.getUser());
            patientDeviceLog.setOperateCode(1);
            patientDeviceLog.setIsDel(1);
            patientDeviceLogList.add(patientDeviceLog);
        }
        patientDeviceLogDao.save(patientDeviceLogList);
    }
    @Transactional(rollbackFor = Exception.class)
    public void updateDevice()throws Exception{
        String patientDeviceSql = "SELECT pd.*,sf.admin_team_code,sf.hospital FROM wlyy_patient_device pd LEFT JOIN wlyy_sign_family sf ON pd.`user` = sf.patient where sf.`status`>0 GROUP BY pd.id";
        List<Map<String,Object>> patientDeviceList = jdbcTemplate.queryForList(patientDeviceSql);
        String deviceSql = "SELECT * FROM device.wlyy_devices";
        List<DeviceDetail> deviceDetailList = jdbcTemplate.query(deviceSql,new BeanPropertyRowMapper<>(DeviceDetail.class));
        List<String> sqlList = new ArrayList<>();
        Map<String,List<String>> map = new HashedMap();
        for (Map<String,Object> patientDeviceMap : patientDeviceList) {
            List<String> userTypeList = null;
            if (map.containsKey(String.valueOf(patientDeviceMap.get("device_sn")))) {
                userTypeList = map.get(String.valueOf(patientDeviceMap.get("device_sn")));
                if (userTypeList == null) {
                    userTypeList = new ArrayList<>();
                    userTypeList.add(String.valueOf(patientDeviceMap.get("user_type")));
                    map.put(String.valueOf(patientDeviceMap.get("device_sn")), userTypeList);
                } else {
                    boolean flag = false;
                    if (!userTypeList.contains(String.valueOf(patientDeviceMap.get("user_type")))) {
                        flag = true;
                    }
                    if (flag) {
                        userTypeList.add(String.valueOf(patientDeviceMap.get("user_type")));
                        map.put(String.valueOf(patientDeviceMap.get("device_sn")), userTypeList);
                    }
                }
            }
        }
        for (Map<String,Object> patientDeviceMap : patientDeviceList) {
            String deviceSn = String.valueOf(patientDeviceMap.get("device_sn"));
            int i = 0;
            for (DeviceDetail deviceDetail: deviceDetailList){
                if (deviceDetail.getDeviceCode().equals(deviceSn)){
                    i++;
                }
            }
            PatientDevice patientDevice = MapListUtils.convertMap2Bean(patientDeviceMap,PatientDevice.class);
            if (i==1){
                List<String> userTypeList = map.get(patientDevice.getDeviceSn());
                String bindCount = "";
                int size = userTypeList.size();
                if (size==1){
                    if (Integer.valueOf(patientDevice.getUserType())>0 && Integer.valueOf(patientDevice.getUserType())==1){
                        bindCount = "{\"1\":\"1\",\"2\":\"0\"}";
                    }else if (Integer.valueOf(patientDevice.getUserType())>0 && Integer.valueOf(patientDevice.getUserType())==2){
                        bindCount = "{\"1\":\"0\",\"2\":\"1\"}";
                    }else if (Integer.valueOf(patientDevice.getUserType())<0){
                        bindCount = "{\"1\":\"1\"}";
                    }
                }else if (size>1){
                    if (Integer.valueOf(patientDevice.getUserType())>0){
                        bindCount = "{\"1\":\"1\",\"2\":\"1\"}";
                    }else if (Integer.valueOf(patientDevice.getUserType())<0){
                        bindCount = "{\"1\":\"2\"}";
                    }
                }
                String sql = "UPDATE device.wlyy_devices SET is_grant=1,grant_admin_team='"+String.valueOf(patientDeviceMap.get
                        ("admin_team_code"))+"',grant_org_code='"+String.valueOf(patientDeviceMap.get("hospital"))+"',is_binding="+size+",binding_count='"+bindCount
                        +"',grant_time="+patientDevice.getCzrq()+" where device_code='"+patientDevice.getDeviceSn()+"'";
                jdbcTemplate.update(sql);
            }
            //如果wlyy_devices表里没有对应的数据 则增加一条。
            if (i==0){
                String bindCount = "";
                if (Integer.valueOf(patientDevice.getUserType())>0 && Integer.valueOf(patientDevice.getUserType())==1){
                    bindCount = "{\"1\":\"1\",\"2\":\"0\"}";
                }else if (Integer.valueOf(patientDevice.getUserType())>0 && Integer.valueOf(patientDevice.getUserType())==2){
                    bindCount = "{\"1\":\"0\",\"2\":\"1\"}";
                }else if (Integer.valueOf(patientDevice.getUserType())<0){
                    bindCount = "{\"1\":\"1\"}";
                }
                deviceDetailService.insertDevice(patientDevice,String.valueOf(patientDeviceMap.get("admin_team_code")),String.valueOf(patientDeviceMap.get("hospital_name")),String.valueOf(patientDeviceMap.get("hospital")),bindCount);
            }
        }
    }
}

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

@ -278,7 +278,31 @@ public class DataHandlingController extends BaseController {
    }
    //将wlyy_patient_device的数据清洗至wlyy_patietn_devcie_log
    @RequestMapping(value ="/updateToPatientDevcieLog",method = RequestMethod.POST)
    @ResponseBody
    @ApiOperation("将wlyy_patient_device的数据清洗至wlyy_patietn_devcie_log")
    public String updateToPatientDeviceLog(){
        try {
            dataHandingService.updateToPaitentDevcieLog();
            return write(200,"清洗数据成功!");
        }catch (Exception e){
            System.out.println("将wlyy_patient_device的数据清洗至wlyy_patietn_devcie_log失败:--->"+e.getMessage());
            return write(-1,"清洗数据失败");
        }
    }
    //将devcie库中wlyy_device新增的字段补充完整
    @RequestMapping(value ="/updateDevice",method = RequestMethod.POST)
    @ResponseBody
    @ApiOperation("将devcie库中wlyy_device新增的字段补充完整")
    public String updateDevice(){
        try {
            dataHandingService.updateDevice();
            return write(200,"清洗数据成功!");
        }catch (Exception e){
            System.out.println("将wlyy_patient_device的数据清洗至wlyy_patietn_devcie_log失败:--->"+e.getMessage());
            return write(-1,"清洗数据失败");
        }
    }
}

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

@ -121,7 +121,7 @@ public class DoctorDeviceController extends BaseController {
	@ResponseBody
	@ObserverRequired
	public String SavePatientDeviceAndCredit(@ApiParam(name="data",value="设备数据json",defaultValue = "{\"user\":\"915cca0a-5b1d-11e6-834 4-fa163e8aee56\",\"deviceId\": \"3\",\"deviceName\": \"血压计-优瑞恩\",\"deviceSn\": \"16C000337\",\"categoryCode\": \"1\",\"userType\": \"-1\"}") @RequestParam(value="data",required = true) String data,
											 @ApiParam(name = "agreementPhoto",value = "协议图片临时路径")@RequestParam(value = "agreementPhoto",required = true)String agreementPhoto) {
											 @ApiParam(name = "agreementPhoto",value = "协议图片临时路径")@RequestParam(value = "agreementPhoto",required = false)String agreementPhoto) {
		try {
			PatientDevice device = objectMapper.readValue(data,PatientDevice.class);
			// 设置操作医生标识
@ -146,7 +146,13 @@ public class DoctorDeviceController extends BaseController {
			Patient patient = patientDao.findByCode(device.getUser());
			//调用增加积分接口  海沧区的居民才能添加积分
			if (flag){
				String creditDetail = "{\"tradeType\":\"HEALTH_TASK\",\"flag\":\"BIND\",\"tradeDirection\":1,\"status\":1,\"patientId\":\""+device.getUser()+"\",\"hospital\":\""+patient.getTown()+"\"}";
				String flagStr ="";
				if ("1".equals(device.getCategoryCode())){
					flagStr="GLU_BIND";
				}else if ("2".equals(device.getCategoryCode())){
					flagStr="BP_BIND";
				}
				String creditDetail = "{\"tradeType\":\"HEALTH_TASK\",\"flag\":\""+flagStr+"\",\"tradeDirection\":1,\"status\":1,\"patientId\":\""+device.getUser()+"\",\"hospital\":\""+patient.getTown()+"\"}";
				JSONObject jsonObject = JSONObject.parseObject(creditDetail);
				JSONObject response = creditLogService.insert(jsonObject);
				String status = response.getString("status");
@ -396,6 +402,7 @@ public class DoctorDeviceController extends BaseController {
			}
			return write(200, "获取设备成功!", "data",patientDeviceService.getDeviceByDeviceSn(deviceSn));
		}catch (Exception e){
			logger.error(e.getMessage());
			error(e);
			return write(-1,"程序出错!");
		}

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

@ -236,8 +236,14 @@ public class PatientDeviceController extends BaseController {
            }
            //修改设备表中{"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()+"\"}";
            if (flag){
                String flagStr ="";
                if ("1".equals(device.getCategoryCode())){
                    flagStr="GLU_BIND";
                }else if ("2".equals(device.getCategoryCode())){
                    flagStr="BP_BIND";
                }
                String creditDetail = "{\"tradeType\":\"HEALTH_TASK\",\"flag\":\""+flagStr+"\",\"tradeDirection\":1,\"status\":1,\"patientId\":\""+device.getUser()+"\",\"hospital\":\""+patient.getTown()+"\"}";
                com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSONObject.parseObject(creditDetail);
                com.alibaba.fastjson.JSONObject response = creditLogService.insert(jsonObject);
                System.out.println("添加积分返回数据======"+response.toJSONString());