Commit e634860f authored by duanruiming's avatar duanruiming

[add] 策略优先级配置删除,逻辑优化

parent 06972920
......@@ -7,6 +7,7 @@ import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import net.wanji.common.framework.i18n.I18nResourceBundle;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.opt.common.exception.OptServiceException;
import net.wanji.opt.entity.strategy.StrategyParameterConfig;
import net.wanji.opt.entity.strategy.StrategyPriorityDailyInfo;
import net.wanji.opt.entity.strategy.dto.StrategyPriorityGroupVO;
......@@ -126,6 +127,8 @@ public class StrategyPriorityController {
try {
strategyPriorityService.deletePriorityConfigList(dataList);
jsonViewObject.success();
} catch (OptServiceException e1) {
return jsonViewObject.success(e1.getMessage());
} catch (Exception e) {
jsonViewObject.fail(e.getMessage());
log.error("{} StrategyPriorityController-deletePriorityConfigList", this.getClass().getSimpleName(), e);
......
......@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import net.wanji.common.utils.tool.StringUtils;
import net.wanji.opt.common.exception.OptServiceException;
import net.wanji.opt.dao.mapper.strategy.StrategyPriorityMapper;
import net.wanji.opt.entity.strategy.*;
import net.wanji.opt.entity.strategy.dto.StrategyPriorityGroupVO;
......@@ -190,17 +191,15 @@ public class StrategyPriorityServiceImpl extends ServiceImpl<StrategyPriorityMap
@Transactional(rollbackFor = RuntimeException.class)
public void deletePriorityConfigList(List<StrategyPriorityGroupVO> dataList) throws Exception {
if (CollectionUtils.isNotEmpty(dataList)) {
Map<Integer, List<StrategyPriorityGroupVO>> groupMap = dataList.stream().collect(Collectors.groupingBy(StrategyPriorityGroupVO::getGroupId));
for (Map.Entry<Integer, List<StrategyPriorityGroupVO>> entry : groupMap.entrySet()) {
Integer groupId = entry.getKey();
List<StrategyPriorityGroupVO> value = entry.getValue();
StrategyPriorityGroupVO groupVO = value.get(0);
List<String> crossIds = groupVO.getCrossIds();
for (StrategyPriorityGroupVO strategyPriorityGroupVO : dataList) {
Integer groupId = strategyPriorityGroupVO.getGroupId();
List<StrategyPriorityConfig> priorityConfigs = strategyPriorityGroupVO.getData();
List<String> crossIds = strategyPriorityGroupVO.getCrossIds();
String crossId = null;
if (CollectionUtils.isNotEmpty(crossIds)) {
crossId = crossIds.get(0);
}
List<Integer> greenIds = groupVO.getGreenIds();
List<Integer> greenIds = strategyPriorityGroupVO.getGreenIds();
Integer greenId = null;
if (CollectionUtils.isNotEmpty(greenIds)) {
greenId = greenIds.get(0);
......@@ -211,17 +210,14 @@ public class StrategyPriorityServiceImpl extends ServiceImpl<StrategyPriorityMap
if (CollectionUtils.isEmpty(data4DB)) {
return;
}
if (CollectionUtils.isNotEmpty(dailyInfos) && data4DB.size() <= dataList.size()) {
throw new RuntimeException("日计划中已使用当前分组: " + groupId + " 不能清空!");
if (CollectionUtils.isNotEmpty(dailyInfos) && data4DB.size() <= priorityConfigs.size()) {
throw new OptServiceException("日计划中已使用当前分组: " + groupId + " 不能清空!");
}
// 删除路口编号分组下策略编号
for (StrategyPriorityGroupVO strategyPriorityGroupVO : value) {
List<StrategyPriorityConfig> data = strategyPriorityGroupVO.getData();
if (CollectionUtils.isNotEmpty(data)) {
for (StrategyPriorityConfig datum : data) {
strategyPriorityMapper.deleteCrossGreenPriorityConfig(crossId, greenId, groupId, datum.getStrategyNo());
}
if (CollectionUtils.isNotEmpty(priorityConfigs)) {
for (StrategyPriorityConfig priorityConfig : priorityConfigs) {
strategyPriorityMapper.deleteCrossGreenPriorityConfig(crossId, greenId, groupId, priorityConfig.getStrategyNo());
}
}
......
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 to comment