package com.chinaztt.mes.quality.service.impl;
|
|
import cn.hutool.core.collection.CollectionUtil;
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
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.common.numgen.NumberGenerator;
|
import com.chinaztt.mes.quality.entity.QualityTestApplyRule;
|
import com.chinaztt.mes.quality.mapper.QualityTestApplyRuleMapper;
|
import com.chinaztt.mes.quality.service.QualityTestApplyRuleService;
|
import lombok.AllArgsConstructor;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.List;
|
|
/**
|
* @Description : 检测申请规则
|
* @ClassName : QualityTestApplyRuleServiceImpl
|
* @Author : sll
|
* @Date: 2022-08-21 12:00
|
*/
|
@Service
|
@AllArgsConstructor
|
@Transactional(rollbackFor = Exception.class)
|
public class QualityTestApplyRuleServiceImpl extends ServiceImpl<QualityTestApplyRuleMapper, QualityTestApplyRule> implements QualityTestApplyRuleService{
|
private NumberGenerator<QualityTestApplyRule> qualityTestApplyRuleNumberGenerator;
|
|
/**
|
* 检验编号
|
* @param qualityTestApplyRule
|
*/
|
private void checkRuleNo(QualityTestApplyRule qualityTestApplyRule) {
|
if (StringUtils.isBlank(qualityTestApplyRule.getRuleNo())) {
|
// 1. 自动生成编号
|
qualityTestApplyRule.setRuleNo(qualityTestApplyRuleNumberGenerator.generateNumberWithPrefix(QualityTestApplyRule.DIGIT, QualityTestApplyRule.PREFIX, QualityTestApplyRule::getRuleNo));
|
} else {
|
// 2.判断是否重复
|
List<QualityTestApplyRule> ruleNos = baseMapper.selectList(Wrappers.<QualityTestApplyRule>query().lambda().eq(QualityTestApplyRule::getRuleNo, qualityTestApplyRule.getRuleNo()).ne(QualityTestApplyRule::getId, qualityTestApplyRule.getId()));
|
if (CollectionUtil.isNotEmpty(ruleNos)) {
|
throw new RuntimeException("编号重复");
|
}
|
}
|
}
|
|
private void checkInspectionTypeReUse(QualityTestApplyRule qualityTestApplyRule){
|
if(null == qualityTestApplyRule.getId() || qualityTestApplyRule.getId() == 0){
|
//新增
|
List<QualityTestApplyRule> qualityTestApplyRuleList = baseMapper.selectList(Wrappers.<QualityTestApplyRule>lambdaQuery()
|
.eq(QualityTestApplyRule::getOperationNo,qualityTestApplyRule.getOperationNo())
|
.eq(QualityTestApplyRule::getInspectionType,qualityTestApplyRule.getInspectionType()));
|
if(CollectionUtils.isNotEmpty(qualityTestApplyRuleList)){
|
throw new RuntimeException("工序名称 = 【" + qualityTestApplyRule.getOperationName() + "】 -> 检测类型 = 【" + qualityTestApplyRule.getInspectionType() + "】配置已存在");
|
}
|
}else{
|
//修改
|
List<QualityTestApplyRule> qualityTestApplyRuleList = baseMapper.selectList(Wrappers.<QualityTestApplyRule>lambdaQuery()
|
.eq(QualityTestApplyRule::getOperationNo,qualityTestApplyRule.getOperationNo())
|
.eq(QualityTestApplyRule::getInspectionType,qualityTestApplyRule.getInspectionType())
|
.ne(QualityTestApplyRule::getId,qualityTestApplyRule.getId()));
|
if(CollectionUtils.isNotEmpty(qualityTestApplyRuleList)){
|
throw new RuntimeException("工序名称 = 【" + qualityTestApplyRule.getOperationName() + "】 -> 检测类型 = 【" + qualityTestApplyRule.getInspectionType() + "】配置已存在");
|
}
|
}
|
|
}
|
|
public void isNeedFieldValueEmpty(QualityTestApplyRule qualityTestApplyRule){
|
if(null == qualityTestApplyRule){
|
throw new RuntimeException("数据请求对象为空");
|
}else{
|
if(StringUtils.isBlank(qualityTestApplyRule.getRuleName()) || StringUtils.isBlank(qualityTestApplyRule.getInspectionType()) || StringUtils.isBlank(qualityTestApplyRule.getOperationNo()) || StringUtils.isBlank(qualityTestApplyRule.getOperationName())){
|
throw new RuntimeException("必要字段值不可为空");
|
}
|
}
|
}
|
|
@Override
|
public boolean save(QualityTestApplyRule qualityTestApplyRule){
|
isNeedFieldValueEmpty(qualityTestApplyRule);
|
checkRuleNo(qualityTestApplyRule);
|
checkInspectionTypeReUse(qualityTestApplyRule);
|
return SqlHelper.retBool(baseMapper.insert(qualityTestApplyRule));
|
}
|
|
@Override
|
public boolean updateById(QualityTestApplyRule qualityTestApplyRule) {
|
isNeedFieldValueEmpty(qualityTestApplyRule);
|
checkRuleNo(qualityTestApplyRule);
|
checkInspectionTypeReUse(qualityTestApplyRule);
|
return SqlHelper.retBool(baseMapper.updateById(qualityTestApplyRule));
|
}
|
|
|
}
|