浏览代码

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

# Conflicts:
#	svr/svr-iot/src/main/java/com/yihu/iot/service/monitorPlatform/MonitorPlatformService.java
wangjun 4 年之前
父节点
当前提交
ec73949fe1

+ 76 - 13
svr/svr-iot/src/main/java/com/yihu/iot/service/monitorPlatform/MonitorPlatformService.java

@ -151,10 +151,10 @@ public class MonitorPlatformService  {
        params.put("area",area);
        params.put("hospital",hospital);
        String anotherResult = sendGet(url,params);
        String sqlAre = dealSql(params);
        String sqlAre = "select count(1) AS \"total\",t.belong_are AS \"belong_are\",t.belong_are_code AS \"belong_are_code\" from iot_equipmet_detail t group by t.belong_are_code order by \"total\" desc ";
        List<Map<String, Object>> iotEquip = hibenateUtils.createSQLQuery(sqlAre);
        if("8"==deviceType){
            return iotEquip.toString();
           return iotEquip.toString();
        }else {
            JSONObject jsonObject = JSONObject.parseObject(anotherResult);
            if("200".equals(jsonObject.get("status").toString())){
@ -509,18 +509,81 @@ public class MonitorPlatformService  {
        String response = sendGet(url,params);
        JSONObject json = JSONObject.parseObject(response);
        if(json.getInteger("status")==200){
            IotSystemDictDO iotSystemDictDO = iotSystemDictDao.findByDictNameAndValueAndDel("DEVICE_TYPE","健康小屋",1);
            JSONArray jsonArray = json.getJSONArray("data");
            for (int i=0;i<jsonArray.size();i++){
                JSONObject jo = jsonArray.getJSONObject(i);
                String tmp = jo.getString("type");
                if("1".equals(tmp)){
                    jo.put("typeName","血糖仪");
                }else if("2".equals(tmp)){
                    jo.put("typeName","血压计");
                }else if("3".equals(tmp)){
                    jo.put("typeName","智能药盒");
                }else if("4".equals(tmp)){
                    jo.put("typeName","智能手表");
            String[] str =deviceType.split(",");
            List<String> list = new ArrayList<>();
            for (int i=0;i<str.length;i++){
                list.add(str[i]);
            }
            if (iotSystemDictDO!=null){
                if (!list.contains(iotSystemDictDO.getCode())){
                    for (int i=0;i<jsonArray.size();i++){
                        JSONObject jo = jsonArray.getJSONObject(i);
                        String tmp = jo.getString("type");
                        if("1".equals(tmp)){
                            jo.put("typeName","血糖仪");
                        }else if("2".equals(tmp)){
                            jo.put("typeName","血压计");
                        }else if("3".equals(tmp)){
                            jo.put("typeName","智能药盒");
                        }else if("4".equals(tmp)){
                            jo.put("typeName","智能手表");
                        }
                    }
                }else {
                    if (jsonArray!=null&&jsonArray.size()!=0){
                        for (int i=0;i<jsonArray.size();i++){
                            JSONObject jo = jsonArray.getJSONObject(i);
                            String tmp = jo.getString("type");
                            if("1".equals(tmp)){
                                jo.put("typeName","血糖仪");
                            }else if("2".equals(tmp)){
                                jo.put("typeName","血压计");
                            }else if("3".equals(tmp)){
                                jo.put("typeName","智能药盒");
                            }else if("4".equals(tmp)){
                                jo.put("typeName","智能手表");
                            }
                        }
                        if (org.apache.commons.lang3.StringUtils.isNoneBlank(hospital)){
                            JSONObject jsonObject= new JSONObject();
                            jsonObject.put("type",iotSystemDictDO.getCode());
                            jsonObject.put("typeName",iotSystemDictDO.getValue());
                            jsonObject.put("signNum",0);
                            jsonObject.put("unSignNum",0);
                            jsonArray.add(jsonObject);
                        }else {
                            Long count = iotEqtDetailService.findCountByHealthHourse(startTime,endTime,area);
                            JSONObject jsonObject= new JSONObject();
                            jsonObject.put("type",iotSystemDictDO.getCode());
                            jsonObject.put("typeName",iotSystemDictDO.getValue());
                            jsonObject.put("signNum",count);
                            jsonObject.put("unSignNum",0);
                            jsonArray.add(jsonObject);
                        }
                    }else {
                        if (org.apache.commons.lang3.StringUtils.isNoneBlank(hospital)){
                            jsonArray = new JSONArray();
                            JSONObject jsonObject= new JSONObject();
                            jsonObject.put("type",iotSystemDictDO.getCode());
                            jsonObject.put("typeName",iotSystemDictDO.getValue());
                            jsonObject.put("signNum",0);
                            jsonObject.put("unSignNum",0);
                            jsonArray.add(jsonObject);
                        }else {
                            Long count = iotEqtDetailService.findCountByHealthHourse(startTime,endTime,area);
                            jsonArray = new JSONArray();
                            JSONObject jsonObject= new JSONObject();
                            jsonObject.put("type",iotSystemDictDO.getCode());
                            jsonObject.put("typeName",iotSystemDictDO.getValue());
                            jsonObject.put("signNum",count);
                            jsonObject.put("unSignNum",0);
                            jsonArray.add(jsonObject);
                        }
                    }
                }
            }

+ 0 - 83
svr/svr-iot/src/main/java/com/yihu/iot/util/excel/hibernate/HibenateDemo.java

@ -1,83 +0,0 @@
package com.yihu.iot.util.excel.hibernate;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import com.yihu.jw.util.date.DateUtil;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
/**
 * Created by Trick on 2019/12/10.
 */
@Component
public class HibenateDemo {
    @Autowired
    private HibenateUtils hibenateUtils;
    /**
     * 特别注意,由于oracle 大小写不明感,表别名需要指定大小写(驼峰)的话需要加双引号
     * @param id
     * @param name
     * @param createTime
     * @param page
     * @param size
     * @return
     */
    public Envelop findDoctorInfo(String id, String name, String createTime, Integer page, Integer size){
        String sqlTotal ="SELECT " +
                " COUNT(1) AS \"total\" " +
                " FROM " +
                " base_doctor d " +
                " JOIN base_doctor_hospital h ON d.id = h.doctor_code " +
                " WHERE " +
                " 1 = 1";
        Map<String,Object> params = new HashedMap();
        if(StringUtils.isNotBlank(id)){
            sqlTotal+=" AND d.id =:id";
            params.put("id",id);
        }
        if(StringUtils.isNotBlank(name)){
            sqlTotal+=" AND d.name =:name";
            params.put("name",name);
        }
        if(StringUtils.isNotBlank(createTime)){
            sqlTotal+=" AND d.create_time >:createTime";
            params.put("createTime", DateUtil.stringToDate(createTime,"yyyy-MM-dd"));
        }
        Long count = 0L;
        List<Map<String,Object>> total = hibenateUtils.createSQLQuery(sqlTotal,params);
        if(total!=null){
            //mysql 与 Oracle 聚合函数返回类型不一致,需要判断装换
            count = hibenateUtils.objTransformLong(total.get(0).get("total"));
        }
        String sql ="SELECT " +
                " d.id AS \"id\", " +
                " d.NAME AS \"name\"," +
                " h.dept_name AS \"deptName\"" +
                " FROM " +
                " base_doctor d " +
                " JOIN base_doctor_hospital h ON d.id = h.doctor_code " +
                " WHERE " +
                " 1 = 1 ";
        if(StringUtils.isNotBlank(id)){
            sql+=" AND d.id =:id";
        }
        if(StringUtils.isNotBlank(name)){
            sql+=" AND d.name =:name";
        }
        if(StringUtils.isNotBlank(createTime)){
            sql+=" AND d.create_time >:createTime";
        }
        List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql,params,page,size);
       return MixEnvelop.getSuccessListWithPage(BaseHospitalRequestMapping.Prescription.api_success, list, page, size, count);
    }
}

+ 0 - 186
svr/svr-iot/src/main/java/com/yihu/iot/util/excel/hibernate/HibenateUtils.java

@ -1,186 +0,0 @@
package com.yihu.iot.util.excel.hibernate;
import com.yihu.jw.entity.hospital.prescription.HlwCf01DO;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.transform.Transformers;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * 数据库查询工具,mysql与Oracle 通用复诊查询
 * 支持原生SQL。联表,动态传参。分页查询
 * 不支持数据库特有的函数
 * <p>
 * Created by Trick on 2019/12/10.
 */
@Component
@Transactional
public class HibenateUtils {
    /**
     * JPA 数据源
     */
    @PersistenceContext
    private EntityManager entityManager;
    /**
     * 创建SQL查询,根据配置,获取数据库方言
     * sql为原生sql语句,查询,Oracle不区分大小写,返回值需要驼峰命名,字段别名需要加 双引号
     * 目前只支持通用的聚合函数,特有的聚合函数不支持
     *
     * @param sql
     * @param page 第几页,1开始
     * @param size 每页记录数
     * @return
     */
    public List<Map<String, Object>> createSQLQuery(String sql, Integer page, Integer size) {
        Session session = (Session) entityManager.getDelegate();
        SQLQuery query = session.createSQLQuery(sql);
        query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
        if(page!=null&&size!=null){
            query.setFirstResult((page - 1) * size);
            query.setMaxResults(size);
        }
        List<Map<String, Object>> list = query.list();
        return list;
    }
    /**
     * 创建SQL查询,根据配置,获取数据库方言
     * sql为原生sql语句,查询,Oracle不区分大小写,返回值需要驼峰命名,字段别名需要加 双引号
     * 目前只支持通用的聚合函数,特有的聚合函数不支持
     * 无分页
     * @param sql
     * @return
     */
    public List<Map<String, Object>> createSQLQuery(String sql) {
        Session session = (Session) entityManager.getDelegate();
        SQLQuery query = session.createSQLQuery(sql);
        query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
        List<Map<String, Object>> list = query.list();
        return list;
    }
    /**
     * 创建SQL查询,根据配置,获取数据库方言
     * sql为原生sql语句,查询,Oracle不区分大小写,返回值需要驼峰命名,字段别名需要加 双引号
     * 目前只支持通用的聚合函数,特有的聚合函数不支持
     * @param sql
     * @param params 动态占位符入参,例如 like:name
     * @param page 第几页,1开始
     * @param size 每页记录数
     * @return
     */
    public List<Map<String, Object>> createSQLQuery(String sql, Map<String, Object> params, Integer page, Integer size) {
        Session session = (Session) entityManager.getDelegate();
        SQLQuery query = session.createSQLQuery(sql);
        query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
        //设置查询参数
        setSqlQueryByMap(query, params);
        if(page!=null&&size!=null){
            query.setFirstResult((page - 1) * size);
            query.setMaxResults(size);
        }
        List<Map<String, Object>> list = query.list();
        return list;
    }
    /**
     * 创建SQL查询,根据配置,获取数据库方言
     * sql为原生sql语句,查询,Oracle不区分大小写,返回值需要驼峰命名,字段别名需要加 双引号
     * 目前只支持通用的聚合函数,特有的聚合函数不支持
     * @param sql
     * @param params 动态占位符入参,例如 like:name
     * @return
     */
    public List<Map<String, Object>> createSQLQuery(String sql, Map<String, Object> params) {
        Session session = (Session) entityManager.getDelegate();
        SQLQuery query = session.createSQLQuery(sql);
        query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
        //设置查询参数
        setSqlQueryByMap(query, params);
        List<Map<String, Object>> list = query.list();
        return list;
    }
    /**
     * 设置查询参数
     * @param sqlQuery
     * @param params
     * @return
     */
    private SQLQuery setSqlQueryByMap(SQLQuery sqlQuery, Map<String, Object> params) {
        if (params != null && !params.isEmpty()) {
            for (String key : params.keySet()) {
                Object obj = params.get(key);
                if (obj instanceof Collection<?>) {
                    sqlQuery.setParameterList(key, (Collection<?>) obj);
                } else if (obj instanceof Object[]) {
                    sqlQuery.setParameterList(key, (Object[]) obj);
                } else {
                    sqlQuery.setParameter(key, obj);
                }
            }
        }
        return sqlQuery;
    }
    /**
     * 聚合函数类型装换
     * @param obj
     * @return
     */
    public Long objTransformLong(Object obj){
        //Oracle count(1) 聚合函数类型装换
        if(obj instanceof BigDecimal){
            return ((BigDecimal) obj).longValue();
        //Mysql count(1) 聚合函数类型装换
        }else if(obj instanceof BigInteger){
            return ((BigInteger)obj).longValue();
        }else{
            return 0L;
        }
    }
    public void updateBySql(String sql){
        Session session = (Session) entityManager.getDelegate();
        session.createSQLQuery(sql).executeUpdate();
    }
    public void save(Object object) {
        entityManager.persist(object);
    }
    /**
     * 更新
     * @param entity
     */
    public void update(Object entity){
        entityManager.merge(entity);
        entityManager.flush();
    }
    public void update(String id,Integer status){
        HlwCf01DO hlwCf01DO = entityManager.find(HlwCf01DO.class,id);
        hlwCf01DO.setFKZT(status);
        update(hlwCf01DO);
    }
}

+ 3 - 1
svr/svr-iot/src/main/resources/application.yml

@ -127,7 +127,9 @@ fast-dfs:
  tracker-server: 172.19.103.54:22122 #服务器地址
fastDFS:
  fastdfs_file_url: http://172.19.103.54:80/
wechat:
  id: xm_zsyy_wx  # base库中,wx_wechat 的id字段
  flag: false #演示环境  true走Mysql数据库  false走Oracle
---
spring:
  profiles: iottest