package com.ruoyi.sales.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.sales.pojo.SalesLedgerProductProcess; import com.ruoyi.sales.mapper.SalesLedgerProductProcessMapper; import com.ruoyi.sales.service.ISalesLedgerProductProcessService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; /** *

* 销售产品加工明细 服务实现类 *

* * @author deslrey * @since 2026-03-25 */ @Service public class SalesLedgerProductProcessServiceImpl extends ServiceImpl implements ISalesLedgerProductProcessService { @Override public Page salesLedgerProductProcessList(Page page, String name) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); if (StringUtils.hasText(name)) { wrapper.like(SalesLedgerProductProcess::getProcessName, name); } return this.page(page, wrapper); } @Override public void addProcess(SalesLedgerProductProcess process) { checkDuplicate(process.getProcessName(), null, process.getProcessName()); this.save(process); if (!StringUtils.hasText(process.getCode())) { process.setCode("P" + process.getId()); this.updateById(process); } } @Override public void updateProcess(SalesLedgerProductProcess process) { checkDuplicate(process.getProcessName(), process.getId(), process.getProcessName()); this.updateById(process); } @Override public void deleteProcess(Integer id) { this.removeById(id); } private void checkDuplicate(String processName, Integer excludeId, String code) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.and(w -> w .eq(SalesLedgerProductProcess::getProcessName, processName) .or() .eq(SalesLedgerProductProcess::getCode, code)); if (excludeId != null) { wrapper.ne(SalesLedgerProductProcess::getId, excludeId); } if (this.count(wrapper) > 0) { throw new RuntimeException("工序名称或编码已存在"); } } }