Browse Source

设备位号功能

hfxc226 2 years ago
parent
commit
66a2783867

+ 101 - 0
platform-dao/src/main/java/com/platform/dao/dto/sb/SbLocationDTO.java

@@ -0,0 +1,101 @@
+package com.platform.dao.dto.sb;
+
+import com.platform.common.bean.BaseDTO;
+import com.platform.common.validation.group.UpdateGroup;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import javax.persistence.Transient;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * @Description 部位信息DTO
+ * @Author liuyu
+ * @Date 2020-04-24 09:27:01
+ * @Version Copyright (c) 2019,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class SbLocationDTO extends BaseDTO implements Serializable {
+
+    /**
+     *
+     */
+    @NotNull(groups = {UpdateGroup.class}, message = "ID不能为空")
+    private String id;
+
+    /**
+     * 部位编号
+     */
+    private String no;
+
+    /**
+     * 设备名称
+     */
+    private String name;
+
+    /**
+     * 设备类别
+     */
+    private String typeId;
+
+    /**
+     * 设备等级
+     */
+    private Integer level;
+
+    /**
+     * 所属设备id
+     */
+    private String sbId;
+    /**
+     * 被复制设备id
+     */
+    @Transient
+    private String copySbId;
+    /**
+     * 状态
+     */
+    private Integer status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 创建人
+     */
+    private String createdUserId;
+
+    /**
+     * 创建人
+     */
+    private String updateUserId;
+
+    /**
+     * 创建日期
+     */
+    private LocalDateTime createdTime;
+
+    /**
+     * 更新日期
+     */
+    private LocalDateTime updateTime;
+
+    /**
+     * 修改之前的部位名称
+     */
+    private String oldPartName;
+
+    /**
+     * 关联的维修部门ID
+     */
+    private String repairDeptId;
+
+
+}

+ 103 - 0
platform-dao/src/main/java/com/platform/dao/entity/sb/SbLocation.java

@@ -0,0 +1,103 @@
+package com.platform.dao.entity.sb;
+
+import com.platform.common.bean.DataScope;
+import com.platform.dao.vo.sb.SbModelSpareBomVO;
+import lombok.Data;
+
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * @Description 部位信息实体类
+ * @Author liuyu
+ * @Date 2020-04-24 09:27:01
+ * @Version Copyright (c) 2019,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Table(name = "t_sb_location")
+@Data
+public class SbLocation implements Serializable {
+
+    /**
+     *
+     */
+    @Id
+    private String id;
+    /**
+     * 部位编号
+     */
+    private String no;
+    /**
+     * 设备名称
+     */
+    private String name;
+    /**
+     * 部位类别
+     */
+    private String typeId;
+    /**
+     * 设备等级
+     */
+    private Integer level;
+    /**
+     * 所属设备id
+     */
+    private String sbId;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 创建人
+     */
+    private String createdUserId;
+    /**
+     * 创建人
+     */
+    private String updateUserId;
+    /**
+     * 创建日期
+     */
+    private LocalDateTime createdTime;
+    /**
+     * 更新日期
+     */
+    private LocalDateTime updateTime;
+
+    /**
+     * 创建人
+     */
+    @Transient
+    private String createdUserName;
+    /**
+     * 修改人
+     */
+    @Transient
+    private String updateUserName;
+    /**
+     * 所属设备
+     */
+    @Transient
+    private String sbName;
+    /**
+     * 部位类型
+     */
+    @Transient
+    private String typeName;
+    /**
+     * 数据权限
+     */
+    @Transient
+    private DataScope dataScope;
+
+    private List<SbModelSpareBomVO> sparePartInfoVOList;
+
+    /**
+     * 关联的维修部门ID
+     */
+    private String repairDeptId;
+
+}

+ 42 - 0
platform-dao/src/main/java/com/platform/dao/mapper/sb/SbLocationMapper.java

@@ -0,0 +1,42 @@
+package com.platform.dao.mapper.sb;
+
+import com.platform.dao.config.MyMapper;
+import com.platform.dao.dto.sb.SbLocationDTO;
+import com.platform.dao.entity.sb.SbLocation;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+
+/**
+ * @Description 设备子位置号 mapper
+ * @Author liuyu
+ * @Date 2020-04-24 09:27:01
+ * @Version Copyright (c) 2019,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Component
+public interface SbLocationMapper extends MyMapper<SbLocation> {
+    /**
+     * 分页查询
+     *
+     * @param dto
+     * @return
+     */
+    List<SbLocation> selectPageList(SbLocationDTO dto);
+
+    /**
+     * 根据主键查询
+     *
+     * @param id
+     * @return
+     */
+    SbLocation selectById(Object id);
+
+    /**
+     * 查询名称
+     *
+     * @param id
+     * @return
+     */
+    String selectNameById(Object id);
+}

+ 14 - 0
platform-dao/src/main/java/com/platform/dao/util/SelectUtil.java

@@ -4,6 +4,7 @@ import com.platform.dao.entity.firm.FirmProducer;
 import com.platform.dao.entity.part.PartInfo;
 import com.platform.dao.entity.purchase.Supplier;
 import com.platform.dao.entity.sb.SbGuige;
+import com.platform.dao.entity.sb.SbLocation;
 import com.platform.dao.entity.sqarepartmanage.SparePartInfo;
 import com.platform.dao.pojo.SelectOptionVO;
 
@@ -69,6 +70,19 @@ public class SelectUtil {
         return options;
     }
 
+    /**
+     * 设备位号下拉款
+     *
+     * @return
+     */
+    public static List<SelectOptionVO> buildSbLocationOptions(List<SbLocation> list) {
+        List<SelectOptionVO> options = new LinkedList<>();
+        list.forEach(item -> {
+            options.add(new SelectOptionVO(item.getId(), item.getName()));
+        });
+        return options;
+    }
+
     /**
      * 设备备件下拉款
      *

+ 166 - 0
platform-dao/src/main/java/com/platform/dao/vo/export/sb/ExportSbLocationVO.java

@@ -0,0 +1,166 @@
+package com.platform.dao.vo.export.sb;
+
+import com.platform.office.annotation.Excel;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * @Description 部位信息导出VO
+ * @Author liuyu
+ * @Date 2020-04-24 09:27:01
+ * @Version Copyright (c) 2019,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+public class ExportSbLocationVO implements Serializable {
+
+    /**
+     *
+     */
+    @Excel(name = "", orderNum = "1")
+    private String id;
+
+    /**
+     * 部位编号
+     */
+    @Excel(name = "部位编号", orderNum = "2")
+    private String no;
+
+    /**
+     * 设备名称
+     */
+    @Excel(name = "设备名称", orderNum = "3")
+    private String name;
+
+    /**
+     * 设备类别
+     */
+    @Excel(name = "设备类别", orderNum = "4")
+    private String typeId;
+
+    /**
+     * 设备等级
+     */
+    @Excel(name = "设备等级", orderNum = "5")
+    private Integer level;
+
+    /**
+     * 生产商
+     */
+    @Excel(name = "生产商", orderNum = "6")
+    private String producerId;
+
+    /**
+     * 设备来源方式
+     */
+    @Excel(name = "设备来源方式", orderNum = "7")
+    private Integer sourceType;
+
+    /**
+     * 来源设备id
+     */
+    @Excel(name = "来源设备id", orderNum = "8")
+    private String sourceSbId;
+
+    /**
+     * 所属设备id
+     */
+    @Excel(name = "所属设备id", orderNum = "9")
+    private String sbId;
+
+    /**
+     * 计量单位
+     */
+    @Excel(name = "计量单位", orderNum = "10")
+    private Integer unit;
+
+    /**
+     * 规格型号
+     */
+    @Excel(name = "规格型号", orderNum = "11")
+    private String guigeId;
+
+    /**
+     * 购置日期
+     */
+    @Excel(name = "购置日期", orderNum = "12")
+    private LocalDate buyDate;
+
+    /**
+     * 投用日期
+     */
+    @Excel(name = "投用日期", orderNum = "13")
+    private LocalDate startDate;
+
+    /**
+     * 下次检定日期
+     */
+    @Excel(name = "下次检定日期", orderNum = "14")
+    private LocalDate nextCheckDate;
+
+    /**
+     * 保修截至日期
+     */
+    @Excel(name = "保修截至日期", orderNum = "15")
+    private LocalDate guaranteeDate;
+
+    /**
+     * 预计工作年限
+     */
+    @Excel(name = "预计工作年限", orderNum = "16")
+    private Double workYear;
+
+    /**
+     * 预计报废日期
+     */
+    @Excel(name = "预计报废日期", orderNum = "17")
+    private LocalDate retirementDate;
+
+    /**
+     * 设备图片
+     */
+    @Excel(name = "设备图片", orderNum = "18")
+    private String sbImage;
+
+    /**
+     * 状态
+     */
+    @Excel(name = "状态", orderNum = "19")
+    private Integer status;
+
+    /**
+     * 备注
+     */
+    @Excel(name = "备注", orderNum = "20")
+    private String remark;
+
+    /**
+     * 创建人
+     */
+    @Excel(name = "创建人", orderNum = "21")
+    private String createdUserId;
+
+    /**
+     * 创建人
+     */
+    @Excel(name = "创建人", orderNum = "22")
+    private String updateUserId;
+
+    /**
+     * 创建日期
+     */
+    @Excel(name = "创建日期", orderNum = "23")
+    private LocalDateTime createdTime;
+
+    /**
+     * 更新日期
+     */
+    @Excel(name = "更新日期", orderNum = "24")
+    private LocalDateTime updateTime;
+
+
+}

+ 58 - 0
platform-dao/src/main/resources/mapper/sb/SbLocationMapper.xml

@@ -0,0 +1,58 @@
+<?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="com.platform.dao.mapper.sb.SbLocationMapper">
+    <resultMap id="BaseResultMap" type="com.platform.dao.entity.sb.SbLocation">
+        <id column="id" jdbcType="VARCHAR" property="id"/>
+        <result column="no" jdbcType="VARCHAR" property="no"/>
+        <result column="name" jdbcType="VARCHAR" property="name"/>
+        <result column="type_id" jdbcType="VARCHAR" property="typeId"/>
+        <result column="level" jdbcType="SMALLINT" property="level"/>
+        <result column="sb_id" jdbcType="VARCHAR" property="sbId"/>
+        <result column="status" jdbcType="SMALLINT" property="status"/>
+        <result column="remark" jdbcType="VARCHAR" property="remark"/>
+        <result column="created_user_id" jdbcType="VARCHAR" property="createdUserId"/>
+        <result column="update_user_id" jdbcType="VARCHAR" property="updateUserId"/>
+        <result column="created_time" jdbcType="TIMESTAMP" property="createdTime"/>
+        <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
+        <association column="type_id" javaType="string" property="typeName"
+                     select="com.platform.dao.mapper.part.PartTypeMapper.selectNameById"/>
+        <association column="sb_id" javaType="string" property="sbName"
+                     select="com.platform.dao.mapper.sb.SbInfoMapper.selectNameById"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id, no, name, type_id, level, sb_id, remark, created_time, update_time,repair_dept_id
+    </sql>
+
+    <select id="selectPageList" parameterType="com.platform.dao.dto.sb.SbLocationDTO" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"/>
+        from t_sb_location
+        <where>
+            <if test="keyword != null and keyword != ''">
+                (
+                name like concat('%',#{keyword},'%') or
+                no like concat('%',#{keyword},'%')
+            )
+            </if>
+            <if test="sbId != null and sbId != ''">
+                and sb_id = #{sbId}
+            </if>
+        </where>
+    </select>
+
+    <select id="selectById" parameterType="java.lang.Object" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"/>
+        from t_sb_location
+        where id = #{id}
+    </select>
+
+    <select id="selectNameById" parameterType="java.lang.Object" resultType="java.lang.String">
+        select name
+        from t_sb_location
+        where id = #{id}
+    </select>
+
+
+</mapper>

+ 1 - 1
platform-rest/src/main/java/com/platform/rest/controller/part/PartInfoController.java

@@ -75,7 +75,7 @@ public class PartInfoController {
     /**
      * 复制某个设备的bom记录
      *
-     * @param id 设备Id
+     * @param partInfoDTO 设备Id
      * @return R
      */
     @SysLog("复制某个设备的bom记录")

+ 174 - 0
platform-rest/src/main/java/com/platform/rest/controller/sb/SbLocationController.java

@@ -0,0 +1,174 @@
+package com.platform.rest.controller.sb;
+
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.common.util.BeanConverterUtil;
+import com.platform.common.util.R;
+import com.platform.common.validation.group.AddGroup;
+import com.platform.common.validation.group.UpdateGroup;
+import com.platform.dao.dto.sb.SbLocationDTO;
+import com.platform.dao.entity.sb.SbLocation;
+import com.platform.dao.util.ExcelUtil;
+import com.platform.dao.util.SelectUtil;
+import com.platform.dao.vo.export.sb.ExportSbLocationVO;
+import com.platform.rest.log.annotation.SysLog;
+import com.platform.service.sb.SbLocationService;
+import lombok.AllArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * @Description 设备分的位置号 控制器
+ * @Author liuyu
+ * @Date 2020-04-24 09:27:01
+ * @Version Copyright (c) 2019,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/sb/locations")
+public class SbLocationController {
+
+    private final SbLocationService sbLocationService;
+
+    /**
+     * 通过id查询单条记录
+     *
+     * @param id 主键
+     * @return R
+     */
+    @GetMapping("/{id}")
+    public R<SbLocation> getById(@PathVariable("id") String id) {
+        return new R<>(sbLocationService.getModelById(id));
+    }
+
+    /**
+     * 新增记录
+     *
+     * @param partInfoDTO 位号信息DTO
+     * @return R
+     */
+    @SysLog("新增位号信息")
+    @PostMapping
+    @PreAuthorize("@pms.hasPermission('sb-locations-add')")
+    public R save(@Validated({AddGroup.class}) @RequestBody SbLocationDTO partInfoDTO) {
+        return new R<>(sbLocationService.saveModelByDTO(partInfoDTO));
+    }
+
+    /**
+     * 修改记录
+     *
+     * @param partInfoDTO 位号信息DTO
+     * @return R
+     */
+    @SysLog("修改位号信息")
+    @PutMapping("/{id}")
+    @PreAuthorize("@pms.hasPermission('sb-locations-edit')")
+    public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody SbLocationDTO partInfoDTO) {
+        sbLocationService.modModelByDTO(partInfoDTO);
+        return new R<>();
+    }
+
+    /**
+     * 复制某个设备的bom记录
+     *
+     * @param partInfoDTO
+     * @return R
+     */
+    @SysLog("复制某个设备的bom记录")
+    @PutMapping("copy")
+    public R copy( @RequestBody SbLocationDTO partInfoDTO) {
+        return new R<>(sbLocationService.copyFormSb(partInfoDTO));
+    }
+
+    /**
+     * 通过id删除一条记录
+     *
+     * @param id 主键
+     * @return R
+     */
+    @SysLog("删除位号信息")
+    @DeleteMapping("/{id}")
+    @PreAuthorize("@pms.hasPermission('sb-locations-del')")
+    public R removeById(@PathVariable String id) {
+        sbLocationService.deleteByPrimaryKey(id);
+        return new R<>();
+    }
+
+    /**
+     * 批量记录
+     *
+     * @param ids 主键
+     * @return R
+     */
+    @SysLog("批量删除位号信息")
+    @DeleteMapping("")
+    @PreAuthorize("@pms.hasPermission('sb-locations-del')")
+    public R removeIds(@RequestBody List<String> ids) {
+        sbLocationService.batchDelete(ids);
+        return new R<>();
+    }
+
+    /**
+     * 获取分页
+     *
+     * @param pageNum     当前页码
+     * @param pageSize    每页条数
+     * @param partInfoDTO 位号信息DTO
+     * @return R
+     */
+    @GetMapping("/page")
+    public R<AbstractPageResultBean<SbLocation>> query(SbLocationDTO partInfoDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+        return new R<>(sbLocationService.selectPageInfo(partInfoDTO, pageNum, pageSize));
+    }
+
+    /**
+     * 获取列表
+     *
+     * @param partInfoDTO 位号信息DTO
+     * @return R
+     */
+    @GetMapping("")
+    public R query(SbLocationDTO partInfoDTO) {
+        return new R<>(sbLocationService.getModelListByDTO(partInfoDTO));
+    }
+
+    /**
+     * 部位数量
+     *
+     * @param partInfoDTO
+     * @return R
+     */
+    @GetMapping("/num")
+    public R getNum(SbLocationDTO partInfoDTO) {
+        return new R<>(sbLocationService.getCountByDTO(partInfoDTO));
+    }
+
+    /**
+     * 位号信息导出
+     *
+     * @param partInfoDTO 位号信息DTO
+     * @return R
+     */
+    @GetMapping("/export")
+    @SysLog("位号信息导出")
+    @PreAuthorize("@pms.hasPermission('sb-locations-export')")
+    public void export(HttpServletResponse response, SbLocationDTO partInfoDTO) {
+        List<SbLocation> list = sbLocationService.getModelListByDTO(partInfoDTO);
+        ExcelUtil.exportResponseDict(response, ExportSbLocationVO.class, BeanConverterUtil.copyListProperties(list, ExportSbLocationVO.class), "位号信息");
+    }
+
+    /**
+     * 获取列表
+     *
+     * @param partInfoDTO 位号信息DTO
+     * @return R
+     */
+    @GetMapping("options")
+    public R queryOptions(SbLocationDTO partInfoDTO) {
+        return new R<>(SelectUtil.buildSbLocationOptions(sbLocationService.getModelListByDTO(partInfoDTO)));
+    }
+
+}

+ 26 - 0
platform-service/src/main/java/com/platform/service/sb/SbLocationService.java

@@ -0,0 +1,26 @@
+package com.platform.service.sb;
+
+import com.platform.dao.dto.sb.SbLocationDTO;
+import com.platform.dao.entity.sb.SbLocation;
+import com.platform.service.base.IBaseService;
+
+import java.util.List;
+
+/**
+ * @Description 设备位号信息 service
+ * @Author liuyu
+ * @Date 2020-04-24 09:27:01
+ * @Version Copyright (c) 2019,北京乾元坤和科技有限公司 All rights reserved.
+ */
+public interface SbLocationService extends IBaseService<SbLocation, SbLocationDTO> {
+
+    /**
+     * 批量删除
+     *
+     * @param ids :
+     * @return :
+     */
+    int batchDelete(List<String> ids);
+
+    String copyFormSb(SbLocationDTO dto);
+}

+ 122 - 0
platform-service/src/main/java/com/platform/service/sb/impl/SbLocationServiceImpl.java

@@ -0,0 +1,122 @@
+package com.platform.service.sb.impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.github.pagehelper.PageHelper;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.common.exception.BusinessException;
+import com.platform.common.util.IdGeneratorUtils;
+import com.platform.dao.bean.MyPage;
+import com.platform.dao.dto.sb.SbLocationDTO;
+import com.platform.dao.entity.sb.SbLocation;
+import com.platform.dao.mapper.sb.SbLocationMapper;
+import com.platform.service.base.impl.BaseServiceImpl;
+import com.platform.service.sb.SbLocationService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import tk.mybatis.mapper.weekend.Weekend;
+import tk.mybatis.mapper.weekend.WeekendCriteria;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description 位号信息 service 实现类
+ * @Author liuyu
+ * @Date 2020-04-24 09:27:01
+ * @Version Copyright (c) 2019,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@AllArgsConstructor
+@Service("sbLocationService")
+public class SbLocationServiceImpl extends BaseServiceImpl<SbLocationMapper, SbLocation, SbLocationDTO> implements SbLocationService {
+    @Override
+    public int batchDelete(List<String> ids) {
+        Weekend<SbLocation> weekend = new Weekend<>(SbLocation.class);
+        WeekendCriteria<SbLocation, Object> weekendCriteria = weekend.weekendCriteria();
+        weekendCriteria.andIn(SbLocation::getId, ids);
+        mapper.deleteByExample(weekend);
+        return 1;
+    }
+
+    /**
+     * 复制某个设备的位号,要去除已经存在的名称相同的
+     * @param model
+     * @return
+     */
+    @Override
+    public String copyFormSb(SbLocationDTO model) {
+        SbLocationDTO record = new SbLocationDTO();
+        record.setSbId(model.getSbId());
+        List<SbLocation> partList = getModelListByDTO(record);
+
+        SbLocationDTO copyRecord = new SbLocationDTO();
+        copyRecord.setSbId(model.getCopySbId());
+        List<SbLocation> copyPartList = getModelListByDTO(copyRecord);
+        List<SbLocation> addPartList = new ArrayList<SbLocation>();
+        for(SbLocation copyPart:copyPartList){
+            boolean find = false;
+            for(SbLocation part:partList){
+                if(copyPart.getName().equals(part.getName())){
+                    find = true;
+                    break;
+                }
+            }
+            if(!find){
+                SbLocation partInfo = copyPart;
+                partInfo.setId(IdGeneratorUtils.getObjectId());
+                partInfo.setSbId(model.getSbId());
+                addPartList.add(partInfo);
+            }
+        }
+        if(CollectionUtil.isNotEmpty(addPartList)){
+            mapper.insertListforComplex(addPartList);
+        }
+
+        return "复制位号:" +addPartList.size() + "个";
+    }
+
+    @Override
+    public AbstractPageResultBean<SbLocation> selectPageInfo(SbLocationDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        AbstractPageResultBean<SbLocation> pageInfo = new MyPage(mapper.selectPageList(record));
+        return pageInfo;
+    }
+
+    @Override
+    public SbLocation getModelById(Object id) {
+        SbLocation model = mapper.selectById(id);
+        return model;
+    }
+
+    @Override
+    public List<SbLocation> getModelListByDTO(SbLocationDTO model) {
+        List<SbLocation> result = super.getModelListByDTO(model);
+        return result;
+    }
+
+    @Override
+    public SbLocation saveModelByDTO(SbLocationDTO model) {
+
+        Weekend<SbLocation> weekendExsit = new Weekend<>(SbLocation.class);
+        weekendExsit.weekendCriteria().andEqualTo(SbLocation::getSbId, model.getSbId()).andEqualTo(SbLocation::getNo, model.getNo());
+        Integer exsitCount = mapper.selectCountByExample(weekendExsit);
+        if(exsitCount>0){
+            throw new BusinessException("编号已存在,请重新编号");
+        }
+        //Weekend<SbLocation> weekend = new Weekend<>(SbLocation.class);
+        //weekend.weekendCriteria().andIsNotNull(SbLocation::getId);
+        //Integer count = mapper.selectCountByExample(weekend);
+        //model.setNo(IdGeneratorUtils.getPartNo(++count));
+        return super.saveModelByDTO(model);
+    }
+
+    @Override
+    public void modModelByDTO(SbLocationDTO model) {
+        Weekend<SbLocation> weekendExsit = new Weekend<>(SbLocation.class);
+        weekendExsit.weekendCriteria().andEqualTo(SbLocation::getSbId, model.getSbId()).andEqualTo(SbLocation::getNo, model.getNo());
+        SbLocation sbLocation = mapper.selectOneByExample(weekendExsit);
+        if(sbLocation != null && !sbLocation.getId().equals(model.getId())){
+            throw new BusinessException("编号已存在,请重新编号");
+        }
+        super.modModelByDTO(model);
+    }
+}