java代码实现下拉列表框多选操作

本文介绍了一个风险量化管理系统的设计与实现过程,包括数据库表结构定义、POJO与VO类设计及业务逻辑处理等内容。系统通过前端传参,利用后端逻辑完成风险量化数据的筛选与展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现操作

实现如图所示功能,前端没有学习,故本文只写后端内容。

 

一、数据库

CREATE TABLE `axa_risk_quantification` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `assets` varchar(255) DEFAULT NULL COMMENT '资产',
  `assets_health` double(12,2) DEFAULT NULL COMMENT '资产健康度%',
  `assets_risk` double(12,2) DEFAULT NULL COMMENT '资产风险值',
  `business_system` varchar(255) DEFAULT NULL COMMENT '所属业务系统',
  `assets_level` varchar(255) DEFAULT NULL COMMENT '资产等级',
  `events_num` int(10) DEFAULT NULL COMMENT '事件数量',
  `responsibility_person` varchar(255) DEFAULT NULL COMMENT '责任人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
  `update_time` datetime DEFAULT NULL COMMENT '修改时间\r\n',
  `update_by` varchar(50) DEFAULT NULL COMMENT '修改人',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='风险量化';

二、pojo和vo

涉及隐私,不放具体代码

  1. VO中创建一个字符串接受传过来的下拉列表,
  2. 另外创建一个数组用来传给mybatis
@Data
public class RiskQuantificationVO {
    //开始时间 + 结束时间
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date beginTime;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    //资产
    private String assets;

    //所属业务系统(单选:A系统、B系统...)
    private String businessSystem;

    //资产等级(组合:低、中、高、全部)
    private String assetsLevelStr;

    private List<String> assetsLevelList;

    private Integer assetsLevelListIsNull;

    //事件数量
    private Integer eventsNum;

    //责任人
    private String responsibilityPerson;

}

三、业务代码

controller层接受前端传的字符串参数assetsLevelStr,使用spilt方法去除逗号,转换为Array数组传给service和mapper.xml

//查询风险量化列表
    @ApiOperation(value = "查询风险量化列表", notes = "查询风险量化列表")
    @PreAuthorize("@ss.hasPermi('axa:quantification:list')")
    @GetMapping("/list")
    public TableDataInfo list(RiskQuantificationVO riskQuantificationVO)
    {
        Assert.isTrue(null != riskQuantificationVO, "riskQuantificationVO null");
        riskQuantificationVO.setAssetsLevelList(null);
        if (StringUtils.isNotEmpty(riskQuantificationVO.getAssetsLevelStr())) {
            riskQuantificationVO.setAssetsLevelList(Arrays.asList(riskQuantificationVO.getAssetsLevelStr().split(",")));
            if (riskQuantificationVO.getAssetsLevelList().contains("999999")) {
                riskQuantificationVO.setAssetsLevelListIsNull(1);
            }
        }
        startPage();
        //initPageNum();
        List<RiskQuantification> list = riskQuantificationService.selectRiskQuantificationList(riskQuantificationVO);
        return getDataTable(list);
    }

    //1. 获取资产等级列表
    @ApiOperation("获取资产等级列表")
    @PreAuthorize("@ss.hasPermi('axa:RiskQuantification:list')")
    @GetMapping("/getAssetsLevelList")
    public AjaxResult getAssetsLevelList() {
        List<String> assetsLevelList = riskQuantificationService.getAssetsLevelList();
        return AjaxResult.success(assetsLevelList);
    }

    //2. 获取所属业务系统列表
    @ApiOperation("获取所属业务系统列表")
    @PreAuthorize("@ss.hasPermi('axa:RiskQuantification:list')")
    @GetMapping("/getBusinessSystemList")
    public AjaxResult getBusinessSystemList() {
        List<String> businessSystemList = riskQuantificationService.getBusinessSystemList();
        return AjaxResult.success(businessSystemList);
    }

mybatis使用foreach接受参数 

测试后成功完成功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值