Explorar o código

1.数据权限

wuhp hai 1 ano
pai
achega
fc4418d7c8
Modificáronse 31 ficheiros con 1384 adicións e 11 borrados
  1. 11 0
      src/main/java/com/ydtech/aop/GetStringBufferContent.java
  2. 207 0
      src/main/java/com/ydtech/aop/StringBufferContentAspect.java
  3. 29 0
      src/main/java/com/ydtech/modules/admin/constants/DataPermissionsEnum.java
  4. 83 0
      src/main/java/com/ydtech/modules/admin/controller/DataPermissionsController.java
  5. 76 0
      src/main/java/com/ydtech/modules/admin/controller/InsRolePermissionsController.java
  6. 26 0
      src/main/java/com/ydtech/modules/admin/dao/DataPermissionsMapper.java
  7. 14 0
      src/main/java/com/ydtech/modules/admin/dao/InsRoleMenuPermissionsMapper.java
  8. 18 0
      src/main/java/com/ydtech/modules/admin/dao/InsRolePermissionsMapper.java
  9. 112 0
      src/main/java/com/ydtech/modules/admin/model/DataPermissions.java
  10. 59 0
      src/main/java/com/ydtech/modules/admin/model/InsRoleMenuPermissions.java
  11. 75 0
      src/main/java/com/ydtech/modules/admin/model/InsRolePermissions.java
  12. 66 0
      src/main/java/com/ydtech/modules/admin/model/dto/DataPermissionsDto.java
  13. 56 0
      src/main/java/com/ydtech/modules/admin/model/dto/InsRoleMenuPermissionsDto.java
  14. 51 0
      src/main/java/com/ydtech/modules/admin/model/dto/InsRolePermissionsDto.java
  15. 53 0
      src/main/java/com/ydtech/modules/admin/model/vo/DataPermissionsVo.java
  16. 38 0
      src/main/java/com/ydtech/modules/admin/service/DataPermissionsService.java
  17. 20 0
      src/main/java/com/ydtech/modules/admin/service/InsRoleMenuPermissionsService.java
  18. 40 0
      src/main/java/com/ydtech/modules/admin/service/InsRolePermissionsService.java
  19. 69 0
      src/main/java/com/ydtech/modules/admin/service/impl/DataPermissionsServiceImpl.java
  20. 62 0
      src/main/java/com/ydtech/modules/admin/service/impl/InsRoleMenuPermissionsServiceImpl.java
  21. 99 0
      src/main/java/com/ydtech/modules/admin/service/impl/InsRolePermissionsServiceImpl.java
  22. 18 0
      src/main/java/com/ydtech/modules/admin/utils/DataParams.java
  23. 2 0
      src/main/java/com/ydtech/modules/fnc/controller/contract/ContractController.java
  24. 1 1
      src/main/java/com/ydtech/modules/fnc/dao/contract/ContractMapper.java
  25. 1 1
      src/main/java/com/ydtech/modules/fnc/service/contract/impl/contractServiceImpl.java
  26. 3 1
      src/main/java/com/ydtech/modules/fnc/vo/ContractVo.java
  27. 17 6
      src/main/java/com/ydtech/modules/inv/utils/CheckInsPlyComeUtils.java
  28. 40 0
      src/main/resources/mapper/modules/admin/DataPermissionsMapper.xml
  29. 19 0
      src/main/resources/mapper/modules/admin/InsRoleMenuPermissionsMapper.xml
  30. 16 0
      src/main/resources/mapper/modules/admin/InsRolePermissionsMapper.xml
  31. 3 2
      src/main/resources/mapper/modules/fnc/contract/ContractMapper.xml

+ 11 - 0
src/main/java/com/ydtech/aop/GetStringBufferContent.java

@@ -0,0 +1,11 @@
+package com.ydtech.aop;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target({ElementType.METHOD, ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface GetStringBufferContent {
+}

+ 207 - 0
src/main/java/com/ydtech/aop/StringBufferContentAspect.java

@@ -0,0 +1,207 @@
+package com.ydtech.aop;
+
+import com.ydtech.modules.admin.constants.DataPermissionsEnum;
+import com.ydtech.modules.admin.dao.DataPermissionsMapper;
+import com.ydtech.modules.admin.model.DataPermissions;
+import com.ydtech.modules.admin.model.InsRoleMenuPermissions;
+import com.ydtech.modules.admin.model.InsRolePermissions;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.dto.InsRoleMenuPermissionsDto;
+import com.ydtech.modules.admin.model.dto.InsRolePermissionsDto;
+import com.ydtech.modules.admin.model.vo.DataPermissionsVo;
+import com.ydtech.modules.admin.service.DataPermissionsService;
+import com.ydtech.modules.admin.service.InsRoleMenuPermissionsService;
+import com.ydtech.modules.admin.service.InsRolePermissionsService;
+import com.ydtech.modules.admin.utils.DataParams;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.inv.model.vo.InvAccountQueryVo;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@Aspect
+@Component
+public class StringBufferContentAspect {
+    @Autowired
+    private HttpServletRequest request;
+
+
+    @Autowired
+    private DataPermissionsMapper dataPermissionsMapper;
+
+    @Autowired
+    private InsRoleMenuPermissionsService insRoleMenuPermissionsService;
+
+    @Autowired
+    private InsRolePermissionsService insRolePermissionsService;
+
+    @Autowired
+    private DataPermissionsService  dataPermissionsService;
+
+    @Pointcut("@annotation(GetStringBufferContent)")
+    public void getStringBufferContentPointcut() {
+    }
+
+    @Around("getStringBufferContentPointcut()")
+    public Object aroundGetStringBufferContent(ProceedingJoinPoint joinPoint) throws Throwable {
+        // 获取HttpServletRequest并添加空指针检查(这里假设已经在Spring配置中正确注入了HttpServletRequest,实际可能需要进一步处理注入问题)
+        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+        if (attributes == null) {
+            throw new IllegalStateException("无法获取ServletRequestAttributes");
+        }
+        HttpServletRequest request = attributes.getRequest();
+        if (request == null) {
+            throw new IllegalStateException("无法获取HttpServletRequest");
+        }
+        String string = request.getRequestURL().toString();
+        URI uri = new URI(string);
+        String path = uri.getPath();
+
+        DataParams invAccountQueryVo = (DataParams) joinPoint.getArgs()[0];
+        // 假设这里通过某种业务逻辑生成了stringBufferContent的值
+        this.buildStringBufferBasedOnDataPermissions(path, invAccountQueryVo);
+
+        // 继续执行被注解标注的方法或类的原有逻辑
+        return joinPoint.proceed();
+    }
+
+    private void buildStringBufferBasedOnDataPermissions(String path, DataParams invAccountQueryVo) {
+        StringBuilder stringBuffer = new StringBuilder();
+        List<DataPermissions> operatorList = dataPermissionsMapper.getByPath(path);
+
+        List<DataPermissions> cheList = this.checkData(operatorList);
+        if(!cheList.isEmpty()){
+            Map<String, List<DataPermissions>> groupedMap = cheList.stream()
+                    .collect(Collectors.groupingBy(DataPermissions::getRuleField));
+            if (operatorList.size() == 1) {
+
+                handleSingleDataPermission(cheList.get(0), stringBuffer, invAccountQueryVo);
+            } else {
+                handleMultipleDataPermissions(groupedMap, stringBuffer, invAccountQueryVo);
+            }
+        }
+    }
+
+    /**
+     * @param operatorList
+     * @return 校验数据
+     */
+    private List<DataPermissions> checkData(List<DataPermissions> operatorList) {
+        SysUser user = BaseController.getUser();
+        String roleId = user.getRoleId();  // 角色id
+
+        // 提取该接口配置的菜单id列表,去重
+        List<String> menuIdList = operatorList.stream()
+                .map(DataPermissions::getMenuId)
+                .distinct()
+                .collect(Collectors.toList());
+
+        if (menuIdList.isEmpty()) {
+            // 如果没有配置菜单,直接返回空的DataPermissions列表
+            return new ArrayList<DataPermissions>();
+        }
+
+        // 创建用于查询角色菜单权限的对象,在循环中只需设置具体属性即可
+        InsRoleMenuPermissionsDto insRoleMenuPermissionsDto = new InsRoleMenuPermissionsDto();
+        insRoleMenuPermissionsDto.setRoleId(roleId);
+
+        // 创建用于查询角色权限的对象,同样在循环中设置具体属性
+        InsRolePermissionsDto insRolePermissionsDto = new InsRolePermissionsDto();
+        insRolePermissionsDto.setRoleId(roleId);
+
+        for (String menuId : menuIdList) {
+            // 设置当前循环中菜单id到相应查询对象中
+            insRoleMenuPermissionsDto.setMenuId(menuId);
+            insRolePermissionsDto.setMenuId(menuId);
+
+            // 通过角色id和菜单id查询是否配置了该菜单权限
+            List<InsRoleMenuPermissionsDto> roleMenuPermissionsList = insRoleMenuPermissionsService.getRoleMenuPermissionsList(insRoleMenuPermissionsDto);
+            if (!roleMenuPermissionsList.isEmpty()) {
+                // 如果存在该菜单权限,则查询该角色下的权限规则有哪些
+                List<InsRolePermissions> InsRolePermissionsServiceList = insRolePermissionsService.getInsRolePermissionsServiceList(insRolePermissionsDto);
+                if (!InsRolePermissionsServiceList.isEmpty()) {
+                    List<String> permissionsList = InsRolePermissionsServiceList.stream()
+                            .map(InsRolePermissions::getPermissionsId)
+                            .collect(Collectors.toList());
+
+                    DataPermissionsVo dataPermissionsVo = new DataPermissionsVo();
+                    dataPermissionsVo.setPermissionsList(permissionsList);
+                    // 执行查询并返回结果,一旦找到符合条件的权限并查询到对应数据权限,直接返回
+                    return dataPermissionsService.queryList(dataPermissionsVo);
+                }
+            }
+        }
+        // 如果遍历完所有菜单都没有符合条件的权限,返回空的DataPermissions列表
+        return new ArrayList<DataPermissions>();
+    }
+    private void handleSingleDataPermission(DataPermissions dataPermissions, StringBuilder stringBuffer,
+                                            DataParams invAccountQueryVo) {
+        HashMap<String, Object> sqlMap = new HashMap<>();
+        String ruleCondition = dataPermissions.getRuleCondition();
+        String descByCode = DataPermissionsEnum.getDescByCode(ruleCondition);
+        String ruleField = dataPermissions.getRuleField();
+        String ruleValue = dataPermissions.getRuleValue();
+
+        sqlMap.put(ruleField, ruleValue);
+        buildStringBuffer(stringBuffer, ruleField, descByCode, ruleValue);
+
+        invAccountQueryVo.setStringBufferContent(stringBuffer.toString());
+        invAccountQueryVo.setStringBufferContentMap(sqlMap);
+    }
+
+    private void handleMultipleDataPermissions(Map<String, List<DataPermissions>> groupedMap, StringBuilder stringBuffer, DataParams invAccountQueryVo) {
+        HashMap<String, Object> sqlMap = new HashMap<>();
+        for (Map.Entry<String, List<DataPermissions>> entry : groupedMap.entrySet()) {
+            List<DataPermissions> dataPermissionsList = entry.getValue();
+            int index = 0;
+            for (DataPermissions dataPermissions : dataPermissionsList) {
+                String ruleCondition = dataPermissions.getRuleCondition();
+                String descByCode = DataPermissionsEnum.getDescByCode(ruleCondition);
+                String ruleField = dataPermissions.getRuleField();
+                String ruleValue = dataPermissions.getRuleValue();
+                if (index >= 1) {
+                    sqlMap.put(ruleField + index, ruleValue);
+                } else {
+                    sqlMap.put(ruleField, ruleValue);
+                }
+                buildStringBuffer(stringBuffer, ruleField, descByCode, ruleValue, index);
+                index++;
+            }
+        }
+        invAccountQueryVo.setStringBufferContent(stringBuffer.toString());
+        invAccountQueryVo.setStringBufferContentMap(sqlMap);
+    }
+
+    private void buildStringBuffer(StringBuilder stringBuffer, String ruleField, String descByCode, String ruleValue) {
+        buildStringBuffer(stringBuffer, ruleField, descByCode, ruleValue, 0);
+    }
+
+    private void buildStringBuffer(StringBuilder stringBuffer, String ruleField, String descByCode, String ruleValue, int index) {
+        // 根据索引构建用于从map取值的键
+        String mapValueKey = index >= 1 ? ruleField + index : ruleField;
+        // 构建公共的SQL语句前缀部分
+        String commonSqlPrefix = String.format(" and %s %s", ruleField, descByCode);
+        String sqlFragment;
+        if (descByCode.contains("in")) {
+            // 如果是in的情况,添加括号包裹map取值部分
+            sqlFragment = commonSqlPrefix + String.format(" (#{mapValue.%s})", mapValueKey);
+        } else {
+            // 其他情况直接拼接map取值部分
+            sqlFragment = commonSqlPrefix + String.format(" #{mapValue.%s}", mapValueKey);
+        }
+        stringBuffer.append(sqlFragment);
+    }
+}

+ 29 - 0
src/main/java/com/ydtech/modules/admin/constants/DataPermissionsEnum.java

@@ -0,0 +1,29 @@
+package com.ydtech.modules.admin.constants;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 数据权限条件枚举
+ */
+@Getter
+@AllArgsConstructor
+public enum DataPermissionsEnum {
+    DATA_01("1", "="),
+    DATA_02("2", "!="),
+    DATA_03("3", "in"),
+    DATA_04("4", "not in"),
+    DATA_05("5", "sql");
+
+    private final String code;
+
+    private final String desc;
+    public static String getDescByCode(String code){
+        for (DataPermissionsEnum value : DataPermissionsEnum.values()) {
+            if(value.getCode().equals(code)){
+                return value.getDesc();
+            }
+        }
+        return null;
+    }
+}

+ 83 - 0
src/main/java/com/ydtech/modules/admin/controller/DataPermissionsController.java

@@ -0,0 +1,83 @@
+package com.ydtech.modules.admin.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.DataPermissions;
+import com.ydtech.modules.admin.model.dto.DataPermissionsDto;
+import com.ydtech.modules.admin.model.vo.DataPermissionsVo;
+import com.ydtech.modules.admin.service.DataPermissionsService;
+import com.ydtech.modules.base.controller.BaseController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@Api(tags = "数据权限")
+@RequestMapping("/dataPermissions")
+@RestController
+public class DataPermissionsController extends BaseController {
+
+    @Autowired
+    private DataPermissionsService  dataPermissionsService;
+
+    /**
+     * @param dataPermissionsDto
+     * @return 新增数据权限
+     */
+    @PostMapping("saveAndUpdate")
+    @ApiOperation("新增修改")
+    public HttpResult insertInsAccount(@RequestBody DataPermissionsDto dataPermissionsDto) {
+        dataPermissionsService.saveAndUpdate(dataPermissionsDto);
+        return HttpResult.ok(StringUtils.isNotBlank(dataPermissionsDto.getId()) ? "编辑成功" : "新增成功");
+    }
+
+
+    /**
+     * @description: 分页查询
+     * @author: whp
+     **/
+    @PostMapping("queryPage")
+    @ApiOperation(value = "分页查询")
+    public HttpResult<IPage<DataPermissions>> queryPage(@RequestBody DataPermissionsVo dataPermissionsVo) {
+        try {
+            IPage<DataPermissions> result = dataPermissionsService.queryPage(dataPermissionsVo);
+            return HttpResult.ok("查询数据成功", result);
+        } catch (Exception e) {
+            return HttpResult.error("查询错误" + e.getMessage());
+        }
+    }
+
+    /**
+     * @description: 回显
+     * @author: whp
+     **/
+    @GetMapping("{id}")
+    @ApiOperation(value = "回显")
+    public HttpResult<DataPermissions> getById(@PathVariable("id") String id ) {
+        try {
+            DataPermissions result = dataPermissionsService.getSelectById(id);
+            return HttpResult.ok("查询数据成功", result);
+        } catch (Exception e) {
+            return HttpResult.error("查询错误" + e.getMessage());
+        }
+    }
+
+    /**
+     * @description: 查询List
+     * @author: whp
+     **/
+    @PostMapping("queryList")
+    @ApiOperation(value = "分页查询")
+    public HttpResult<List<DataPermissions>> queryList(@RequestBody DataPermissionsVo dataPermissionsVo) {
+        try {
+            List<DataPermissions> result = dataPermissionsService.queryList(dataPermissionsVo);
+            return HttpResult.ok("查询数据成功", result);
+        } catch (Exception e) {
+            return HttpResult.error("查询错误" + e.getMessage());
+        }
+    }
+
+}

+ 76 - 0
src/main/java/com/ydtech/modules/admin/controller/InsRolePermissionsController.java

@@ -0,0 +1,76 @@
+package com.ydtech.modules.admin.controller;
+
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.InsRoleMenuPermissions;
+import com.ydtech.modules.admin.model.InsRolePermissions;
+import com.ydtech.modules.admin.model.dto.InsRoleMenuPermissionsDto;
+import com.ydtech.modules.admin.model.dto.InsRolePermissionsDto;
+import com.ydtech.modules.admin.service.InsRolePermissionsService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@Api(tags = "角色菜单数据权限")
+@RequestMapping("/insRolePermissions")
+@RestController
+public class InsRolePermissionsController {
+    @Autowired
+    private InsRolePermissionsService insRolePermissionsService;
+
+    /**
+     * @param insRolePermissionsDto
+     * @return 新增数据权限
+     */
+    @PostMapping("saveAndUpdate")
+    @ApiOperation("新增修改")
+    public HttpResult insertRolePermissions(@RequestBody InsRolePermissionsDto insRolePermissionsDto) {
+        insRolePermissionsService.insertAndUpdate(insRolePermissionsDto);
+        return HttpResult.ok(StringUtils.isNotBlank(insRolePermissionsDto.getId()) ? "编辑成功" : "新增成功");
+    }
+
+
+    /**
+     * @param insRoleMenuPermissionsDto
+     * @return 菜单角色数据权限关联
+     */
+    @PostMapping("saveAndUpdateRuleMenu")
+    @ApiOperation("新增修改")
+    public HttpResult saveAndUpdateRuleMenu(@RequestBody InsRoleMenuPermissionsDto insRoleMenuPermissionsDto) {
+        insRolePermissionsService.saveAndUpdateRuleMenu(insRoleMenuPermissionsDto);
+        return HttpResult.ok(StringUtils.isNotBlank(insRoleMenuPermissionsDto.getId()) ? "编辑成功" : "新增成功");
+    }
+
+
+    /**
+     * @param
+     * @return 获取数据权限菜单列表
+     */
+    @PostMapping("getInsRoleMenuPermissions")
+    @ApiOperation("获取数据权限菜单列表")
+    public HttpResult<List<InsRoleMenuPermissions>> getInsRoleMenuPermissions(@RequestBody InsRoleMenuPermissionsDto insRoleMenuPermissionsDto) {
+        List<InsRoleMenuPermissions> insRoleMenuPermissionsList = insRolePermissionsService.getInsRoleMenuPermissions(insRoleMenuPermissionsDto);
+        return HttpResult.ok(insRoleMenuPermissionsList);
+    }
+
+
+
+
+    /**
+     * @param
+     * @return 获取菜单数据权限
+     */
+    @PostMapping("getInsRolePermissionsDtoList")
+    @ApiOperation("获取菜单数据权限")
+    public HttpResult<List<InsRolePermissions>> getInsRolePermissionsDtoList(@RequestBody InsRolePermissionsDto insRolePermissionsDto) {
+        List<InsRolePermissions> insRoleMenuPermissionsList = insRolePermissionsService.getInsRolePermissionsDtoList(insRolePermissionsDto);
+        return HttpResult.ok(insRoleMenuPermissionsList);
+    }
+}

+ 26 - 0
src/main/java/com/ydtech/modules/admin/dao/DataPermissionsMapper.java

@@ -0,0 +1,26 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.admin.model.DataPermissions;
+import com.ydtech.modules.admin.model.vo.DataPermissionsVo;
+import com.ydtech.modules.fnc.entity.ContractEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface DataPermissionsMapper   extends BaseMapper<DataPermissions> {
+
+    IPage<DataPermissions> queryPage(@Param("page") Page page, @Param("vo") DataPermissionsVo dataPermissionsVo);
+
+    List<DataPermissions> getByPath(String path);
+    /**
+     *
+     * @param dataPermissionsVo
+     * @return  菜单数据权限查询
+     */
+    List<DataPermissions> queryList(@Param("vo") DataPermissionsVo dataPermissionsVo);
+}

+ 14 - 0
src/main/java/com/ydtech/modules/admin/dao/InsRoleMenuPermissionsMapper.java

@@ -0,0 +1,14 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.InsRoleMenuPermissions;
+import com.ydtech.modules.admin.model.dto.InsRoleMenuPermissionsDto;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface InsRoleMenuPermissionsMapper extends BaseMapper<InsRoleMenuPermissions> {
+    List<InsRoleMenuPermissionsDto> getRoleMenuPermissionsList(InsRoleMenuPermissionsDto insRoleMenuPermissionsDto);
+
+}

+ 18 - 0
src/main/java/com/ydtech/modules/admin/dao/InsRolePermissionsMapper.java

@@ -0,0 +1,18 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.InsRolePermissions;
+import com.ydtech.modules.admin.model.dto.InsRolePermissionsDto;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface InsRolePermissionsMapper  extends BaseMapper<InsRolePermissions> {
+    /**
+     *
+     * @param insRolePermissionsDto
+     * @return  通过角色 菜单id  获取 权限规则
+     */
+    List<InsRolePermissions> getInsRolePermissionsServiceList(InsRolePermissionsDto insRolePermissionsDto);
+}

+ 112 - 0
src/main/java/com/ydtech/modules/admin/model/DataPermissions.java

@@ -0,0 +1,112 @@
+package com.ydtech.modules.admin.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ydtech.modules.base.model.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 数据权限
+ */
+@ApiModel
+@Data
+@TableName(value = "ins_data_permissions")
+public class DataPermissions implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 编号
+     */
+    @ApiModelProperty(value = "id")
+    @TableId(value = "id")
+    private String id;
+
+    /**
+     * 用户ID
+     */
+    @ApiModelProperty(value = "用户ID")
+    @TableField(value = "user_id")
+    private String userId;
+
+    /**
+     * 部门ID
+     */
+    @ApiModelProperty(value = "部门ID")
+    @TableField(value = "dept_id")
+    private String deptId;
+
+
+    /**
+     * 规则名称
+     */
+    @ApiModelProperty(value = "规则名称")
+    @TableField(value = "rule_name")
+    private String ruleName;
+
+
+    /**
+     * 规则字段
+     */
+    @ApiModelProperty(value = "规则字段")
+    @TableField(value = "rule_field")
+    private String ruleField;
+
+
+    /**
+     * 条件规则
+     */
+    @ApiModelProperty(value = "条件规则")
+    @TableField(value = "rule_condition")
+    private String ruleCondition;
+
+    /**
+     * 规则值
+     */
+    @ApiModelProperty(value = "规则值")
+    @TableField(value = "rule_value")
+    private String ruleValue;
+
+
+    /**
+     * 状态
+     */
+    @ApiModelProperty(value = "状态")
+    @TableField(value = "status")
+    private String status;
+
+    /**
+     * 创建日期
+     */
+    @ApiModelProperty(value = "创建日期")
+    @TableField(value = "create_time")
+    private LocalDateTime createTime;
+
+    /**
+     * 菜单id
+     */
+    @ApiModelProperty(value = "菜单id")
+    @TableField(value = "menu_id")
+    private String menuId;
+
+    /**
+     * 接口路径
+     */
+    @ApiModelProperty(value = "接口路径")
+    @TableField(value = "interface_url")
+    private String interfaceUrl;
+
+
+    /**
+     * 接口路径
+     */
+    @ApiModelProperty(value = "自定义sql")
+    @TableField(value = "custom_sql")
+    private String customSql;
+
+
+}

+ 59 - 0
src/main/java/com/ydtech/modules/admin/model/InsRoleMenuPermissions.java

@@ -0,0 +1,59 @@
+package com.ydtech.modules.admin.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 角色菜单数据权限
+ */
+@ApiModel
+@Data
+@TableName(value = "ins_role_menu_permissions")
+public class InsRoleMenuPermissions implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+    /**
+     * 编号
+     */
+    @ApiModelProperty(value = "id")
+    @TableId(value = "id")
+    private String id;
+
+    /**
+     * 角色id
+     */
+    @ApiModelProperty(value = "角色id")
+    @TableField(value = "role_id")
+    private String roleId;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    @TableField(value = "user_id")
+    private String userId;
+
+
+    /**
+     * 创建日期
+     */
+    @ApiModelProperty(value = "创建日期")
+    @TableField(value = "create_time")
+    private LocalDateTime createTime;
+
+
+    /**
+     * 菜单id
+     */
+    @ApiModelProperty(value = "菜单id")
+    @TableField(value = "menu_id")
+    private String menuId;
+
+}

+ 75 - 0
src/main/java/com/ydtech/modules/admin/model/InsRolePermissions.java

@@ -0,0 +1,75 @@
+package com.ydtech.modules.admin.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 角色数据权限
+ */
+@ApiModel
+@Data
+@TableName(value = "ins_role_permissions")
+public class InsRolePermissions implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 编号
+     */
+    @ApiModelProperty(value = "id")
+    @TableId(value = "id")
+    private String id;
+
+    /**
+     * 角色id
+     */
+    @ApiModelProperty(value = "角色id")
+    @TableField(value = "role_id")
+    private String roleId;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    @TableField(value = "user_id")
+    private String userId;
+
+
+    /**
+     * 规则id
+     */
+    @ApiModelProperty(value = "规则id")
+    @TableField(value = "permissions_id")
+    private String permissionsId;
+
+    /**
+     * 状态
+     */
+    @ApiModelProperty(value = "状态")
+    @TableField(value = "status")
+    private String status;
+
+
+    /**
+     * 创建日期
+     */
+    @ApiModelProperty(value = "创建日期")
+    @TableField(value = "create_time")
+    private LocalDateTime createTime;
+
+
+    /**
+     * 菜单id
+     */
+    @ApiModelProperty(value = "菜单id")
+    @TableField(value = "menu_id")
+    private String menuId;
+
+
+
+}

+ 66 - 0
src/main/java/com/ydtech/modules/admin/model/dto/DataPermissionsDto.java

@@ -0,0 +1,66 @@
+package com.ydtech.modules.admin.model.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 数据权限实体
+ */
+@Data
+@ApiModel("数据权限实体")
+public class DataPermissionsDto implements Serializable {
+
+
+    @ApiModelProperty(value = "id")
+    private String id;
+
+    @ApiModelProperty(value = "用户ID")
+    private String userId;
+
+    @ApiModelProperty(value = "部门ID")
+    private String deptId;
+
+    @ApiModelProperty(value = "规则名称")
+    private String ruleName;
+
+    @ApiModelProperty(value = "规则字段")
+    private String ruleField;
+
+    @ApiModelProperty(value = "条件规则")
+    private String ruleCondition;
+
+    @ApiModelProperty(value = "规则值")
+    private String ruleValue;
+
+    @ApiModelProperty(value = "状态")
+    private String status;
+
+    @ApiModelProperty(value = "创建日期")
+    private LocalDateTime createTime;
+
+    /**
+     * 菜单id
+     */
+    @ApiModelProperty(value = "菜单id")
+    private String menuId;
+
+    /**
+     * 接口路径
+     */
+    @ApiModelProperty(value = "接口路径")
+    private String interfaceUrl;
+
+    /**
+     * 接口路径
+     */
+    @ApiModelProperty(value = "自定义sql")
+    private String customSql;
+
+
+
+}

+ 56 - 0
src/main/java/com/ydtech/modules/admin/model/dto/InsRoleMenuPermissionsDto.java

@@ -0,0 +1,56 @@
+package com.ydtech.modules.admin.model.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 数据权限角色关联实体
+ */
+@Data
+@ApiModel("数据权限角色菜单关联表")
+public class InsRoleMenuPermissionsDto {
+    /**
+     * 编号
+     */
+    @ApiModelProperty(value = "id")
+    private String id;
+
+    /**
+     * 角色id
+     */
+    @ApiModelProperty(value = "角色id")
+    private String roleId;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+
+    /**
+     * 创建日期
+     */
+    @ApiModelProperty(value = "创建日期")
+    private LocalDateTime createTime;
+
+
+    /**
+     * 菜单id
+     */
+    @ApiModelProperty(value = "菜单id")
+    private String menuId;
+
+    /**
+     * 菜单id
+     */
+    @ApiModelProperty(value = "菜单idList")
+    private List<String> menuIdList;
+
+}

+ 51 - 0
src/main/java/com/ydtech/modules/admin/model/dto/InsRolePermissionsDto.java

@@ -0,0 +1,51 @@
+package com.ydtech.modules.admin.model.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 数据权限角色关联实体
+ */
+@Data
+@ApiModel("数据权限角色关联实体")
+public class InsRolePermissionsDto {
+
+    @ApiModelProperty(value = "id")
+    private String id;
+
+
+    @ApiModelProperty(value = "角色id")
+    private String roleId;
+
+
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+
+    @ApiModelProperty(value = "规则id")
+    private String permissionsId;
+
+
+    @ApiModelProperty(value = "状态")
+    private String status;
+
+
+    @ApiModelProperty(value = "创建日期")
+    private LocalDateTime createTime;
+
+
+    @ApiModelProperty(value = "菜单id")
+    private String menuId;
+
+
+    @ApiModelProperty(value = "规则idList")
+    private List<String> permissionsIdList;
+
+
+}

+ 53 - 0
src/main/java/com/ydtech/modules/admin/model/vo/DataPermissionsVo.java

@@ -0,0 +1,53 @@
+package com.ydtech.modules.admin.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+import java.util.List;
+
+@Data
+public class DataPermissionsVo {
+    @ApiModelProperty(value = "id")
+    private String id;
+
+    @ApiModelProperty(value = "用户ID")
+    private String userId;
+
+    @ApiModelProperty(value = "部门ID")
+    private String deptId;
+
+    @ApiModelProperty(value = "规则名称")
+    private String ruleName;
+
+    @ApiModelProperty(value = "规则字段")
+    private String ruleField;
+
+    @ApiModelProperty(value = "条件规则")
+    private String ruleCondition;
+
+    @ApiModelProperty(value = "规则值")
+    private String ruleValue;
+
+    @ApiModelProperty(value = "状态")
+    private String status;
+
+    @ApiModelProperty(value = "创建日期")
+    private String createTime;
+    @ApiModelProperty(value = "每页页数")
+    private int pageSize;
+
+    @ApiModelProperty(value = "页数")
+    @Min(value = 1, message = "页数最小为1")
+    private int pageNum;
+
+    @ApiModelProperty(value = "菜单id")
+    private String menuId;
+
+    @ApiModelProperty(value = "permissionsIdList")
+    private List<String> permissionsList;
+
+
+
+}

+ 38 - 0
src/main/java/com/ydtech/modules/admin/service/DataPermissionsService.java

@@ -0,0 +1,38 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ydtech.extension.BaseIService;
+import com.ydtech.modules.admin.model.DataPermissions;
+import com.ydtech.modules.admin.model.dto.DataPermissionsDto;
+import com.ydtech.modules.admin.model.vo.DataPermissionsVo;
+
+import java.util.List;
+
+public interface DataPermissionsService  extends BaseIService<DataPermissions> {
+    /**
+     * @param dataPermissionsDto
+     * @return 新增数据权限
+     */
+    void saveAndUpdate(DataPermissionsDto dataPermissionsDto);
+
+    /**
+     * @description: 分页查询
+     * @author: whp
+     **/
+    IPage<DataPermissions> queryPage(DataPermissionsVo dataPermissionsVo);
+
+    /**
+     *
+     * @param id
+     * @return  回显
+     */
+    DataPermissions getSelectById(String id);
+
+    /**
+     *
+     * @param dataPermissionsVo
+     * @return  菜单数据权限查询
+     */
+    List<DataPermissions> queryList(DataPermissionsVo dataPermissionsVo);
+
+}

+ 20 - 0
src/main/java/com/ydtech/modules/admin/service/InsRoleMenuPermissionsService.java

@@ -0,0 +1,20 @@
+package com.ydtech.modules.admin.service;
+
+import com.ydtech.modules.admin.model.InsRoleMenuPermissions;
+import com.ydtech.modules.admin.model.dto.InsRoleMenuPermissionsDto;
+
+import java.util.List;
+
+public interface InsRoleMenuPermissionsService {
+    void saveAndUpdateRuleMenu(InsRoleMenuPermissionsDto insRoleMenuPermissionsDto);
+
+    List<InsRoleMenuPermissions> getInsRoleMenuPermissions(InsRoleMenuPermissionsDto insRoleMenuPermissionsDto);
+
+    /**
+     *
+     * @param insRoleMenuPermissionsDto
+     * @return  查询角色菜单
+     */
+    List<InsRoleMenuPermissionsDto> getRoleMenuPermissionsList(InsRoleMenuPermissionsDto insRoleMenuPermissionsDto);
+
+}

+ 40 - 0
src/main/java/com/ydtech/modules/admin/service/InsRolePermissionsService.java

@@ -0,0 +1,40 @@
+package com.ydtech.modules.admin.service;
+
+import com.ydtech.extension.BaseIService;
+import com.ydtech.modules.admin.model.InsRoleMenuPermissions;
+import com.ydtech.modules.admin.model.InsRolePermissions;
+import com.ydtech.modules.admin.model.dto.InsRoleMenuPermissionsDto;
+import com.ydtech.modules.admin.model.dto.InsRolePermissionsDto;
+
+import java.util.List;
+
+public interface InsRolePermissionsService extends BaseIService<InsRolePermissions> {
+
+    void insertAndUpdate(InsRolePermissionsDto insRolePermissionsDto);
+
+    /**
+     * 权限角色关联表
+     * @param insRoleMenuPermissionsDto
+     */
+    void saveAndUpdateRuleMenu(InsRoleMenuPermissionsDto insRoleMenuPermissionsDto);
+
+    /**
+     *
+     * @param insRoleMenuPermissionsDto
+     * @return  获取数据权限菜单列表
+     */
+    List<InsRoleMenuPermissions> getInsRoleMenuPermissions(InsRoleMenuPermissionsDto insRoleMenuPermissionsDto);
+    /**
+     * @param
+     * @return 获取菜单数据权限
+     */
+    List<InsRolePermissions> getInsRolePermissionsDtoList(InsRolePermissionsDto insRolePermissionsDto);
+
+    /**
+     *
+     * @param insRolePermissionsDto
+     * @return  通过角色 菜单id  获取 权限规则
+     */
+    List<InsRolePermissions> getInsRolePermissionsServiceList(InsRolePermissionsDto insRolePermissionsDto);
+
+}

+ 69 - 0
src/main/java/com/ydtech/modules/admin/service/impl/DataPermissionsServiceImpl.java

@@ -0,0 +1,69 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.DataPermissionsMapper;
+import com.ydtech.modules.admin.model.DataPermissions;
+import com.ydtech.modules.admin.model.dto.DataPermissionsDto;
+import com.ydtech.modules.admin.model.vo.DataPermissionsVo;
+import com.ydtech.modules.admin.service.DataPermissionsService;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.base.model.vo.PageVo;
+import com.ydtech.modules.fnc.entity.ContractEntity;
+import com.ydtech.modules.fnc.vo.ContractVo;
+import com.ydtech.utils.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public class DataPermissionsServiceImpl   extends ServiceImpl<DataPermissionsMapper, DataPermissions>  implements DataPermissionsService {
+    /**
+     * 新增或修改数据权限
+     * @param dataPermissionsDto
+     */
+    @Override
+    public void saveAndUpdate(DataPermissionsDto dataPermissionsDto) {
+        String id = dataPermissionsDto.getId();
+        if(StringUtils.isEmpty(id)){
+            DataPermissions dataPermissions = new DataPermissions();
+            BeanUtils.copyProperties(dataPermissionsDto, dataPermissions);
+            dataPermissions.setUserId(BaseController.getUserId());
+            dataPermissions.setDeptId(BaseController.getDeptId());
+            dataPermissions.setCreateTime(LocalDateTime.now());
+            baseMapper.insert(dataPermissions);
+        }else {
+            DataPermissions dataPermissions = new DataPermissions();
+            BeanUtils.copyProperties(dataPermissionsDto,dataPermissions);
+            baseMapper.updateById(dataPermissions);
+        }
+    }
+
+    @Override
+    public IPage<DataPermissions> queryPage(DataPermissionsVo dataPermissionsVo) {
+        PageVo<DataPermissionsVo> pageVo = new PageVo<>();
+        Page page = new Page(dataPermissionsVo.getPageNum(), dataPermissionsVo.getPageSize());
+        pageVo.setPageNum(dataPermissionsVo.getPageNum());
+        pageVo.setPageSize(dataPermissionsVo.getPageSize());
+        IPage<DataPermissions> queriedPage = baseMapper.queryPage(page, dataPermissionsVo);
+        return queriedPage;
+    }
+
+    @Override
+    public DataPermissions getSelectById(String id) {
+        return baseMapper.selectById(id);
+    }
+    /**
+     *
+     * @param dataPermissionsVo
+     * @return  菜单数据权限查询
+     */
+    @Override
+    public List<DataPermissions> queryList(DataPermissionsVo dataPermissionsVo) {
+        return baseMapper.queryList(dataPermissionsVo);
+    }
+}

+ 62 - 0
src/main/java/com/ydtech/modules/admin/service/impl/InsRoleMenuPermissionsServiceImpl.java

@@ -0,0 +1,62 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.exception.SystemException;
+import com.ydtech.modules.admin.dao.InsRoleMenuPermissionsMapper;
+import com.ydtech.modules.admin.model.InsRoleMenuPermissions;
+import com.ydtech.modules.admin.model.dto.InsRoleMenuPermissionsDto;
+import com.ydtech.modules.admin.service.InsRoleMenuPermissionsService;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.utils.StringUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+@Transactional
+public class InsRoleMenuPermissionsServiceImpl  extends ServiceImpl<InsRoleMenuPermissionsMapper, InsRoleMenuPermissions> implements InsRoleMenuPermissionsService {
+    @Override
+    public void saveAndUpdateRuleMenu(InsRoleMenuPermissionsDto insRoleMenuPermissionsDto) {
+        String roleId = insRoleMenuPermissionsDto.getRoleId();
+        ArrayList<InsRoleMenuPermissions> insertList = new ArrayList<>();
+        List<String> menuIdList = insRoleMenuPermissionsDto.getMenuIdList();
+        if(StringUtils.isEmpty(roleId)){
+            throw new SystemException("角色id不能为null");
+        }
+        //通过角色id查询
+        QueryWrapper<InsRoleMenuPermissions> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("role_id",roleId);
+        List<InsRoleMenuPermissions> insRoleMenuPermissions = baseMapper.selectList(queryWrapper);
+        if(!insRoleMenuPermissions.isEmpty()){
+            baseMapper.deleteBatchIds(insRoleMenuPermissions);
+        }
+
+        for (String s : menuIdList) {
+            InsRoleMenuPermissions insRoleMenuPermissions1 = new InsRoleMenuPermissions();
+            insRoleMenuPermissions1.setMenuId(s);
+            insRoleMenuPermissions1.setRoleId(roleId);
+            insRoleMenuPermissions1.setUserId(BaseController.getUserId());
+            insRoleMenuPermissions1.setCreateTime(LocalDateTime.now());
+            insertList.add(insRoleMenuPermissions1);
+        }
+        this.saveBatch(insertList);
+
+
+    }
+
+    @Override
+    public List<InsRoleMenuPermissions> getInsRoleMenuPermissions(InsRoleMenuPermissionsDto insRoleMenuPermissionsDto) {
+        QueryWrapper<InsRoleMenuPermissions> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("role_id",insRoleMenuPermissionsDto.getRoleId());
+        return baseMapper.selectList(queryWrapper);
+    }
+
+    @Override
+    public List<InsRoleMenuPermissionsDto> getRoleMenuPermissionsList(InsRoleMenuPermissionsDto insRoleMenuPermissionsDto) {
+        return baseMapper.getRoleMenuPermissionsList(insRoleMenuPermissionsDto);
+    }
+}

+ 99 - 0
src/main/java/com/ydtech/modules/admin/service/impl/InsRolePermissionsServiceImpl.java

@@ -0,0 +1,99 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.InsRolePermissionsMapper;
+import com.ydtech.modules.admin.model.InsRoleMenuPermissions;
+import com.ydtech.modules.admin.model.InsRolePermissions;
+import com.ydtech.modules.admin.model.dto.InsRoleMenuPermissionsDto;
+import com.ydtech.modules.admin.model.dto.InsRolePermissionsDto;
+import com.ydtech.modules.admin.service.InsRoleMenuPermissionsService;
+import com.ydtech.modules.admin.service.InsRolePermissionsService;
+import com.ydtech.modules.base.controller.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+public class InsRolePermissionsServiceImpl extends ServiceImpl<InsRolePermissionsMapper, InsRolePermissions> implements InsRolePermissionsService {
+    @Autowired
+    private InsRoleMenuPermissionsService insRoleMenuPermissionsService;
+    /**
+     * 新增角色关联权限
+     *
+     * @param insRolePermissionsDto
+     */
+    @Override
+    @Transactional
+    public void insertAndUpdate(InsRolePermissionsDto insRolePermissionsDto) {
+        ArrayList<InsRolePermissions> insRolePermissionsArrayList = new ArrayList<>();
+        //先查看是否存在已配置该权限
+        QueryWrapper<InsRolePermissions> queryWrapper = new QueryWrapper<>();
+
+        queryWrapper.eq("role_id", insRolePermissionsDto.getRoleId())
+                .eq("menu_id", insRolePermissionsDto.getMenuId());
+
+        List<InsRolePermissions> insRolePermissions = baseMapper.selectList(queryWrapper);
+        List<String> ids = insRolePermissions.stream().map(InsRolePermissions::getId).collect(Collectors.toList());
+
+        //删除已配置的权限
+        if(!ids.isEmpty()){
+            baseMapper.deleteBatchIds(ids);
+        }
+
+        List<String> permissionsIdList = insRolePermissionsDto.getPermissionsIdList();
+        for (String s : permissionsIdList) {
+            InsRolePermissions insRolePermissions1 = new InsRolePermissions();
+            String userId = BaseController.getUserId();
+            insRolePermissions1.setUserId(userId);
+            insRolePermissions1.setRoleId(insRolePermissionsDto.getRoleId());
+            insRolePermissions1.setMenuId(insRolePermissionsDto.getMenuId());
+            insRolePermissions1.setPermissionsId(s);
+            insRolePermissions1.setCreateTime(LocalDateTime.now());
+            insRolePermissionsArrayList.add(insRolePermissions1);
+        }
+        this.saveBatch(insRolePermissionsArrayList);
+    }
+
+    @Override
+    @Transactional
+    public void saveAndUpdateRuleMenu(InsRoleMenuPermissionsDto insRoleMenuPermissionsDto) {
+        insRoleMenuPermissionsService.saveAndUpdateRuleMenu(insRoleMenuPermissionsDto);
+
+    }
+
+    /**
+     * @param
+     * @return 获取数据权限菜单列表
+     */
+    @Override
+    public List<InsRoleMenuPermissions> getInsRoleMenuPermissions(InsRoleMenuPermissionsDto insRoleMenuPermissionsDto) {
+
+        return insRoleMenuPermissionsService.getInsRoleMenuPermissions(insRoleMenuPermissionsDto);
+    }
+    /**
+     * @param
+     * @return 获取菜单数据权限
+     */
+    @Override
+    public List<InsRolePermissions> getInsRolePermissionsDtoList(InsRolePermissionsDto insRolePermissionsDto) {
+        QueryWrapper<InsRolePermissions> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("menu_id",insRolePermissionsDto.getMenuId())
+                .eq("role_id",insRolePermissionsDto.getRoleId());
+        return  baseMapper.selectList(queryWrapper);
+    }
+    /**
+     *
+     * @param insRolePermissionsDto
+     * @return  通过角色 菜单id  获取 权限规则
+     */
+    @Override
+    public List<InsRolePermissions> getInsRolePermissionsServiceList(InsRolePermissionsDto insRolePermissionsDto) {
+        return baseMapper.getInsRolePermissionsServiceList(insRolePermissionsDto);
+    }
+}

+ 18 - 0
src/main/java/com/ydtech/modules/admin/utils/DataParams.java

@@ -0,0 +1,18 @@
+package com.ydtech.modules.admin.utils;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.HashMap;
+@Data
+public class DataParams {
+
+    @ApiModelProperty(value = "权限sql")
+    private String stringBufferContent;
+
+
+    @ApiModelProperty(value = "权限Map")
+    private HashMap<String,Object> stringBufferContentMap;
+
+
+}

+ 2 - 0
src/main/java/com/ydtech/modules/fnc/controller/contract/ContractController.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.fnc.controller.contract;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ydtech.aop.GetStringBufferContent;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.model.dto.TaskStatisticsDto;
 import com.ydtech.modules.admin.model.vo.KztGetDeptUtilsDto;
@@ -47,6 +48,7 @@ public class ContractController extends BaseController {
      **/
     @PostMapping("queryPage")
     @ApiOperation(value = "合同分页查询")
+    @GetStringBufferContent
     public HttpResult<IPage<ContractEntity>> queryPage(@RequestBody ContractVo contractVO) {
         try {
             IPage<ContractEntity> result = contractService.queryPage(contractVO);

+ 1 - 1
src/main/java/com/ydtech/modules/fnc/dao/contract/ContractMapper.java

@@ -19,7 +19,7 @@ public interface ContractMapper  extends BaseMapper<ContractEntity> {
      * @param contractVO
      * @return  合同分页
      */
-    IPage<ContractEntity> queryPage(@Param("page") Page page,@Param("vo") ContractVo contractVO);
+    IPage<ContractEntity> queryPage(@Param("page") Page page,@Param("vo") ContractVo contractVO,@Param("mapValue") HashMap<String,Object> map);
 
     /**
      *

+ 1 - 1
src/main/java/com/ydtech/modules/fnc/service/contract/impl/contractServiceImpl.java

@@ -277,7 +277,7 @@ public class contractServiceImpl extends ServiceImpl<ContractMapper, ContractEnt
             List<String> supIds = new ArrayList<>(uniqueIds);
             contractVO.setSupplierIdList(supIds);
         }
-        IPage<ContractEntity> queriedPage = contractMapper.queryPage(page, contractVO);
+        IPage<ContractEntity> queriedPage = contractMapper.queryPage(page, contractVO,contractVO.getStringBufferContentMap());
         List<ContractEntity> records = queriedPage.getRecords();
         if (!records.isEmpty()) {
             for (ContractEntity record : records) {

+ 3 - 1
src/main/java/com/ydtech/modules/fnc/vo/ContractVo.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.fnc.vo;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.ydtech.modules.admin.utils.DataParams;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -10,11 +11,12 @@ import lombok.Data;
 import javax.validation.constraints.Min;
 import java.io.Serializable;
 import java.time.LocalDateTime;
+import java.util.HashMap;
 import java.util.List;
 
 @Data
 @ApiModel("合同查询vo")
-public class ContractVo implements Serializable {
+public class ContractVo  extends DataParams implements Serializable {
     @ApiModelProperty("主键")
     private String id;
 

+ 17 - 6
src/main/java/com/ydtech/modules/inv/utils/CheckInsPlyComeUtils.java

@@ -20,6 +20,7 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.time.format.DateTimeFormatter;
 import java.util.HashMap;
 import java.util.Map;
@@ -284,13 +285,23 @@ public class CheckInsPlyComeUtils {
     }
 
     private static String pareTimeLocalDate(String signDate) {
-        DateTimeFormatter originalFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-        DateTimeFormatter targetFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-        // 解析原始字符串日期为 LocalDateTime
-        LocalDateTime originalDateTime = LocalDateTime.parse(signDate, originalFormatter);
+        // 定义输入格式(仅日期)
+        DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+
+        // 解析原始字符串日期为 LocalDate
+        LocalDate localDate = LocalDate.parse(signDate, inputFormatter);
+
+        // 创建一个表示午夜的 LocalTime
+        LocalTime localTime = LocalTime.MIDNIGHT; // 或者 LocalTime.of(0, 0, 0)
+
+        // 将 LocalDate 和 LocalTime 合并为 LocalDateTime
+        LocalDateTime localDateTime = localDate.atTime(localTime);
+
+        // 定义输出格式(日期和时间)
+        DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
         // 将 LocalDateTime 转换为目标格式的字符串
-        String b = originalDateTime.format(targetFormatter);
-        return b;
+        return localDateTime.format(outputFormatter);
     }
 
     /**

+ 40 - 0
src/main/resources/mapper/modules/admin/DataPermissionsMapper.xml

@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.admin.dao.DataPermissionsMapper">
+
+    <select id="queryPage" resultType="com.ydtech.modules.admin.model.DataPermissions">
+        select * from ins_data_permissions a
+        <where>
+            <if test="vo.menuId !=null  and  vo.menuId !=''">
+                a.menu_id =#{vo.menuId}
+            </if>
+        </where>
+    </select>
+
+
+    <select id="getByPath" resultType="com.ydtech.modules.admin.model.DataPermissions">
+        select * from ins_data_permissions a
+        <where>
+            <if test="path !=null  and  path !=''">
+                a.interface_url =#{path}
+            </if>
+        </where>
+    </select>
+
+
+    <select id="queryList" resultType="com.ydtech.modules.admin.model.DataPermissions">
+        select * from ins_data_permissions a
+        <where>
+            <if test="vo.menuId !=null  and  vo.menuId !=''">
+              and  a.menu_id =#{vo.menuId}
+            </if>
+            <if test="vo.permissionsList !=null  and  vo.permissionsList !=''  and  vo.permissionsList.size()>0">
+              and  a.id  in
+                <foreach collection="vo.permissionsList" item="id" index="index" open="(" close=")" separator=",">
+                    #{id}
+                </foreach>
+            </if>
+        </where>
+    </select>
+</mapper>
+

+ 19 - 0
src/main/resources/mapper/modules/admin/InsRoleMenuPermissionsMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.admin.dao.InsRoleMenuPermissionsMapper">
+    <select id="getRoleMenuPermissionsList" resultType="com.ydtech.modules.admin.model.dto.InsRoleMenuPermissionsDto">
+        select * from
+        ins_role_menu_permissions a
+        <where>
+            <if test="roleId  !=null  and  roleId!='' ">
+                a.role_id =#{roleId}
+            </if>
+
+            <if test="menuId  !=null  and  menuId!='' ">
+              and a.menu_id=#{menuId}
+            </if>
+        </where>
+
+    </select>
+
+</mapper>

+ 16 - 0
src/main/resources/mapper/modules/admin/InsRolePermissionsMapper.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.admin.dao.InsRolePermissionsMapper">
+
+        <select id="getInsRolePermissionsServiceList" resultType="com.ydtech.modules.admin.model.InsRolePermissions">
+            select *  from  ins_role_permissions a
+            <where>
+                <if test="roleId !=null  and  roleId !=''">
+                   and  role_id =#{roleId}
+                </if>
+                <if test="menuId !=null  and  menuId !=''">
+                   and  menu_id =#{menuId}
+                </if>
+            </where>
+        </select>
+</mapper>

+ 3 - 2
src/main/resources/mapper/modules/fnc/contract/ContractMapper.xml

@@ -44,8 +44,9 @@
             <if test="vo.contractStatus !=null  and  vo.contractStatus !=''  and vo.contractStatus !='all'">
                 and ic.contract_status =#{vo.contractStatus}
             </if>
-
-
+            <if test="vo.stringBufferContent !=null  and  vo.stringBufferContent !=''">
+                ${vo.stringBufferContent}
+            </if>
         </where>
     </select>