|
@@ -0,0 +1,240 @@
|
|
|
+package com.persagy.apm.energy.report.config.rel.typemodel.service.impl;
|
|
|
+
|
|
|
+import com.persagy.apm.common.context.poems.PoemsContext;
|
|
|
+import com.persagy.apm.common.context.poems.PoemsContext;
|
|
|
+import com.persagy.apm.energy.report.config.rel.typemodel.dao.ReportTypeModelRelMapper;
|
|
|
+import com.persagy.apm.energy.report.config.rel.typemodel.service.IReportTypeModelRelService;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
+import com.persagy.apm.common.constant.enums.ValidEnum;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.persagy.apm.energy.report.config.rel.typemodel.model.*;
|
|
|
+import com.persagy.apm.energy.report.config.rel.typemodel.model.dto.*;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.google.common.base.CaseFormat;
|
|
|
+import com.persagy.apm.common.model.dto.Sort;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 报告类型和模型关联关系(ReportTypeModelRel) service层
|
|
|
+ *
|
|
|
+ * @author lixing
|
|
|
+ * @version V1.0 2021-05-19 11:19:56
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class ReportTypeModelRelServiceImpl extends ServiceImpl<ReportTypeModelRelMapper, ReportTypeModelRel>
|
|
|
+ implements IReportTypeModelRelService {
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 创建报告类型和模型关联关系
|
|
|
+ *
|
|
|
+ * @return 报告类型和模型关联关系主键
|
|
|
+ * @author lixing
|
|
|
+ * @version V1.0 2021-05-19 11:19:56
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public String createReportTypeModelRel(AddReportTypeModelRelDTO addReportTypeModelRelDTO) {
|
|
|
+ ReportTypeModelRel reportTypeModelRel = ConvertReportTypeModelRelTool.INSTANCE.convertAddDto2Entity(addReportTypeModelRelDTO);
|
|
|
+ // 设置默认值
|
|
|
+ setDefaultValue(reportTypeModelRel);
|
|
|
+ save(reportTypeModelRel);
|
|
|
+ return reportTypeModelRel.getId();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 如果某些字段没有赋值,使用默认的值
|
|
|
+ *
|
|
|
+ * @param reportTypeModelRel 报告类型和模型关联关系实体
|
|
|
+ * @author lixing
|
|
|
+ * @version V1.0 2021/3/12 12:29 下午
|
|
|
+ */
|
|
|
+ private void setDefaultValue(ReportTypeModelRel reportTypeModelRel) {
|
|
|
+ reportTypeModelRel.setCreator(PoemsContext.getContext().getUserId());
|
|
|
+ // todo 其他默认的属性
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 报告类型和模型关联关系详情
|
|
|
+ *
|
|
|
+ * @param id 主键
|
|
|
+ * @return 部门do类
|
|
|
+ * @author lixing
|
|
|
+ * @version V1.0 2021-05-19 11:19:56
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ReportTypeModelRel queryReportTypeModelRelDetail(String id) {
|
|
|
+ ReportTypeModelRel reportTypeModelRel = getById(id);
|
|
|
+ if (reportTypeModelRel == null) {
|
|
|
+ throw new IllegalArgumentException("查看ReportTypeModelRel详情时发生异常,找不到要查看的记录,id=" + id);
|
|
|
+ }
|
|
|
+ return reportTypeModelRel;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新报告类型和模型关联关系
|
|
|
+ *
|
|
|
+ * @author lixing
|
|
|
+ * @version V1.0 2021-05-19 11:19:56
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void updateReportTypeModelRel(UpdateReportTypeModelRelDTO updateReportTypeModelRelDTO) {
|
|
|
+ ReportTypeModelRel reportTypeModelRel = getById(updateReportTypeModelRelDTO.getId());
|
|
|
+ reportTypeModelRel = ConvertReportTypeModelRelTool.INSTANCE.convertUpdateDto2Entity(reportTypeModelRel, updateReportTypeModelRelDTO);
|
|
|
+ reportTypeModelRel.setModifier(PoemsContext.getContext().getUserId());
|
|
|
+ updateById(reportTypeModelRel);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 校验报告类型和模型关联关系是否可删除
|
|
|
+ *
|
|
|
+ * @param id 报告类型和模型关联关系主键
|
|
|
+ * @return 报告类型和模型关联关系do类
|
|
|
+ * @author lixing
|
|
|
+ * @version V1.0 2021-05-19 11:19:56
|
|
|
+ */
|
|
|
+ public ReportTypeModelRel checkDeletable(String id) {
|
|
|
+ if (id == null) {
|
|
|
+ throw new IllegalArgumentException("删除ReportTypeModelRel时发生异常,主键为空");
|
|
|
+ }
|
|
|
+
|
|
|
+ ReportTypeModelRel reportTypeModelRel = getById(id);
|
|
|
+
|
|
|
+ if (reportTypeModelRel == null) {
|
|
|
+ throw new IllegalArgumentException("删除ReportTypeModelRel时发生异常,找不到要删除的数据,id:" + id);
|
|
|
+ }
|
|
|
+
|
|
|
+ return reportTypeModelRel;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除报告类型和模型关联关系
|
|
|
+ *
|
|
|
+ * @param id 主键
|
|
|
+ * @author lixing
|
|
|
+ * @version V1.0 2021-05-19 11:19:56
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void deleteReportTypeModelRel(String id) {
|
|
|
+ // 校验是否可删除
|
|
|
+ ReportTypeModelRel reportTypeModelRel = checkDeletable(id);
|
|
|
+
|
|
|
+ reportTypeModelRel.setValid(ValidEnum.FALSE.getType());
|
|
|
+ updateById(reportTypeModelRel);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询报告类型和模型关联关系
|
|
|
+ *
|
|
|
+ * @return List<ReportTypeModelRel>
|
|
|
+ * @author lixing
|
|
|
+ * @version V1.0 2021-05-19 11:19:56
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<ReportTypeModelRel> queryReportTypeModelRelList(QueryReportTypeModelRelDTO queryReportTypeModelRelDTO) {
|
|
|
+ QueryWrapper<ReportTypeModelRel> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq(ReportTypeModelRel.PROP_VALID, ValidEnum.TRUE.getType());
|
|
|
+ // 默认按创建时间倒序排序
|
|
|
+ queryWrapper.orderBy(true, false, ReportTypeModelRel.PROP_CREATIONTIME);
|
|
|
+
|
|
|
+ if (queryReportTypeModelRelDTO != null) {
|
|
|
+
|
|
|
+ // todo 需判断使用like还是eq
|
|
|
+ if (StringUtils.isNotEmpty(queryReportTypeModelRelDTO.getReportTypeId())) {
|
|
|
+ queryWrapper.like(ReportTypeModelRel.PROP_REPORT_TYPE_ID, queryReportTypeModelRelDTO.getReportTypeId());
|
|
|
+ }
|
|
|
+
|
|
|
+ // todo 需判断使用like还是eq
|
|
|
+ if (StringUtils.isNotEmpty(queryReportTypeModelRelDTO.getModelCode())) {
|
|
|
+ queryWrapper.like(ReportTypeModelRel.PROP_MODEL_CODE, queryReportTypeModelRelDTO.getModelCode());
|
|
|
+ }
|
|
|
+
|
|
|
+ // todo 需判断使用like还是eq
|
|
|
+ if (StringUtils.isNotEmpty(queryReportTypeModelRelDTO.getModelSource())) {
|
|
|
+ queryWrapper.like(ReportTypeModelRel.PROP_MODEL_SOURCE, queryReportTypeModelRelDTO.getModelSource());
|
|
|
+ }
|
|
|
+
|
|
|
+ // todo 需判断使用like还是eq
|
|
|
+ if (StringUtils.isNotEmpty(queryReportTypeModelRelDTO.getRelType())) {
|
|
|
+ queryWrapper.like(ReportTypeModelRel.PROP_REL_TYPE, queryReportTypeModelRelDTO.getRelType());
|
|
|
+ }
|
|
|
+
|
|
|
+ // todo 需判断使用like还是eq
|
|
|
+ if (StringUtils.isNotEmpty(queryReportTypeModelRelDTO.getModelStandardValue())) {
|
|
|
+ queryWrapper.like(ReportTypeModelRel.PROP_MODEL_STANDARD_VALUE, queryReportTypeModelRelDTO.getModelStandardValue());
|
|
|
+ }
|
|
|
+
|
|
|
+ // todo 需判断使用like还是eq
|
|
|
+ if (StringUtils.isNotEmpty(queryReportTypeModelRelDTO.getModelQualifyFormula())) {
|
|
|
+ queryWrapper.like(ReportTypeModelRel.PROP_MODEL_QUALIFY_FORMULA, queryReportTypeModelRelDTO.getModelQualifyFormula());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return list(queryWrapper);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 分页查询报告类型和模型关联关系
|
|
|
+ *
|
|
|
+ * @return IPage<ReportTypeModelRel>
|
|
|
+ * @author lixing
|
|
|
+ * @version V1.0 2021-05-19 11:19:56
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public IPage<ReportTypeModelRel> pageQueryReportTypeModelRel(PageQueryReportTypeModelRelDTO pageQueryReportTypeModelRelDTO) {
|
|
|
+ QueryWrapper<ReportTypeModelRel> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq(ReportTypeModelRel.PROP_VALID, ValidEnum.TRUE.getType());
|
|
|
+ // 这里认为pageQueryDTO是经过校验的,肯定包含分页信息
|
|
|
+ IPage<ReportTypeModelRel> pageParam = new Page<>(pageQueryReportTypeModelRelDTO.getPage(), pageQueryReportTypeModelRelDTO.getSize(), true);
|
|
|
+ // 排序信息
|
|
|
+ if (CollectionUtils.isEmpty(pageQueryReportTypeModelRelDTO.getOrders())) {
|
|
|
+ // 默认按创建时间倒序排序
|
|
|
+ queryWrapper.orderBy(true, false, ReportTypeModelRel.PROP_CREATIONTIME);
|
|
|
+ } else {
|
|
|
+ List<Sort> orders = pageQueryReportTypeModelRelDTO.getOrders();
|
|
|
+ for (Sort sort : orders) {
|
|
|
+ // 将驼峰转换为下划线格式
|
|
|
+ sort.setColumn(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sort.getColumn()));
|
|
|
+ queryWrapper.orderBy(true, sort.isAsc(), sort.getColumn());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // todo 需判断使用like还是eq
|
|
|
+ if (StringUtils.isNotEmpty(pageQueryReportTypeModelRelDTO.getReportTypeId())) {
|
|
|
+ queryWrapper.like(ReportTypeModelRel.PROP_REPORT_TYPE_ID, pageQueryReportTypeModelRelDTO.getReportTypeId());
|
|
|
+ }
|
|
|
+
|
|
|
+ // todo 需判断使用like还是eq
|
|
|
+ if (StringUtils.isNotEmpty(pageQueryReportTypeModelRelDTO.getModelCode())) {
|
|
|
+ queryWrapper.like(ReportTypeModelRel.PROP_MODEL_CODE, pageQueryReportTypeModelRelDTO.getModelCode());
|
|
|
+ }
|
|
|
+
|
|
|
+ // todo 需判断使用like还是eq
|
|
|
+ if (StringUtils.isNotEmpty(pageQueryReportTypeModelRelDTO.getModelSource())) {
|
|
|
+ queryWrapper.like(ReportTypeModelRel.PROP_MODEL_SOURCE, pageQueryReportTypeModelRelDTO.getModelSource());
|
|
|
+ }
|
|
|
+
|
|
|
+ // todo 需判断使用like还是eq
|
|
|
+ if (StringUtils.isNotEmpty(pageQueryReportTypeModelRelDTO.getRelType())) {
|
|
|
+ queryWrapper.like(ReportTypeModelRel.PROP_REL_TYPE, pageQueryReportTypeModelRelDTO.getRelType());
|
|
|
+ }
|
|
|
+
|
|
|
+ // todo 需判断使用like还是eq
|
|
|
+ if (StringUtils.isNotEmpty(pageQueryReportTypeModelRelDTO.getModelStandardValue())) {
|
|
|
+ queryWrapper.like(ReportTypeModelRel.PROP_MODEL_STANDARD_VALUE, pageQueryReportTypeModelRelDTO.getModelStandardValue());
|
|
|
+ }
|
|
|
+
|
|
|
+ // todo 需判断使用like还是eq
|
|
|
+ if (StringUtils.isNotEmpty(pageQueryReportTypeModelRelDTO.getModelQualifyFormula())) {
|
|
|
+ queryWrapper.like(ReportTypeModelRel.PROP_MODEL_QUALIFY_FORMULA, pageQueryReportTypeModelRelDTO.getModelQualifyFormula());
|
|
|
+ }
|
|
|
+
|
|
|
+ return getBaseMapper().selectPage(pageParam, queryWrapper);
|
|
|
+ }
|
|
|
+}
|