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<PostMapper, Post> implements PostService {
|
private NumberGenerator<Post> 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<Post> repeatNos = baseMapper.selectList(Wrappers.<Post>query().lambda().eq(Post::getPostNo, post.getPostNo()).ne(Post::getId, post.getId()));
|
if (CollectionUtil.isNotEmpty(repeatNos)) {
|
throw new RuntimeException("编号重复");
|
}
|
}
|
}
|
}
|