diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/MoldBrandController.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/MoldBrandController.java index a6386615d3..21b8ac9330 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/MoldBrandController.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/MoldBrandController.java @@ -13,6 +13,7 @@ import cn.iocoder.yudao.module.common.dal.dataobject.mold.MoldBrandDO; import cn.iocoder.yudao.module.common.dal.dataobject.mold.MoldBrandProductDO; import cn.iocoder.yudao.module.common.dal.dataobject.mold.MoldDO; import cn.iocoder.yudao.module.common.dal.dataobject.moldrepair.MoldRepairDO; +import cn.iocoder.yudao.module.erp.controller.admin.mold.vo.MoldBrandTreeRespVO; import cn.iocoder.yudao.module.erp.service.mold.MoldBrandService; import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import io.swagger.v3.oas.annotations.Operation; @@ -99,6 +100,14 @@ public class MoldBrandController { ExcelUtils.write(response, "模具型号.xls", "数据", MoldBrandRespVO.class, moldBrandRespVOS); } + @GetMapping("/tree") + @Operation(summary = "获得设备类型树") + @PreAuthorize("@ss.hasPermission('mes:device-type:query')") + public CommonResult> getDeviceTypeTree() { + List tree = moldBrandService.getMoldBrandTree(); + return success(tree); + } + // ==================== 子表(模具) ==================== @GetMapping("/getMoldList") @Operation(summary = "获得模具型号") diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldBrandTreeRespVO.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldBrandTreeRespVO.java new file mode 100644 index 0000000000..246e79a050 --- /dev/null +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldBrandTreeRespVO.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.module.erp.controller.admin.mold.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +@Data +@EqualsAndHashCode(callSuper = true) +@Schema(description = "管理后台 - 模具类型树形结构 Response VO") +public class MoldBrandTreeRespVO extends MoldBrandRespVO{ + @Schema(description = "模具类型列表") + private List children; + + @Schema(description = "是否叶子节点", example = "true") + private Boolean leaf = true; +} diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandService.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandService.java index 1c04930fb0..ac9798874f 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandService.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandService.java @@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.common.controller.admin.mold.vo.*; import cn.iocoder.yudao.module.common.dal.dataobject.mold.MoldBrandDO; import cn.iocoder.yudao.module.common.dal.dataobject.mold.MoldBrandProductDO; import cn.iocoder.yudao.module.common.dal.dataobject.mold.MoldDO; +import cn.iocoder.yudao.module.erp.controller.admin.mold.vo.MoldBrandTreeRespVO; import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductCategoryDO; import javax.validation.Valid; @@ -180,4 +181,6 @@ public interface MoldBrandService { if(ids.isEmpty())return new HashMap<>(); return convertMap(getMoldBrandList(ids), MoldBrandDO::getId); } + + List getMoldBrandTree(); } \ No newline at end of file diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandServiceImpl.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandServiceImpl.java index 9e7ff01ca7..c18eb6833c 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandServiceImpl.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandServiceImpl.java @@ -12,6 +12,7 @@ import cn.iocoder.yudao.module.common.dal.dataobject.mold.MoldDO; import cn.iocoder.yudao.module.common.dal.dataobject.moldrepair.MoldRepairDO; import cn.iocoder.yudao.module.common.dal.dataobject.moldrepair.MoldRepairLineDO; import cn.iocoder.yudao.module.common.dal.dataobject.moldticketresults.MoldTicketResultsDO; +import cn.iocoder.yudao.module.erp.controller.admin.mold.vo.MoldBrandTreeRespVO; import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO; import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductUnitDO; import cn.iocoder.yudao.module.common.dal.mysql.mold.MoldBrandMapper; @@ -24,7 +25,6 @@ import cn.iocoder.yudao.module.common.controller.admin.moldticketmanagement.enum import cn.iocoder.yudao.module.erp.service.product.ErpProductService; import cn.iocoder.yudao.module.erp.service.product.ErpProductUnitService; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; -import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -317,4 +317,35 @@ public class MoldBrandServiceImpl implements MoldBrandService { private void deleteMoldBrandProductByBrandId(Long brandId) { moldBrandProductMapper.deleteByBrandId(brandId); } + + @Override + public List getMoldBrandTree() { + // 1. 查询所有模具类型 + List allMoldBrands = moldBrandMapper.selectList(); + + // 2. 构建树形结构 + return buildMoldBrandTree(allMoldBrands); + } + + /** + * 构建树形结构 + */ + private List buildMoldBrandTree(List allMoldBrands) { + return allMoldBrands.stream() + .map(this::convertToTreeRespVO) + .collect(Collectors.toList()); + } + private MoldBrandTreeRespVO convertToTreeRespVO(MoldBrandDO moldBrand) { + // 使用BeanUtils或手动设置属性 + MoldBrandTreeRespVO respVO = new MoldBrandTreeRespVO(); + + // 复制公共属性(假设MoldBrandRespVO有对应的方法) + BeanUtils.copyProperties(moldBrand, respVO); + + // 设置树状结构属性 + respVO.setChildren(new ArrayList<>()); // 空子节点 + respVO.setLeaf(true); // 叶子节点 + return respVO; + } + } \ 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/deviceledger/DeviceLedgerServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/deviceledger/DeviceLedgerServiceImpl.java index 21f0b0419f..8fc03931de 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/deviceledger/DeviceLedgerServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/deviceledger/DeviceLedgerServiceImpl.java @@ -186,7 +186,7 @@ public class DeviceLedgerServiceImpl implements DeviceLedgerService { //关键件列表 List componentList = new ArrayList<>(); - if (StringUtils.isNotBlank(deviceLedgerDO.getComponentId())) { + if (deviceLedgerDO != null && StringUtils.isNotBlank(deviceLedgerDO.getComponentId())) { // 将逗号分隔的字符串转换为Long类型的List List idList = Arrays.stream(deviceLedgerDO.getComponentId().split(",")) .map(String::trim) // 去除可能存在的空格 @@ -203,7 +203,7 @@ public class DeviceLedgerServiceImpl implements DeviceLedgerService { //模具列表 List moldList = new ArrayList<>(); - if (StringUtils.isNotBlank(deviceLedgerDO.getMoldId())) { + if (deviceLedgerDO != null && StringUtils.isNotBlank(deviceLedgerDO.getMoldId())) { // 将逗号分隔的字符串转换为Long类型的List List idList = Arrays.stream(deviceLedgerDO.getMoldId().split(",")) .map(String::trim) // 去除可能存在的空格 @@ -220,7 +220,7 @@ public class DeviceLedgerServiceImpl implements DeviceLedgerService { //备件列表 List beijianList = new ArrayList<>(); - if (StringUtils.isNotBlank(deviceLedgerDO.getBeijianId())) { + if (deviceLedgerDO != null && StringUtils.isNotBlank(deviceLedgerDO.getBeijianId())) { // 将逗号分隔的字符串转换为Long类型的List List idList = Arrays.stream(deviceLedgerDO.getBeijianId().split(",")) .map(String::trim) // 去除可能存在的空格 diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/devicetype/DeviceTypeServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/devicetype/DeviceTypeServiceImpl.java index 9e9af4ce3e..4db229cafb 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/devicetype/DeviceTypeServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/devicetype/DeviceTypeServiceImpl.java @@ -1,7 +1,6 @@ package cn.iocoder.yudao.module.mes.service.devicetype; import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; -import cn.iocoder.yudao.module.iot.dal.dataobject.devicemodel.DeviceModelDO; import cn.iocoder.yudao.module.mes.controller.admin.devicetype.vo.DeviceTypeTreeRespVO; import cn.iocoder.yudao.module.mes.dal.dataobject.deviceledger.DeviceLedgerDO; import cn.iocoder.yudao.module.mes.dal.mysql.deviceledger.DeviceLedgerMapper; @@ -9,8 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; + import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; @@ -21,15 +19,13 @@ import java.util.stream.Collectors; import cn.iocoder.yudao.module.mes.controller.admin.devicetype.vo.*; import cn.iocoder.yudao.module.mes.dal.dataobject.devicetype.DeviceTypeDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.mes.dal.mysql.devicetype.DeviceTypeMapper; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.DEVICE_MODEL_CODE_EXISTS; import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; -import static com.baomidou.mybatisplus.extension.toolkit.Db.list; + /** * 设备类型 Service 实现类