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; /** *
* 工艺路线工序参数实例 ServiceImpl *
* * @author deslrey * @version 1.0 * @since 2026/03/16 11:11 */ @Slf4j @Service public class ProcessRouteItemParamServiceImpl extends ServiceImpl implements ProcessRouteItemParamService { @Autowired private BaseParamService baseParamService; @Override public IPage pageList(Page 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.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); } }