Quellcode durchsuchen

feat(task): 业绩考核类型统计页面点击指标类型时查询关联任务id

- 在 ITaskAnalysisDao 中添加 findTaskSummaryIdsByTypeSettingEnumId 方法接口
- 在 TaskAnalysisDaoImpl 中实现该方法的 SQL 查询逻辑
- 在 TaskAnalysisManagerImpl 中添加对应的方法调用
- 在 ITaskAnalysisManager 中添加新的接口方法
- 在 TaskByTypeController 中添加新的 API 接口,用于获取任务列表
wanyuan vor 1 Monat
Ursprung
Commit
71cdb3385a

+ 8 - 0
tc-service/tap-task/src/main/java/com/minto/app/task/dao/ITaskAnalysisDao.java

@@ -467,4 +467,12 @@ public interface ITaskAnalysisDao extends BaseDao {
      * @return
      */
     List<Map<String, Object>> findTaskTypeSettingDataAnalysis(Map<String, Object> params);
+
+    /**
+     * 业绩考核类型统计页面-点击指标类型时查询关联任务id
+     *
+     * @param params
+     * @return
+     */
+    List<Long> findTaskSummaryIdsByTypeSettingEnumId(Map<String, Object> params);
 }

+ 21 - 0
tc-service/tap-task/src/main/java/com/minto/app/task/dao/TaskAnalysisDaoImpl.java

@@ -7,6 +7,7 @@ package com.minto.app.task.dao;
 
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 import com.google.common.collect.Maps;
 import com.minto.app.organization.OrgEnum;
@@ -2146,4 +2147,24 @@ hql.append("AND EXISTS (\n" +
         sql.append(" ORDER BY ").append(order).append(asc == 1 ? " ASC " : " DESC ");
         return getHibernateTpl().queryBySql(sql.toString(), param);
     }
+
+    @Override
+    public List<Long> findTaskSummaryIdsByTypeSettingEnumId(Map<String, Object> params){
+        Map<String, Object> param = new HashMap<>();
+        param.put("year", ParameterUtil.getInteger(params, "year", DateUtil.getYear()));
+        param.put("tipEnumId", ParameterUtil.getLong(params, "tipEnumId"));
+        StringBuilder sql = new StringBuilder();
+        sql.append(" SELECT DISTINCT ts.id AS id FROM ");
+        sql.append(" task_summary ts LEFT JOIN dm_dtab_basic_extend ddbe ON ddbe.reference_id = ts.id ");
+        sql.append(" WHERE TO_CHAR(ts.create_date,'yyyy') = :year ");
+        sql.append(" AND ddbe.type_setting LIKE CONCAT('%', :tipEnumId, '%') ");
+        sql.append(" AND ts.tstate != 7 ");
+        String taskTypeId = ParameterUtil.getString(params, "taskTypeId");
+        if(StringUtils.isNotBlank(taskTypeId)){
+            sql.append("and ts.tasktype_id = :taskTypeId ");
+            param.put("taskTypeId",taskTypeId);
+        }
+        List<Map<String,Object>> map = getHibernateTpl().queryBySql(sql.toString(), param);
+        return map.stream().map(e-> ParameterUtil.get(e,"id",Long.class)).collect(Collectors.toList());
+    }
 }

+ 7 - 1
tc-service/tap-task/src/main/java/com/minto/app/task/manager/TaskAnalysisManagerImpl.java

@@ -547,7 +547,7 @@ public class TaskAnalysisManagerImpl implements ITaskAnalysisManager{
                     resourceId)){
                 OrgPersonBean orgPersonBean = personMap.get(resourceId);
                 managerName = orgPersonBean.getPname();
-                map.put("pid", orgPersonBean.getId());
+                map.put("pid", resourceId.toString());
             }
             map.put("targetName", managerName);
 
@@ -1641,10 +1641,16 @@ public class TaskAnalysisManagerImpl implements ITaskAnalysisManager{
                 }
             }
             e.put("value", value);
+            e.put("id",id);
         });
         return list;
     }
 
+    @Override
+    public List<Long> findTaskSummaryIdsByTypeSettingEnumId(Map<String, Object> param){
+        return taskAnalysisDao.findTaskSummaryIdsByTypeSettingEnumId(param);
+    }
+
     @Override
     public List<Map<String, Object>> findTaskTypes(Map<String, Object> param){
         OrgPersonBean person = orgManager.findPersonById(AppContext.currentUserId());

+ 2 - 0
tip-api/src/main/java/com/minto/app/task/manager/ITaskAnalysisManager.java

@@ -151,6 +151,8 @@ public interface ITaskAnalysisManager {
 
     List<Map<String,Object>> findTypeScopeTaskCountAnalysis(Map<String,Object> param) throws BusinessException;
 
+    List<Long> findTaskSummaryIdsByTypeSettingEnumId(Map<String,Object> param);
+
     List<Map<String, Object>> findTaskTypes(Map<String, Object> param);
 
     List<Map<String, Object>> findMatterTypeSettings(Map<String, Object> param);

+ 53 - 18
tip-front/src/main/java/com/minto/app/task/controller/TaskByTypeController.java

@@ -6,6 +6,24 @@
 package com.minto.app.task.controller;
 
 
+import java.io.*;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
+import java.sql.SQLException;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.Map.Entry;
+import java.util.concurrent.TimeUnit;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
 import com.github.pagehelper.PageInfo;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
@@ -142,24 +160,6 @@ import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.springframework.web.servlet.ModelAndView;
 
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
-import java.io.*;
-import java.net.URLDecoder;
-import java.net.URLEncoder;
-import java.sql.SQLException;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.*;
-import java.util.Map.Entry;
-import java.util.concurrent.TimeUnit;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
 import static java.util.Comparator.comparing;
 import static java.util.stream.Collectors.toList;
 
@@ -19804,4 +19804,39 @@ public class TaskByTypeController extends BaseController{
         return model;
     }
 
+    @ResponseBody
+    @GetMapping(value = "/tasks/list",params ={"m=TypeSetting"})
+    public List<TaskSummaryBean> findTaskSummaryListByTypeSetting(HttpServletRequest request){
+        Long tipEnumId = ReqUtil.getLong(request, "tipEnumId");
+        Integer year = ReqUtil.getInt(request, "year",DateUtil.getYear());
+        if(tipEnumId==null || year == null){
+            return new ArrayList<>();
+        }
+        Map<String, Object> param = new HashMap<>();
+        param.put("tipEnumId",tipEnumId);
+        param.put("year",year);
+        //获取任务Id集合
+        List<Long> ids = taskAnalysisManager.findTaskSummaryIdsByTypeSettingEnumId(param);
+        if(CollectionUtil.isEmpty(ids)){
+            return new ArrayList<>();
+        }
+        return taskManager.findTaskSummaryBeans(ids.toArray(new Long[0]));
+
+        //获取完整任务信息
+        //Map<String,Object> parmasMap = new HashMap<>();
+        //parmasMap.put("listType",TaskEnum.TaskSummaryListBusinessEnum.AllTask.getKey());
+        //parmasMap.put("id", ids);
+        //parmasMap.put("orgAccountId",AppContext.currentLoginAccount());
+        //List<Long> typeIds = Lists.newArrayList(0L);
+        //List<Long> temps = taskByTypeManager.findTaskTypesByParentIdAndSubType(0L,
+        //        TaskEnum.TaskTypeSub.Category.getKey());
+        //if(CollectionUtil.isNotEmpty(temps)){
+        //    typeIds.addAll(temps);
+        //}
+        //Long[] taskType = new Long[typeIds.size()];
+        //Long[] longs = typeIds.toArray(taskType);
+        //parmasMap.put("taskType", new ArrayList<>());
+        //return taskListManager.findTaskInfo4List(parmasMap);
+
+    }
 }