瀏覽代碼

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

huangwenjie 7 年之前
父節點
當前提交
b96f5195e5

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

@ -501,6 +501,13 @@ public class DeviceService extends BaseService{
                String patientCode = result.getUser();
                Patient patient = patientDao.findByCode(patientCode);
                String flagStr = "";
                if (deviceType==1){
                    flagStr="BP_MEASURE";
                }else if (deviceType==2){
                    flagStr="GLU_MEASURE";
                }
                //增加积分
                if (dataUoloadCount == 0 && "350205".equals(patient.getTown())){
                    String sql = "select count(*) num from device.wlyy_devices where device_code = '"+deviceSn+"'";
@ -509,7 +516,7 @@ public class DeviceService extends BaseService{
                        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\"}"));
                        params.add(new BasicNameValuePair("creditsDetail", "{\"tradeType\":\"HEALTH_TASK\",\"flag\":\""+flagStr+"\",\"tradeDirection\":1,\"status\":1,\"patientId\":\""+result.getUser()+"\",\"hospital\":\"350205\"}"));
                        String response = HttpClientUtil.post(url, params, "UTF-8");
                        System.out.println(response);
@ -536,13 +543,10 @@ public class DeviceService extends BaseService{
                //增加活跃度
                if (dataUoloadCount == 0){
                    String url1 = systemDictDao.findByDictNameAndCode("HEALTH_BANK_URL","HEALTH_BANK_URL");
                    String url = url1 + "/createActiveRecord";
                    String url = wlyyService + "healthBank/createActiveRecord";
                    List<NameValuePair> params = new ArrayList<>();
                    params.add(new BasicNameValuePair("originalStatus", "0"));
                    params.add(new BasicNameValuePair("currentStatus","1"));
                    params.add(new BasicNameValuePair("patientId",patient.getCode()));
                    String response = HttpClientUtil.post(url,params,"UTF-8");
                    params.add(new BasicNameValuePair("activeRecord", "{\"taskCode\":\""+flagStr+"\",\"patientId\":\""+result.getUser()+"\"}"));
                    String response = HttpClientUtil.post(url, params, "UTF-8");
                    if (StringUtils.isNotEmpty(response)){
                        com.alibaba.fastjson.JSONObject jsonObject = JSON.parseObject(response);
                        if (!"200".equals(jsonObject.getString("status"))){

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

@ -103,7 +103,7 @@ public class PatientDeviceLogService extends BaseService {
        }
        //筛选条件--超过一个月未测量
        if (!StringUtils.isEmpty(noGaugeDay) && StringUtils.equals("4",noGaugeDay)){
            sql += " and b.patient NOT IN (SELECT user FROM device.wlyy_patient_health_index WHERE  DATE_SUB(CURDATE(), INTERVAL 1 MONTH) > DATE(record_date))";
            sql += " and b.patient NOT IN (SELECT user FROM device.wlyy_patient_health_index WHERE  DATE_SUB(DATE_SUB(CURDATE(), INTERVAL 1 MONTH),INTERVAL 1 DAY) <= DATE(record_date))";
        }
        //发送消息要筛选未发送消息的设备
        if (StringUtils.isNotEmpty(isSend)){

+ 59 - 11
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/data/DataHandingService.java

@ -274,37 +274,82 @@ public class DataHandingService {
        patientDeviceLogDao.save(patientDeviceLogList);
    }
    @Transactional(rollbackFor = Exception.class)
    public boolean updateDeviceDefalut(){
        boolean flag = true;
        try{
            String deviceSql = "SELECT wd.*,dd.category_code,dd.is_multi_user FROM device.wlyy_devices wd LEFT JOIN wlyy.dm_device dd ON wd.device_model = dd.model";
            List<Map<String,Object>> deviceDetailList = jdbcTemplate.queryForList(deviceSql);
            //把wlyy_devices库里bindCount先补充默认值
            List<String> deviceSqlList = new ArrayList<>();
            for (Map<String,Object> deviceMap : deviceDetailList){
                String bindingCount="";
                if (StringUtils.isEmpty(String.valueOf(deviceMap.get("binding_count"))) || StringUtils.pathEquals("null",String.valueOf(deviceMap.get("binding_count")))){
                    if (org.apache.commons.lang3.StringUtils.isNotEmpty(String.valueOf(deviceMap.get("is_multi_user"))) && StringUtils.pathEquals("0",String.valueOf(deviceMap.get("is_multi_user")))){
                        bindingCount="{\"1\":\"0\"}";
                    }else if (org.apache.commons.lang3.StringUtils.isNotEmpty(String.valueOf(deviceMap.get("is_multi_user"))) && StringUtils.pathEquals("1",String.valueOf(deviceMap.get("is_multi_user")))){
                        bindingCount="{\"1\":\"0\",\"2\":\"0\"}";
                    }else if (StringUtils.isEmpty(String.valueOf(deviceMap.get("is_multi_user"))) || StringUtils.pathEquals("null",String.valueOf(deviceMap.get("is_multi_user")))){
                        if (String.valueOf(deviceMap.get("device_name")).contains("血糖")){
                            bindingCount="{\"1\":\"0\"}";
                        }
                        if (String.valueOf(deviceMap.get("device_name")).contains("血压")){
                            bindingCount="{\"1\":\"0\",\"2\":\"0\"}";
                        }
                    }
                    //String updateDeviceSql = ;
                    deviceSqlList.add("UPDATE device.wlyy_devices SET binding_count='"+bindingCount +"' where device_code='"+String.valueOf(deviceMap.get("device_code"))+"'");
                }
            }
            String deviceStr[] = new String[deviceSqlList.size()];
            deviceStr = deviceSqlList.toArray(deviceStr);
            jdbcTemplate.batchUpdate(deviceStr);
        }catch (Exception e){
            flag = false;
            e.printStackTrace();
        }
        return flag;
    }
    @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";
        //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";
        String patientDeviceSql = "SELECT pd.id,pd.device_id AS deviceId,pd.category_code categoryCode,pd.device_name deviceName,pd.device_sn deviceSn,pd.`user`,pd.user_type userType,pd.czrq,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));
        //封装设备与患者表的数据,一个设备多键
        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 (map.containsKey(String.valueOf(patientDeviceMap.get("deviceSn")))) {
                userTypeList = map.get(String.valueOf(patientDeviceMap.get("deviceSn")));
                if (userTypeList == null) {
                    userTypeList = new ArrayList<>();
                    userTypeList.add(String.valueOf(patientDeviceMap.get("user_type")));
                    map.put(String.valueOf(patientDeviceMap.get("device_sn")), userTypeList);
                    userTypeList.add(String.valueOf(patientDeviceMap.get("userType")));
                    map.put(String.valueOf(patientDeviceMap.get("deviceSn")), userTypeList);
                } else {
                    boolean flag = false;
                    if (!userTypeList.contains(String.valueOf(patientDeviceMap.get("user_type")))) {
                    if (!userTypeList.contains(String.valueOf(patientDeviceMap.get("userType")))) {
                        flag = true;
                    }
                    if (flag) {
                        userTypeList.add(String.valueOf(patientDeviceMap.get("user_type")));
                        map.put(String.valueOf(patientDeviceMap.get("device_sn")), userTypeList);
                        userTypeList.add(String.valueOf(patientDeviceMap.get("userType")));
                        map.put(String.valueOf(patientDeviceMap.get("deviceSn")), userTypeList);
                    }
                }
            }else {
                userTypeList = new ArrayList<>();
                userTypeList.add(String.valueOf(patientDeviceMap.get("userType")));
                map.put(String.valueOf(patientDeviceMap.get("deviceSn")), userTypeList);
            }
        }
        List<String> sqlList = new ArrayList<>();
        for (Map<String,Object> patientDeviceMap : patientDeviceList) {
            String deviceSn = String.valueOf(patientDeviceMap.get("device_sn"));
            String deviceSn = String.valueOf(patientDeviceMap.get("deviceSn"));
            int i = 0;
            for (DeviceDetail deviceDetail: deviceDetailList){
                if (deviceDetail.getDeviceCode().equals(deviceSn)){
@ -334,8 +379,8 @@ public class DataHandingService {
                }
                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);
                        +"',grant_time='"+DateUtil.dateToStr(patientDevice.getCzrq(),"yyyy-MM-dd HH:mm:ss")+"' where device_code='"+patientDevice.getDeviceSn()+"'";
                sqlList.add(sql);
            }
            //如果wlyy_devices表里没有对应的数据 则增加一条。
            if (i==0){
@ -350,6 +395,9 @@ public class DataHandingService {
                deviceDetailService.insertDevice(patientDevice,String.valueOf(patientDeviceMap.get("admin_team_code")),String.valueOf(patientDeviceMap.get("hospital_name")),String.valueOf(patientDeviceMap.get("hospital")),bindCount);
            }
        }
        String[] sqlStr = new String[sqlList.size()];
        sqlStr = sqlList.toArray(sqlStr);
        jdbcTemplate.batchUpdate(sqlStr);
    }
    public void addPointOldDeviceBind()throws Exception{

+ 6 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/data/DataHandlingController.java

@ -286,6 +286,7 @@ public class DataHandlingController extends BaseController {
            dataHandingService.updateToPaitentDevcieLog();
            return write(200,"清洗数据成功!");
        }catch (Exception e){
            e.printStackTrace();
            System.out.println("将wlyy_patient_device的数据清洗至wlyy_patietn_devcie_log失败:--->"+e.getMessage());
            return write(-1,"清洗数据失败");
        }
@ -298,9 +299,13 @@ public class DataHandlingController extends BaseController {
    @ApiOperation("将devcie库中wlyy_device新增的字段补充完整")
    public String updateDevice(){
        try {
            dataHandingService.updateDevice();
            boolean flag = dataHandingService.updateDeviceDefalut();
            if (flag){
                dataHandingService.updateDevice();
            }
            return write(200,"清洗数据成功!");
        }catch (Exception e){
            e.printStackTrace();
            System.out.println("将devcie库中wlyy_device新增的字段补充完整失败:--->"+e.getMessage());
            return write(-1,"清洗数据失败");
        }

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

@ -21,6 +21,7 @@ import com.yihu.wlyy.service.app.device.DeviceWxMessageService;
import com.yihu.wlyy.service.app.device.PatientDeviceLogService;
import com.yihu.wlyy.service.app.device.PatientDeviceService;
import com.yihu.wlyy.service.app.health.bank.CreditLogService;
import com.yihu.wlyy.service.app.health.bank.TaskService;
import com.yihu.wlyy.service.app.team.AdminTeamService;
import com.yihu.wlyy.service.common.account.DoctorService;
import com.yihu.wlyy.task.PushMsgTask;
@ -101,6 +102,8 @@ public class DoctorDeviceController extends BaseController {
	private SystemDictDao systemDictDao;
	@Autowired
	private HttpClientUtil httpClientUtil;
	@Autowired
	private TaskService taskService;
	@Autowired
	private JmsTemplate jmsTemplate;
@ -160,8 +163,8 @@ public class DoctorDeviceController extends BaseController {
			Patient patient = patientDao.findByCode(device.getUser());
			SignFamily signFamily = signFamilyDao.findSignByPatient(patient.getCode(),2);
			//调用增加积分接口  海沧区的居民才能添加积分
			String flagStr ="";
			if (flag && "350205".equals(signFamily.getHospital().substring(0,6))){
				String flagStr ="";
				if ("1".equals(device.getCategoryCode())){
					flagStr="GLU_BIND";
				}else if ("2".equals(device.getCategoryCode())){
@ -177,19 +180,10 @@ public class DoctorDeviceController extends BaseController {
			}
			//活动的活跃度
			if (flag){
				String url1 = systemDictDao.findByDictNameAndCode("HEALTH_BANK_URL","HEALTH_BANK_URL");
				String url = url1 + "/createActiveRecord";
				List<NameValuePair> params = new ArrayList<>();
				params.add(new BasicNameValuePair("originalStatus", "0"));
				params.add(new BasicNameValuePair("currentStatus","1"));
				params.add(new BasicNameValuePair("patientId",patient.getCode()));
				String response = httpClientUtil.post(url,params,"UTF-8");
				if (StringUtils.isNotEmpty(response)){
					JSONObject jsonObject = JSON.parseObject(response);
					if (!"200".equals(jsonObject.getString("status"))){
						logger.info("添加活跃度失败!");
					}
				}
				JSONObject jsonObject = new JSONObject();
				jsonObject.put("patientId",patient.getCode());
				jsonObject.put("taskCode",flagStr);
				taskService.createActiveRecord(jsonObject);
			}
			try {
				String openId = patient.getOpenid();