소스 검색

箱码幅面查询添加数据隔离权限
添加查询包材厂下拉框的接口

v_HuilingDeng 4 년 전
부모
커밋
cb8e2b64b3

+ 14 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/controller/console/BoxCodeFormatController.java

@@ -8,11 +8,14 @@ import com.abi.qms.platform.dto.req.ListBoxCodeFormatReq;
 import com.abi.qms.platform.dto.req.SaveBoxCodeFormatReq;
 import com.abi.qms.platform.dto.res.BoxCodeFormatDetailRes;
 import com.abi.qms.platform.dto.res.ListBoxCodeFormatRes;
+import com.abi.qms.platform.dto.res.ListPackageFactorySelectRes;
 import com.abi.qms.platform.service.BoxCodeFormatService;
+import com.abi.qms.platform.service.FactoryService;
 import com.abi.task.common.api.base.BaseResponse;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -36,6 +39,9 @@ public class BoxCodeFormatController {
     @Autowired
     private BoxCodeFormatService boxCodeFormatService;
 
+    @Autowired
+    private FactoryService factoryService;
+
     @ApiOperation("箱码幅面新增/修改")
     @PostMapping("saveBoxCodeFormat")
     public BaseResponse saveBoxCodeFormat(@Validated @RequestBody SaveBoxCodeFormatReq saveBoxCodeFormatReq) {
@@ -90,5 +96,13 @@ public class BoxCodeFormatController {
         return BaseResponse.create();
     }
 
+    @ApiOperation("包材厂下拉框")
+    @GetMapping("listPackageFactorySelect")
+    public BaseResponse<ListPackageFactorySelectRes> listPackageFactorySelect() {
+        //包材厂下拉框
+        ListPackageFactorySelectRes result = factoryService.listPackageFactorySelect();
+        //包装出参
+        return BaseResponse.create(result);
+    }
 
 }

+ 48 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/enums/LoginTypeEnum.java

@@ -0,0 +1,48 @@
+package com.abi.qms.platform.dao.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.EnumSet;
+import java.util.Set;
+
+/**
+ * @author Eurus
+ * @date 2021/5/17 19:05
+ * @Description: 登录账号类型
+ */
+@Getter
+@AllArgsConstructor
+@JsonFormat(shape = JsonFormat.Shape.OBJECT)
+public enum LoginTypeEnum {
+
+    //供应商类型: 1-包材厂 2-非包材厂
+    PACKAGE(1, "包材厂"),
+    NOT_PACKAGE(2, "非包材厂");
+
+    @EnumValue
+    private Integer code;
+    private String name;
+
+    private static final Set<LoginTypeEnum> ALL = EnumSet.allOf(LoginTypeEnum.class);
+
+    public static String getName(Integer code) {
+        return ALL.stream()
+                .filter(o -> o.code.equals(code))
+                .map(LoginTypeEnum::getName)
+                .findAny().orElse(null);
+    }
+
+    public static Integer getCode(String name) {
+        return ALL.stream()
+                .filter(o -> o.name.equals(name))
+                .map(LoginTypeEnum::getCode)
+                .findAny().orElse(null);
+    }
+
+    public boolean is(Integer code) {
+        return getCode().equals(code);
+    }
+}

+ 47 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/ListPackageFactorySelectRes.java

@@ -0,0 +1,47 @@
+package com.abi.qms.platform.dto.res;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author Eurus
+ * @date 2021/5/17 18:58
+ * @Description: 包材厂下拉列表出参
+ */
+@Data
+@ApiModel
+public class ListPackageFactorySelectRes implements Serializable {
+
+    @ApiModelProperty("包材厂列表")
+    private List<FactoryBean> factoryBeanList;
+
+    @ApiModelProperty("账号类型(1:包材厂 2:非包材厂)")
+    private Integer loginType;
+
+    /**
+     * 供应商bean
+     */
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ToString
+    @ApiModel(value = "ListPackageFactorySelectRes_FactoryBean")
+    public static class FactoryBean implements Serializable {
+
+        @ApiModelProperty(value = "id")
+        private Long id;
+
+        @ApiModelProperty(value = "供应商code")
+        private String factoryCode;
+
+        @ApiModelProperty(value = "供应商名称")
+        private String factoryName;
+    }
+}

+ 7 - 4
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/FactoryService.java

@@ -6,10 +6,7 @@ import com.abi.qms.platform.dto.req.EnableFactoryReq;
 import com.abi.qms.platform.dto.req.GetFactoryDetailReq;
 import com.abi.qms.platform.dto.req.ListFactoryReq;
 import com.abi.qms.platform.dto.req.SaveFactoryReq;
-import com.abi.qms.platform.dto.res.ExcelImportRes;
-import com.abi.qms.platform.dto.res.GetFactoryDetailRes;
-import com.abi.qms.platform.dto.res.ListFactoryEnableRes;
-import com.abi.qms.platform.dto.res.ListFactoryRes;
+import com.abi.qms.platform.dto.res.*;
 import com.abi.task.common.excel.preperties.FactoryProperty;
 
 import java.util.List;
@@ -40,4 +37,10 @@ public interface FactoryService {
      * @return
      */
     ListFactoryEnableRes listFactoryEnable();
+
+    /**
+     * 包材厂下拉列表(数据权限隔离)
+     * @return
+     */
+    ListPackageFactorySelectRes listPackageFactorySelect();
 }

+ 4 - 1
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/BoxCodeFormatImpl.java

@@ -70,7 +70,10 @@ public class BoxCodeFormatImpl implements BoxCodeFormatService {
 
     @Override
     public ListBoxCodeFormatRes listBoxCodeFormat(ListBoxCodeFormatReq req) {
-
+        //数据权限隔离,如果登录账号是包材厂,只能看账号包材厂的数据。否则看全部
+        if(UserUtil.getUser().getFactoryId() != null){
+            req.setFactoryId(UserUtil.getUser().getFactoryId());
+        }
         //分页查询
         IPage<BoxCodeFormatVO> iPage = boxCodeFormatMapper.listBoxCodeFormat(PageUtil.createPage(req), req);
         List<BoxCodeFormatVO> formatList = iPage.getRecords();

+ 22 - 4
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/FactoryServiceImpl.java

@@ -3,6 +3,7 @@ package com.abi.qms.platform.service.impl;
 import cn.hutool.core.collection.CollectionUtil;
 import com.abi.qms.platform.dao.entity.BaseFactory;
 import com.abi.qms.platform.dao.enums.FactoryTypeEnum;
+import com.abi.qms.platform.dao.enums.LoginTypeEnum;
 import com.abi.qms.platform.dao.enums.ValidEnum;
 import com.abi.qms.platform.dao.mapper.BaseFactoryMapper;
 import com.abi.qms.platform.dto.req.DisableFactoryReq;
@@ -10,12 +11,10 @@ import com.abi.qms.platform.dto.req.EnableFactoryReq;
 import com.abi.qms.platform.dto.req.GetFactoryDetailReq;
 import com.abi.qms.platform.dto.req.ListFactoryReq;
 import com.abi.qms.platform.dto.req.SaveFactoryReq;
-import com.abi.qms.platform.dto.res.ExcelImportRes;
-import com.abi.qms.platform.dto.res.GetFactoryDetailRes;
-import com.abi.qms.platform.dto.res.ListFactoryEnableRes;
-import com.abi.qms.platform.dto.res.ListFactoryRes;
+import com.abi.qms.platform.dto.res.*;
 import com.abi.qms.platform.infrastructure.util.AssertUtil;
 import com.abi.qms.platform.infrastructure.util.PageUtil;
+import com.abi.qms.platform.infrastructure.util.UserUtil;
 import com.abi.qms.platform.service.FactoryService;
 import com.abi.task.common.api.exception.BusinessException;
 import com.abi.task.common.api.exception.ErrorCodeEnum;
@@ -234,6 +233,25 @@ public class FactoryServiceImpl implements FactoryService {
         return listFactoryEnableRes;
     }
 
+    @Override
+    public ListPackageFactorySelectRes listPackageFactorySelect() {
+        ListPackageFactorySelectRes listPackageFactorySelectRes = new ListPackageFactorySelectRes();
+        QueryWrapper<BaseFactory> param = new QueryWrapper<>();
+        //数据权限隔离,如果登录账号是包材厂,只能看账号包材厂的数据。否则看全部
+        if(UserUtil.getUser().getFactoryId() != null){
+            param.eq("id", UserUtil.getUser().getFactoryId());
+            listPackageFactorySelectRes.setLoginType(LoginTypeEnum.PACKAGE.getCode());
+        }else{
+            listPackageFactorySelectRes.setLoginType(LoginTypeEnum.NOT_PACKAGE.getCode());
+        }
+        param.eq("is_delete", 0);
+        param.eq("valid", 1);
+        List<BaseFactory> baseDepartments = baseFactoryMapper.selectList(param);
+        List<ListPackageFactorySelectRes.FactoryBean> factoryBeans = PojoConverterUtils.copyList(baseDepartments, ListPackageFactorySelectRes.FactoryBean.class);
+        listPackageFactorySelectRes.setFactoryBeanList(factoryBeans);
+        return listPackageFactorySelectRes;
+    }
+
     /**
      * 检查批量导入的内容
      *

+ 1 - 1
abi-cloud-qr-platform-server/src/main/resources/dao/mapper/BoxCodeFormatMapper.xml

@@ -33,7 +33,7 @@
         left join base_factory bf on bf.id=bcf.factory_id
         <where>
             bcf.is_delete = 0
-            <if test="param.factoryId != null and param.factoryId != ''">
+            <if test="param.factoryId != null">
                 AND bf.id = #{param.factoryId}
             </if>
             <if test="param.name != null and param.name != ''">