package com.ruoyi.production.service.impl;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.basic.pojo.BaseParam;
|
import com.ruoyi.basic.service.BaseParamService;
|
import com.ruoyi.common.exception.ServiceException;
|
import com.ruoyi.common.utils.SecurityUtils;
|
import com.ruoyi.production.dto.ProcessRouteItemParamDto;
|
import com.ruoyi.production.mapper.ProcessRouteItemParamMapper;
|
import com.ruoyi.production.pojo.ProcessRouteItemParam;
|
import com.ruoyi.production.service.ProcessRouteItemParamService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.time.LocalDateTime;
|
|
/**
|
* <br>
|
* 工艺路线工序参数实例 ServiceImpl
|
* </br>
|
*
|
* @author deslrey
|
* @version 1.0
|
* @since 2026/03/16 11:11
|
*/
|
@Slf4j
|
@Service
|
public class ProcessRouteItemParamServiceImpl extends ServiceImpl<ProcessRouteItemParamMapper, ProcessRouteItemParam> implements ProcessRouteItemParamService {
|
|
@Autowired
|
private BaseParamService baseParamService;
|
|
@Override
|
public IPage<ProcessRouteItemParamDto> pageList(Page<ProcessRouteItemParam> page, ProcessRouteItemParam param) {
|
return baseMapper.selectParamPage(page, param);
|
}
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public boolean initParams(Long routeItemId, Long processId) {
|
Long tenantId = SecurityUtils.getLoginUser().getTenantId();
|
if (tenantId == null) {
|
tenantId = 208L;
|
}
|
|
return baseMapper.insertFromProcessTemplate(routeItemId, processId, tenantId) > 0;
|
}
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public void saveParam(ProcessRouteItemParam param) {
|
if (param == null) {
|
throw new ServiceException("新增失败,参数不能为空");
|
}
|
if (param.getRouteItemId() == null || param.getParamId() == null) {
|
throw new ServiceException("关联工序ID和参数项ID不能为空");
|
}
|
|
Long tenantId = SecurityUtils.getLoginUser().getTenantId();
|
Long count = baseMapper.selectCount(Wrappers.<ProcessRouteItemParam>lambdaQuery()
|
.eq(ProcessRouteItemParam::getRouteItemId, param.getRouteItemId())
|
.eq(ProcessRouteItemParam::getParamId, param.getParamId())
|
.eq(ProcessRouteItemParam::getTenantId, tenantId));
|
if (count > 0) {
|
throw new ServiceException("该工序已存在此参数项,请勿重复添加");
|
}
|
|
BaseParam baseParam = baseParamService.getById(param.getParamId());
|
if (baseParam == null) {
|
throw new ServiceException("新增失败,改基础参数不存在");
|
}
|
|
Integer maxSort = baseMapper.selectMaxSortByRouteItemId(param.getRouteItemId());
|
param.setId(null);
|
param.setProcessParamId(null);
|
param.setSort(maxSort);
|
param.setCreateTime(LocalDateTime.now());
|
param.setTenantId(tenantId);
|
|
this.save(param);
|
}
|
}
|