package org.jeecg.modules.dnc.service.impl;
|
|
import cn.hutool.core.util.StrUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import org.jeecg.common.api.vo.Result;
|
import org.jeecg.modules.dnc.entity.Cutter;
|
import org.jeecg.modules.dnc.exception.ExceptionCast;
|
import org.jeecg.modules.dnc.mapper.CutterMapper;
|
import org.jeecg.modules.dnc.response.CommonCode;
|
import org.jeecg.modules.dnc.service.ICutterService;
|
import org.jeecg.modules.dnc.utils.ValidateUtil;
|
import org.springframework.stereotype.Service;
|
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
@Service
|
public class CutterServiceImpl extends ServiceImpl<CutterMapper, Cutter> implements ICutterService {
|
|
/**
|
* 新增刀具信息
|
* @param cutter
|
* @return
|
*/
|
@Override
|
public Result<?> add(Cutter cutter){
|
if(cutter == null)
|
ExceptionCast.cast(CommonCode.INVALID_PARAM);
|
if(!ValidateUtil.validateString(cutter.getAttributionId()))
|
Result.error("无效的刀具");
|
List<Cutter> cutterList =this.checkCutterNo(cutter);
|
if (cutterList != null && !cutterList.isEmpty()) {
|
return Result.error("已存在相同的刀具编号");
|
}
|
boolean save = this.save(cutter);
|
if(save){
|
return Result.OK("添加刀具成功");
|
}
|
return Result.error("新增刀具失败");
|
}
|
|
/**
|
* 编辑刀具信息
|
* @param cutter
|
* @return
|
*/
|
@Override
|
public Result<?> edit(Cutter cutter){
|
// 检查传入的刀具对象是否为空
|
if (cutter == null) {
|
return Result.OK("刀具对象不能为空");
|
}
|
// 检查刀具名称是否有效
|
if (!ValidateUtil.validateString(cutter.getCutterName())) {
|
return Result.OK("刀具名称无效");
|
}
|
// 根据刀具 ID 获取刀具信息
|
Cutter existingCutter = super.getById(cutter.getId());
|
if (existingCutter == null) {
|
return Result.OK("刀具不存在");
|
}
|
// 过滤掉当前要编辑的刀具,检查是否有其他刀具存在相同编号
|
List<Cutter> otherCuttersWithSameNo = this.checkCutterNo(cutter).stream()
|
.filter(cut -> !cut.getId().equals(cutter.getId()))
|
.collect(Collectors.toList());
|
if (!otherCuttersWithSameNo.isEmpty()) {
|
// 如果存在除当前刀具外的其他刀具编号重复
|
return Result.error("已存在相同的刀具编号");
|
}
|
// 尝试更新刀具信息
|
boolean updated = this.updateById(cutter);
|
if (updated) {
|
return Result.OK("刀具信息编辑成功");
|
} else {
|
return Result.error("刀具信息编辑失败");
|
}
|
}
|
|
/**
|
* 删除刀具信息
|
* @param id
|
* @return
|
*/
|
@Override
|
public Result<?> delete(String id){
|
if(!ValidateUtil.validateString(id))
|
ExceptionCast.cast(CommonCode.INVALID_PARAM);
|
Cutter en = super.getById(id);
|
if(en == null)
|
return Result.error("无效的刀具");
|
boolean b=super.removeById(id);
|
if(!b) {
|
return Result.error("删除刀具失败");
|
}
|
return Result.OK("删除刀具成功");
|
}
|
|
/**
|
* 验证同结构下刀具编号是否重复
|
* @param cutter
|
* @return
|
*/
|
public List<Cutter> checkCutterNo(Cutter cutter){
|
QueryWrapper<Cutter> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq(StrUtil.isNotEmpty(cutter.getAttributionId()),"attribution_id",cutter.getAttributionId());
|
queryWrapper.eq("attribution_type",cutter.getAttributionType());
|
queryWrapper.eq(StrUtil.isNotEmpty(cutter.getCutterCode()),"cutter_code",cutter.getCutterCode());
|
return baseMapper.selectList(queryWrapper);
|
}
|
|
/**
|
* 获取业务id下的刀具列表
|
* @param cutter
|
* @return
|
*/
|
@Override
|
public Result<?> query(Cutter cutter, Integer pageNo, Integer pageSize){
|
QueryWrapper<Cutter> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq(StrUtil.isNotEmpty(cutter.getAttributionId()),"attribution_id",cutter.getAttributionId());
|
if (cutter.getAttributionType() != null){
|
queryWrapper.eq("attribution_type",cutter.getAttributionType());
|
}
|
queryWrapper.like(StrUtil.isNotEmpty(cutter.getCutterCode()),"cutter_code",cutter.getCutterCode());
|
queryWrapper.like(StrUtil.isNotEmpty(cutter.getCutterName()),"cutter_name",cutter.getCutterName());
|
queryWrapper.orderByDesc("create_time");
|
Page<Cutter> page = new Page<>(pageNo,pageSize);
|
IPage<Cutter> cutterIPage = baseMapper.selectPage(page, queryWrapper);
|
return Result.OK(cutterIPage);
|
}
|
}
|