package com.qianwen.smartman.modules.trace.service.impl; import java.util.List; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.qianwen.core.log.exception.ServiceException; import com.qianwen.core.mp.base.BaseServiceImpl; 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.CommonGroupConstant; import com.qianwen.smartman.common.enums.CommonGroupTypeEnum; import com.qianwen.smartman.common.utils.MessageUtils; import com.qianwen.smartman.modules.cps.entity.CommonGroupOfItem; import com.qianwen.smartman.modules.cps.service.ICommonGroupOfItemService; import com.qianwen.smartman.modules.trace.convert.NgReasonInfoConvert; import com.qianwen.smartman.modules.trace.entity.NgReasonInfo; import com.qianwen.smartman.modules.trace.mapper.NgReasonInfoMapper; import com.qianwen.smartman.modules.trace.service.INgReasonInfoService; import com.qianwen.smartman.modules.trace.vo.NgReasonInfoSubmitVO; import com.qianwen.smartman.modules.trace.vo.NgReasonInfoUpdateVO; import com.qianwen.smartman.modules.trace.vo.NgReasonInfoVO; @Service /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/trace/service/impl/NgReasonInfoServiceImpl.class */ public class NgReasonInfoServiceImpl extends BaseServiceImpl implements INgReasonInfoService { private final ICommonGroupOfItemService commonGroupOfItemService; private final NgReasonInfoMapper ngReasonInfoMapper; public NgReasonInfoServiceImpl(final ICommonGroupOfItemService commonGroupOfItemService, final NgReasonInfoMapper ngReasonInfoMapper) { this.commonGroupOfItemService = commonGroupOfItemService; this.ngReasonInfoMapper = ngReasonInfoMapper; } @Override // org.springblade.modules.trace.service.INgReasonInfoService public NgReasonInfoVO insert(NgReasonInfoSubmitVO ngReasonInfoSubmitVO) { NgReasonInfo ngReasonInfo = NgReasonInfoConvert.INSTANCE.convertVO(ngReasonInfoSubmitVO); checkNgInfo(ngReasonInfo); save(ngReasonInfo); List items = this.commonGroupOfItemService.list(Wrappers.lambdaQuery().eq(CommonGroupOfItem::getItemId, ngReasonInfo.getId())); if (Func.isNotEmpty(ngReasonInfoSubmitVO.getGroupId()) && Func.isEmpty(items)) { CommonGroupOfItem commonGroupOfItem = new CommonGroupOfItem(ngReasonInfoSubmitVO.getGroupId(), ngReasonInfo.getId(), CommonGroupTypeEnum.NG_REASON.getName(), CommonGroupConstant.DEFAULT_CATEGORY); this.commonGroupOfItemService.save(commonGroupOfItem); } NgReasonInfoVO ngReasonInfoVO = NgReasonInfoConvert.INSTANCE.convertSaveVO(ngReasonInfoSubmitVO); return ngReasonInfoVO; } @Override // org.springblade.modules.trace.service.INgReasonInfoService public IPage listPage(IPage page, Long groupId) { if (CommonGroupConstant.NG_ROOT.equals(groupId)) { return this.ngReasonInfoMapper.listPage(page, null); } return this.ngReasonInfoMapper.listPage(page, groupId); } @Override // org.springblade.modules.trace.service.INgReasonInfoService public Boolean delete(List ids) { this.commonGroupOfItemService.remove(Wrappers.lambdaQuery().in(CommonGroupOfItem::getItemId, ids)); /* this.commonGroupOfItemService.remove((Wrapper) Wrappers.lambdaQuery().in((v0) -> { return v0.getItemId(); }, ids));*/ return Boolean.valueOf(removeByIds(ids)); } @Override // org.springblade.modules.trace.service.INgReasonInfoService @Transactional(rollbackFor = {Exception.class}) public NgReasonInfoVO update(NgReasonInfoUpdateVO ngReasonInfoUpdateVO) { NgReasonInfo ngReasonInfo = NgReasonInfoConvert.INSTANCE.convertVO(ngReasonInfoUpdateVO); checkNgInfo(ngReasonInfo); NgReasonInfo old = (NgReasonInfo) getById(ngReasonInfo.getId()); if (Func.isNotEmpty(ngReasonInfo.getReasonCode())) { ngReasonInfo.setReasonCode(old.getReasonCode()); } updateById(ngReasonInfo); return NgReasonInfoConvert.INSTANCE.convert(ngReasonInfo); } @Override // org.springblade.modules.trace.service.INgReasonInfoService public Boolean isReasonCodeRepeat(Long id, String code) { long count = count(Wrappers.lambdaQuery().ne(Func.isNotEmpty(id), NgReasonInfo::getId, id).eq(NgReasonInfo::getReasonCode, code)); /* long count = count((Wrapper) Wrappers.lambdaQuery().ne(Func.isNotEmpty(id), (v0) -> { return v0.getId(); }, id).eq((v0) -> { return v0.getReasonCode(); }, code));*/ return Boolean.valueOf(count > 0); } @Override // org.springblade.modules.trace.service.INgReasonInfoService public IPage pageNotUse(Long groupId, Long recordId, Query query) { return this.ngReasonInfoMapper.pageNotUse(Condition.getPage(query), groupId, recordId); } private void checkNgInfo(NgReasonInfo ngReasonInfo) { if (Func.isNotEmpty(ngReasonInfo.getReasonCode()) && ngReasonInfo.getReasonCode().length() > 24) { throw new ServiceException(MessageUtils.message("cps.ng.reasoncode.length.too.long", new Object[0])); } Long count = Long.valueOf(count(Wrappers.lambdaQuery().ne(Func.isNotEmpty(ngReasonInfo.getId()), NgReasonInfo::getId, ngReasonInfo.getId()) .eq(NgReasonInfo::getReasonCode, ngReasonInfo.getReasonCode()))); /* Long count = Long.valueOf(count((Wrapper) Wrappers.lambdaQuery().ne(Func.isNotEmpty(ngReasonInfo.getId()), (v0) -> { return v0.getId(); }, ngReasonInfo.getId()).eq((v0) -> { return v0.getReasonCode(); }, ngReasonInfo.getReasonCode())));*/ if (count.longValue() > 0) { throw new ServiceException(MessageUtils.message("cps.ng.reasoncode.already.exists", new Object[0])); } } }