Commit c7679aac authored by wangyecheng's avatar wangyecheng

策略优先级保存 跟数据回显

parent af8c9a2c
package net.wanji.opt.controllerv2.strategy;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import net.wanji.common.framework.i18n.I18nResourceBundle;
......@@ -12,6 +13,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import net.wanji.opt.entity.strategy.dto.StrategyPriorityGroup;
import net.wanji.opt.servicev2.strategy.StrategyPriorityService;
import net.wanji.opt.synthesis.pojo.StrategyFactoryEntity;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -33,7 +35,7 @@ import java.util.Map;
* @author fengyi
* @since 2025-03-28
*/
@Api(tags = "策略优先级日计划详情表")
@Api(tags = "策略管理")
@RestController
@RequestMapping("/strategy-priority")
@Slf4j
......@@ -147,4 +149,38 @@ public class StrategyPriorityController {
}
return jsonView;
}
@ApiOperation(value = "策略管理-策略优先级批量保存", notes = "批量保存", produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON,hidden = false)
@ApiImplicitParams({
@ApiImplicitParam(name = "dataList", value = "优先级配置数据", required = false, dataType = "String"),
})
@PostMapping("/savePriority")
public JsonViewObject savePriority(@RequestBody List<StrategyPriorityGroup>dataList){
JsonViewObject jsonView = JsonViewObject.newInstance();
try {
strategyPriorityService.savePriority(dataList);
jsonView.success();
} catch (Exception e) {
jsonView.fail(I18nResourceBundle.getConstants("SAVE_FAILED_MSG"));
log.error("{} StrategyPriorityController-savePriority", this.getClass().getSimpleName(), e);
}
return jsonView;
}
@ApiOperation(value = "策略管理-策略优先级数据回显", notes = "数据回显", produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON,hidden = false)
@ApiImplicitParams({
@ApiImplicitParam(name = "crossId", value = "路口id", required = true, dataType = "String")
})
@GetMapping("/getPriorityConfig")
public JsonViewObject getPriorityData(@RequestParam(required = true) String crossId){
JsonViewObject jsonView = JsonViewObject.newInstance();
try {
List<StrategyFactoryEntity>list=strategyPriorityService.getPriorityData(crossId);
jsonView.success(list);
} catch (Exception e) {
jsonView.fail(I18nResourceBundle.getConstants("SAVE_FAILED_MSG"));
log.error("{} StrategyPriorityController-getPriorityData", this.getClass().getSimpleName(), e);
}
return jsonView;
}
}
\ No newline at end of file
package net.wanji.opt.dao.mapper.strategy;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.wanji.opt.entity.strategy.StrategyPriorityConfig;
import net.wanji.opt.entity.strategy.StrategyPriorityDailyInfo;
import java.util.List;
import java.util.Map;
......@@ -55,5 +56,19 @@ public interface StrategyPriorityMapper extends BaseMapper<StrategyPriorityDaily
List<StrategyFactoryEntity> getSceneList();
List<StrategyFactoryEntity> getCompanyList();
void savePriorityInsert(List<StrategyPriorityConfig> saveList);
List<StrategyPriorityConfig> selectPriorityTable(String crossId);
void deletePriorityConfig(String crossId);
List<String> getstrategyNo(String crossId);
List<StrategyFactoryEntity> getPriorityConfigData(@Param("strategyNo") List<String> strategyNo,@Param("crossId") String crossId);
}
package net.wanji.opt.entity.strategy.dto;
import io.swagger.models.auth.In;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import net.wanji.opt.entity.strategy.StrategyPriorityConfig;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper=false)
@NoArgsConstructor
@AllArgsConstructor
public class StrategyPriorityGroup {
//分组ID
private Integer labelCode;
//分组名称
private String label;
//路口Id
private String crossId;
//优先级的配置信息
private List<StrategyPriorityConfig> data;
}
package net.wanji.opt.servicev2.strategy;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.opt.entity.strategy.StrategyPriorityDailyInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import net.wanji.opt.entity.strategy.dto.StrategyPriorityGroup;
import net.wanji.opt.synthesis.pojo.StrategyFactoryEntity;
import java.util.List;
......@@ -61,4 +63,9 @@ public interface StrategyPriorityService extends IService<StrategyPriorityDailyI
List<StrategyFactoryEntity> getSceneList();
List<StrategyFactoryEntity> getCompanyList();
void savePriority(List<StrategyPriorityGroup> dataList);
List<StrategyFactoryEntity> getPriorityData(String crossId);
}
package net.wanji.opt.servicev2.strategy.impl;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.alibaba.nacos.common.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import net.wanji.common.framework.i18n.I18nResourceBundle;
import net.wanji.opt.dao.mapper.strategy.StrategyPriorityMapper;
import net.wanji.opt.entity.strategy.StrategyPriorityConfig;
import net.wanji.opt.entity.strategy.StrategyPriorityDailyInfo;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import net.wanji.opt.entity.strategy.dto.StrategyPriorityGroup;
import net.wanji.opt.servicev2.strategy.StrategyPriorityService;
import net.wanji.opt.synthesis.pojo.StrategyFactoryEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
/**
......@@ -19,6 +29,7 @@ import java.util.List;
* @since 2025-03-28
*/
@Service
@Slf4j
public class StrategyPriorityServiceImpl extends ServiceImpl<StrategyPriorityMapper, StrategyPriorityDailyInfo> implements StrategyPriorityService {
@Resource
......@@ -122,4 +133,61 @@ import java.util.List;
List<StrategyFactoryEntity> strategyList=strategyPriorityMapper.getCompanyList();
return strategyList;
}
@Override
@Transactional
public void savePriority(List<StrategyPriorityGroup> dataList) {
try {
List<StrategyPriorityConfig> saveList = new ArrayList<>();
for (StrategyPriorityGroup group : dataList) {
String label = group.getLabel();
Integer labelCode = group.getLabelCode();
//路口id
String crossId = group.getCrossId();
//先判断表里有没有数据,有的话删除t_strategy_priority_config
List<StrategyPriorityConfig> priorityConfig = strategyPriorityMapper.selectPriorityTable(crossId);
if (priorityConfig.size() > 0) {
strategyPriorityMapper.deletePriorityConfig(crossId);
}
if (CollectionUtils.isNotEmpty(group.getData())) {
for (StrategyPriorityConfig item : group.getData()) {
StrategyPriorityConfig strategyPriorityConfig = new StrategyPriorityConfig();
strategyPriorityConfig.setCrossId(crossId);
//分组id
strategyPriorityConfig.setGroupId(labelCode);
//分组名称
strategyPriorityConfig.setGroupName(label);
//策略编号
strategyPriorityConfig.setStrategyNo(item.getStrategyNo());
//优先级
strategyPriorityConfig.setPriority(item.getPriority());
saveList.add(strategyPriorityConfig);
}
}
}
strategyPriorityMapper.savePriorityInsert(saveList);
} catch (Exception e) {
log.error("{} savePriority", this.getClass().getSimpleName(), e);
throw e;
}
}
@Override
@Transactional
public List<StrategyFactoryEntity> getPriorityData(String crossId) {
try {
//先获取策略编号
List<String> strategyNo = strategyPriorityMapper.getstrategyNo(crossId);
List<StrategyFactoryEntity> priorityList = strategyPriorityMapper.getPriorityConfigData(strategyNo,crossId);
return priorityList;
}catch (Exception e){
log.error("{} getPriorityData", this.getClass().getSimpleName(), e);
throw e;
}
}
}
......@@ -46,4 +46,9 @@ public class StrategyFactoryEntity {
@ApiModelProperty("优化类型")
@TableField("opt_type")
private Integer optType;
/*非数据库字段*/
/**
* 优先级
*/
private Integer priority;
}
......@@ -148,4 +148,61 @@
FROM
t_strategy_factory_info
</select>
<insert id="savePriorityInsert" parameterType="java.util.List">
INSERT INTO
t_strategy_priority_config (cross_id,group_id,group_name,priority,strategy_no)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.crossId},#{item.groupId},#{item.groupName},#{item.priority},#{item.strategyNo})
</foreach>
</insert>
<select id="selectPriorityTable" parameterType="map" resultType="net.wanji.opt.entity.strategy.StrategyPriorityConfig">
select
id,group_id,cross_id
FROM
t_strategy_priority_config
WHERE
1=1
<if test="crossId!=null and crossId!=''">
and cross_id = #{crossId}
</if>
</select>
<delete id="deletePriorityConfig" parameterType="map">
DELETE
FROM t_strategy_priority_config
WHERE cross_id =#{crossId}
</delete>
<select id="getPriorityConfigData" parameterType="map" resultType="net.wanji.opt.synthesis.pojo.StrategyFactoryEntity">
SELECT
t2.method,t2.strategy_name,t2.strategy_no,
t2.mark,t2.company,t1.priority as priority
FROM
t_strategy_priority_config t1
LEFT JOIN t_strategy_factory_info t2 on t1.strategy_no=t2.strategy_no
WHERE
1=1
AND t1.strategy_no IN
<foreach item="item" collection="strategyNo" open="(" close=")" separator=",">
#{item}
</foreach>
<if test="crossId!=null and crossId!=''">
AND t1.cross_id=#{crossId}
</if>
</select>
<select id="getstrategyNo" resultType="java.lang.String">
SELECT
strategy_no
FROM
t_strategy_priority_config
WHERE
1=1
<if test="crossId!=null and crossId!=''">
AND cross_id=#{crossId}
</if>
</select>
</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