Prechádzať zdrojové kódy

pms功能优化 物料组分类

zhangcl 5 mesiacov pred
rodič
commit
0e1e830a26

+ 18 - 3
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotmaterialgroup/IotMaterialGroupController.java

@@ -1,14 +1,13 @@
 package cn.iocoder.yudao.module.pms.controller.admin.iotmaterialgroup;
 
 import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
-import cn.iocoder.yudao.module.pms.controller.admin.iotmaterialgroup.vo.IotMaterialGroupPageReqVO;
-import cn.iocoder.yudao.module.pms.controller.admin.iotmaterialgroup.vo.IotMaterialGroupRespVO;
-import cn.iocoder.yudao.module.pms.controller.admin.iotmaterialgroup.vo.IotMaterialGroupSaveReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.iotmaterialgroup.vo.*;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotmaterialgroup.IotMaterialGroupDO;
 import cn.iocoder.yudao.module.pms.service.iotmaterialgroup.IotMaterialGroupService;
 import io.swagger.v3.oas.annotations.Operation;
@@ -77,6 +76,22 @@ public class IotMaterialGroupController {
         return success(BeanUtils.toBean(pageResult, IotMaterialGroupRespVO.class));
     }
 
+    @GetMapping("/list")
+    @Operation(summary = "获取物料组列表")
+    @PreAuthorize("@ss.hasPermission('rq:iot-material-group:query')")
+    public CommonResult<List<IotMaterialGroupRespVO>> getMaterialGroupList(IotMaterialGroupListReqVO reqVO) {
+        List<IotMaterialGroupDO> list = iotMaterialGroupService.getMaterialGroupList(reqVO);
+        return success(BeanUtils.toBean(list, IotMaterialGroupRespVO.class));
+    }
+
+    @GetMapping(value = {"/list-all-simple", "/simple-list"})
+    @Operation(summary = "获取物料组精简信息列表", description = "只包含被开启的物料组,主要用于前端的下拉选项")
+    public CommonResult<List<MaterialGroupSimpleRespVO>> getSimpleMaterialGroupList() {
+        List<IotMaterialGroupDO> list = iotMaterialGroupService.getMaterialGroupList(
+                new IotMaterialGroupListReqVO().setStatus(CommonStatusEnum.ENABLE.getStatus()));
+        return success(BeanUtils.toBean(list, MaterialGroupSimpleRespVO.class));
+    }
+
     @GetMapping("/export-excel")
     @Operation(summary = "导出PMS 功能优化 物料组 Excel")
     @PreAuthorize("@ss.hasPermission('rq:iot-material-group:export')")

+ 16 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotmaterialgroup/vo/IotMaterialGroupListReqVO.java

@@ -0,0 +1,16 @@
+package cn.iocoder.yudao.module.pms.controller.admin.iotmaterialgroup.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 物料组列表 Request VO")
+@Data
+public class IotMaterialGroupListReqVO {
+
+    @Schema(description = "物料组名称,模糊匹配", example = "pms")
+    private String name;
+
+    @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1")
+    private Integer status;
+
+}

+ 23 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotmaterialgroup/vo/MaterialGroupSimpleRespVO.java

@@ -0,0 +1,23 @@
+package cn.iocoder.yudao.module.pms.controller.admin.iotmaterialgroup.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Schema(description = "管理后台 - 物料组精简信息 Response VO")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class MaterialGroupSimpleRespVO {
+
+    @Schema(description = "物料组编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
+    private Long id;
+
+    @Schema(description = "物料组名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "pms")
+    private String name;
+
+    @Schema(description = "父物料组 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
+    private Long parentId;
+
+}

+ 9 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotmaterialgroup/IotMaterialGroupMapper.java

@@ -3,10 +3,13 @@ package cn.iocoder.yudao.module.pms.dal.mysql.iotmaterialgroup;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.module.pms.controller.admin.iotmaterialgroup.vo.IotMaterialGroupListReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotmaterialgroup.vo.IotMaterialGroupPageReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotmaterialgroup.IotMaterialGroupDO;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 /**
  * PMS 功能优化 物料组 Mapper
  *
@@ -26,4 +29,10 @@ public interface IotMaterialGroupMapper extends BaseMapperX<IotMaterialGroupDO>
                 .orderByDesc(IotMaterialGroupDO::getId));
     }
 
+    default List<IotMaterialGroupDO> selectList(IotMaterialGroupListReqVO reqVO) {
+        return selectList(new LambdaQueryWrapperX<IotMaterialGroupDO>()
+                .likeIfPresent(IotMaterialGroupDO::getName, reqVO.getName())
+                .eqIfPresent(IotMaterialGroupDO::getStatus, reqVO.getStatus()));
+    }
+
 }

+ 9 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotmaterialgroup/IotMaterialGroupService.java

@@ -1,11 +1,13 @@
 package cn.iocoder.yudao.module.pms.service.iotmaterialgroup;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.pms.controller.admin.iotmaterialgroup.vo.IotMaterialGroupListReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotmaterialgroup.vo.IotMaterialGroupPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotmaterialgroup.vo.IotMaterialGroupSaveReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotmaterialgroup.IotMaterialGroupDO;
 
 import javax.validation.Valid;
+import java.util.List;
 
 /**
  * PMS 功能优化 物料组 Service 接口
@@ -52,4 +54,11 @@ public interface IotMaterialGroupService {
      */
     PageResult<IotMaterialGroupDO> getIotMaterialGroupPage(IotMaterialGroupPageReqVO pageReqVO);
 
+    /**
+     * 筛选物料组列表
+     *
+     * @param reqVO 筛选条件请求 VO
+     * @return 物料组列表
+     */
+    List<IotMaterialGroupDO> getMaterialGroupList(IotMaterialGroupListReqVO reqVO);
 }

+ 10 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotmaterialgroup/IotMaterialGroupServiceImpl.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.pms.service.iotmaterialgroup;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.pms.controller.admin.iotmaterialgroup.vo.IotMaterialGroupListReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotmaterialgroup.vo.IotMaterialGroupPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotmaterialgroup.vo.IotMaterialGroupSaveReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotmaterialgroup.IotMaterialGroupDO;
@@ -10,6 +11,8 @@ import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
+import java.util.Comparator;
+import java.util.List;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant.IOT_MATERIAL_GROUP_NOT_EXISTS;
@@ -69,4 +72,11 @@ public class IotMaterialGroupServiceImpl implements IotMaterialGroupService {
         return iotMaterialGroupMapper.selectPage(pageReqVO);
     }
 
+    @Override
+    public List<IotMaterialGroupDO> getMaterialGroupList(IotMaterialGroupListReqVO reqVO) {
+        List<IotMaterialGroupDO> list = iotMaterialGroupMapper.selectList(reqVO);
+        list.sort(Comparator.comparing(IotMaterialGroupDO::getSort));
+        return list;
+    }
+
 }