Quellcode durchsuchen

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

wangzhinan vor 4 Jahren
Ursprung
Commit
33a3cee9bc

+ 3 - 3
business/base-service/src/main/java/com/yihu/jw/hospital/message/service/BaseUserMsgService.java

@ -174,12 +174,12 @@ public class BaseUserMsgService extends BaseJpaService<BaseUserMessageDO, BaseUs
            //sql.append(" and t.update_time > '" + beginTime+"'");//DateUtil.stringToDate(beginTime,"yyyy-MM-dd HH:mm:ss")
            if ("xm_ykyy_wx".equals(wxId)) {
                if (flag){
                    sql.append( " and t.create_time >= str_to_date('" + beginTime + " 00:00:00','YYYY-MM-DD HH24:MI:SS')");
                    sql.append( " and t.update_time >= str_to_date('" + beginTime + " 00:00:00','YYYY-MM-DD HH24:MI:SS')");
                }else {
                    sql.append(  " and t.create_time >= to_date('" + beginTime + " 00:00:00','YYYY-MM-DD HH24:MI:SS')");
                    sql.append(  " and t.update_time >= to_date('" + beginTime + " 00:00:00','YYYY-MM-DD HH24:MI:SS')");
                }
            } else {
                sql.append( " AND t.create_time >='" + beginTime + " 00:00:00'");
                sql.append( " AND t.update_time >='" + beginTime + " 00:00:00'");
            }
        }

+ 19 - 4
svr/svr-iot/src/main/java/com/yihu/iot/service/equipment/IotEqtDetailService.java

@ -61,12 +61,27 @@ public class IotEqtDetailService  extends BaseJpaService<IotEquipmentDetailDO, I
        }
    }
    public JSONObject showJKXW(){
    public JSONObject showJKXW(String startTime,String endTime,String area,String sn){
        JSONObject result = new JSONObject();
        List<IotEquipmentDetailDO> equipmentList= iotEquipmentDetailDao.getAllEquipment();
        if (equipmentList.size()>=0){
            result.put("equipmentList",equipmentList);
        Map<String,Object> params = new HashedMap();
        String sql = "select t.id as \"id\",t.device_name as \"device_name\"" +
                ",t.device_code as \"device_code\",t.longitude as \"longitude\",t.latitude as \"latitude\"" +
                ",t.create_time as \"create_time\" from iot_equipmet_detail where 1=1 ";
        if (StringUtils.isNoneBlank(startTime)){
            sql+=" AND t.create_time >=:startTime";
            params.put("startTime", DateUtil.stringToDate(startTime,"yyyy-MM-dd HH:mm:ss"));
        }
        if (StringUtils.isNoneBlank(startTime)){
            sql+=" AND t.create_time <=:endTime";
            params.put("endTime", DateUtil.stringToDate(endTime,"yyyy-MM-dd HH:mm:ss"));
        }
        if (StringUtils.isNoneBlank(area)){
            sql+=" AND t.belong_are_code =:area";
            params.put("area", area);
        }
        List<Map<String,Object>> total = hibenateUtils.createSQLQuery(sql,params);
        result.put("equipmentDetails",total);
        List<Map<String, Object>> areCount = iotEquipmentDetailDao.getAllEquipmentCountByAre();
        if (areCount.size()>=0){
            result.put("areEquipmentCount",areCount);

+ 47 - 12
svr/svr-iot/src/main/java/com/yihu/iot/service/monitorPlatform/MonitorPlatformService.java

@ -9,7 +9,6 @@ import com.yihu.iot.service.common.MyJdbcTemplate;
import com.yihu.iot.service.device.IotPatientDeviceService;
import com.yihu.iot.service.equipment.IotEqtDetailService;
import com.yihu.iot.service.label.FigureLabelSerachService;
import com.yihu.jw.entity.iot.dict.IotSystemDictDO;
import com.yihu.iot.util.excel.hibernate.HibenateUtils;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.util.http.HttpClientUtil;
@ -43,6 +42,12 @@ public class MonitorPlatformService  {
    private String appid;
    @Value("${spring.wlyy.appsecret}")
    private String appSecret;
    @Value("${wechat.id}")
    private String wxId;
    @Value("${wechat.flag}")
    private boolean flag;
    public static Map<String,String> tokenMap = new HashMap<>();
    @Autowired
@ -54,13 +59,13 @@ public class MonitorPlatformService  {
    @Autowired
    private FigureLabelSerachService figureLabelSerachService;
    @Autowired
    private IotEqtDetailService iotEqtDetailService;
    @Autowired
    private IotEquipmentDetailDao iotEquipmentDetailDao;
    @Autowired
    private HibenateUtils hibenateUtils;
    @Autowired
    private IotSystemDictDao iotSystemDictDao;
    @Autowired
    private IotEqtDetailService iotEqtDetailService;
    /**
     * 获取位置信息
@ -177,10 +182,40 @@ public class MonitorPlatformService  {
            return jsonObject.toString();
        }
    }
    /*private String dealSql(Map<String, Object> params){
    private String dealSql(Map<String, Object> params){
        StringBuffer sql = new StringBuffer();
        sql.append()
    }*/
        sql.append("select count(1) AS \"total\",t.belong_are AS \"belong_are\",t.belong_are_code AS \"belong_are_code\" from iot_equipmet_detail t ");
        sql.append(" where 1=1 ");
        if (null!=params.get("area")){
            sql.append(" and t.belong_are = '"+params.get("area").toString()+"'");
        }
        if (null!=params.get("startTime")) {
            //sql.append(" and t.update_time > '" + beginTime+"'");//DateUtil.stringToDate(beginTime,"yyyy-MM-dd HH:mm:ss")
            if ("xm_ykyy_wx".equals(wxId)) {
                if (flag){
                    sql.append( " and t.create_time >= str_to_date('" + params.get("startTime").toString() + " 00:00:00','YYYY-MM-DD HH24:MI:SS')");
                }else {
                    sql.append(  " and t.create_time >= to_date('" + params.get("startTime").toString() + " 00:00:00','YYYY-MM-DD HH24:MI:SS')");
                }
            } else {
                sql.append( " AND t.create_time >='" + params.get("startTime").toString() + " 00:00:00'");
            }
        }
        if (null!=params.get("endTime")) {
            //sql.append(" and t.update_time < '" + endTime+"'");//DateUtil.stringToDate(endTime,"yyyy-MM-dd HH:mm:ss")
            if ("xm_ykyy_wx".equals(wxId)) {
                if (flag){
                    sql.append( " and t.create_time <= str_to_date('" + params.get("endTime").toString() + " 00:00:00','YYYY-MM-DD HH24:MI:SS')");
                }else {
                    sql.append(  " and t.create_time <= to_date('" + params.get("endTime").toString() + " 00:00:00','YYYY-MM-DD HH24:MI:SS')");
                }
            } else {
                sql.append( " AND t.create_time <='" + params.get("endTime").toString() + " 00:00:00'");
            }
        }
        sql.append(" group by t.belong_are_code order by \"total\" desc ");
        return sql.toString();
    }
    /**
     * 慢病患者情况-统计
@ -648,7 +683,7 @@ public class MonitorPlatformService  {
     * @return
     */
    public JSONObject totalRange(String startTime,String endTime,
                                                 String deviceType,String area,String hospital,String quotaCode){
                                 String deviceType,String area,String hospital,String quotaCode){
        String url = "/wlyygc/iot_monitoring/totalRange";
        Map<String, Object> params = new HashMap<>();
        params.put("startTime",startTime);
@ -675,7 +710,7 @@ public class MonitorPlatformService  {
     * @return
     */
    public JSONObject diseaseUseRange(String startTime,String endTime,
                                String deviceType,String area,String hospital){
                                      String deviceType,String area,String hospital){
        String url = "/wlyygc/iot_monitoring/diseaseUseRange";
        Map<String, Object> params = new HashMap<>();
        params.put("startTime",startTime);
@ -701,7 +736,7 @@ public class MonitorPlatformService  {
     * @return
     */
    public JSONObject diseaseRange(String startTime,String endTime,
                                     String deviceType,String area,String hospital){
                                   String deviceType,String area,String hospital){
        String url = "/wlyygc/iot_monitoring/diseaseRange";
        Map<String, Object> params = new HashMap<>();
        params.put("startTime",startTime);
@ -728,7 +763,7 @@ public class MonitorPlatformService  {
     * @return
     */
    public JSONObject yellowOrRedRange(String startTime,String endTime,
                                  String deviceType,String area,String hospital,Integer diseaseCondition){
                                       String deviceType,String area,String hospital,Integer diseaseCondition){
        String url = "/wlyygc/iot_monitoring/yellowOrRedRange";
        Map<String, Object> params = new HashMap<>();
        params.put("startTime",startTime);
@ -757,7 +792,7 @@ public class MonitorPlatformService  {
     * @return
     */
    public JSONArray warningInformationAlarm_new(Integer page,Integer pageSize,String startTime,String endTime,
                                                  String deviceType,String area,String hospital){
                                                 String deviceType,String area,String hospital){
        String url = "/wlyygc/iot_monitoring/warningInformationAlarm_new";
        Map<String, Object> params = new HashMap<>();
        params.put("page",page);
@ -786,7 +821,7 @@ public class MonitorPlatformService  {
     * @return
     */
    public JSONObject yellowAndRedRange(String startTime,String endTime,
                                                 String deviceType,String area,String hospital){
                                        String deviceType,String area,String hospital){
        String url = "/wlyygc/iot_monitoring/yellowAndRedRange";
        Map<String, Object> params = new HashMap<>();
        params.put("startTime",startTime);

+ 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