龚焕茏
2024-03-01 de423f774efcbbd748e1947051cef1313dbd315d
交通宣传基础功能
6个文件已修改
8个文件已添加
509 ■■■■■ 已修改文件
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsTrafficPropagandaController.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/RsTrafficIndex.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/RsTrafficPropaganda.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/RsTrafficIndexBo.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/RsTrafficPropagandaBo.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsTrafficIndexVo.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsTrafficPropagandaVo.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsTrafficPropagandaMapper.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IRsTrafficPropagandaService.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsDangerInfoServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsDangerTotalServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsTrafficIndexServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsTrafficPropagandaServiceImpl.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsTrafficPropagandaMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsTrafficPropagandaController.java
New file
@@ -0,0 +1,105 @@
package org.dromara.demo.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.demo.domain.vo.RsTrafficPropagandaVo;
import org.dromara.demo.domain.bo.RsTrafficPropagandaBo;
import org.dromara.demo.service.IRsTrafficPropagandaService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
 * 交通宣传
 *
 * @author gonghl
 * @date 2024-03-01
 */
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/demo/trafficPropaganda")
public class RsTrafficPropagandaController extends BaseController {
    private final IRsTrafficPropagandaService rsTrafficPropagandaService;
    /**
     * 查询交通宣传列表
     */
    @SaCheckPermission("demo:trafficPropaganda:list")
    @GetMapping("/list")
    public TableDataInfo<RsTrafficPropagandaVo> list(RsTrafficPropagandaBo bo, PageQuery pageQuery) {
        return rsTrafficPropagandaService.queryPageList(bo, pageQuery);
    }
    /**
     * 导出交通宣传列表
     */
    @SaCheckPermission("demo:trafficPropaganda:export")
    @Log(title = "交通宣传", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(RsTrafficPropagandaBo bo, HttpServletResponse response) {
        List<RsTrafficPropagandaVo> list = rsTrafficPropagandaService.queryList(bo);
        ExcelUtil.exportExcel(list, "交通宣传", RsTrafficPropagandaVo.class, response);
    }
    /**
     * 获取交通宣传详细信息
     *
     * @param id 主键
     */
    @SaCheckPermission("demo:trafficPropaganda:query")
    @GetMapping("/{id}")
    public R<RsTrafficPropagandaVo> getInfo(@NotNull(message = "主键不能为空")
                                     @PathVariable String id) {
        return R.ok(rsTrafficPropagandaService.queryById(id));
    }
    /**
     * 新增交通宣传
     */
    @SaCheckPermission("demo:trafficPropaganda:add")
    @Log(title = "交通宣传", businessType = BusinessType.INSERT)
    @RepeatSubmit()
    @PostMapping()
    public R<Void> add(@Validated(AddGroup.class) @RequestBody RsTrafficPropagandaBo bo) {
        return toAjax(rsTrafficPropagandaService.insertByBo(bo));
    }
    /**
     * 修改交通宣传
     */
    @SaCheckPermission("demo:trafficPropaganda:edit")
    @Log(title = "交通宣传", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping()
    public R<Void> edit(@Validated(EditGroup.class) @RequestBody RsTrafficPropagandaBo bo) {
        return toAjax(rsTrafficPropagandaService.updateByBo(bo));
    }
    /**
     * 删除交通宣传
     *
     * @param ids 主键串
     */
    @SaCheckPermission("demo:trafficPropaganda:remove")
    @Log(title = "交通宣传", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public R<Void> remove(@NotEmpty(message = "主键不能为空")
                          @PathVariable String[] ids) {
        return toAjax(rsTrafficPropagandaService.deleteWithValidByIds(List.of(ids), true));
    }
}
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/RsTrafficIndex.java
@@ -1,12 +1,12 @@
package org.dromara.demo.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.io.Serial;
import java.math.BigDecimal;
import java.util.Date;
/**
 * 交通指数对象 rs_traffic_index
@@ -15,7 +15,6 @@
 * @date 2024-02-26
 */
@Data
//@EqualsAndHashCode(callSuper = true)
@TableName("rs_traffic_index")
public class RsTrafficIndex  {
@@ -141,18 +140,13 @@
    /**
     * 周期
     */
    private String periodName;
    private Long period;
    /**
     * 周期年
     */
    private Integer periodYear;
    /**
     * 周期月
     */
    private Integer periodMonth;
    private String periodDate;
    private Date createTime;
}
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/RsTrafficPropaganda.java
New file
@@ -0,0 +1,46 @@
package org.dromara.demo.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serial;
import java.util.Date;
/**
 * 交通宣传对象 rs_traffic_propaganda
 *
 * @author gonghl
 * @date 2024-03-01
 */
@Data
@TableName("rs_traffic_propaganda")
public class RsTrafficPropaganda {
    @Serial
    private static final long serialVersionUID = 1L;
    /**
     * 编号
     */
    @TableId(value = "id")
    private String id;
    /**
     * 标题
     */
    private String title;
    /**
     * 排序
     */
    private Long sequence;
    /**
     * 启用状态 1启用 2未启用
     */
    private Long status;
    private Date createTime;
}
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/RsTrafficIndexBo.java
@@ -163,18 +163,13 @@
     * 周期 1 月  2年
     */
    @NotBlank(message = "周期 1 月  2年不能为空", groups = { AddGroup.class, EditGroup.class })
    private String periodName;
    private Long period;
    /**
     * 周期年
     */
    @NotNull(message = "周期年不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer periodYear;
    /**
     * 周期月
     */
//    @NotNull(message = "周期值不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer periodMonth;
    private String periodDate;
}
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/RsTrafficPropagandaBo.java
New file
@@ -0,0 +1,48 @@
package org.dromara.demo.domain.bo;
import org.dromara.demo.domain.RsTrafficPropaganda;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
 * 交通宣传业务对象 rs_traffic_propaganda
 *
 * @author gonghl
 * @date 2024-03-01
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = RsTrafficPropaganda.class, reverseConvertGenerate = false)
public class RsTrafficPropagandaBo extends BaseEntity {
    /**
     * 编号
     */
    @NotBlank(message = "编号不能为空", groups = { EditGroup.class })
    private String id;
    /**
     * 标题
     */
    @NotBlank(message = "标题不能为空", groups = { AddGroup.class, EditGroup.class })
    private String title;
    /**
     * 排序
     */
    @PositiveOrZero(message = "排序不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long sequence;
    /**
     * 启用状态 1启用 2未启用
     */
    @NotNull(message = "启用状态 1启用 2未启用不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long status;
}
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsTrafficIndexVo.java
@@ -171,19 +171,19 @@
     * 周期
     */
    @ExcelProperty(value = "周期")
    private String periodName;
    private Long period;
    /**
     * 周期月
     */
    @ExcelProperty(value = "周期值")
    private Integer periodMonth;
    /**
     * 周期年
     */
    @ExcelProperty(value = "周期值")
    private Integer periodYear;
    private String periodDate;
    /**
     * 创建时间
     */
    @ExcelProperty(value = "创建时间")
    private Date createTime;
}
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsTrafficPropagandaVo.java
New file
@@ -0,0 +1,61 @@
package org.dromara.demo.domain.vo;
import org.dromara.demo.domain.RsTrafficPropaganda;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
 * 交通宣传视图对象 rs_traffic_propaganda
 *
 * @author gonghl
 * @date 2024-03-01
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = RsTrafficPropaganda.class)
public class RsTrafficPropagandaVo implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    /**
     * 编号
     */
    @ExcelProperty(value = "编号")
    private String id;
    /**
     * 标题
     */
    @ExcelProperty(value = "标题")
    private String title;
    /**
     * 排序
     */
    @ExcelProperty(value = "排序")
    private Long sequence;
    /**
     * 启用状态 1启用 2未启用
     */
    @ExcelProperty(value = "启用状态 1启用 2未启用")
    private Long status;
    /**
     * 创建时间
     */
    @ExcelProperty(value = "创建时间")
    private Date createTime;
}
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsTrafficPropagandaMapper.java
New file
@@ -0,0 +1,22 @@
package org.dromara.demo.mapper;
import org.dromara.demo.domain.RsTrafficPropaganda;
import org.dromara.demo.domain.vo.RsTrafficPropagandaVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
 * 交通宣传Mapper接口
 *
 * @author gonghl
 * @date 2024-03-01
 */
public interface RsTrafficPropagandaMapper extends BaseMapperPlus<RsTrafficPropaganda, RsTrafficPropagandaVo> {
    /**
     * 修改大于当前顺序的数据一次+1
     * @param sequence 当前顺序
     * @param id id
     */
    void addSequence(Long sequence, String id);
}
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IRsTrafficPropagandaService.java
New file
@@ -0,0 +1,49 @@
package org.dromara.demo.service;
import org.dromara.demo.domain.RsTrafficPropaganda;
import org.dromara.demo.domain.vo.RsTrafficPropagandaVo;
import org.dromara.demo.domain.bo.RsTrafficPropagandaBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
 * 交通宣传Service接口
 *
 * @author gonghl
 * @date 2024-03-01
 */
public interface IRsTrafficPropagandaService {
    /**
     * 查询交通宣传
     */
    RsTrafficPropagandaVo queryById(String id);
    /**
     * 查询交通宣传列表
     */
    TableDataInfo<RsTrafficPropagandaVo> queryPageList(RsTrafficPropagandaBo bo, PageQuery pageQuery);
    /**
     * 查询交通宣传列表
     */
    List<RsTrafficPropagandaVo> queryList(RsTrafficPropagandaBo bo);
    /**
     * 新增交通宣传
     */
    Boolean insertByBo(RsTrafficPropagandaBo bo);
    /**
     * 修改交通宣传
     */
    Boolean updateByBo(RsTrafficPropagandaBo bo);
    /**
     * 校验并批量删除交通宣传信息
     */
    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
}
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsDangerInfoServiceImpl.java
@@ -65,7 +65,7 @@
        LambdaQueryWrapper<RsDangerInfo> lqw = Wrappers.lambdaQuery();
        lqw.eq(StringUtils.isNotBlank(bo.getNotificationTime()), RsDangerInfo::getNotificationTime, bo.getNotificationTime());
        lqw.eq(StringUtils.isNotBlank(bo.getDangerType()), RsDangerInfo::getDangerType, bo.getDangerType());
        lqw.eq(StringUtils.isNotBlank(bo.getAccountabilityUnit()), RsDangerInfo::getAccountabilityUnit, bo.getAccountabilityUnit());
        lqw.like(StringUtils.isNotBlank(bo.getAccountabilityUnit()), RsDangerInfo::getAccountabilityUnit, bo.getAccountabilityUnit());
        lqw.eq(StringUtils.isNotBlank(bo.getRectificationTimeLimit()), RsDangerInfo::getRectificationTimeLimit, bo.getRectificationTimeLimit());
        lqw.eq(StringUtils.isNotBlank(bo.getPerformance()), RsDangerInfo::getPerformance, bo.getPerformance());
        lqw.eq(bo.getStatus() != null, RsDangerInfo::getStatus, bo.getStatus());
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsDangerTotalServiceImpl.java
@@ -8,6 +8,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.demo.domain.RsDangerInfo;
import org.springframework.stereotype.Service;
import org.dromara.demo.domain.bo.RsDangerTotalBo;
import org.dromara.demo.domain.vo.RsDangerTotalVo;
@@ -69,6 +70,7 @@
        lqw.eq(bo.getIssueNotice() != null, RsDangerTotal::getIssueNotice, bo.getIssueNotice());
        lqw.eq(bo.getDealWithSecurityRisks() != null, RsDangerTotal::getDealWithSecurityRisks, bo.getDealWithSecurityRisks());
        lqw.eq(bo.getStatus() != null, RsDangerTotal::getStatus, bo.getStatus());
        lqw.orderByDesc(RsDangerTotal::getCreateTime);
        return lqw;
    }
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsTrafficIndexServiceImpl.java
@@ -15,6 +15,7 @@
import org.dromara.demo.mapper.RsTrafficIndexMapper;
import org.dromara.demo.service.IRsTrafficIndexService;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Collection;
@@ -83,7 +84,7 @@
        lqw.eq(bo.getTargetFourStatus() != null, RsTrafficIndex::getTargetFourStatus, bo.getTargetFourStatus());
        lqw.eq(bo.getTargetFourCompareValue() != null, RsTrafficIndex::getTargetFourCompareValue, bo.getTargetFourCompareValue());
        lqw.eq(bo.getStatus() != null, RsTrafficIndex::getStatus, bo.getStatus());
        lqw.like(StringUtils.isNotBlank(bo.getPeriodName()), RsTrafficIndex::getPeriodName, bo.getPeriodName());
        lqw.like(StringUtils.isNotBlank(bo.getPeriodDate()), RsTrafficIndex::getPeriodDate, bo.getPeriodDate());
        return lqw;
    }
@@ -116,7 +117,7 @@
     * 保存前的数据校验
     */
    private void validEntityBeforeSave(RsTrafficIndex entity){
        //TODO 做一些数据校验,如唯一约束
        entity.setCreateTime(new Date());
    }
    /**
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsTrafficPropagandaServiceImpl.java
New file
@@ -0,0 +1,115 @@
package org.dromara.demo.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.dromara.demo.domain.bo.RsTrafficPropagandaBo;
import org.dromara.demo.domain.vo.RsTrafficPropagandaVo;
import org.dromara.demo.domain.RsTrafficPropaganda;
import org.dromara.demo.mapper.RsTrafficPropagandaMapper;
import org.dromara.demo.service.IRsTrafficPropagandaService;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
 * 交通宣传Service业务层处理
 *
 * @author gonghl
 * @date 2024-03-01
 */
@RequiredArgsConstructor
@Service
public class RsTrafficPropagandaServiceImpl implements IRsTrafficPropagandaService {
    private final RsTrafficPropagandaMapper baseMapper;
    /**
     * 查询交通宣传
     */
    @Override
    public RsTrafficPropagandaVo queryById(String id){
        return baseMapper.selectVoById(id);
    }
    /**
     * 查询交通宣传列表
     */
    @Override
    public TableDataInfo<RsTrafficPropagandaVo> queryPageList(RsTrafficPropagandaBo bo, PageQuery pageQuery) {
        LambdaQueryWrapper<RsTrafficPropaganda> lqw = buildQueryWrapper(bo);
        Page<RsTrafficPropagandaVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
        return TableDataInfo.build(result);
    }
    /**
     * 查询交通宣传列表
     */
    @Override
    public List<RsTrafficPropagandaVo> queryList(RsTrafficPropagandaBo bo) {
        LambdaQueryWrapper<RsTrafficPropaganda> lqw = buildQueryWrapper(bo);
        return baseMapper.selectVoList(lqw);
    }
    private LambdaQueryWrapper<RsTrafficPropaganda> buildQueryWrapper(RsTrafficPropagandaBo bo) {
        Map<String, Object> params = bo.getParams();
        LambdaQueryWrapper<RsTrafficPropaganda> lqw = Wrappers.lambdaQuery();
        lqw.like(StringUtils.isNotBlank(bo.getTitle()), RsTrafficPropaganda::getTitle, bo.getTitle());
        lqw.eq(bo.getSequence() != null, RsTrafficPropaganda::getSequence, bo.getSequence());
        lqw.eq(bo.getStatus() != null, RsTrafficPropaganda::getStatus, bo.getStatus());
        lqw.orderByAsc(RsTrafficPropaganda::getSequence);
        return lqw;
    }
    /**
     * 新增交通宣传
     */
    @Override
    public Boolean insertByBo(RsTrafficPropagandaBo bo) {
        RsTrafficPropaganda add = MapstructUtils.convert(bo, RsTrafficPropaganda.class);
        validEntityBeforeSave(add);
        boolean flag = baseMapper.insert(add) > 0;
        if (flag) {
            bo.setId(add.getId());
            // 修改大于当前顺序的数据一次+1
            // baseMapper.addSequence(bo.getSequence(), bo.getId());
        }
        return flag;
    }
    /**
     * 修改交通宣传
     */
    @Override
    public Boolean updateByBo(RsTrafficPropagandaBo bo) {
        RsTrafficPropaganda update = MapstructUtils.convert(bo, RsTrafficPropaganda.class);
        validEntityBeforeSave(update);
        return baseMapper.updateById(update) > 0;
    }
    /**
     * 保存前的数据校验
     */
    private void validEntityBeforeSave(RsTrafficPropaganda entity){
        entity.setCreateTime(new Date());
    }
    /**
     * 批量删除交通宣传
     */
    @Override
    public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
        if(isValid){
            //TODO 做一些业务上的校验,判断是否需要校验
        }
        return baseMapper.deleteBatchIds(ids) > 0;
    }
}
dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsTrafficPropagandaMapper.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.demo.mapper.RsTrafficPropagandaMapper">
    <update id="addSequence">
        update rs_traffic_propaganda set sequence = sequence + 1 where sequence >= #{sequence} and id != #{id}
    </update>
</mapper>