Преглед на файлове

文件柜权限分配设置,以及功能完善

yanliming преди 1 година
родител
ревизия
6383e51833

+ 2 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/dao/OaFileRegUserInfoDAO.java

@@ -17,5 +17,7 @@ public interface OaFileRegUserInfoDAO {
 	int delete(String id);
 	List<OaFileRegUserInfo> list();
 	List<OaFileRegUserInfo> findRelationByFileId(@Param("fileId") String fileId, @Param("type")String type);
+	List<OaFileRegUserInfo> findRelationByRegId(@Param("regUserId") String regUserId,@Param("type") String type);
+	List<OaFileRegUserInfo> findRelationByOrgs(@Param("orgList")List<String> orgList,@Param("type") String type);
 	List<OaFileRegUserInfo> search(Map<String, Object> searchParams, List<Sort> sortList);
 }

+ 5 - 1
common/src/main/java/com/jpsoft/railroad/modules/base/entity/OaFileInfo.java

@@ -65,8 +65,12 @@ public class OaFileInfo {
 	@ApiModelProperty(value = "文件列表")
 	private List<Map> urlList;
 
-
+	@Transient
 	@ApiModelProperty(value = "文件地址")
 	private String urlName;
+
+	@Transient
+	@ApiModelProperty(value = "是否为登录人员创建文件")
+	private Boolean isSelf;
 	
 		}

+ 3 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/service/OaFileRegUserInfoService.java

@@ -17,5 +17,8 @@ public interface OaFileRegUserInfoService {
 	int delete(String id);
 	List<OaFileRegUserInfo> list();
 	List<OaFileRegUserInfo> findRelationByFileId(String fileId, String type);
+	List<OaFileRegUserInfo> findRelationByRegId(String regUserId, String type);
+	List<OaFileRegUserInfo> findRelationByOrgs(List<String> orgList, String type);
+
 	Page<OaFileRegUserInfo> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);
 }

+ 11 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/service/impl/OaFileRegUserInfoServiceImpl.java

@@ -120,6 +120,17 @@ public class OaFileRegUserInfoServiceImpl implements OaFileRegUserInfoService {
         return oaFileRegUserInfoDAO.findRelationByFileId(fileId,type);
     }
 
+    @Override
+    public
+    List<OaFileRegUserInfo> findRelationByRegId(String regUserId, String type){
+        return oaFileRegUserInfoDAO.findRelationByRegId(regUserId,type);
+    }
+
+    @Override
+    public List<OaFileRegUserInfo> findRelationByOrgs(List<String> orgList, String type){
+        return oaFileRegUserInfoDAO.findRelationByOrgs(orgList,type);
+    }
+
     @Override
     public Page<OaFileRegUserInfo> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize, boolean count, List<Sort> sortList) {
         Page<OaFileRegUserInfo> page = PageHelper.startPage(pageNumber, pageSize, count).doSelectPage(() -> {

+ 18 - 0
common/src/main/resources/mapper/base/OaFileInfo.xml

@@ -94,6 +94,24 @@
 			<if test="searchParams.name != null">
 				and name_ like #{searchParams.name}
 			</if>
+			<if test="searchParams.createBy != null">
+				<![CDATA[
+					and ( create_by = #{searchParams.createBy}
+				]]>
+				<if test="searchParams.oaFileRegUserInfoList != null">
+					<foreach item="item" collection="searchParams.oaFileRegUserInfoList" open="or id_ in ("
+							 separator="," close=")">
+						#{item.fileId}
+					</foreach>
+				</if>
+				<if test="searchParams.oaFileOrgList != null">
+					<foreach item="item" collection="searchParams.oaFileOrgList" open="or id_ in ("
+							 separator="," close=")">
+						#{item.fileId}
+					</foreach>
+				</if>
+				)
+			</if>
 		</where>
 		<foreach item="sort" collection="sortList"  open="order by" separator=",">
 	        ${sort.name} ${sort.order}

+ 12 - 1
common/src/main/resources/mapper/base/OaFileRegUserInfo.xml

@@ -82,7 +82,18 @@
 	<select id="findRelationByFileId" resultMap="OaFileRegUserInfoMap">
 		select * from base_oa_file_reg_user_info where del_flag = false and file_id=#{fileId} and type_= #{type}
 	</select>
-
+	<select id="findRelationByRegId" resultMap="OaFileRegUserInfoMap">
+		select * from base_oa_file_reg_user_info where del_flag = false and business_id=#{regUserId} and type_= #{type}
+	</select>
+	<select id="findRelationByOrgs" resultMap="OaFileRegUserInfoMap">
+		select * from base_oa_file_reg_user_info
+		where del_flag = false
+		and type_= #{type}
+		<foreach item="item" collection="orgList" open="and business_id in ("
+				 separator="," close=")">
+			#{item}
+		</foreach>
+	</select>
 	<select id="search" parameterType="hashmap" resultMap="OaFileRegUserInfoMap">
 		<![CDATA[
 			select * from base_oa_file_reg_user_info

+ 8 - 1
web/src/main/java/com/jpsoft/railroad/modules/base/controller/NetworkNoticeController.java

@@ -7,6 +7,7 @@ import com.jpsoft.railroad.modules.common.dto.MessageResult;
 import com.jpsoft.railroad.modules.base.entity.NetworkNotice;
 import com.jpsoft.railroad.modules.base.service.NetworkNoticeService;
 import com.jpsoft.railroad.modules.sys.entity.User;
+import com.jpsoft.railroad.modules.sys.service.DataDictionaryService;
 import com.jpsoft.railroad.modules.sys.service.UserService;
 import io.swagger.annotations.ApiOperation;
 import net.sf.json.JSONArray;
@@ -32,6 +33,9 @@ public class NetworkNoticeController {
 
     @Autowired
     private UserService userService;
+
+    @Autowired
+    private DataDictionaryService dataDictionaryService;
 	
 	
 	@ApiOperation(value="创建空记录")
@@ -271,7 +275,7 @@ public class NetworkNoticeController {
         Map<String,Object> searchParams = new HashMap<>();
 
         List<Sort> sortList = new ArrayList<>();
-        sortList.add(new Sort("create_time","desc"));
+        sortList.add(new Sort("upload_time","desc"));
 
         if (StringUtils.isNotEmpty(name)) {
             searchParams.put("name","%" + name + "%");
@@ -302,6 +306,9 @@ public class NetworkNoticeController {
                 }
 
             }
+
+            String typeN = dataDictionaryService.findNameByCatalogNameAndValue("文件类型",networkNotice.getType());
+            networkNotice.setTypeN(typeN);
         }
 
         msgResult.setResult(true);

+ 56 - 1
web/src/main/java/com/jpsoft/railroad/modules/base/controller/OaFileInfoController.java

@@ -1,6 +1,12 @@
 package com.jpsoft.railroad.modules.base.controller;
 
 import com.github.pagehelper.Page;
+import com.jpsoft.railroad.modules.base.entity.OaFileRegUserInfo;
+import com.jpsoft.railroad.modules.base.entity.Organization;
+import com.jpsoft.railroad.modules.base.entity.RegUser;
+import com.jpsoft.railroad.modules.base.service.OaFileRegUserInfoService;
+import com.jpsoft.railroad.modules.base.service.OrganizationService;
+import com.jpsoft.railroad.modules.base.service.RegUserService;
 import com.jpsoft.railroad.modules.common.utils.PojoUtils;
 import com.jpsoft.railroad.modules.common.dto.Sort;
 import com.jpsoft.railroad.modules.common.dto.MessageResult;
@@ -30,9 +36,18 @@ public class OaFileInfoController {
     @Autowired
     private OaFileInfoService oaFileInfoService;
 
+    @Autowired
+    private OaFileRegUserInfoService oaFileRegUserInfoService;
+
     @Autowired
     private UserService userService;
 
+    @Autowired
+    private RegUserService regUserService;
+
+    @Autowired
+    private OrganizationService organizationService;
+
 
     @ApiOperation(value = "创建空记录")
     @GetMapping("create")
@@ -262,17 +277,51 @@ public class OaFileInfoController {
         //当前用户ID
         System.out.println(subject);
 
+        User curUser = userService.get(subject);
+
         MessageResult<Map> msgResult = new MessageResult<>();
 
         Map<String, Object> searchParams = new HashMap<>();
 
         List<Sort> sortList = new ArrayList<>();
-        sortList.add(new Sort("create_time", "desc"));
+        sortList.add(new Sort("upload_time", "desc"));
 
         if (StringUtils.isNotEmpty(name)) {
             searchParams.put("name", "%" + name + "%");
         }
 
+        if (StringUtils.isNotEmpty(subject)) {
+            searchParams.put("createBy", subject);
+
+            if (curUser != null) {
+                if (StringUtils.isNotEmpty(curUser.getPhone())) {
+                    RegUser regUser = regUserService.findByPhone(curUser.getPhone());
+                    if (regUser != null) {
+                        //个人查看文件
+                        List<OaFileRegUserInfo> oaFileRegUserInfoList = oaFileRegUserInfoService.findRelationByRegId(regUser.getId(), "2");
+                        searchParams.put("oaFileRegUserInfoList", oaFileRegUserInfoList);
+
+                        //部门查看文件
+                        List<String> orgIdList = new ArrayList<>();
+                        String orgId = regUser.getOrgId();
+                        orgIdList.add(orgId);
+                        Organization organization = organizationService.get(orgId);
+                        while (StringUtils.isNotEmpty(organization.getParentId())) {
+                            Organization parentItem = organizationService.get(organization.getParentId());
+                            if (parentItem != null) {
+                                orgIdList.add(parentItem.getId());
+                            }
+                            organization = parentItem;
+                        }
+                        List<OaFileRegUserInfo> oaFileOrgList = oaFileRegUserInfoService.findRelationByOrgs(orgIdList, "1");
+                        if (oaFileRegUserInfoList.size() > 0) {
+                            searchParams.put("oaFileOrgList", oaFileOrgList);
+                        }
+                    }
+                }
+            }
+        }
+
 
         Page<OaFileInfo> page = oaFileInfoService.pageSearch(searchParams, pageIndex, pageSize, true, sortList);
 
@@ -298,6 +347,12 @@ public class OaFileInfoController {
                 }
 
             }
+
+            boolean isSelf = false;
+            if (oaFileInfo.getCreateBy().equals(subject)) {
+                isSelf = true;
+            }
+            oaFileInfo.setIsSelf(isSelf);
         }