package com.chinaztt.mes.basic.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.chinaztt.mes.basic.entity.Post; import com.chinaztt.mes.basic.mapper.PostMapper; import com.chinaztt.mes.basic.service.PostService; import com.chinaztt.mes.common.numgen.NumberGenerator; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; /** * 岗位表 * * @author cxf * @date 2021-06-23 17:17:26 */ @Service @AllArgsConstructor @Transactional(rollbackFor = Exception.class) public class PostServiceImpl extends ServiceImpl implements PostService { private NumberGenerator postNumberGenerator; @Override public boolean save(Post post) { checkPostNo(post); return SqlHelper.retBool(baseMapper.insert(post)); } @Override public boolean updateById(Post post) { checkPostNo(post); return SqlHelper.retBool(baseMapper.updateById(post)); } private void checkPostNo(Post post) { if (StringUtils.isBlank(post.getPostNo())) { // 1. 自动生成编号 post.setPostNo(postNumberGenerator.generateNumberWithPrefix(Post.DIGIT, Post.PREFIX, Post::getPostNo)); } else { // 2.判断是否重复 List repeatNos = baseMapper.selectList(Wrappers.query().lambda().eq(Post::getPostNo, post.getPostNo()).ne(Post::getId, post.getId())); if (CollectionUtil.isNotEmpty(repeatNos)) { throw new RuntimeException("编号重复"); } } } }