Преглед изворни кода

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

# Conflicts:
#	common/common-entity/src/main/java/com/yihu/jw/entity/IntegerIdentityEntity.java
wangzhinan пре 2 година
родитељ
комит
bfb4ab9e4f
35 измењених фајлова са 818 додато и 194 уклоњено
  1. 3 3
      app/app-iot-server/pom.xml
  2. 1 1
      app/public-health-server/pom.xml
  3. 0 6
      business/es-service/pom.xml
  4. 1 1
      business/sms-service/pom.xml
  5. 0 2
      common/common-entity/src/main/java/com/yihu/jw/entity/IntegerIdentityEntity.java
  6. 12 0
      common/common-entity/src/main/java/com/yihu/jw/entity/care/lifeCare/LifeCareItemDictDO.java
  7. 1 1
      common/common-entity/src/main/java/com/yihu/jw/entity/care/securitymonitoring/SecurityMonitoringOrderDO.java
  8. 1 5
      common/common-rest-model/pom.xml
  9. 1 1
      server/svr-authentication/pom.xml
  10. 1 1
      svr/svr-base/pom.xml
  11. 3 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/lifeCare/LifeCareItemDictDao.java
  12. 27 12
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/lifeCare/LifeCareEndpoint.java
  13. 72 19
      svr/svr-base/src/main/java/com/yihu/jw/base/service/lifeCare/LifeCareService.java
  14. 1 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/security/BaseEmergencyWarnLogDao.java
  15. 8 4
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/consult/PatientConsultEndpoint.java
  16. 157 4
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/device/DoctorDeviceController.java
  17. 135 7
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/device/PatientDeviceController.java
  18. 17 4
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/statistics/OpenStatisticsEndpoint.java
  19. 8 2
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/device/PatientDeviceService.java
  20. 22 6
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/lifeCare/LifeCareOrderService.java
  21. 1 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/message/BaseServiceNewsService.java
  22. 10 4
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/patient/CarePatientService.java
  23. 107 63
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/security/SecurityMonitoringOrderService.java
  24. 12 10
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/sign/ArchiveService.java
  25. 68 4
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/StatisticsService.java
  26. 36 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/third/PatientInfoPlatFormService.java
  27. 1 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/visit/BaseVisitService.java
  28. 2 1
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/endpoint/DeviceController.java
  29. 72 0
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/DeviceService.java
  30. 1 3
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/util/MQTTClientUtil.java
  31. 1 1
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/device/DeviceLostAssociationJob.java
  32. 17 15
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/util/DeviceLostMessageUtil.java
  33. 5 5
      svr/svr-statistics-es/pom.xml
  34. 5 5
      svr/svr-statistics/pom.xml
  35. 9 1
      wlyy-starter/pom.xml

+ 3 - 3
app/app-iot-server/pom.xml

@ -63,12 +63,12 @@
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.4.0</version>
            <version>2.7.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.4.0</version>
            <version>2.7.0</version>
        </dependency>
        <dependency>
            <groupId>io.searchbox</groupId>
@ -88,7 +88,7 @@
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20151123</version>
            <version>20160212</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>

+ 1 - 1
app/public-health-server/pom.xml

@ -75,7 +75,7 @@
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20151123</version>
            <version>20160212</version>
        </dependency>
        <dependency>

+ 0 - 6
business/es-service/pom.xml

@ -16,7 +16,6 @@
    <dependencies>
        <dependency>
            <groupId>com.yihu</groupId>
            <artifactId>mysql-starter</artifactId>
            <version>2.0.0</version>
@ -46,11 +45,6 @@
            <artifactId>base-service</artifactId>
            <version>2.0.0</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.72</version>
        </dependency>
        <!--elasticsearch start-->
        <dependency>
            <groupId>org.nlpcn</groupId>

+ 1 - 1
business/sms-service/pom.xml

@ -64,7 +64,7 @@
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-redis</artifactId>
            <version>RELEASE</version>
            <version>1.8.9.RELEASE</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>

+ 0 - 2
common/common-entity/src/main/java/com/yihu/jw/entity/IntegerIdentityEntity.java

@ -25,9 +25,7 @@ public abstract class IntegerIdentityEntity implements Serializable {
//==========mysql 环境 id策略 end======================================================
//==========Oracle 环境id策略 =========================================================
/*
   @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="id_generated")
*/
//==========Oracle 环境id策略 =========================================================
    public Integer getId() {
        return id;

+ 12 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/care/lifeCare/LifeCareItemDictDO.java

@ -8,6 +8,8 @@ import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
/**
 * Created by yeshijie on 2021/3/26.
@ -30,6 +32,7 @@ public class LifeCareItemDictDO extends UuidIdentityEntity{
    private String orgName;//服务机构名称
    private String orgPhoto;
    private String address;
    private List orgInfo;
    public String getCode() {
        return code;
@ -145,4 +148,13 @@ public class LifeCareItemDictDO extends UuidIdentityEntity{
    public void setAddress(String address) {
        this.address = address;
    }
    @Transient
    public List getOrgInfo() {
        return orgInfo;
    }
    public void setOrgInfo(List orgInfo) {
        this.orgInfo = orgInfo;
    }
}

+ 1 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/care/securitymonitoring/SecurityMonitoringOrderDO.java

@ -318,7 +318,7 @@ public class SecurityMonitoringOrderDO extends UuidIdentityEntityWithOperator {
    private String serviceStatus;//服务类型 1-预约项目 2-即时项目
    private String orderInfo;//工单详情 0-未推送 1-未确认 2-已确认
    private String doctorConfirmFinishImg;
    private Integer orderSource;//工单发起来源状态 1APP 2手环 3居家报警 4监控器发起 5睡眠带 6气感报警器 7 烟感报警器 8拐杖发起 9智慧水表
    private Integer orderSource;//工单发起来源状态 1APP 2手环 3居家报警 4监控器发起 5睡眠带 6气感报警器 7 烟感报警器 8拐杖发起 9智慧水表 10门禁 11电表
    private Integer emergencyCancel;// 紧急预警工单误报警原因 字典emergency_cancel
    private String topicItem;//安防工单所属专题 base_system_dict_entry表service_item
    private String sceneImg;//现场照片

+ 1 - 5
common/common-rest-model/pom.xml

@ -54,15 +54,11 @@
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>RELEASE</version>
            <version>4.3.13.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
        </dependency>
    </dependencies>
</project>

+ 1 - 1
server/svr-authentication/pom.xml

@ -185,7 +185,7 @@
        <dependency>
            <groupId>commons-discovery</groupId>
            <artifactId>commons-discovery</artifactId>
            <version>0.2</version>
            <version>0.5</version>
        </dependency>
        <dependency>
            <groupId>javax.wsdl</groupId>

+ 1 - 1
svr/svr-base/pom.xml

@ -180,7 +180,7 @@
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-core</artifactId>
            <version>RELEASE</version>
            <version>4.2.3.RELEASE</version>
            <scope>compile</scope>
        </dependency>

+ 3 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/lifeCare/LifeCareItemDictDao.java

@ -15,4 +15,7 @@ public interface LifeCareItemDictDao extends PagingAndSortingRepository<LifeCare
    @Query("from LifeCareItemDictDO w where  w.del=1 order by sort asc")
    List<LifeCareItemDictDO> findByAll();
    @Query("select a from LifeCareItemDictDO a where a.code = ?1 and a.orgCode = ?2")
    LifeCareItemDictDO findByCodeAndOrgCode(String code,String orgCode);
}

+ 27 - 12
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/lifeCare/LifeCareEndpoint.java

@ -11,10 +11,7 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@ -59,14 +56,16 @@ public class LifeCareEndpoint extends EnvelopRestEndpoint {
        }
    }
    @ApiOperation("删除生活照料服务项目")
    @RequestMapping(value = "/delLifeItem",method = RequestMethod.POST)
    public Envelop saveLifeItem(@ApiParam(name = "id",value = "机构名称",required = true)
                                @RequestParam(value = "id",required = false)String id,
    @ApiOperation("修改生活照料服务项目状态")
    @RequestMapping(value = "/updDelLifeItem",method = RequestMethod.POST)
    public Envelop saveLifeItem(@ApiParam(name = "code",value = "服务项code",required = true)
                                @RequestParam(value = "code",required = false)String code,
                                @ApiParam(name = "status",value = "1有效 0无效",required = true)
                                @RequestParam(value = "status",required = false)Integer status){
                                @RequestParam(value = "status",required = false)Integer status,
                                @ApiParam(name = "orgCode",value = "机构code",required = true)
                                @RequestParam(value = "orgCode",required = false)String orgCode){
        try {
            return success(lifeCareService.delLifeItem(id,status));
            return success(lifeCareService.updDelLifeItem(code,status,orgCode));
        }catch (Exception e){
            return failedException2(e);
        }
@ -74,8 +73,8 @@ public class LifeCareEndpoint extends EnvelopRestEndpoint {
    @ApiOperation("获取服务详情")
    @RequestMapping(value = "/getLifeItemDetail",method = RequestMethod.GET)
    public ObjEnvelop getLifeItemDetail(@ApiParam(name = "id",value = "机构名称",required = true)
                                    @RequestParam(value = "id",required = false)String id){
    public ObjEnvelop getLifeItemDetail(@ApiParam(name = "code",value = "服务项code",required = true)
                                    @RequestParam(value = "code",required = true)String id){
        try {
            return success(lifeCareService.getLifeItemDetail(id));
        }catch (Exception e){
@ -83,4 +82,20 @@ public class LifeCareEndpoint extends EnvelopRestEndpoint {
        }
    }
    @ApiOperation("删除服务项/机构服务项")
    @PostMapping(value = "/delLifeItem")
    public Envelop delLifeItem(@ApiParam(name = "code", value = "服务项code", required = true)
                               @RequestParam(value = "code", required = true) String code,
                               @ApiParam(name = "orgCode", value = "机构code", required = false)
                               @RequestParam(value = "orgCode", required = false) String orgCode) {
        try {
            return success(lifeCareService.delLifeItem(code, orgCode));
        } catch (Exception e) {
            return failedException2(e);
        }
    }
}

+ 72 - 19
svr/svr-base/src/main/java/com/yihu/jw/base/service/lifeCare/LifeCareService.java

@ -1,8 +1,8 @@
package com.yihu.jw.base.service.lifeCare;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.base.dao.lifeCare.LifeCareItemDictDao;
import com.yihu.jw.entity.care.lifeCare.LifeCareItemDictDO;
import com.yihu.jw.restmodel.web.PageEnvelop;
import org.apache.commons.lang3.RandomStringUtils;
@ -10,10 +10,10 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
import java.util.Random;
/**
 * Created by Bing on 2022/3/9.
@ -27,11 +27,16 @@ public class LifeCareService {
    /**
     * 1.7.6
     * 一个服务项会对应多个机构
     * 获取服务项目列表
     */
    public PageEnvelop<List<Map<String,Object>>> getServeDictList(String orgName, String itemName, Integer page, Integer size){
        String sql = " select dict.*,cast(dict.del as UNSIGNED INTEGER)as del,cast(org.name as char)as org_name  from base_life_care_item_dict dict INNER JOIN base_org org on dict.org_code = org.code  where dict.del=1 and org.del=1 ";
        String sqlCount = " select count(dict.id) from base_life_care_item_dict dict INNER JOIN base_org org on dict.org_code = org.code  where dict.del=1 and org.del=1  ";
        String sql = "SELECT dict.id,dict.`name`,dict.sort,dict.`code`,dict.life_care_img as lifeCareImg,dict.pad_icon_img as padIconImg,GROUP_CONCAT( DISTINCT dict.org_code SEPARATOR ',' ) AS orgCode" +
                ",GROUP_CONCAT( DISTINCT dict.org_name SEPARATOR ',' ) AS orgName FROM " +
                "base_life_care_item_dict dict INNER JOIN base_org org ON dict.org_code = org.CODE WHERE  org.del = 1" ;
        String sqlCount = " select count(dict.id) from base_life_care_item_dict dict INNER JOIN base_org org on dict.org_code = org.code  where  org.del=1  ";
        String filter = " ";
        if (StringUtils.isNotBlank(orgName)){
            filter +=" and org.name like '%"+orgName+"%' ";
@ -40,6 +45,9 @@ public class LifeCareService {
            filter +=" and dict.name like '%"+itemName+"%' ";
        }
        Long count = jdbcTemplate.queryForObject(sqlCount+filter,Long.class);
        filter +=" GROUP BY dict.`code` ";
        filter += " order by dict.org_code,dict.sort asc ";
        filter += " limit "+(page-1)*size+","+size;
@ -48,34 +56,79 @@ public class LifeCareService {
        return PageEnvelop.getSuccessListWithPage("success",list,page,size,count);
    }
    public String saveLifeItem(String json){
        LifeCareItemDictDO lifeCareItemDictDO = JSONObject.parseObject(json,LifeCareItemDictDO.class);
        if (StringUtils.isBlank(lifeCareItemDictDO.getId())){
            lifeCareItemDictDO.setDel(1);
            String code =" ";
            Boolean notExist=true;
            while (notExist){
    @Transactional(rollbackFor = Exception.class)
    public String saveLifeItem(String json) {
        List<LifeCareItemDictDO> lifeCareItemDictDO = JSONArray.parseArray(json, LifeCareItemDictDO.class);
        if (lifeCareItemDictDO.size() > 0 && StringUtils.isBlank(lifeCareItemDictDO.get(0).getId())) {
            String code = "";
            Boolean notExist = true;
            while (notExist) {
                code = RandomStringUtils.randomAlphanumeric(10);
                notExist = findServeItemByCode(code);
            }
            lifeCareItemDictDO.setCode(code);
            for (LifeCareItemDictDO careItemDictDO : lifeCareItemDictDO) {
                careItemDictDO.setCode(code);
            }
        }
        String lifeItemCode = lifeCareItemDictDO.get(0).getCode();
        String delOrgLifeItemSql = "DELETE FROM base_life_care_item_dict where code ='"+lifeItemCode+"' ";
        jdbcTemplate.update(delOrgLifeItemSql);
        lifeCareItemDictDao.save(lifeCareItemDictDO);
        return "success";
    }
    public String delLifeItem(String id,Integer status){
        LifeCareItemDictDO lifeCareItemDictDO = lifeCareItemDictDao.findOne(id);
        if(null == lifeCareItemDictDO){
    public String updDelLifeItem(String code, Integer status, String orgCode) {
        String sql = "select * from base_life_care_item_dict  where code = '" + code + "' ";
        if (StringUtils.isNotBlank(orgCode)) {
            sql += " and orgCode = '" + orgCode + "'";
        }
        List<LifeCareItemDictDO> lifeCareItemDictDOList = jdbcTemplate.queryForList(sql, LifeCareItemDictDO.class);
        if (lifeCareItemDictDOList.size() < 1) {
            return " 未找到改服务项目 ";
        }
        lifeCareItemDictDO.setDel(status);
        lifeCareItemDictDao.save(lifeCareItemDictDO);
        lifeCareItemDictDOList.stream().forEach(lifeCareItemDictObj -> lifeCareItemDictObj.setDel(status));
        lifeCareItemDictDao.save(lifeCareItemDictDOList);
        return "success";
    }
    public LifeCareItemDictDO getLifeItemDetail(String id){
        return lifeCareItemDictDao.findOne(id);
    @Transactional(rollbackFor = Exception.class)
    public String delLifeItem(String code, String orgCode){
        String sql = "DELETE FROM base_life_care_item_dict where code = '"+code+"'";
        if (StringUtils.isNotBlank(orgCode)) {
            sql+= " and orgCode ='"+orgCode+"'";
        }
        jdbcTemplate.update(sql);
        return "success";
    }
    public JSONObject getLifeItemDetail(String code){
        JSONObject result = new JSONObject();
        String lifeSql = "SELECT id,code,name,sort,del*1 as del,life_care_img AS lifeCareImg,pad_icon_img as padIconImg,org_code AS orgCode,org_name AS orgName,charge_standard AS chargeStandard," +
                "serve_standard AS serveStandard,remark FROM base_life_care_item_dict WHERE `code` = '"+code+"' ";
        List<Map<String, Object>> lifeList = jdbcTemplate.queryForList(lifeSql);
        if (lifeList.size()>0) {
            JSONObject lifeItemObj = new JSONObject();
            lifeItemObj.put("name",lifeList.get(0).get("name"));
            lifeItemObj.put("code",lifeList.get(0).get("code"));
            lifeItemObj.put("sort",lifeList.get(0).get("sort"));
            lifeItemObj.put("del",lifeList.get(0).get("del"));
            lifeItemObj.put("lifeCareImg",lifeList.get(0).get("lifeCareImg"));
            lifeItemObj.put("padIconImg",lifeList.get(0).get("padIconImg"));
            result.put("lifeItem",lifeItemObj);
        }
        result.put("data",lifeList);
        return result;
    }
    public boolean findServeItemByCode(String code){

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/security/BaseEmergencyWarnLogDao.java

@ -14,7 +14,7 @@ public interface BaseEmergencyWarnLogDao extends PagingAndSortingRepository<Base
        JpaSpecificationExecutor<BaseEmergencyWarnLogDO> {
    @Query("select w from BaseEmergencyWarnLogDO w where w.orderId = ?1 and w.type is null ")
    List<BaseEmergencyWarnLogDO> findByOrderIdOrderByCreateTimeDesc(String oderId);
    List<BaseEmergencyWarnLogDO> findByOrderIdOrderByCreateTimeDesc(String oderId);//工单操作日志,有type的为工单流程关键步骤
    @Query("select w from BaseEmergencyWarnLogDO w where w.orderId = ?1 and w.type = 1")
    List<BaseEmergencyWarnLogDO> findByOrderIdByType(String orderId);

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

@ -14,6 +14,7 @@ import com.yihu.jw.entity.base.im.ConsultTeamDo;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.wx.WxWechatDO;
import com.yihu.jw.entity.hospital.message.SystemMessageDO;
import com.yihu.jw.entity.util.AesEncryptUtils;
import com.yihu.jw.file_upload.FileUploadService;
import com.yihu.jw.hospital.family.service.WlyyFamilyMemberService;
import com.yihu.jw.hospital.message.service.SystemMessageService;
@ -142,9 +143,8 @@ public class PatientConsultEndpoint extends EnvelopRestEndpoint {
	@PostMapping(value = "sendGetuiMessage")
	@ApiOperation(value = "im推送个推消息")
	public Envelop sendGetuiMessage(String sessionId,String type,String contentType,String senderName,String senderId,String targetId){
	public Envelop sendGetuiMessage(String sessionId,String type,String contentType,String senderName,String senderId,String targetId,String content){
		try {
			logger.info("im推送1个推消息"+sessionId+","+senderName+","+targetId);
			String body = "收到来自"+senderName+"的一条消息,请关注并及时处理。";
			String peerName = null;
			String sql = "SELECT name from im_internet_hospital.sessions WHERE id = '"+sessionId+"'";
@ -152,10 +152,14 @@ public class PatientConsultEndpoint extends EnvelopRestEndpoint {
			if(list!=null&&list.size()>0){
				peerName = URLEncoder.encode(list.get(0).get("name").toString(), "UTF-8");
			}
			String url = "/chatroom/index?type="+type+"&peerId="+senderId+"&action=callVideo&peerName="+peerName+"&sessionId="+sessionId;
			if(StringUtils.isNotBlank(content)){
				content = URLEncoder.encode(AesEncryptUtils.encrypt(content,"46A61629A19AE04C"), "UTF-8");
			}
			String url = "/chatroom/index?type="+type+"&peerId="+senderId+"&action=callVideo&peerName="+peerName+"&sessionId="+sessionId+"&content="+content;
			logger.info("url="+url);
			messageUtil.sendDoctorGetuiMessage(targetId,"4",url,"im消息",body);
			messageUtil.sendDoctorDingdingMessage(null,targetId,"text","4",body,null,null);
//			messageUtil.sendDoctorDingdingMessage(null,targetId,"text","4",body,null,null);
			return Envelop.getSuccess("请求成功");
		}catch (Exception e){
			e.printStackTrace();

+ 157 - 4
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/device/DoctorDeviceController.java

@ -9,6 +9,7 @@ import com.yihu.jw.care.service.common.PermissionService;
import com.yihu.jw.care.service.contacts.ContactsService;
import com.yihu.jw.care.service.device.DeviceManageService;
import com.yihu.jw.care.service.device.PatientDeviceService;
import com.yihu.jw.care.service.device.PatientHealthIndexService;
import com.yihu.jw.care.useragent.UserAgent;
import com.yihu.jw.entity.care.device.DevicePatientDevice;
import com.yihu.jw.entity.patient.BaseDeviceRepairEntity;
@ -17,15 +18,13 @@ import com.yihu.jw.restmodel.web.PageEnvelop;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONArray;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@ -51,6 +50,8 @@ public class DoctorDeviceController extends BaseController {
	private ContactsService contactsService;
	@Autowired
	UserAgent userAgent;
	@Autowired
	private PatientHealthIndexService healthIndexService;
	private ObjectMapper  objectMapper=new ObjectMapper();
@ -314,4 +315,156 @@ public class DoctorDeviceController extends BaseController {
		}
	}
	@GetMapping(value = "getHealthIndexInfoWithAvg")
	@ApiOperation("获取居民心率波动和呼吸频率--带平均值(医生端)")
	public String getHealthIndexInfoWithAvg(@ApiParam(name="patient",value="患者代码",defaultValue = "eb0b478fbe9245428ecf63cd7517206f")
											@RequestParam(value="patient",required = false) String patient,
											@ApiParam(name="type",value="健康指标类型(1血糖,2血压,3体重/身高/BMI,4腰围,5心率,6体温,7呼吸)",defaultValue = "1")
											@RequestParam(value="type",required = true) Integer type,
											@ApiParam(name="gi_type",value="就餐类型",defaultValue = "0")
											@RequestParam(value = "gi_type",required = false,defaultValue = "0") Integer gi_type,
											@ApiParam(name="begin",value="开始时间",defaultValue = "2021-10-20 00:00:00")
											@RequestParam(value="begin",required = true) String begin,
											@ApiParam(name="end",value="结束时间",defaultValue = "2021-10-21 00:00:00")
											@RequestParam(value="end",required = true) String end,
											@ApiParam(name = "deviceSn",required = false)
											@RequestParam(value = "deviceSn",required = false) String deviceSn){
		try {
			//医生端登录鉴权
			JSONObject jsonObject = new JSONObject();
			jsonObject.put("doctorId",permissionService.getUID());
			if (permissionService.noPermission(1, jsonObject)) {
				return error(-1,"该操作没有权限");
			}
			return write(200,"查询成功","data",healthIndexService.findChartByPatientWithAvg(patient,type,gi_type,begin,end,deviceSn));
		}catch (Exception e){
			return errorResult(e);
		}
	}
	@ApiOperation("获取睡眠带睡眠报告")
	@RequestMapping(value ="getSleepReport",method = RequestMethod.GET)
	public String getSleepReport(@ApiParam(name="patient")@RequestParam(value = "patient",required = false)String patient,
								 @ApiParam(name="deviceSn")@RequestParam(value = "deviceSn",required = false)String deviceSn,
								 @ApiParam(name="day")@RequestParam(value = "day",required = false)String day){
		try {
			//医生端登录鉴权
			JSONObject jsonObject = new JSONObject();
			jsonObject.put("doctorId",permissionService.getUID());
			if (permissionService.noPermission(1, jsonObject)) {
				return error(-1,"该操作没有权限");
			}
			if (StringUtils.isBlank(patient)&&StringUtils.isBlank(deviceSn)){
				return error(-1,"请求参数");
			}
			org.json.JSONObject result = patientDeviceService.getSleepReport(patient,deviceSn,day);
			if (ResponseContant.success==result.getInt(ResponseContant.resultFlag)){
				return write(200,"获取成功","data",result.get(ResponseContant.resultMsg));
			}else {
				return error(-1,result.getString(ResponseContant.resultMsg));
			}
		}catch (Exception e){
			return errorResult(e);
		}
	}
	@ApiOperation("获取患者手表睡眠质量(医生端)")
	@RequestMapping(value = "getX1SleepInfo", method = RequestMethod.GET)
	public String getX1SleepInfo(@ApiParam(name = "patient") @RequestParam(value = "patient", required = false) String patient,
								 @ApiParam(name = "deviceSn") @RequestParam(value = "deviceSn", required = false) String deviceSn,
								 @ApiParam(name = "day") @RequestParam(value = "day", required = false) String day) {
		try {
			//医生端登录鉴权
			JSONObject jsonObject = new JSONObject();
			jsonObject.put("doctorId",permissionService.getUID());
			if (permissionService.noPermission(1, jsonObject)) {
				return error(-1,"该操作没有权限");
			}
			if (StringUtils.isBlank(patient) && StringUtils.isBlank(deviceSn)) {
				return write(-1,"请求参数");
			}
			org.json.JSONObject result = patientDeviceService.getX1SleepInfo(patient, deviceSn, day);
			if (ResponseContant.success == result.getInt(ResponseContant.resultFlag)) {
				return write(200,"获取成功","data", result.get(ResponseContant.resultMsg));
			} else {
				return write(-1,result.getString(ResponseContant.resultMsg));
			}
		} catch (Exception e) {
			return errorResult(e);
		}
	}
	@ApiOperation("获取患者手表步数数据(医生端)")
	@RequestMapping(value = "getPatientStep", method = RequestMethod.GET)
	public String getPatientStep(@ApiParam(name = "patient") @RequestParam(value = "patient", required = false) String patient,
								 @ApiParam(name = "deviceSn") @RequestParam(value = "deviceSn", required = false) String deviceSn,
								 @ApiParam(name = "day") @RequestParam(value = "day", required = false) String day) {
		try {
			//医生端登录鉴权
			JSONObject jsonObject = new JSONObject();
			jsonObject.put("doctorId",permissionService.getUID());
			if (permissionService.noPermission(1, jsonObject)) {
				return error(-1,"该操作没有权限");
			}
			if (StringUtils.isBlank(patient) && StringUtils.isBlank(deviceSn)) {
				return write(-1,"请求参数");
			}
			org.json.JSONObject result = patientDeviceService.getPatientStep(patient, deviceSn, day);
			if (ResponseContant.success == result.getInt(ResponseContant.resultFlag)) {
				return write(200,"获取成功","data", result.get(ResponseContant.resultMsg));
			} else {
				return write(-1,result.getString(ResponseContant.resultMsg));
			}
		} catch (Exception e) {
			return errorResult(e);
		}
	}
	@ApiOperation("获取烟雾/燃气浓度列表(医生端)")
	@RequestMapping(value = "getSmokeOrGasList", method = RequestMethod.GET)
	public String getSmokeOrGasList(@ApiParam(name = "deviceSn") @RequestParam(value = "deviceSn", required = true) String deviceSn,
										 @ApiParam(name = "day", value = "yyyy-MM-dd") @RequestParam(value = "day", required = false) String day) {
		try {
			//医生端登录鉴权
			JSONObject jsonObject = new JSONObject();
			jsonObject.put("doctorId",permissionService.getUID());
			if (permissionService.noPermission(1, jsonObject)) {
				return error(-1,"该操作没有权限");
			}
			return write(200,"获取成功","list", patientDeviceService.getSmokeOrGasList(deviceSn, day));
		} catch (Exception e) {
			return errorResult(e);
		}
	}
	@ApiOperation("获取设备详情数据 --设备可多人绑定查询数据时与patient无关-医生端")
	@RequestMapping(value = "getPatientDeviceDataNew",method = RequestMethod.GET)
	public String getPatientDeviceDataNew(@ApiParam(name="patient")
										  @RequestParam(value = "patient")String patient,
										  @ApiParam(name="deviceSn")
										  @RequestParam(value = "deviceSn")String deviceSn,
										  @ApiParam(name="page")
										  @RequestParam(value = "page")Integer page,
										  @ApiParam(name="pageSize")
										  @RequestParam(value = "pageSize")Integer pageSize,
										  @ApiParam(name = "type", value = "0全部 1日常监护 2预警记录(工单列表)") @RequestParam(value = "type", required = false) String type){
		try {
			//医生端登录鉴权
			JSONObject jsonObject = new JSONObject();
			jsonObject.put("doctorId",permissionService.getUID());
			if (permissionService.noPermission(1, jsonObject)) {
				return error(-1,"该操作没有权限");
			}
			return write(200,"获取成功","data",patientDeviceService.getPatientDeviceData(patient,type,deviceSn,page,pageSize));
		}catch (Exception e){
			return errorResult(e);
		}
	}
}

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

@ -15,9 +15,7 @@ import com.yihu.jw.entity.care.device.BaseSleepPlan;
import com.yihu.jw.entity.care.device.DevicePatientDevice;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.util.entity.ServiceException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
@ -27,10 +25,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.HashMap;
@ -62,6 +57,8 @@ public class PatientDeviceController extends BaseController {
    DeviceManageService deviceManageService;
    @Autowired
    PermissionService permissionService;
    @Autowired
    private PatientHealthIndexService healthIndexService;
@ -466,9 +463,15 @@ public class PatientDeviceController extends BaseController {
            if (StringUtils.isBlank(patient)&&StringUtils.isBlank(deviceSn)){
                return error(-1,"请求参数");
            }
            //居民端登录鉴权
            com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject();
            jsonObject.put("patient",permissionService.getUID());
            if (permissionService.noPermission(1, jsonObject)) {
                return write(-1,"该操作没有权限");
            }
            JSONObject result = patientDeviceService.getSleepReport(patient,deviceSn,day);
            if (ResponseContant.success==result.getInt(ResponseContant.resultFlag)){
                return write(200,"获取成功","data",result.getJSONObject(ResponseContant.resultMsg));
                return write(200,"获取成功","data",result.get(ResponseContant.resultMsg));
            }else {
                return error(-1,result.getString(ResponseContant.resultMsg));
            }
@ -522,4 +525,129 @@ public class PatientDeviceController extends BaseController {
        }
    }
    @GetMapping(value = "getHealthIndexInfoWithAvg")
    @ApiOperation("获取居民心率波动和呼吸频率--带平均值(居民端)")
    public String getHealthIndexInfoWithAvg(@ApiParam(name="patient",value="患者代码",defaultValue = "eb0b478fbe9245428ecf63cd7517206f")
                                            @RequestParam(value="patient",required = false) String patient,
                                            @ApiParam(name="type",value="健康指标类型(1血糖,2血压,3体重/身高/BMI,4腰围,5心率,6体温,7呼吸)",defaultValue = "1")
                                            @RequestParam(value="type",required = true) Integer type,
                                            @ApiParam(name="gi_type",value="就餐类型",defaultValue = "0")
                                            @RequestParam(value = "gi_type",required = false,defaultValue = "0") Integer gi_type,
                                            @ApiParam(name="begin",value="开始时间",defaultValue = "2021-10-20 00:00:00")
                                            @RequestParam(value="begin",required = true) String begin,
                                            @ApiParam(name="end",value="结束时间",defaultValue = "2021-10-21 00:00:00")
                                            @RequestParam(value="end",required = true) String end,
                                            @ApiParam(name = "deviceSn",required = false)
                                            @RequestParam(value = "deviceSn",required = false) String deviceSn){
        try {
            //居民端登录鉴权
            com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject();
            jsonObject.put("patient",permissionService.getUID());
            if (permissionService.noPermission(1, jsonObject)) {
                return write(-1,"该操作没有权限");
            }
            return write(200,"查询成功","data",healthIndexService.findChartByPatientWithAvg(patient,type,gi_type,begin,end,deviceSn));
        }catch (Exception e){
            return errorResult(e);
        }
    }
    @ApiOperation("获取患者手表睡眠质量(居民端)")
    @RequestMapping(value = "getX1SleepInfo", method = RequestMethod.GET)
    public String getX1SleepInfo(@ApiParam(name = "patient") @RequestParam(value = "patient", required = false) String patient,
                                     @ApiParam(name = "deviceSn") @RequestParam(value = "deviceSn", required = false) String deviceSn,
                                     @ApiParam(name = "day") @RequestParam(value = "day", required = false) String day) {
        try {
            //居民端登录鉴权
            com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject();
            jsonObject.put("patient",permissionService.getUID());
            if (permissionService.noPermission(1, jsonObject)) {
                return write(-1,"该操作没有权限");
            }
            if (StringUtils.isBlank(patient) && StringUtils.isBlank(deviceSn)) {
                return write(-1,"请求参数");
            }
            org.json.JSONObject result = patientDeviceService.getX1SleepInfo(patient, deviceSn, day);
            if (ResponseContant.success == result.getInt(ResponseContant.resultFlag)) {
                return write(200,"获取成功","data", result.get(ResponseContant.resultMsg));
            } else {
                return write(-1,result.getString(ResponseContant.resultMsg));
            }
        } catch (Exception e) {
            return errorResult(e);
        }
    }
    @ApiOperation("获取患者手表步数数据(居民端)")
    @RequestMapping(value = "getPatientStep", method = RequestMethod.GET)
    public String getPatientStep(@ApiParam(name = "patient") @RequestParam(value = "patient", required = false) String patient,
                                     @ApiParam(name = "deviceSn") @RequestParam(value = "deviceSn", required = false) String deviceSn,
                                     @ApiParam(name = "day") @RequestParam(value = "day", required = false) String day) {
        try {
            //居民端登录鉴权
            com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject();
            jsonObject.put("patient",permissionService.getUID());
            if (permissionService.noPermission(1, jsonObject)) {
                return write(-1,"该操作没有权限");
            }
            if (StringUtils.isBlank(patient) && StringUtils.isBlank(deviceSn)) {
                return write(-1,"请求参数");
            }
            org.json.JSONObject result = patientDeviceService.getPatientStep(patient, deviceSn, day);
            if (ResponseContant.success == result.getInt(ResponseContant.resultFlag)) {
                return write(200,"获取成功","data", result.get(ResponseContant.resultMsg));
            } else {
                return write(-1,result.getString(ResponseContant.resultMsg));
            }
        } catch (Exception e) {
            return errorResult(e);
        }
    }
    @ApiOperation("获取烟雾/燃气浓度列表(居民端)")
    @RequestMapping(value = "getSmokeOrGasList", method = RequestMethod.GET)
    public String getSmokeOrGasList(@ApiParam(name = "deviceSn") @RequestParam(value = "deviceSn", required = true) String deviceSn,
                                    @ApiParam(name = "day", value = "yyyy-MM-dd") @RequestParam(value = "day", required = false) String day) {
        try {
            //居民端登录鉴权
            com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject();
            jsonObject.put("patient",permissionService.getUID());
            if (permissionService.noPermission(1, jsonObject)) {
                return write(-1,"该操作没有权限");
            }
            return write(200,"获取成功","list", patientDeviceService.getSmokeOrGasList(deviceSn, day));
        } catch (Exception e) {
            return errorResult(e);
        }
    }
    @ApiOperation("获取设备详情数据 --设备可多人绑定查询数据时与patient无关-居民端")
    @RequestMapping(value = "getPatientDeviceDataNew",method = RequestMethod.GET)
    public String getPatientDeviceDataNew(@ApiParam(name="patient")
                                       @RequestParam(value = "patient")String patient,
                                       @ApiParam(name="deviceSn")
                                       @RequestParam(value = "deviceSn")String deviceSn,
                                       @ApiParam(name="page")
                                       @RequestParam(value = "page")Integer page,
                                       @ApiParam(name="pageSize")
                                       @RequestParam(value = "pageSize")Integer pageSize,
                                       @ApiParam(name = "type", value = "0全部 1日常监护 2预警记录(工单列表)") @RequestParam(value = "type", required = false) String type){
        try {
            //居民端登录鉴权
            com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject();
            jsonObject.put("patient",permissionService.getUID());
            if (permissionService.noPermission(1, jsonObject)) {
                return write(-1,"该操作没有权限");
            }
            return write(200,"获取成功","data",patientDeviceService.getPatientDeviceData(patient,type,deviceSn,page,pageSize));
        }catch (Exception e){
            return errorResult(e);
        }
    }
}

+ 17 - 4
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/statistics/OpenStatisticsEndpoint.java

@ -1,6 +1,5 @@
package com.yihu.jw.care.endpoint.statistics;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.service.assistance.EmergencyAssistanceService;
@ -18,12 +17,9 @@ 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.nlpcn.es4sql.jdbc.ObjectResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.*;
/**
 * Created with IntelliJ IDEA.
 *
@ -458,5 +454,22 @@ public class OpenStatisticsEndpoint extends EnvelopRestEndpoint {
        }
    }
    @GetMapping(value = "findTendOld")
    @ApiOperation(value = "获取照护老人列表")
    public ObjEnvelop findTendOld(@ApiParam(name="page",value = "页码",required = false)
                                       @RequestParam(value = "page",required = true,defaultValue = "1") Integer page,
                                   @ApiParam(name="size",value = "分页大小",required = false)
                                       @RequestParam(value = "size",required = true,defaultValue = "5") Integer size){
        try {
            JSONObject tendOld = statisticsService.findTendOld(page, size);
            return success(tendOld);
        } catch (Exception e) {
            e.printStackTrace();
            return failedObjEnvelopException2(e);
        }
    }
}

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

@ -1142,6 +1142,12 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
                        }
                    }
                    break;
                case "18"://日常用水监测
                    break;
                case "19": //门禁 todo 出入记录
                    break;
                case "20": //电表 todo 日常用电情况
                    break;
            }
//        }
                result.put(ResponseContant.resultFlag,ResponseContant.success);
@ -1159,7 +1165,7 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
     */
    public JSONObject getSleepReport(String patient,String deviceSn,String day){
        JSONObject result = new JSONObject();
        String sql = " select * from base_sleep_device where 1=1 ";
        String sql = " select * from base_sleep_device where del=1 ";
        if (StringUtils.isNotBlank(patient)){
            sql +=" and patient='"+patient+"'";
        }
@ -1464,7 +1470,7 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
                for (BaseEmergencyWarnLogDO tmp:logDOS){
                    tmp.setTimeInfo(DateUtil.getDifferentTimeInfo(new Date(),tmp.getCreateTime(),0));
                }
                map.put("orderLog",logDOS);
                map.put("orderLog",JSON.parseArray(JSON.toJSONStringWithDateFormat(logDOS,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue)));
                // (起床预警时长3 午睡预警时长5 起夜预警时长2 详情见设备项目睡眠带发起时定义) (离开安全区域超出距离km) (燃气烟雾 报警时浓度)
                if ("22".equals(orderType)){
                    JSONObject info = new JSONObject();

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

@ -471,14 +471,30 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
     * @return
     */
    public List<LifeCareItemDictDO> findItemDict(String orgCode){
        String sql = " select dict.*,org.address,org.photo as orgPhoto from base_life_care_item_dict dict " +
                " LEFT JOIN base_org org  on dict.org_code = org.`code` where 1=1 " ;
        String sql = "select dict.id,dict.`code`,dict.`name`," +
                " GROUP_CONCAT( DISTINCT dict.org_code SEPARATOR ',' ) AS orgCode,dict.life_care_img,dict.pad_icon_img  " +
                " from base_life_care_item_dict dict LEFT JOIN base_org org  on dict.org_code = org.`code` where 1=1 " ;
        if (StringUtils.isNotBlank(orgCode)){
            sql += " and dict.org_code='"+orgCode+"' ";
        }
        sql+=  " and dict.del=1 order by dict.sort asc  ";
        List<LifeCareItemDictDO> list = jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(LifeCareItemDictDO.class));
        return list;
        sql+=  " and dict.del=1  GROUP BY dict.`code` order by dict.sort asc ";
        List<LifeCareItemDictDO> lifeCareItemDictList = jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(LifeCareItemDictDO.class));
        for (LifeCareItemDictDO lifeCareItemDictDO : lifeCareItemDictList) {
            if (StringUtils.isNotBlank(lifeCareItemDictDO.getOrgCode())) {
                String replace = lifeCareItemDictDO.getOrgCode().replace(",", "','");
                String orgSqlList = " SELECT dict.org_code AS orgCode,dict.org_name AS orgName,dict.charge_standard AS chargeStandard," +
                        " dict.serve_standard AS serveStandard,org.address,org.photo,dict.remark,dict.price FROM base_life_care_item_dict dict " +
                        " LEFT JOIN base_org org  on dict.org_code = org.`code` WHERE dict.`code` = '"+lifeCareItemDictDO.getCode()+"' and dict.del = 1 AND org.`code` in ('"+replace+"')";
                List<Map<String, Object>> orgList = jdbcTemplate.queryForList(orgSqlList);
                lifeCareItemDictDO.setOrgInfo(orgList);
            }
        }
        return lifeCareItemDictList;
    }
    /**
@ -1122,7 +1138,7 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
                " ) A ON dict. CODE = A. CODE " +
                " WHERE " +
                " dict.del = 1 " +
                " AND dict.org_code = '"+orgCode+"'";
                " AND dict.org_code = '"+orgCode+"' order by dict.sort";
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
        return list;
    }

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

@ -77,7 +77,7 @@ public class BaseServiceNewsService {
     * @return
     */
    public List<Map<String,Object>> findPatinetByName(String name){
        String sql = "SELECT p.id,p.`name`,p.address,p.photo,p.mobile,p.lat_lon latLon,sex,idcard,p.pad_imei,p.openid,CAST(archive_type AS char) type,p.sign_status as signStatus from base_patient p\n" +
        String sql = "SELECT p.id,p.`name`,p.address,p.photo,p.mobile,p.lat_lon latLon,sex,idcard,p.pad_imei,p.openid,CAST(archive_type AS char) type,(p.sign_status * 1) as signStatus from base_patient p\n" +
                "WHERE p.del = 1 and p.name like '%"+name+"%'";
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        List<DevicePatientDevice> feeDetail = patientDeviceDao.findByAll();

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

@ -125,13 +125,19 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
            patientDO.setSsc(null);
            patientDO.setMobile(mobile);
            patientDO.setSex(Integer.valueOf(IdCardUtil.getSexForIdcard_new(idcard)));
            try {
                patientDO.setBirthday(IdCardUtil.getBirthdayForIdcard(idcard));
            }catch (Exception e){
                e.printStackTrace();
            }
            patientDO.setName(name);
            patientDO.setArchiveType(1);
            patientDO.setArchiveStatus(1);
            if(patientDO.getSex()==2){
                patientDO.setPhoto("group1/M00/00/7C/rBoAbmIu8g6ANMrpAAAiSDNDGrM907.png");
                patientDO.setPhoto("group1/M00/00/04/ChIrKGIxtGOAeZ1HAAAiSDNDGrM335.png");
            }else{
                patientDO.setPhoto("group1/M00/00/5A/rBoAb2Iu8gOAQ9WYAAAgcmCLvjQ782.png");
                patientDO.setPhoto("group1/M00/00/04/ChIrKGIxtDmAaIxuAAAgcmCLvjQ862.png");
            }
            patientDO.setDel("1");
            patientDO.setLocked(0);
@ -201,9 +207,9 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
                patientDO.setArchiveType(1);
                patientDO.setArchiveStatus(1);
                if(patientDO.getSex()==2){
                    patientDO.setPhoto("group1/M00/00/7C/rBoAbmIu8g6ANMrpAAAiSDNDGrM907.png");
                    patientDO.setPhoto("group1/M00/00/04/ChIrKGIxtGOAeZ1HAAAiSDNDGrM335.png");
                }else{
                    patientDO.setPhoto("group1/M00/00/5A/rBoAb2Iu8gOAQ9WYAAAgcmCLvjQ782.png");
                    patientDO.setPhoto("group1/M00/00/04/ChIrKGIxtDmAaIxuAAAgcmCLvjQ862.png");
                }
                patientDO.setDel("1");
                patientDO.setLocked(0);

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

@ -733,6 +733,12 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
                case "dailyWater":
                    categoryCode = "'18'";
                    break;
                case "accessControl":
                    categoryCode = "'19'";
                    break;
                case "electricControl":
                    categoryCode = "'20'";
                    break;
            }
            if (StringUtils.isNotBlank(doctor)) {//日常监护医生必传
                BaseDoctorDO doctorDO = baseDoctorDao.findById(doctor);
@ -905,6 +911,12 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
                case "dailyWater":
                    categoryCode = "'18'";
                    break;
                case "accessControl":
                    categoryCode = "'19'";
                    break;
                case "electricControl":
                    categoryCode = "'20'";
                    break;
            }
            if (StringUtils.isNotBlank(doctor)) {//日常监护医生必传
                BaseDoctorDO doctorDO = baseDoctorDao.findById(doctor);
@ -1692,6 +1704,42 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
                        }
                    }
                    break;
                case "accessControl":
                    if (patientDeviceService.patientDeviceListByTopic(patient,"accessControl").size()==0){
                        result.put("accessControl", null);
                    }else {
                        Integer count = Integer.parseInt(tmp.get("total").toString());
                        if (count > 0) {
                            result.put("accessControl", true);
                            sql = " select serve_desc from base_security_monitoring_order where topic_item='accessControl' " +
                                    "and patient='" + patient + "' and `status`=1 order by create_time desc limit 1 ";
                            List<String> serveDesces = jdbcTemplate.queryForList(sql, String.class);
                            if (serveDesces.size() > 0) {
                                result.put("accessControlOrderInfo", serveDesces.get(0));
                            }
                        } else {
                            result.put("accessControl", false);
                        }
                    }
                    break;
                case "electricControl":
                    if (patientDeviceService.patientDeviceListByTopic(patient,"electricControl").size()==0){
                        result.put("electricControl", null);
                    }else {
                        Integer count = Integer.parseInt(tmp.get("total").toString());
                        if (count > 0) {
                            result.put("electricControl", true);
                            sql = " select serve_desc from base_security_monitoring_order where topic_item='electricControl' " +
                                    "and patient='" + patient + "' and `status`=1 order by create_time desc limit 1 ";
                            List<String> serveDesces = jdbcTemplate.queryForList(sql, String.class);
                            if (serveDesces.size() > 0) {
                                result.put("electricControlOrderInfo", serveDesces.get(0));
                            }
                        } else {
                            result.put("electricControl", false);
                        }
                    }
                    break;
            }
        }
        sql = " select count(id) from base_emergency_assistance_order  where patient='" + patient + "' and status=" + EmergencyAssistanceDO.Status.apply.getType();
@ -1715,67 +1763,14 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
                "and dict.remark='security'  GROUP BY dict.code ";
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
        for (Map<String, Object> tmp : list) {
            switch (tmp.get("code").toString()) {
                case "preventGasLeakage":
                    List<Map<String,Object>> devices = patientDeviceService.patientDeviceListByTopic(patient,"preventGasLeakage");
                    if (devices.size()>0) {
                        tmp.put("band", true);
                        tmp.put("devices", devices);
                    }else {
                        tmp.put("band", false);
                        tmp.put("devices", null);
                    }
                    break;
                case "preventFire":
                    devices = patientDeviceService.patientDeviceListByTopic(patient,"preventFire");
                    if (devices.size()>0){
                        tmp.put("band", true);
                        tmp.put("devices", devices);
                    }else {
                        tmp.put("band", false);
                        tmp.put("devices", null);
                    }
                    break;
                case "preventFall":
                    devices = patientDeviceService.patientDeviceListByTopic(patient,"preventFall");
                    if (devices.size()>0){
                        tmp.put("band", true);
                        tmp.put("devices", devices);
                    }else {
                        tmp.put("band", false);
                        tmp.put("devices", null);
                    }
                    break;
                case "preventOutOfBed":
                    devices = patientDeviceService.patientDeviceListByTopic(patient,"preventOutOfBed");
                    if (devices.size()>0){
                        tmp.put("band", true);
                        tmp.put("devices", devices);
                    }else {
                        tmp.put("band", false);
                        tmp.put("devices", null);
                    }
                    break;
                case "preventLost":
                    devices = patientDeviceService.patientDeviceListByTopic(patient,"preventLost");
                    if (devices.size()>0){
                        tmp.put("band", true);
                        tmp.put("devices", devices);
                    }else {
                        tmp.put("band", false);
                        tmp.put("devices", null);
                    }
                    break;
                case "dailyWater":
                    devices = patientDeviceService.patientDeviceListByTopic(patient,"dailyWater");
                    if (devices.size()>0){
                        tmp.put("band", true);
                        tmp.put("devices", devices);
                    }else {
                        tmp.put("band", false);
                        tmp.put("devices", null);
                    }
                    break;
            String topicStr = tmp.get("code").toString();
            List<Map<String,Object>> devices = patientDeviceService.patientDeviceListByTopic(patient,topicStr);
            if (devices.size()>0) {
                tmp.put("band", true);
                tmp.put("devices", devices);
            }else {
                tmp.put("band", false);
                tmp.put("devices", null);
            }
        }
        sql = " select 'emeAssistance' as code,ord.id,ord.patient,'20' as OrderType,'紧急呼叫' as serveDesc " +
@ -1883,7 +1878,34 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
                        result.put("dailyWater", false);
                    }
                    break;
                case "accessControl":
                    count = Integer.parseInt(tmp.get("total").toString());
                    if (count > 0) {
                        result.put("accessControl", true);
                        sql = " select serve_desc from base_security_monitoring_order where topic_item='accessControl' " +
                                "and patient='" + patient + "' and `status`=1 order by create_time desc limit 1 ";
                        List<String> serveDesces = jdbcTemplate.queryForList(sql, String.class);
                        if (serveDesces.size() > 0) {
                            result.put("accessControlOrderInfo", serveDesces.get(0));
                        }
                    } else {
                        result.put("accessControl", false);
                    }
                    break;
                case "electricControl":
                    count = Integer.parseInt(tmp.get("total").toString());
                    if (count > 0) {
                        result.put("electricControl", true);
                        sql = " select serve_desc from base_security_monitoring_order where topic_item='electricControl' " +
                                "and patient='" + patient + "' and `status`=1 order by create_time desc limit 1 ";
                        List<String> serveDesces = jdbcTemplate.queryForList(sql, String.class);
                        if (serveDesces.size() > 0) {
                            result.put("electricControlOrderInfo", serveDesces.get(0));
                        }
                    } else {
                        result.put("electricControl", false);
                    }
                    break;
            }
        }
        sql = " select count(id) from base_emergency_assistance_order  where patient='" + patient + "' and status=" + EmergencyAssistanceDO.Status.apply.getType();
@ -2610,6 +2632,12 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
            case "dailyWater":
                categoryCode = "'18'";
                break;
            case "accessControl":
                categoryCode = "'19'";
                break;
            case "electricControl":
                categoryCode = "'20'";
                break;
        }
        fliter = " and EXISTS (select 1 from wlyy_patient_device pd INNER JOIN dm_device dd on pd.device_id = dd.id  " +
@ -2745,6 +2773,12 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
            case "dailyWater":
                categoryCode = "'18'";
                break;
            case "accessControl":
                categoryCode = "'19'";
                break;
            case "electricControl":
                categoryCode = "'20'";
                break;
            case "emergencyAssistance":
                categoryCode = "'7','4'";
                break;
@ -2941,7 +2975,7 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
    public List<Map<String,Object>> getPatientDeviceTopic(String patient){
        List<Map<String,Object>> result = new ArrayList<>();
        String sql = " select distinct pd.device_sn,pd.category_code from wlyy_patient_device pd where pd.del=0  " +
                " and pd.category_code in (4,7,12,13,14,15,18) and pd.`user`='"+patient+"' " +
                " and pd.category_code in (4,7,12,13,14,15,18,19,20) and pd.`user`='"+patient+"' " +
                " group by pd.category_code ";
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        for (Map<String,Object> tmp:list){
@ -2983,6 +3017,16 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
                    mapTmp.put("topic","dailyWater");
                    result.add(mapTmp);
                    break;
                case "19":
                    mapTmp.put("deviceSn",tmp.get("device_sn").toString());
                    mapTmp.put("topic","accessControl");
                    result.add(mapTmp);
                    break;
                case "20":
                    mapTmp.put("deviceSn",tmp.get("device_sn").toString());
                    mapTmp.put("topic","electricControl");
                    result.add(mapTmp);
                    break;
            }
        }
        return  result;

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

@ -273,18 +273,20 @@ public class ArchiveService extends BaseJpaService<ArchiveDO, ArchiveDao> {
        }
        String countSql = " select count(distinct p.id)  ";
        String  sql = " SELECT a.create_time,p.openid,p.pad_imei padImei,p.idcard,p.mobile,p.name,p.sex,p.id,p.photo,CAST(a.sign_status AS char) sign_status  " ;
        String filter = "from wlyy_archive a,base_patient p WHERE  a.patient = p.id and a.sign_status = 1 and p.del=1 and EXISTS( " +
                    "SELECT DISTINCT sr.patient from base_service_package_sign_record sr,base_service_package_record r, " +
                    "base_service_package_item i,base_team_member m " +
                    "WHERE  sr.id = r.sign_id and sr.patient = a.patient and sr.status=1 and r.service_package_id = i.service_package_id " +
                    "and i.del = 1 and m.team_code = r.team_code " ;
        if (StringUtils.isNotBlank(hospital)){
            filter += " and m.org_code='"+hospital+"'   ";
        }
//        String filter = "from wlyy_archive a,base_patient p WHERE  a.patient = p.id and a.sign_status = 1 and p.del=1 and EXISTS( " +
//                    "SELECT DISTINCT sr.patient from base_service_package_sign_record sr,base_service_package_record r, " +
//                    "base_service_package_item i,base_team_member m " +
//                    "WHERE  sr.id = r.sign_id and sr.patient = a.patient and sr.status=1 and r.service_package_id = i.service_package_id " +
//                    "and i.del = 1 and m.team_code = r.team_code " ;
        //排除签约社区关系
        String filter = "from wlyy_archive a,base_patient p WHERE  a.patient = p.id and a.sign_status = 1 and p.del=1 " ;
//        if (StringUtils.isNotBlank(hospital)){
//            filter += " and m.org_code='"+hospital+"'   ";
//        }
        if(StringUtils.isNotBlank(name)){
            filter += " and p.name like '%"+name+"%'";
            filter += " and (p.name like '%"+name+"%' or p.idcard = '"+name+"')";
        }
        filter+= " and m.del = '1' and sr.`status`=1 ) ";
//        filter+= " and m.del = '1' and sr.`status`=1 ) ";
        if (StringUtils.isNotBlank(filterMyPatient)){//
            filter += " and p.id not in (select patient from base_patient_helper where doctor='"+doctorId+"' and del=1) ";
        }

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

@ -426,8 +426,10 @@ public class StatisticsService {
        Integer emergencyCallNum = jdbcTemplate.queryForObject(emergencyCallSql, Integer.class);
        String securityMonitoringSql = "SELECT COUNT(1) FROM base_security_monitoring_order where 1=1 and hospital " + orgFilter;
        Integer securityMonitoringNum = jdbcTemplate.queryForObject(securityMonitoringSql, Integer.class);
        String oldTotalSql ="SELECT ((SELECT COUNT(distinct p.id) FROM base_patient p  WHERE p.sign_status = 1 AND p.del = 1 ) +(SELECT COUNT(distinct p.id) FROM base_patient p INNER JOIN " +
                " wlyy_patient_device d ON p.id = d.`user` WHERE p.sign_status = 0 AND p.del = 1  AND d.del = 0)) total";
        String oldTotalSql ="SELECT ((SELECT COUNT(distinct p.id) FROM base_patient p  WHERE p.sign_status = 1 AND p.del = 1 " +
                "and p.id not in (SELECT dict_code FROM `base`.`wlyy_hospital_sys_dict` WHERE `dict_name` = 'jkzl_older' or dict_name='jkzl_child') ) +(SELECT COUNT(distinct p.id) FROM base_patient p INNER JOIN " +
                " wlyy_patient_device d ON p.id = d.`user` WHERE p.sign_status = 0 AND p.del = 1  AND d.del = 0 " +
                " and p.id not in (SELECT dict_code FROM `base`.`wlyy_hospital_sys_dict` WHERE `dict_name` = 'jkzl_older' or dict_name='jkzl_child'))) total";
        List<Integer> oldTotalList = jdbcTemplate.queryForList(oldTotalSql, Integer.class);
@ -1451,8 +1453,13 @@ public class StatisticsService {
//            orgCodes = orgCodes.replaceAll(",", "','");
//            filter = " not in ('" + orgCodes + "')";
//        }
        String sql = " select count(p.id) from base_patient p  where p.del=1 and p.archive_type=1 " + olderFilter.replace("{patient}","p.id");
        String sql = " select count(p.id) from base_patient p  where p.del=1 and p.archive_type=1 and p.sign_status=1 " + olderFilter.replace("{patient}","p.id");
        Integer olderCount = jdbcTemplate.queryForObject(sql, Integer.class);
        sql = " SELECT COUNT(distinct p.id) FROM base_patient p INNER JOIN  " +
                "wlyy_patient_device d ON p.id = d.`user` WHERE p.sign_status = 0 AND p.del = 1  AND d.del = 0\n" +
                "and p.id not in (SELECT dict_code FROM `base`.`wlyy_hospital_sys_dict` WHERE `dict_name` = 'jkzl_older' or dict_name='jkzl_child') ";
        Integer olderCount2 = jdbcTemplate.queryForObject(sql, Integer.class);
        olderCount +=olderCount2;
        sql = " select count(DISTINCT p.id) from base_patient p INNER JOIN wlyy_patient_device pd on p.id = pd.user and p.archive_type=1 and pd.del=0 where p.del=1  "+
                olderFilter.replace("{patient}","p.id");
@ -1470,7 +1477,7 @@ public class StatisticsService {
        String sqlSign = "SELECT COUNT(DISTINCT p.id) FROM " +
                "base_patient p "+
                "WHERE p.del = 1 and p.archive_type =1 "+olderFilter.replace("{patient}","p.id");
                "WHERE p.del = 1 and p.archive_type =1 and p.sign_status=1 "+olderFilter.replace("{patient}","p.id");
        Integer familyOlderCount = jdbcTemplate.queryForObject(sqlfamily, Integer.class);
        Integer familySignCount = jdbcTemplate.queryForObject(sqlSign, Integer.class);
@ -2921,4 +2928,61 @@ public class StatisticsService {
        return result;
    }
    /**
     * 获取招呼老人基本信息
     * 签约老人+未签约有设备的
     */
    public JSONObject  findTendOld(Integer page,Integer size){
        String sql = "SELECT DISTINCT p.id AS id,p.`name` AS `name`, p.sex AS sex,CASE WHEN LENGTH( p.idcard )= 18 THEN\n" +
                "\t\tYEAR (\n" +
                "\t\t\tnow()) - YEAR (\n" +
                "\t\tsubstring( p.idcard, 7, 8 )) \n" +
                "\t\tWHEN LENGTH( p.idcard )= 15 THEN\n" +
                "\t\tYEAR (\n" +
                "\t\t\tnow()) - YEAR (\n" +
                "\t\tSTR_TO_DATE( CONCAT( '19', substring( p.idcard, 7, 2 )), '%Y' )) ELSE NULL \n" +
                "\tEND AS age,\n" +
                "\tp.mobile AS mobile,\n" +
                "\tp.address AS address,\n" +
                "\tt.`name` AS orgName,\n" +
                "\tGROUP_CONCAT( DISTINCT d.NAME SEPARATOR ',' ) AS doctorName \n" +
                "FROM base_patient p, base_service_package_sign_record sr, base_service_package_record r,base_service_package_item i, base_service_package pack,base_team t,base_team_member tm,base_doctor d \n" +
                "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 ) = p.id \n" +
                "\tAND r.team_code = t.id AND tm.team_code = t.id AND d.id = tm.doctor_code AND p.id NOT IN (SELECT DISTINCT dict_code from wlyy_hospital_sys_dict WHERE (dict_name = 'jkzl_child' or dict_name = 'jkzl_older' \n" +
                "                  or dict_name = 'jkzl_user' or dict_name = 'jkzl_helper'  or dict_name = 'jkzl_teacher' ) and dict_code is not null)\n" +
                "GROUP BY p.idcard UNION SELECT p.id AS id,p.`name` AS `name`, p.sex AS sex,\n" +
                "CASE\n" +
                "\t\tWHEN LENGTH( p.idcard )= 18 THEN\n" +
                "\t\tYEAR (\n" +
                "\t\t\tnow()) - YEAR (\n" +
                "\t\tsubstring( p.idcard, 7, 8 )) \n" +
                "\t\tWHEN LENGTH( p.idcard )= 15 THEN\n" +
                "\t\tYEAR (\n" +
                "\t\t\tnow()) - YEAR (\n" +
                "\t\tSTR_TO_DATE( CONCAT( '19', substring( p.idcard, 7, 2 )), '%Y' )) ELSE NULL \n" +
                "\tEND AS age,\n" +
                "\tp.mobile AS mobile,\n" +
                "\tp.address AS address,\n" +
                "\tp.address AS orgName,\n" +
                "\t'' AS doctorName \n" +
                "FROM base_patient p INNER JOIN wlyy_patient_device d ON p.id = d.`user` \n" +
                "WHERE p.sign_status = 0  AND p.del = 1  AND d.del = 0 AND p.id NOT IN (SELECT DISTINCT dict_code from wlyy_hospital_sys_dict WHERE (dict_name = 'jkzl_child' or dict_name = 'jkzl_older' \n" +
                "                  or dict_name = 'jkzl_user' or dict_name = 'jkzl_helper'  or dict_name = 'jkzl_teacher' ) and dict_code is not null) ORDER BY id\n";
        page = (page-1)*size;
        sql += " limit "+page+","+size+"";
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("data",list);
        jsonObject.put("oldTotal",list.size());
        return jsonObject;
    }
}

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

@ -999,6 +999,42 @@ public class PatientInfoPlatFormService {
                    detailInfo.put("location", null);
                }
                break;
            case "18"://日常用水监测
                sql = " select o.id,p.id patient,p.name,p.idcard,p.residential_area,'22' OrderType,'1' type,o.serve_address,o.serve_desc,  " +
                      " o.status,DATE_FORMAT(o.create_time,'%Y-%m-%d %H:%i:%S') create_time from base_security_monitoring_order o " +
                      " INNER JOIN base_patient p on p.id = o.patient where device_sn='"+deviceSn+"' and o.status=1  " +
                      "ORDER BY create_time desc limit 1 ";
                sqlResult = jdbcTemplate.queryForList(sql);
                if (sqlResult.size()>0){
                    detailInfo.put("warnStatus",true);
                    detailInfo.put("orderInfo",sqlResult.get(0));
                }else {
                    detailInfo.put("warnStatus",false);
                }
            case "19"://门禁监测
                sql = " select o.id,p.id patient,p.name,p.idcard,p.residential_area,'22' OrderType,'1' type,o.serve_address,o.serve_desc,  " +
                        " o.status,DATE_FORMAT(o.create_time,'%Y-%m-%d %H:%i:%S') create_time from base_security_monitoring_order o " +
                        " INNER JOIN base_patient p on p.id = o.patient where device_sn='"+deviceSn+"' and o.status=1  " +
                        "ORDER BY create_time desc limit 1 ";
                sqlResult = jdbcTemplate.queryForList(sql);
                if (sqlResult.size()>0){
                    detailInfo.put("warnStatus",true);
                    detailInfo.put("orderInfo",sqlResult.get(0));
                }else {
                    detailInfo.put("warnStatus",false);
                }
            case "20"://电表监测
                sql = " select o.id,p.id patient,p.name,p.idcard,p.residential_area,'22' OrderType,'1' type,o.serve_address,o.serve_desc,  " +
                        " o.status,DATE_FORMAT(o.create_time,'%Y-%m-%d %H:%i:%S') create_time from base_security_monitoring_order o " +
                        " INNER JOIN base_patient p on p.id = o.patient where device_sn='"+deviceSn+"' and o.status=1  " +
                        "ORDER BY create_time desc limit 1 ";
                sqlResult = jdbcTemplate.queryForList(sql);
                if (sqlResult.size()>0){
                    detailInfo.put("warnStatus",true);
                    detailInfo.put("orderInfo",sqlResult.get(0));
                }else {
                    detailInfo.put("warnStatus",false);
                }
        }
        return detailInfo;
    }

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/visit/BaseVisitService.java

@ -177,7 +177,7 @@ public class BaseVisitService {
        visitDO.setVisitImg(visitImg);
        visitDO.setDeviceMaintenance(deviceMaintenance);
        visitDO.setHealth(health);
        visitDO.setLifeConsult(visitImg);
        visitDO.setLifeConsult(lifeConsult);
        baseVisitDao.save(visitDO);
        return null;
    }

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

@ -69,7 +69,8 @@ public class DeviceController {
            long startTime=System.currentTimeMillis();
            String paraString = JSON.toJSONString(request.getParameterMap());
            deviceService.aqgsos(imei, label_mac, time_begin,request);
//            触发改为另外一个接口触发
//            deviceService.aqgsos(imei, label_mac, time_begin,request);
            long endTime=System.currentTimeMillis();
            dataPushLogUtil.savePushLog(imei,paraString,"爱牵挂SOS数据接收");
            dataPushLogUtil.updContactStatus(imei,1,false);

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

@ -353,6 +353,77 @@ public class DeviceService {
                    }
                }
                else if (type==1){
                    Double lat= null;
                    Double lon= null;
                    String address=null;
                    List<DevicePatientDevice> devicePatientDeviceDos = patientDeviceDao.findByDeviceSn(deviceid);
                    if (devicePatientDeviceDos.size()>0){
                        DevicePatientDevice deviceDO = devicePatientDeviceDos.get(0);
                        BasePatientDO patientDO = patientDao.findById(deviceDO.getUser());
                        DeviceSosLogDO logDO = new DeviceSosLogDO();
                        logDO.setPatient(patientDO.getId());
                        logDO.setPatientName(patientDO.getName());
                        logDO.setIdcard(patientDO.getIdcard());
                        logDO.setCategoryCode(deviceDO.getCategoryCode());
                        logDO.setDeviceSn(deviceDO.getDeviceSn());
                        logDO.setCreateTime(new Date());
                        if (deviceDO.getCategoryCode().equals("4")) {
                            //获取最新定位
                            String url = cloudCareUrl+"cloudCare/noLogin/device/getDeviceLastLocation";
                            List<NameValuePair> params = new ArrayList<>();
                            params.add(new BasicNameValuePair("deviceSn", deviceid));
                            String response = httpClientUtil.get(url, params,"UTF-8");
                            JSONObject resObj = JSONObject.parseObject(response);
                            if (resObj.getInteger("status")==200){
                                lat = resObj.getJSONObject("data").getJSONObject("obj").getJSONObject("locationdata").getJSONObject("point").getDouble("lat");
                                lon = resObj.getJSONObject("data").getJSONObject("obj").getJSONObject("locationdata").getJSONObject("point").getDouble("lon");
                                address = resObj.getJSONObject("data").getJSONObject("obj").getJSONObject("locationdata").getString("address").replace(" ","");
                                logDO.setSosAddress(address);
                                logDO.setSosLat(lat+"");
                                logDO.setSosLon(lon+"");
                            }
                            else {
                                return;
                            }
                        } else if (deviceDO.getCategoryCode().equals("7")) {
                            logDO.setSosAddress(deviceDO.getSosAddress());
                            Map<String, String> json = null;
                            if (StringUtils.isNotBlank(deviceDO.getSosAddress())) {
                                json = LatitudeUtils.getGeocoderLatitude(deviceDO.getSosAddress().replace("G.", "").replace("(糖友网)", "").replace("(高友网)", ""));
                            }
                            if (json != null) {
                                logDO.setSosLat(json.get("lat").toString());
                                logDO.setSosLon(json.get("lng").toString());
                            }
                        }
                        //发送紧急救助
                        String sql =" select Distinct pack.org_code,pack.org_name\n" +
                                "from base_service_package_sign_record sr INNER JOIN base_service_package_record pr\n" +
                                "on sr.id = pr.sign_id and sr.status=1 INNER JOIN base_service_package_item item on pr.service_package_id = item.service_package_id and item.del=1 \n" +
                                "INNER JOIN base_service_package pack on pr.service_package_id = pack.id where item.code='emergencyAssistance' and sr.patient='"+patientDO.getId()+"'";
                        List<Map<String,Object>> sqlResult = jdbcTemplate.queryForList(sql);
                        if (sqlResult.size()>0){
                            JSONObject jsonObject = new JSONObject();
                            jsonObject.put("serveAddress",logDO.getSosAddress());
                            jsonObject.put("serveLon",logDO.getSosLon());
                            jsonObject.put("serveLat",logDO.getSosLat());
                            jsonObject.put("orgCode",sqlResult.get(0).get("org_code").toString());
                            jsonObject.put("orgName",sqlResult.get(0).get("org_name").toString());
                            jsonObject.put("patient",logDO.getPatient());
                            jsonObject.put("patientName",logDO.getPatientName());
                            jsonObject.put("deviceSn",logDO.getDeviceSn());
                            String orderSource=null;
                            if (deviceDO.getCategoryCode().equals("4")) {
                                orderSource="2";
                            }
                            if (deviceDO.getCategoryCode().equals("7")) {
                                orderSource="3";
                            }
                            orderUtil.createEmeOrder(logDO,orderSource);
                        }
                    }
                }
            }
@ -1046,6 +1117,7 @@ public class DeviceService {
                    report.setEfficiency(efficiency);
                    report.setScore(score);
                    report.setDeepPer(deepPer);
                    report.setDel(1);
                    sleepDeviceReportDao.save(report);
                }
            }

+ 1 - 3
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/util/MQTTClientUtil.java

@ -58,11 +58,9 @@ public class MQTTClientUtil {
                @Override
                public void messageArrived(String s, MqttMessage message) throws Exception {
                    // subscribe后得到的消息会执行到这里面
                    logger.info("接收s : " + s);
                    logger.info("接收消息主题 : " + message);
                    logger.info("接收消息主题 : " + s);
                    logger.info("接收消息Qos : " + message.getQos());
                    logger.info("接收消息内容 : " + new String(message.getPayload()));
                }
                @Override

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

@ -30,7 +30,7 @@ public class DeviceLostAssociationJob implements Job {
            patientDeviceService.selectAndUpdate();
            logger.info("DeviceLostAssociationJob end");
        } catch (Exception e) {
            logger.info(e.getMessage());
            logger.info("DeviceLostAssociationJob --ERROR MSG:"+e.getMessage());
            e.printStackTrace();
        }
    }

+ 17 - 15
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/util/DeviceLostMessageUtil.java

@ -104,21 +104,22 @@ public class DeviceLostMessageUtil {
                            break;
                    }
                    BasePatientDO patientDO = patientDao.findById(deviceDO.getUser());
                    SystemMessageDO messageDO = new SystemMessageDO();
                    messageDO.setTitle("设备离线通知");
                    messageDO.setType("43");
                    messageDO.setIsRead("0");
                    messageDO.setSender(deviceDO.getUser());
                    messageDO.setSenderName(patientDO.getName());
                    messageDO.setRelationCode(id);
                    messageDO.setReceiver(docTmp.get("id").toString());
                    messageDO.setReceiverName(docTmp.get("name").toString());
                    messageDO.setOver("1");
                    messageDO.setData(deviceName+"离线");
                    messageDO.setDel("1");
                    messageDO.setCreateTime(new Date());
                    messageDO.setSenderPhoto(patientDO.getPhoto());
                    messageDOS.add(messageDO);
                    if (patientDO!=null){
                        SystemMessageDO messageDO = new SystemMessageDO();
                        messageDO.setTitle("设备离线通知");
                        messageDO.setType("43");
                        messageDO.setIsRead("0");
                        messageDO.setSender(deviceDO.getUser());
                        messageDO.setSenderName(patientDO.getName());
                        messageDO.setRelationCode(id);
                        messageDO.setReceiver(docTmp.get("id").toString());
                        messageDO.setReceiverName(docTmp.get("name").toString());
                        messageDO.setOver("1");
                        messageDO.setData(deviceName+"离线");
                        messageDO.setDel("1");
                        messageDO.setCreateTime(new Date());
                        messageDO.setSenderPhoto(patientDO.getPhoto());
                        messageDOS.add(messageDO);
//                    if ("family3".equals(docTmp.get("user").toString())){//设备离线推送给家属
//                        if(null!=docTmp.get("openid")&& StringUtils.isNotBlank(docTmp.get("openid").toString())){
//                            String first = patientDO.getName()+" "+deviceName+"设备疑似离线";
@ -130,6 +131,7 @@ public class DeviceLostMessageUtil {
//                        }
//                    }
                    }
                }
            }
        }

+ 5 - 5
svr/svr-statistics-es/pom.xml

@ -30,8 +30,8 @@
        <version.hibernate>5.0.12.Final</version.hibernate>
        <version.hibernate-annotations>4.0.5.Final</version.hibernate-annotations>
        <version.hibernate-jpa-api>1.0.0.Final</version.hibernate-jpa-api>
        <version.http-client>4.5.1</version.http-client>
        <version.http-core>4.4.3</version.http-core>
        <version.http-client>4.5.3</version.http-client>
        <version.http-core>4.4.8</version.http-core>
        <version.java>1.8</version.java>
        <version.jackson>2.8.10</version.jackson>
        <version.jedis>2.9.0</version.jedis>
@ -92,7 +92,7 @@
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpmime</artifactId>
            <version>4.4.1</version>
            <version>4.5.3</version>
        </dependency>
        <dependency>
@ -355,7 +355,7 @@
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20151123</version>
            <version>20160212</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
@ -385,7 +385,7 @@
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.72</version>
            <version>1.2.76</version>
        </dependency>
        <!--<dependency>-->
        <!--<groupId>org.springframework.boot</groupId>-->

+ 5 - 5
svr/svr-statistics/pom.xml

@ -30,7 +30,7 @@
        <version.hibernate>4.3.11.Final</version.hibernate>
        <version.hibernate-annotations>4.0.5.Final</version.hibernate-annotations>
        <version.hibernate-jpa-api>1.0.0.Final</version.hibernate-jpa-api>
        <version.http-client>4.5.1</version.http-client>
        <version.http-client>4.5.3</version.http-client>
        <version.http-core>4.4.3</version.http-core>
        <version.java>1.8</version.java>
        <version.jackson>2.8.10</version.jackson>
@ -44,12 +44,12 @@
        <version.quartz>2.2.3</version.quartz>
        <version.servlet-api>3.1.0</version.servlet-api>
        <version.slf4j>1.7.21</version.slf4j>
        <version.swagger>2.4.0</version.swagger>
        <version.swagger-ui>2.4.0</version.swagger-ui>
        <version.swagger>2.7.0</version.swagger>
        <version.swagger-ui>2.7.0</version.swagger-ui>
        <version.tomcat-embed>8.0.28</version.tomcat-embed>
        <version.elasticsearch>2.4.4</version.elasticsearch>
        <version.jest>2.4.0</version.jest>
        <version.httpmime>4.4.1</version.httpmime>
        <version.httpmime>4.5.3</version.httpmime>
    </properties>
    <dependencies>
@ -348,7 +348,7 @@
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20151123</version>
            <version>20160212</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>

+ 9 - 1
wlyy-starter/pom.xml

@ -49,7 +49,7 @@
        <version.elasticsearch>2.4.0</version.elasticsearch>
        <version.elasticsearch-sql>2.4.1.0</version.elasticsearch-sql>
        <version.jest>2.4.0</version.jest>
        <verion.fastjson>1.2.72</verion.fastjson>
        <verion.fastjson>1.2.76</verion.fastjson>
        <version.druid>1.0.15</version.druid>
        <version.jna>3.0.9</version.jna>
        <version.hbase-client>2.2.4</version.hbase-client>
@ -221,6 +221,14 @@
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>