Pārlūkot izejas kodu

Merge branch 'dev' of liubing/wlyy2.0 into dev

liubing 3 gadi atpakaļ
vecāks
revīzija
1cdf665294
16 mainītis faili ar 283 papildinājumiem un 116 dzēšanām
  1. 6 3
      common/common-entity/sql记录
  2. 52 2
      common/common-entity/src/main/java/com/yihu/jw/entity/care/message/BaseServiceNews.java
  3. 1 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/consult/PatientConsultEndpoint.java
  4. 1 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/device/PatientDeviceController.java
  5. 3 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/statistics/DetectionPlatformEndpoint.java
  6. 17 10
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/third/platForm/PatientInfoPlatFormEndpoint.java
  7. 1 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/admin/AdminDoorCoachOrderService.java
  8. 41 49
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/consult/ConsultTeamService.java
  9. 84 32
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/device/PatientDeviceService.java
  10. 1 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/doorCoach/PatientDoorCoachOrderService.java
  11. 1 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/family/PatientFamilyMemberService.java
  12. 2 2
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/lifeCare/LifeCareOrderService.java
  13. 38 3
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/message/BaseServiceNewsService.java
  14. 1 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/StatisticsService.java
  15. 33 10
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/third/PatientInfoPlatFormService.java
  16. 1 0
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/YsDeviceService.java

+ 6 - 3
common/common-entity/sql记录

@ -1407,7 +1407,7 @@ CREATE TABLE `base_admin_service_dynamic` (
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='调度分析,管理员调度实时动态';
--20210831
-- 20210831
CREATE TABLE `wlyy_patient_safe_area` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `patient` varchar(50) DEFAULT NULL COMMENT '居民id',
@ -1418,7 +1418,7 @@ CREATE TABLE `wlyy_patient_safe_area` (
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='患者设备安全区域';
--2021-09-02
-- 2021-09-02
CREATE TABLE `device_data_push_log` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `patient` varchar(50) DEFAULT NULL,
@ -1432,8 +1432,11 @@ CREATE TABLE `device_data_push_log` (
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=449 DEFAULT CHARSET=utf8mb4 COMMENT='设备项目推送数据日志';
--2021-09-07
-- 2021-09-07
alter table base_patient modify column archive_type  tinyint(2) DEFAULT NULL COMMENT '档案类型 1老人 2新生儿';
-- 2021-09-08
alter table base_service_news add column relation_code varchar(50) default null COMMENT '对应工单id/咨询Id';
alter table base_service_news add column user_type TINYINT(2) default null COMMENT '1居民2助老员';
CREATE TABLE `base_doctor_service_permissions` (
  `id` varchar(50) NOT NULL,

+ 52 - 2
common/common-entity/src/main/java/com/yihu/jw/entity/care/message/BaseServiceNews.java

@ -4,6 +4,7 @@ import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
/**
 * Created with IntelliJ IDEA.
@ -20,9 +21,15 @@ public class BaseServiceNews extends UuidIdentityEntityWithCreateTime {
    private String content;
    //姓名
    private String name;
    private String code;
    //类型 1上门辅导、2发起咨询、3发起生活照料、4代预约
    private String code; //居民code
    //类型 1上门辅导、2发起咨询、3发起生活照料、4生活照料代预约
    private String type;
    private String relationCode;//type对应工单id 或咨询id
    private Integer userType;//用户类型 1居民 2助老员
    private Integer archiveType;//居民类型
    private String residentialArea;//居住小区;
    private String serveItems;//
    public String getContent() {
        return content;
@ -55,4 +62,47 @@ public class BaseServiceNews extends UuidIdentityEntityWithCreateTime {
    public void setType(String type) {
        this.type = type;
    }
    public String getRelationCode() {
        return relationCode;
    }
    public void setRelationCode(String relationCode) {
        this.relationCode = relationCode;
    }
    public Integer getUserType() {
        return userType;
    }
    public void setUserType(Integer userType) {
        this.userType = userType;
    }
    @Transient
    public Integer getArchiveType() {
        return archiveType;
    }
    public void setArchiveType(Integer archiveType) {
        this.archiveType = archiveType;
    }
    @Transient
    public String getResidentialArea() {
        return residentialArea;
    }
    public void setResidentialArea(String residentialArea) {
        this.residentialArea = residentialArea;
    }
    @Transient
    public String getServeItems() {
        return serveItems;
    }
    public void setServeItems(String serveItems) {
        this.serveItems = serveItems;
    }
}

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/consult/PatientConsultEndpoint.java

@ -208,7 +208,7 @@ public class PatientConsultEndpoint extends EnvelopRestEndpoint {
				consultService.saveMessage(systemMessageDO);
				serviceNewsService.addServiceNews(re.getString("patientName"),patient,"2",null);
				serviceNewsService.addServiceNews(re.getString("patientName"),patient,"2",null,consult.getConsult(),1);
			}
			return success("操作成功", consult);

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

@ -443,7 +443,7 @@ public class PatientDeviceController extends BaseController {
                                       @RequestParam(value = "pageSize")Integer pageSize){
        try {
            return write(200,"获取成功","data",patientDeviceService.getPatientDeviceData(patient,deviceSn,page,pageSize));
            return write(200,"获取成功","data",patientDeviceService.getPatientDeviceData(patient,null,deviceSn,page,pageSize));
        }catch (Exception e){
            return errorResult(e);
        }

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

@ -141,13 +141,15 @@ public class DetectionPlatformEndpoint extends EnvelopRestEndpoint {
                                       @RequestParam(value = "patient")String patient,
                                       @ApiParam(name="deviceSN")
                                       @RequestParam(value = "deviceSN")String deviceSn,
                                       @ApiParam(name="type",value = "0全部 1日常监护 2预警记录")
                                       @RequestParam(value = "type",required = false)String type,
                                       @ApiParam(name="page")
                                       @RequestParam(value = "page")Integer page,
                                       @ApiParam(name="pageSize")
                                       @RequestParam(value = "pageSize")Integer pageSize){
        try {
            org.json.JSONObject result = patientDeviceService.getPatientDeviceData(patient,deviceSn,page,pageSize);
            org.json.JSONObject result = patientDeviceService.getPatientDeviceData(patient,type,deviceSn,page,pageSize);
            if (result.getInt(ResponseContant.resultFlag)==ResponseContant.success){
                return success(JSON.parseObject(result.getString(ResponseContant.resultMsg)));
            }else {

+ 17 - 10
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/third/platForm/PatientInfoPlatFormEndpoint.java

@ -82,7 +82,7 @@ public class PatientInfoPlatFormEndpoint extends EnvelopRestEndpoint {
    }
    @GetMapping(value = "findPatinetByName")
    @ApiOperation("获取居民详情页")
    @ApiOperation("按名字查找居民坐标")
    public ListEnvelop findPatinetByName(@ApiParam(name="name",value = "居民姓名",required = true)
                                @RequestParam(value = "name")String  name){
        try {
@ -93,11 +93,13 @@ public class PatientInfoPlatFormEndpoint extends EnvelopRestEndpoint {
    }
    @GetMapping(value = "findNews")
    @ApiOperation("获取居民详情页")
    public ListEnvelop findNews(@ApiParam(name="size",value = "页面大小",required = true)
                                     @RequestParam(value = "size")Integer size){
    @ApiOperation("服务动态")
    public ListEnvelop findNews(@ApiParam(name="page",value = "页面大小",required = false)
                                @RequestParam(value = "page",required = false,defaultValue = "0")Integer page,
                                @ApiParam(name="size",value = "页面大小",required = true)
                                @RequestParam(value = "size")Integer size){
        try {
            return ListEnvelop.getSuccess("查询成功",baseServiceNewsService.findNews(size));
            return ListEnvelop.getSuccess("查询成功",baseServiceNewsService.findNews(page,size));
        }catch (Exception e){
            return failedListEnvelopException2(e);
        }
@ -134,7 +136,7 @@ public class PatientInfoPlatFormEndpoint extends EnvelopRestEndpoint {
    }
    @GetMapping(value = "getServiceOrder")
    @ApiOperation("获取服务工单列表")
    @ApiOperation("获取照护动态服务工单列表")
    public ObjEnvelop getServiceOrder(@ApiParam(name="patient",value = "居民id",required = true)
                                     @RequestParam(value = "patient")String patient,
                                     @ApiParam(name="patientType",value="患者类型 1老人 2 新生儿")
@ -255,14 +257,19 @@ public class PatientInfoPlatFormEndpoint extends EnvelopRestEndpoint {
    }
    @GetMapping(value = "getEmergencyWarnOrderList")
    @ApiOperation(value = "态势分析紧急预警动态列表")//仅只能查看已完成
    public PageEnvelop getEmergencyWarnOrderList(@ApiParam(name="page",value = "page")
    @ApiOperation(value = "态势分析紧急预警动态列表")
    public PageEnvelop getEmergencyWarnOrderList(
                                            @ApiParam(name="patient",value = "patient")
                                            @RequestParam(value = "patient",required = false) String patient,
                                            @ApiParam(name="orderType",value = "20 紧急救助,22安防")
                                            @RequestParam(value = "orderType",required = false) Integer orderType,
                                            @ApiParam(name="page",value = "page")
                                            @RequestParam(value = "page") Integer page,
                                                 @ApiParam(name="pageSize",value = "pageSize")
                                            @ApiParam(name="pageSize",value = "pageSize")
                                            @RequestParam(value = "pageSize") Integer pageSize
    ){
        try {
            return patientInfoPlatFormService.getEmergencyWarnOrderList(page,pageSize);
            return patientInfoPlatFormService.getEmergencyWarnOrderList(patient,orderType,page,pageSize);
        }catch (Exception e){
            return failedPageEnvelopException2(e);
        }

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/admin/AdminDoorCoachOrderService.java

@ -407,7 +407,7 @@ public class AdminDoorCoachOrderService extends BaseJpaService<BaseDoorCoachOrde
                            }
                        }
                    }
                    serviceNewsService.addServiceNews(orderDO.getPatientName(),orderDO.getPatient(),"1",null);
                    serviceNewsService.addServiceNews(orderDO.getPatientName(),orderDO.getPatient(),"1",null,orderId,1);
                    String failMsg = "success";
                    result.put(ResponseContant.resultFlag, ResponseContant.success);
                    result.put(ResponseContant.resultMsg, failMsg);

+ 41 - 49
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/consult/ConsultTeamService.java

@ -196,8 +196,7 @@ public class ConsultTeamService {
        //4、 紧急救助咨询-参与者
        JSONObject participants = new JSONObject();
        participants.put(patient, 0);
        JSONArray familyArr =  familyMemberService.getPatientMembers(patient,null,null,null,null);
        JSONArray agentFamilyArr =  familyMemberService.getPatientMembers(patient,null,null,null,"3");
        JSONArray familyArr =  familyMemberService.getPatientMembers(patient,null,null,null,"1,3");
        for (int i=0;i<familyArr.size();i++){
            JSONObject tmp = familyArr.getJSONObject(i);
            String patientId = tmp.getString("id");
@ -205,29 +204,26 @@ public class ConsultTeamService {
                continue;
            }
            participants.put(patientId, 0);//家庭成员拉入会话
        }
        for (int i=0;i<agentFamilyArr.size();i++){//创建家属系统消息
            JSONObject tmp = agentFamilyArr.getJSONObject(i);
            String patientId = tmp.getString("id");
            if (patient.equals(patientId)){
                continue;
            String archiveType = tmp.getString("archiveType");
            if ("3".equals(archiveType)){
                String name = tmp.getString("name");
                //创建家属系统消息
                SystemMessageDO messageDO = new SystemMessageDO();
                messageDO.setTitle("安防监护");
                messageDO.setType("50");
                messageDO.setCode("22");
                messageDO.setSender(patientDO.getId());
                messageDO.setSenderName(patientDO.getName());
                messageDO.setRelationCode(orderId);
                messageDO.setReceiver(patientId);
                messageDO.setReceiverName(name);
                messageDO.setOver("0");
                messageDO.setData(patientDO.getName()+"发起安防警报工单!");
                messageDO.setDel("1");
                messageDO.setIsRead("0");
                messageDO.setCreateTime(new Date());
                systemMessageDao.save(messageDO);
            }
            String name = tmp.getString("name");
            SystemMessageDO messageDO = new SystemMessageDO();
            messageDO.setTitle("紧急救助");
            messageDO.setType("50");//50 紧急预警通知
            messageDO.setCode("20");//  20 relationCode为紧急救助工单id 22安防工单id
            messageDO.setSender(patientDO.getId());
            messageDO.setSenderName(patientDO.getName());
            messageDO.setRelationCode(orderId);
            messageDO.setReceiver(patientId);
            messageDO.setReceiverName(name);
            messageDO.setOver("0");
            messageDO.setData(patientDO.getName()+"发起紧急救助工单!");
            messageDO.setDel("1");
            messageDO.setIsRead("0");
            messageDO.setCreateTime(new Date());
            systemMessageDao.save(messageDO);
        }
        //加入团队医生
@ -409,39 +405,35 @@ public class ConsultTeamService {
        JSONObject participants = new JSONObject();
        participants.put(patient, 0);
        //家属
        JSONArray familyArr =  familyMemberService.getPatientMembers(patient,null,null,null,null);
        JSONArray agentFamilyArr =  familyMemberService.getPatientMembers(patient,null,null,null,"3");
        JSONArray familyArr =  familyMemberService.getPatientMembers(patient,null,null,null,"1,3");
        for (int i=0;i<familyArr.size();i++){
            JSONObject tmp = familyArr.getJSONObject(i);
            String patientId = tmp.getString("id");
            if (patient.equals(patientId)){
                continue;
            }
            participants.put(patientId, 0);
        }
        for (int i=0;i<agentFamilyArr.size();i++){
            JSONObject tmp = agentFamilyArr.getJSONObject(i);
            String patientId = tmp.getString("id");
            if (patient.equals(patientId)){
                continue;
            String archiveType = tmp.getString("archiveType");
            if ("3".equals(archiveType)){
                String name = tmp.getString("name");
                //创建家属系统消息
                SystemMessageDO messageDO = new SystemMessageDO();
                messageDO.setTitle("安防监护");
                messageDO.setType("50");
                messageDO.setCode("22");
                messageDO.setSender(patientDO.getId());
                messageDO.setSenderName(patientDO.getName());
                messageDO.setRelationCode(orderId);
                messageDO.setReceiver(patientId);
                messageDO.setReceiverName(name);
                messageDO.setOver("0");
                messageDO.setData(patientDO.getName()+"发起安防警报工单!");
                messageDO.setDel("1");
                messageDO.setIsRead("0");
                messageDO.setCreateTime(new Date());
                systemMessageDao.save(messageDO);
            }
            String name = tmp.getString("name");
            //创建家属系统消息
            SystemMessageDO messageDO = new SystemMessageDO();
            messageDO.setTitle("安防监护");
            messageDO.setType("50");
            messageDO.setCode("22");
            messageDO.setSender(patientDO.getId());
            messageDO.setSenderName(patientDO.getName());
            messageDO.setRelationCode(orderId);
            messageDO.setReceiver(patientId);
            messageDO.setReceiverName(name);
            messageDO.setOver("0");
            messageDO.setData(patientDO.getName()+"发起安防警报工单!");
            messageDO.setDel("1");
            messageDO.setIsRead("0");
            messageDO.setCreateTime(new Date());
            systemMessageDao.save(messageDO);
        }
        //加入团队医生

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

@ -1077,7 +1077,7 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
     * @param deviceSn 设备sn码
     * @return
     */
    public JSONObject getPatientDeviceData(String patient,String deviceSn,Integer page,Integer pageSize)throws Exception{
    public JSONObject getPatientDeviceData(String patient,String type,String deviceSn,Integer page,Integer pageSize)throws Exception{
        page = page>0?page-1:0;
        JSONObject result = new JSONObject();
        List<DevicePatientDevice> devices = patientDeviceDao.findByDeviceSn(deviceSn);
@ -1094,7 +1094,7 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
                        result = getHealthIndex(result,2,deviceSn,patient,page,pageSize);
                        break;
                    default://安防设备
                        result  = getEmeWarn(result,deviceSn,null,page,pageSize);
                        result  = getEmeWarn(result,type,deviceSn,null,page,pageSize);
                        break;
                }
//            }
@ -1208,38 +1208,90 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
        return result;
    }
    public JSONObject getEmeWarn(JSONObject result,String deviceSn,String patient,Integer page,Integer pageSize){
        String sqlCount = "select SUM(total) from( \n" +
                "select count(ord.id) as total from base_emergency_assistance_order ord  where ord.device_sn='"+deviceSn+"' " +
                " and ord.patient='"+patient+"' " +
                "UNION All " +
                "select count(ord.id)  as total from base_security_monitoring_order ord  where ord.device_sn='"+deviceSn+"' " +
                " {{patient}} )A ";
        String sql = "select '20' as OrderType,ord.id,ord.patient,ord.patient_name,ord.doctor,ord.status,ord.doctor_name," +
                "'紧急呼叫' as serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time " +
                "from base_emergency_assistance_order ord  where ord.device_sn='"+deviceSn+"' and ord.patient='"+patient+"' " +
                "UNION " +
                "select  '22' as 'OrderType',ord.id,ord.patient,ord.patient_name,ord.doctor,ord.status,ord.doctor_name," +
                "ord.serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time from base_security_monitoring_order ord " +
                " where ord.device_sn='"+deviceSn+"' {{patient}}  order by create_time desc limit "+page*pageSize+","+pageSize;
        if (StringUtils.isNotBlank(patient)){
            sqlCount = sqlCount.replace("{{patient}}","and ord.patient='"+patient+"' ");
            sql = sql.replace("{{patient}}","and ord.patient='"+patient+"' ");
        }else {
            sqlCount = sqlCount.replace("{{patient}}"," ");
            sql = sql.replace("{{patient}}"," ");
        }
        long count = jdbcTemplate.queryForObject(sqlCount,long.class);
    public JSONObject getEmeWarn(JSONObject result,String type,String deviceSn,String patient,Integer page,Integer pageSize){
        if (StringUtils.isBlank(type)||"2".equals(type)||"0".equals(type)){
            String sqlCount = "select SUM(total) from( \n" +
                    "select count(ord.id) as total from base_emergency_assistance_order ord  where ord.device_sn='"+deviceSn+"' " +
                    "  {{patient}} " +
                    "UNION All " +
                    "select count(ord.id)  as total from base_security_monitoring_order ord  where ord.device_sn='"+deviceSn+"' " +
                    " {{patient}} )A ";
            String sql = "select '20' as OrderType,ord.id,ord.patient,ord.patient_name,ord.doctor,ord.status,ord.doctor_name," +
                    "'紧急呼叫' as serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time " +
                    "from base_emergency_assistance_order ord  where ord.device_sn='"+deviceSn+"' {{patient}} " +
                    "UNION " +
                    "select  '22' as 'OrderType',ord.id,ord.patient,ord.patient_name,ord.doctor,ord.status,ord.doctor_name," +
                    "ord.serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time from base_security_monitoring_order ord " +
                    " where ord.device_sn='"+deviceSn+"' {{patient}}  order by create_time desc limit "+page*pageSize+","+pageSize;
            if (StringUtils.isNotBlank(patient)){
                sqlCount = sqlCount.replace("{{patient}}","and ord.patient='"+patient+"' ");
                sql = sql.replace("{{patient}}","and ord.patient='"+patient+"' ");
            }else {
                sqlCount = sqlCount.replace("{{patient}}"," ");
                sql = sql.replace("{{patient}}"," ");
            }
            long count = jdbcTemplate.queryForObject(sqlCount,long.class);
            List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
            String str = JSON.toJSONString(list,SerializerFeature.WriteMapNullValue);
            com.alibaba.fastjson.JSONArray arr = com.alibaba.fastjson.JSONArray.parseArray(str);
            result.put("total",count);
            result.put("page",page+1);
            result.put("pageSize",pageSize);
            result.put("dataList", arr);
        }
        if ("1".equals(type)||"0".equals(type)){//日常监护 昨天20:00~08:00、08:00~20:00
           String sql = "select  '20' as OrderType,count(*) total,DATE_FORMAT(ord.create_time,'%Y-%m-%d 20:00:00') create_time\n" +
                    "from base_emergency_assistance_order ord  \n" +
                    " where ord.device_sn='"+deviceSn+"' {{patient}} and create_time >= DATE_FORMAT(ord.create_time,'%Y-%m-%d 08:00:00') \n" +
                    " and create_time < DATE_FORMAT(ord.create_time,'%Y-%m-%d 20:00:00')\n" +
                    " GROUP BY DATE_FORMAT(ord.create_time,'%Y-%m-%d')\n" +
                    " UNION\n" +
                    " select  '20' as OrderType,count(*) total,DATE_FORMAT(ord.create_time,'%Y-%m-%d 08:00:00') create_time\n" +
                    "from base_emergency_assistance_order ord  \n" +
                    "where ord.device_sn='"+deviceSn+"' {{patient}} and (  \n" +
                    "(create_time>= DATE_FORMAT(create_time,'%Y-%m-%d 23:00:00')\n" +
                    "and create_time < DATE_FORMAT(create_time,'%Y-%m-%d 23:59:59'))\n" +
                    "or\n" +
                    "(create_time >= DATE_FORMAT(ord.create_time,'%Y-%m-%d 00:00:00') \n" +
                    "and create_time < DATE_FORMAT(ord.create_time,'%Y-%m-%d 08:00:00')))\n" +
                    "GROUP BY DATE_FORMAT(create_time,'%Y-%m-%d')-- 安防\n" +
                    "UNION\n" +
                    "select  '22' as OrderType,count(*) total,DATE_FORMAT(ord.create_time,'%Y-%m-%d 20:00:00') create_time\n" +
                    "from base_security_monitoring_order ord  \n" +
                    " where ord.device_sn='"+deviceSn+"' {{patient}} and  create_time >= DATE_FORMAT(ord.create_time,'%Y-%m-%d 08:00:00') \n" +
                    " and create_time < DATE_FORMAT(ord.create_time,'%Y-%m-%d 20:00:00')\n" +
                    " GROUP BY DATE_FORMAT(ord.create_time,'%Y-%m-%d')\n" +
                    " UNION\n" +
                    " select  '22' as OrderType,count(*) total,DATE_FORMAT(ord.create_time,'%Y-%m-%d 08:00:00') create_time\n" +
                    "from base_security_monitoring_order ord  \n" +
                    "where ord.device_sn='"+deviceSn+"' {{patient}} and (  \n" +
                    "(create_time>= DATE_FORMAT(create_time,'%Y-%m-%d 23:00:00')\n" +
                    "and create_time < DATE_FORMAT(create_time,'%Y-%m-%d 23:59:59'))\n" +
                    "or\n" +
                    "(create_time >= DATE_FORMAT(ord.create_time,'%Y-%m-%d 00:00:00') \n" +
                    "and create_time < DATE_FORMAT(ord.create_time,'%Y-%m-%d 08:00:00')))\n" +
                    "GROUP BY DATE_FORMAT(create_time,'%Y-%m-%d')\n" +
                    "order by create_time desc\n" ;
            if (StringUtils.isNotBlank(patient)){
                sql = sql.replace("{{patient}}","and ord.patient='"+patient+"' ");
            }else {
                sql = sql.replace("{{patient}}"," ");
            }
            String sqlCount = " select count(*) from ("+sql+")A ";
            sql  = "  SELECT GROUP_CONCAT(OrderType) as OrderType,SUM(total) total,create_time FROM ("+sql+")A GROUP BY create_time " +
                    "order by create_time desc limit "+page*pageSize+","+pageSize;
            long count = jdbcTemplate.queryForObject(sqlCount,long.class);
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        String str = JSON.toJSONString(list,SerializerFeature.WriteMapNullValue);
        com.alibaba.fastjson.JSONArray arr = com.alibaba.fastjson.JSONArray.parseArray(str);
            List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
            result.put("dailyTotal",count);
            result.put("dailyPage",page+1);
            result.put("dailyPageSize",pageSize);
            result.put("dailyDataList", list);
        }
        result.put("total",count);
        result.put("page",page+1);
        result.put("pageSize",pageSize);
        result.put("dataList", arr);
        return result;
    }

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/doorCoach/PatientDoorCoachOrderService.java

@ -399,7 +399,7 @@ public class PatientDoorCoachOrderService extends BaseJpaService<BaseDoorCoachOr
                            }
                        }
                    }
                    serviceNewsService.addServiceNews(orderDO.getPatientName(),orderDO.getPatient(),"1",null);
                    serviceNewsService.addServiceNews(orderDO.getPatientName(),orderDO.getPatient(),"1",null,orderId,1);
                    String failMsg = "success";
                    result.put(ResponseContant.resultFlag, ResponseContant.success);
                    result.put(ResponseContant.resultMsg, failMsg);

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

@ -492,6 +492,7 @@ public class PatientFamilyMemberService extends BaseJpaService<BasePatientFamily
                obj.put("address", StringUtils.isEmpty(String.valueOf(map.get("address"))) ? "" : map.get("address"));
                obj.put("familyRelation", map.get("family_relation"));
                obj.put("familyRelationName", relations.get(map.get("family_relation")));
                obj.put("archiveType",StringUtils.isEmpty(String.valueOf(map.get("archive_type"))) ?"":map.get("archive_type"));
                if (jtSign) {
                    obj.put("signType", 1);
                } else {

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

@ -641,9 +641,9 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
            orderDO.setStatus(1);
            this.save(orderDO);
            if(orderDO.getType() == 3){
                serviceNewsService.addServiceNews(orderDO.getProxyPatientName(),orderDO.getProxyPatient(),"4",orderDO.getPatientName());
                serviceNewsService.addServiceNews(orderDO.getProxyPatientName(),orderDO.getProxyPatient(),"4",orderDO.getPatientName(),orderId,2);
            }else {
                serviceNewsService.addServiceNews(orderDO.getPatientName(),orderDO.getPatient(),"3",null);
                serviceNewsService.addServiceNews(orderDO.getPatientName(),orderDO.getPatient(),"3",null,orderId,1);
            }
        }
        else {

+ 38 - 3
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/message/BaseServiceNewsService.java

@ -3,9 +3,12 @@ package com.yihu.jw.care.service.message;
import com.yihu.jw.care.dao.device.PatientDeviceDao;
import com.yihu.jw.care.dao.message.BaseServiceNewsDao;
import com.yihu.jw.care.service.device.DeviceService;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.care.device.DevicePatientDevice;
import com.yihu.jw.entity.care.message.BaseServiceNews;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.util.common.IdCardUtil;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
@ -36,6 +39,8 @@ public class BaseServiceNewsService {
    private PatientDeviceDao patientDeviceDao;
    @Autowired
    private DeviceService deviceService;
    @Autowired
    private BasePatientDao patientDao;
    /**
     * 查找机构坐标
@ -114,13 +119,41 @@ public class BaseServiceNewsService {
     * @param size
     * @return
     */
    public List<BaseServiceNews> findNews(Integer size){
    public List<BaseServiceNews> findNews(Integer page,Integer size){
        if (null==page){
            page=0;
        }
        page = page>0?page-1:0;
        if(size==null||size<1){
            size = 9;
        }
        Sort sort = new Sort(Direction.DESC, "createTime");
        PageRequest pageRequest = new PageRequest(0, size, sort);
        PageRequest pageRequest = new PageRequest(page, size, sort);
        List<BaseServiceNews> list = baseServiceNewsDao.findNews(pageRequest);
        for (BaseServiceNews tmp:list){
            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 fee.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));
                    }
                }
            }
        }
        return list;
    }
@ -130,11 +163,13 @@ public class BaseServiceNewsService {
     * @param code
     * @param type 类型 1上门辅导、2发起咨询、3发起生活照料、4代预约
     */
    public void addServiceNews(String name,String code,String type,String patientName){
    public void addServiceNews(String name,String code,String type,String patientName,String relationCode,Integer userType){
        BaseServiceNews serviceNews = new BaseServiceNews();
        serviceNews.setName(name);
        serviceNews.setCode(code);
        serviceNews.setType(type);
        serviceNews.setUserType(userType);
        serviceNews.setRelationCode(relationCode);
        String content = "";
        switch (type){
            case "1":

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

@ -212,6 +212,7 @@ public class StatisticsService {
                        break;
                }
                object.put("archiveType",patient.getArchiveType());
                object.put("residentialArea",patient.getResidentialArea());
                String onLineStr = imUtil.findByUserIdAndType(log.getUserId().toString(),archive_type);
                JSONObject oneLineObj = JSONObject.parseObject(onLineStr);
                if (200 == oneLineObj.getInteger("status")){

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

@ -201,22 +201,42 @@ public class PatientInfoPlatFormService {
     * @param pageSize
     * @return
     */
    public PageEnvelop getEmergencyWarnOrderList(Integer page,Integer pageSize){
    public PageEnvelop getEmergencyWarnOrderList(String patient,Integer orderType,Integer page,Integer pageSize){
        page = page>0?page-1:0;
        String sql = " select '20' as OrderType,ord.id,ord.patient,p.name,'紧急呼叫' as serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time from base_emergency_assistance_order ord INNER JOIN base_patient p on ord.patient = p.id\n" +
                "UNION \n" +
                "select  '22' as 'OrderType',ord.id,ord.patient,p.name,ord.serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time from base_security_monitoring_order ord INNER JOIN base_patient p on ord.patient = p.id\n" +
                "order by create_time desc  ";
        String sql = " ";
        if (null==orderType){
            sql = " select '20' as OrderType,ord.id,ord.patient,p.name,'紧急呼叫' as serve_desc," +
                    " DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time from base_emergency_assistance_order ord " +
                    " INNER JOIN base_patient p on ord.patient = p.id {{patient}} \n" +
                    "UNION \n" +
                    "select  '22' as 'OrderType',ord.id,ord.patient,p.name,ord.serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time " +
                    " from base_security_monitoring_order ord INNER JOIN base_patient p on ord.patient = p.id {{patient}} \n" +
                    "order by create_time desc  ";
        }else if (20==orderType){
            sql = " select '20' as OrderType,ord.id,ord.patient,p.name,'紧急呼叫' as serve_desc," +
                    " DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time from base_emergency_assistance_order ord " +
                    " INNER JOIN base_patient p on ord.patient = p.id {{patient}} order by create_time desc ";
        }else if (22==orderType){
            sql=  "select  '22' as 'OrderType',ord.id,ord.patient,p.name,ord.serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time " +
                    " from base_security_monitoring_order ord INNER JOIN base_patient p on ord.patient = p.id {{patient}} \n" +
                    "order by create_time desc  ";
        }
        if (StringUtils.isNotBlank(patient)){
            sql = sql.replace("{{patient}}"," and p.id='"+patient+"' ");
        }
        else {
            sql = sql.replace("{{patient}}"," ");
        }
        String countSql = "select count(id) from ("+sql+")A ";
        long count = jdbcTemplate.queryForObject(countSql,long.class);
        sql +=" limit "+page*pageSize+","+pageSize;
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql.toString());
        return PageEnvelop.getSuccessListWithPage("查询成功",list,page,pageSize,count);
    }
    public PageEnvelop getEmergencyWarnOrderListNew(Integer page,Integer pageSize){
        page = page>0?page-1:0;
        String sql = " select  '22' as 'OrderType',ord.id,ord.patient,p.name,ord.serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time,ord.`status` \n" +
        String sql = " select  '22' as 'OrderType',p.archive_type archiveType,p.residential_area residentialArea,ord.id,ord.patient,p.name,ord.serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time,ord.`status` \n" +
                "from base_security_monitoring_order ord INNER JOIN base_patient p on ord.patient = p.id order by create_time desc ";
        String countSql = "select count(id) from ("+sql+")A ";
        long count = jdbcTemplate.queryForObject(countSql,long.class);
@ -227,7 +247,8 @@ public class PatientInfoPlatFormService {
    public PageEnvelop getEmergencyWarningListNew(Integer page,Integer pageSize){
        page = page>0?page-1:0;
        String sql = " select '20' as OrderType,ord.id,ord.patient,p.name,'紧急呼叫' as serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time,ord.`status` \n" +
        String sql = " select '20' as OrderType,p.archive_type archiveType,p.residential_area residentialArea,ord.id,ord.patient, " +
                "p.name,'紧急呼叫' as serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time,ord.`status` \n" +
                "from base_emergency_assistance_order ord INNER JOIN base_patient p on ord.patient = p.id order by create_time desc ";
        String countSql = "select count(id) from ("+sql+")A ";
        long count = jdbcTemplate.queryForObject(countSql,long.class);
@ -238,8 +259,10 @@ public class PatientInfoPlatFormService {
    public PageEnvelop getHealthMonitoringListNew(Integer page,Integer pageSize){
        page = page>0?page-1:0;
        String sql = " SELECT id,user,`name`,'健康监测' as serve_desc,czrq,value1,value2,value3,value4,value5,value6,value7,type \n" +
                "FROM wlyy_patient_health_index WHERE del = 1 AND type < 3 ORDER BY czrq ";
        String sql = " SELECT idx.id,idx.user,idx.`name`,p.archive_type archiveType,p.residential_area residentialArea,'健康监测' as serve_desc, " +
                "idx.czrq,value1,value2,value3,value4,value5,value6,value7,type FROM wlyy_patient_health_index idx " +
                " INNER JOIN base_patient p on idx.user = p.id and p.del=1\n" +
                " WHERE idx.del = 1 AND idx.type < 3 ORDER BY idx.czrq limit 1 ";
        String countSql = "select count(id) from ("+sql+")A ";
        long count = jdbcTemplate.queryForObject(countSql,long.class);
        sql +=" limit "+page*pageSize+","+pageSize;

+ 1 - 0
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/YsDeviceService.java

@ -371,6 +371,7 @@ public class YsDeviceService {
            os.close();
            is.close();
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println(filename);
        }