Commit e0038e65 authored by zhoushiguang's avatar zhoushiguang
parents 2a705741 1292b73f
...@@ -48,47 +48,6 @@ public class StrategyPriorityController { ...@@ -48,47 +48,6 @@ public class StrategyPriorityController {
@ApiOperation(value = "策略优先级日计划详情表详情", response = StrategyPriorityDailyInfo.class)
@GetMapping(value = "/info/{id}")
public Object info(@PathVariable Long id) {
Object data = strategyPriorityService.info(id);
return ResultGenerator.genSuccessResult(data);
}
@ApiOperation(value = "策略优先级日计划详情表新增")
@PostMapping(value = "/add")
public Object add(@Valid @RequestBody StrategyPriorityDailyInfo param) {
strategyPriorityService.add(param);
return ResultGenerator.genSuccessResult();
}
@ApiOperation(value = "策略优先级日计划详情表修改")
@PostMapping(value = "/modify")
public Object modify(@Valid @RequestBody StrategyPriorityDailyInfo param) {
strategyPriorityService.modify(param);
return ResultGenerator.genSuccessResult();
}
@ApiOperation(value = "策略优先级日计划详情表删除(单个条目)")
@GetMapping(value = "/remove/{id}")
public Object remove(@PathVariable Long id) {
strategyPriorityService.remove(id);
return ResultGenerator.genSuccessResult();
}
@ApiOperation(value = "策略优先级日计划详情表删除(多个条目)")
@PostMapping(value = "/removes")
public Object removes(@Valid @RequestBody List<Long> ids) {
strategyPriorityService.removes(ids);
return ResultGenerator.genSuccessResult();
}
//策略管理-路口列表 //策略管理-路口列表
@ApiOperation(value = "策略管理-路口列表", notes = "查询全部记录", produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON,hidden = false) @ApiOperation(value = "策略管理-路口列表", notes = "查询全部记录", produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON,hidden = false)
@ApiImplicitParams({ @ApiImplicitParams({
...@@ -125,10 +84,10 @@ public class StrategyPriorityController { ...@@ -125,10 +84,10 @@ public class StrategyPriorityController {
@ApiOperation(value = "策略管理-场景", notes = "查询全部记录", produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON,hidden = false) @ApiOperation(value = "策略管理-场景", notes = "查询全部记录", produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON,hidden = false)
@GetMapping("/sceneList") @GetMapping("/sceneList")
public JsonViewObject getSceneList(){ public JsonViewObject getSceneList(Integer type){
JsonViewObject jsonView = JsonViewObject.newInstance(); JsonViewObject jsonView = JsonViewObject.newInstance();
try { try {
List<StrategyFactoryEntity> retLineData=strategyPriorityService.getSceneList(); List<StrategyFactoryEntity> retLineData=strategyPriorityService.getSceneList(type);
jsonView.success(retLineData); jsonView.success(retLineData);
}catch (Exception e){ }catch (Exception e){
jsonView.fail(I18nResourceBundle.getConstants("GET_FAILED_MSG")); jsonView.fail(I18nResourceBundle.getConstants("GET_FAILED_MSG"));
...@@ -253,4 +212,22 @@ public class StrategyPriorityController { ...@@ -253,4 +212,22 @@ public class StrategyPriorityController {
} }
return jsonView; return jsonView;
} }
/*
策略管理-干线列表
*/
@ApiOperation(value = "策略管理-干线列表", notes = "查询全部记录", produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON,hidden = false)
@GetMapping("/getStrategyGreenWave")
public JsonViewObject getStrategyGreenWave(){
JsonViewObject jsonView = JsonViewObject.newInstance();
try {
List<StrategyPriorityDailyInfo> retLineData=strategyPriorityService.getStrategyGreenWave();
jsonView.success(retLineData);
}catch (Exception e){
jsonView.fail(I18nResourceBundle.getConstants("GET_FAILED_MSG"));
log.error("{} getStrategyGreenWave error", this.getClass().getSimpleName(), e);
}
return jsonView;
}
} }
\ No newline at end of file
...@@ -55,7 +55,7 @@ public interface StrategyPriorityMapper extends BaseMapper<StrategyPriorityDaily ...@@ -55,7 +55,7 @@ public interface StrategyPriorityMapper extends BaseMapper<StrategyPriorityDaily
List<StrategyFactoryEntity> getStrategyList(); List<StrategyFactoryEntity> getStrategyList();
List<StrategyFactoryEntity> getSceneList(); List<StrategyFactoryEntity> getSceneList(Integer type);
List<StrategyFactoryEntity> getCompanyList(); List<StrategyFactoryEntity> getCompanyList();
...@@ -90,5 +90,7 @@ public interface StrategyPriorityMapper extends BaseMapper<StrategyPriorityDaily ...@@ -90,5 +90,7 @@ public interface StrategyPriorityMapper extends BaseMapper<StrategyPriorityDaily
void saveParamConfig(@Param("savePlanList") List<StrategyParameterConfig> savePlanList); void saveParamConfig(@Param("savePlanList") List<StrategyParameterConfig> savePlanList);
List<StrategyParameterConfig> getParamConfigData(String crossId); List<StrategyParameterConfig> getParamConfigData(String crossId);
List<StrategyPriorityDailyInfo> getStrategyGreenWave();
} }
...@@ -51,5 +51,9 @@ public class StrategyPriorityConfig implements Serializable { ...@@ -51,5 +51,9 @@ public class StrategyPriorityConfig implements Serializable {
*/ */
private Integer greenId; private Integer greenId;
/**
* 区分1:路口,2干线
*/
private Integer type;
} }
package net.wanji.opt.entity.strategy; package net.wanji.opt.entity.strategy;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
import io.swagger.models.auth.In;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import net.wanji.opt.entity.comprehensivequery.CrossEntity;
@Data @Data
@EqualsAndHashCode(callSuper=false) @EqualsAndHashCode(callSuper=false)
...@@ -47,9 +48,20 @@ public class StrategyPriorityDailyInfo implements Serializable { ...@@ -47,9 +48,20 @@ public class StrategyPriorityDailyInfo implements Serializable {
/** /**
* 干线名称 (路由列表返回用) * 干线名称 (路由列表返回用)
*/ */
@TableField(exist = false)
private String waveName; private String waveName;
/** /**
* 路口名称 (路由列表返回用) * 路口名称 (路由列表返回用)
*/ */
@TableField(exist = false)
private String crossName; private String crossName;
/**
* 干线ID 干线列表用
*/
@TableField(exist = false)
private Integer greenId;
} }
...@@ -38,4 +38,6 @@ public class StrategyPriorityGroup { ...@@ -38,4 +38,6 @@ public class StrategyPriorityGroup {
private List<StrategyPriorityParamter> parameterConfigList; private List<StrategyPriorityParamter> parameterConfigList;
// 调度配置表的配置信息 // 调度配置表的配置信息
private StrategySchedulingParam schedulingParamters; private StrategySchedulingParam schedulingParamters;
//1:路口,2干线
private Integer type;
} }
...@@ -23,46 +23,11 @@ import java.util.Map; ...@@ -23,46 +23,11 @@ import java.util.Map;
*/ */
public interface StrategyPriorityService extends IService<StrategyPriorityDailyInfo> { public interface StrategyPriorityService extends IService<StrategyPriorityDailyInfo> {
/**
* 策略优先级日计划详情表详情
* @param id
* @return
*/
StrategyPriorityDailyInfo info(Long id);
/**
* 策略优先级日计划详情表新增
* @param param 根据需要进行传值
* @return
*/
void add(StrategyPriorityDailyInfo param);
/**
* 策略优先级日计划详情表修改
* @param param 根据需要进行传值
* @return
*/
void modify(StrategyPriorityDailyInfo param);
/**
* 策略优先级日计划详情表删除(单个条目)
* @param id
* @return
*/
void remove(Long id);
/**
* 删除(多个条目)
* @param ids
* @return
*/
void removes(List<Long> ids);
List<StrategyPriorityDailyInfo>pageStrategyCrossList(); List<StrategyPriorityDailyInfo>pageStrategyCrossList();
List<StrategyFactoryEntity> getStrategyList(); List<StrategyFactoryEntity> getStrategyList();
List<StrategyFactoryEntity> getSceneList(); List<StrategyFactoryEntity> getSceneList(Integer type);
List<StrategyFactoryEntity> getCompanyList(); List<StrategyFactoryEntity> getCompanyList();
...@@ -79,4 +44,6 @@ public interface StrategyPriorityService extends IService<StrategyPriorityDailyI ...@@ -79,4 +44,6 @@ public interface StrategyPriorityService extends IService<StrategyPriorityDailyI
void saveParamterConfig(StrategyPriorityGroup strategyPriorityGroup) throws JsonProcessingException; void saveParamterConfig(StrategyPriorityGroup strategyPriorityGroup) throws JsonProcessingException;
List<StrategyParameterConfig> getParamConfigData(String crossId); List<StrategyParameterConfig> getParamConfigData(String crossId);
List<StrategyPriorityDailyInfo> getStrategyGreenWave();
} }
package net.wanji.opt.servicev2.strategy.impl; package net.wanji.opt.servicev2.strategy.impl;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.common.utils.CollectionUtils; import com.alibaba.nacos.common.utils.CollectionUtils;
...@@ -7,6 +8,9 @@ import com.fasterxml.jackson.core.JsonProcessingException; ...@@ -7,6 +8,9 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.wanji.opt.dao.mapper.strategy.StrategyPriorityMapper; import net.wanji.opt.dao.mapper.strategy.StrategyPriorityMapper;
import net.wanji.opt.entity.comprehensivequery.CrossEntity;
import net.wanji.opt.entity.comprehensivequery.GreenAndCrossEntity;
import net.wanji.opt.entity.comprehensivequery.GreenTreeEntity;
import net.wanji.opt.entity.strategy.*; import net.wanji.opt.entity.strategy.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import net.wanji.opt.entity.strategy.dto.StrategyPriorityGroup; import net.wanji.opt.entity.strategy.dto.StrategyPriorityGroup;
...@@ -17,6 +21,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -17,6 +21,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* <p> * <p>
...@@ -33,62 +38,6 @@ import java.util.*; ...@@ -33,62 +38,6 @@ import java.util.*;
@Resource @Resource
private StrategyPriorityMapper strategyPriorityMapper; private StrategyPriorityMapper strategyPriorityMapper;
/**
* 策略优先级日计划详情表详情
* @param id
* @return
*/
@Override
public StrategyPriorityDailyInfo info(Long id) {
return getById(id);
}
/**
* 策略优先级日计划详情表新增
* @param param 根据需要进行传值
* @return
*/
@Override
public void add(StrategyPriorityDailyInfo param) {
save(param);
}
/**
* 策略优先级日计划详情表修改
* @param param 根据需要进行传值
* @return
*/
@Override
public void modify(StrategyPriorityDailyInfo param) {
updateById(param);
}
/**
* 策略优先级日计划详情表删除(单个条目)
* @param id
* @return
*/
@Override
public void remove(Long id) {
removeById(id);
}
/**
* 策略优先级日计划详情表删除(多个条目)
* @param ids
* @return
*/
@Override
public void removes(List<Long> ids) {
removeByIds(ids);
}
/** /**
* 策略路口列表 * 策略路口列表
* @param * @param
...@@ -117,8 +66,9 @@ import java.util.*; ...@@ -117,8 +66,9 @@ import java.util.*;
* @return * @return
*/ */
@Override @Override
public List<StrategyFactoryEntity> getSceneList() { public List<StrategyFactoryEntity> getSceneList(Integer type) {
List<StrategyFactoryEntity> strategyList= strategyPriorityMapper.getSceneList();
List<StrategyFactoryEntity> strategyList= strategyPriorityMapper.getSceneList(type);
return strategyList; return strategyList;
} }
/** /**
...@@ -140,6 +90,8 @@ import java.util.*; ...@@ -140,6 +90,8 @@ import java.util.*;
for (StrategyPriorityGroup group : dataList) { for (StrategyPriorityGroup group : dataList) {
String label = group.getLabel(); String label = group.getLabel();
Integer labelCode = group.getLabelCode(); Integer labelCode = group.getLabelCode();
//1;路口2干线
Integer type = group.getType();
//路口id //路口id
List<String> crossList = group.getCrossIds(); List<String> crossList = group.getCrossIds();
//选中多个路口存多条数据 //选中多个路口存多条数据
...@@ -162,7 +114,8 @@ import java.util.*; ...@@ -162,7 +114,8 @@ import java.util.*;
strategyPriorityConfig.setStrategyNo(item.getStrategyNo()); strategyPriorityConfig.setStrategyNo(item.getStrategyNo());
//优先级 //优先级
strategyPriorityConfig.setPriority(item.getPriority()); strategyPriorityConfig.setPriority(item.getPriority());
//type
strategyPriorityConfig.setType(type);
saveList.add(strategyPriorityConfig); saveList.add(strategyPriorityConfig);
} }
} }
...@@ -183,7 +136,7 @@ import java.util.*; ...@@ -183,7 +136,7 @@ import java.util.*;
//先获取策略编号 //先获取策略编号
List<String> strategyNo = strategyPriorityMapper.getstrategyNo(crossId); List<String> strategyNo = strategyPriorityMapper.getstrategyNo(crossId);
if (CollectionUtils.isEmpty(strategyNo)){ if (CollectionUtils.isEmpty(strategyNo)){
strategyNo.add("0"); return Collections.emptyList();
} }
List<StrategyFactoryEntity> priorityList = strategyPriorityMapper.getPriorityConfigData(strategyNo,crossId); List<StrategyFactoryEntity> priorityList = strategyPriorityMapper.getPriorityConfigData(strategyNo,crossId);
return priorityList; return priorityList;
...@@ -301,4 +254,62 @@ import java.util.*; ...@@ -301,4 +254,62 @@ import java.util.*;
} }
} }
/*
* 策略干线列表
* */
@Override
public List<StrategyPriorityDailyInfo> getStrategyGreenWave() {
try {
List<StrategyPriorityDailyInfo> queryResult= strategyPriorityMapper.getStrategyGreenWave();
Map<Integer, List<StrategyPriorityDailyInfo>> groupedData = queryResult.stream()
.collect(Collectors.groupingBy(StrategyPriorityDailyInfo::getGreenId));
// 格式化输出
List<StrategyPriorityDailyInfo> result = groupedData.entrySet().stream()
.map(entry -> {
//干线ID
int trunkId = entry.getKey();
List<StrategyPriorityDailyInfo> infos = entry.getValue();
// 创建新的对象
StrategyPriorityDailyInfo strategyPriorityDailyInfo=new StrategyPriorityDailyInfo();
// 提取干线名称(假设同一干线的名称相同)
String trunkName = infos.get(0).getWaveName();
// 按路口 ID 分组并合并日计划详情
Map<String, Set<String>> crossGroupedDetails = infos.stream()
.filter(info -> info.getDailyPlanDetails() != null)
.collect(Collectors.groupingBy(
StrategyPriorityDailyInfo::getCrossId,
Collectors.mapping(StrategyPriorityDailyInfo::getDailyPlanDetails, Collectors.toSet()))); // 去重
// 合并每个路口的日计划详情
String dailyPlanDetails = crossGroupedDetails.values().stream()
.map(set -> String.join(", ", set))
.collect(Collectors.joining(", "));
// 提取路口 ID 和路口名称
String roadIds = infos.stream()
.map(StrategyPriorityDailyInfo::getCrossId)
.collect(Collectors.joining(", "));
String roadNames = infos.stream()
.map(StrategyPriorityDailyInfo::getCrossName)
.collect(Collectors.joining(", "));
strategyPriorityDailyInfo.setGreenId(trunkId);
strategyPriorityDailyInfo.setWaveName(trunkName);
strategyPriorityDailyInfo.setCrossId(roadIds);
strategyPriorityDailyInfo.setCrossName(roadNames);
strategyPriorityDailyInfo.setDailyPlanDetails(dailyPlanDetails);
return strategyPriorityDailyInfo;
})
.collect(Collectors.toList());
// 输出结果
return result;
}catch (Exception e) {
log.error("{} getStrategyGreenWave", this.getClass().getSimpleName(), e);
throw e;
}
}
} }
...@@ -138,6 +138,9 @@ ...@@ -138,6 +138,9 @@
FROM FROM
t_strategy_factory_info t_strategy_factory_info
WHERE status='1' WHERE status='1'
<if test="type != null and type == 1">
AND type = 1
</if>
</select> </select>
<select id="getCompanyList" resultType="net.wanji.opt.synthesis.pojo.StrategyFactoryEntity"> <select id="getCompanyList" resultType="net.wanji.opt.synthesis.pojo.StrategyFactoryEntity">
SELECT SELECT
...@@ -150,10 +153,10 @@ ...@@ -150,10 +153,10 @@
<insert id="savePriorityInsert" parameterType="java.util.List"> <insert id="savePriorityInsert" parameterType="java.util.List">
INSERT INTO INSERT INTO
t_strategy_priority_config (cross_id,group_id,group_name,priority,strategy_no) t_strategy_priority_config (cross_id,group_id,group_name,priority,strategy_no,type)
VALUES VALUES
<foreach collection="list" item="item" separator=","> <foreach collection="list" item="item" separator=",">
(#{item.crossId},#{item.groupId},#{item.groupName},#{item.priority},#{item.strategyNo}) (#{item.crossId},#{item.groupId},#{item.groupName},#{item.priority},#{item.strategyNo},#{item.type})
</foreach> </foreach>
</insert> </insert>
...@@ -275,4 +278,14 @@ ...@@ -275,4 +278,14 @@
AND cross_id =#{crossId} AND cross_id =#{crossId}
</if> </if>
</select> </select>
<select id="getStrategyGreenWave" parameterType="map" resultType="net.wanji.opt.entity.strategy.StrategyPriorityDailyInfo">
SELECT t1.green_id as greenId, t4.name as waveName, t1.cross_id as crossId,
t3.name as crossName,t1.sort,
t2.daily_plan_details as dailyPlanDetails
FROM t_greenwave_cross t1
LEFT JOIN t_strategy_priority_daily_info t2 on t1.cross_id = t2.cross_id and t2.type=2
LEFT JOIN t_base_cross_info t3 on t1.cross_id = t3.id
LEFT JOIN t_greenwave_info t4 on t1.green_id = t4.id
</select>
</mapper> </mapper>
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