Browse Source

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

lulihong 3 years ago
parent
commit
1146465fcf
21 changed files with 279 additions and 168 deletions
  1. 2 2
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/config/NetworkCardConfig.java
  2. 6 8
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/device/NetworkCardController.java
  3. 1 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/device/PatientDeviceController.java
  4. 15 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/doctor/DoctorEndpoint.java
  5. 1 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/file_upload/FileUploadEndpoint.java
  6. 14 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/patient/PatientEndpoint.java
  7. 14 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/statistics/DetectionPlatformEndpoint.java
  8. 3 3
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/contacts/ContactsService.java
  9. 42 22
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/device/NetworkCardService.java
  10. 5 4
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/device/PatientDeviceService.java
  11. 12 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/doctor/CareDoctorService.java
  12. 7 11
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/family/PatientFamilyMemberService.java
  13. 17 11
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/patient/CarePatientService.java
  14. 10 17
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/patient/OnlineContactService.java
  15. 5 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/sign/CapacityAssessmentRecordService.java
  16. 1 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/DetectionPlatformService.java
  17. 69 63
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/StatisticsService.java
  18. 12 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/third/PatientInfoPlatFormService.java
  19. 2 1
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/config/NetworkCardConfig.java
  20. 1 1
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/device/PatientSosContactsJob.java
  21. 40 21
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/device/NetworkCardService.java

+ 2 - 2
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/config/NetworkCardConfig.java

@ -17,7 +17,6 @@ public class NetworkCardConfig {
    public static final String appid="571AIOT2021072910102922281";
    public static final String password="OnXE@QFlwt9R";
    public static final String redisKey="dianXinAssesToken";
    public static final String groupId="9911000019160041";//所有卡号均在同一分组下方便维护
    //APPID+YYYYMMDDHHMISS+8位数字序列
    public static String getTransid() {
@ -30,5 +29,6 @@ public class NetworkCardConfig {
    public static final String getPatientContacts="https://api.iot.10086.cn/v5/ec/query/member-voice-whitelist";
    //设置语音白名单 //同一卡号一分钟只能调用该接口一次 一个月仅能删除一次(一次最多删除2个号码)
    public static final String setPatientContacts="https://api.iot.10086.cn/v5/ec/config/member-voice-whitelist";
    //查询语音卡 群组Id
    public static final String getGroupId="https://api.iot.10086.cn/v5/ec/query/group-by-member";
}

+ 6 - 8
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/device/NetworkCardController.java

@ -42,16 +42,15 @@ public class NetworkCardController extends BaseController {
    @ApiOperation("获取物联网卡语音白名单手机号")
    @RequestMapping(value = "getPatientContacts", produces = "application/x-www-form-urlencoded;charset=UTF-8", method = {RequestMethod.POST,RequestMethod.GET})
    public String getPatientContacts(@ApiParam(name="msisdn",value = "",defaultValue = "14809011400")@RequestParam(value ="msisdn",required = false)String msisdn,
    public String getPatientContacts(@ApiParam(name="msisdn",value = "")@RequestParam(value ="msisdn",required = false)String msisdn,
                                     @ApiParam(name="iccid",value = "")@RequestParam(value ="iccid",required = false)String iccid,
                                     @ApiParam(name="imsi",value = "")@RequestParam(value ="imsi",required = false)String imsi,
                                     @ApiParam(name="groupId",value = "默认所有卡号均在9911000019160041一个群组",defaultValue = "9911000019160041")@RequestParam(value ="groupId",required = true,defaultValue = "9911000019160041")String groupId) {
                                     @ApiParam(name="imsi",value = "")@RequestParam(value ="imsi",required = false)String imsi) {
        try {
            //三个参数必须有且仅有一个
            if (StringUtils.isBlank(msisdn)&&StringUtils.isBlank(iccid)&&StringUtils.isBlank(imsi)){
                return error(-1,"参数错误");
            }
            return write(200,"查询成功","data",networkCardService.getPatientContacts(msisdn,iccid,imsi,groupId));
            return write(200,"查询成功","data",networkCardService.getPatientContacts(msisdn,iccid,imsi));
        } catch (Exception e) {
            e.printStackTrace();
            return error(-1,"error");
@ -60,18 +59,17 @@ public class NetworkCardController extends BaseController {
    @ApiOperation("设置物联网卡语音白名单手机号")
    @RequestMapping(value = "setPatientContacts", produces = "application/x-www-form-urlencoded;charset=UTF-8", method = {RequestMethod.POST,RequestMethod.GET})
    public String getPatientContacts(@ApiParam(name="msisdn",value = "",defaultValue = "14809011400")@RequestParam(value ="msisdn",required = false)String msisdn,
    public String getPatientContacts(@ApiParam(name="msisdn",value = "")@RequestParam(value ="msisdn",required = false)String msisdn,
                                     @ApiParam(name="iccid",value = "")@RequestParam(value ="iccid",required = false)String iccid,
                                     @ApiParam(name="imsi",value = "")@RequestParam(value ="imsi",required = false)String imsi,
                                     @ApiParam(name="operType",value = "1新增 4删除")@RequestParam(value ="operType",required = true)String operType,
                                     @ApiParam(name="whiteNumber",value = "成员配置的语音白名单号码 新增时只能传一个,删除时最多两个 用下划线隔开 ")@RequestParam(value ="whiteNumber",required = true)String whiteNumber,
                                     @ApiParam(name="groupId",value = "默认所有卡号均在9911000019160041一个群组",defaultValue = "9911000019160041")@RequestParam(value ="groupId",required = true,defaultValue = "9911000019160041")String groupId) {
                                     @ApiParam(name="whiteNumber",value = "成员配置的语音白名单号码 新增时只能传一个,删除时最多两个 用下划线隔开 ")@RequestParam(value ="whiteNumber",required = true)String whiteNumber) {
        try {
            //三个参数必须有且仅有一个
            if (StringUtils.isBlank(msisdn)&&StringUtils.isBlank(iccid)&&StringUtils.isBlank(imsi)){
                return error(-1,"参数错误");
            }
            return write(200,"查询成功","data",networkCardService.setPatientContacts(msisdn,iccid,imsi,operType,whiteNumber,groupId));
            return write(200,"查询成功","data",networkCardService.setPatientContacts(msisdn,iccid,imsi,operType,whiteNumber));
        } catch (Exception e) {
            e.printStackTrace();
            return error(-1,"error");

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/device/PatientDeviceController.java

@ -88,7 +88,7 @@ public class PatientDeviceController extends BaseController {
    public String envMessage(@ApiParam(name = "patientId", value = "居民id", defaultValue = "1")
                                    @RequestParam(value = "patientId", required = true) String patientId){
        try {
            JSONObject json = patientDeviceService.envMessage(patientId);
            com.alibaba.fastjson.JSONObject json = patientDeviceService.envMessage(patientId);
            return write(200,"获取成功","data",json);
        } catch (Exception ex) {
            return errorResult(ex);

+ 15 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/doctor/DoctorEndpoint.java

@ -43,6 +43,21 @@ public class DoctorEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private DoctorServicePermissionsService doctorServicePermissionsService;
    @GetMapping(value = "updOnline")
    @ApiOperation(value = "更新在线状态")
    public Envelop updOnline(@ApiParam(name = "doctorId", value = "医生id", required = true)
                                 @RequestParam(value = "doctorId",required = true) String doctorId,
                             @ApiParam(name = "online", value = "在线状态 1在线 0离线")
                             @RequestParam(value = "online", required = true)String online){
        try{
            doctorService.updOnline(doctorId,online);
            return success("成功");
        }catch (Exception e){
            return failedException2(e);
        }
    }
    @GetMapping(value = "doctorPage")
    @ApiOperation(value = "获取医生记录分页")
    public PageEnvelop<List<Map<String,Object>>> doctorPage (

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/file_upload/FileUploadEndpoint.java

@ -159,7 +159,7 @@ public class FileUploadEndpoint extends EnvelopRestEndpoint {
        files.setObjectType(objectType);
        files.setSize(file.getSize());
        files.setTaskId(taskId);
        String taskid = fileManageService.chunkUploadByMappedByteBuffer(files);
        String taskid = fileManageService.chunkUploadByMappedByteBuffer(files,null);
        if ("unCompelete".equalsIgnoreCase(taskid)){
            System.out.println("第"+files.getChunk());
            return success("未传完",uploadVO);

+ 14 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/patient/PatientEndpoint.java

@ -202,6 +202,20 @@ public class PatientEndpoint extends EnvelopRestEndpoint {
        }
    }
    @PostMapping(value = "updOnline")
    @ApiOperation(value = "更新在线状态")
    public Envelop updOnline(@ApiParam(name = "patientId", value = "居民id")
                                 @RequestParam(value = "patientId", required = true)String patientId,
                             @ApiParam(name = "online", value = "在线状态 1在线 0离线")
                             @RequestParam(value = "online", required = true)String online){
        try{
            patientService.updOnline(patientId,online);
            return success("成功");
        }catch (Exception e){
            return failedException2(e);
        }
    }
    @PostMapping(value = "updPatientLabel")

+ 14 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/statistics/DetectionPlatformEndpoint.java

@ -18,6 +18,8 @@ import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/***
 * @ClassName: DetectionPlatformEndpoint
 * @Description: 社区云照护平台--物联网健康监测展示平台 v1.0.0
@ -35,6 +37,18 @@ public class DetectionPlatformEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private PatientDeviceService patientDeviceService;
    @ApiOperation("环境信息")
    @RequestMapping(value = "envMessage", method = RequestMethod.GET)
    public ObjEnvelop envMessage(@ApiParam(name = "patientId", value = "居民id", defaultValue = "1")
                             @RequestParam(value = "patientId", required = true) String patientId){
        try {
            return success(patientDeviceService.envMessage(patientId));
        } catch (Exception ex) {
            return failedObjEnvelopException(ex);
        }
    }
    /**************************v1.1.0新增 设备异常动态************************************/
    @GetMapping(value = "getHealthMonitoringListNew")
    @ApiOperation(value = "体征监测/安防监护")

+ 3 - 3
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/contacts/ContactsService.java

@ -351,7 +351,7 @@ public class ContactsService {
        for (Map<String,Object> simTmp : sims) {
            String sim = simTmp.get("sim").toString();
            try {
                JSONArray respons = networkCardService.getPatientContacts(sim, null, null, null);
                JSONArray respons = networkCardService.getPatientContacts(null, sim, null);
                List<Map<String, Object>> memberArr = null;
                if (respons.size() > 0) {
                    respons.getJSONObject(0).getJSONArray("memVoiceWhiteList");
@ -371,8 +371,8 @@ public class ContactsService {
                        }
                    }
                    if (StringUtils.isNotBlank(del_num)) {
                        String response = networkCardService.setPatientContacts(sim, null, null, "4", del_num, null);
                        if (StringUtils.isNotBlank(response)) {//todo 对接时不做
                        String response = networkCardService.setPatientContacts(null, sim, null, "4", del_num);
                        if (StringUtils.isNotBlank(response)) {
                            String[] DelNums = del_num.split("_");
                            for (String tmp:DelNums){
                                if (!delSuccess.contains(tmp)){//本次已删除过 不再作删除操作

+ 42 - 22
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/device/NetworkCardService.java

@ -60,7 +60,7 @@ public class NetworkCardService {
        return assToken;
    }
    public JSONArray getPatientContacts(String msisdn, String iccid, String imsi, String groupId) throws Exception {
    public JSONArray getPatientContacts(String msisdn, String iccid, String imsi) throws Exception {
        List<NameValuePair> params = new ArrayList<>();
        params.add(new BasicNameValuePair("transid", NetworkCardConfig.getTransid()));
        boolean flag = false;
@ -74,24 +74,36 @@ public class NetworkCardService {
        if (!flag&&StringUtils.isNotBlank(imsi)){
            params.add(new BasicNameValuePair("imsi", imsi));
        }
        params.add(new BasicNameValuePair("groupId", NetworkCardConfig.groupId));
        params.add(new BasicNameValuePair("token", getAccessToken()));
        String response = httpClientUtil.get(NetworkCardConfig.getPatientContacts,params,"UTF-8");
        JSONObject responseBody = JSONObject.parseObject(response);
        String groupInfo = httpClientUtil.get(NetworkCardConfig.getGroupId,params,"UTF-8");
        JSONObject responseBody = JSONObject.parseObject(groupInfo);
        if (responseBody.getInteger("status")==0){
            JSONArray tmp = responseBody.getJSONArray("result");
            return tmp;
        }else if (responseBody.getInteger("status")==14008){//未查询到数据白名单列表为空
            return new JSONArray();
        }else{
            throw new Exception(response);
            JSONArray groupList = responseBody.getJSONArray("result").getJSONObject(0).getJSONArray("groupList");
            String groupId = groupList.getJSONObject(0).getString("groupId");
            if (StringUtils.isNotBlank(groupId)){
                params.add(new BasicNameValuePair("groupId", groupId));
                String response = httpClientUtil.get(NetworkCardConfig.getPatientContacts,params,"UTF-8");
                responseBody = JSONObject.parseObject(response);
                if (responseBody.getInteger("status")==0){
                    JSONArray tmp = responseBody.getJSONArray("result");
                    return tmp;
                }else if (responseBody.getInteger("status")==14008){//未查询到数据白名单列表为空
                    return new JSONArray();
                }else{
                    throw new Exception(response);
                }
            }else {
                throw new Exception(groupId);
            }
        }
        return new JSONArray();
    }
    public String setPatientContacts(String msisdn, String iccid, String imsi,String operType,String  whiteNumber,String groupId) throws Exception {
    public String setPatientContacts(String msisdn, String iccid, String imsi,String operType,String  whiteNumber) throws Exception {
        List<NameValuePair> params = new ArrayList<>();
        params.add(new BasicNameValuePair("transid", NetworkCardConfig.getTransid()));
        params.add(new BasicNameValuePair("token", getAccessToken()));
        boolean flag = false;
        if (!flag&&StringUtils.isNotBlank(msisdn)){
            params.add(new BasicNameValuePair("msisdn", msisdn));
@ -103,19 +115,27 @@ public class NetworkCardService {
        if (!flag&&StringUtils.isNotBlank(imsi)){
            params.add(new BasicNameValuePair("imsi", imsi));
        }
        params.add(new BasicNameValuePair("groupId", NetworkCardConfig.groupId));
        params.add(new BasicNameValuePair("token", getAccessToken()));
        params.add(new BasicNameValuePair("operType", operType));
        params.add(new BasicNameValuePair("whiteNumber", whiteNumber));
        String response = httpClientUtil.get(NetworkCardConfig.setPatientContacts,params,"UTF-8");
        JSONObject responseBody = JSONObject.parseObject(response);
        if (responseBody.getInteger("status")==0){
            JSONObject tmp = responseBody.getJSONArray("result").getJSONObject(0);
            return tmp.getString("orderNum");
        String groupInfo = httpClientUtil.get(NetworkCardConfig.getGroupId,params,"UTF-8");
        JSONObject responseBody = JSONObject.parseObject(groupInfo);
        if (responseBody.getInteger("status")==0) {
            JSONArray groupList = responseBody.getJSONArray("result").getJSONObject(0).getJSONArray("groupList");
            String groupId = groupList.getJSONObject(0).getString("groupId");
            if (StringUtils.isNotBlank(groupId)) {
                params.add(new BasicNameValuePair("groupId", groupId));
                params.add(new BasicNameValuePair("operType", operType));
                params.add(new BasicNameValuePair("whiteNumber", whiteNumber));
                String response = httpClientUtil.get(NetworkCardConfig.setPatientContacts,params,"UTF-8");
                responseBody = JSONObject.parseObject(response);
                if (responseBody.getInteger("status")==0||responseBody.getInteger("status")==12108){
                    return "success";
                }else {
                    throw new Exception("物联网卡操作失败:"+response);
                }
            }
        }else {
            throw new Exception("物联网卡操作失败:"+response);
            throw new Exception("物联网卡操作失败:"+groupInfo);
        }
        return null;
    }
}

+ 5 - 4
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/device/PatientDeviceService.java

@ -133,8 +133,8 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
     * 获取烟雾 燃气浓度
     * @param patient
     */
    public JSONObject concentrationMessage(String patient){
        JSONObject result = new JSONObject();
    public com.alibaba.fastjson.JSONObject concentrationMessage(String patient){
        com.alibaba.fastjson.JSONObject result = new com.alibaba.fastjson.JSONObject();
        String sql = "SELECT CONCAT(r.value,r.unit) value from wlyy_patient_device pd,base_device_health_index r " +
                "WHERE pd.device_sn = r.device_sn and pd.`user` = '"+patient+"' ";
@ -162,13 +162,14 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
     * 环境信息
     * @return
     */
    public JSONObject envMessage(String patient){
        JSONObject jsonObject = new JSONObject();
    public com.alibaba.fastjson.JSONObject envMessage(String patient){
        com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject();
        jsonObject.put("concentration",concentrationMessage(patient));
        jsonObject.put("weather",emergencyAssistanceService.getBaiduWeather());
        return jsonObject;
    }
    /**
     * 燃气浓度
     * @param patient

+ 12 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/doctor/CareDoctorService.java

@ -10,6 +10,7 @@ import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
import com.yihu.jw.doctor.dao.DoctorSpecialDiseaseDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.care.doorCoach.BaseDoorCoachOrderDO;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.im.service.ImService;
@ -63,6 +64,17 @@ public class CareDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
    @Autowired
    private BirthdayWishesService birthdayWishesService;
    /**
     * 更新在线状态
     * @param doctorId
     * @param online
     */
    public void updOnline(String doctorId,String online){
        BaseDoctorDO doctorDO = baseDoctorDao.findById(doctorId);
        doctorDO.setOnline(online);
        baseDoctorDao.save(doctorDO);
    }
    /**
     * 获取医生简单详情
     * @return

+ 7 - 11
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/family/PatientFamilyMemberService.java

@ -499,24 +499,20 @@ public class PatientFamilyMemberService extends BaseJpaService<BasePatientFamily
                    obj.put("signType", 0);
                }
                obj.put("state", "1");//0 :未处理;1:已同意;2:已拒绝
                String archive_type = null;
                Integer onLineFlag =0;
                switch (map.get("archive_type").toString()){
                    case "1":
                        archive_type = "older";//老人
                        //老人
                        if(map.get("openid")!=null||"1".equals(map.get("on_line")+"")){
                            onLineFlag=1;
                        }
                        break;
                    case "2":
                        archive_type = "child";//新生儿
                        break;
                }
                if (StringUtils.isNotBlank(archive_type)){
                    String onLineStr = imUtil.findByUserIdAndType(map.get("id").toString(),archive_type);
                    JSONObject oneLineObj = JSONObject.parseObject(onLineStr);
                    if (200 == oneLineObj.getInteger("status")){
                        if (oneLineObj.getInteger("data")>0){
                        //新生儿
                        if(map.get("openid")!=null){
                            onLineFlag=1;
                        }
                    }
                        break;
                }
                obj.put("onLineFlag", onLineFlag);
                resultArray.add(obj);

+ 17 - 11
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/patient/CarePatientService.java

@ -67,8 +67,6 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
    @Autowired
    private PatientFamilyMemberService familyMemberService;
    @Autowired
    private ImUtil imUtil;
    @Autowired
    private BaseDoctorHospitalDao doctorHospitalDao;
    @Value("${wechat.id}")
    private String wxId;
@ -127,6 +125,17 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
        return res;
    }
    /**
     * 更新在线状态
     * @param patientId
     * @param online
     */
    public void updOnline(String patientId,String online){
        BasePatientDO patientDO = patientDao.findById(patientId);
        patientDO.setOnline(online);
        patientDao.save(patientDO);
    }
    /**
     * 居民id
     * @param agent 代理人id
@ -465,8 +474,6 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
            size = 3;
        }
        String online= imUtil.getOnlineListByType(null);
        JSONObject json = JSON.parseObject(online).getJSONObject("data");
        String limit = " limit "+(page-1)*size+","+size;
        String filter ="";
        if("1".equals(type)||StringUtil.isBlank(type)){
@ -492,7 +499,7 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
                filter = " and a.id not in ('"+orgCodes+"')";
            }
            List<Map<String,Object>> list = findOld(name,residentialArea,limit,json,filter);
            List<Map<String,Object>> list = findOld(name,residentialArea,limit,filter);
            re.put("old",list);
            re.put("oldTotal",findOldTotal(name,residentialArea,filter));
        }
@ -522,7 +529,7 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
     */
    public List<Map<String,Object>> findChild(String name,String residentialArea,String limit,String filter1){
        String sql = "SELECT id,name,photo,idcard,CAST(IFNULL(birthday,'') AS char ) birthday,residential_area residentialArea" +
                ",sex,IFNULL(on_line,0) online  from base_patient WHERE archive_type = 2 and del = '1' ";
                ",sex,if(openid is null,0,1) online  from base_patient WHERE archive_type = 2 and del = '1' ";
        if(!StringUtil.isBlank(name)){
            sql+= " and name like '%"+name+"%' ";
        }
@ -565,13 +572,14 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
     * @param name
     * @param residentialArea
     * @param limit
     * @param json
     * @return
     */
    public List<Map<String,Object>> findOld(String name,String residentialArea,String limit,JSONObject json,String filter1){
    public List<Map<String,Object>> findOld(String name,String residentialArea,String limit,String filter1){
        String sql = "SELECT a.id,a.name,a.photo,a.idcard,CAST(IFNULL(a.birthday,'') AS char ) birthday,a.residential_area residentialArea,a.sex " +
                ", GROUP_CONCAT(DISTINCT d.category_code) deviceFlag,IFNULL(on_line,0) online,IFNULL(sign_status,0) signStatus from base_patient a " +
                ", GROUP_CONCAT(DISTINCT d.category_code) deviceFlag,if(openid is null,0,1) onlineWx,IFNULL(a.on_line,0) onlinePad,IFNULL(sign_status,0) signStatus from base_patient a " +
                " LEFT JOIN wlyy_patient_device d on d.`user`=a.id  WHERE a.archive_type = 1 and a.del = '1' ";
        //case 1 WHEN openid is not null then 1 WHEN a.on_line = '1' then 1 ELSE 0 end as online
        if(!StringUtil.isBlank(name)){
            sql+= " and name like '%"+name+"%' ";
        }
@ -596,8 +604,6 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
            Integer lifeCare = jdbcTemplate.queryForObject(sqlLife+filter,Integer.class);
            Integer emergency = jdbcTemplate.queryForObject(sqlEmergency+filter,Integer.class);
            Integer security = jdbcTemplate.queryForObject(sqlSecurity+filter,Integer.class);
            map.put("onlinePad",json.getJSONObject("olderPad").containsKey(paientId));
            map.put("onlineWx",json.getJSONObject("olderWx").containsKey(paientId));
            map.put("lifeCare",lifeCare);
            map.put("emergency",emergency);
            map.put("security",security);

+ 10 - 17
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/patient/OnlineContactService.java

@ -58,12 +58,9 @@ public class OnlineContactService extends BaseJpaService<BasePatientDO, BasePati
                helperObj.put("name",zlyList.get(i).get("name"));
                helperObj.put("photo",zlyList.get(i).get("photo"));
                Integer onLineFlag =0;
                String onLineStr = imUtil.findByUserIdAndType(zlyList.get(i).get("id").toString(),"helper");
                JSONObject oneLineObj = JSONObject.parseObject(onLineStr);
                if (200 == oneLineObj.getInteger("status")){
                    if (oneLineObj.getInteger("data")>0){
                        onLineFlag=1;
                    }
                String onLineStr = zlyList.get(i).get("on_line")+"";
                if ("1".equals(onLineStr)){
                    onLineFlag=1;
                }
                helperObj.put("onLineFlag", onLineFlag);
                list.add(helperObj);
@ -82,24 +79,20 @@ public class OnlineContactService extends BaseJpaService<BasePatientDO, BasePati
                familyObj.put("name",jsList.get(i).get("name"));
                familyObj.put("photo",jsList.get(i).get("photo"));
                familyObj.put("familyRelation",jsList.get(i).get("familyRelation"));
                String archive_type = null;
                Integer onLineFlag =0;
                switch (jsList.get(i).get("archive_type").toString()){
                    case "1":
                        archive_type = "older";//老人
                        //老人
                        if(jsList.get(i).get("openid")!=null||"1".equals(jsList.get(i).get("on_line")+"")){
                            onLineFlag=1;
                        }
                        break;
                    case "2":
                        archive_type = "child";//新生儿
                        break;
                }
                if (StringUtils.isNotBlank(archive_type)){
                    String onLineStr = imUtil.findByUserIdAndType(jsList.get(i).get("id").toString(),archive_type);
                    JSONObject oneLineObj = JSONObject.parseObject(onLineStr);
                    if (200 == oneLineObj.getInteger("status")){
                        if (oneLineObj.getInteger("data")>0){
                        //新生儿
                        if(jsList.get(i).get("openid")!=null){
                            onLineFlag=1;
                        }
                    }
                        break;
                }
                familyObj.put("onLineFlag", onLineFlag);
                list.add(familyObj);

+ 5 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/sign/CapacityAssessmentRecordService.java

@ -88,8 +88,12 @@ public class CapacityAssessmentRecordService extends BaseJpaService<CapacityAsse
        CapacityAssessmentRecordDO recordDO = capacityAssessmentRecordDao.findByPatient(patient,assessmentTime);
        if(recordDO!=null){
            recordDO.setLevelConclusionName(dictService.fingByNameAndCode(ConstantUtil.DICT_LEVEL_CONCLUSION,String.valueOf(recordDO.getLevelConclusion())));
            recordDO.setLivingAbilityName(dictService.fingByNameAndCode(ConstantUtil.DICT_LEVEL_CONCLUSION,String.valueOf(recordDO.getLivingAbility())));
            recordDO.setCognitiveAbilityName(dictService.fingByNameAndCode(ConstantUtil.DICT_LEVEL_CONCLUSION,String.valueOf(recordDO.getCognitiveAbility())));
            recordDO.setSocialAbilityName(dictService.fingByNameAndCode(ConstantUtil.DICT_LEVEL_CONCLUSION,String.valueOf(recordDO.getSocialAbility())));
            recordDO.setComprehensiveAbilityName(dictService.fingByNameAndCode(ConstantUtil.DICT_LEVEL_CONCLUSION,String.valueOf(recordDO.getComprehensiveAbility())));
        }
         return recordDO;
        return recordDO;
    }
    /**

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/DetectionPlatformService.java

@ -138,7 +138,7 @@ public class DetectionPlatformService  {
        object.put("lawOfIOT",getRange( (securityIsUser.intValue() + healthIsUser.intValue() ),( securityAllCount.intValue() + healthAllCount.intValue()  ) ));//物联率
        object.put("isUseAllIot",(securityIsUser.intValue() + healthIsUser.intValue()));//已发放设备
        object.put("allIot",securityAllCount.intValue() + healthAllCount.intValue());//总设备
        String unUseSql = "SELECT * FROM wlyy_devices WHERE is_binding = 1 AND contact_status = 0";//contact_status = 0   失联
        String unUseSql = "SELECT wd.* FROM wlyy_devices wd INNER JOIN wlyy_patient_device pd on wd.device_code =pd.device_sn  WHERE contact_status = 0";//contact_status = 0   失联
        List<Map<String , Object>> unUseList = jdbcTemplate.queryForList(unUseSql);
        int unUseCount = unUseList.size();
        object.put("unUseCount",unUseCount);//设备失联数量

+ 69 - 63
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/StatisticsService.java

@ -8,6 +8,7 @@ import com.yihu.jw.care.vo.NumVo;
import com.yihu.jw.dict.dao.DictHospitalDeptDao;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.login.BaseLoginLogDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.es.util.ElasticsearchUtil;
@ -54,8 +55,6 @@ public class StatisticsService {
    @Autowired
    private StatisticsUtilService statisticsUtilService;
    @Autowired
    private ImUtil imUtil;
    @Autowired
    private BasePatientDao patientDao;
    private static final String defalutArea = "330100";
@ -227,42 +226,45 @@ public class StatisticsService {
        for (BaseLoginLogDO log:loginLogDOs) {
            JSONObject object = new JSONObject();
            object.put("patient",log.getUserId());
            BasePatientDO patient = patientDao.findById(log.getUserId());
            if (patient != null){
                String archive_type = null;
            if("1".equals(log.getLoginType())){
                //user
                object.put("onLineFlag", 0);
                object.put("archiveType","0");
            }else if("2".equals(log.getLoginType())){
                //docotr
                Integer onLineFlag =0;
                if (patient.getArchiveType() == null){
                    continue;
                }
                switch (patient.getArchiveType().toString()){
                    case "1":
                        archive_type = "older";//老人
                        break;
                    case "2":
                        archive_type = "child";//新生儿
                        break;
                }
                object.put("archiveType",patient.getArchiveType());
                object.put("residentialArea",patient.getResidentialArea());
                String onLineStr = imUtil.findByUserIdAndType(log.getUserId().toString(),archive_type);
                JSONObject oneLineObj = JSONObject.parseObject(onLineStr);
                if (200 == oneLineObj.getInteger("status")){
                    if (oneLineObj.getInteger("data")>0){
                        onLineFlag=1;
                    }
                BaseDoctorDO doctorDO = doctorDao.findOne(log.getUserId());
                if(doctorDO!=null&&"1".equals(doctorDO.getOnline())){
                    onLineFlag=1;
                }
                object.put("onLineFlag", onLineFlag);
            } else {
                Integer onLineFlag =0;
                String onLineStr = imUtil.findByUserIdAndType(log.getUserId().toString(),"helper");
                JSONObject oneLineObj = JSONObject.parseObject(onLineStr);
                if (200 == oneLineObj.getInteger("status")){
                    if (oneLineObj.getInteger("data")>0){
                        onLineFlag=1;
                object.put("archiveType","0");
            }else{
                //居民
                BasePatientDO patient = patientDao.findById(log.getUserId());
                if (patient != null){
                    Integer onLineFlag =0;
                    if (patient.getArchiveType() == null){
                        continue;
                    }
                    switch (patient.getArchiveType().toString()){
                        case "1":
                            //老人
                            if(StringUtils.isNotBlank(patient.getOpenid())||"1".equals(patient.getOnline())){
                                onLineFlag=1;
                            }
                            break;
                        case "2":
                            //新生儿
                            if(StringUtils.isNotBlank(patient.getOpenid())){
                                onLineFlag=1;
                            }
                            break;
                    }
                    object.put("archiveType",patient.getArchiveType());
                    object.put("residentialArea",patient.getResidentialArea());
                    object.put("onLineFlag", onLineFlag);
                }
                object.put("onLineFlag", onLineFlag);
                object.put("archiveType","0");
            }
            object.put("name",log.getName());
            object.put("createTime", DateUtil.dateToStrLong(log.getCreateTime()) );
@ -419,37 +421,49 @@ public class StatisticsService {
        Integer olderOn = 0;
        Integer olderWxOn = 0;
        Integer olderPadOn = 0;
        //老人 儿童注册人数
        String pateintFilter = "";
        String sqltmp = "SELECT GROUP_CONCAT(dict_code) orgCodes from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_child' or dict_name = 'jkzl_older'  ";
        List<Map<String,Object>> listtmp =  jdbcTemplate.queryForList(sqltmp);
        //儿童注册人数
        String childFilter = "";
        String sqlChildtmp = "SELECT GROUP_CONCAT(dict_code) orgCodes from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_child' or dict_name = 'jkzl_older'  ";
        List<Map<String,Object>> listtmp =  jdbcTemplate.queryForList(sqlChildtmp);
        if(listtmp.size()>0){
            String orgCodes = String.valueOf(listtmp.get(0).get("orgCodes"));
            orgCodes = orgCodes.replaceAll(",","','");
            pateintFilter = " and id not in ('"+orgCodes+"')";
            childFilter = " and id not in ('"+orgCodes+"')";
        }
        String sqlchild = "SELECT COUNT(*) c,case 1 WHEN openid is not null then 1 WHEN a.on_line = '1' then 1 ELSE 0 end as online from base_patient a WHERE archive_type = 2" +
                " and del='1' "+childFilter+" GROUP BY online";
        List<Map<String,Object>> listChild = jdbcTemplate.queryForList(sqlchild);
        for(Map<String,Object> map:listChild){
            Integer num = Integer.valueOf(map.get("c").toString());
            Integer online = Integer.valueOf(map.get("online").toString());
            if(online == 1){
                childOn += num;
            }else{
                childOff += num;
            }
        }
        //老人
        String oldFilter = "";
        String sqlOldtmp = "SELECT GROUP_CONCAT(dict_code) orgCodes from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_older' ";
        List<Map<String,Object>> listOldtmp =  jdbcTemplate.queryForList(sqlOldtmp);
        if(listOldtmp.size()>0){
            String orgCodes = String.valueOf(listOldtmp.get(0).get("orgCodes"));
            orgCodes = orgCodes.replaceAll(",","','");
            oldFilter = " and a.id not in ('"+orgCodes+"')";
        }
        String sql1 = "SELECT COUNT(*) c,archive_type*1 as archive_type,IFNULL(on_line,0) online from base_patient WHERE archive_type is  not null" +
                " and del='1' "+pateintFilter+" GROUP BY archive_type,on_line";
        String sql1 = "SELECT COUNT(*) c,IFNULL(on_line,0) online from base_patient a WHERE archive_type = 1" +
                " and del='1' "+oldFilter+" GROUP BY on_line";
        List<Map<String,Object>> list1 = jdbcTemplate.queryForList(sql1);
        for(Map<String,Object> map:list1){
            String archive_type = map.get("archive_type").toString();
            Integer num = Integer.valueOf(map.get("c").toString());
            Integer online = Integer.valueOf(map.get("online").toString());
            if("1".equals(archive_type)){
                if(online == 1){
                    olderOn += num;
                }else{
                    olderOff += num;
                }
                continue;
            }
            if("2".equals(archive_type)){
                if(online == 1){
                    childOn += num;
                }else{
                    childOff += num;
                }
            if(online == 1){
                olderOn += num;
            }else{
                olderOff += num;
            }
        }
        olderTotal = olderOff+olderOn;
@ -485,12 +499,6 @@ public class StatisticsService {
        teacherTotal = teacherOff+teacherOn;
        //helper 助老员,teacher 教师,child 幼儿,olderWx 老人公众号,olderPad 老人平板
        String onlineCount = imUtil.getOnlineCountByType("");
        JSONObject jsonObject = JSON.parseObject(onlineCount).getJSONObject("data");
        //olderPad":0,"olderWx":0,"child":0,"teacher":0,"helper":0
        olderWxOn = jsonObject.getInteger("olderWx");
        olderPadOn = jsonObject.getInteger("olderPad");
        result.put("olderTotal",olderTotal);
        result.put("childTotal",childTotal);
        result.put("helperTotal",helperTotal);
@ -498,8 +506,6 @@ public class StatisticsService {
        result.put("helperOn",helperOn);
        result.put("teacherOn",teacherOn);
        result.put("childOn",childOn);
        result.put("olderWxOn",olderWxOn);
        result.put("olderPadOn",olderPadOn);
        result.put("olderOn",olderOn);
        result.put("childOff",childOff);

+ 12 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/third/PatientInfoPlatFormService.java

@ -8,9 +8,11 @@ import com.yihu.jw.care.service.device.PatientHealthIndexService;
import com.yihu.jw.care.service.doorCoach.PatientDoorCoachOrderService;
import com.yihu.jw.care.service.lifeCare.LifeCareOrderService;
import com.yihu.jw.care.service.security.SecurityMonitoringOrderService;
import com.yihu.jw.care.service.sign.CapacityAssessmentRecordService;
import com.yihu.jw.care.service.sign.ServicePackageService;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.care.label.WlyyPatientLabelDO;
import com.yihu.jw.entity.care.sign.CapacityAssessmentRecordDO;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.util.common.IdCardUtil;
@ -51,6 +53,8 @@ public class PatientInfoPlatFormService {
    private PatientDoorCoachOrderService patientDoorCoachOrderService;
    @Autowired
    private PatientHealthIndexService healthIndexService;
    @Autowired
    private CapacityAssessmentRecordService capacityAssessmentRecordService;
    /**
@ -95,6 +99,14 @@ public class PatientInfoPlatFormService {
                result.put("entranceOrgList",getEntranceOrgList(patient));//入园机构列表(报名且录取机构)
                result.put("MonitoringInfo",getMonitoringInfo(patient)); //新生儿入院信息
            }
            //能力评估
            try{
                CapacityAssessmentRecordDO recordDO = capacityAssessmentRecordService.findAssessmentByPatientId(patient);
                result.put("capAssRecordDO",recordDO);
            }catch (Exception e){
                e.printStackTrace();
            }
            return result;
        }
        return null;

+ 2 - 1
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/config/NetworkCardConfig.java

@ -17,7 +17,6 @@ public class NetworkCardConfig {
    public static final String appid="571AIOT2021072910102922281";
    public static final String password="OnXE@QFlwt9R";
    public static final String redisKey="dianXinAssesToken";
    public static final String groupId="9911000019160041";//所有卡号均在同一分组下方便维护
    //APPID+YYYYMMDDHHMISS+8位数字序列
    public static String getTransid() {
@ -30,5 +29,7 @@ public class NetworkCardConfig {
    public static final String getPatientContacts="https://api.iot.10086.cn/v5/ec/query/member-voice-whitelist";
    //设置语音白名单 //同一卡号一分钟只能调用该接口一次 一个月仅能删除一次(一次最多删除2个号码)
    public static final String setPatientContacts="https://api.iot.10086.cn/v5/ec/config/member-voice-whitelist";
    //查询语音卡 群组Id
    public static final String getGroupId="https://api.iot.10086.cn/v5/ec/query/group-by-member";
}

+ 1 - 1
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/device/PatientSosContactsJob.java

@ -64,7 +64,7 @@ public class PatientSosContactsJob implements Job {
                }
                if(null!=sosContactsDO){
                    if (StringUtils.isNotBlank(sim)){
                        JSONObject response = cardService.setPatientContacts(null, sim, null, "1", sos_phone, null);//移动白名单
                        JSONObject response = cardService.setPatientContacts(null, sim, null, "1", sos_phone);//移动白名单
                        //0成功 12102名单重复
                        if (response.getInteger("status")==0||response.getInteger("status")==12108){
                            if (1==sosContactsDO.getSuccessFlag()||0==sosContactsDO.getSuccessFlag()){

+ 40 - 21
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/device/NetworkCardService.java

@ -53,7 +53,7 @@ public class NetworkCardService {
        return assToken;
    }
    public JSONArray getPatientContacts(String msisdn, String iccid, String imsi, String groupId) throws Exception {
    public JSONArray getPatientContacts(String msisdn, String iccid, String imsi) throws Exception {
        List<NameValuePair> params = new ArrayList<>();
        params.add(new BasicNameValuePair("transid", NetworkCardConfig.getTransid()));
        boolean flag = false;
@ -67,19 +67,30 @@ public class NetworkCardService {
        if (!flag&&StringUtils.isNotBlank(imsi)){
            params.add(new BasicNameValuePair("imsi", imsi));
        }
        params.add(new BasicNameValuePair("groupId", NetworkCardConfig.groupId));
        params.add(new BasicNameValuePair("token", getAccessToken()));
        String response = httpClientUtil.get(NetworkCardConfig.getPatientContacts,params,"UTF-8");
        JSONObject responseBody = JSONObject.parseObject(response);
        String groupInfo = httpClientUtil.get(NetworkCardConfig.getGroupId,params,"UTF-8");
        JSONObject responseBody = JSONObject.parseObject(groupInfo);
        if (responseBody.getInteger("status")==0){
            JSONArray tmp = responseBody.getJSONArray("result");
            return tmp;
        }else if (responseBody.getInteger("status")==14008){//未查询到数据白名单列表为空
            return new JSONArray();
        }else{
            throw new Exception(response);
            JSONArray groupList = responseBody.getJSONArray("result").getJSONObject(0).getJSONArray("groupList");
            String groupId = groupList.getJSONObject(0).getString("groupId");
            if (StringUtils.isNotBlank(groupId)){
                params.add(new BasicNameValuePair("groupId", groupId));
                String response = httpClientUtil.get(NetworkCardConfig.getPatientContacts,params,"UTF-8");
                responseBody = JSONObject.parseObject(response);
                if (responseBody.getInteger("status")==0){
                    JSONArray tmp = responseBody.getJSONArray("result");
                    return tmp;
                }else if (responseBody.getInteger("status")==14008){//未查询到数据白名单列表为空
                    return new JSONArray();
                }else{
                    throw new Exception(response);
                }
            }else {
                throw new Exception(groupId);
            }
        }
        return new JSONArray();
    }
    /**
@ -89,13 +100,13 @@ public class NetworkCardService {
     * @param imsi
     * @param operType  1新增 4删除
     * @param whiteNumber
     * @param groupId
     * @return
     * @throws Exception
     */
    public JSONObject setPatientContacts(String msisdn, String iccid, String imsi,String operType,String  whiteNumber,String groupId) throws Exception {
    public JSONObject setPatientContacts(String msisdn, String iccid, String imsi,String operType,String  whiteNumber) throws Exception {
        List<NameValuePair> params = new ArrayList<>();
        params.add(new BasicNameValuePair("transid", NetworkCardConfig.getTransid()));
        params.add(new BasicNameValuePair("token", getAccessToken()));
        boolean flag = false;
        if (!flag&&StringUtils.isNotBlank(msisdn)){
            params.add(new BasicNameValuePair("msisdn", msisdn));
@ -107,15 +118,23 @@ public class NetworkCardService {
        if (!flag&&StringUtils.isNotBlank(imsi)){
            params.add(new BasicNameValuePair("imsi", imsi));
        }
        params.add(new BasicNameValuePair("groupId", NetworkCardConfig.groupId));
        params.add(new BasicNameValuePair("token", getAccessToken()));
        params.add(new BasicNameValuePair("operType", operType));
        params.add(new BasicNameValuePair("whiteNumber", whiteNumber));
        String response = httpClientUtil.get(NetworkCardConfig.setPatientContacts,params,"UTF-8");
        JSONObject responseBody = JSONObject.parseObject(response);
        return responseBody;
        String groupInfo = httpClientUtil.get(NetworkCardConfig.getGroupId,params,"UTF-8");
        JSONObject responseBody = JSONObject.parseObject(groupInfo);
        if (responseBody.getInteger("status")==0) {
            JSONArray groupList = responseBody.getJSONArray("result").getJSONObject(0).getJSONArray("groupList");
            String groupId = groupList.getJSONObject(0).getString("groupId");
            if (StringUtils.isNotBlank(groupId)) {
                params.add(new BasicNameValuePair("groupId", groupId));
                params.add(new BasicNameValuePair("operType", operType));
                params.add(new BasicNameValuePair("whiteNumber", whiteNumber));
                String response = httpClientUtil.get(NetworkCardConfig.setPatientContacts,params,"UTF-8");
                responseBody = JSONObject.parseObject(response);
                return responseBody;
            }
        }
        JSONObject result = new  JSONObject();
        result.put("status",-1);
        return result;
    }
}