Răsfoiți Sursa

pms功能优化 SAP组织数据关联功能优化

zhangcl 3 luni în urmă
părinte
comite
c9335beaad
11 a modificat fișierele cu 77 adăugiri și 5 ștergeri
  1. 0 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotlockstock/vo/IotLockStockMaterialSaveReqVO.java
  2. 3 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotlockstock/vo/IotLockStockPageReqVO.java
  3. 4 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotlockstock/vo/IotLockStockRespVO.java
  4. 3 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotlockstock/vo/IotLockStockSaveReqVO.java
  5. 4 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/iotlockstock/IotLockStockDO.java
  6. 1 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotlockstock/IotLockStockServiceImpl.java
  7. 11 4
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/saporg/SapOrgController.java
  8. 23 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/saporg/vo/SapOrgSimpleReqVO.java
  9. 12 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/saporg/SapOrgMapper.java
  10. 9 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/saporg/SapOrgService.java
  11. 7 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/saporg/SapOrgServiceImpl.java

+ 0 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotlockstock/vo/IotLockStockMaterialSaveReqVO.java

@@ -4,7 +4,6 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 import java.math.BigDecimal;
-import java.time.LocalDateTime;
 
 @Schema(description = "管理后台 - PMS 功能优化 手动新增入库 Request VO")
 @Data

+ 3 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotlockstock/vo/IotLockStockPageReqVO.java

@@ -74,6 +74,9 @@ public class IotLockStockPageReqVO extends PageParam {
     @Schema(description = "排序")
     private Integer sort;
 
+    @Schema(description = "类型(1手工添加 2领料单转入)", example = "2")
+    private Integer type;
+
     @Schema(description = "状态 0启用  1停用", example = "2")
     private Integer status;
 

+ 4 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotlockstock/vo/IotLockStockRespVO.java

@@ -92,6 +92,10 @@ public class IotLockStockRespVO {
     @ExcelProperty("排序")
     private Integer sort;
 
+    @Schema(description = "类型(1手工添加 2领料单转入)", example = "2")
+    @ExcelProperty("类型(1手工添加 2领料单转入)")
+    private Integer type;
+
     @Schema(description = "状态 0启用  1停用", example = "2")
     @ExcelProperty("状态 0启用  1停用")
     private Integer status;

+ 3 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotlockstock/vo/IotLockStockSaveReqVO.java

@@ -68,6 +68,9 @@ public class IotLockStockSaveReqVO {
     @Schema(description = "排序")
     private Integer sort;
 
+    @Schema(description = "类型(1手工添加 2领料单转入)", example = "2")
+    private Integer type;
+
     @Schema(description = "状态 0启用  1停用", example = "2")
     private Integer status;
 

+ 4 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/iotlockstock/IotLockStockDO.java

@@ -109,6 +109,10 @@ public class IotLockStockDO extends BaseDO {
      * 排序
      */
     private Integer sort;
+    /**
+     * 类型(1手工添加 2领料单转入)
+     */
+    private Integer type;
     /**
      * 状态 0启用  1停用
      */

+ 1 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotlockstock/IotLockStockServiceImpl.java

@@ -118,6 +118,7 @@ public class IotLockStockServiceImpl implements IotLockStockService {
                 req.setStorageLocationId(storageLocationIds.get(0));
             }
             req.setStorageTime(LocalDateTime.now());
+            req.setType(1);
         });
         List<IotLockStockDO> lockStockDOS = BeanUtils.toBean(createReqVO, IotLockStockDO.class);
         iotLockStockMapper.insertBatch(lockStockDOS);

+ 11 - 4
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/saporg/SapOrgController.java

@@ -7,10 +7,7 @@ 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.system.controller.admin.saporg.vo.SapOrgPageReqVO;
-import cn.iocoder.yudao.module.system.controller.admin.saporg.vo.SapOrgRespVO;
-import cn.iocoder.yudao.module.system.controller.admin.saporg.vo.SapOrgSaveReqVO;
-import cn.iocoder.yudao.module.system.controller.admin.saporg.vo.SapOrgSimpleRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.saporg.vo.*;
 import cn.iocoder.yudao.module.system.dal.dataobject.saporg.SapOrgDO;
 import cn.iocoder.yudao.module.system.service.saporg.SapOrgService;
 import io.swagger.v3.oas.annotations.Operation;
@@ -92,6 +89,16 @@ public class SapOrgController {
         return success(BeanUtils.toBean(list, SapOrgSimpleRespVO.class));
     }
 
+    @PostMapping("/selectedSimpleList")
+    @Operation(summary = "根据已经选择的SAP工厂 查询下属的成本中心/库存地点全列表", description = "只包含被开启的数据,主要用于前端的下拉选项")
+    public CommonResult<List<SapOrgSimpleRespVO>> selectedSimpleList(@RequestBody SapOrgSimpleReqVO reqVO) {
+        // 获得SAP工厂/成本中心/库存地点列表,只要开启状态的
+        List<SapOrgDO> list = sapOrgService.getSelectedList(reqVO);
+        // 排序后,返回给前端
+        list.sort(Comparator.comparing(SapOrgDO::getSort));
+        return success(BeanUtils.toBean(list, SapOrgSimpleRespVO.class));
+    }
+
     @GetMapping("/export-excel")
     @Operation(summary = "导出SAP中的组织主数据(工厂 成本中心) Excel")
     @PreAuthorize("@ss.hasPermission('system:sap-org:export')")

+ 23 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/saporg/vo/SapOrgSimpleReqVO.java

@@ -0,0 +1,23 @@
+package cn.iocoder.yudao.module.system.controller.admin.saporg.vo;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+import java.util.List;
+
+@Schema(description = "管理后台 - 根据已经选择的SAP工厂 查询下属的成本中心/库存地点全列表 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class SapOrgSimpleReqVO extends PageParam {
+
+    @Schema(description = "类型(1工厂 2成本中心 3库存地点)")
+    private Integer type;
+
+    @Schema(description = "sap工厂code列表", example = "6011,5011")
+    private List<String> factoryCodes;
+
+}

+ 12 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/saporg/SapOrgMapper.java

@@ -43,4 +43,16 @@ public interface SapOrgMapper extends BaseMapperX<SapOrgDO> {
                 .orderByAsc(SapOrgDO::getSort));
     }
 
+    /**
+     * 根据已经选定的 SAP工厂 筛选 成本中心列表 or 库存地点列表
+     * @param type
+     * @param factoryCodes 工厂 code 列表
+     * @return
+     */
+    default List<SapOrgDO> selectedList(Integer type, List<String> factoryCodes) {
+        return selectList(new LambdaQueryWrapperX<SapOrgDO>()
+                .eqIfPresent(SapOrgDO::getType, type)
+                .inIfPresent(SapOrgDO::getFactoryCode, factoryCodes));
+    }
+
 }

+ 9 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/saporg/SapOrgService.java

@@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 import cn.iocoder.yudao.module.system.controller.admin.saporg.vo.SapOrgPageReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.saporg.vo.SapOrgSaveReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.saporg.vo.SapOrgSimpleReqVO;
 import cn.iocoder.yudao.module.system.dal.dataobject.saporg.SapOrgDO;
 import org.springframework.lang.Nullable;
 
@@ -69,6 +70,14 @@ public interface SapOrgService {
                              @Nullable Integer type,
                              @Nullable Collection<Integer> statuses);
 
+    /**
+     * 根据已经选择的SAP工厂 查询下属的成本中心/库存地点全列表
+     *
+     * @param reqVO (SAP工厂)id 编号数组。如果为空,不进行筛选
+     * @return 部门列表
+     */
+    List<SapOrgDO> getSelectedList(@Nullable SapOrgSimpleReqVO reqVO);
+
     /**
      * 获得指定编号的SAP组织 Map
      *

+ 7 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/saporg/SapOrgServiceImpl.java

@@ -5,6 +5,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.system.controller.admin.saporg.vo.SapOrgPageReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.saporg.vo.SapOrgSaveReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.saporg.vo.SapOrgSimpleReqVO;
 import cn.iocoder.yudao.module.system.dal.dataobject.saporg.SapOrgDO;
 import cn.iocoder.yudao.module.system.dal.mysql.saporg.SapOrgMapper;
 import org.springframework.stereotype.Service;
@@ -77,6 +78,12 @@ public class SapOrgServiceImpl implements SapOrgService {
         return sapOrgMapper.selectList(ids, type, statuses);
     }
 
+    @Override
+    public List<SapOrgDO> getSelectedList(SapOrgSimpleReqVO reqVO) {
+        // 根据已经选定的 SAP工厂 筛选 成本中心列表 or 库存地点列表
+        return sapOrgMapper.selectedList(reqVO.getType(), reqVO.getFactoryCodes());
+    }
+
     @Override
     public List<SapOrgDO> getSapOrgList(Collection<Long> ids) {
         if (CollUtil.isEmpty(ids)) {