diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionTemplateVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionTemplateVO.java index 93c5ca0ef..8666736ec 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionTemplateVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionTemplateVO.java @@ -32,4 +32,7 @@ public class InspectionTemplateVO extends InspectionTemplate { @Schema(description = "明细List") private List detailList; + + @Schema(description = "子集") + List children; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProModelServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProModelServiceImpl.java index a26b7948f..e253f2fa5 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProModelServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProModelServiceImpl.java @@ -375,30 +375,6 @@ public class DsProModelServiceImpl extends BaseServiceImpl getModelList() { -// List dsProModelVOList = proModelMapper.selectDsProModelAll(); -// if(CollectionUtils.isEmpty(dsProModelVOList)){ -// return List.of(); -// } -// for (DsProModelVO dsProModelVO : dsProModelVOList) { -// if (dsProModelVO.getPlatingType() != null) { -// try { -// BasicClazz basicClazz = basicClazzService.getById(dsProModelVO.getPlatingType()); -// if (basicClazz != null) { -// dsProModelVO.setPlatingTypeStr(basicClazz.getName()); -// } -// } catch (Exception e) { -// log.error("查询电镀类型失败, platingType: {}", dsProModelVO.getPlatingType(), e); -// } -// } -// } -// -// //然后想根据镀种分类做成二级结构platingType -// -// -// return null; -// } @Override public List getModelList() { diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/InspectionTemplateController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/InspectionTemplateController.java index 6a101869a..8bcc9be66 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/InspectionTemplateController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/InspectionTemplateController.java @@ -31,6 +31,7 @@ import org.springblade.desk.basic.constant.BaseRequest; import org.springblade.desk.basic.util.ExcelExtUtil; import org.springblade.desk.basic.util.QueryUtils; import org.springblade.desk.basic.util.RequestUtil; +import org.springblade.desk.dashboard.pojo.vo.DsProModelVO; import org.springblade.desk.quality.constant.QAModuleConst; import org.springblade.desk.quality.excel.InspectionTemplateExcel; import org.springblade.desk.quality.pojo.entity.InspectionTemplate; @@ -153,6 +154,17 @@ public class InspectionTemplateController extends BladeController { return R.data(pagesVO); } + /** + * 检验模板 + */ + @GetMapping("/getInspectionTemplateList") + @ApiOperationSupport(order = 1) + @Operation(summary = "所有检验模版", description = "") + public R> getInspectionTemplateList() { + List inspectionTemplateVOList = service.getInspectionTemplateList(); + return R.data(inspectionTemplateVOList); + } + /** * [检验模板] page分页 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTemplateMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTemplateMapper.java index 8746aafe8..9cfc7006d 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTemplateMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTemplateMapper.java @@ -40,4 +40,6 @@ public interface InspectionTemplateMapper extends BaseMapper List exportInspectionTemplate(@Param("ew") Wrapper queryWrapper); List listSearch(IPage page, @Param("q") InspectionTemplateSearch search); + + List selectAll(); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTemplateMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTemplateMapper.xml index dde1b88a2..694212ce0 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTemplateMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTemplateMapper.xml @@ -58,4 +58,9 @@ AND t.UPDATE_TIME <= #{q.updateTimeEnd} + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IInspectionTemplateService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IInspectionTemplateService.java index 6c3c5e9c4..c891bef28 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IInspectionTemplateService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IInspectionTemplateService.java @@ -46,4 +46,6 @@ public interface IInspectionTemplateService extends BaseService listSearch(IPage page, InspectionTemplateSearch search); + + List getInspectionTemplateList(); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTemplateServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTemplateServiceImpl.java index 536a3fc3d..c9b9f83c2 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTemplateServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTemplateServiceImpl.java @@ -5,6 +5,7 @@ package org.springblade.desk.quality.service.impl; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import jakarta.annotation.Resource; import lombok.AllArgsConstructor; import lombok.Data; @@ -13,7 +14,9 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.tool.api.R; +import org.springblade.desk.basic.pojo.entity.BasicClazz; import org.springblade.desk.basic.util.QueryUtils; +import org.springblade.desk.dashboard.pojo.vo.DsProModelVO; import org.springblade.desk.quality.excel.InspectionTemplateExcel; import org.springblade.desk.quality.mapper.InspectionTemplateMapper; import org.springblade.desk.quality.pojo.entity.InspectionTemplate; @@ -26,7 +29,12 @@ import org.springblade.system.feign.IDictClient; import org.springblade.system.feign.IUserClient; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; /** * [检验模板] 服务实现类 @@ -80,4 +88,84 @@ public class InspectionTemplateServiceImpl extends BaseServiceImpl listSearch(IPage page, InspectionTemplateSearch search) { return page.setRecords(baseMapper.listSearch(page, search)); } + + @Override + public List getInspectionTemplateList() { + List inspectionTemplateVOList = baseMapper.selectAll(); + if (CollectionUtils.isEmpty(inspectionTemplateVOList)) { + return List.of(); + } + + // 1. 按照类别分类构建二级结构(包括category为null的情况) + Map> groupByCategory = inspectionTemplateVOList.stream() + .collect(Collectors.groupingBy(vo -> vo.getCategory() == null ? "null" : vo.getCategory())); + + // 2. 构建二级结构的返回列表 + List result = new ArrayList<>(); + + for (Map.Entry> entry : groupByCategory.entrySet()) { + String categoryKey = entry.getKey(); + List children = entry.getValue(); + + if (CollectionUtils.isNotEmpty(children)) { + // 创建父节点(类别分类) + InspectionTemplateVO parent = new InspectionTemplateVO(); + + // 判断是否为null的分类 + if ("null".equals(categoryKey)) { + parent.setCategory(null); + parent.setCategoryName("未分类"); + } else { + parent.setCategory(categoryKey); + } + parent.setChildren(children); + + result.add(parent); + } + } + + // 3. 设置类别名称 + for (InspectionTemplateVO vo : result) { + if (vo.getCategory() != null) { + try { + R dicR = dictClient.getValue("InspectionTemplate-Category", vo.getCategory()); + if (dicR != null && dicR.getData() != null) { + vo.setCategoryName(dicR.getData()); + } + } catch (Exception e) { + log.error("查询类别名称失败, category: {}", vo.getCategory(), e); + } + } + } + + // 4. 按英文部分排序 + result.sort((o1, o2) -> { + String str1 = o1.getCategoryName(); + String str2 = o2.getCategoryName(); + + if ("未分类".equals(str1)) return 1; + if ("未分类".equals(str2)) return -1; + + String english1 = extractEnglishPrefix(str1); + String english2 = extractEnglishPrefix(str2); + + if (english1 == null && english2 == null) return 0; + if (english1 == null) return 1; + if (english2 == null) return -1; + + return english1.compareTo(english2); + }); + + return result; + } + + // 辅助方法:提取英文前缀 + private String extractEnglishPrefix(String str) { + if (str == null) return null; + Matcher matcher = Pattern.compile("^([A-Za-z]+)").matcher(str); + if (matcher.find()) { + return matcher.group(1); + } + return str; + } }