Ver código fonte

作者:张哲
时间:2023/09/01
类型:优化
描述:需求1-8bug修改

zizg 1 ano atrás
pai
commit
f35250b396

+ 4 - 3
src/main/java/com/redxun/knowledge/album/service/AlbumCategoryServiceImpl.java

@@ -293,12 +293,13 @@ public class AlbumCategoryServiceImpl extends SuperServiceImpl<AlbumCategoryMapp
      */
     private void operatorSort(AlbumCategory entity) {
         List<Integer> sortList = albumCategoryMapper.selectSortList(entity.getParent());
+        if (entity.getSort() != null) {
+            albumCategoryMapper.insertOrUpdateBySort(entity.getParent(), entity.getSort());
+            return;
+        }
         if (!CollectionUtils.isEmpty(sortList) && sortList.contains(entity.getSort())) {
             //根据排序和父类Id变更排序
             albumCategoryMapper.insertOrUpdateBySort(entity.getParent(), entity.getSort());
-        } else if (!CollectionUtils.isEmpty(sortList)) {
-            Integer lastSort = sortList.get(sortList.size() - 1);
-            entity.setSort(lastSort + 1);
         } else {
             entity.setSort(1);
         }

+ 3 - 2
src/main/java/com/redxun/knowledge/analysis/controller/AnalysisCommonController.java

@@ -339,9 +339,10 @@ public class AnalysisCommonController {
     @GetMapping("knowledgeSumAndYelpSumByUserId")
     public JsonResult knowledgeSumAndYelpSumByUserId(@RequestParam(value = "beginTime",required = false) String beginTime,
                                                     @RequestParam(value = "endTime",required = false) String endTime,
-                                                    @RequestParam(value = "userId",required = false) String userId){
+                                                    @RequestParam(value = "userId",required = false) String userId,
+                                                     @RequestParam(value = "deptId") String deptId){
         JsonResult jsonResult = JsonResult.getSuccessResult("");
-        Map<String,Object> result = analysisCommonService.knowledgeSumAndYelpSumByLogin(beginTime,endTime,userId);
+        Map<String,Object> result = analysisCommonService.knowledgeSumAndYelpSumByLogin(beginTime,endTime,userId,deptId);
         return jsonResult.setData(result);
     }
 

+ 18 - 0
src/main/java/com/redxun/knowledge/analysis/mapper/AnalysisCommonMapper.java

@@ -130,4 +130,22 @@ public interface AnalysisCommonMapper {
      */
     List<KnowledgeSumAndYelpSumListVo> knowledgeSumAndYelpSumList(@Param("beginTime") String beginTime, @Param("endTime") String endTime,
                                                                   @Param("pageNo") Integer pageNo, @Param("pageSize")Integer pageSize);
+
+    /**
+     * 查询部门的知识上传量
+     * @param deptId
+     * @param beginTime
+     * @param endTime
+     * @return
+     */
+    Integer knowledgeSumByDeptId(@Param("deptId") String deptId,@Param("beginTime") String beginTime,@Param("endTime") String endTime);
+
+    /**
+     * 查询部门的专辑评论量
+     * @param deptId
+     * @param beginTime
+     * @param endTime
+     * @return
+     */
+    Integer yelpSumByDeptId(@Param("deptId") String deptId,@Param("beginTime") String beginTime,@Param("endTime") String endTime);
 }

+ 37 - 17
src/main/java/com/redxun/knowledge/analysis/service/AnalysisCommonServiceImpl.java

@@ -4,7 +4,9 @@ import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.redxun.common.base.entity.QueryData;
+import com.redxun.common.model.JPaasUser;
 import com.redxun.common.tool.StringUtils;
+import com.redxun.dto.user.OsUserDto;
 import com.redxun.knowledge.analysis.entity.dao.KnowledgeDao;
 import com.redxun.knowledge.analysis.entity.dto.PersonVisitDto;
 import com.redxun.knowledge.analysis.entity.vo.*;
@@ -427,29 +429,43 @@ public class AnalysisCommonServiceImpl {
      * 员工的知识上传数和专辑评论数
      * @return
      */
-    public Map<String, Object> knowledgeSumAndYelpSumByLogin(String beginTime,String endTime,String userId) {
+    public Map<String, Object> knowledgeSumAndYelpSumByLogin(String beginTime,String endTime,String userId,String deptId) {
         Map<String, Object> map = new LinkedHashMap<>();
         Integer knowledgeSum = 0;
         Integer yelpSum = 0;
-        if (StringUtils.isEmpty(userId)){
-            userId = userService.queryLoginUser();
-        }
         //获取当前年
         Calendar calendar = Calendar.getInstance();
         int year = calendar.get(Calendar.YEAR);
-        if (StringUtils.isNotEmpty(beginTime) && StringUtils.isNotEmpty(endTime)) {
-            knowledgeSum = analysisCommonMapper.knowledgeSum(userId,beginTime,endTime);
-            //专辑点评量
-            yelpSum = analysisCommonMapper.yelpSum(userId,beginTime,endTime);
+        //用户id为空了,查询部门;否则查询员工
+        if (StringUtils.isEmpty(userId)){
+            if (StringUtils.isNotEmpty(beginTime) && StringUtils.isNotEmpty(endTime)) {
+                knowledgeSum = analysisCommonMapper.knowledgeSumByDeptId(deptId,beginTime,endTime);
+                //专辑点评量
+                yelpSum = analysisCommonMapper.yelpSumByDeptId(deptId,beginTime,endTime);
+            } else {
+                //知识上传量
+                knowledgeSum = analysisCommonMapper.knowledgeSumByDeptId(deptId,DateUtils.format(DateUtils.getFirstOfYearByUser(year)),
+                        DateUtils.format(new Date()));
+                //专辑点评量
+                yelpSum = analysisCommonMapper.yelpSumByDeptId(deptId,DateUtils.format(DateUtils.getFirstOfYearByUser(year)),
+                        DateUtils.format(new Date()));
+            }
         } else {
-            //知识上传量
-            knowledgeSum = analysisCommonMapper.knowledgeSum(userId,DateUtils.format(DateUtils.getFirstOfYearByUser(year)),
-                    DateUtils.format(new Date()));
-            //专辑点评量
-            yelpSum = analysisCommonMapper.yelpSum(userId,DateUtils.format(DateUtils.getFirstOfYearByUser(year)),
-                    DateUtils.format(new Date()));
+            if (StringUtils.isNotEmpty(beginTime) && StringUtils.isNotEmpty(endTime)) {
+                knowledgeSum = analysisCommonMapper.knowledgeSum(userId,beginTime,endTime);
+                //专辑点评量
+                yelpSum = analysisCommonMapper.yelpSum(userId,beginTime,endTime);
+            } else {
+                //知识上传量
+                knowledgeSum = analysisCommonMapper.knowledgeSum(userId,DateUtils.format(DateUtils.getFirstOfYearByUser(year)),
+                        DateUtils.format(new Date()));
+                //专辑点评量
+                yelpSum = analysisCommonMapper.yelpSum(userId,DateUtils.format(DateUtils.getFirstOfYearByUser(year)),
+                        DateUtils.format(new Date()));
+            }
+
         }
-        String deptPath = pvLogMapper.findAllDeptIdByDeptId(userService.queryUser(userId).getDeptId());
+        String deptPath = pvLogMapper.findAllDeptIdByDeptId(deptId);
         if (StringUtils.isNotEmpty(deptPath)) {
             deptPath = deptPath.substring(deptPath.indexOf(".") + 1);
             String[] split = deptPath.split("\\.");
@@ -501,8 +517,12 @@ public class AnalysisCommonServiceImpl {
                     DateUtils.format(new Date()),pageNo,pageSize);
         }
         result.forEach(e -> {
-            e.setDeptId(userService.queryUser(e.getUserId()).getDeptId());
-            e.setDeptName(userService.queryUser(e.getUserId()).getDeptName());
+            OsUserDto osUserDto = userService.queryOsUserDto(e.getUserId());
+            if (osUserDto != null){
+                e.setDeptId(osUserDto.getDeptId());
+                e.setDeptName(osUserDto.getDeptName());
+                e.setUserId(osUserDto.getUserNo());
+            }
         });
         return result;
     }

+ 2 - 0
src/main/java/com/redxun/knowledge/entity/dto/KnowledgeApprovalNodeFlowerDto.java

@@ -37,6 +37,8 @@ public class KnowledgeApprovalNodeFlowerDto {
     private List<KnowledgeApprovalNodeDto> knowledgeApprovalNode;
     //维护人
     private String maintainer;
+
+    private String createBy;
 }
 
 

+ 1 - 1
src/main/java/com/redxun/knowledge/mapper/KnowledgeApproveMapper.java

@@ -35,5 +35,5 @@ public interface KnowledgeApproveMapper extends BaseDao<KnowledgeApprove> {
 
     List<KnowledgeApprove> selectByKnowledgerId(@Param("knowledgeId") String knowledgeId);
 
-    List<String> findAllDeptIdByParent(@Param("deptId") String deptId);
+    List<String> findAllDeptIdByParent(@Param("deptIdList") List<String> deptId);
 }

+ 1 - 0
src/main/java/com/redxun/knowledge/service/KnowledgeApprovalNodeServiceImpl.java

@@ -146,6 +146,7 @@ public class KnowledgeApprovalNodeServiceImpl extends SuperServiceImpl<Knowledge
         KnowledgeApprovalNodeFlower knowledgeApprovalNodeFlower = new KnowledgeApprovalNodeFlower();
         knowledgeApprovalNodeFlower.setFlowerName(knowledgeApprovalNodeFlowerDto.getFlowerName());
         knowledgeApprovalNodeFlower.setMaintainer(knowledgeApprovalNodeFlowerDto.getMaintainer());
+        knowledgeApprovalNodeFlower.setCreateBy(knowledgeApprovalNodeFlowerDto.getCreateBy());
         if (StringUtils.isEmpty(knowledgeApprovalNodeFlowerDto.getPkId())) {
             knowledgeApprovalNodeFlowerMapper.insert(knowledgeApprovalNodeFlower);
         } else {

+ 7 - 17
src/main/java/com/redxun/knowledge/service/KnowledgeServiceImpl.java

@@ -1029,18 +1029,10 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
         //二者都不为空
         if (StringUtils.isNotEmpty(downloadDeptId) && StringUtils.isNotEmpty(downloadUserId)){
             //可下载部门数组
-            List<String> deptAuthority = knowledgeApproveMapper.findAllDeptIdByParent(deptId);
-            String[] downloadDeptIdStr = downloadDeptId.split(",");
-            boolean flag = false;
-            for (int i = 0; i < downloadDeptIdStr.length; i++) {
-                if (deptAuthority.contains(downloadDeptIdStr[i])) {
-                    flag = true;
-                    break;
-                }
-            }
+            List<String> deptAuthority = knowledgeApproveMapper.findAllDeptIdByParent(Arrays.asList(downloadDeptId.split(",")));
             List<String> approverIdList = Arrays.asList(downloadUserId.split(","));
             // 如果有权限
-            if (!approverIdList.contains(userId) && !flag) {
+            if (!approverIdList.contains(userId) && !deptAuthority.contains(deptId)) {
                 // 不是该部门的人,不能查看
                 return 1;
             } else {
@@ -1050,15 +1042,13 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
             //可下载部门情况
             if (StringUtils.isNotEmpty(downloadDeptId)){
                 //可下载部门数组
-                String[] downloadDeptIdStr = downloadDeptId.split(",");
-                for (String downloadDeptIds : downloadDeptIdStr) {
-                    List<String> deptAuthority = knowledgeApproveMapper.findAllDeptIdByParent(downloadDeptIds);
-                    if (deptAuthority.contains(deptId)){
-                        return 0;
-                    }
+                List<String> deptAuthority = knowledgeApproveMapper.findAllDeptIdByParent(Arrays.asList(downloadDeptId.split(",")));
+                if (deptAuthority.contains(deptId)){
+                    return 0;
+                } else {
+                    return 1;
                 }
             }
-
             //可下载人员情况
             if (StringUtils.isNotEmpty(downloadUserId)){
                 List<String> approverIdList = Arrays.asList(downloadUserId.split(","));

+ 5 - 2
src/main/resources/mapper/knowledge/KnowledgeApproveMapper.xml

@@ -150,8 +150,11 @@
     </select>
 
     <select id="findAllDeptIdByParent" resultType="string">
-        SELECT os.GROUP_ID_ FROM LEARNING_USER_DEV.OS_GROUP os
-            START WITH os.GROUP_ID_ = #{deptId}
+        SELECT distinct os.GROUP_ID_ FROM LEARNING_USER_DEV.OS_GROUP os
+            START WITH os.GROUP_ID_ in
+            <foreach collection="deptIdList" separator="," open="(" close=")" item="deptId">
+                #{deptId}
+            </foreach>
         CONNECT BY PRIOR os.GROUP_ID_ = os.PARENT_ID_
     </select>
 

+ 28 - 2
src/main/resources/mapper/knowledge/analysis/AnalysisCommonMapper.xml

@@ -145,7 +145,7 @@
         select count(*)
         from KM_ALBUM_YELP
         <where>
-            APPROVAL_STATE = 5 and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &gt;= #{beginTime} and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &lt;= #{endTime}
+            STATE = 1 and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &gt;= #{beginTime} and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &lt;= #{endTime}
             <if test="userId != null">
                 and CREATE_BY_ = #{userId}
             </if>
@@ -169,7 +169,7 @@
                   (select count(*) as yelpSum, CREATE_BY_ as createBy
                    from KM_ALBUM_YELP
                    <where>
-                       STATE = 5 and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &gt;= #{beginTime} and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &lt;= #{endTime}
+                       STATE = 1 and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &gt;= #{beginTime} and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &lt;= #{endTime}
                    </where>
                    group by CREATE_BY_) yelp using (createBy))) info right join LEARNING_USER_DEV.OS_USER users on users.USER_ID_ = info.createBy
         where STATUS_ = 1
@@ -177,6 +177,32 @@
         where rn &gt;= #{pageNo} and rn &lt;= #{pageSize}
     </select>
 
+    <select id="knowledgeSumByDeptId" resultType="int">
+        select count(*)
+        from KM_KNOWLEDGE
+        <where>
+            APPROVAL_STATUS = 5 and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &gt;= #{beginTime} and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &lt;= #{endTime}
+            and CREATE_DEP_ID_ in (SELECT GROUP_ID_
+                                   FROM LEARNING_USER_DEV.OS_GROUP c
+                                   START WITH c.GROUP_ID_ = #{deptId}
+                                   CONNECT BY PRIOR c.GROUP_ID_ = c.PARENT_ID_
+                                   )
+        </where>
+    </select>
+
+    <select id="yelpSumByDeptId" resultType="int">
+        select count(*)
+        from KM_ALBUM_YELP
+        <where>
+            STATE = 1 and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &gt;= #{beginTime} and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &lt;= #{endTime}
+            and CREATE_DEP_ID_ in (SELECT GROUP_ID_
+                                   FROM LEARNING_USER_DEV.OS_GROUP c
+                                   START WITH c.GROUP_ID_ = #{deptId}
+                                   CONNECT BY PRIOR c.GROUP_ID_ = c.PARENT_ID_
+                                   )
+        </where>
+    </select>
+
 
 </mapper>