package com.qianwen.smartman.modules.cps.service.impl; import com.alibaba.excel.write.merge.AbstractMergeStrategy; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import java.lang.invoke.SerializedLambda; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.qianwen.smartman.common.cache.RegionCache; import com.qianwen.smartman.common.constant.CommonConstant; import com.qianwen.smartman.common.constant.ExcelConstant; import com.qianwen.smartman.common.enums.StatusType; import com.qianwen.smartman.common.utils.MessageUtils; import com.qianwen.smartman.common.utils.ValidatorUtils; import com.qianwen.core.excel.util.ExcelUtil; 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.oss.model.BladeFile; import com.qianwen.core.tool.utils.Func; import com.qianwen.smartman.modules.cps.convert.ProcessConvert; import com.qianwen.smartman.modules.cps.entity.Process; import com.qianwen.smartman.modules.cps.enums.WorkTypeEnum; import com.qianwen.smartman.modules.cps.excel.ProcessExcel; import com.qianwen.smartman.modules.cps.excel.ProcessImport; import com.qianwen.smartman.modules.cps.mapper.ProcessMapper; import com.qianwen.smartman.modules.cps.service.IProcessAssociationService; import com.qianwen.smartman.modules.cps.service.IProcessService; import com.qianwen.smartman.modules.cps.utils.ThrowFun; import com.qianwen.smartman.modules.cps.vo.ProcessDetailVO; import com.qianwen.smartman.modules.cps.vo.ProcessSaveVO; import com.qianwen.smartman.modules.cps.vo.ProcessVO; import com.qianwen.smartman.modules.resource.builder.oss.OssBuilder; import com.qianwen.smartman.modules.system.entity.Dict; import com.qianwen.smartman.modules.system.service.ICodeGeneratorService; import com.qianwen.smartman.modules.system.service.IDictService; import com.qianwen.smartman.modules.tpm.enums.MetaTypeEnum; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; @Service /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/cps/service/impl/ProcessServiceImpl.class */ public class ProcessServiceImpl extends BladeServiceImpl implements IProcessService { private static final Logger log = LoggerFactory.getLogger(ProcessServiceImpl.class); private final IProcessAssociationService processAssociationService; private final OssBuilder ossBuilder; private final ProcessMapper processMapper; private final IDictService dictService; private final ICodeGeneratorService codeGeneratorService; private static /* synthetic */ Object $deserializeLambda$(SerializedLambda lambda) { String implMethodName = lambda.getImplMethodName(); boolean z = true; switch (implMethodName.hashCode()) { case -1601031533: if (implMethodName.equals("getDictKey")) { z = false; break; } break; case -1104365260: if (implMethodName.equals("getProcessId")) { z = true; break; } break; case -982980443: if (implMethodName.equals("getDictValue")) { z = true; break; } break; case -75622813: if (implMethodName.equals("getCode")) { z = true; break; } break; case 98245393: if (implMethodName.equals("getId")) { z = true; break; } break; case 803533544: if (implMethodName.equals("getStatus")) { z = true; break; } break; case 1567138533: if (implMethodName.equals("getIsImport")) { z = true; break; } break; } switch (z) { case false: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/Dict") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getDictKey(); }; } break; case true: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/ProcessAssociation") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getProcessId(); }; } break; case true: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getId(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getId(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getId(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getId(); }; } break; case true: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Integer;")) { return (v0) -> { return v0.getStatus(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Integer;")) { return (v0) -> { return v0.getStatus(); }; } break; case true: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/Dict") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getDictValue(); }; } break; case RegionCache.VILLAGE_LEVEL /* 5 */: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/Dict") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getCode(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/Process") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getCode(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/Process") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getCode(); }; } break; case true: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/Process") && lambda.getImplMethodSignature().equals("()Ljava/lang/Integer;")) { return (v0) -> { return v0.getIsImport(); }; } break; } throw new IllegalArgumentException("Invalid lambda deserialization"); } public ProcessServiceImpl(final IProcessAssociationService processAssociationService, final OssBuilder ossBuilder, final ProcessMapper processMapper, final IDictService dictService, final ICodeGeneratorService codeGeneratorService) { this.processAssociationService = processAssociationService; this.ossBuilder = ossBuilder; this.processMapper = processMapper; this.dictService = dictService; this.codeGeneratorService = codeGeneratorService; } @Override // org.springblade.modules.cps.service.IProcessService public IPage listPage(Query query, String keyword, Integer status) { IPage page = Condition.getPage(query); page.setRecords(ProcessConvert.INSTANCE.convertDTO2ListPage(this.processMapper.listPage(page, keyword, status))); return page; } @Override // org.springblade.modules.cps.service.IProcessService @Transactional(rollbackFor = {Exception.class}) public ProcessDetailVO insert(ProcessSaveVO vo) { if (Func.isBlank(vo.getCode())) { String code = this.codeGeneratorService.getGeneratorCode(vo, MetaTypeEnum.PROCESS.getCode()); log.info("工序编码规则生成的code:{}", code + " ," + code.length()); vo.setCode(code); } checkProcess(vo); Process process = ProcessConvert.INSTANCE.convert(vo); Long id = vo.getId(); if (Func.isNull(id)) { save(process); } else { Process p = (Process) getById(vo.getId()); Integer type = vo.getType(); if (!p.getType().equals(type)) { throw new ServiceException(MessageUtils.message("cps.process.type.not.change", new Object[0])); } updateById(process); } return ProcessConvert.INSTANCE.convertDetail(process); } @Override // org.springblade.modules.cps.service.IProcessService public ProcessDetailVO getDetail(Long processId) { ProcessDetailVO processDetailVO = this.processMapper.selectByIdWithType(processId); return processDetailVO; } @Override // org.springblade.modules.cps.service.IProcessService @Transactional(rollbackFor = {Exception.class}) public Boolean delete(List processIds, Integer type) { if (StatusType.REMOVE.getType().equals(type)) { int count = this.baseMapper.existCraftProcess(processIds); ThrowFun.isTrue(count > 0).throwMessage(MessageUtils.message("cps.process.binding.craft", new Object[0])); this.processAssociationService.remove(Wrappers.query().lambda().in(Func.isNotEmpty(processIds), (v0) -> { return v0.getProcessId(); }, processIds)); remove(Wrappers.query().lambda().in(Func.isNotEmpty(processIds), (v0) -> { return v0.getId(); }, processIds)); return true; } return Boolean.valueOf(changeStatus(processIds, CommonConstant.DEACTIVATE)); } @Override // org.springblade.modules.cps.service.IProcessService @Transactional(rollbackFor = {Exception.class}) public BladeFile importProcess(List data) { if (Func.isEmpty(data)) { throw new ServiceException(MessageUtils.message("excel.import.data.can.not.be.null", new Object[0])); } if (data.size() > 200) { throw new ServiceException(MessageUtils.message("excel.import.size.failed", new Object[0])); } HashMap codeMap = new HashMap<>(16); List processList = list(); if (Func.isNotEmpty(processList)) { processList.forEach(x -> { if (CommonConstant.ENABLE.equals(x.getStatus())) { codeMap.put(x.getCode(), null); } }); } Set codeDisableSet = (Set) processList.stream().filter(c -> { return CommonConstant.DEACTIVATE.equals(c.getStatus()); }).map((v0) -> { return v0.getCode(); }).collect(Collectors.toSet()); Map dictMap = new HashMap<>(16); List dictList = this.dictService.list((Wrapper) Wrappers.lambdaQuery().select(new SFunction[]{(v0) -> { return v0.getDictKey(); }, (v0) -> { return v0.getDictValue(); }}).eq((v0) -> { return v0.getCode(); }, "work_type")); if (Func.isNotEmpty(dictList)) { dictMap = (Map) dictList.stream().collect(Collectors.toMap((v0) -> { return v0.getDictValue(); }, (v0) -> { return v0.getDictKey(); })); } boolean flag = Boolean.TRUE.booleanValue(); for (ProcessImport datum : data) { checkImportProcess(datum, codeMap, codeDisableSet, dictMap); if (Func.isNotEmpty(datum.getFailReason())) { flag = Boolean.FALSE.booleanValue(); } } if (!flag) { MultipartFile multipartFile = ExcelUtil.exportFillTemplateToMultipartFile(ExcelConstant.DIRECTORY + "processFailTemplate" + ExcelConstant.SUFFIX, MessageUtils.message("excel.import.failed.report.name", new Object[0]) + ExcelConstant.SUFFIX, "工序信息表", (List) data.stream().filter(x2 -> { return Func.isNotEmpty(x2.getFailReason()); }).collect(Collectors.toList()), (Object) null, (AbstractMergeStrategy) null); return this.ossBuilder.tempTemplate().putFile(multipartFile.getOriginalFilename(), multipartFile); } data.forEach(x3 -> { Process process = ProcessConvert.INSTANCE.convert(x3); process.setIsImport(1); saveOrUpdate(process); }); return null; } @Override // org.springblade.modules.cps.service.IProcessService public List listProcessExcel(String keyword, Integer status) { return this.baseMapper.listProcessExcel(keyword, status); } private void checkProcess(ProcessSaveVO processSaveVO) { long count = count((Wrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().ne(Func.isNotEmpty(processSaveVO.getId()), (v0) -> { return v0.getId(); }, processSaveVO.getId()).eq((v0) -> { return v0.getCode(); }, processSaveVO.getCode())).eq((v0) -> { return v0.getStatus(); }, CommonConstant.ENABLE)); if (count > 0) { throw new ServiceException(MessageUtils.message("cps.process.code.already.exists", new Object[0])); } long countDisable = count((Wrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().ne(Func.isNotEmpty(processSaveVO.getId()), (v0) -> { return v0.getId(); }, processSaveVO.getId()).eq((v0) -> { return v0.getCode(); }, processSaveVO.getCode())).eq((v0) -> { return v0.getStatus(); }, CommonConstant.ENABLE)); if (countDisable > 0) { throw new ServiceException(MessageUtils.message("cps.process.code.disable.already.exists", new Object[0])); } if (WorkTypeEnum.HANDLE.getCode().equals(processSaveVO.getType())) { throw new ServiceException(MessageUtils.message("cps.process.type.can.not.handle", new Object[0])); } } private void checkImport(List ids) { Long count = Long.valueOf(count((Wrapper) Wrappers.query().lambda().in(Func.isNotEmpty(ids), (v0) -> { return v0.getId(); }, ids).eq((v0) -> { return v0.getIsImport(); }, 1))); if (count.longValue() > 0) { throw new ServiceException(MessageUtils.message("cps.process.delete.failed", new Object[0])); } } private void checkImportProcess(ProcessImport processImport, HashMap codeMap, Set codeDisableSet, Map dictMap) { if (Func.isEmpty(processImport.getCode())) { processImport.setFailReason(MessageUtils.message("cps.process.code.can.not.be.null", new Object[0])); } else if (codeMap.containsKey(processImport.getCode())) { processImport.setFailReason(MessageUtils.message("cps.process.code.already.exists", new Object[0])); } else if (codeDisableSet.contains(processImport.getCode())) { processImport.setFailReason(MessageUtils.message("cps.process.code.disable.already.exists", new Object[0])); } else if (ValidatorUtils.checkContextLength(processImport.getCode())) { processImport.setFailReason(MessageUtils.message("cps.process.column.code.can.not.exceed", new Object[0])); } else { codeMap.put(processImport.getCode(), null); if (Func.isEmpty(processImport.getName())) { processImport.setFailReason(MessageUtils.message("cps.process.name.can.not.be.null", new Object[0])); } else if (ValidatorUtils.checkContextLength(processImport.getName())) { processImport.setFailReason(MessageUtils.message("cps.process.column.name.can.not.exceed", new Object[0])); } else if (Func.isNotEmpty(processImport.getTypeName()) && ValidatorUtils.checkContextLength(processImport.getTypeName())) { processImport.setFailReason(MessageUtils.message("cps.process.column.type.can.not.exceed", new Object[0])); } else if (Func.isNotEmpty(processImport.getDescription()) && ValidatorUtils.checkContextLength(processImport.getDescription())) { processImport.setFailReason(MessageUtils.message("cps.process.column.description.can.not.exceed", new Object[0])); } else if (Func.isNotEmpty(processImport.getTypeName()) && !dictMap.containsKey(processImport.getTypeName())) { processImport.setFailReason(MessageUtils.message("cps.process.column.type.not.exist", new Object[0])); } else if (Func.isNotEmpty(processImport.getTypeName())) { processImport.setType(Integer.valueOf(dictMap.get(processImport.getTypeName()))); } } } }