zhouyy преди 2 месеца
родител
ревизия
b2ea8a83ce
променени са 17 файла, в които са добавени 730 реда и са изтрити 15 реда
  1. 68 4
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/TableColumnController.java
  2. 47 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/BusObjRelation.java
  3. 77 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/BusReportStore.java
  4. 69 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/CusReportForm.java
  5. 43 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/ReportFormAccess.java
  6. 14 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/bo/FormStorePageBO.java
  7. 24 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/bo/PageBO.java
  8. 7 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/mapper/BusObjRelationMapper.java
  9. 0 2
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/mapper/BusObjectMapper.java
  10. 11 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/mapper/BusReportStoreMapper.java
  11. 7 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/mapper/CusReportFormMapper.java
  12. 14 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/mapper/ReportFormAccessMapper.java
  13. 20 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/CusTableColumnService.java
  14. 252 9
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/CusTableColumnServiceImpl.java
  15. 6 0
      fhKeeper/formulahousekeeper/management-crm/src/main/resources/mapper/BusObjectMapper.xml
  16. 35 0
      fhKeeper/formulahousekeeper/management-crm/src/main/resources/mapper/BusReportStoreMapper.xml
  17. 36 0
      fhKeeper/formulahousekeeper/management-crm/src/main/resources/mapper/ReportFormAccessMapper.xml

+ 68 - 4
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/TableColumnController.java

@@ -1,10 +1,13 @@
 package com.management.platform.controller;
 
+import com.management.platform.entity.BusReportStore;
+import com.management.platform.entity.CusReportForm;
+import com.management.platform.entity.bo.FormStorePageBO;
+import com.management.platform.entity.bo.PageBO;
 import com.management.platform.service.CusTableColumnService;
 import com.management.platform.util.HttpRespMsg;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
@@ -16,7 +19,51 @@ public class TableColumnController {
     @Resource
     private CusTableColumnService cusTableColumnService;
 
-//    @RequestMapping("/")
+
+    @PostMapping("/deleteReportForm")
+    public HttpRespMsg deleteReportForm(@RequestParam(value = "formId")Integer formId,HttpServletRequest request){
+        HttpRespMsg msg = new HttpRespMsg();
+        msg = cusTableColumnService.deleteReportForm(formId,request);
+        return msg;
+    }
+
+    /**更新报表*/
+    @PostMapping("/addOrUpdateReportForm")
+    public HttpRespMsg addOrUpdateReportForm(@Validated @RequestBody CusReportForm cusReportForm, HttpServletRequest request){
+        HttpRespMsg msg = new HttpRespMsg();
+        msg = cusTableColumnService.addOrUpdateReportForm(cusReportForm,request);
+        return msg;
+    }
+
+    @PostMapping("/deleteFormStore")
+    public HttpRespMsg deleteFormStore(@RequestParam(value = "storeId")Integer storeId,HttpServletRequest request){
+        HttpRespMsg msg = new HttpRespMsg();
+        msg = cusTableColumnService.deleteFormStore(storeId,request);
+        return msg;
+    }
+
+
+    /**更新文件夹*/
+    @PostMapping("/addOrUpdateFormStore")
+    public HttpRespMsg addOrUpdateFormStore(@Validated @RequestBody BusReportStore busReportStore, HttpServletRequest request){
+        HttpRespMsg msg = new HttpRespMsg();
+        msg = cusTableColumnService.addOrUpdateFormStore(busReportStore,request);
+        return msg;
+    }
+
+    @PostMapping("getFormStorePage")
+    public HttpRespMsg getFormStorePage(@RequestBody @Validated PageBO<FormStorePageBO> queryBO,HttpServletRequest request){
+        HttpRespMsg msg = new HttpRespMsg();
+        msg = cusTableColumnService.getFormStorePage(queryBO,request);
+        return msg;
+    }
+
+    @RequestMapping("/getAllBusTable")
+    public HttpRespMsg getAllBusTable(HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        msg = cusTableColumnService.getAllBusTable(request);
+        return msg;
+    }
 
     @RequestMapping("/getStructByTableName")
     public HttpRespMsg getStructByTableName(@RequestParam("tableName") String tableName, HttpServletRequest request) {
@@ -24,4 +71,21 @@ public class TableColumnController {
         msg = cusTableColumnService.getStructByTableName(tableName,request);
         return msg;
     }
+
+    @RequestMapping("/getRelateTableByFromColumn")
+    public HttpRespMsg getRelateTableByFromColumn(@RequestParam("columnName") String columnName
+            , @RequestParam("tableName") String tableName
+            ,HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        msg = cusTableColumnService.getRelateTableByFromColumn(tableName,columnName,request);
+        return msg;
+    }
+
+    @RequestMapping("/getRelateBusTableByFromTable")
+    public HttpRespMsg getRelateBusTableByFromTable(@RequestParam("tableName") String tableName
+            ,HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        msg = cusTableColumnService.getRelateBusTableByFromTable(tableName,request);
+        return msg;
+    }
 }

+ 47 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/BusObjRelation.java

@@ -0,0 +1,47 @@
+package com.management.platform.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class BusObjRelation extends Model<BusObjRelation> {
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**主表*/
+    @TableField("from_tbl")
+    private String fromTbl;
+
+    /**子表*/
+    @TableField("to_tbl")
+    private String toTbl;
+
+    /**主表字段*/
+    @TableField("from_col")
+    private String fromCol;
+
+    /**主表字段对应业务对象名称*/
+    @TableField("from_col_bus_name")
+    private String fromColBusName;
+
+    /**子表字段*/
+    @TableField("to_col")
+    private String toCol;
+
+    /**字典code对应的值*/
+    @TableField("dict_code")
+    private String dictCode;
+
+    /**是否一对多关系*/
+    @TableField("one_to_many")
+    private Integer oneToMany;
+}

+ 77 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/BusReportStore.java

@@ -0,0 +1,77 @@
+package com.management.platform.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class BusReportStore extends Model<BusReportStore> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**文件类型 1文件夹 2报表*/
+    @TableField("store_type")
+    private Integer storeType;
+
+    /**名称*/
+    @TableField("store_name")
+    private String storeName;
+
+    /**父级文件夹id 默认0*/
+    @TableField("parent_store_id")
+    private Integer parentStoreId;
+
+    /**创建人id*/
+    @TableField("create_by")
+    private String createBy;
+
+    @TableField(exist = false)
+    private String createName;
+
+    /**创建时间*/
+    @TableField("create_time")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date createTime;
+
+    /**更新人id*/
+    @TableField("update_by")
+    private String updateBy;
+
+    @TableField(exist = false)
+    private String updateName;
+    /**更新时间*/
+    @TableField("update_time")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date updateTime;
+
+    /**描述*/
+    @TableField("description")
+    private String description;
+
+    /**排序*/
+    @TableField("order_item")
+    private Integer orderItem;
+
+    /**关联报表id*/
+    @TableField("relate_form_id")
+    private Integer relateFormId;
+
+    /**所属公司id*/
+    @TableField("company_id")
+    private Integer companyId;
+}

+ 69 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/CusReportForm.java

@@ -0,0 +1,69 @@
+package com.management.platform.entity;
+
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class CusReportForm extends Model<CusReportForm> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**报表名称*/
+    @TableField("report_form_name")
+    private String reportFormName;
+
+    /**1公开 2私有*/
+    @TableField("privilege")
+    private Integer privilege;
+
+    /**创建人id*/
+    @TableField("create_by")
+    private String createBy;
+
+    /**创建时间*/
+    @TableField("create_time")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date createTime;
+
+    /**执行sql*/
+    @TableField("execute_sql")
+    private String executeSql;
+
+    /**所属公司id*/
+    @TableField("company_id")
+    private Integer companyId;
+
+    @TableField(exist = false)
+    private List<ReportFormAccess> deptAccessList;
+
+
+    @TableField(exist = false)
+    private List<ReportFormAccess> userAccessList;
+
+    @TableField(exist = false)
+    private Integer orderItem;
+
+    @TableField(exist = false)
+    private Integer parentStoreId;
+
+    @TableField(exist = false)
+    private String description;
+
+}

+ 43 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/ReportFormAccess.java

@@ -0,0 +1,43 @@
+package com.management.platform.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ReportFormAccess extends Model<ReportFormAccess> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**1人员 2部门*/
+    @TableField("access_type")
+    private Integer accessType;
+
+    /**关联报表id*/
+    @TableField("relate_from_id")
+    private Integer relateFormId;
+
+    /**1人员 2部门*/
+    @TableField("user_id")
+    private Integer userId;
+
+    /**1人员 2部门*/
+    @TableField("department_id")
+    private Integer departmentId;
+
+    /**1人员 2部门*/
+    @TableField("company_id")
+    private Integer companyId;
+
+    @TableField(exist = false)
+    private String finalName;
+}

+ 14 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/bo/FormStorePageBO.java

@@ -0,0 +1,14 @@
+package com.management.platform.entity.bo;
+
+import lombok.Data;
+
+@Data
+public class FormStorePageBO {
+    /**父文件目录id 默认0*/
+    private Integer parentStoreId;
+
+    /**以下为填充项*/
+    private String userId;
+    private Integer departmentId;
+    private Integer companyId;
+}

+ 24 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/bo/PageBO.java

@@ -0,0 +1,24 @@
+package com.management.platform.entity.bo;
+
+import lombok.Data;
+
+import javax.validation.Valid;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+
+@Data
+public class PageBO<T> implements Serializable {
+
+    @NotNull
+    @Min(value = 1,message = "页码不能小于1")
+    private Integer pageIndex;
+
+    @NotNull
+    @Min(value = 1,message = "显示数量不能小于1")
+    private Integer pageSize;
+
+    @Valid
+    private T data;
+}

+ 7 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/mapper/BusObjRelationMapper.java

@@ -0,0 +1,7 @@
+package com.management.platform.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.management.platform.entity.BusObjRelation;
+
+public interface BusObjRelationMapper extends BaseMapper<BusObjRelation> {
+}

+ 0 - 2
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/mapper/BusObjectMapper.java

@@ -2,8 +2,6 @@ package com.management.platform.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.management.platform.entity.BusObject;
-import org.apache.ibatis.annotations.Mapper;
 
-@Mapper
 public interface BusObjectMapper extends BaseMapper<BusObject> {
 }

+ 11 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/mapper/BusReportStoreMapper.java

@@ -0,0 +1,11 @@
+package com.management.platform.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.management.platform.entity.BusReportStore;
+import com.management.platform.entity.bo.FormStorePageBO;
+import org.apache.ibatis.annotations.Param;
+
+public interface BusReportStoreMapper extends BaseMapper<BusReportStore> {
+    IPage<BusReportStore> getPrivilegedFormStore(IPage<BusReportStore> page, @Param("queryBO") FormStorePageBO queryBO);
+}

+ 7 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/mapper/CusReportFormMapper.java

@@ -0,0 +1,7 @@
+package com.management.platform.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.management.platform.entity.CusReportForm;
+
+public interface CusReportFormMapper extends BaseMapper<CusReportForm> {
+}

+ 14 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/mapper/ReportFormAccessMapper.java

@@ -0,0 +1,14 @@
+package com.management.platform.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.management.platform.entity.ReportFormAccess;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface ReportFormAccessMapper extends BaseMapper<ReportFormAccess> {
+    List<ReportFormAccess> getAccessesByFormIds(@Param("companyId") Integer companyId, @Param("formIds") List<Integer> formIds);
+
+    void batchInsert(@Param("toAddList") List<ReportFormAccess> toAddList);
+
+}

+ 20 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/CusTableColumnService.java

@@ -1,11 +1,31 @@
 package com.management.platform.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.management.platform.entity.BusReportStore;
+import com.management.platform.entity.CusReportForm;
 import com.management.platform.entity.CusTableColumn;
+import com.management.platform.entity.bo.FormStorePageBO;
+import com.management.platform.entity.bo.PageBO;
 import com.management.platform.util.HttpRespMsg;
 
 import javax.servlet.http.HttpServletRequest;
 
 public interface CusTableColumnService extends IService<CusTableColumn> {
     HttpRespMsg getStructByTableName(String tableName, HttpServletRequest request);
+
+    HttpRespMsg getAllBusTable(HttpServletRequest request);
+
+    HttpRespMsg getRelateTableByFromColumn(String tableName, String columnName, HttpServletRequest request);
+
+    HttpRespMsg getRelateBusTableByFromTable(String tableName, HttpServletRequest request);
+
+    HttpRespMsg getFormStorePage(PageBO<FormStorePageBO> queryBO,HttpServletRequest request);
+
+    HttpRespMsg addOrUpdateFormStore(BusReportStore busReportStore, HttpServletRequest request);
+
+    HttpRespMsg addOrUpdateReportForm(CusReportForm cusReportForm, HttpServletRequest request);
+
+    HttpRespMsg deleteFormStore(Integer storeId,HttpServletRequest request);
+
+    HttpRespMsg deleteReportForm(Integer formId, HttpServletRequest request);
 }

+ 252 - 9
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/CusTableColumnServiceImpl.java

@@ -1,23 +1,25 @@
 package com.management.platform.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.management.platform.entity.BusObject;
-import com.management.platform.entity.CusTableColumn;
-import com.management.platform.entity.User;
-import com.management.platform.mapper.BusObjectMapper;
-import com.management.platform.mapper.CusTableColumnMapper;
-import com.management.platform.mapper.UserMapper;
+import com.management.platform.entity.*;
+import com.management.platform.entity.bo.FormStorePageBO;
+import com.management.platform.entity.bo.PageBO;
+import com.management.platform.entity.vo.SysRichFunction;
+import com.management.platform.mapper.*;
 import com.management.platform.service.CusTableColumnService;
 import com.management.platform.util.HttpRespMsg;
 import com.management.platform.util.MessageUtils;
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class CusTableColumnServiceImpl extends ServiceImpl<CusTableColumnMapper, CusTableColumn> implements CusTableColumnService {
@@ -31,6 +33,23 @@ public class CusTableColumnServiceImpl extends ServiceImpl<CusTableColumnMapper,
     @Resource
     private BusObjectMapper busObjectMapper;
 
+    @Resource
+    private BusObjRelationMapper busObjRelationMapper;
+
+    @Resource
+    private BusReportStoreMapper busReportStoreMapper;
+
+    @Resource
+    private CusReportFormMapper cusReportFormMapper;
+
+    @Resource
+    private ReportFormAccessMapper reportFormAccessMapper;
+
+    @Resource
+    private SysFunctionMapper sysFunctionMapper;
+
+    @Resource
+    private SysRoleFunctionMapper sysRoleFunctionMapper;
 
     @Override
     public HttpRespMsg getStructByTableName(String tableName, HttpServletRequest request) {
@@ -55,4 +74,228 @@ public class CusTableColumnServiceImpl extends ServiceImpl<CusTableColumnMapper,
         msg.setData(resMap);
         return msg;
     }
+
+    @Override
+    public HttpRespMsg getAllBusTable(HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        List<BusObject> busObjects = busObjectMapper.selectList(null);
+        msg.setData(busObjects);
+        return msg;
+    }
+
+    @Override
+    public HttpRespMsg getRelateTableByFromColumn(String tableName,String columnName, HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        List<BusObjRelation> busObjRelations = busObjRelationMapper.selectList(new LambdaQueryWrapper<BusObjRelation>()
+                .eq(BusObjRelation::getFromTbl, tableName)
+                .eq(BusObjRelation::getFromCol, columnName));
+        msg.setData(busObjRelations);
+        return msg;
+    }
+
+    @Override
+    public HttpRespMsg getRelateBusTableByFromTable(String tableName, HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        List<BusObjRelation> relationList = busObjRelationMapper.selectList(new LambdaQueryWrapper<BusObjRelation>()
+                .select(BusObjRelation::getToTbl, BusObjRelation::getFromColBusName)
+                .eq(BusObjRelation::getFromTbl, tableName)
+        );
+        msg.setData(relationList);
+        return msg;
+    }
+
+    @Override
+    public HttpRespMsg getFormStorePage(PageBO<FormStorePageBO> queryBO,HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        User user = userMapper.selectById(request.getHeader("token"));
+        IPage<BusReportStore> page =new Page<>();
+        page.setCurrent(queryBO.getPageIndex());
+        page.setSize(queryBO.getPageSize());
+        FormStorePageBO pageQueryBO = queryBO.getData();
+        pageQueryBO.setUserId(user.getId());
+        pageQueryBO.setDepartmentId(user.getDepartmentId());
+        pageQueryBO.setCompanyId(user.getCompanyId());
+        page = busReportStoreMapper.getPrivilegedFormStore(page,queryBO.getData());
+        List<BusReportStore> records = page.getRecords();
+        if(CollectionUtils.isNotEmpty(records)){
+            List<Integer> formIds = records.stream().filter(t -> null != t.getRelateFormId()).map(BusReportStore::getRelateFormId)
+                    .collect(Collectors.toList());
+            if(CollectionUtils.isNotEmpty(formIds)){
+                List<CusReportForm> cusReportForms = cusReportFormMapper.selectList(new LambdaQueryWrapper<CusReportForm>()
+                        .in(CusReportForm::getId, formIds)
+                );
+                List<ReportFormAccess> reportFormAccesses = reportFormAccessMapper.getAccessesByFormIds(user.getCompanyId(),formIds);
+                Map<Integer, List<ReportFormAccess>> accessGroupMap = reportFormAccesses.stream()
+                        .collect(Collectors.groupingBy(ReportFormAccess::getRelateFormId));
+                for (CusReportForm cusReportForm : cusReportForms) {
+                    List<ReportFormAccess> accesses = accessGroupMap.get(cusReportForm.getId());
+                    if(CollectionUtils.isNotEmpty(accesses)){
+                        List<ReportFormAccess> userAccesses = accesses.stream().filter(t -> 1 == t.getAccessType()).collect(Collectors.toList());
+                        List<ReportFormAccess> deptAccesses = accesses.stream().filter(t -> 2 == t.getAccessType()).collect(Collectors.toList());
+                        cusReportForm.setUserAccessList(userAccesses);
+                        cusReportForm.setDeptAccessList(deptAccesses);
+                    }
+                }
+            }
+            page.setRecords(records);
+        }
+        msg.setData(page);
+
+        return msg;
+    }
+
+    @Override
+    @Transactional
+    public HttpRespMsg addOrUpdateFormStore(BusReportStore busReportStore, HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        User user = userMapper.selectById(request.getHeader("token"));
+
+        List<SysRichFunction> sysFunctions = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "分类文件夹管理");
+        if(CollectionUtils.isEmpty(sysFunctions)){
+            msg.setError("角色无操作权限");
+            return msg;
+        }
+
+        if(null == busReportStore.getId()){
+            busReportStore.setCreateBy(user.getId());
+            busReportStore.setCompanyId(user.getCompanyId());
+            busReportStoreMapper.insert(busReportStore);
+        }else{
+            busReportStore.setUpdateBy(user.getId());
+            busReportStore.setUpdateTime(new Date());
+
+            busReportStoreMapper.updateById(busReportStore);
+        }
+
+        return msg;
+    }
+
+    @Override
+    public HttpRespMsg addOrUpdateReportForm(CusReportForm cusReportForm, HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        User user = userMapper.selectById(request.getHeader("token"));
+        if(null == cusReportForm.getId()){
+            BusReportStore busReportStore = new BusReportStore();
+            busReportStore.setStoreName(cusReportForm.getReportFormName());
+            busReportStore.setCreateBy(user.getId());
+            busReportStore.setStoreType(2);
+            busReportStore.setOrderItem(cusReportForm.getOrderItem());
+            busReportStore.setParentStoreId(cusReportForm.getParentStoreId());
+            busReportStore.setDescription(cusReportForm.getDescription());
+            busReportStore.setCompanyId(user.getCompanyId());
+            busReportStoreMapper.insert(busReportStore);
+
+            cusReportForm.setCreateBy(user.getId());
+            cusReportForm.setCompanyId(user.getCompanyId());
+            cusReportFormMapper.insert(cusReportForm);
+
+            List<ReportFormAccess> toAddList = new ArrayList<>();
+            List<ReportFormAccess> deptAccessList = cusReportForm.getDeptAccessList();
+            if(CollectionUtils.isNotEmpty(deptAccessList)){
+                for (ReportFormAccess reportFormAccess : deptAccessList) {
+                    reportFormAccess.setRelateFormId(cusReportForm.getId());
+                    reportFormAccess.setCompanyId(user.getCompanyId());
+                    reportFormAccess.setAccessType(2);
+                    toAddList.add(reportFormAccess);
+                }
+            }
+
+            List<ReportFormAccess> userAccessList = cusReportForm.getUserAccessList();
+            if(CollectionUtils.isNotEmpty(userAccessList)){
+                for (ReportFormAccess reportFormAccess : userAccessList) {
+                    reportFormAccess.setRelateFormId(cusReportForm.getId());
+                    reportFormAccess.setCompanyId(user.getCompanyId());
+                    reportFormAccess.setAccessType(1);
+                    toAddList.add(reportFormAccess);
+                }
+            }
+            reportFormAccessMapper.batchInsert(toAddList);
+
+        }else{
+            BusReportStore busReportStore = busReportStoreMapper.selectOne(new LambdaQueryWrapper<BusReportStore>()
+                    .eq(BusReportStore::getRelateFormId, cusReportForm.getId())
+            );
+            if(null != busReportStore){
+                busReportStore.setStoreName(cusReportForm.getReportFormName());
+                busReportStore.setUpdateBy(user.getId());
+                busReportStore.setUpdateTime(new Date());
+                busReportStore.setOrderItem(cusReportForm.getOrderItem());
+                busReportStore.setParentStoreId(cusReportForm.getParentStoreId());
+                busReportStore.setDescription(cusReportForm.getDescription());
+                busReportStoreMapper.updateById(busReportStore);
+
+                cusReportFormMapper.updateById(cusReportForm);
+
+                List<ReportFormAccess> toAddList = new ArrayList<>();
+                List<ReportFormAccess> deptAccessList = cusReportForm.getDeptAccessList();
+                if(CollectionUtils.isNotEmpty(deptAccessList)){
+                    for (ReportFormAccess reportFormAccess : deptAccessList) {
+                        reportFormAccess.setRelateFormId(cusReportForm.getId());
+                        reportFormAccess.setCompanyId(user.getCompanyId());
+                        reportFormAccess.setAccessType(2);
+                        toAddList.add(reportFormAccess);
+                    }
+                }
+
+                List<ReportFormAccess> userAccessList = cusReportForm.getUserAccessList();
+                if(CollectionUtils.isNotEmpty(userAccessList)){
+                    for (ReportFormAccess reportFormAccess : userAccessList) {
+                        reportFormAccess.setRelateFormId(cusReportForm.getId());
+                        reportFormAccess.setCompanyId(user.getCompanyId());
+                        reportFormAccess.setAccessType(1);
+                        toAddList.add(reportFormAccess);
+                    }
+                }
+                reportFormAccessMapper.delete(new LambdaQueryWrapper<ReportFormAccess>()
+                        .eq(ReportFormAccess::getRelateFormId, cusReportForm.getId())
+                );
+                reportFormAccessMapper.batchInsert(toAddList);
+
+            }else{
+                msg.setError("未找到对应报表");
+            }
+        }
+        return msg;
+    }
+
+    @Override
+    @Transactional
+    public HttpRespMsg deleteFormStore(Integer storeId,HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        User user = userMapper.selectById(request.getHeader("token"));
+        List<SysRichFunction> sysFunctions = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "分类文件夹管理");
+        if(CollectionUtils.isEmpty(sysFunctions)){
+            msg.setError("角色无操作权限");
+            return msg;
+        }
+        BusReportStore busReportStore = busReportStoreMapper.selectById(storeId);
+        if(busReportStore.getCreateBy() != user.getId()){
+            msg.setError("非创建人无法删除");
+            return msg;
+        }
+
+        //删除下级报表
+        //删除该目录
+        busReportStoreMapper.delete(new LambdaQueryWrapper<BusReportStore>()
+                .and(tmp->tmp.eq(BusReportStore::getId,storeId).or().in(BusReportStore::getParentStoreId,storeId))
+        );
+        return msg;
+    }
+
+    @Override
+    @Transactional
+    public HttpRespMsg deleteReportForm(Integer formId, HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        User user = userMapper.selectById(request.getHeader("token"));
+        CusReportForm cusReportForm = cusReportFormMapper.selectById(formId);
+        if(cusReportForm.getCreateBy() != user.getId()){
+            msg.setError("非创建人不能删除");
+        }
+        cusReportFormMapper.deleteById(formId);
+        reportFormAccessMapper.delete(new LambdaQueryWrapper<ReportFormAccess>()
+                        .eq(ReportFormAccess::getCompanyId,user.getCompanyId())
+                .in(ReportFormAccess::getRelateFormId,formId)
+        );
+        return msg;
+    }
 }

+ 6 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/resources/mapper/BusObjectMapper.xml

@@ -0,0 +1,6 @@
+<?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.management.platform.mapper.BusObjectMapper">
+
+</mapper>

+ 35 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/resources/mapper/BusReportStoreMapper.xml

@@ -0,0 +1,35 @@
+<?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.management.platform.mapper.BusReportStoreMapper">
+
+    <select id="getPrivilegedFormStore" resultType="com.management.platform.entity.BusReportStore">
+        select  brs.id,brs.store_type,brs.store_name,brs.parent_store_id,brs.create_by,brs.create_time
+             ,brs.update_by,brs.update_time,brs.description
+             ,brs.order_item,brs.relate_from_id,brs.company_id,u1.name as createName,u2.name as updateName
+        from bus_report_store brs
+        left join user u1 on brs.create_by = u1.id
+        left join user u2 on brs.update_by = u2.id
+        where store_type = 1 and brs.company_id = #{queryBO.companyId} and parent_store_id = #{queryBO.parentStoreId}
+        union
+        select tmp.*,u1.name as createName,u2.name as updateName from (
+                        select  brs.id,brs.store_type,brs.store_name,brs.parent_store_id,brs.create_by,brs.create_time
+                             ,brs.update_by,brs.update_time,brs.description
+                             ,brs.order_item,brs.relate_from_id,brs.company_id
+                        from bus_report_store brs
+                                 left join cus_report_form crf on brs.relate_from_id = crf.id
+                        where store_type = 2 and brs.company_id = #{queryBO.companyId} and brs.parent_store_id = #{queryBO.parentStoreId}
+                          and (
+                            crf.privilege = 1 or (crf.privilege = 2 and
+                                                  exists(
+                                                      select 1 from report_from_access rfa where brs.relate_from_id = rfa.relate_from_id
+                                                       and (rfa.user_id = #{queryBO.userId} or rfa.department_id = #{queryBO.departmentId} )
+                                                  )
+                                )
+                            )
+                    )tmp
+                        left join user u1 on tmp.create_by = u1.id
+                        left join user u2 on tmp.update_by = u2.id
+        order by order_item
+    </select>
+</mapper>

+ 36 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/resources/mapper/ReportFormAccessMapper.xml

@@ -0,0 +1,36 @@
+<?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.management.platform.mapper.ReportFormAccessMapper">
+    <insert id="batchInsert">
+        insert into report_from_access (relate_from_id, access_type, user_id, department_id, company_id) VALUES
+        <foreach collection="toAddList" item="toAddItem" separator=",">
+            (#{toAddItem.accessType},#{toAddItem.relateFormId},#{toAddItem.userId}
+            ,#{toAddItem.departmentId},#{toAddItem.companyId})
+        </foreach>
+    </insert>
+
+    <select id="getAccessesByFormIds" resultType="com.management.platform.entity.ReportFormAccess">
+        select rfa.id,rfa.company_id,rfa.user_id
+             ,rfa.department_id,rfa.relate_from_id,rfa.access_type
+             ,u.name as finalName
+        from report_from_access rfa
+                 left join user u on rfa.user_id = u.id
+        where rfa.company_id = #{companyId} and rfa.access_type = 1
+          and rfa.relate_from_id in
+        <foreach collection="formIds" item="formId" open="(" close=")"  separator=",">
+            #{formId}
+        </foreach>
+        union
+        select rfa.id,rfa.company_id,rfa.user_id
+             ,rfa.department_id,rfa.relate_from_id,rfa.access_type
+             ,d.department_name  as finalName
+        from report_from_access rfa
+                 left join department d on rfa.department_id = d.department_id
+        where rfa.company_id = #{companyId}  and rfa.access_type = 2
+          and rfa.relate_from_id in
+        <foreach collection="formIds" item="formId" open="(" close=")"  separator=",">
+            #{formId}
+        </foreach>
+    </select>
+</mapper>