Ver código fonte

类型设置配置

Pojun 8 meses atrás
pai
commit
1a46724f01

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

@@ -1959,7 +1959,7 @@ hql.append("AND EXISTS (\n" +
         Long matterTypeSetting = ParameterUtil.getLong(param, "matterTypeSetting");
         StringBuilder sql = new StringBuilder();
         sql.append(" select t.pname, t.dname, t.score1, t.score2, t.score1+t.score2 as \"score\", ");
-        if(matterTypeSetting!=null){
+        if (matterTypeSetting != null) {
             sql.append(" t.score3, t.score4, ");
         }
         sql.append(" CONCAT((case when TRUNC(t.avgtime / 86400000)> 0 then CONCAT(TO_CHAR(TRUNC(t.avgtime / 86400000)),'天') else '' end), ");
@@ -1978,13 +1978,19 @@ hql.append("AND EXISTS (\n" +
         }
         sql.append("    from task_member tm ");
         sql.append("    inner join task_summary ts on tm.task_id = ts.id ");
-        sql.append("    left join dm_dtab_basic_extend extend on extend.reference_id  = ts.id ");
+        if(matterTypeSetting == null){
+            sql.append("    left join dm_dtab_basic_extend extend on extend.reference_id  = ts.id ");
+        }else {
+            sql.append("    left join ( select "+matterTypeSetting+" as gb_type_setting_enum_id, * from dm_dtab_basic_extend where dm_dtab_basic_extend.type_setting like '%"+ matterTypeSetting +"%'  ) extend on extend.reference_id  = ts.id ");
+        }
         sql.append("    left join task_type tt on tt.id = cast(ts.tasktype_id as bigint) ");
         sql.append("    left join org_person person on person.id = tm.resource_id ");
         sql.append("    left join org_post post on post.id = person.org_post_id ");
         sql.append("    left join org_unit unit on unit.id = person.org_department_id ");
         sql.append("    left join task_comment tc on (tc.taskid = tm.task_id and tc.dwid = tm.resource_id) ");
-        sql.append("    left join type_setting_score typeScore on typeScore.enum_id = extend.type_setting ");
+        if(matterTypeSetting != null) {
+            sql.append("    left join type_setting_score typeScore on typeScore.enum_id = extend.gb_type_setting_enum_id  and to_char(typeScore.year) = :year ");
+        }
         sql.append("    left join ( ");
         sql.append("        select ROUND(max(cast(extend.field_51 as float))/count(tm.id),1) as \"jcgScore\", tm.task_id ");
         sql.append("        from task_member tm ");

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

@@ -1593,7 +1593,7 @@ public class TaskAnalysisManagerImpl implements ITaskAnalysisManager{
             result.put("sort", tipEnum.getSort());
             TypeSettingScoreBean scoreBean = collect.get(tipEnum.getId());
             //基础分数
-            result.put("basicScore",
+            result.put("baseScore",
                     scoreBean == null || scoreBean.getBaseScore() == null ? 0 : scoreBean.getBaseScore());
             //评价分
             result.put("evalScore",

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

@@ -5356,7 +5356,12 @@ public class TaskListManagerImpl implements ITaskListManager {
 					//放一个前台需要的map数据集
 					var valueMap = tipEnumManager.getTipEnumMap4Ids(val);
 					col.put("value", valueMap);
-					col.put("realValue", Long.parseLong(val));
+					if(val.contains(",")){
+						col.put("realValue", Arrays.stream(val.split(",")).map(Long::parseLong).toArray());
+					}else {
+						col.put("realValue", Long.parseLong(val));
+					}
+
 				}
 				break;
 			case "valueWithUnit":

+ 99 - 10
tip-front/src/main/webapp/WEB-INF/pages/apps/task/analysis/evaluateAnalysis.html

@@ -222,7 +222,7 @@
                 </div>
 
                 <div class="mt-btn-group">
-                    <input id="currentTaskTypes" name="year" type="hidden" value="">
+                    <input id="currentTaskTypes" name="taskTypes" type="hidden" value="">
                     <button class="mt-btn">
                         <span class="mt-selTxt taskType-text"></span>
                         <i class="caret"></i>
@@ -231,6 +231,16 @@
                     </ul>
                 </div>
 
+                <div class="mt-btn-group" id="TaskTypeEnumContainer" style="display: none">
+                    <input id="taskTypeEnum" name="year" type="hidden" value="">
+                    <button class="mt-btn">
+                        <span class="mt-selTxt taskEnum-text"></span>
+                        <i class="caret"></i>
+                    </button>
+                    <ul id="TaskTypeEnumList" class="mt-dropdown-menu">
+                    </ul>
+                </div>
+
             </div>
 
             <div class="mt-horizontal tableInfo">
@@ -244,12 +254,14 @@
                             <th>总得分</th>
                             <th>基础分</th>
                             <th>评价得分</th>
+                            <th class="taskTypeEnumTh" style="display: none">类型基础得分</th>
+                            <th class="taskTypeEnumTh" style="display: none">类型评价得分</th>
                             <th>平均事项完成时长</th>
                         </tr>
                         </thead>
                         <tbody id="byManagerTrs">
                         <tr>
-                            <td colspan="6">暂无数据</td>
+                            <td colspan="10">暂无数据</td>
                         </tr>
                         </tbody>
                     </table>
@@ -297,7 +309,7 @@
 <script id="responUnitTableBody" type="text/html">
     {{if data.length==0}}
     <tr>
-        <td colspan="6">暂无数据</td>
+        <td colspan="10">暂无数据</td>
     </tr>
     {{else if data.length>0}}
     {{each data obj index}}
@@ -308,6 +320,14 @@
         <td>{{obj.score}}</td>
         <td>{{obj.score1}}</td>
         <td>{{obj.score2}}</td>
+        {{ if obj.score3!=null}} }}
+            <td>{{obj.score3}}</td>
+        {{/if}}
+
+        {{ if obj.score4!=null}}
+        <td>{{obj.score4}}</td>
+        {{/if}}
+
         <td>{{obj.avgtime}}</td>
     </tr>
     {{/each}}
@@ -315,9 +335,10 @@
 </script>
 <script  th:inline="javascript">
     $(function () {
-        initYears()
+        initYears();
         initTableByManager(new Date().getFullYear(),"");
-        initPageTaskTypes()
+        initPageTaskTypes();
+        getTaskTypeEnum();
     })
 
 function initTableByManager(year,id) {
@@ -325,7 +346,11 @@ function initTableByManager(year,id) {
         year: year,
         taskTypeId: '0',
         orgName: '',
-        gbTaskTypeId:id+''
+        gbTaskTypeId:id+'',
+    }
+    // 如果容器没有隐藏
+    if($('#TaskTypeEnumContainer').css("display") !== "none"){
+        param['matterTypeSetting'] = $("#taskTypeEnum").val()
     }
     callAjaxRequest("taskAnalysisWebService", "findEvaluateAnalysis", param, function (result) {
         var html;
@@ -348,10 +373,28 @@ function initPageTaskTypes () {
     let renderStr = "";
     callAjaxRequest("taskAnalysisWebService", "findTaskTypes", {}, function (result) {
         result = result || [];
-        showListData = showListData.concat(result);
+        let showResult = [];
+        // 不确定这里支持使用es的方法过滤不, 所以处理成相对老旧一点的js语法
+        for (let i = 0, len = result.length; i < len; i++){
+            if(result[i].parent_id == "0"){
+                let isOk = true;
+                for (let j = 0; j < len; j++){
+                    if(result[j].parent_id === result[i].id){
+                        isOk = false;
+                        break
+                    }
+                }
+                if(isOk){
+                    showResult.push(result[i])
+                }
+            }else {
+                showResult.push(result[i])
+            }
+        }
+        showListData = showListData.concat(showResult);
         for(let i = 0, len = showListData.length;  i < len; i++) {
             let item = showListData[i]
-            renderStr += '<li><a class="mt-dropdown-txt taskType-txt" onclick="filterByType(\''+item.id+'\')" value="' + item.id + '' + '">' + item.name + '</a></li>'
+            renderStr += '<li><a class="mt-dropdown-txt taskType-txt" onclick="filterByType(\''+item.id+'\', \''+item.name+'\')" value="' + item.id + '' + '">' + item.name + '</a></li>'
         }
         $("#pageTaskTypes").html(renderStr);
         $("#currentTaskTypes").val("");
@@ -360,9 +403,23 @@ function initPageTaskTypes () {
 }
 
 // 根据类型加载列表
-function filterByType (id) {
+function filterByType (id, name) {
     $.startProc()
     $("#currentTaskTypes").val(id);
+    if(['重点案件','普通案件'].includes(name)){
+        $('#TaskTypeEnumContainer').show();
+        $('.taskTypeEnumTh').show();
+        if($("#taskTypeEnum").val()){
+            $('.taskTypeEnumTh').show();
+        }else {
+            $('.taskTypeEnumTh').hide();
+        }
+    }else {
+        $('#TaskTypeEnumContainer').hide();
+        $('.taskTypeEnumTh').hide();
+        $(".taskEnum-text").text("全部");
+        $("#taskTypeEnum").val("");
+    }
     initTableByManager($("#year").val(), id)
 }
 
@@ -378,7 +435,6 @@ function initYears() {
     $(".year-text").text(year + "年");
 }
 
-
 //根据年份筛选
 function setYear(year) {
     $.startProc()
@@ -387,6 +443,39 @@ function setYear(year) {
     initTableByManager(year , $("#currentTaskTypes").val())
 }
 
+// 获取业绩考核的类型设置枚举
+function getTaskTypeEnum() {
+    let showListData = [{id: "", value: "全部", parent_id: 0}];
+    let renderStr = "";
+    callAjaxRequest(
+        'taskAnalysisWebService',
+        'findMatterTypeSettings', {param: {}},
+        function (result) {
+            result = result || [];
+            showListData = showListData.concat(result);
+            for(let i = 0, len = showListData.length;  i < len; i++) {
+                let item = showListData[i]
+                renderStr += '<li><a class="mt-dropdown-txt taskType-txt" onclick="filterByEnum(\''+item.id+'\')" value="' + item.id + '' + '">' + item.value + '</a></li>'
+            }
+            $("#TaskTypeEnumList").html(renderStr);
+            $("#taskTypeEnum").val("");
+        }
+    );
+    $(".taskEnum-text").text("全部");
+}
+
+// 业绩类型设置
+function filterByEnum (id,) {
+    $.startProc()
+    $("#taskTypeEnum").val(id);
+    initTableByManager($("#year").val(), $("#currentTaskTypes").val())
+    if(id){
+        $('.taskTypeEnumTh').show();
+    }else {
+        $('.taskTypeEnumTh').hide();
+    }
+}
+
 $('body').on('click', '.mt-btn-group .mt-dropdown-txt', function (e) {
     $(".yearTxt").html($(this).html());
 })

+ 2 - 2
tip-front/src/main/webapp/WEB-INF/pages/apps/task/type/settingModal.html

@@ -94,7 +94,7 @@
     </div>
     <div class="pj-body-item">
         <div class="pj-body-item-title">基础分:</div>
-        <input type="number" v-model="formData.basicScore">
+        <input type="number" v-model="formData.baseScore">
     </div>
     <div class="pj-body-item">
         <div class="pj-body-item-title">评价得分:</div>
@@ -116,7 +116,7 @@
         value: '',
         key: '',
         sort: '',
-        basicScore: 0,
+        baseScore: 0,
         evalScore: 0
     };
   var vm = new Vue({

+ 3 - 2
tip-front/src/main/webapp/WEB-INF/pages/apps/task/type/typesSettings.html

@@ -103,7 +103,7 @@
 								<td>{{item.value}}</td>
 								<td>{{item.key}}</td>
 								<td>{{item.sort}}</td>
-								<td>{{item.basicScore}}</td>
+								<td>{{item.baseScore}}</td>
 								<td>{{item.evalScore}}</td>
 								<td>{{dateFormat(item.createDate)}}</td>
 								<td>{{dateFormat(item.updateDate)}}</td>
@@ -202,7 +202,8 @@
 											'taskAnalysisWebService',
 											'saveMatterTypeSettings', params,
 											function () {
-												_this.initData()
+												_this.initData();
+												$.alert("保存成功!");
 											}
 									);