package com.qianwen.smartman.modules.andon.service.impl; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; import com.google.common.collect.Lists; import java.lang.invoke.SerializedLambda; import java.util.List; import com.qianwen.smartman.common.cache.RegionCache; import com.qianwen.smartman.common.utils.Lambda; import com.qianwen.smartman.common.utils.MessageUtils; import com.qianwen.core.log.exception.ServiceException; 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.modules.andon.convert.AndonReasonConvert; import com.qianwen.smartman.modules.andon.entity.AndonReason; import com.qianwen.smartman.modules.andon.mapper.AndonReasonMapper; import com.qianwen.smartman.modules.andon.service.IAndonReasonService; import com.qianwen.smartman.modules.andon.vo.AndonReasonSaveVO; import com.qianwen.smartman.modules.andon.vo.AndonReasonUpdateVO; import com.qianwen.smartman.modules.andon.vo.AndonReasonVO; import com.qianwen.smartman.modules.cps.vo.IdsVO; import com.qianwen.smartman.modules.system.service.ICodeGeneratorService; import com.qianwen.smartman.modules.tpm.enums.MetaTypeEnum; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/andon/service/impl/AndonReasonServiceImpl.class */ public class AndonReasonServiceImpl extends BladeServiceImpl implements IAndonReasonService { private final ICodeGeneratorService codeGeneratorService; public AndonReasonServiceImpl(ICodeGeneratorService codeGeneratorService) { this.codeGeneratorService = codeGeneratorService; } public IPage pageQuery(Query query, String typeId) { IPage page = page(Condition.getPage(query), Lambda.eq(AndonReason::getAndonTypeId, typeId) .orderByDesc(AndonReason::getCreateTime, AndonReason::getCode)); return AndonReasonConvert.INSTANCE.convert(page); } @Override // org.springblade.modules.andon.service.IAndonReasonService public AndonReasonVO addReason(AndonReasonSaveVO vo) { reasonCodeGenerator(vo); checkDuplicateCode(vo.getCode()); AndonReason reason = new AndonReason().setAndonTypeId(vo.getAndonTypeId()).setCode(vo.getCode()).setName(vo.getName()).setRemark(vo.getRemark()); save(reason); return AndonReasonConvert.INSTANCE.convert(reason); } @Override // org.springblade.modules.andon.service.IAndonReasonService public Boolean updateReason(AndonReasonUpdateVO vo) { int nums = this.baseMapper.recordsReason(Lists.newArrayList(new Long[]{vo.getId()})); if (nums > 0) { throw new ServiceException(MessageUtils.message("andon.type.reason.not.update", new Object[0])); } //Lambda.updateWrapper(this.baseMapper).set(AndonReason::getName, vo.getName()).set(AndonReason::getRemark, vo.getRemark()).eq(AndonReason::getId, vo.getId()).update(); return Lambda.updateWrapper(this.baseMapper).set(AndonReason::getName, vo.getName()).set(AndonReason::getRemark, vo.getRemark()).eq(AndonReason::getId, vo.getId()).update(); //Boolean.valueOf(((LambdaUpdateChainWrapper)((LambdaUpdateChainWrapper)((LambdaUpdateChainWrapper)Lambda.updateWrapper(this.baseMapper).set(AndonReason::getName, vo.getName())).set(AndonReason::getRemark, vo.getRemark())).eq(BaseEntity::getId, vo.getId())).update()); } @Override // org.springblade.modules.andon.service.IAndonReasonService @Transactional(rollbackFor = {Exception.class}) public Boolean removeReason(IdsVO vo) { List ids = Func.toLongList(vo.getIds()); int nums = this.baseMapper.recordsReason(ids); if (nums > 0) { throw new ServiceException(MessageUtils.message("andon.type.reason.not.remove", new Object[0])); } return Boolean.valueOf(removeBatchByIds(ids)); } private void reasonCodeGenerator(AndonReasonSaveVO vo) { if (Func.isBlank(vo.getCode())) { String code = this.codeGeneratorService.getGeneratorCode(vo, MetaTypeEnum.ANDON_REASON_TYPE.getCode()); if (Func.isBlank(code)) { throw new ServiceException(MessageUtils.message("cps.tpm.maintain.coding.rules", new Object[0])); } vo.setCode(code); } } private void checkDuplicateCode(String code) { List list = list(Lambda.eq((v0) -> { return v0.getCode(); }, code)); if (Func.isNotEmpty(list)) { throw new ServiceException(MessageUtils.message("andon.type.reason.code.dub", new Object[0])); } } }