From 22305deb8abfa69c7eb9d0246d3c4562a83cf811 Mon Sep 17 00:00:00 2001 From: 86158 <461356067@qq.com> Date: Tue, 6 Jan 2026 17:54:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/recipe/RecipeController.java | 1 + .../admin/recipe/vo/RecipePageReqVO.java | 3 + .../admin/recipe/vo/RecipeRespVO.java | 22 ++++---- .../recipetype/vo/RecipeTypePageReqVO.java | 3 + .../admin/recipetype/vo/RecipeTypeRespVO.java | 14 ++--- .../recipetype/vo/RecipeTypeSaveReqVO.java | 2 +- .../iot/dal/mysql/recipe/RecipeMapper.java | 56 ++++++++++++++++++- .../mysql/recipetype/RecipeTypeMapper.java | 25 ++++++++- .../iot/service/recipe/RecipeServiceImpl.java | 1 + 9 files changed, 102 insertions(+), 25 deletions(-) diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipe/RecipeController.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipe/RecipeController.java index be84fbb309..6eb96d5894 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipe/RecipeController.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipe/RecipeController.java @@ -87,6 +87,7 @@ public class RecipeController { HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List list = recipeService.getRecipePage(pageReqVO).getList(); + PageResult pageResult = recipeService.getRecipePage(pageReqVO); // 导出 Excel ExcelUtils.write(response, "配方管理主.xls", "数据", RecipeRespVO.class, BeanUtils.toBean(list, RecipeRespVO.class)); diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipe/vo/RecipePageReqVO.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipe/vo/RecipePageReqVO.java index ddeabd2d35..bf0957fa35 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipe/vo/RecipePageReqVO.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipe/vo/RecipePageReqVO.java @@ -49,4 +49,7 @@ public class RecipePageReqVO extends PageParam { @Schema(description = "数据单位") private String dataUnit; + @Schema(description = "id集合导出用(多选导出时传逗号分隔的ID)") + private String ids; + } \ No newline at end of file diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipe/vo/RecipeRespVO.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipe/vo/RecipeRespVO.java index 82beec1173..198b7563bf 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipe/vo/RecipeRespVO.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipe/vo/RecipeRespVO.java @@ -13,7 +13,7 @@ import com.alibaba.excel.annotation.*; public class RecipeRespVO { @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "6587") - @ExcelProperty("主键ID") +// @ExcelProperty("主键ID") private Long id; @Schema(description = "配方名称", example = "赵六") @@ -21,43 +21,43 @@ public class RecipeRespVO { private String name; @Schema(description = "配方编码") - @ExcelProperty("配方编码") +// @ExcelProperty("配方编码") private String recipeCode; @Schema(description = "配方类型(关联配方类型表code)", example = "2") - @ExcelProperty("配方类型(关联配方类型表code)") + @ExcelProperty("配方类型(工序)") private String recipeType; @Schema(description = "关联产品名称", example = "李四") - @ExcelProperty("关联产品名称") +// @ExcelProperty("关联产品名称") private String productName; @Schema(description = "关联设备ID(关联iot_device.id)", example = "14725") - @ExcelProperty("关联设备ID(关联iot_device.id)") +// @ExcelProperty("关联设备ID(关联iot_device.id)") private Long machineId; @Schema(description = "关联设备编码(冗余字段)") - @ExcelProperty("关联设备编码(冗余字段)") +// @ExcelProperty("关联设备编码(冗余字段)") private String machineCode; @Schema(description = "关联设备名称(冗余字段)", example = "芋艿") - @ExcelProperty("关联设备名称(冗余字段)") +// @ExcelProperty("关联设备名称(冗余字段)") private String machineName; @Schema(description = "配方描述") - @ExcelProperty("配方描述") + @ExcelProperty("备注") private String recipeDesc; @Schema(description = "是否启用(0-禁用,1-启用)", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("是否启用(0-禁用,1-启用)") +// @ExcelProperty("是否启用(0-禁用,1-启用)") private Boolean isEnable; @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("创建时间") +// @ExcelProperty("创建时间") private LocalDateTime createTime; @Schema(description = "数据单位") - @ExcelProperty("数据单位") +// @ExcelProperty("数据单位") private String dataUnit; } \ No newline at end of file diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipetype/vo/RecipeTypePageReqVO.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipetype/vo/RecipeTypePageReqVO.java index 2555e5be37..4b13bf2552 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipetype/vo/RecipeTypePageReqVO.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipetype/vo/RecipeTypePageReqVO.java @@ -34,4 +34,7 @@ public class RecipeTypePageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; + @Schema(description = "id集合导出用(多选导出时传逗号分隔的ID)") + private String ids; + } \ No newline at end of file diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipetype/vo/RecipeTypeRespVO.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipetype/vo/RecipeTypeRespVO.java index bdbc2442fb..46675ddf36 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipetype/vo/RecipeTypeRespVO.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipetype/vo/RecipeTypeRespVO.java @@ -13,31 +13,31 @@ import com.alibaba.excel.annotation.*; public class RecipeTypeRespVO { @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21350") - @ExcelProperty("主键ID") +// @ExcelProperty("主键ID") private Long id; @Schema(description = "类型编码(唯一标识)") - @ExcelProperty("类型编码(唯一标识)") +// @ExcelProperty("类型编码(唯一标识)") private String code; @Schema(description = "类型名称", example = "张三") - @ExcelProperty("类型名称") + @ExcelProperty("名称") private String name; @Schema(description = "关联工序") - @ExcelProperty("关联工序") + @ExcelProperty("工序") private String process; @Schema(description = "配方类型描述", example = "你说的对") - @ExcelProperty("配方类型描述") + @ExcelProperty("备注") private String remark; @Schema(description = "排序字段", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("排序字段") +// @ExcelProperty("排序字段") private Integer sort; @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("创建时间") +// @ExcelProperty("创建时间") private LocalDateTime createTime; } \ No newline at end of file diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipetype/vo/RecipeTypeSaveReqVO.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipetype/vo/RecipeTypeSaveReqVO.java index 7c911aade7..96b908d86a 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipetype/vo/RecipeTypeSaveReqVO.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipetype/vo/RecipeTypeSaveReqVO.java @@ -25,7 +25,7 @@ public class RecipeTypeSaveReqVO { private String remark; @Schema(description = "排序字段", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "排序字段不能为空") +// @NotNull(message = "排序字段不能为空") private Integer sort; } \ No newline at end of file diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/recipe/RecipeMapper.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/recipe/RecipeMapper.java index 7bdca08e36..38d23ea350 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/recipe/RecipeMapper.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/recipe/RecipeMapper.java @@ -1,7 +1,43 @@ +//package cn.iocoder.yudao.module.iot.dal.mysql.recipe; +// +//import java.util.*; +// +//import cn.iocoder.yudao.framework.common.pojo.PageResult; +//import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +//import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +//import cn.iocoder.yudao.module.iot.dal.dataobject.recipe.RecipeDO; +//import org.apache.ibatis.annotations.Mapper; +//import cn.iocoder.yudao.module.iot.controller.admin.recipe.vo.*; +// +///** +// * 配方管理主 Mapper +// * +// * @author 内蒙必硕 +// */ +//@Mapper +//public interface RecipeMapper extends BaseMapperX { +// +// default PageResult selectPage(RecipePageReqVO reqVO) { +// return selectPage(reqVO, new LambdaQueryWrapperX() +// .likeIfPresent(RecipeDO::getName, reqVO.getName()) +// .eqIfPresent(RecipeDO::getRecipeCode, reqVO.getRecipeCode()) +// .eqIfPresent(RecipeDO::getRecipeType, reqVO.getRecipeType()) +// .likeIfPresent(RecipeDO::getProductName, reqVO.getProductName()) +// .eqIfPresent(RecipeDO::getMachineId, reqVO.getMachineId()) +// .eqIfPresent(RecipeDO::getMachineCode, reqVO.getMachineCode()) +// .likeIfPresent(RecipeDO::getMachineName, reqVO.getMachineName()) +// .eqIfPresent(RecipeDO::getRecipeDesc, reqVO.getRecipeDesc()) +// .eqIfPresent(RecipeDO::getIsEnable, reqVO.getIsEnable()) +// .betweenIfPresent(RecipeDO::getCreateTime, reqVO.getCreateTime()) +// .eqIfPresent(RecipeDO::getDataUnit, reqVO.getDataUnit()) +// .orderByDesc(RecipeDO::getId)); +// } +// +//} package cn.iocoder.yudao.module.iot.dal.mysql.recipe; import java.util.*; - +import com.alibaba.excel.util.StringUtils; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; @@ -9,6 +45,9 @@ import cn.iocoder.yudao.module.iot.dal.dataobject.recipe.RecipeDO; import org.apache.ibatis.annotations.Mapper; import cn.iocoder.yudao.module.iot.controller.admin.recipe.vo.*; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; /** * 配方管理主 Mapper * @@ -18,7 +57,7 @@ import cn.iocoder.yudao.module.iot.controller.admin.recipe.vo.*; public interface RecipeMapper extends BaseMapperX { default PageResult selectPage(RecipePageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() + LambdaQueryWrapperX queryWrapper = new LambdaQueryWrapperX() .likeIfPresent(RecipeDO::getName, reqVO.getName()) .eqIfPresent(RecipeDO::getRecipeCode, reqVO.getRecipeCode()) .eqIfPresent(RecipeDO::getRecipeType, reqVO.getRecipeType()) @@ -30,7 +69,18 @@ public interface RecipeMapper extends BaseMapperX { .eqIfPresent(RecipeDO::getIsEnable, reqVO.getIsEnable()) .betweenIfPresent(RecipeDO::getCreateTime, reqVO.getCreateTime()) .eqIfPresent(RecipeDO::getDataUnit, reqVO.getDataUnit()) - .orderByDesc(RecipeDO::getId)); + .orderByDesc(RecipeDO::getId); + + // 新增:处理ids多选导出条件 + if (StringUtils.isNotBlank(reqVO.getIds())) { + List idList = Arrays.stream(reqVO.getIds().split(",")) + .map(String::trim) + .map(Long::valueOf) + .collect(Collectors.toList()); + queryWrapper.in(RecipeDO::getId, idList); + } + + return selectPage(reqVO, queryWrapper); } } \ No newline at end of file diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/recipetype/RecipeTypeMapper.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/recipetype/RecipeTypeMapper.java index ae4d3bc64e..9f462d916b 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/recipetype/RecipeTypeMapper.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/recipetype/RecipeTypeMapper.java @@ -1,11 +1,16 @@ package cn.iocoder.yudao.module.iot.dal.mysql.recipetype; import java.util.*; +import java.util.stream.Collectors; +import cn.iocoder.yudao.module.iot.controller.admin.recipe.vo.RecipePageReqVO; +import com.alibaba.excel.util.StringUtils; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.iot.dal.dataobject.recipe.RecipeDO; import cn.iocoder.yudao.module.iot.dal.dataobject.recipetype.RecipeTypeDO; +import com.alibaba.excel.util.StringUtils; import org.apache.ibatis.annotations.Mapper; import cn.iocoder.yudao.module.iot.controller.admin.recipetype.vo.*; @@ -18,14 +23,28 @@ import cn.iocoder.yudao.module.iot.controller.admin.recipetype.vo.*; public interface RecipeTypeMapper extends BaseMapperX { default PageResult selectPage(RecipeTypePageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() + LambdaQueryWrapperX queryWrapper = new LambdaQueryWrapperX() +// return selectPage(reqVO, new LambdaQueryWrapperX() .eqIfPresent(RecipeTypeDO::getCode, reqVO.getCode()) .likeIfPresent(RecipeTypeDO::getName, reqVO.getName()) .eqIfPresent(RecipeTypeDO::getProcess, reqVO.getProcess()) .eqIfPresent(RecipeTypeDO::getRemark, reqVO.getRemark()) .eqIfPresent(RecipeTypeDO::getSort, reqVO.getSort()) .betweenIfPresent(RecipeTypeDO::getCreateTime, reqVO.getCreateTime()) - .orderByDesc(RecipeTypeDO::getId)); + .orderByDesc(RecipeTypeDO::getId); + + // 新增:处理ids多选导出条件 + if (StringUtils.isNotBlank(reqVO.getIds())) { + List idList = Arrays.stream(reqVO.getIds().split(",")) + .map(String::trim) + .map(Long::valueOf) + .collect(Collectors.toList()); + queryWrapper.in(RecipeTypeDO::getId, idList); + } + + return selectPage(reqVO, queryWrapper); + + } -} \ No newline at end of file +} diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/recipe/RecipeServiceImpl.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/recipe/RecipeServiceImpl.java index 6a4733a301..ac85f7c5ed 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/recipe/RecipeServiceImpl.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/recipe/RecipeServiceImpl.java @@ -71,4 +71,5 @@ public class RecipeServiceImpl implements RecipeService { return recipeMapper.selectPage(pageReqVO); } + } \ No newline at end of file