From 10713b9a1656897e49a75e121b09e403fa8c00e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Tue, 8 Oct 2024 14:26:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=A1=AE=E8=AE=A4=E7=94=9F?= =?UTF-8?q?=E6=88=90=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessPartTypeApplyRecordController.java | 13 ++++ .../IProcessPartTypeApplyRecordService.java | 2 + ...ProcessPartTypeApplyRecordServiceImpl.java | 78 +++++++++++++++++++ .../laws/part/constans/PartConstants.java | 5 ++ .../impl/LawsPartRelevanceServiceImpl.java | 7 +- 5 files changed, 102 insertions(+), 3 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/part/controller/ProcessPartTypeApplyRecordController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/part/controller/ProcessPartTypeApplyRecordController.java index 43266003..827e487c 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/part/controller/ProcessPartTypeApplyRecordController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/part/controller/ProcessPartTypeApplyRecordController.java @@ -5,6 +5,7 @@ import com.jero.common.api.vo.Result; import com.jero.common.api.vo.ResultCommon; import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.aspect.annotation.Translation; +import com.jero.modules.activiti.process.part.entity.ProcessPartTypeApply; import com.jero.modules.activiti.process.part.entity.ProcessPartTypeApplyRecord; import com.jero.modules.activiti.process.part.service.IProcessPartTypeApplyRecordService; import io.swagger.annotations.Api; @@ -14,6 +15,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.formula.functions.T; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -133,4 +135,15 @@ public class ProcessPartTypeApplyRecordController { this.processPartTypeApplyRecordService.edit(processPartTypeApplyRecord); return Result.OK(ResultCommon.OK); } + /** + * 确认生成 + * @param processPartTypeApplyRecord + */ + @AutoLog(value = "业务支持-关键零部件型号库-确认生成") + @ApiOperation(value="业务支持-关键零部件型号库-确认生成", notes="关键零部件型号库-确认生成") + @PostMapping("/affirmGenerate") + public Result affirmGenerate(@RequestBody ProcessPartTypeApplyRecord processPartTypeApplyRecord) { + return Result.OK(processPartTypeApplyRecordService.affirmGenerate(processPartTypeApplyRecord)); + } + } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/part/service/IProcessPartTypeApplyRecordService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/part/service/IProcessPartTypeApplyRecordService.java index 23138a39..763c2f0c 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/part/service/IProcessPartTypeApplyRecordService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/part/service/IProcessPartTypeApplyRecordService.java @@ -24,4 +24,6 @@ public interface IProcessPartTypeApplyRecordService extends IService queryProcessPartTypeApplyRecord = new QueryWrapper<>(); + queryProcessPartTypeApplyRecord.select("max(part_relevance_type) as part_relevance_type"); + queryProcessPartTypeApplyRecord.likeLeft("part_relevance_type",lawsPartRelevance.getSystemCode()); + ProcessPartTypeApplyRecord max = getOne(queryProcessPartTypeApplyRecord,false); + if(Objects.isNull(max)){ + partRelevanceType = lawsPartRelevance.getSystemCode() + "AAA"; + }else{ + String str = max.getPartRelevanceType().replace(lawsPartRelevance.getSystemCode(),""); + partRelevanceType = lawsPartRelevance.getSystemCode() + generateNext(str); + } + }else{ + // 型号型式不是奇瑞型号的,设计工程师手填 + if(StringUtils.isEmpty(processPartTypeApplyRecord.getPartRelevanceType())){ + throw new JeroBootException((Objects.equals(LocaleContextHolder.getLocale(), Locale.ENGLISH) ? + "关键零部件型号 is not null" : "关键零部件型号不能为空")); + } + partRelevanceType = processPartTypeApplyRecord.getPartRelevanceType(); + } + LambdaUpdateWrapper update = new LambdaUpdateWrapper<>(); + update.eq(ProcessPartTypeApplyRecord::getId,obj.getId()); + update.set(ProcessPartTypeApplyRecord::getPartRelevanceType,partRelevanceType); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + update.set(ProcessPartTypeApplyRecord::getUpdateBy,sysUser.getUsername()); + update.set(ProcessPartTypeApplyRecord::getUpdateTime, new Date()); + update(update); + return partRelevanceType; + } + + /** + * 生成给定字母序列的下一个字母序列。 + * + * @param sequence 当前的三位大写字母序列 + * @return 下一个字母序列 + * @throws IllegalArgumentException 如果输入不是有效的三位大写字母序列 + */ + public static String generateNext(String sequence) { + // 检查输入是否有效 + if (sequence == null || sequence.length() != 3 || !sequence.matches("[A-Z]{3}")) { + throw new IllegalArgumentException("Input must be a 3-character uppercase letter sequence."); + } + + char[] chars = sequence.toCharArray(); + + // 从最后一位开始处理 + for (int i = chars.length - 1; i >= 0; i--) { + if (chars[i] < 'Z') { // 如果当前位不是'Z' + chars[i]++; // 当前位加一 + break; // 结束循环 + } else { // 如果当前位已经是'Z' + chars[i] = 'A'; // 重置当前位为'A' + if (i == 0) { // 如果已经是最左边的一位了,那么整个序列需要回滚到"AAA" + return "AAA"; + } + } + } + + return new String(chars); + } } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/part/constans/PartConstants.java b/laws-modules/src/main/java/com/jero/modules/laws/part/constans/PartConstants.java index 7b63c5d0..c58b26f8 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/part/constans/PartConstants.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/part/constans/PartConstants.java @@ -12,4 +12,9 @@ public class PartConstants { */ public static final String STATUS_2 = "2"; + /** + * 奇瑞型号 + */ + public static final String FORM_TYPE1 = "1"; + } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/part/service/impl/LawsPartRelevanceServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/part/service/impl/LawsPartRelevanceServiceImpl.java index 34d589f7..87fc49cf 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/part/service/impl/LawsPartRelevanceServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/part/service/impl/LawsPartRelevanceServiceImpl.java @@ -13,6 +13,7 @@ import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.ImportExcelUtil; import com.jero.common.util.MessageUtils; +import com.jero.modules.laws.part.constans.PartConstants; import com.jero.modules.laws.part.entity.LawsPartPmmPartitionInfo; import com.jero.modules.laws.part.entity.LawsPartRelevance; import com.jero.modules.laws.part.mapper.LawsPartRelevanceMapper; @@ -113,9 +114,9 @@ public class LawsPartRelevanceServiceImpl extends ServiceImpl formType = Arrays.asList(lawsPartRelevance.getFormType().split(",")); - if (formType.contains("1")) { + if (formType.contains(PartConstants.FORM_TYPE1)) { if (StringUtils.isBlank(lawsPartRelevance.getSystemCode())) { throw new JeroBootException((Objects.equals(LocaleContextHolder.getLocale(), Locale.ENGLISH) ? "功能系统码 cannot be empty" : "功能系统码不能为空")); @@ -224,7 +225,7 @@ public class LawsPartRelevanceServiceImpl extends ServiceImpl formType = Arrays.asList(lawsPartRelevance.getFormType().split(",")); - if(formType.contains("1")){ + if(formType.contains(PartConstants.FORM_TYPE1)){ if(StringUtils.isBlank(lawsPartRelevance.getSystemCode())){ s.append(Objects.equals(LocaleContextHolder.getLocale(),Locale.ENGLISH) ? "功能系统码 cannot be empty," : "功能系统码不能为空,");