diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjitem/ZjItemController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjitem/ZjItemController.java index afa340db26..898839a0e2 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjitem/ZjItemController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjitem/ZjItemController.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.mes.controller.admin.zjitem; +import cn.iocoder.yudao.module.mes.dal.dataobject.deviceledger.DeviceLedgerDO; import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.common.util.collection.MapUtils; import cn.iocoder.yudao.module.mes.controller.admin.plan.vo.PlanRespVO; @@ -98,6 +99,14 @@ public class ZjItemController { }); } + @GetMapping("/list") + @Operation(summary = "获得检验项目列表") + @PreAuthorize("@ss.hasPermission('mes:zj-item:query')") + public CommonResult> getZjItemList() { + List zjItemDOList = zjItemService.getZjItemList(); + return success(zjItemDOList); + } + @GetMapping("/export-excel") @Operation(summary = "导出质量管理-检验项目 Excel") @PreAuthorize("@ss.hasPermission('mes:zj-item:export')") diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjschema/ZjSchemaController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjschema/ZjSchemaController.java index fcb80541a3..2d80b914aa 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjschema/ZjSchemaController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjschema/ZjSchemaController.java @@ -1,5 +1,8 @@ package cn.iocoder.yudao.module.mes.controller.admin.zjschema; +import cn.iocoder.yudao.module.mes.controller.admin.zjitem.vo.ZjItemRespVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.zjitem.ZjItemDO; +import cn.iocoder.yudao.module.mes.service.zjitem.ZjItemService; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -13,6 +16,7 @@ import javax.validation.*; import javax.servlet.http.*; import java.util.*; import java.io.IOException; +import java.util.stream.Collectors; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; @@ -37,6 +41,8 @@ public class ZjSchemaController { @Resource private ZjSchemaService zjSchemaService; + @Resource + private ZjItemService zjitemService; @PostMapping("/create") @Operation(summary = "创建检验方案") @@ -92,4 +98,35 @@ public class ZjSchemaController { BeanUtils.toBean(list, ZjSchemaRespVO.class)); } + @GetMapping("/getItemList") + @Operation(summary = "获得检验方案关联的项目列表") + @Parameter(name = "id", description = "检验方案编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('mes:zj-schema:query')") + public CommonResult> getItemList(@RequestParam("id") Long id) { + // 1. 查询检验方案主记录 + ZjSchemaDO zjSchema = zjSchemaService.getZjSchema(id); + if (zjSchema == null) { + return success(Collections.emptyList()); // 或抛出业务异常,根据项目规范调整 + } + + // 2. 解析item字段(处理空值和空字符串) + String itemStr = zjSchema.getItem(); + if (itemStr == null || itemStr.trim().isEmpty()) { + return success(Collections.emptyList()); + } + + // 3. 分割字符串并转换为Long类型的项目ID列表 + List itemIds = Arrays.stream(itemStr.split(",")) + .map(String::trim) // 去除空格 + .filter(str -> !str.isEmpty()) // 过滤空字符串 + .map(Long::valueOf) // 转换为Long + .collect(Collectors.toList()); + + // 4. 查询所有关联的项目信息(请根据实际项目调整Service方法) + List itemList = zjitemService.getItemsByIds(itemIds); + + // 5. 转换为VO并返回 + return success(BeanUtils.toBean(itemList, ZjItemRespVO.class)); + } + } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjschema/vo/ZjSchemaPageReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjschema/vo/ZjSchemaPageReqVO.java index a0a2fa12a8..9c6f96c3bb 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjschema/vo/ZjSchemaPageReqVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjschema/vo/ZjSchemaPageReqVO.java @@ -28,7 +28,7 @@ public class ZjSchemaPageReqVO extends PageParam { private String sampleMethod; @Schema(description = "值") - private Long val; + private String val; @Schema(description = "关联项目") private String item; diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjschema/vo/ZjSchemaRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjschema/vo/ZjSchemaRespVO.java index f40643d633..e2a74b0b1e 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjschema/vo/ZjSchemaRespVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjschema/vo/ZjSchemaRespVO.java @@ -1,5 +1,8 @@ package cn.iocoder.yudao.module.mes.controller.admin.zjschema.vo; +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; +import com.alibaba.excel.annotation.write.style.ColumnWidth; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -12,8 +15,13 @@ import com.alibaba.excel.annotation.*; @ExcelIgnoreUnannotated public class ZjSchemaRespVO { + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "18846") + @ExcelProperty("ID") + private Long id; + @Schema(description = "类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") - @ExcelProperty("类型") + @ExcelProperty(value = "类型", converter = DictConvert.class) + @DictFormat("mes_zj_schema_type") private String type; @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") @@ -25,12 +33,13 @@ public class ZjSchemaRespVO { private String remark; @Schema(description = "抽检方式") - @ExcelProperty("抽检方式") + @ExcelProperty(value = "抽检方式", converter = DictConvert.class) + @DictFormat("mes_zj_schema_sample_method") private String sampleMethod; @Schema(description = "值") @ExcelProperty("值") - private Long val; + private String val; @Schema(description = "关联项目") @ExcelProperty("关联项目") @@ -38,6 +47,7 @@ public class ZjSchemaRespVO { @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("创建时间") + @ColumnWidth(20) private LocalDateTime createTime; } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjschema/vo/ZjSchemaSaveReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjschema/vo/ZjSchemaSaveReqVO.java index fc2b6d105e..caa710f454 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjschema/vo/ZjSchemaSaveReqVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjschema/vo/ZjSchemaSaveReqVO.java @@ -28,7 +28,7 @@ public class ZjSchemaSaveReqVO { private String sampleMethod; @Schema(description = "值") - private Long val; + private String val; @Schema(description = "关联项目") private String item; diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/zjschema/ZjSchemaDO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/zjschema/ZjSchemaDO.java index fa6607a97d..fe7a29e008 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/zjschema/ZjSchemaDO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/zjschema/ZjSchemaDO.java @@ -46,7 +46,7 @@ public class ZjSchemaDO extends BaseDO { /** * 值 */ - private Long val; + private String val; /** * 关联项目 */ diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/zjitem/ZjItemService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/zjitem/ZjItemService.java index 047a4f10a7..633be6604e 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/zjitem/ZjItemService.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/zjitem/ZjItemService.java @@ -4,6 +4,7 @@ import java.util.*; import javax.validation.*; import cn.iocoder.yudao.module.mes.controller.admin.zjitem.vo.*; import cn.iocoder.yudao.module.mes.dal.dataobject.organization.OrganizationDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.deviceledger.DeviceLedgerDO; import cn.iocoder.yudao.module.mes.dal.dataobject.zjitem.ZjItemDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; @@ -54,4 +55,15 @@ public interface ZjItemService { * @return 质量管理-检验项目分页 */ PageResult getZjItemPage(ZjItemPageReqVO pageReqVO); + + List getZjItemList(); + + /** + * 根据多个ID批量查询检验项目 + * + * @param ids 检验项目ID列表 + * @return 检验项目列表 + */ + List getItemsByIds(Collection ids); + } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/zjitem/ZjItemServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/zjitem/ZjItemServiceImpl.java index f0eb770e52..129bfe3dd9 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/zjitem/ZjItemServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/zjitem/ZjItemServiceImpl.java @@ -2,6 +2,8 @@ package cn.iocoder.yudao.module.mes.service.zjitem; import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.module.mes.dal.dataobject.organization.OrganizationDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.deviceledger.DeviceLedgerDO; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -72,4 +74,23 @@ public class ZjItemServiceImpl implements ZjItemService { public PageResult getZjItemPage(ZjItemPageReqVO pageReqVO) { return zjItemMapper.selectPage(pageReqVO); } + + @Override + public List getZjItemList() { + return zjItemMapper.selectList(); + } + + @Override + public List getItemsByIds(Collection ids) { + // 1. 空值校验:如果传入的ID列表为空,直接返回空列表 + if (ids == null || ids.isEmpty()) { + return Collections.emptyList(); + } + // 2. 使用MyBatis-Plus的in查询,批量获取项目记录 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(ZjItemDO::getId, ids); + // 3. 返回查询结果 + return zjItemMapper.selectList(queryWrapper); + } + } \ No newline at end of file