package com.qianwen.smartman.modules.cps.service.impl; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.qianwen.core.mp.service.impl.BladeServiceImpl; import com.qianwen.core.mp.support.Condition; import com.qianwen.core.mp.support.Query; import com.qianwen.core.tool.utils.Func; import com.qianwen.smartman.common.constant.CommonConstant; import com.qianwen.smartman.common.utils.Lambda; import com.qianwen.smartman.common.utils.MessageUtils; import com.qianwen.smartman.modules.cps.convert.StockOutTypeConvert; import com.qianwen.smartman.modules.cps.entity.StockOutType; import com.qianwen.smartman.modules.cps.mapper.StockOutTypeMapper; import com.qianwen.smartman.modules.cps.service.IStockOutTypeService; import com.qianwen.smartman.modules.cps.utils.ThrowFun; import com.qianwen.smartman.modules.cps.vo.StockOutTypeVO; @Service /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/cps/service/impl/StockOutTypeServiceImpl.class */ public class StockOutTypeServiceImpl extends BladeServiceImpl implements IStockOutTypeService { @Override // org.springblade.modules.cps.service.IStockOutTypeService public StockOutType createStockOutType(StockOutTypeVO vo) { validTheSame(null, vo.getCode(), vo.getName()); StockOutType stockOutType = StockOutTypeConvert.INSTANCE.convert(vo); save(stockOutType); return stockOutType; } @Override // org.springblade.modules.cps.service.IStockOutTypeService public IPage pageStockOutType(Query query, String key, Integer status) { IPage page = page(Condition.getPage(query), Wrappers.lambdaQuery() .eq(StockOutType::getStatus, status) .and(Func.isNotBlank(key), c -> c.likeRight(StockOutType::getCode, key).or().likeRight(Func.isNotBlank(key), StockOutType::getName, key)) .orderByDesc(StockOutType::getCreateTime)); /* IPage page = page(Condition.getPage(query), (Wrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getStatus(); }, status)).and(Func.isNotBlank(key), c -> { ((LambdaQueryWrapper) ((LambdaQueryWrapper) c.likeRight((v0) -> { return v0.getCode(); }, key)).or()).likeRight(Func.isNotBlank(key), (v0) -> { return v0.getName(); }, key); }).orderByDesc((v0) -> { return v0.getCreateTime(); }));*/ return StockOutTypeConvert.INSTANCE.convert(page); } private void validTheSame(Long id, String code, String name) { long codeCount = count(Lambda.eq(StockOutType::getCode, code) .eq(StockOutType::getStatus, CommonConstant.ENABLE) .ne(Func.isNotEmpty(id), StockOutType::getId, id)); ThrowFun.isTrue(codeCount > 0).throwMessage(MessageUtils.message("cps.stock.out.type.code.already.exists", new Object[0])); //FIXME 这里不应该是enable吧 long codeCountDisable = count(Lambda.eq(StockOutType::getCode, code) .eq(StockOutType::getStatus, CommonConstant.ENABLE) .ne(Func.isNotEmpty(id), StockOutType::getId, id)); /* long codeCountDisable = count(((ExtraLambdaQueryWrapper) Lambda.eq((v0) -> { return v0.getCode(); }, code).eq((v0) -> { return v0.getStatus(); }, CommonConstant.ENABLE)).ne(Func.isNotEmpty(id), (v0) -> { return v0.getId(); }, id));*/ ThrowFun.isTrue(codeCountDisable > 0).throwMessage(MessageUtils.message("cps.stock.out.type.code.unable.already.exists", new Object[0])); long nameCount = count(Lambda.eq(StockOutType::getName, name) .ne(Func.isNotEmpty(id), StockOutType::getId, id)); ThrowFun.isTrue(nameCount > 0).throwMessage(MessageUtils.message("cps.stock.out.type.name.already.exists", new Object[0])); long nameCountDisable = count(Lambda.eq(StockOutType::getName, name) .ne(Func.isNotEmpty(id), StockOutType::getId, id)); ThrowFun.isTrue(nameCountDisable > 0).throwMessage(MessageUtils.message("cps.stock.out.type.name.unable.already.exists", new Object[0])); } @Override // org.springblade.modules.cps.service.IStockOutTypeService public StockOutTypeVO updateStockOut(StockOutTypeVO vo) { validTheSame(vo.getId(), vo.getCode(), vo.getName()); StockOutType stockOutType = StockOutTypeConvert.INSTANCE.convert(vo); updateById(stockOutType); return StockOutTypeConvert.INSTANCE.convert(stockOutType); } }