Bladeren bron

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

LAPTOP-KB9HII50\70708 3 jaren geleden
bovenliggende
commit
003077d8d8
19 gewijzigde bestanden met toevoegingen van 1105 en 127 verwijderingen
  1. 20 1
      business/es-service/src/main/java/com/yihu/jw/es/util/ElasticsearchUtil.java
  2. 133 5
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/doctor/admin/AdminInfoEndpoint.java
  3. 200 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/doctor/admin/AdminListInfoController.java
  4. 25 4
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/lifeCare/DoctorLifeCareEndpoint.java
  5. 8 3
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/message/DoctorMessageEndpoint.java
  6. 3 3
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/statistics/DetectionPlatformEndpoint.java
  7. 7 6
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/statistics/StatisticsEndpoint.java
  8. 132 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/assistance/EmergencyAssistanceService.java
  9. 164 9
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/lifeCare/LifeCareOrderService.java
  10. 7 6
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/message/DoctorMessageService.java
  11. 1 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/org/BaseOrgService.java
  12. 3 3
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/role/RoleService.java
  13. 27 17
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/security/SecurityMonitoringOrderService.java
  14. 44 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/sign/ArchiveService.java
  15. 32 18
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/DetectionPlatformService.java
  16. 268 38
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/StatisticsService.java
  17. 3 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/WlyygcStatisticsService.java
  18. 26 10
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/third/PatientInfoPlatFormService.java
  19. 2 2
      svr/svr-cloud-job/src/main/resources/system.properties

+ 20 - 1
business/es-service/src/main/java/com/yihu/jw/es/util/ElasticsearchUtil.java

@ -1415,6 +1415,16 @@ public class ElasticsearchUtil {
     *
     */
    public List findDateQuotaLevel2ByKeyGroup(String startDate, String endDate, String area, int level, String index, String timeLevel, String slaveKey1, String slaveKey2, String interval, String lowLevel,String areaLevel,String keyGroup) {
        areaLevel="6";
        if (!index.contains(",")){
            String sqlArea = " select area_level from wlyy_job_config_new where id='"+index+"' ";
            List<String> areaLevels = jdbcTemplate.queryForList(sqlArea,String.class);
            if (areaLevels.size()>0){
                if (StringUtils.isNotBlank(areaLevels.get(0))){
                    areaLevel = areaLevels.get(0);
                }
            }
        }
        //时间格式转换  yyyy-MM-dd转成 2017-07-17T00:00:00+0800
        if (StringUtils.isNotEmpty(startDate)) {
@ -1592,7 +1602,16 @@ public class ElasticsearchUtil {
     * @throws Exception
     */
    public List findDateAllQuotaLevel1(String startDate, String endDate, String area, int level, String index, String timeLevel, String interval, String lowLevel,String areaLevel) throws Exception {
        areaLevel="6";
        if (!index.contains(",")){
            String sqlArea = " select area_level from wlyy_job_config_new where id='"+index+"' ";
            List<String> areaLevels = jdbcTemplate.queryForList(sqlArea,String.class);
            if (areaLevels.size()>0){
                if (StringUtils.isNotBlank(areaLevels.get(0))){
                    areaLevel = areaLevels.get(0);
                }
            }
        }
        //时间格式转换  yyyy-MM-dd转成 2017-07-17T00:00:00+0800
        if (StringUtils.isNotEmpty(startDate)) {
            if (startDate.length() > 10) {

+ 133 - 5
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/doctor/admin/AdminInfoEndpoint.java

@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.service.common.PermissionService;
import com.yihu.jw.care.service.device.DeviceManageService;
import com.yihu.jw.care.service.sign.ArchiveService;
import com.yihu.jw.care.service.statistics.DetectionPlatformService;
import com.yihu.jw.care.service.statistics.StatisticsService;
import com.yihu.jw.restmodel.web.Envelop;
@ -18,6 +19,9 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
 * Created by Bing on 2022/3/21.
 * APP管理员部分
@ -35,6 +39,8 @@ public class AdminInfoEndpoint extends EnvelopRestEndpoint {
    private DetectionPlatformService platformService;
    @Autowired
    private DeviceManageService deviceManageService;
    @Autowired
    private ArchiveService archiveService;
    @GetMapping(value = "getOlderOverview")
    @ApiOperation("获取老人概况")
@ -143,7 +149,8 @@ public class AdminInfoEndpoint extends EnvelopRestEndpoint {
    @GetMapping(value = "getServiceSituation")
    @ApiOperation(value = "设备库存、使用、总备案、照护类型设备数量")
    public ObjEnvelop getServiceSituation() {
    public ObjEnvelop getServiceSituation( @RequestParam(required = true) String area,
                                           @RequestParam(required = true) int level) {
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
@ -151,7 +158,7 @@ public class AdminInfoEndpoint extends EnvelopRestEndpoint {
            if(permissionService.noPermission(0,param)){
                return ObjEnvelop.getError("该操作没有权限");
            }
            return success("查询成功", 200, platformService.getServiceSituation());
            return success("查询成功", 200, platformService.getServiceSituation(area,level));
        } catch (Exception e) {
            return failedObjEnvelopException(e);
        }
@ -159,7 +166,8 @@ public class AdminInfoEndpoint extends EnvelopRestEndpoint {
    @GetMapping(value = "getDeviceCompany")
    @ApiOperation(value = "设备物联率、失联率")
    public ObjEnvelop getDeviceCompany() {
    public ObjEnvelop getDeviceCompany( @RequestParam(required = true) String area,
                                        @RequestParam(required = true) int level) {
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
@ -167,7 +175,7 @@ public class AdminInfoEndpoint extends EnvelopRestEndpoint {
            if(permissionService.noPermission(0,param)){
                return ObjEnvelop.getError("该操作没有权限");
            }
            JSONObject o = platformService.getDeviceComapny();
            JSONObject o = platformService.getDeviceComapny(area,level);
            return success(o);
        } catch (Exception e) {
            return failedObjEnvelopException(e);
@ -323,7 +331,7 @@ public class AdminInfoEndpoint extends EnvelopRestEndpoint {
    public ObjEnvelop statisticsSecurityOlder(
            @RequestParam(required = true) String endDate,
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level,
            @RequestParam(required = true) Integer level,
            @ApiParam(name="type",value="类型:1本周,2本月",defaultValue = "")@RequestParam(required = false) String type) {
        try {
            JSONObject param = new JSONObject();
@ -339,4 +347,124 @@ public class AdminInfoEndpoint extends EnvelopRestEndpoint {
        }
    }
    @ApiOperation("获取各专题绑定人数")
    @ResponseBody
    @RequestMapping(value = "getTopicPeopleNums", method = RequestMethod.GET)
    public ObjEnvelop getTopicPeopleNums(@RequestParam(required = true) String area,
                                         @RequestParam(required = true) Integer level) {
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return ObjEnvelop.getError("该操作没有权限");
            }
            return ObjEnvelop.getSuccess("查询成功",platformService.getTopicPeopleNums(area,level+""));
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "getSignOlder")
    @ApiOperation(value = "管理员查找签约居民")
    public PageEnvelop<List<Map<String,Object>>> getSignOlder (
            @RequestParam(required = true) String area,
            @RequestParam(required = true) Integer level,
            @ApiParam(name = "name", value = "姓名或身份证", required = false)
            @RequestParam(value = "name",required = false) String name,
            @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1")
            @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
            @RequestParam(value = "size") int size) {
        try{
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return PageEnvelop.getError("该操作没有权限");
            }
            return archiveService.adminGetSignOlder(area, level, name, page, size);
        }catch (Exception e){
            return failedPageEnvelopException2(e);
        }
    }
    @GetMapping(value = "getConsultAnalysisRank")
    @ApiOperation(value = "获取咨询排名情况")
    public ObjEnvelop getConsultAnalysisRank(@RequestParam(required = true) String endDate,
                                            @RequestParam(required = true) String area,
                                            @RequestParam(required = true) Integer level,
                                            @ApiParam(name="type",value="咨询类型 23新生儿在线咨询 24老人在线咨询,25老人健康咨询",defaultValue = "")
                                            @RequestParam(required = true) String type) {
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return ObjEnvelop.getError("该操作没有权限");
            }
            return ObjEnvelop.getSuccess("success",statisticsService.getConsultAnalysisRank(endDate,area,level,type));
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "getDoorCoachRank")
    @ApiOperation(value = "获取上门辅导排名")
    public ObjEnvelop getDoorCoachRank(@RequestParam(required = true) String endDate,
                                       @RequestParam(required = true) String area,
                                       @RequestParam(required = true) Integer level) {
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return ObjEnvelop.getError("该操作没有权限");
            }
            return ObjEnvelop.getSuccess("success",statisticsService.getDoorCoachRank(endDate,area,level));
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "getLifeCareRank")
    @ApiOperation(value = "获取生活照料排名")
    public ObjEnvelop getLifeCareRank(@RequestParam(required = true) String endDate,
                                       @RequestParam(required = true) String area,
                                       @RequestParam(required = true) Integer level) {
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return ObjEnvelop.getError("该操作没有权限");
            }
            return ObjEnvelop.getSuccess("success",statisticsService.getLifeCareRank(endDate,area,level));
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "statisticsLifeCareItemAdd")
    @ApiOperation(value = "管理端首页智慧照护生活照料项目新增情况")
    public ObjEnvelop statisticsLifeCareItemAdd(
            @RequestParam(required = true) String endDate,
            @RequestParam(required = true) String area,
            @RequestParam(required = true) Integer level,
            @ApiParam(name="type",value="类型:1本周,2本月",defaultValue = "")@RequestParam(required = false) String type) {
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return ObjEnvelop.getError("该操作没有权限");
            }
            JSONObject result = statisticsService.statisticsLifeCareItemAdd(endDate,area,level, type);
            return success(result);
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
        }
    }
}

+ 200 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/doctor/admin/AdminListInfoController.java

@ -0,0 +1,200 @@
package com.yihu.jw.care.endpoint.doctor.admin;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.service.assistance.EmergencyAssistanceService;
import com.yihu.jw.care.service.common.PermissionService;
import com.yihu.jw.care.service.lifeCare.LifeCareOrderService;
import com.yihu.jw.care.service.statistics.StatisticsService;
import com.yihu.jw.care.service.third.PatientInfoPlatFormService;
import com.yihu.jw.entity.care.message.BaseServiceNews;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping(value = "/admin/list/info")
@Api(description = "管理端   列表展示信息")
public class AdminListInfoController extends EnvelopRestEndpoint {
    @Autowired
    private PatientInfoPlatFormService patientInfoPlatFormService;
    @Autowired
    private StatisticsService statisticsService;
    @Autowired
    private PermissionService permissionService;
    @Autowired
    private LifeCareOrderService lifeCareOrderService;
    @Autowired
    private EmergencyAssistanceService emergencyAssistanceService;
    @GetMapping(value = "/getPatientDeviceInfoWithDetail")
    @ApiOperation("获取居民设备列表(带设备电量、预警情况、是否在线等信息)")
    public ObjEnvelop getPatientDeviceInfoWithDetail(@ApiParam(name="patient",value = "居民id",required = true)
                                                     @RequestParam(value = "patient")String patient){
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return ObjEnvelop.getError("该操作没有权限");
            }
            return ObjEnvelop.getSuccess("查询成功",patientInfoPlatFormService.getPatientDeviceInfoWithDetail(patient));
        }catch (Exception e){
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "/serviceDynamics")
    @ApiOperation("获取动态服务--管理员端")
    public ListEnvelop  serviceDynamics(@ApiParam(name = "page")
                                        @RequestParam(value = "page")Integer page,
                                        @ApiParam(name = "size")
                                        @RequestParam(value = "size")Integer size,
                                        @ApiParam(name = "area")
                                        @RequestParam(value = "area")String area,
                                        @ApiParam(name = "level")
                                        @RequestParam(value = "level")String level){
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return ListEnvelop.getError("该操作没有权限");
            }
            List<BaseServiceNews> baseServiceNews = statisticsService.serviceDynamics(page, size, area, level);
            return ListEnvelop.getSuccess("查询成功",baseServiceNews);
        } catch (Exception e) {
            return failedListEnvelopException2(e);
        }
    }
    @GetMapping("lifeCare/topStatusBarNum")
    @ApiOperation(value = "管理员查询生活照料顶部状态栏订单分类tab")
    public ObjEnvelop adminGetNumGroupByStatus(
            @RequestParam(required = true) String area,
            @RequestParam(required = true) Integer level) {
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return ObjEnvelop.getError("该操作没有权限");
            }
            Map<String, Integer> map = lifeCareOrderService.adminGetNumGroupByStatus(area,level);
            return ObjEnvelop.getSuccess("获取成功",map);
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "lifeCare/queryBriefList")
    @ApiOperation(value = "管理员查询生活照料工单列表")
    public PageEnvelop queryBriefList(
            @RequestParam(required = true) String area,
            @RequestParam(required = true) Integer level,
            @ApiParam(name = "patientName", value = "居民姓名或身份证") @RequestParam(value = "patientName", required = false) String patientName,
            @ApiParam(name = "phone", value = "手机号码") @RequestParam(value = "phone", required = false) String phone,
            @ApiParam(name = "status", value = "工单状态") @RequestParam(value = "status", required = false) Integer status,
            @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1") @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15") @RequestParam(value = "size") int size) {
        try{
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return PageEnvelop.getError("该操作没有权限");
            }
            return lifeCareOrderService.adminQueryBriefList(area,level, patientName, phone, status, page, size);
        }catch (Exception e){
            return failedPageEnvelopException2(e);
        }
    }
    @GetMapping(value = "/getAdminOrderList")
    @ApiOperation(value = "获取紧急安防工单--管理员端")
    public ListEnvelop getEmeAndSecuOrderList(@ApiParam(name="patientId",value = "居民id")
                                              @RequestParam(value = "patientId",required = false) String patientId,
                                              @ApiParam(name="patientName",value = "患者姓名/身份证")
                                              @RequestParam(value = "patientName",required = false) String patientName,
                                              @ApiParam(name="doctor",value = "查看医生")
                                              @RequestParam(value = "doctor",required = true) String doctor,
                                              @ApiParam(name="status",value = "工单状态-2误报警-1已取消0已完成1申请中")
                                              @RequestParam(value = "status",required = false) String status,
                                              @ApiParam(name="svrDesc",value = "安防工单服务类型 关联security_server_dict字典")
                                              @RequestParam(value = "svrDesc",required = false)String svrDesc,
                                              @ApiParam(name="orderType",value = "工单类型,20紧急呼叫22安防工单")
                                              @RequestParam(value = "orderType",required = true)String orderType,
                                              @ApiParam(name="page",value = "page")
                                              @RequestParam(value = "page",required = true) Integer page,
                                              @ApiParam(name="pageSize",value = "pageSize")
                                              @RequestParam(value = "pageSize",required = true) Integer pageSize,
                                              @ApiParam(name = "area")
                                                  @RequestParam(value = "area")String area,
                                              @ApiParam(name = "level")
                                                  @RequestParam(value = "level")String level
    ){
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return ListEnvelop.getError("该操作没有权限");
            }
            if (StringUtils.isBlank(patientId)&&StringUtils.isBlank(doctor)){
                return ListEnvelop.getError("请求参数错误");
            }
            return ListEnvelop.getSuccess( "查询成功",emergencyAssistanceService.getAdminEmeAndSecuOrderList(orderType,patientId,patientName,doctor,status,page,pageSize,svrDesc,area,level));
        }catch (Exception e){
            return failedListEnvelopException2(e);
        }
    }
    @GetMapping(value = "/getEmeAndSecuOrderTab")
    @ApiOperation(value = "获取安防与紧急呼叫工单Tab")
    public ObjEnvelop getEmeAndSecuOrderTab(@ApiParam(name="doctor",value = "查看医生")
                                            @RequestParam(value = "doctor",required = true) String doctor,
                                            @ApiParam(name="status",value = "工单状态")
                                            @RequestParam(value = "status",required =false) String status,
                                            @ApiParam(name = "area")
                                                @RequestParam(value = "area") String area,
                                            @ApiParam(name = "level")
                                                @RequestParam(value = "level") String level) {
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return ObjEnvelop.getError("该操作没有权限");
            }
            return ObjEnvelop.getSuccess( "查询成功",emergencyAssistanceService.getAdminEmeAndSecuOrderTab(doctor,status,area,level));
        }catch (Exception e){
            return failedObjEnvelopException2(e);
        }
    }
}

+ 25 - 4
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/lifeCare/DoctorLifeCareEndpoint.java

@ -43,9 +43,10 @@ public class DoctorLifeCareEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "phone", value = "手机号码") @RequestParam(value = "phone", required = false) String phone,
            @ApiParam(name = "status", value = "工单状态") @RequestParam(value = "status", required = false) Integer status,
            @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1") @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15") @RequestParam(value = "size") int size) {
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15") @RequestParam(value = "size") int size,
            @ApiParam(name = "code", value = "服务项类型", required = false) @RequestParam(value = "code",required = false) String code) {
        try{
            JSONObject result = lifeCareOrderService.queryBriefList(doctorCode, patientName, phone, status, page, size);
            JSONObject result = lifeCareOrderService.queryBriefList(doctorCode, patientName, phone, status, page, size,code);
            if (result.getIntValue(ResponseContant.resultFlag) == ResponseContant.fail) {
                return PageEnvelop.getError(result.getString(ResponseContant.resultMsg));
            }
@ -60,9 +61,11 @@ public class DoctorLifeCareEndpoint extends EnvelopRestEndpoint {
    @ApiOperation(value = "顶部状态栏订单分类tab")
    public ObjEnvelop topStatusBarNum(
            @ApiParam(name = "doctor", value = "医生code")
            @RequestParam(value = "doctor", required = true) String doctor) {
            @RequestParam(value = "doctor", required = true) String doctor,
            @ApiParam(name = "code", value = "服务项类型", required = false)
            @RequestParam(value = "code",required = false) String code) {
        try {
            Map<String, Integer> map = lifeCareOrderService.getNumGroupByStatus(doctor);
            Map<String, Integer> map = lifeCareOrderService.getNumGroupByStatus(doctor,code);
            return ObjEnvelop.getSuccess("获取成功",map);
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
@ -212,4 +215,22 @@ public class DoctorLifeCareEndpoint extends EnvelopRestEndpoint {
        }
    }
    @GetMapping("wisdomCare")
    @ApiOperation(value = "医生端-智慧照护")
    public Envelop wisdomCare(@ApiParam(value = "医生id", name = "orgCode")
                              @RequestParam(value = "orgCode", required = true) String orgCode){
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("doctorId",permissionService.getUID());
        if (permissionService.noPermission(1, jsonObject)) {
            return ObjEnvelop.getError("该操作没有权限",-1);
        }
        try {
           return ObjEnvelop.getSuccess("获取成功",lifeCareOrderService.wisdomCare(orgCode),200) ;
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
        }
    }
}

+ 8 - 3
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/message/DoctorMessageEndpoint.java

@ -104,16 +104,21 @@ public class DoctorMessageEndpoint extends EnvelopRestEndpoint {
        }
    }
    @GetMapping(value = "getDeviceLostMessageList")
    @GetMapping(value = "/getDeviceLostMessageList")
    @ApiOperation("获取设备离线通知列表")
    public ObjEnvelop getDeviceLostMessageList(@ApiParam(name="doctor",value = "医生ID,当前查看列表医生",required = true)
                                          @RequestParam(value = "doctor")String doctor,
                                               @ApiParam(name = "deviceCode",value = "设备类型code",required = false)
                                               @RequestParam(value = "deviceCode",required = false)String deviceCode,
                                               @ApiParam(name = "deviceName",value = "设备名字",required = false)
                                               @RequestParam(value = "deviceName",required = false)String deviceName){
                                               @RequestParam(value = "deviceName",required = false)String deviceName,
                                               @ApiParam(name = "area")
                                                   @RequestParam(value = "area") String area,
                                               @ApiParam(name = "level")
                                                   @RequestParam(value = "level") String level
                                               ){
        try {
            return ObjEnvelop.getSuccess("查询成功",doctorMessageService.getDeviceLostMessageList(doctor,deviceCode,deviceName));
            return ObjEnvelop.getSuccess("查询成功",doctorMessageService.getDeviceLostMessageList(doctor,deviceCode,deviceName,area,level));
        }catch (Exception e){
            return failedObjEnvelopException2(e);
        }

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

@ -74,7 +74,7 @@ public class DetectionPlatformEndpoint extends EnvelopRestEndpoint {
    @ApiOperation(value = "设备物联率、失联率")
    public ObjEnvelop getDeviceCompany() {
        try {
            JSONObject o = platformService.getDeviceComapny();
            JSONObject o = platformService.getDeviceComapny(null,null);
            return success(o);
        } catch (Exception e) {
            return failedObjEnvelopException(e);
@ -280,7 +280,7 @@ public class DetectionPlatformEndpoint extends EnvelopRestEndpoint {
    @ApiOperation(value = "物联网检测大屏,设备库存、使用、总备案、照护类型设备数量")
    public ObjEnvelop getServiceSituation() {
        try {
            return success("查询成功", 200, platformService.getServiceSituation());
            return success("查询成功", 200, platformService.getServiceSituation(null,null));
        } catch (Exception e) {
            return failedObjEnvelopException(e);
        }
@ -388,7 +388,7 @@ public class DetectionPlatformEndpoint extends EnvelopRestEndpoint {
    @RequestMapping(value = "getTopicPeopleNums", method = RequestMethod.GET)
    public ObjEnvelop getTopicPeopleNums() {
        try {
            return ObjEnvelop.getSuccess("查询成功",platformService.getTopicPeopleNums());
            return ObjEnvelop.getSuccess("查询成功",platformService.getTopicPeopleNums(null,null));
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
        }

+ 7 - 6
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/statistics/StatisticsEndpoint.java

@ -233,13 +233,14 @@ public class StatisticsEndpoint extends EnvelopRestEndpoint {
    @GetMapping(value = "getAllDeviceLostMessage")
    @ApiOperation("设备分析--异常消息通知")
    public PageEnvelop getAllDeviceLostMessage(@RequestParam(required = false) String area,
                                              @RequestParam(required = false) Integer deviceCode,
                                              @RequestParam(required = false) String deviceName,
                                              @RequestParam(required = false) Integer page,
                                              @RequestParam(required = false) Integer size){
                                               @RequestParam(required = false) Integer level,
                                               @RequestParam(required = false) String deviceCode,
                                               @RequestParam(required = false) Integer page,
                                               @RequestParam(required = false) Integer size
    ) {
        try {
           return statisticsService.getAllDeviceLostMessage(area,deviceCode,deviceName,page,size);
        }catch (Exception e){
            return statisticsService.getAllDeviceLostMessage(area, page, size);
        } catch (Exception e) {
            return failedPageEnvelopException2(e);
        }
    }

+ 132 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/assistance/EmergencyAssistanceService.java

@ -21,6 +21,7 @@ import com.yihu.jw.care.service.device.PatientDeviceService;
import com.yihu.jw.care.service.doctor.DoctorServicePermissionsService;
import com.yihu.jw.care.service.family.PatientFamilyMemberService;
import com.yihu.jw.care.service.message.BaseServiceNewsService;
import com.yihu.jw.care.service.role.RoleService;
import com.yihu.jw.care.service.sign.ServicePackageService;
import com.yihu.jw.care.util.ConstantUtil;
import com.yihu.jw.care.util.CountDistance;
@ -139,6 +140,8 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
    private ServicePackageService servicePackageService;
    @Autowired
    private BaseServiceNewsService baseServiceNewsService;
    @Autowired
    private RoleService roleService;
    /**
     * 获取百度天气
@ -1653,4 +1656,133 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
    }
    /*******************************************管理员端使用********************************************/
    public List<Map<String,Object>> getAdminEmeAndSecuOrderList(String orderType,String patient,String patientName,String doctor,String status,Integer page,Integer pageSize,String svrDesc,String area,String level){
        String olderFilter = roleService.getOlderRoleSQL(area,level+"");
        page = page>0?page-1:0;
        List<Map<String,Object>> result = new ArrayList<>();
        String filter = " ";
        if (StringUtils.isNotBlank(patient)){
            filter += " and ord.patient ='"+patient+"' ";
        }
        if (StringUtils.isNotBlank(patientName)){
            filter += " and ord.patient_name like'%"+patientName+"%' ";
        }
        if (StringUtils.isNotBlank(status)){
            filter += " and ord.status ='"+status+"' ";
        }
        String sql = " ";
        if (StringUtils.isNotBlank(orderType)){
            List<String> orderTypes = Arrays.asList(orderType.split(",").clone());
            if (orderTypes.contains("20")){
                sql += "select '20' as OrderType,ord.id,ord.patient,ord.patient_name patientName,ord.doctor,ord.status,ord.doctor_name," +
                        "'紧急呼叫' as serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time ,case p.sex when 1 then '男' when 2 then '女' else p.sex end as sex," +
                        " TIMESTAMPDIFF(YEAR,p.birthday,now()) as age,ord.order_source orderSource,p.mobile,p.photo,ord.session_id sessionId " +
                        "from base_emergency_assistance_order ord  INNER JOIN base_patient p on ord.patient = p.id  INNER JOIN base_patient_helper ph on p.id = ph.patient and ph.del=1  " +
                        " where ph.doctor='"+doctor+"' "+filter +" "+olderFilter.replace("{patient}","p.id");
            }
            if (orderTypes.contains("20")&&orderTypes.contains("22")){
                sql += " UNION ";
            }
            if (orderTypes.contains("22")){
                sql += " select  '22' as 'OrderType',ord.id,ord.patient,ord.patient_name patientName,ord.doctor,ord.status,ord.doctor_name," +
                        "ord.serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time ,case p.sex when 1 then '男' when 2 then '女' else p.sex end as sex, " +
                        "TIMESTAMPDIFF(YEAR,p.birthday,now()) as age,ord.order_source orderSource,p.mobile,p.photo,CONCAT(ord.patient,'_22') sessionId  " +
                        " from base_security_monitoring_order ord " +
                        " INNER JOIN base_patient p on ord.patient = p.id INNER JOIN base_patient_helper ph on p.id = ph.patient and ph.del=1 " +
                        " where ph.doctor='"+doctor+"'  "+filter +" "+olderFilter.replace("{patient}","p.id");
                if(StringUtils.isNotBlank(svrDesc)){
                    sql += " and ord.serve_desc = '"+svrDesc+"' ";
                }
            }
            sql += " order by create_time desc limit "+page*pageSize+","+pageSize;
            result =   jdbcTemplate.queryForList(sql);
        }
        return result;
    }
    public JSONObject getAdminEmeAndSecuOrderTab(String doctor,String status,String area,String level){
        String olderFilter = roleService.getOlderRoleSQL(area,level+"");
        JSONObject result = new JSONObject();
        JSONObject eme = new JSONObject();
        JSONObject secu = new JSONObject();
        JSONObject emeAndSecu = new JSONObject();
        /************************紧急********/
        eme.put("status_-2",0);//误报警
        eme.put("status_-1",0);//已取消
        eme.put("status_0",0);//已完成
        eme.put("status_1",0);//预警中
        String sql = " select ord.status,count(distinct ord.id) count from base_emergency_assistance_order ord INNER JOIN base_patient_helper ph on ord.patient = ph.patient and ph.del=1 ";
        if (StringUtils.isNotBlank(status)){
            sql += " and ord.status='"+status+"' ";
        }
        sql +=  "  where ph.doctor='"+doctor+"' "+olderFilter.replace("{patient}","ph.patient")+" group by ord.status  ";
        List<Map<String,Object>> sqlResult = jdbcTemplate.queryForList(sql);
        for (Map<String,Object> map:sqlResult){
            eme.put("status_"+map.get("status"),map.get("count"));
        }
        Integer All = 0;
        Set<String> keySet = eme.keySet();
        for (String key : keySet){
            All+=eme.getInteger(key);
        }
        eme.put("all",All);
        result.put("eme",eme);
        /************************ 安防********/
        secu.put("status_-2", 0);//误报警
        secu.put("status_-1", 0);//已取消
        secu.put("status_0", 0);//已完成
        secu.put("status_1", 0);//预警中
        secu.put("status_all", 0);//
        secu.put("svr_all", 0);//
        Map<String, String> serverTmp = new HashMap<>();
        sql = " select py_code,dict_value from wlyy_hospital_sys_dict where dict_name='security_server_dict' ";
        List<Map<String, Object>> servers = jdbcTemplate.queryForList(sql);
        for (Map<String, Object> server : servers) {
            secu.put("svr_" + server.get("py_code").toString(), 0);
            serverTmp.put(server.get("dict_value").toString(), server.get("py_code").toString());
        }
        sql = "select ord.status,ord.serve_desc,count(distinct ord.id) count from base_security_monitoring_order ord INNER JOIN base_patient p on p.id = ord.patient " +
                " INNER JOIN base_patient_helper ph on ord.patient = ph.patient and ph.del=1  where ph.doctor='"+doctor+"'  ";
        String fliter = " group by ord.status";
        sqlResult = jdbcTemplate.queryForList(sql +olderFilter.replace("{patient}","ph.patient")+ fliter);
        for (Map<String, Object> map : sqlResult) {
            secu.put("status_" + map.get("status"), secu.getInteger("status_" + map.get("status")) + Integer.parseInt(map.get("count").toString()));
            secu.put("status_all", secu.getInteger("status_all") + Integer.parseInt(map.get("count").toString()));
        }
        if (StringUtils.isNotBlank(status)){
            sql += " and ord.status='"+status+"' ";
        }
        fliter = " group by ord.status,ord.serve_desc ";
        sqlResult = jdbcTemplate.queryForList(sql + fliter);
        String pyCode = "";
        for (Map<String, Object> map : sqlResult) {
            pyCode = serverTmp.get(map.get("serve_desc")) == null ? null : serverTmp.get(map.get("serve_desc")).toString();
            if (StringUtils.isNotBlank(pyCode)) {
                secu.put("svr_" + pyCode, secu.getInteger("svr_" + pyCode) + Integer.parseInt(map.get("count").toString()));
                secu.put("svr_all", secu.getInteger("svr_all") + Integer.parseInt(map.get("count").toString()));
            }
        }
        result.put("secu",secu);
        /************************ 安防、紧急总数********/
        sql = " select count(distinct ord.id)  from base_emergency_assistance_order ord INNER JOIN base_patient p on ord.patient = p.id and p.del=1 INNER JOIN base_patient_helper ph on ord.patient = ph.patient and ph.del=1 " +
                "  where ph.doctor='"+doctor+"' " ;
        Long emeCount = jdbcTemplate.queryForObject(sql+olderFilter.replace("{patient}","p.id"),Long.class);
        emeAndSecu.put("emeAll",emeCount);
        sql = "select count(distinct ord.id) count from base_security_monitoring_order ord INNER JOIN base_patient p on ord.patient = p.id and p.del=1 " +
                " INNER JOIN base_patient_helper ph on p.id = ph.patient and ph.del=1  where ph.doctor='"+doctor+"'  ";
        fliter = "  ";
        Long secuCount = jdbcTemplate.queryForObject(sql+olderFilter.replace("{patient}","p.id"),Long.class);
        emeAndSecu.put("secuAll",secuCount);
        result.put("emeAndSecu",emeAndSecu);
        return result;
    }
}

+ 164 - 9
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/lifeCare/LifeCareOrderService.java

@ -8,6 +8,7 @@ import com.yihu.jw.care.service.common.OrderNoService;
import com.yihu.jw.care.service.doctor.DoctorServicePermissionsService;
import com.yihu.jw.care.service.message.BaseServiceNewsService;
import com.yihu.jw.care.service.pay.PayService;
import com.yihu.jw.care.service.role.RoleService;
import com.yihu.jw.care.util.MessageUtil;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
@ -94,6 +95,8 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
    private BaseAdminServiceDynamicDao baseAdminServiceDynamicDao;
    @Autowired
    private DoctorServicePermissionsService doctorServicePermissionsService;
    @Autowired
    private RoleService roleService;
    //是否开启支付 false 不需要支付
    public static final boolean  isNeedPay = false;
@ -210,13 +213,18 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
     * @param doctor
     * @return
     */
    public Map<String, Integer> getNumGroupByStatus(String doctor) {
    public Map<String, Integer> getNumGroupByStatus(String doctor,String code) {
        List<BaseDoctorHospitalDO> doctorHospitalDOs = doctorHospitalDao.findByDoctorCode(doctor);
        String hospital = doctorHospitalDOs.get(0).getOrgCode();
        String filter = " ";
        if (StringUtils.isNotBlank(code)){
            filter = " and fed.code='"+code+"' ";
        }
        String sql = "SELECT a.status, COUNT(DISTINCT a.id) as num FROM base_life_care_order a " ;
        String sql = "SELECT a.status, COUNT(DISTINCT a.id) as num FROM base_life_care_order a " +
                " INNER JOIN base_life_care_fee_detail fed on a.id = fed.order_id " ;
        sql +=  "  WHERE  a.hospital = ? and a.pay_status>0 and a.status<>0 group BY a.status";
        sql +=  "  WHERE  a.hospital = ? and a.pay_status>0 and a.status<>0 "+filter+" group BY a.status";
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql, hospital);
        Map<String, Integer> map = new HashMap<>();
        //状态 待服务 1、已完成 2 、已取消 -1 已签到 3
@ -234,13 +242,43 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
        return map;
    }
    /**
     * 管理员端生活照料获取顶部状态栏订单各分类总条数
     * @param area
     * @param level 1省2市3区县4机构5团队6医生
     * @return
     */
    public Map<String, Integer> adminGetNumGroupByStatus(String area,Integer level) {
       String olderFilter = roleService.getOlderRoleSQL(area,level+"");
        String sql = "SELECT a.status, COUNT(DISTINCT a.id) as num FROM base_life_care_order a " +
                " WHERE  1=1 and a.pay_status>0 and a.status<>0 " ;
        sql +=  olderFilter.replace("{patient}","a.patient")+ "   group BY a.status";
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
        Map<String, Integer> map = new HashMap<>();
        //状态 待服务 1、已完成 2 、已取消 -1 已签到 3
        map.put("1",0);
        map.put("2",0);
        map.put("3",0);
        map.put("-1",0);
        int total = 0;
        for (Map<String, Object> one:list){
            map.put(String.valueOf(one.get("status")), Integer.valueOf(String.valueOf(one.get("num"))));
            total+=Integer.valueOf(String.valueOf(one.get("num")));
        }
        map.put("total", total);
        return map;
    }
    /**
     * 医生/助老员-查询-工单列表
     *
     * @return
     */
    public JSONObject queryBriefList(String doctorCode,String name,String phone,Integer status,int page, int size) {
    public JSONObject queryBriefList(String doctorCode,String name,String phone,Integer status,int page, int size,String code) {
        JSONObject result = new JSONObject();
        List<Map<String,Object>> sqlResultlist = new ArrayList<>();
        //服务权限
@ -286,15 +324,21 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
                "  o.type as type, " +
                "  o.serve_lon as lon, " +
                "  o.serve_lat as lat, " +
                "  o.`status` as status " +
                "  o.`status` as status, " +
                "  fd.`code`" +
                " FROM " +
                " ( base_life_care_order o " +
                " LEFT JOIN base_patient p ON o.patient = p.id ) "+
                " LEFT JOIN base_patient p ON o.patient = p.id " +
                " INNER JOIN base_life_care_fee_detail fd ON o.id = fd.order_id ) "+
                " WHERE " +
                "  o.hospital = '{hospital}' " +buffer+
                " AND ( o.`status` = {status} OR -100 = {status} ) and o.pay_status>0 and o.status<>0 " +
                " ORDER BY o.create_time desc " +
                " LIMIT {start},{end};";
                " AND ( o.`status` = {status} OR -100 = {status} ) and o.pay_status>0 and o.status<>0 ";
        if (StringUtils.isNotBlank(code)){
            sql +=" AND fd.`code` = '"+code+"'";
        }
        sql +=" ORDER BY o.create_time desc " +
               "  LIMIT {start},{end};";
        String finalSql = sql.replace("{hospital}", hospital)
                .replace("{status}", String.valueOf(status))
@ -306,10 +350,15 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
                " FROM  " +
                "   base_life_care_order o  " +
                " LEFT JOIN base_patient p ON o.patient = p.id " +
                " INNER JOIN base_life_care_fee_detail fd ON o.id = fd.order_id" +
                " WHERE  " +
                "  o.hospital = '{hospital}' " +buffer+
                " AND (o.`status` = {status} or -100 = {status}) and o.pay_status>0 and o.status<>0 ";
        if (StringUtils.isNotBlank(code)){
            countSql +=" AND fd.`code` = '"+code+"'";
        }
        String finqlCountSql = countSql.replace("{hospital}", hospital)
                .replace("{status}", String.valueOf(status));
@ -343,6 +392,79 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
        return result;
    }
    /**
     * 管理员-查询-工单列表
     * @param area
     * @param level 1省2市3区县4机构5团队6医生
     */
    public PageEnvelop<List<Map<String,Object>>> adminQueryBriefList(String area,Integer level,String name,String phone,Integer status,int page, int size) {
        List<Map<String,Object>> sqlResultlist = new ArrayList<>();
        String olderFilter = roleService.getOlderRoleSQL(area,level+"");
        name = null == name ? "" : name;
        phone = null == phone ? "" : phone;
        status = null == status ? -100 : status;
        int start = 0 == page ? page++ : (page - 1) * size;
        int end = 0 == size ? 15 : size;
        StringBuffer buffer = new StringBuffer();
        if (StringUtils.isNoneBlank(name)){
            buffer.append(" AND (o.`patient_name` like '%"+name+"%' or p.idcard like '%"+name+"%')");
        }else if (StringUtils.isNoneBlank(phone)){
            buffer.append(" AND o.`proxy_patient_phone` like '%"+phone+"%'");
        }
        String sql = "SELECT " +
                "  p.name AS patientName, " +
                "  p.photo AS photo, " +
                "  p.idcard," +
                "  case p.sex  " +
                "  when 1 then '男'  " +
                "  when 2 then '女' " +
                "  end AS sex, " +
                "  TIMESTAMPDIFF(year,p.birthday,NOW()) AS age," +
                "  o.id as orderId, " +
                "  o.patient_phone as phone, " +
                "  o.proxy_patient as proxyPatient, " +
                "  o.patient as patient, " +
                "  o.number as number, " +
                "  o.patient_expected_serve_time as serveTime, o.doctor, o.doctor_name as doctorName, " +
                "  o.serve_address as address, " +
                "  o.type as type, " +
                "  o.serve_lon as lon, " +
                "  o.serve_lat as lat, " +
                "  o.`status` as status " +
                " FROM " +
                " ( base_life_care_order o " +
                " LEFT JOIN base_patient p ON o.patient = p.id ) "+
                " WHERE 1=1 " +olderFilter.replace("{patient}","o.patient")+
                "  " +buffer+
                " AND ( o.`status` = {status} OR -100 = {status} ) and o.pay_status>0 and o.status<>0 " +
                " ORDER BY o.create_time desc " +
                " LIMIT {start},{end};";
        String finalSql = sql.replace("{status}", String.valueOf(status))
                .replace("{start}", String.valueOf(start))
                .replace("{end}", String.valueOf(end));
        String countSql = "SELECT  " +
                "   count(o.id)  " +
                " FROM  " +
                "   base_life_care_order o  " +
                " LEFT JOIN base_patient p ON o.patient = p.id " +
                " WHERE  1=1 " +olderFilter.replace("{patient}","o.patient")+
                " " +buffer+
                " AND (o.`status` = {status} or -100 = {status}) and o.pay_status>0 and o.status<>0 ";
        String finqlCountSql = countSql.replace("{status}", String.valueOf(status));
        sqlResultlist = jdbcTemplate.queryForList(finalSql);
        for (Map<String,Object> orderDO:sqlResultlist){
            orderDO.put("feeDetails",getFeeDetails(orderDO.get("orderId").toString()));
        }
        Long count;
        count = jdbcTemplate.queryForObject(finqlCountSql, Long.class);
        return PageEnvelop.getSuccessListWithPage("success",sqlResultlist,page,size,count);
    }
    /**
     * 查找服务项字典
     *   v1.7.1 机构的生活照料服务项目必须配置才有返回
@ -951,4 +1073,37 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
        }
    }
    /**
     * 智慧照护
     */
    public List<Map<String, Object>> wisdomCare(String orgCode){
        String sql = "SELECT " +
                " dict. CODE, " +
                " dict. NAME, " +
                " dict.life_care_img, " +
                " dict.pad_icon_img, " +
                " A.* " +
                " FROM " +
                " base_life_care_item_dict dict " +
                " LEFT JOIN ( " +
                " SELECT " +
                " count(DISTINCT o.id) total, " +
                " fd. CODE " +
                " FROM " +
                " base_life_care_order o " +
                " INNER JOIN base_life_care_fee_detail fd ON o.id = fd.order_id " +
                " WHERE " +
                " o.`status` = 1 " +
                " AND o.hospital = '"+orgCode+"' " +
                " GROUP BY " +
                " fd.`code` " +
                " ) A ON dict. CODE = A. CODE " +
                " WHERE " +
                " dict.del = 1 " +
                " AND dict.org_code = '"+orgCode+"'";
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
        return list;
    }
}

+ 7 - 6
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/message/DoctorMessageService.java

@ -8,13 +8,13 @@ import com.yihu.jw.care.dao.message.OrgNoticeDao;
import com.yihu.jw.care.dao.message.UserNoticeDao;
import com.yihu.jw.care.dao.security.SecurityMonitoringOrderDao;
import com.yihu.jw.care.service.doctor.DoctorServicePermissionsService;
import com.yihu.jw.care.service.role.RoleService;
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.doctor.BaseDoctorHospitalDO;
import com.yihu.jw.entity.base.notice.UserNoticeDO;
import com.yihu.jw.entity.care.message.OrgNoticeDO;
import com.yihu.jw.entity.hospital.message.SystemMessageDO;
import com.yihu.jw.hospital.message.dao.SystemMessageDao;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.restmodel.web.PageEnvelop;
@ -52,6 +52,8 @@ public class DoctorMessageService {
    private BaseDoctorHospitalDao doctorHospitalDao;
    @Autowired
    private DoctorServicePermissionsService doctorServicePermissionsService;
    @Autowired
    private RoleService roleService;
    /**
     *
@ -317,12 +319,11 @@ public class DoctorMessageService {
        return orgNoticeDao.findOne(noticeId);
    }
    public  List<Map<String, Object>> getDeviceLostMessageList(String doctor,String deviceCode,String deviceName){
        //List<SystemMessageDO> systemMessageDOS = messageDao.getByReceiverAndType(doctor,"43");
        String sql =  "select DISTINCT GROUP_CONCAT(sm.id) id,sm.type AS type,sm.title AS title,sm.sender AS sender,sm.sender_name AS senderName,\n" +
    public  List<Map<String, Object>> getDeviceLostMessageList(String doctor,String deviceCode,String deviceName,String area,String level){
       // List<SystemMessageDO> systemMessageDOS = messageDao.getByReceiverAndType(doctor,"43");
        String sql =  "select DISTINCT sm.id as id,sm.type AS type,sm.title AS title,sm.sender AS sender,sm.sender_name AS senderName,\n" +
                "  sm.receiver AS receiver,sm.receiver_name AS receiver_name,sm.relation_code AS relationCode,\n" +
                "  sm.data AS data,sm.is_read AS isRead,sm.create_time AS createTime,sm.sender_photo AS sender_photo\n" +
                "  sm.data AS data,sm.is_read AS isRead,DATE_FORMAT(sm.create_time,'%Y-%m-%d') AS createTime,sm.sender_photo AS sender_photo,pd.category_code,pd.device_name" +
                "  from base_system_message sm LEFT JOIN wlyy_patient_device pd ON sm.relation_code = pd.device_sn where sm.receiver = '"+doctor+"' AND sm.type=43 and sm.del=1 ";
        if (StringUtils.isNotBlank(deviceCode)&&!"''".equals(deviceCode)){

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/org/BaseOrgService.java

@ -35,7 +35,7 @@ public class BaseOrgService extends BaseJpaService<BaseOrgDO, BaseOrgDao> {
            sql += " and a.code = '"+orgCode+"' ";
        }
        sql += "a.code NOT IN (SELECT DISTINCT dict_code from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_org' and dict_code is not null)";
        sql += " and a.code NOT IN (SELECT DISTINCT dict_code from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_org' and dict_code is not null)";
        return jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(BaseOrgDO.class));
    }

+ 3 - 3
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/role/RoleService.java

@ -171,10 +171,10 @@ public class RoleService extends BaseJpaService<DoctorRole, DoctorRoleDao> {
     */
    public String getOlderRoleSQL(String area,String level){
        String areaFilter = "";
        String olderFilter = "";
        String olderFilter = " and {patient} not in (SELECT dict_code FROM `base`.`wlyy_hospital_sys_dict` WHERE `dict_name` = 'jkzl_older' or dict_name='jkzl_child') ";
        if (StringUtils.isNotBlank(area)){
            if ("330100".equals(area)){
                return "";
                return olderFilter;
            }else {
                if ("4".equals(level)){
@ -188,7 +188,7 @@ public class RoleService extends BaseJpaService<DoctorRole, DoctorRoleDao> {
                            " base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i,base_service_package pack " +
                            " where sr.id = r.sign_id and sr.status=1 and r.service_package_id = i.service_package_id and r.service_package_id = pack.id  and i.del = 1 " +
                            " and sr.`status`=1 and CONVERT(sr.patient USING utf8)  = {patient} " +
                            " and CONVERT(sr.patient USING utf8) not in (SELECT dict_code FROM `base`.`wlyy_hospital_sys_dict` WHERE `dict_name` = 'jkzl_older' or dict_name='jkzl_child') "+areaFilter+" ) ";
                            " and {patient} not in (SELECT dict_code FROM `base`.`wlyy_hospital_sys_dict` WHERE `dict_name` = 'jkzl_older' or dict_name='jkzl_child') "+areaFilter+" ) ";
                }
            }
        }

+ 27 - 17
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/security/SecurityMonitoringOrderService.java

@ -2736,32 +2736,42 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
                            tmp.put("eCall", 0);
                            tmp.put("orderId", "");
                        }
                        BasePatientDO patientDO = basePatientDao.findById(id);
                        if (null != patientDO) {
                            if (StringUtils.isNotBlank(patientDO.getLatLon())) {
                                String[] latLon = patientDO.getLatLon().toString().split(",");
                                if (StringUtils.isNotBlank(patientDO.getHomeLatLon())&&latLon.length==2) {
                                    String homeLatLon = patientDO.getHomeLatLon();
                                    double homeLat = Double.parseDouble(homeLatLon.split(",")[0]);
                                    double homeLon = Double.parseDouble(homeLatLon.split(",")[1]);
                                    double homeDistance = countDistance.getDistance(Double.parseDouble(latLon[0]), Double.parseDouble(latLon[1]),
                                            homeLat, homeLon);
                                    if (homeDistance * 1000 > 50) {
                                        tmp.put("atHome", false);
                        sql = "select pd.device_sn from wlyy_patient_device pd INNER JOIN dm_device dd " +
                                " on pd.device_id = dd.id where  pd.user = '" + patientTmp.get("id").toString() + "' and pd.del=0  and pd.category_code =4 ";
                        List<String> deviceSns = jdbcTemplate.queryForList(sql, String.class);
                        if (deviceSns.size() > 0) {
                            JSONObject objectTmp = patientMonitoringInfo(patientTmp.get("id").toString(), "preventLost", deviceSns.get(0),false);
                            tmp.put("atHome", objectTmp.get("atHome"));
                            tmp.put("address", objectTmp.get("address"));
                        }else {
                            BasePatientDO patientDO = basePatientDao.findById(id);
                            if (null != patientDO) {
                                if (StringUtils.isNotBlank(patientDO.getLatLon())) {
                                    String[] latLon = patientDO.getLatLon().toString().split(",");
                                    if (StringUtils.isNotBlank(patientDO.getHomeLatLon())&&latLon.length==2) {
                                        String homeLatLon = patientDO.getHomeLatLon();
                                        double homeLat = Double.parseDouble(homeLatLon.split(",")[0]);
                                        double homeLon = Double.parseDouble(homeLatLon.split(",")[1]);
                                        double homeDistance = countDistance.getDistance(Double.parseDouble(latLon[0]), Double.parseDouble(latLon[1]),
                                                homeLat, homeLon);
                                        if (homeDistance * 1000 > 50) {
                                            tmp.put("atHome", false);
                                        } else {
                                            tmp.put("atHome", true);
                                        }
                                    } else {
                                        tmp.put("atHome", true);
                                    }
                                    String locationAddress = LatitudeUtils.getLocationAddress(latLon[0], latLon[1]);
                                    tmp.put("address", locationAddress);
                                } else {
                                    tmp.put("atHome", true);
                                    tmp.put("address", "");
                                }
                                String locationAddress = LatitudeUtils.getLocationAddress(latLon[0], latLon[1]);
                                tmp.put("address", locationAddress);
                            } else {
                                tmp.put("atHome", true);
                                tmp.put("address", "");
                            }
                        }
                        object.put("info", tmp);
                        break;
                    default:
                        String patientId = (String) list.get(i).get("id");

+ 44 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/sign/ArchiveService.java

@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.dao.apply.PatientBedApplyDao;
import com.yihu.jw.care.dao.sign.ArchiveDao;
import com.yihu.jw.care.service.device.DeviceService;
import com.yihu.jw.care.service.role.RoleService;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
@ -53,6 +54,8 @@ public class ArchiveService extends BaseJpaService<ArchiveDO, ArchiveDao> {
    private DeviceService deviceService;
    @Autowired
    private BasePatientService basePatientService;
    @Autowired
    private RoleService roleService;
    /**
@ -306,4 +309,45 @@ public class ArchiveService extends BaseJpaService<ArchiveDO, ArchiveDao> {
        Long count = jdbcTemplate.queryForObject(countSql+filter,Long.class);
        return PageEnvelop.getSuccessListWithPage("success",list,page,size,count);
    }
    /**
     * 管理员查找签约居民
     * @param area
     * @param level 1省2市3区县4机构5团队6医生
     * @param name
     * @param page
     * @param size
     * @return
     */
    public PageEnvelop<List<Map<String,Object>>> adminGetSignOlder(String area,Integer level,String name,Integer page,Integer size){
        page = page>0?page-1:0;
        String olderFilter = roleService.getOlderRoleSQL(area,level+"");
        String sql = "SELECT DISTINCT p.id,p.name,p.photo,p.sex,p.archive_type as archiveType,p.idcard,p.mobile,p.openid,p.pad_imei padImei " ;
        sql +=",(select COUNT(*) from wlyy_patient_device a where a.`user` = p.id and a.del=0) deviceFlag ";
        String countSql = "SELECT count(DISTINCT p.id) ";
        String filters ="";
        filters = " from base_patient p,wlyy_patient_label l WHERE p.del=1 and p.id = l.patient and l.label_type = 1 "
                +olderFilter.replace("{patient}","p.id") ;
        if(StringUtils.isNotBlank(name)){
            filters += " and (p.name like '%"+name+"%' or p.idcard like '%"+name+"%') ";
        }
        String orderBy = " ORDER BY p.id asc " +
                "LIMIT "+ page * size + "," + size;
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql+filters+orderBy);
        for (Map<String,Object> map : list){
            String idcard = map.get("idcard").toString();
            map.put("age", IdCardUtil.getAgeForIdcard(idcard));
            map.put("deviceType",deviceService.getPatientDeviceCategoryCode(map.get("id").toString()));
            //签约医生标识
            List<Map<String,Object>> doctorList = servicePackageService.getServerDoctorAll(map.get("id").toString(),"0","1");
            List<Map<String,Object>> helperList = servicePackageService.getServerDoctorAll(map.get("id").toString(),"0","2");
            map.put("helper", helperList.size()>0?1:0);
            map.put("doctor", doctorList.size()>0?1:0);
        }
        Long count = jdbcTemplate.queryForObject(countSql+filters,Long.class);
        return PageEnvelop.getSuccessListWithPage("success",list,page,size,count);
    }
}

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

@ -7,6 +7,7 @@ import com.yihu.jw.care.dao.device.DeviceDetailDao;
import com.yihu.jw.care.dao.device.PatientDeviceDao;
import com.yihu.jw.care.service.device.DeviceService;
import com.yihu.jw.care.service.device.PatientDeviceService;
import com.yihu.jw.care.service.role.RoleService;
import com.yihu.jw.care.service.sign.ServicePackageService;
import com.yihu.jw.entity.base.org.BaseOrgDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
@ -64,6 +65,8 @@ public class DetectionPlatformService  {
    private DeviceService deviceService;
    @Autowired
    private ServicePackageService servicePackageService;
    @Autowired
    private RoleService roleService;
    /**
@ -114,7 +117,9 @@ public class DetectionPlatformService  {
        }
    }
    public JSONObject getDeviceComapny(){
    public JSONObject getDeviceComapny(String area,Integer level){
        String olderFilter = roleService.getOlderRoleSQL(area,level+"");
        String filter = "";
        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);
@ -141,7 +146,7 @@ public class DetectionPlatformService  {
        }
        String securitySql = "SELECT allCount,isUse,(allCount - isUse) inventory FROM \n" +
                "(SELECT COUNT(1) allCount FROM wlyy_devices WHERE device_type = 1) allCount,\n" +
                "(SELECT COUNT(DISTINCT pd.device_sn) isUse FROM wlyy_devices d,wlyy_patient_device pd WHERE d.device_type = 1 AND d.device_code = pd.device_sn and pd.user "+filter+" AND pd.del = 0) isUse";
                "(SELECT COUNT(DISTINCT pd.device_sn) isUse FROM wlyy_devices d,wlyy_patient_device pd WHERE d.device_type = 1 AND d.device_code = pd.device_sn and pd.user "+filter+" AND pd.del = 0 "+olderFilter.replace("{patient}","pd.user")+" ) isUse";
        List<Map<String , Object>> securityList = jdbcTemplate.queryForList(securitySql);
        if (securityList.size() > 0) {
            object.put("securityAllCount",securityList.get(0).get("allCount")); //安防设备总量
@ -154,7 +159,7 @@ public class DetectionPlatformService  {
        }
        String healthSql = "SELECT allCount,isUse,(allCount - isUse) inventory FROM \n" +
                "(SELECT COUNT(1) allCount FROM wlyy_devices WHERE device_type = 0) allCount,\n" +
                "(SELECT COUNT(DISTINCT pd.device_sn) isUse FROM wlyy_devices d,wlyy_patient_device pd WHERE d.device_type = 0 AND d.device_code = pd.device_sn and pd.user "+filter+" AND pd.del = 0) isUse";
                "(SELECT COUNT(DISTINCT pd.device_sn) isUse FROM wlyy_devices d,wlyy_patient_device pd WHERE d.device_type = 0 AND d.device_code = pd.device_sn and pd.user "+filter+" AND pd.del = 0 "+olderFilter.replace("{patient}","pd.user")+" ) isUse";
        List<Map<String , Object>> healthList = jdbcTemplate.queryForList(healthSql);
        if (healthList.size() > 0) {
            object.put("healthAllCount",healthList.get(0).get("allCount"));//健康设备总量
@ -172,7 +177,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 DISTINCT wd.device_code FROM wlyy_devices wd INNER JOIN wlyy_patient_device pd on wd.device_code =pd.device_sn and pd.user "+filter+"  WHERE contact_status = 0";//contact_status = 0   失联
        String unUseSql = "SELECT DISTINCT wd.device_code FROM wlyy_devices wd INNER JOIN wlyy_patient_device pd on wd.device_code =pd.device_sn and pd.user "+filter+" "+olderFilter.replace("{patient}","pd.user")+" WHERE contact_status = 0";//contact_status = 0   失联
        List<Map<String , Object>> unUseList = jdbcTemplate.queryForList(unUseSql);
        int unUseCount = unUseList.size();
        object.put("unUseCount",unUseCount);//设备失联数量 失联分子
@ -489,8 +494,9 @@ public class DetectionPlatformService  {
        return object;
    }
    public JSONObject getServiceSituation(){
    public JSONObject getServiceSituation(String area,Integer level){
        JSONObject object = new JSONObject();
        String olderFilter = roleService.getOlderRoleSQL(area,level+"");
        /*****设备分类****/
        // SELECT hsd.`value` dict_value,aa.count FROM base_system_dict_entry hsd LEFT JOIN (SELECT serve_desc,COUNT(1) count FROM base_security_monitoring_order GROUP BY serve_desc)aa ON hsd.`value` = aa.serve_desc WHERE hsd.remark = 'security'
        String passportTypeSql = "SELECT sde.`value`,COUNT(d.id) count,GROUP_CONCAT(DISTINCT d.category_code SEPARATOR ',') AS category_code,GROUP_CONCAT(DISTINCT d.model SEPARATOR ',') AS model FROM base_system_dict_entry sde LEFT JOIN dm_device d ON FIND_IN_SET(sde.`code`,d.service_topic) WHERE sde.remark = 'security' GROUP BY sde.`value` ";
@ -507,7 +513,7 @@ public class DetectionPlatformService  {
                model = (String) passportType.get(i).get("model");
                model = model.replace(",","','");
                if ( count.intValue() > 0) {
                    useSql = "SELECT COUNT(DISTINCT device_sn) FROM wlyy_patient_device WHERE category_code IN ("+ passportType.get(i).get("category_code") +") AND del = 0";
                    useSql = "SELECT COUNT(DISTINCT device_sn) FROM wlyy_patient_device pd WHERE category_code IN ("+ passportType.get(i).get("category_code") +") AND del = 0 "+olderFilter.replace("{patient}","pd.user");
                    use = jdbcTemplate.queryForObject(useSql,Integer.class);
                    passportType.get(i).put("use",use);//使用
                    allSql = "SELECT COUNT(DISTINCT device_code) FROM wlyy_devices WHERE device_model IN ('"+ model +"')";
@ -611,20 +617,28 @@ public class DetectionPlatformService  {
     * 睡眠监护  绑定床带 category_code:13
     * 燃气泄漏监护  绑定燃气预警器 category_code:14
     */
    public JSONObject getTopicPeopleNums(){
    public JSONObject getTopicPeopleNums(String area,String level){
        JSONObject result = new JSONObject();
        String filter = " ";
        String sqltmp = "SELECT GROUP_CONCAT(dict_code) usrCodes from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_child' or dict_name = 'jkzl_older' ";
        List<Map<String, Object>> listtmp = jdbcTemplate.queryForList(sqltmp);
        if (listtmp.size() > 0) {
            String orgCodes = String.valueOf(listtmp.get(0).get("usrCodes"));
            if (StringUtils.isNotBlank(orgCodes)) {
                orgCodes = orgCodes.replaceAll(",", "','");
                filter = " and pd.user not in ('" + orgCodes + "') ";
            }
        String sql = " select dict_code from wlyy_hospital_sys_dict where dict_name='security_topic_dict' ";
        List<String> sqlList = jdbcTemplate.queryForList(sql,String.class);
        for (String tmp:sqlList){
            result.put(tmp,0);
        }
        String sql = " select count(DISTINCT pd.user) total,pd.category_code from wlyy_patient_device pd where pd.del=0  " +
                " and pd.category_code in (4,7,12,13,14,15) " + filter+
        result.put("emergencyAssistance",0);
        String olderFilter = roleService.getOlderRoleSQL(area,level);
//        String filter = " ";
//        String sqltmp = "SELECT GROUP_CONCAT(dict_code) usrCodes from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_child' or dict_name = 'jkzl_older' ";
//        List<Map<String, Object>> listtmp = jdbcTemplate.queryForList(sqltmp);
//        if (listtmp.size() > 0) {
//            String orgCodes = String.valueOf(listtmp.get(0).get("usrCodes"));
//            if (StringUtils.isNotBlank(orgCodes)) {
//                orgCodes = orgCodes.replaceAll(",", "','");
//                filter = " and pd.user not in ('" + orgCodes + "') ";
//            }
//        }
        sql = " select count(DISTINCT pd.user) total,pd.category_code from wlyy_patient_device pd where pd.del=0  " +
                " and pd.category_code in (4,7,12,13,14,15) " + olderFilter.replace("{patient}","pd.user")+
                " group by pd.category_code ";
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        for (Map<String,Object> tmp:list){

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

@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.dao.device.PatientDeviceDao;
import com.yihu.jw.care.dao.message.BaseServiceNewsDao;
import com.yihu.jw.care.service.patient.CarePatientService;
import com.yihu.jw.care.service.role.RoleService;
import com.yihu.jw.care.util.CommonUtil;
@ -15,7 +16,9 @@ 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.entity.care.assistance.EmergencyAssistanceDO;
import com.yihu.jw.entity.care.device.DevicePatientDevice;
import com.yihu.jw.entity.care.message.BaseServiceNews;
import com.yihu.jw.es.es.ElasticSearchHelperUtil;
import com.yihu.jw.es.util.ElasticsearchUtil;
import com.yihu.jw.es.util.SaveModel;
@ -25,7 +28,6 @@ import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.utils.StringUtil;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
@ -86,6 +88,8 @@ public class StatisticsService {
    private CarePatientService carePatientService;
    @Autowired
    private RoleService roleService;
    @Autowired
    private BaseServiceNewsDao baseServiceNewsDao;
    private static final String defalutArea = "330100";
@ -469,8 +473,8 @@ public class StatisticsService {
            }
        }
        String sql = "select * from base_login_log where create_time>='" + dateStr + "' " + filter + " order by create_time desc limit " + (page - 1) * size + "," + size;
        String sqlCount = "select count(id) from base_login_log where create_time>='" + dateStr + "' " + filter;
        String sql = "select * from base_login_log where login_type<>1 and create_time>='" + dateStr + "' " + filter + " order by create_time desc limit " + (page - 1) * size + "," + size;
        String sqlCount = "select count(id) from base_login_log where login_type<>1 and create_time>='" + dateStr + "' " + filter;
        Long count = jdbcTemplate.queryForObject(sqlCount, Long.class);
        List<BaseLoginLogDO> loginLogDOs = jdbcTemplate.query(sql, new BeanPropertyRowMapper(BaseLoginLogDO.class));
        for (BaseLoginLogDO log : loginLogDOs) {
@ -903,7 +907,6 @@ public class StatisticsService {
        res.put("inTime", saveModel3.getResult2().longValue());
        res.put("noReplyRate", statisticsUtilService.getTwoRange(saveModel2.getResult2(), saveModel1.getResult2()));
        res.put("inTimeRate", statisticsUtilService.getTwoRange(saveModel3.getResult2(), saveModel1.getResult2()));
        return res;
    }
@ -1098,7 +1101,8 @@ public class StatisticsService {
        if ("37".equals(index)) {
            archiType = "1";
        }
        List<SaveModel> sexList = elasticsearchUtil.findDateQuotaLevel2ByKeyGroup(endDate, endDate, defalutArea, level, "51", SaveModel.timeLevel_DDL, null, archiType, null, null, "2", "1");
        List<SaveModel> sexList = elasticsearchUtil.findDateQuotaLevel2ByKeyGroup(endDate, endDate, area, level,
                "51", SaveModel.timeLevel_DDL, null, archiType, null, null, null, "1");
        JSONArray sexArray = new JSONArray();
        for (int i = 0; i < sexList.size(); i++) {
            SaveModel saveModel = sexList.get(i);
@ -1420,7 +1424,7 @@ public class StatisticsService {
    /**
     * 管理端首页安防预警统计分析
     */
    public JSONObject statisticsSecurityOlder(String endDate, String area, int level, String type) throws Exception {
    public JSONObject statisticsSecurityOlder(String endDate, String area, Integer level, String type) throws Exception {
        JSONObject res = new JSONObject();
        SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevels(endDate, endDate, area, level, "46", SaveModel.timeLevel_DDL, null, null, "-2,0,1" );
@ -1490,31 +1494,12 @@ public class StatisticsService {
        return result;
    }
    public PageEnvelop getAllDeviceLostMessage(String area, Integer deviceCode,String deviceName,Integer page, Integer size) {
    public PageEnvelop getAllDeviceLostMessage(String area, Integer page, Integer size) {
        page = page > 0 ? page - 1 : 0;
        String sql = "";
        boolean dc = null==deviceCode;
        boolean dn = StringUtils.isBlank(deviceName);
        if (dc ||dn) {
             sql = "select GROUP_CONCAT(id) id,type,title,sender,sender_name senderName,\n" +
                    "receiver,receiver_name receiverName,relation_code relationCode,\n" +
                    "data,is_read isRead,create_time createTime,sender_photo\n" +
                    "from base_system_message where type=43 and del=1 GROUP BY relation_code order by createTime desc ";
        }else {
             sql = "select DISTINCT GROUP_CONCAT(sm.id) id,sm.type AS type,sm.title AS title,sm.sender AS sender,sm.sender_name AS senderName,\n" +
                    " sm.receiver AS receiver,sm.receiver_name AS receiver_name,sm.relation_code AS relationCode,\n" +
                    " sm.data AS data,sm.is_read AS isRead,sm.create_time AS createTime,sm.sender_photo AS sender_photo\n" +
                    " from base_system_message sm LEFT JOIN wlyy_patient_device pd ON sm.relation_code = pd.device_sn where sm.type=43 and sm.del=1  ";
            if (dc) {
                sql +=" AND pd.category_code = '"+deviceCode+"'";
            }
            if(dn){
                sql +=" and pd.device_name LIKE '%"+deviceName+"%'";
            }
             sql +="GROUP BY sm.relation_code order by sm.create_time desc";
        }
        String sql = "select GROUP_CONCAT(id) id,type,title,sender,sender_name senderName,\n" +
                "receiver,receiver_name receiverName,relation_code relationCode,\n" +
                "data,is_read isRead,create_time createTime,sender_photo\n" +
                "from base_system_message where type=43 and del=1 GROUP BY relation_code order by createTime desc ";
        Long count = jdbcTemplate.queryForObject(" select count(id) from (" + sql + ")A ", Long.class);
        sql += " limit " + page * size + "," + size;
@ -1857,8 +1842,7 @@ public class StatisticsService {
    public JSONObject patientAnalysisDP(String endDate, String area, int level, String index) throws Exception {
        JSONObject res = new JSONObject();
        String areaLevel = "6";
        if ("42".equals(index)) {
            areaLevel = "4";
        if ("42".equals(index)) {//幼儿
            //新生儿
            //是否入学
            List<SaveModel> statusList = elasticsearchUtil.findDateAllQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, null, null, areaLevel);
@ -1872,13 +1856,13 @@ public class StatisticsService {
                statusArray.add(json);
            }
            res.put("statusList", statusArray);
        } else {
        } else {//老人
            //老人
            //能力评估 从签约时服务标签取
            res.put("levelList", cloudCareForTheElderly(endDate, area, level));
            //居民健康标签
            List<SaveModel> list = elasticsearchUtil.findDateAllQuotaLevel1(endDate, endDate, area, level, "47", SaveModel.timeLevel_DDL, null, null, "2");
            List<SaveModel> list = elasticsearchUtil.findDateAllQuotaLevel1(endDate, endDate, area, level, "47", SaveModel.timeLevel_DDL, null, null, areaLevel);
            JSONArray labelArr = new JSONArray();
            Long total = 0l;
            for (int i = 0; i < list.size(); i++) {
@ -1903,7 +1887,7 @@ public class StatisticsService {
            //年龄分布 50
//            ageList = elasticsearchUtil.findDateAllQuotaLevel1(endDate, endDate, area, level, "50", SaveModel.timeLevel_DDL,null,null,"2");
            List<SaveModel> ageList = elasticsearchUtil.findDateAllQuotaLevel1(endDate, endDate, area, level, "50", SaveModel.timeLevel_DDL, null, null, "2");
            List<SaveModel> ageList = elasticsearchUtil.findDateAllQuotaLevel1(endDate, endDate, area, level, "50", SaveModel.timeLevel_DDL, null, null, areaLevel);
            JSONArray ageArray = new JSONArray();
            for (int i = 0; i < ageList.size(); i++) {
                SaveModel saveModel = ageList.get(i);
@ -2411,17 +2395,21 @@ public class StatisticsService {
    public PageEnvelop<List<Map<String,Object>>> getOlderTeamListWithPage(String area,String level,Integer page,Integer size) throws Exception {
        List<Map<String,Object>> teamList  = new ArrayList<>();
        page = page>0?page-1:0;
        String areaFilter = " ";
        if ("5".equals(level)){
            areaFilter += " and te.id='"+area+"' ";
        }
        String sql = " select count(distinct org.code) from " +
                " base_service_package pack INNER JOIN base_org org on pack.org_code = org.code " +
                "INNER JOIN base_team te on te.org_code = org.`code` " +
                " where  org.del=1 and org.type=3 and te.del=1 and org.code not in " +
                " (select dict_code from wlyy_hospital_sys_dict where dict_name='jkzl_org') ";
                " (select dict_code from wlyy_hospital_sys_dict where dict_name='jkzl_org') "+areaFilter;
        Long totalNum = jdbcTemplate.queryForObject(sql,Long.class);
        sql = " select distinct org.code as orgCode,org.name as orgName,te.id as teamId,te.name as teamName from " +
                " base_service_package pack INNER JOIN base_org org on pack.org_code = org.code " +
                "INNER JOIN base_team te on te.org_code = org.`code` " +
                " where  org.del=1 and org.type=3 and te.del=1 and org.code not in " +
                " (select dict_code from wlyy_hospital_sys_dict where dict_name='jkzl_org') order by org.code asc " +
                " (select dict_code from wlyy_hospital_sys_dict where dict_name='jkzl_org') "+areaFilter+" order by org.code asc " +
                "limit "+(page*size)+","+size ;
        teamList = jdbcTemplate.queryForList(sql);
        for (Map<String,Object> map:teamList){
@ -2512,7 +2500,7 @@ public class StatisticsService {
            sql = " SELECT count(o.consult) FROM wlyy_consult_team o INNER JOIN base_doctor d on o.doctor = d.id " +
                    " where 1=1 and o.type = 25 AND d.del = 1  "+olderFilter.replace("{patient}","o.patient")+"  ";
            doctorServiceCount += jdbcTemplate.queryForObject(sql,Long.class);
            map.put("doctorServiceTotal",doctorServiceCount);//社工数量
            map.put("doctorServiceTotal",doctorServiceCount);//医生服务数量
        }
        return PageEnvelop.getSuccessListWithPage("success",teamList,page,size,totalNum);
    }
@ -2561,4 +2549,246 @@ public class StatisticsService {
        }
        return list;
    }
    public List<BaseServiceNews> serviceDynamics(Integer page,Integer size,String area,String level){
        List<String> jkzlPatients = jdbcTemplate.queryForList("SELECT dict_code FROM wlyy_hospital_sys_dict WHERE dict_name LIKE '%jkzl%' ",String.class);
        List<BaseServiceNews> result = new ArrayList<>();
        String olderFilter = roleService.getOlderRoleSQL(area,level);
        String baseServiceSql = "select sn.* from base_service_news sn where sn.type = 1 " + olderFilter.replace("{patient}","sn.code");
        if ("330100".equals(area)){
                baseServiceSql +=" UNION SELECT sn.* FROM base_service_news sn WHERE sn.type =2 ";
        }else {
            // 1省 2市 3区县 4机构 5团队 6医生
            baseServiceSql +=" UNION SELECT sn.* FROM base_service_news sn LEFT JOIN base_team_member tm ON sn.`code` = tm.doctor_code WHERE sn.type =2  AND tm.del =1 ";
            if ("4".equals(level)){
                baseServiceSql +=" AND tm.org_code ='"+area+"'";
            }
            if ("5".equals(level)){
                baseServiceSql += " AND tm.team_code ='"+area+"'";
            }
        }
        baseServiceSql += " ORDER BY create_time DESC  LIMIT "+(page-1)*size+","+size+"";
        List<BaseServiceNews> list = jdbcTemplate.query(baseServiceSql,new BeanPropertyRowMapper<>(BaseServiceNews.class));
        for (BaseServiceNews tmp:list){
            if (jkzlPatients.contains(tmp.getCode())){
                continue;
            }
            BasePatientDO patientDO = patientDao.findById(tmp.getCode());
            if (null!=patientDO){
                tmp.setArchiveType(patientDO.getArchiveType());
                tmp.setResidentialArea(patientDO.getResidentialArea());
            }
            String relationCode = tmp.getRelationCode();
            if (StringUtils.isNotBlank(relationCode)){
                if ("1".equals(tmp.getType())){//上门
                    String sql = " select group_concat(Distinct name SEPARATOR '、') from base_door_coach_fee_detail where  order_id ='"+relationCode+"' and status =1 ";
                    List<String> serviceItems = jdbcTemplate.queryForList(sql,String.class);
                    if (serviceItems.size()>0){
                        tmp.setServeItems(serviceItems.get(0));
                    }
                }
                if ("3".equals(tmp.getType())||"4".equals(tmp.getType())){//生活照料
                    String sql = " select group_concat(Distinct name SEPARATOR '、') from base_life_care_fee_detail where order_id ='"+relationCode+"' ";
                    List<String> serviceItems = jdbcTemplate.queryForList(sql,String.class);
                    if (serviceItems.size()>0){
                        tmp.setServeItems(serviceItems.get(0));
                    }
                }
                if ("5".equals(tmp.getType())){
                    String sql = "";
                }
            }
            result.add(tmp);
        }
        return result;
    }
    /**
     * 咨询排名情况
     * @param endDate
     * @param area
     * @param level 1省2市3区县4机构5团队6医生
     * @param type 咨询类型 23新生儿在线咨询 24老人在线咨询,25老人健康咨询
     * @return
     */
    public JSONArray getConsultAnalysisRank(String endDate,String area,int level,String type) throws Exception {
        JSONArray result = new JSONArray();
        String totalIndex = "";
        String noReplyIndex = "";
        String inTimeIndex = "";
        String lowLevel = "";
        if ("23".equals(type)){
            totalIndex = "28";
            noReplyIndex = "29";
            inTimeIndex = "30";
            lowLevel = "4";
        }else if ("24".equals(type)){
            totalIndex = "31";
            noReplyIndex = "32";
            inTimeIndex = "33";
            lowLevel = "5";
        }else if ("25".equals(type)){
            totalIndex = "57";
            noReplyIndex = "58";
            inTimeIndex = "59";
            lowLevel = "5";
        }else {
            return null;
        }
        //按机构排名
        List<SaveModel> list = elasticsearchUtil.findDateQuotaLevelList(endDate, endDate, area, level, totalIndex, SaveModel.timeLevel_DDL,null,lowLevel, null);
        for (SaveModel tmp:list){
            JSONObject res = new JSONObject();
            SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, tmp.getHospital(), 4, noReplyIndex, SaveModel.timeLevel_DDL);
            //及时回复数
            SaveModel saveModel3 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, tmp.getHospital(), 4, inTimeIndex, SaveModel.timeLevel_DDL);
            res.put("total", tmp.getResult2().longValue());
            res.put("dept", tmp.getDept());
            res.put("deptName", tmp.getDeptName());
            res.put("hospital", tmp.getHospital());
            res.put("hospitalName", tmp.getHospitalName());
            res.put("noReply", saveModel2.getResult2().longValue());
            res.put("inTime", saveModel3.getResult2().longValue());
            res.put("finish", saveModel2.getResult2().longValue()+saveModel3.getResult2().longValue());
            res.put("noReplyRate", commonUtil.getRangeDouble(saveModel2.getResult2().intValue(), tmp.getResult2().intValue()));
            res.put("inTimeRate", commonUtil.getRangeDouble(saveModel3.getResult2().intValue(), tmp.getResult2().intValue()));
            res.put("finishRate", commonUtil.getRangeDouble(saveModel2.getResult2().intValue()+saveModel3.getResult2().intValue(), tmp.getResult2().intValue()));
            result.add(res);
        }
        result.sort(Comparator.comparing(obj -> ((JSONObject) obj).getDouble("finishRate")).reversed());
        return result;
    }
    public List<EmergencyAssistanceDO> getAdminOrderList(String patient, String patientName, String doctor, String status, Integer page, Integer pageSize,String area,String level){
        String olderFilter = roleService.getOlderRoleSQL(area,level);
        StringBuilder sql = new StringBuilder(" select ord.* from base_emergency_assistance_order ord inner join base_patient pa on pa.id = ord.patient and pa.del=1  where 1=1 ");
        if (org.apache.commons.lang3.StringUtils.isNotBlank(doctor)){
            BaseDoctorDO doctorDO = doctorDao.findById(doctor);
            if (null!=doctorDO){
                if (2==doctorDO.getLevel()){//社工
                    sql.append(" AND EXISTS (" +
                            "SELECT sr.patient from base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i ," +
                            "base_team_member m " +
                            "where ord.patient = CONVERT(sr.patient USING utf8) and  sr.id = r.sign_id and sr.status=1 and r.service_package_id = i.service_package_id and  m.team_code = r.team_code " +
                            " and i.del = 1 and sr.`status`=1  and i.code='emergencyAssistance' and m.doctor_code = '"+doctor+"' and m.del = '1') ");
                }
                if (4==doctorDO.getLevel()){//助老员
                    sql.append(" and EXISTS (" +
                            "SELECT 1 from base_patient_helper ph INNER JOIN base_patient p on ph.patient = p.id and p.del=1 " +
                            " where ord.patient = ph.patient and ph.doctor='"+doctor+"' and ph.del=1) ");
                }
            }
        }
        if (org.apache.commons.lang3.StringUtils.isNotBlank(patient)){
            sql.append(" and ( ord.patient  = '"+patient+"' or ord.proxy_patient='"+patient+"' )");
        }
        if (org.apache.commons.lang3.StringUtils.isNotBlank(patientName)){
            sql.append(" and (pa.name like '%"+patientName+"%' or pa.idcard like '%"+patientName+"%') ");
        }
        if (StringUtils.isNotBlank(status)) {
            sql.append(" and ord.status in ( '").append(status.replace(",","','")).append("') ");
        }
        sql.append(olderFilter.replace("{patient}","pa.id"));
        sql.append(" order by ord.create_time DESC limit "+page*pageSize+","+pageSize);
        List<EmergencyAssistanceDO> resultList = jdbcTemplate.query(sql.toString(),new BeanPropertyRowMapper(EmergencyAssistanceDO.class));
        for (EmergencyAssistanceDO obj:resultList){
            BasePatientDO patientDO = patientDao.findById(obj.getPatient());
            obj.setPatientPhoto(patientDO.getPhoto());
            obj.setPatientSex(patientDO.getSex());
            obj.setPatientAge(IdCardUtil.getAgeForIdcard(patientDO.getIdcard()));
        }
        return resultList;
    }
    /**
     * 获取上门辅导排名
     * @return
     */
    public JSONArray getDoorCoachRank(String endDate,String area,Integer level) throws Exception {
        JSONArray result = new JSONArray();
        List<SaveModel> list = elasticsearchUtil.findDateQuotaLevelList(endDate, endDate, area, level, "54", SaveModel.timeLevel_DDL,null,"4", null);
        for (SaveModel tmp:list){
            JSONObject res = new JSONObject();
            SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, tmp.getHospital(), 4, "35", SaveModel.timeLevel_DDL);
            res.put("total", tmp.getResult2().longValue());
            res.put("hospital", tmp.getHospital());
            res.put("hospitalName", tmp.getHospitalName());
            res.put("finish", saveModel2.getResult2().longValue());
            res.put("finishRate", commonUtil.getRangeDouble(saveModel2.getResult2().intValue(), tmp.getResult2().intValue()));
            result.add(res);
        }
        result.sort(Comparator.comparing(obj -> ((JSONObject) obj).getDouble("finishRate")).reversed());
        return result;
    }
    /**
     *  获取生活照料排名
     * @param endDate
     * @param area
     * @param level
     * @return
     * @throws Exception
     */
    public JSONArray getLifeCareRank(String endDate,String area,Integer level) throws Exception {
        JSONArray result = new JSONArray();
        List<SaveModel> list = elasticsearchUtil.findDateQuotaLevelList(endDate, endDate, area, level, "49", SaveModel.timeLevel_DDL,null,"4", null,"1,2,3");
        for (SaveModel tmp:list){
            JSONObject res = new JSONObject();
            SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevels(endDate, endDate, tmp.getHospital(), 4, "49", SaveModel.timeLevel_DDL,null,"2");
            res.put("total", tmp.getResult2().longValue());
            res.put("hospital", tmp.getHospital());
            res.put("hospitalName", tmp.getHospitalName());
            res.put("finish", saveModel2.getResult2().longValue());
            res.put("finishRate", commonUtil.getRangeDouble(saveModel2.getResult2().intValue(), tmp.getResult2().intValue()));
            result.add(res);
        }
        result.sort(Comparator.comparing(obj -> ((JSONObject) obj).getDouble("finishRate")).reversed());
        return result;
    }
    /**
     * 管理端首页智慧照护生活照料项目新增情况
     */
    public JSONObject statisticsLifeCareItemAdd(String endDate, String area, Integer level, String type) throws Exception {
        JSONObject res = new JSONObject();
        SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevels(endDate, endDate, area, level, "48", SaveModel.timeLevel_DDL, null, null);
        res.put("index_" + 48 + "_total", saveModel.getResult2().longValue());
        if (StringUtils.isNotBlank(type)) {
            //周/月 增量
            String start = statisticsUtilService.calStart(endDate, type);
            SaveModel saveModelAdd = elasticsearchUtil.findOneDateQuotaLevels(start, endDate, area, level, "48", SaveModel.timeLevel_ZL, null,null);
            res.put("index_" + 48 + "_add", saveModelAdd.getResult2().longValue());
        }
        JSONArray addDetail = new JSONArray();
        if (StringUtils.isNotBlank(type)) {
            //周/月 增量
            String start = statisticsUtilService.calStart(endDate, type);
            List<SaveModel> saveModelAdds = elasticsearchUtil.findDateQuotaLevelList(start, endDate, area, level, "48", SaveModel.timeLevel_ZL, null,null,"1", null );
            for (SaveModel saveModelTmp : saveModelAdds) {
                JSONObject json = new JSONObject();
                SaveModel saveMode2 = elasticsearchUtil.findOneDateQuotaLevels(endDate, endDate, area, level, "48", SaveModel.timeLevel_DDL, null, saveModelTmp.getSlaveKey1());
                json.put("total", saveMode2.getResult2().longValue());
                json.put("num", saveModelTmp.getResult2().longValue());
                json.put("code", saveModelTmp.getSlaveKey1());
                json.put("name", saveModelTmp.getSlaveKey1Name());
                addDetail.add(json);
            }
        }
        res.put("index_add_detail", addDetail);
        return res;
    }
}

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

@ -870,7 +870,8 @@ public class WlyygcStatisticsService {
        String deviceSql ="SELECT COUNT(id) AS total, COUNT(IF(device_type = 0,device_type,NULL)) AS jk,COUNT(IF(device_type = 1,device_type,NULL)) AS af FROM wlyy_devices where 1=1 ";
        //医疗机构
        //养老机构
        String orgSql = "SELECT COUNT(IF(type = 2,type,null)) AS yl,COUNT(IF(type = 3,type,null)) AS yangl  FROM base_org WHERE del = 1 AND `code` NOT IN (SELECT DISTINCT dict_code from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_org' and dict_code is not null) ";
        //日照中心
        String orgSql = "SELECT COUNT(IF(type = 2,type,null)) AS yl,COUNT(IF(type = 3,type,null)) AS yangl,COUNT(IF(type =6 ,type,NULL)) AS rz FROM base_org WHERE del = 1 AND `code` NOT IN (SELECT DISTINCT dict_code from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_org' and dict_code is not null) ";
        //助老员
        //医护人员
        //社工
@ -895,6 +896,7 @@ public class WlyygcStatisticsService {
        List<Map<String, Object>> orgList = jdbcTemplate.queryForList(orgSql);
        res.put("yanglao",orgList.get(0).get("yangl"));
        res.put("yl",orgList.get(0).get("yl"));
        res.put("rz",orgList.get(0).get("rz"));
        List<Map<String, Object>> maps = jdbcTemplate.queryForList(zlSql);
        res.put("yh",maps.get(0).get("yh"));

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

@ -32,6 +32,7 @@ import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.util.common.GpsUtil;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.common.LatitudeUtils;
import com.yihu.jw.util.date.DateUtil;
import org.apache.commons.lang.StringUtils;
import org.json.JSONArray;
@ -232,7 +233,7 @@ public class PatientInfoPlatFormService {
        Integer finish=0;
        for (Map<String,Object> map:list){
            if (null!=map.get("status")){
                if ("0".equals(map.get("status").toString())){
                if ("0".equals(map.get("status").toString())||"2".equals(map.get("status").toString())){
                    finish += Integer.parseInt(map.get("total").toString());
                }else {
                    unfinish +=Integer.parseInt(map.get("total").toString());
@ -727,7 +728,7 @@ public class PatientInfoPlatFormService {
                sql = " select *,CAST(DATE_FORMAT(record_date,'%Y-%m-%d %H:%i:%S') as char) record_date,  " +
                        " CAST(DATE_FORMAT(sort_date,'%Y-%m-%d %H:%i:%S') as char) sort_date,  " +
                        " CAST(DATE_FORMAT(czrq,'%Y-%m-%d %H:%i:%S') as char) czrq from wlyy_patient_health_index " +
                        " where device_sn='"+deviceSn+"' ORDER BY sort_date DESC LIMIT 1  ";
                        " where device_sn='"+deviceSn+"' and del=1 ORDER BY sort_date DESC LIMIT 1  ";
                List<Map<String,Object>> sqlResult = jdbcTemplate.queryForList(sql);
                if (sqlResult.size()>0){
                    detailInfo.put("healthIndex",sqlResult.get(0));
@ -739,7 +740,7 @@ public class PatientInfoPlatFormService {
                sql = " select *,CAST(DATE_FORMAT(record_date,'%Y-%m-%d %H:%i:%S') as char) record_date,  " +
                        " CAST(DATE_FORMAT(sort_date,'%Y-%m-%d %H:%i:%S') as char) sort_date,  " +
                        " CAST(DATE_FORMAT(czrq,'%Y-%m-%d %H:%i:%S') as char) czrq from wlyy_patient_health_index " +
                        " where device_sn='"+deviceSn+"' ORDER BY sort_date DESC LIMIT 1  ";
                        " where device_sn='"+deviceSn+"' and del=1 ORDER BY sort_date DESC LIMIT 1  ";
                sqlResult = jdbcTemplate.queryForList(sql);
                if (sqlResult.size()>0){
                    detailInfo.put("healthIndex",sqlResult.get(0));
@ -779,17 +780,21 @@ public class PatientInfoPlatFormService {
                } else {
                    detailInfo.put("contact_status",1);
                }
                sql = "select * from base_patient_step where 1=1  and device_sn='"+deviceSn+"' order by create_time desc limit 1";
                sql = "select *,CAST(DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%S') as char) create_time from base_patient_step where 1=1  and device_sn='"+deviceSn+"' order by create_time desc limit 1";
                sqlResult = jdbcTemplate.queryForList(sql);
                if (sqlResult.size()>0) {
                    detailInfo.put("steps",sqlResult.get(0).get("steps"));
                    detailInfo.put("steps",sqlResult.get(0));
                }else {
                    detailInfo.put("steps","无步数数据");
                }
                sql ="SELECT * FROM wlyy_patient_health_index WHERE type = 5 and device_sn = '"+deviceSn+"' AND del = 1 ORDER BY record_date DESC LIMIT 1";
                sql = " select *,CAST(DATE_FORMAT(record_date,'%Y-%m-%d %H:%i:%S') as char) record_date,  " +
                        " CAST(DATE_FORMAT(sort_date,'%Y-%m-%d %H:%i:%S') as char) sort_date,  " +
                        " CAST(DATE_FORMAT(czrq,'%Y-%m-%d %H:%i:%S') as char) czrq from wlyy_patient_health_index " +
                        " where type=5 and device_sn='"+deviceSn+"' and del=1 ORDER BY sort_date DESC LIMIT 1  ";
                sqlResult = jdbcTemplate.queryForList(sql);
                if (sqlResult.size()>0){
                    detailInfo.put("heartRate",sqlResult.get(0).get("value1"));
                    detailInfo.put("heartRate",sqlResult.get(0));
                }else {
                    detailInfo.put("heartRate","无心率数据");
                }
@ -933,6 +938,16 @@ public class PatientInfoPlatFormService {
                    detailInfo.put("value",null);
                    detailInfo.put("record_time",null);
                }
                sql = " select temperature_value ,record_time as temperature_value_record_time  from base_device_health_index where device_sn='"+deviceSn+"' and temperature_value is not null  ORDER BY record_time desc limit 1 ";
                sqlResult = jdbcTemplate.queryForList(sql);
                if (sqlResult.size()>0){
                    detailInfo.putAll(sqlResult.get(0));
                }
                else {
                    detailInfo.put("temperature_value",null);
                    detailInfo.put("temperature_value_record_time",null);
                }
                break;
            case "16"://拐杖 是否预警
                sql = "  select o.id,p.id patient,p.name,p.idcard,p.residential_area,'20' OrderType,'1' type,o.serve_address,'紧急呼叫' serve_desc,  " +
@ -950,12 +965,13 @@ public class PatientInfoPlatFormService {
                }else {
                    detailInfo.put("warnStatus",false);
                }
                sql = "SELECT * FROM base_yxdevice_index  WHERE sn = '" + deviceSn + "' AND lon != 0 AND lat != 0 ORDER BY create_time DESC limit 1";
                sql = "SELECT *,CAST(DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%S') as char) create_time FROM base_yxdevice_index  WHERE sn = '" + deviceSn + "' AND lon != 0 AND lat != 0 ORDER BY create_time DESC limit 1";
                sqlResult = jdbcTemplate.queryForList(sql);
                if (sqlResult.size()>0){
                    detailInfo.put("newlonlat",sqlResult.get(0));
                    JSONObject dz =  gpsUtil.gcj02_To_Bd09(Double.parseDouble(sqlResult.get(0).get("lat").toString()),Double.parseDouble(sqlResult.get(0).get("lon").toString()));
                    detailInfo.put("location", dz);
                    String address = LatitudeUtils.getLocationAddress(sqlResult.get(0).get("lat").toString(), sqlResult.get(0).get("lon").toString());
//                    JSONObject dz =  gpsUtil.gcj02_To_Bd09(Double.parseDouble(sqlResult.get(0).get("lat").toString()),Double.parseDouble(sqlResult.get(0).get("lon").toString()));
                    detailInfo.put("location", address);
                }else {
                    detailInfo.put("newlonlat",null);
                    detailInfo.put("location", null);

+ 2 - 2
svr/svr-cloud-job/src/main/resources/system.properties

@ -23,9 +23,9 @@ SAVE_DATA_PUSH_JOB= 0 0 2 * * ? *
#\u5B9A\u65F6\u67E5\u8BE2\u79FB\u52A8\u5E73\u53F0\u7269\u8054\u5361\u4FE1\u606F
UPDATE_SIMS_JOB= 0 30 0 * * ?
#\u5B9A\u65F6\u67E5\u8BE2\u79FB\u52A8\u7269\u8054\u5361\u8BED\u97F3\uFF0C\u6D41\u91CF\u4F7F\u7528\u4FE1\u606F--\u65E5
GET_SIMS_VOICE_FLOW_DAY_JOB= 0 50 1 * * ?
GET_SIMS_VOICE_FLOW_DAY_JOB= 0 50 5 * * ?
#\u5B9A\u65F6\u67E5\u8BE2\u79FB\u52A8\u7269\u8054\u5361\u8BED\u97F3\uFF0C\u6D41\u91CF\u4F7F\u7528\u4FE1\u606F--\u6708
GET_SIMS_VOICE_FLOW_MONTH_JOB= 0 15 2 * * ?
GET_SIMS_VOICE_FLOW_MONTH_JOB= 0 15 6 * * ?
#\u6BCF\u5929\u65E9\u4E0A10\u70B9\u53D1\u9001\u8840\u538B(1\u5929)\u8840\u7CD6(7\u5929)\u672A\u6D4B\u91CF\u901A\u77E5
BLOOD_PRESSURE_GLUCOSE_NOT_MEASURED= 0 0 10 * * ?
#\u751F\u65E5\u795D\u798F\u672A\u53D1\u751F\u8BB0\u5F55