Commit f40cf849 by 杨伟程

几个天从path的地方

parents eda1c5ab a1e22ab0
...@@ -38,23 +38,20 @@ public class SaasDeviceReportDayController { ...@@ -38,23 +38,20 @@ public class SaasDeviceReportDayController {
@ApiOperation("睡眠评价") @ApiOperation("睡眠评价")
@PostMapping("sleepEvaluation") @PostMapping("sleepEvaluation")
@TenantIdIgnore public ApiResponseEntity<PlatElderSleepEvaluationVO> sleepEvaluation(@RequestBody PlatElderReportDTO platElderIdDTO) {
public ApiResponseEntity<PlatElderSleepEvaluationVO> sleepEvaluation(@RequestBody PlatElderIdDTO platElderIdDTO) { return ApiResponseUtils.success(platElderDayReportDayService.sleepEvaluation(platElderIdDTO));
return null;
} }
@ApiOperation("睡眠图表") @ApiOperation("睡眠图表")
@PostMapping("sleepDiagram") @PostMapping("sleepDiagram")
@TenantIdIgnore public ApiResponseEntity<List<PlatElderSleepDiagramVO>> sleepDiagram(@RequestBody PlatElderReportDTO platElderIdDTO) {
public ApiResponseEntity<List<PlatElderSleepDiagramVO>> sleepDiagram(@RequestBody PlatElderIdDTO platElderIdDTO) { return ApiResponseUtils.success(platElderDayReportDayService.sleepDiagram(platElderIdDTO));
return null;
} }
@ApiOperation("心率呼吸评价") @ApiOperation("心率呼吸评价")
@PostMapping("heartRespiratoryEvaluation") @PostMapping("heartRespiratoryEvaluation")
@TenantIdIgnore public ApiResponseEntity<PlatElderHeartRespiratoryEvaluationVO> heartRespiratoryEvaluation(@RequestBody PlatElderReportDTO platElderIdDTO) {
public ApiResponseEntity<PlatElderHeartRespiratoryEvaluationVO> heartRespiratoryEvaluation(@RequestBody PlatElderIdDTO platElderIdDTO) { return ApiResponseUtils.success(platElderDayReportDayService.heartRespiratoryEvaluation(platElderIdDTO));
return null;
} }
@ApiOperation("心率异常记录") @ApiOperation("心率异常记录")
......
...@@ -5,9 +5,11 @@ import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInt ...@@ -5,9 +5,11 @@ import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInt
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;
import com.makeit.config.mybatis.interceptor.EmptyListInterceptor; import com.makeit.config.mybatis.interceptor.EmptyListInterceptor;
import com.makeit.config.mybatis.tenant.DataScopeHandler;
import com.makeit.config.mybatis.tenant.DataScopeInterceptor;
import com.makeit.config.mybatis.tenant.FactoryTableProperties;
import com.makeit.config.mybatis.tenant.TenantIdHandler; import com.makeit.config.mybatis.tenant.TenantIdHandler;
import com.makeit.config.mybatis.tenant.TenantIdInterceptor; import com.makeit.config.mybatis.tenant.TenantIdInterceptor;
import com.makeit.config.mybatis.tenant.FactoryTableProperties;
import com.makeit.enums.CodeMessageEnum; import com.makeit.enums.CodeMessageEnum;
import com.makeit.enums.Const; import com.makeit.enums.Const;
import com.makeit.exception.BusinessException; import com.makeit.exception.BusinessException;
...@@ -43,14 +45,17 @@ public class MybatisPlusConfig { ...@@ -43,14 +45,17 @@ public class MybatisPlusConfig {
interceptor.addInnerInterceptor(new EmptyListInterceptor()); interceptor.addInnerInterceptor(new EmptyListInterceptor());
interceptor.addInnerInterceptor(tenantLineInnerInterceptor()); interceptor.addInnerInterceptor(new DataScopeInterceptor(new DataScopeHandler()));
interceptor.addInnerInterceptor(tenantLineInnerInterceptor());
interceptor.addInnerInterceptor(new PaginationInnerInterceptor()); interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
return interceptor; return interceptor;
} }
...@@ -106,5 +111,4 @@ public class MybatisPlusConfig { ...@@ -106,5 +111,4 @@ public class MybatisPlusConfig {
public TenantLineInnerInterceptor tenantLineInnerInterceptor() { public TenantLineInnerInterceptor tenantLineInnerInterceptor() {
return new TenantIdInterceptor(tenantLineHandler()); return new TenantIdInterceptor(tenantLineHandler());
} }
} }
package com.makeit.config.mybatis.tenant;
import com.makeit.enums.Const;
import com.makeit.utils.request.RequestUtil;
import net.sf.jsqlparser.expression.Alias;
import net.sf.jsqlparser.expression.Expression;
import net.sf.jsqlparser.expression.HexValue;
import net.sf.jsqlparser.expression.LongValue;
import net.sf.jsqlparser.expression.operators.conditional.AndExpression;
import net.sf.jsqlparser.expression.operators.relational.ExpressionList;
import net.sf.jsqlparser.expression.operators.relational.InExpression;
import net.sf.jsqlparser.expression.operators.relational.ItemsList;
import net.sf.jsqlparser.schema.Column;
import net.sf.jsqlparser.schema.Table;
import net.sf.jsqlparser.statement.select.PlainSelect;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class DataScopeHandler {
/**
* 获取数据权限 SQL 片段
*
* @return JSqlParser 条件表达式
*/
public Expression getSqlSegment(PlainSelect plainSelect, String whereSegment){
Expression where = plainSelect.getWhere();
if (where == null) {
where = new HexValue(" 1 = 1 ");
}
Table fromItem = (Table) plainSelect.getFromItem();
// 有别名用别名,无别名用表名,防止字段冲突报错
Alias fromItemAlias = fromItem.getAlias();
String mainTableName = fromItemAlias == null ? fromItem.getName() : fromItemAlias.getName();
String dataScope = RequestUtil.getDataScope();
String[] orgIds = dataScope.split(Const.COMMON_SPLIT);
// 把集合转变为JSQLParser需要的元素列表
ItemsList orgIdList = new ExpressionList(Stream.of(orgIds).map(LongValue::new).collect(Collectors.toList()));
InExpression inExpression = new InExpression(new Column(mainTableName+".org_id"), orgIdList);
return new AndExpression(where, inExpression);
}
}
package com.makeit.config.mybatis.tenant;
import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
import com.baomidou.mybatisplus.core.plugins.InterceptorIgnoreHelper;
import com.baomidou.mybatisplus.core.toolkit.PluginUtils;
import com.baomidou.mybatisplus.extension.parser.JsqlParserSupport;
import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor;
import com.makeit.enums.Const;
import com.makeit.utils.data.convert.StreamUtil;
import com.makeit.utils.request.RequestUtil;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import net.sf.jsqlparser.expression.Expression;
import net.sf.jsqlparser.schema.Table;
import net.sf.jsqlparser.statement.select.PlainSelect;
import net.sf.jsqlparser.statement.select.Select;
import net.sf.jsqlparser.statement.select.SelectBody;
import net.sf.jsqlparser.statement.select.SetOperationList;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.executor.Executor;
import org.apache.ibatis.mapping.BoundSql;
import org.apache.ibatis.mapping.MappedStatement;
import org.apache.ibatis.session.ResultHandler;
import org.apache.ibatis.session.RowBounds;
import org.springframework.stereotype.Component;
import java.sql.SQLException;
import java.util.Arrays;
import java.util.List;
@Data
@NoArgsConstructor
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Component
public class DataScopeInterceptor extends JsqlParserSupport implements InnerInterceptor {
private DataScopeHandler dataScopeHandler;
public DataScopeInterceptor(DataScopeHandler dataScopeHandler) {
this.dataScopeHandler = dataScopeHandler;
}
@Override
protected void processSelect(Select select, int index, String sql, Object obj) {
//platOrgId = plat_role.data_scope = org_id 逗号隔开
//请求头没有指定字段platOrgId跳过||platOrgId 为空 ||platOrgId = tenantId 跳过
String dataScope = RequestUtil.getDataScope();
String tenantId = RequestUtil.getTenantIdHeader();
if(StringUtils.isBlank(dataScope)||StringUtils.isBlank(tenantId)){
return;
}
String[] orgIds = dataScope.split(Const.COMMON_SPLIT);
List<String> orgIdList = Arrays.asList(orgIds);
if(orgIdList.contains(tenantId)){
return;
}
String tableName = ((Table) ((PlainSelect) select.getSelectBody()).getFromItem()).getName();
//没有org_id 表字段跳过
List<TableFieldInfo> fieldInfoList = TableInfoHelper.getTableInfo(tableName).getFieldList();
boolean existsOrgId = StreamUtil.anyMatch(fieldInfoList, e -> Const.ORG_ID.equals(e.getColumn()));
if(!existsOrgId){
return;
}
SelectBody selectBody = select.getSelectBody();
if (selectBody instanceof PlainSelect) {
this.setWhere((PlainSelect) selectBody, (String) obj);
} else if (selectBody instanceof SetOperationList) {
SetOperationList setOperationList = (SetOperationList) selectBody;
List<SelectBody> selectBodyList = setOperationList.getSelects();
selectBodyList.forEach(s -> this.setWhere((PlainSelect) s, (String) obj));
}
}
/**
* 设置 where 条件
*
* @param plainSelect 查询对象
* @param whereSegment 查询条件片段
*/
private void setWhere(PlainSelect plainSelect, String whereSegment) {
Expression sqlSegment = dataScopeHandler.getSqlSegment(plainSelect, whereSegment);
if (null != sqlSegment) {
plainSelect.setWhere(sqlSegment);
}
}
@Override
public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException {
if (InterceptorIgnoreHelper.willIgnoreDataPermission(ms.getId())) {
return;
}
PluginUtils.MPBoundSql mpBs = PluginUtils.mpBoundSql(boundSql);
mpBs.sql(this.parserSingle(mpBs.sql(), ms.getId()));
}
}
...@@ -22,6 +22,8 @@ public class Const { ...@@ -22,6 +22,8 @@ public class Const {
public static final String FUTURE = "期货"; public static final String FUTURE = "期货";
public static final String FUTURE_ENG = "future"; public static final String FUTURE_ENG = "future";
public static final String ORG_ID = "org_id";
// 编码 // 编码
public static final String UTF8_CHAR_ENCODING = "utf-8"; public static final String UTF8_CHAR_ENCODING = "utf-8";
......
...@@ -22,4 +22,6 @@ public class HeaderConst { ...@@ -22,4 +22,6 @@ public class HeaderConst {
public static final String ZONE_ID = "zoneId"; public static final String ZONE_ID = "zoneId";
public static final String FEIGN_NO_REMOVE="feignNoRemove"; public static final String FEIGN_NO_REMOVE="feignNoRemove";
public static final String DATA_SCOPE = "data-scope";
} }
...@@ -105,4 +105,7 @@ public class RequestUtil { ...@@ -105,4 +105,7 @@ public class RequestUtil {
// } // }
// //
public static String getDataScope(){
return getHeader(HeaderConst.DATA_SCOPE);
}
} }
...@@ -3,22 +3,24 @@ package com.makeit.module.controller.space; ...@@ -3,22 +3,24 @@ package com.makeit.module.controller.space;
import com.makeit.common.dto.BaseIdDTO; import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.response.ApiResponseEntity; import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils; import com.makeit.common.response.ApiResponseUtils;
import com.makeit.common.vo.ExcelImportVo;
import com.makeit.dto.platform.elder.PlatElderImportDTO; import com.makeit.dto.platform.elder.PlatElderImportDTO;
import com.makeit.dto.platform.space.PlatSpaceAddDTO; import com.makeit.dto.platform.space.PlatSpaceAddDTO;
import com.makeit.dto.platform.space.PlatSpaceImportDTO; import com.makeit.dto.platform.space.PlatSpaceImportDTO;
import com.makeit.dto.platform.space.PlatSpaceQueryDTO; import com.makeit.dto.platform.space.PlatSpaceQueryDTO;
import com.makeit.dto.platform.space.PlatSpaceVO; import com.makeit.dto.platform.space.PlatSpaceVO;
import com.makeit.enums.CodeMessageEnum;
import com.makeit.enums.FileSuffixEnum; import com.makeit.enums.FileSuffixEnum;
import com.makeit.exception.BusinessException;
import com.makeit.global.annotation.Action;
import com.makeit.service.platform.space.PlatSpaceService; import com.makeit.service.platform.space.PlatSpaceService;
import com.makeit.utils.data.excel.ExcelUtil; import com.makeit.utils.data.excel.ExcelUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
...@@ -92,6 +94,16 @@ public class PlatSpaceController { ...@@ -92,6 +94,16 @@ public class PlatSpaceController {
} }
@ApiOperation("批量导入")
@PostMapping("import")
public ApiResponseEntity<ExcelImportVo> importExcel(@RequestParam(value = "excelFile", required = false) MultipartFile excelFile){
if(excelFile == null ){
throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR_EXCEL_UPLOAD_EXIT);
}
ExcelImportVo excelImportVo = spaceService.importSpaceExcel(excelFile);
return ApiResponseUtils.success(excelImportVo);
}
@ApiOperation("树-上级空间") @ApiOperation("树-上级空间")
@PostMapping("parentListTree") @PostMapping("parentListTree")
public ApiResponseEntity<List<PlatSpaceVO>> parentListTree(@RequestBody PlatSpaceQueryDTO dto) { public ApiResponseEntity<List<PlatSpaceVO>> parentListTree(@RequestBody PlatSpaceQueryDTO dto) {
......
...@@ -2,6 +2,7 @@ package com.makeit.service.platform.device.impl; ...@@ -2,6 +2,7 @@ package com.makeit.service.platform.device.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.common.dto.BaseTenantDTO; import com.makeit.common.dto.BaseTenantDTO;
...@@ -19,6 +20,7 @@ import com.makeit.dto.wechat.device.PlatDeviceSetupDTO; ...@@ -19,6 +20,7 @@ import com.makeit.dto.wechat.device.PlatDeviceSetupDTO;
import com.makeit.entity.platform.auth.PlatOrg; import com.makeit.entity.platform.auth.PlatOrg;
import com.makeit.entity.platform.device.PlatDevice; import com.makeit.entity.platform.device.PlatDevice;
import com.makeit.entity.platform.device.PlatDeviceOther; import com.makeit.entity.platform.device.PlatDeviceOther;
import com.makeit.entity.platform.space.PlatRegionSetting;
import com.makeit.enums.CodeMessageEnum; import com.makeit.enums.CodeMessageEnum;
import com.makeit.exception.BusinessException; import com.makeit.exception.BusinessException;
import com.makeit.mapper.platform.device.PlatDeviceMapper; import com.makeit.mapper.platform.device.PlatDeviceMapper;
...@@ -26,6 +28,7 @@ import com.makeit.module.iot.service.IotDevicePropertiesOperateService; ...@@ -26,6 +28,7 @@ import com.makeit.module.iot.service.IotDevicePropertiesOperateService;
import com.makeit.service.platform.auth.PlatOrgService; import com.makeit.service.platform.auth.PlatOrgService;
import com.makeit.service.platform.device.PlatDeviceOtherService; import com.makeit.service.platform.device.PlatDeviceOtherService;
import com.makeit.service.platform.device.PlatDeviceService; import com.makeit.service.platform.device.PlatDeviceService;
import com.makeit.service.platform.space.PlatRegionSettingService;
import com.makeit.service.saas.PlatTenantService; import com.makeit.service.saas.PlatTenantService;
import com.makeit.utils.DeviceCacheUtil; import com.makeit.utils.DeviceCacheUtil;
import com.makeit.utils.data.convert.BeanDtoVoUtils; import com.makeit.utils.data.convert.BeanDtoVoUtils;
...@@ -64,6 +67,8 @@ public class PlatDeviceServiceImpl extends ServiceImpl<PlatDeviceMapper, PlatDev ...@@ -64,6 +67,8 @@ public class PlatDeviceServiceImpl extends ServiceImpl<PlatDeviceMapper, PlatDev
private IotDevicePropertiesOperateService devicePropertiesOperateService; private IotDevicePropertiesOperateService devicePropertiesOperateService;
@Autowired @Autowired
private PlatTenantService platTenantService; private PlatTenantService platTenantService;
@Autowired
private PlatRegionSettingService platRegionSettingService;
@Override @Override
public PageVO<PlatDeviceListVO> page(PageReqDTO<PlatDeviceQueryDTO> pageReqDTO) { public PageVO<PlatDeviceListVO> page(PageReqDTO<PlatDeviceQueryDTO> pageReqDTO) {
...@@ -196,6 +201,11 @@ public class PlatDeviceServiceImpl extends ServiceImpl<PlatDeviceMapper, PlatDev ...@@ -196,6 +201,11 @@ public class PlatDeviceServiceImpl extends ServiceImpl<PlatDeviceMapper, PlatDev
deviceCacheUtil.put(db); deviceCacheUtil.put(db);
platDeviceOtherService.saveOrUpdate(other); platDeviceOtherService.saveOrUpdate(other);
//更新区域设置设备安装方式
platRegionSettingService.update(new UpdateWrapper<PlatRegionSetting>().lambda()
.set(PlatRegionSetting::getInstallType, other.getInstallation())
.eq(PlatRegionSetting::getDeviceId, other.getDeviceId()));
} }
@Override @Override
......
...@@ -77,7 +77,7 @@ public interface PlatSpaceService extends IService<PlatSpace> { ...@@ -77,7 +77,7 @@ public interface PlatSpaceService extends IService<PlatSpace> {
* @param excelFile * @param excelFile
* @return * @return
*/ */
public ExcelImportVo importSpaceExcel(MultipartFile excelFile); ExcelImportVo importSpaceExcel(MultipartFile excelFile);
List<PlatSpaceVO> parentListTree(PlatSpaceQueryDTO dto); List<PlatSpaceVO> parentListTree(PlatSpaceQueryDTO dto);
} }
...@@ -22,6 +22,7 @@ import com.makeit.utils.data.convert.BeanDtoVoUtils; ...@@ -22,6 +22,7 @@ import com.makeit.utils.data.convert.BeanDtoVoUtils;
import com.makeit.utils.data.convert.JsonUtil; import com.makeit.utils.data.convert.JsonUtil;
import com.makeit.utils.data.validate.CollectionUtils; import com.makeit.utils.data.validate.CollectionUtils;
import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO; import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
import jodd.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -103,7 +104,6 @@ public class PlatRegionSettingServiceImpl extends ServiceImpl<PlatRegionSettingM ...@@ -103,7 +104,6 @@ public class PlatRegionSettingServiceImpl extends ServiceImpl<PlatRegionSettingM
List<PlatRegionSetting> list = list(queryWrapper); List<PlatRegionSetting> list = list(queryWrapper);
List<PlatRegionSettingDTO> data = BeanDtoVoUtils.listVo(list,PlatRegionSettingDTO.class); List<PlatRegionSettingDTO> data = BeanDtoVoUtils.listVo(list,PlatRegionSettingDTO.class);
if(!list.isEmpty()){ if(!list.isEmpty()){
List<String> listDeviceIds = data.stream().map(item->item.getDeviceId()).collect(Collectors.toList()); List<String> listDeviceIds = data.stream().map(item->item.getDeviceId()).collect(Collectors.toList());
LambdaQueryWrapper<PlatDevice> queryWrapper1 = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PlatDevice> queryWrapper1 = new LambdaQueryWrapper<>();
...@@ -112,11 +112,15 @@ public class PlatRegionSettingServiceImpl extends ServiceImpl<PlatRegionSettingM ...@@ -112,11 +112,15 @@ public class PlatRegionSettingServiceImpl extends ServiceImpl<PlatRegionSettingM
List<PlatDevice> devices = platDeviceService.list(queryWrapper1); List<PlatDevice> devices = platDeviceService.list(queryWrapper1);
Map<String,String> map = devices.stream().collect(Collectors.toMap(PlatDevice::getId,PlatDevice::getName,(k1,k2)->k1)); Map<String,String> map = devices.stream().collect(Collectors.toMap(PlatDevice::getId,PlatDevice::getName,(k1,k2)->k1));
Map<String,String> oriDeviceIdMap = devices.stream().collect(Collectors.toMap(PlatDevice::getId,PlatDevice::getOriDeviceId,(k1,k2)->k1)); Map<String,String> oriDeviceIdMap = devices.stream().collect(Collectors.toMap(PlatDevice::getId,PlatDevice::getOriDeviceId,(k1,k2)->k1));
List<String> deviceIds = devices.stream().map(PlatDevice::getId).collect(Collectors.toList());
data.forEach(item->{ data.forEach(item->{
item.setDeviceName(map.get(item.getDeviceId())); item.setDeviceName(map.get(item.getDeviceId()));
item.setOriDeviceId(oriDeviceIdMap.get(item.getDeviceId())); item.setOriDeviceId(oriDeviceIdMap.get(item.getDeviceId()));
}); });
//过滤删除的设备
data = data.stream().filter(t-> deviceIds.contains(t.getDeviceId())).collect(Collectors.toList());
} }
return data; return data;
} }
......
...@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; ...@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.common.dto.BaseIdDTO; import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.vo.ExcelErrorVo; import com.makeit.common.vo.ExcelErrorVo;
import com.makeit.common.vo.ExcelImportVo; import com.makeit.common.vo.ExcelImportVo;
import com.makeit.dto.platform.auth.PlatOrgSplitDTO;
import com.makeit.dto.platform.space.*; import com.makeit.dto.platform.space.*;
import com.makeit.entity.platform.auth.PlatOrg; import com.makeit.entity.platform.auth.PlatOrg;
import com.makeit.entity.platform.space.PlatBed; import com.makeit.entity.platform.space.PlatBed;
...@@ -24,7 +23,6 @@ import com.makeit.service.platform.space.PlatSpaceService; ...@@ -24,7 +23,6 @@ import com.makeit.service.platform.space.PlatSpaceService;
import com.makeit.utils.data.convert.BeanDtoVoUtils; import com.makeit.utils.data.convert.BeanDtoVoUtils;
import com.makeit.utils.data.convert.TreeUtil; import com.makeit.utils.data.convert.TreeUtil;
import com.makeit.utils.data.excel.ExcelUtil; import com.makeit.utils.data.excel.ExcelUtil;
import com.makeit.utils.old.StringUtils;
import com.makeit.utils.user.TokenUtil; import com.makeit.utils.user.TokenUtil;
import com.makeit.utils.user.plat.PlatUserUtil; import com.makeit.utils.user.plat.PlatUserUtil;
import com.makeit.utils.user.plat.PlatUserVO; import com.makeit.utils.user.plat.PlatUserVO;
...@@ -33,9 +31,13 @@ import jodd.util.StringUtil; ...@@ -33,9 +31,13 @@ import jodd.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.*; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.function.BiConsumer; import java.util.function.BiConsumer;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -331,7 +333,7 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace ...@@ -331,7 +333,7 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
} }
@Override @Override
@Transactional @Transactional(rollbackFor = Exception.class)
public ExcelImportVo importSpaceExcel(MultipartFile excelFile) { public ExcelImportVo importSpaceExcel(MultipartFile excelFile) {
ExcelImportVo excelImportVo = new ExcelImportVo(); ExcelImportVo excelImportVo = new ExcelImportVo();
...@@ -373,7 +375,7 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace ...@@ -373,7 +375,7 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
errorFlag = true; errorFlag = true;
} }
if (StringUtil.isEmpty(item.getFloor())) { if (StringUtil.isEmpty(item.getRoomName())) {
errorVoList.add(new ExcelErrorVo(i + 3, excelField.get(4), "房间名必填")); errorVoList.add(new ExcelErrorVo(i + 3, excelField.get(4), "房间名必填"));
errorFlag = true; errorFlag = true;
} }
...@@ -414,6 +416,7 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace ...@@ -414,6 +416,7 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
PlatSpaceImportDTO item = list.get(i); PlatSpaceImportDTO item = list.get(i);
String spacePath = null;
//第一层级 //第一层级
String firstId = null; String firstId = null;
if (!firstSpaceNameMap.containsKey(item.getCommunity())) { if (!firstSpaceNameMap.containsKey(item.getCommunity())) {
...@@ -424,6 +427,7 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace ...@@ -424,6 +427,7 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
save(platSpace); save(platSpace);
firstSpaceNameMap.put(platSpace.getName(), platSpace.getId()); firstSpaceNameMap.put(platSpace.getName(), platSpace.getId());
firstId = platSpace.getId(); firstId = platSpace.getId();
spacePath = firstId;
} else { } else {
firstId = firstSpaceNameMap.get(item.getCommunity()); firstId = firstSpaceNameMap.get(item.getCommunity());
} }
...@@ -446,6 +450,7 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace ...@@ -446,6 +450,7 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
} else { } else {
secondId = childrenIdMap.get(secondKey); secondId = childrenIdMap.get(secondKey);
} }
spacePath = spacePath + "," + secondId;
} }
//第三级 //第三级
...@@ -466,6 +471,7 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace ...@@ -466,6 +471,7 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
} else { } else {
threeId = childrenIdMap.get(threeKey); threeId = childrenIdMap.get(threeKey);
} }
spacePath = spacePath + "," + threeId;
} }
//第四级 //第四级
...@@ -486,6 +492,7 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace ...@@ -486,6 +492,7 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
} else { } else {
fourId = childrenIdMap.get(fourKey); fourId = childrenIdMap.get(fourKey);
} }
spacePath = spacePath + "," + fourId;
} }
//房间 //房间
...@@ -503,6 +510,7 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace ...@@ -503,6 +510,7 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
spaceId = fourId; spaceId = fourId;
} }
platRoomDTO.setSpaceId(spaceId); platRoomDTO.setSpaceId(spaceId);
platRoomDTO.setSpacePath(spacePath);
platRoomService.add(platRoomDTO); platRoomService.add(platRoomDTO);
} }
} }
...@@ -512,6 +520,7 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace ...@@ -512,6 +520,7 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
excelImportVo.setList(errorVoList); excelImportVo.setList(errorVoList);
return excelImportVo; return excelImportVo;
} catch (Exception e) { } catch (Exception e) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
e.printStackTrace(); e.printStackTrace();
} }
...@@ -559,3 +568,5 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace ...@@ -559,3 +568,5 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
} }
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
<where> <where>
pb.del_flag = 0 and pb.status = 0 pb.del_flag = 0 and pb.status = 0
<if test="dto.elderName != null and dto.elderName != ''"> <if test="dto.elderName != null and dto.elderName != ''">
AND pe.naem LIKE CONCAT('%',#{dto.elderName},'%') AND pe.name LIKE CONCAT('%',#{dto.elderName},'%')
</if> </if>
<if test="dto.spaceIds != null and dto.spaceIds.size()>0 "> <if test="dto.spaceIds != null and dto.spaceIds.size()>0 ">
AND pm.space_id IN AND pm.space_id IN
...@@ -133,7 +133,7 @@ ...@@ -133,7 +133,7 @@
<where> <where>
pb.del_flag = 0 and pb.status = 0 pb.del_flag = 0 and pb.status = 0
<if test="dto.elderName != null and dto.elderName != ''"> <if test="dto.elderName != null and dto.elderName != ''">
AND pe.naem LIKE CONCAT('%',#{dto.elderName},'%') AND pe.name LIKE CONCAT('%',#{dto.elderName},'%')
</if> </if>
<if test="dto.spaceIds != null and dto.spaceIds.size()>0 "> <if test="dto.spaceIds != null and dto.spaceIds.size()>0 ">
AND pm.space_id IN AND pm.space_id IN
......
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
<where> <where>
pm.del_flag = 0 pm.del_flag = 0
<if test="dto.elderName != null and dto.elderName != ''"> <if test="dto.elderName != null and dto.elderName != ''">
AND pe.naem LIKE CONCAT('%',#{dto.elderName},'%') AND pe.name LIKE CONCAT('%',#{dto.elderName},'%')
</if> </if>
<if test="dto.spaceIds != null and dto.spaceIds.size()>0 "> <if test="dto.spaceIds != null and dto.spaceIds.size()>0 ">
AND pm.space_id IN AND pm.space_id IN
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
<where> <where>
pm.del_flag = 0 pm.del_flag = 0
<if test="dto.elderName != null and dto.elderName != ''"> <if test="dto.elderName != null and dto.elderName != ''">
AND pe.naem LIKE CONCAT('%',#{dto.elderName},'%') AND pe.name LIKE CONCAT('%',#{dto.elderName},'%')
</if> </if>
<if test="dto.spaceIds != null and dto.spaceIds.size()>0 "> <if test="dto.spaceIds != null and dto.spaceIds.size()>0 ">
AND pm.space_id IN AND pm.space_id IN
......
...@@ -64,7 +64,7 @@ public class PushCallback implements MqttCallback { ...@@ -64,7 +64,7 @@ public class PushCallback implements MqttCallback {
DeviceInfo device = JSON.parseObject(payload, DeviceInfo.class); DeviceInfo device = JSON.parseObject(payload, DeviceInfo.class);
// todo // todo
//checkAlarm(device); checkAlarm(device);
} }
@Override @Override
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment