Browse Source

物联网数据权限

yeshijie 4 years ago
parent
commit
b472f82795

+ 1 - 1
svr/svr-iot/src/main/java/com/yihu/iot/service/common/OrgUserService.java

@ -47,7 +47,7 @@ public class OrgUserService {
        if(res.length()==1){
            res +="'";
        }else{
            res = res.substring(0,res.length()-3);
            res = res.substring(0,res.length()-2);
        }
        return res;
    }

+ 23 - 19
svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotDeviceOrderService.java

@ -234,34 +234,39 @@ public class IotDeviceOrderService extends BaseJpaService<IotDeviceOrderDO,IotDe
     * @throws ParseException
     */
    public MixEnvelop<IotDeviceOrderVO, IotDeviceOrderVO> queryPage(Integer page, Integer size, String name) throws ParseException {
        String filters = "";
        String semicolon = "";
        if(StringUtils.isNotBlank(name)){
            filters = "supplierName?"+name+" g1;purchaserName?"+name+" g1";
            semicolon = ";";
        }
        if(StringUtils.isBlank(filters)){
            filters+= semicolon + "del=1";
        }
        StringBuffer sql = new StringBuffer("SELECT c.* from iot_device_order c  WHERE c.del=1 ");
        StringBuffer sqlCount = new StringBuffer("SELECT COUNT(c.id) count from iot_device_order c  WHERE c.del=1 ");
        List<Object> args = new ArrayList<>();
        if("company".equals(userAgent.getROLEID())){
            //仅展示本商家的订单数据
            IotCompanyDO companyDO = iotCompanyDao.findByEhrUserId(userAgent.getUID());
            if(companyDO!=null){
                filters+= ";supplier_id="+companyDO.getId();
                sql.append(" and c.supplier_id = ? ");
                sqlCount.append(" and c.supplier_id = '").append(companyDO.getId()).append("'");
                args.add(companyDO.getId());
            }
        }
        if(StringUtils.isNotBlank(name)){
            name = "%"+name+"%";
            sql.append(" and (c.supplier_name like ? or c.purchaser_name like ?)");
            sqlCount.append(" and (c.supplier_name like '").append(name).append("' or c.purchaser_name like '").append(name).append("')");
            args.add(name);
            args.add(name);
        }
        //数据权限过滤
        List<String> orgList = orgUserService.getUserOrgById(userAgent.getUID());
        if(!orgList.contains(userAgent.commonHospital)){
            filters += " ;purchaseUnitCode ="+orgUserService.getUserOrg2(orgList);
            sql.append(" and c.purchase_unit_code in (").append(orgUserService.getUserOrg(orgList)).append(") ");
            sqlCount.append(" and c.purchase_unit_code in (").append(orgUserService.getUserOrg(orgList)).append(") ");
        }
        sql.append("order by c.update_time desc limit ").append((page-1)*size).append(",").append(size);
        String sorts = "-updateTime";
        //得到list数据
        List<IotDeviceOrderDO> list = search(null, filters, sorts, page, size);
        //获取总数
        long count = getCount(filters);
        List<IotDeviceOrderDO> list = jdbcTempalte.query(sql.toString(),args.toArray(),new BeanPropertyRowMapper(IotDeviceOrderDO.class));
        List<Map<String,Object>> countList = jdbcTempalte.queryForList(sqlCount.toString());
        long count = Long.valueOf(countList.get(0).get("count").toString());
        //DO转VO
        List<IotDeviceOrderVO> iotDeviceOrderVOList = new ArrayList<>();
@ -326,9 +331,8 @@ public class IotDeviceOrderService extends BaseJpaService<IotDeviceOrderDO,IotDe
        //数据权限过滤
        List<String> orgList = orgUserService.getUserOrgById(userAgent.getUID());
        if(!orgList.contains(userAgent.commonHospital)){
            sql.append(" and c.purchase_unit_code in (?) ");
            sql.append(" and c.purchase_unit_code in(").append(orgUserService.getUserOrg(orgList)).append(") ");
            sqlCount.append(" and c.purchase_unit_code in(").append(orgUserService.getUserOrg(orgList)).append(") ");
            args.add(orgUserService.getUserOrg(orgList));
        }
        sql.append("order by c.update_time desc limit ").append((page-1)*size).append(",").append(size);

+ 43 - 27
svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotDeviceService.java

@ -218,56 +218,72 @@ public class IotDeviceService extends BaseJpaService<IotDeviceDO,IotDeviceDao> {
     * @return
     */
    public MixEnvelop<IotDeviceVO, IotDeviceVO> queryPage(String sn, String hospital, String hospitalName,String orderId, String purcharseId, String productId, String name, String categoryCode, String manufacturerId, Integer page, Integer size) throws Exception{
        String filters = "del=1;";
        String semicolon = "";
        StringBuffer sql = new StringBuffer("SELECT DISTINCT c.* from iot_device c  WHERE c.del=1 ");
        StringBuffer sqlCount = new StringBuffer("SELECT COUNT(DISTINCT c.id) count from iot_device c  WHERE c.del=1 ");
        List<Object> args = new ArrayList<>();
        if(StringUtils.isNotBlank(orderId)){
            filters += semicolon +"orderId="+orderId;
            semicolon = ";";
            sql.append(" and c.order_id = ? ");
            sqlCount.append(" and c.order_id = '").append(orderId).append("'");
            args.add(orderId);
        }
        if(StringUtils.isNotBlank(purcharseId)){
            filters += semicolon +"purchaseId="+purcharseId;
            semicolon = ";";
            sql.append(" and c.purchase_id = ? ");
            sqlCount.append(" and c.purchase_id = '").append(purcharseId).append("'");
            args.add(purcharseId);
        }
        if(StringUtils.isNotBlank(hospital)){
            filters += semicolon +"hospital="+hospital;
            semicolon = ";";
            sql.append(" and c.hospital = ? ");
            sqlCount.append(" and c.hospital = '").append(hospital).append("'");
            args.add(hospital);
        }
        if(StringUtils.isNotBlank(sn)){
            filters += semicolon + "deviceSn?"+sn+" g1;simNo?" + sn + " g1";
            semicolon = ";";
            sn = "%"+sn+"%";
            sql.append(" and (c.device_sn like ? or c.sim_no like ?)");
            sqlCount.append(" and (c.device_sn like '").append(sn).append("' or c.sim_no like '").append(sn).append("')");
            args.add(sn);
            args.add(sn);
        }
        if(StringUtils.isNotBlank(productId)){
            filters += semicolon +"productId="+productId;
            semicolon = ";";
            sql.append(" and c.product_id = ? ");
            sqlCount.append(" and c.product_id = '").append(productId).append("'");
            args.add(productId);
        }
        if(StringUtils.isNotBlank(name)){
            filters += semicolon + "name?"+name+"";
            semicolon = ";";
            name = "%"+name+"%";
            sql.append(" and c.name like ?");
            sqlCount.append(" and c.name like '").append(name).append("'");
            args.add(name);
        }
        if(StringUtils.isNotBlank(categoryCode)){
            filters += semicolon +"categoryCode="+categoryCode;
            semicolon = ";";
            sql.append(" and c.category_code = ? ");
            sqlCount.append(" and c.category_code = '").append(categoryCode).append("'");
            args.add(categoryCode);
        }
        if(StringUtils.isNotBlank(manufacturerId)){
            filters += semicolon +"manufacturerId="+manufacturerId;
            semicolon = ";";
            sql.append(" and c.manufacturer_id = ? ");
            sqlCount.append(" and c.manufacturer_id = '").append(manufacturerId).append("'");
            args.add(manufacturerId);
        }
        if(StringUtils.isNotBlank(hospitalName)){
            filters += semicolon + "hospitalName?"+hospitalName+"";
            semicolon = ";";
            hospitalName = "%"+hospitalName+"%";
            sql.append(" and c.hospital_name like ?");
            sqlCount.append(" and c.hospital_name like '").append(hospitalName).append("'");
            args.add(hospitalName);
        }
        //数据权限过滤
        List<String> orgList = orgUserService.getUserOrgById(userAgent.getUID());
        if(!orgList.contains(userAgent.commonHospital)){
            filters +=  semicolon +" hospital ="+orgUserService.getUserOrg2(orgList);
            semicolon = ";";
            sql.append(" and c.hospital in (").append(orgUserService.getUserOrg(orgList)).append(")");
            sqlCount.append(" and c.hospital in (").append(orgUserService.getUserOrg(orgList)).append(")");
        }
        String sorts = "-updateTime";
        //得到list数据
        List<IotDeviceDO> list = search(null, filters, sorts, page, size);
        //获取总数
        long count = getCount(filters);
        sql.append("order by c.update_time desc limit ").append((page-1)*size).append(",").append(size);
        List<IotDeviceDO> list = jdbcTempalte.query(sql.toString(),args.toArray(),new BeanPropertyRowMapper(IotDeviceDO.class));
        List<Map<String,Object>> countList = jdbcTempalte.queryForList(sqlCount.toString());
        long count = Long.valueOf(countList.get(0).get("count").toString());
        //DO转VO
        List<IotDeviceVO> iotDeviceVOList = convertToModels(list,new ArrayList<>(list.size()),IotDeviceVO.class);

+ 4 - 4
svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotDeviceSimService.java

@ -126,10 +126,10 @@ public class IotDeviceSimService  extends BaseJpaService<IotDeviceSimDO, IotDevi
//        StringBuffer sql = new StringBuffer("SELECT c.* from iot_device_sim c WHERE del=0 ");
        StringBuffer sql = new StringBuffer("SELECT c.* FROM " +
                " (SELECT c.*,d.patient_name,d.mobile,w.device_sn sn,w.name   FROM iot_device_sim c LEFT JOIN iot_patient_device d ON c.del=0 AND d.del=1 AND c.sim=d.sim LEFT JOIN iot_device w ON c.del = 0 AND w.del = 1 AND c.sim=w.sim_no) c" +
                " (SELECT c.*,d.patient_name,d.mobile,w.device_sn sn,w.name,d.hospital   FROM iot_device_sim c LEFT JOIN iot_patient_device d ON c.del=0 AND d.del=1 AND c.sim=d.sim LEFT JOIN iot_device w ON c.del = 0 AND w.del = 1 AND c.sim=w.sim_no) c" +
                " WHERE  c.del=0 ");
        StringBuffer sqlCount = new StringBuffer("SELECT  COUNT(c.id) count FROM " +
                " (SELECT c.*,d.patient_name,d.mobile,w.device_sn sn,w.name   FROM iot_device_sim c LEFT JOIN iot_patient_device d ON c.del=0 AND d.del=1 AND c.sim=d.sim LEFT JOIN iot_device w ON c.del = 0 AND w.del = 1 AND c.sim=w.sim_no) c" +
                " (SELECT c.*,d.patient_name,d.mobile,w.device_sn sn,w.name,d.hospital   FROM iot_device_sim c LEFT JOIN iot_patient_device d ON c.del=0 AND d.del=1 AND c.sim=d.sim LEFT JOIN iot_device w ON c.del = 0 AND w.del = 1 AND c.sim=w.sim_no) c" +
                " WHERE  c.del=0 ");
        List<Object> args = new ArrayList<>();
        if(StringUtils.isNotBlank(status)){
@ -149,8 +149,8 @@ public class IotDeviceSimService  extends BaseJpaService<IotDeviceSimDO, IotDevi
        //数据权限过滤
        List<String> orgList = orgUserService.getUserOrgById(userAgent.getUID());
        if(!orgList.contains(userAgent.commonHospital)){
            sql.append(" and d.hospital in (").append(orgUserService.getUserOrg(orgList)).append(")");
            sqlCount.append(" and d.hospital in (").append(orgUserService.getUserOrg(orgList)).append(")");
            sql.append(" and c.hospital in (").append(orgUserService.getUserOrg(orgList)).append(")");
            sqlCount.append(" and c.hospital in (").append(orgUserService.getUserOrg(orgList)).append(")");
        }
        sql.append(" order by c.update_time desc limit ").append((page-1)*size).append(",").append(size);

+ 1 - 1
svr/svr-iot/src/main/java/com/yihu/iot/service/dict/IotHospitalService.java

@ -53,7 +53,7 @@ public class IotHospitalService extends BaseJpaService<IotHospitalDO, IotHospita
        //数据权限过滤
        List<String> orgList = orgUserService.getUserOrgById(userAgent.getUID());
        if(!orgList.contains(userAgent.commonHospital)){
            sql += " h.hospital in ("+orgUserService.getUserOrg(orgList)+")";
            sql += " and h.saas_id in ("+orgUserService.getUserOrg(orgList)+")";
        }
        if(page != null && pageSize != null){