Commit fbca687f by 朱淼
parents c83849e4 bdfecd6f
Showing with 219 additions and 30 deletions
......@@ -38,23 +38,20 @@ public class SaasDeviceReportDayController {
@ApiOperation("睡眠评价")
@PostMapping("sleepEvaluation")
@TenantIdIgnore
public ApiResponseEntity<PlatElderSleepEvaluationVO> sleepEvaluation(@RequestBody PlatElderIdDTO platElderIdDTO) {
return null;
public ApiResponseEntity<PlatElderSleepEvaluationVO> sleepEvaluation(@RequestBody PlatElderReportDTO platElderIdDTO) {
return ApiResponseUtils.success(platElderDayReportDayService.sleepEvaluation(platElderIdDTO));
}
@ApiOperation("睡眠图表")
@PostMapping("sleepDiagram")
@TenantIdIgnore
public ApiResponseEntity<List<PlatElderSleepDiagramVO>> sleepDiagram(@RequestBody PlatElderIdDTO platElderIdDTO) {
return null;
public ApiResponseEntity<List<PlatElderSleepDiagramVO>> sleepDiagram(@RequestBody PlatElderReportDTO platElderIdDTO) {
return ApiResponseUtils.success(platElderDayReportDayService.sleepDiagram(platElderIdDTO));
}
@ApiOperation("心率呼吸评价")
@PostMapping("heartRespiratoryEvaluation")
@TenantIdIgnore
public ApiResponseEntity<PlatElderHeartRespiratoryEvaluationVO> heartRespiratoryEvaluation(@RequestBody PlatElderIdDTO platElderIdDTO) {
return null;
public ApiResponseEntity<PlatElderHeartRespiratoryEvaluationVO> heartRespiratoryEvaluation(@RequestBody PlatElderReportDTO platElderIdDTO) {
return ApiResponseUtils.success(platElderDayReportDayService.heartRespiratoryEvaluation(platElderIdDTO));
}
@ApiOperation("心率异常记录")
......
......@@ -272,5 +272,7 @@
<orderEntry type="library" name="Maven: org.dom4j:dom4j:2.1.3" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.68" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.68" level="project" />
<orderEntry type="module" module-name="server-service" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.22" level="project" />
</component>
</module>
\ No newline at end of file
......@@ -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.TenantLineInnerInterceptor;
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.TenantIdInterceptor;
import com.makeit.config.mybatis.tenant.FactoryTableProperties;
import com.makeit.enums.CodeMessageEnum;
import com.makeit.enums.Const;
import com.makeit.exception.BusinessException;
......@@ -43,14 +45,17 @@ public class MybatisPlusConfig {
interceptor.addInnerInterceptor(new EmptyListInterceptor());
interceptor.addInnerInterceptor(tenantLineInnerInterceptor());
interceptor.addInnerInterceptor(new DataScopeInterceptor(new DataScopeHandler()));
interceptor.addInnerInterceptor(tenantLineInnerInterceptor());
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
return interceptor;
}
......@@ -106,5 +111,4 @@ public class MybatisPlusConfig {
public TenantLineInnerInterceptor tenantLineInnerInterceptor() {
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 {
public static final String 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";
......
......@@ -22,4 +22,6 @@ public class HeaderConst {
public static final String ZONE_ID = "zoneId";
public static final String FEIGN_NO_REMOVE="feignNoRemove";
public static final String DATA_SCOPE = "data-scope";
}
......@@ -44,4 +44,7 @@ public class PlatRoleDTOVO extends BaseOrgDTO implements Serializable {
private String status;
@ApiModelProperty(value = "org_id列表 以逗号分隔 权限")
private String dataScope;
}
......@@ -86,7 +86,7 @@ public class ConfigConverter implements Converter<String> {
ConfigFormat dictEnumFormat = contentProperty.getField().getAnnotation(ConfigFormat.class);
String s = Arrays.stream(value.split(",")).filter(StringUtils::isNotBlank).map(m::get).filter(StringUtils::isNotBlank).collect(Collectors.joining(dictEnumFormat.split()));
String s = Arrays.stream(value.split(",")).filter(StringUtils::isNotBlank).map(m::get).filter(StringUtils::isNotBlank).collect(Collectors.joining(dictEnumFormat.split().substring(dictEnumFormat.split().length() - 1)));
if (StringUtils.isBlank(s)) {
s = "";
......
......@@ -9,6 +9,6 @@ public @interface ConfigFormat {
String categoryCode();
String split() default "|";
String split() default "\\|";
}
......@@ -105,4 +105,7 @@ public class RequestUtil {
// }
//
public static String getDataScope(){
return getHeader(HeaderConst.DATA_SCOPE);
}
}
......@@ -4,8 +4,10 @@ package com.makeit.module.controller.children.elder;
import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.elder.PlatElderQueryDTO;
import com.makeit.dto.platform.elder.add.PlatElderDTOVO;
import com.makeit.service.platform.elder.PlatElderService;
import com.makeit.vo.platform.elder.PlatElderListVO;
import com.makeit.vo.wechat.elder.PlatElderWechatSimpleVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -33,6 +35,12 @@ public class PlatElderChildrenController {
@Autowired
private PlatElderService platElderService;
@ApiOperation("列表")
@PostMapping("list")
public ApiResponseEntity<List<PlatElderListVO>> list(@RequestBody PlatElderQueryDTO dto) {
return ApiResponseUtils.success(platElderService.list(dto));
}
@ApiOperation("我的家庭")
@PostMapping("listMy")
public ApiResponseEntity<List<PlatElderWechatSimpleVO>> listMy() {
......
......@@ -10,6 +10,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
......@@ -37,14 +38,14 @@ public class PlatElderChildrenInfoChildrenController {
@ApiOperation("绑定")
@PostMapping("bind")
public ApiResponseEntity<?> bind(PlatElderIdDTO dto) {
public ApiResponseEntity<?> bind(@RequestBody PlatElderIdDTO dto) {
platElderChildrenInfoService.bind(dto.getElderId());
return ApiResponseUtils.success();
}
@ApiOperation("解绑")
@PostMapping("unbind")
public ApiResponseEntity<?> unbind(PlatElderIdDTO dto) {
public ApiResponseEntity<?> unbind(@RequestBody PlatElderIdDTO dto) {
platElderChildrenInfoService.unbind(dto.getElderId());
return ApiResponseUtils.success();
}
......
......@@ -97,7 +97,7 @@ public class PlatElderImportDTO extends BaseTenantDTO {
@ApiModelProperty(value = "性别 数据字典 1 男 2 女")
private String sex;
@ExcelProperty({BIG_TITLE, "老人姓名"})
@ExcelProperty({BIG_TITLE, "年龄"})
@ApiModelProperty(value = "年龄")
private Integer age;
......@@ -109,7 +109,7 @@ public class PlatElderImportDTO extends BaseTenantDTO {
@NotBlank(message = "证件号不能为空")
@Size(max = 50, message = "证件号最长为50字符")
@ExcelProperty({BIG_TITLE, "证件号"})
@ExcelProperty({BIG_TITLE, "证件号*"})
@ApiModelProperty(value = "证件号码")
private String certificateNumber;
......
package com.makeit.entity.platform.elder;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.makeit.common.entity.BaseBusEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......@@ -21,6 +23,7 @@ public class PlatElderChildrenInfo extends BaseBusEntity {
private static final long serialVersionUID = 1L;
@TableField(updateStrategy = FieldStrategy.IGNORED)
@ApiModelProperty(value = "长者id")
private String elderId;
......
......@@ -72,7 +72,8 @@ public class BreathAlarm implements IAlarm {
//计数
AlarmRedisDTO alarmRedisDTO = RedisUtil.get(RedisConst.ALARM_DEVICE_BR_ID + deviceId);
if (StringUtils.equals(personState, CommonEnum.NO.getValue())) {
//运动状态 0-无人 3-进入呼吸 跳过
if (StringUtils.equalsAny(personState, CommonEnum.NO.getValue(),"3")) {
RedisUtil.delete(RedisConst.ALARM_DEVICE_BR_ID + deviceId);
return;
}
......
......@@ -147,8 +147,13 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
@Override
public PlatAlarmRecordVO view(String recordId) {
PlatAlarmRecord platAlarmRecord = getById(recordId);
if(platAlarmRecord == null ){
return null;
}
PlatAlarmRecordVO vo = BeanDtoVoUtils.convert(platAlarmRecord, PlatAlarmRecordVO.class);
JoinUtil.join(Arrays.asList(vo), platAlarmConfigService, PlatAlarmRecordVO::getAlarmId, BaseEntity::getId, (t, m) -> t.setNotifyRelation(m.getNotifyRelation()));
if(StringUtils.isNotBlank(vo.getAlarmId())) {
JoinUtil.join(Arrays.asList(vo), platAlarmConfigService, PlatAlarmRecordVO::getAlarmId, BaseEntity::getId, (t, m) -> t.setNotifyRelation(m.getNotifyRelation()));
}
return vo;
}
......
......@@ -167,7 +167,7 @@ public class PlatElderChildrenInfoServiceImpl extends ServiceImpl<PlatElderChild
LinkedHashSet<String> linkedHashSet = new LinkedHashSet<>(list);
linkedHashSet.add(elderId);
childrenInfo.setElderId(StreamUtil.join(new ArrayList<>(list), Function.identity()));
childrenInfo.setElderId(StreamUtil.join(new ArrayList<>(linkedHashSet), Function.identity()));
updateById(childrenInfo);
......@@ -185,7 +185,7 @@ public class PlatElderChildrenInfoServiceImpl extends ServiceImpl<PlatElderChild
LinkedHashSet<String> linkedHashSet = new LinkedHashSet<>(list);
linkedHashSet.remove(elderId);
childrenInfo.setElderId(StreamUtil.join(new ArrayList<>(list), Function.identity()));
childrenInfo.setElderId(StreamUtil.join(new ArrayList<>(linkedHashSet), Function.identity()));
if (linkedHashSet.isEmpty()) {
childrenInfo.setElderId(null);
......
......@@ -29,6 +29,7 @@ import com.makeit.enums.CommonEnum;
import com.makeit.enums.FileSuffixEnum;
import com.makeit.enums.id.TreeConst;
import com.makeit.exception.BusinessException;
import com.makeit.global.aspect.tenant.TenantIdIgnore;
import com.makeit.mapper.platform.elder.PlatElderMapper;
import com.makeit.service.platform.auth.PlatOrgService;
import com.makeit.service.platform.elder.*;
......@@ -108,7 +109,8 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
.eq(StringUtils.isNotBlank(dto.getCertificateType()), PlatElder::getCertificateType, dto.getCertificateType())
.like(StringUtils.isNotBlank(dto.getCertificateNumber()), PlatElder::getCertificateNumber, dto.getCertificateNumber())
.apply(StringUtils.isNotBlank(dto.getSpaceId()), "find_in_set('" + dto.getSpaceId() + "',space_path)")
.apply(StringUtils.isNotBlank(dto.getOrgId()), "find_in_set('" + dto.getOrgId() + "',org_path)");
.apply(StringUtils.isNotBlank(dto.getOrgId()), "find_in_set('" + dto.getOrgId() + "',org_path)")
.orderByDesc(PlatElder::getId);
}
@Override
......@@ -289,7 +291,7 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
TreeDTOVO::getParentId, Collectors.toMap(TreeDTOVO::getName, Function.identity())
));
ExcelImportVo excelImportVo = ExcelValidatorUtil.validateMain(list, l -> {
ExcelImportVo excelImportVo = ExcelValidatorUtil.validateMain(3, list, l -> {
int start = 3;
List<ExcelErrorVo> errorVoList = new ArrayList<>(10);
......@@ -611,6 +613,7 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
}
//@TenantIdIgnore
@Override
public PlatElderDTOVO view(String id) {
PlatElder platElder = getById(id);
......@@ -808,6 +811,7 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
return platRoomBedDeviceService.getFallDevice(platElder.getBedId());
}
//@TenantIdIgnore
@Override
public List<PlatElderWechatSimpleVO> listMy() {
PlatElderChildrenInfoWechatVO childrenInfo = platElderChildrenInfoService.view();
......
......@@ -42,6 +42,9 @@ public class PlatDeviceListVO extends BaseTenantDTO {
@ApiModelProperty(value = "状态 数据字典 1 在线 0离线")
private String status;
@ApiModelProperty(value = "设备类型 0-呼吸心率雷达 1-空间人体雷达 2-跌倒检测雷达")
private String category;
@ApiModelProperty(value = "组织id")
private String orgId;
......@@ -70,7 +73,11 @@ public class PlatDeviceListVO extends BaseTenantDTO {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createDate;
@ApiModelProperty(value = "有效时间-起", required = false)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime startDate;
@ApiModelProperty(value = "有效时间-止", required = false)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime endDate;
......
......@@ -51,6 +51,9 @@ public class PlatDeviceViewVO extends BaseTenantDTO {
@ApiModelProperty(value = "状态 数据字典 1 在线 0离线")
private String status;
@ApiModelProperty(value = "设备类型 0-呼吸心率雷达 1-空间人体雷达 2-跌倒检测雷达")
private String category;
@ApiModelProperty(value = "组织id")
private String orgId;
......
......@@ -85,7 +85,7 @@ public class PlatElderExportVO extends BaseTenantDTO {
@ApiModelProperty(value = "性别 数据字典 1 男 2 女")
private String sex;
@ExcelProperty(value = "老人姓名")
@ExcelProperty(value = "老人年龄")
@ApiModelProperty(value = "年龄")
private Integer age;
......@@ -224,7 +224,7 @@ public class PlatElderExportVO extends BaseTenantDTO {
private Integer childrenQuantity;
@DictEnumFormat(em = PlatElderEnum.MedicalInsuranceEnum.class)
@ExcelProperty(value = "宗教信仰", converter = DictEnumConverter.class)
@ExcelProperty(value = "医疗保险情况", converter = DictEnumConverter.class)
@ApiModelProperty(value = "医疗保险 数据字典 1 有 0 无")
private String medicalInsurance;
......
......@@ -26,6 +26,7 @@
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.22" level="project" />
<orderEntry type="module" module-name="saas-module" />
<orderEntry type="module" module-name="server-common" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.5.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:2.5.6" level="project" />
......@@ -50,7 +51,6 @@
<orderEntry type="library" name="Maven: org.springframework:spring-web:5.3.12" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.12" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.3.12" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.12" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.3.12" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.5.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.12" level="project" />
......@@ -67,7 +67,6 @@
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:4.2" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.7" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.5.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.5.6" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:4.0.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.3.12" level="project" />
......@@ -169,7 +168,6 @@
<orderEntry type="library" name="Maven: com.huaweicloud:esdk-obs-java-bundle:3.23.5" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.14.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.14.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.12.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi:5.2.2" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.15" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" />
......@@ -266,12 +264,14 @@
<orderEntry type="library" name="Maven: org.dom4j:dom4j:2.1.3" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.68" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.68" level="project" />
<orderEntry type="module" module-name="saas-module" />
<orderEntry type="module" module-name="server-service" />
<orderEntry type="module" module-name="server-module" />
<orderEntry type="module" module-name="server-api" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.5.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.5.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.5.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.12" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.5.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.5.6" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.6" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.6" level="project" />
......@@ -309,6 +309,7 @@
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.3.12" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.8.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.velocity:velocity-engine-core:2.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.12.0" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.32" level="project" />
</component>
</module>
\ No newline at end of file
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