计划名称去重、计划倒序排列

This commit is contained in:
caozehui
2025-01-16 15:59:09 +08:00
parent dd9662091a
commit 659f1e1ed5
7 changed files with 199 additions and 2 deletions

View File

@@ -0,0 +1,21 @@
package com.njcn.gather.plan.pojo.enums;
import lombok.Getter;
/**
* @author caozehui
* @data 2025-01-16
*/
@Getter
public enum PlanResponseEnum {
PLAN_REPEATED("A003014", "当前模式下,该计划已存在");
private final String message;
private final String code;
PlanResponseEnum(String code, String message) {
this.code = code;
this.message = message;
}
}

View File

@@ -25,6 +25,7 @@ import com.njcn.gather.device.source.pojo.po.PqSource;
import com.njcn.gather.device.source.service.IPqSourceService;
import com.njcn.gather.plan.mapper.AdPlanMapper;
import com.njcn.gather.plan.pojo.enums.DataSourceEnum;
import com.njcn.gather.plan.pojo.enums.PlanResponseEnum;
import com.njcn.gather.plan.pojo.param.AdPlanParam;
import com.njcn.gather.plan.pojo.po.AdPlan;
import com.njcn.gather.plan.pojo.vo.AdPlanExcel;
@@ -95,6 +96,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
@Override
@Transactional(rollbackFor = {Exception.class})
public boolean addAdPlan(AdPlanParam param) {
this.checkRepeat(param,false);
AdPlan adPlan = new AdPlan();
BeanUtil.copyProperties(param, adPlan);
@@ -132,6 +134,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
@Override
@Transactional(rollbackFor = {Exception.class})
public boolean updateAdPlan(AdPlanParam.UpdateParam param) {
this.checkRepeat(param,true);
AdPlan adPlan = new AdPlan();
BeanUtil.copyProperties(param, adPlan);
@@ -277,7 +280,12 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
private Wrapper getQueryWrapper(AdPlanParam.QueryParam queryParam) {
QueryWrapper<AdPlan> queryWrapper = new QueryWrapper<>();
if (ObjectUtil.isNotNull(queryParam)) {
queryWrapper.eq(StrUtil.isNotBlank(queryParam.getPattern()), "ad_plan.pattern", queryParam.getPattern()).eq(StrUtil.isNotBlank(queryParam.getName()), "ad_plan.name", queryParam.getName()).eq(ObjectUtil.isNotNull(queryParam.getTestState()), "ad_plan.Test_State", queryParam.getTestState()).eq(ObjectUtil.isNotNull(queryParam.getReportState()), "ad_plan.Report_State", queryParam.getReportState()).eq(ObjectUtil.isNotNull(queryParam.getResult()), "ad_plan.result", queryParam.getResult());
queryWrapper.eq(StrUtil.isNotBlank(queryParam.getPattern()), "ad_plan.pattern", queryParam.getPattern())
.eq(StrUtil.isNotBlank(queryParam.getName()), "ad_plan.name", queryParam.getName())
.eq(ObjectUtil.isNotNull(queryParam.getTestState()), "ad_plan.Test_State", queryParam.getTestState())
.eq(ObjectUtil.isNotNull(queryParam.getReportState()), "ad_plan.Report_State", queryParam.getReportState())
.eq(ObjectUtil.isNotNull(queryParam.getResult()), "ad_plan.result", queryParam.getResult())
.orderByDesc("Create_Time");
}
queryWrapper.eq("ad_plan.state", DataStateEnum.ENABLE.getCode()).orderBy(true, true, "Create_Time");
return queryWrapper;
@@ -400,4 +408,26 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
private Integer generateCode() {
return this.lambdaQuery().select(AdPlan::getCode).orderByDesc(AdPlan::getCode).last("LIMIT 1").one().getCode() + 1;
}
/**
* 检查计划是否重复
*
* @param param 计划参数
* @param isExcludeSelf 是否排除自己
*/
private void checkRepeat(AdPlanParam param, boolean isExcludeSelf) {
QueryWrapper<AdPlan> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("state", DataStateEnum.ENABLE.getCode())
.eq("Name", param.getName())
.eq("Pattern", param.getPattern());
if (isExcludeSelf) {
if (param instanceof AdPlanParam.UpdateParam) {
queryWrapper.ne("id", ((AdPlanParam.UpdateParam) param).getId());
}
}
int count = this.count(queryWrapper);
if (count > 0) {
throw new BusinessException(PlanResponseEnum.PLAN_REPEATED);
}
}
}