Sfoglia il codice sorgente

知识库,问答答疑模块调整

徐滕 1 settimana fa
parent
commit
3a158ace06

+ 44 - 0
src/main/java/com/jeeplus/modules/WorkKnowledgeBase/entity/WorkKnowledgeBaseShareInfo.java

@@ -89,6 +89,18 @@ public class WorkKnowledgeBaseShareInfo extends DataEntity<WorkKnowledgeBaseShar
     /** 主审专家姓名列表(多个用逗号分隔,非数据库字段,用于展示) */
     private String expertReviewerNames;
 
+    /** 所属人ID(查询字段,非数据库字段) */
+    private String ownerUserId;
+
+    /** 所属人姓名(展示字段,非数据库字段) */
+    private String ownerUserName;
+
+    /** 所属人部门ID(查询字段,非数据库字段) */
+    private String ownerOfficeId;
+
+    /** 所属人部门名称(展示字段,非数据库字段) */
+    private String ownerOfficeName;
+
     public String getTreeNodeId() {
         return treeNodeId;
     }
@@ -328,4 +340,36 @@ public class WorkKnowledgeBaseShareInfo extends DataEntity<WorkKnowledgeBaseShar
     public void setExpertReviewerNames(String expertReviewerNames) {
         this.expertReviewerNames = expertReviewerNames;
     }
+
+    public String getOwnerUserId() {
+        return ownerUserId;
+    }
+
+    public void setOwnerUserId(String ownerUserId) {
+        this.ownerUserId = ownerUserId;
+    }
+
+    public String getOwnerOfficeId() {
+        return ownerOfficeId;
+    }
+
+    public void setOwnerOfficeId(String ownerOfficeId) {
+        this.ownerOfficeId = ownerOfficeId;
+    }
+
+    public String getOwnerUserName() {
+        return ownerUserName;
+    }
+
+    public void setOwnerUserName(String ownerUserName) {
+        this.ownerUserName = ownerUserName;
+    }
+
+    public String getOwnerOfficeName() {
+        return ownerOfficeName;
+    }
+
+    public void setOwnerOfficeName(String ownerOfficeName) {
+        this.ownerOfficeName = ownerOfficeName;
+    }
 }

+ 62 - 0
src/main/resources/mappings/modules/WorkKnowledgeBase/WorkKnowledgeBaseShareInfoDao.xml

@@ -148,6 +148,37 @@
             <if test="entity.isManualScore != null and entity.isManualScore != ''">
                 AND a.is_manual_score = #{entity.isManualScore}
             </if>
+            <!-- 审核状态筛选 -->
+            <if test="entity.auditStatus != null and entity.auditStatus != ''">
+                AND a.audit_status = #{entity.auditStatus}
+            </if>
+            <!-- 所属人筛选(支持ID精确匹配或姓名模糊查询) -->
+            <if test="entity.ownerUserId != null and entity.ownerUserId != ''">
+                AND COALESCE(a.submit_audit_user_id, a.create_by) = #{entity.ownerUserId}
+            </if>
+            <if test="entity.ownerUserName != null and entity.ownerUserName != ''">
+                AND EXISTS (
+                    SELECT 1 FROM sys_user u
+                    WHERE u.id = COALESCE(a.submit_audit_user_id, a.create_by)
+                      AND u.name LIKE CONCAT('%', #{entity.ownerUserName}, '%')
+                      AND u.del_flag = '0'
+                )
+            </if>
+            <!-- 所属人部门筛选(支持ID精确匹配或部门名称模糊查询) -->
+            <if test="entity.ownerOfficeId != null and entity.ownerOfficeId != ''">
+                AND COALESCE(a.submit_audit_user_id, a.create_by) IN (
+                    SELECT u.id FROM sys_user u WHERE u.office_id = #{entity.ownerOfficeId} AND u.del_flag = '0'
+                )
+            </if>
+            <if test="entity.ownerOfficeName != null and entity.ownerOfficeName != ''">
+                AND EXISTS (
+                    SELECT 1 FROM sys_user u
+                    INNER JOIN sys_office o ON u.office_id = o.id
+                    WHERE u.id = COALESCE(a.submit_audit_user_id, a.create_by)
+                      AND o.name LIKE CONCAT('%', #{entity.ownerOfficeName}, '%')
+                      AND u.del_flag = '0' AND o.del_flag = '0'
+                )
+            </if>
             <!-- 动态字段查询条件:EXISTS 子查询(禁止写在主WHERE中) -->
             <if test="dynamicConditions != null">
                 <foreach collection="dynamicConditions" index="fieldId" item="queryVal">
@@ -219,6 +250,37 @@
             <if test="entity.isManualScore != null and entity.isManualScore != ''">
                 AND a.is_manual_score = #{entity.isManualScore}
             </if>
+            <!-- 审核状态筛选 -->
+            <if test="entity.auditStatus != null and entity.auditStatus != ''">
+                AND a.audit_status = #{entity.auditStatus}
+            </if>
+            <!-- 所属人筛选(支持ID精确匹配或姓名模糊查询) -->
+            <if test="entity.ownerUserId != null and entity.ownerUserId != ''">
+                AND COALESCE(a.submit_audit_user_id, a.create_by) = #{entity.ownerUserId}
+            </if>
+            <if test="entity.ownerUserName != null and entity.ownerUserName != ''">
+                AND EXISTS (
+                    SELECT 1 FROM sys_user u
+                    WHERE u.id = COALESCE(a.submit_audit_user_id, a.create_by)
+                      AND u.name LIKE CONCAT('%', #{entity.ownerUserName}, '%')
+                      AND u.del_flag = '0'
+                )
+            </if>
+            <!-- 所属人部门筛选(支持ID精确匹配或部门名称模糊查询) -->
+            <if test="entity.ownerOfficeId != null and entity.ownerOfficeId != ''">
+                AND COALESCE(a.submit_audit_user_id, a.create_by) IN (
+                    SELECT u.id FROM sys_user u WHERE u.office_id = #{entity.ownerOfficeId} AND u.del_flag = '0'
+                )
+            </if>
+            <if test="entity.ownerOfficeName != null and entity.ownerOfficeName != ''">
+                AND EXISTS (
+                    SELECT 1 FROM sys_user u
+                    INNER JOIN sys_office o ON u.office_id = o.id
+                    WHERE u.id = COALESCE(a.submit_audit_user_id, a.create_by)
+                      AND o.name LIKE CONCAT('%', #{entity.ownerOfficeName}, '%')
+                      AND u.del_flag = '0' AND o.del_flag = '0'
+                )
+            </if>
             <!-- 动态字段查询条件:EXISTS 子查询 -->
             <if test="dynamicConditions != null">
                 <foreach collection="dynamicConditions" index="fieldId" item="queryVal">

+ 57 - 1
src/main/webapp/webpage/modules/WorkKnowledgeBase/workKnowledgeBaseShareList.jsp

@@ -95,6 +95,23 @@
             });
         }
         
+        /** 打开回答界面(非只读模式,可提交回答) */
+        function openAnswerDialog(id) {
+            top.layer.open({
+                type: 2,
+                area: ['80%', '80%'],
+                title: '问答详情',
+                maxmin: true,
+                content: '${ctx}/workKnowledgeBase/share/detail?id=' + id + '&treeNodeId=${treeNodeId}&rootId=${rootId}',
+                btn: ['关闭'],
+                btn1: function(index) {
+                    top.layer.close(index);
+                    // 关闭后刷新列表,更新回答量等数据
+                    setTimeout(function() { search(); }, 300);
+                }
+            });
+        }
+        
         /** 查看问答答疑详情(只读模式) */
         function openQaDetailDialog(id) {
             top.layer.open({
@@ -630,6 +647,10 @@
             $('#searchForm input[type=text]').val('');
             $('#searchForm input[type=search]').val('');
             $('#searchForm select').val('');
+            // 清空除 treeNodeId、rootId、pageSize 外的隐藏字段
+            $('#searchForm input[type=hidden]').not('[name="treeNodeId"], [name="rootId"], [name="pageSize"]').val('');
+            // 页码重置为第一页
+            $('#pageNo').val('1');
             $('#searchForm').submit();
         }
 
@@ -692,6 +713,40 @@
                     <div id="moresees" style="clear:both;display:none;" class="lw7">
 
 
+
+
+                        <%-- 审核状态、所属人、所属人部门查询 --%>
+                        <div class="layui-item query athird">
+                            <label class="layui-form-label">所属人:</label>
+                            <div class="layui-input-block with-icon">
+                                <input type="text" name="ownerUserName" value="${shareInfo.ownerUserName}"
+                                       placeholder="所属人姓名模糊查询" class="form-control layui-input"/>
+                            </div>
+                        </div>
+                        <div class="layui-item query athird">
+                            <label class="layui-form-label">所属人部门:</label>
+                            <div class="layui-input-block with-icon">
+                                <input type="text" name="ownerOfficeName" value="${shareInfo.ownerOfficeName}"
+                                       placeholder="所属人部门名称模糊查询" class="form-control layui-input"/>
+                            </div>
+                        </div>
+                        <div class="layui-item query athird">
+                            <label class="layui-form-label">状态:</label>
+                            <div class="layui-input-block">
+                                <select name="auditStatus" class="form-control simple-select">
+                                    <option value=""></option>
+                                    <option value="0" ${shareInfo.auditStatus == '0' ? 'selected' : ''}>草稿</option>
+                                    <option value="1" ${shareInfo.auditStatus == '1' ? 'selected' : ''}>未审核</option>
+                                    <option value="2" ${shareInfo.auditStatus == '2' ? 'selected' : ''}>审核中</option>
+                                    <option value="4" ${shareInfo.auditStatus == '4' ? 'selected' : ''}>审核未通过</option>
+                                    <option value="5" ${shareInfo.auditStatus == '5' ? 'selected' : ''}>审核通过</option>
+                                    <option value="6" ${shareInfo.auditStatus == '6' ? 'selected' : ''}>待回答</option>
+                                    <option value="7" ${shareInfo.auditStatus == '7' ? 'selected' : ''}>回答中</option>
+                                    <option value="8" ${shareInfo.auditStatus == '8' ? 'selected' : ''}>已结束</option>
+                                </select>
+                            </div>
+                        </div>
+
                         <div class="layui-item query athird" style="clear:both;">
                             <label class="layui-form-label">是否手动赋分:</label>
                             <div class="layui-input-block with-icon">
@@ -703,6 +758,7 @@
                             </div>
                         </div>
 
+
                         <c:forEach items="${dynamicFields}" var="field">
                             <div class="layui-item query athird">
                                 <c:choose>
@@ -900,7 +956,7 @@
                     
                     // 非创建人且问题未结束时,显示回答按钮
                     if (!isCreator && (qaStatus === 6 || qaStatus === 7)) {
-                        xml += '<a href="javascript:void(0)" onclick="openDetailDialogWithRead(\'' + d.id + '\')" class="layui-btn layui-btn-xs layui-bg-orange"> 回答</a>';
+                        xml += '<a href="javascript:void(0)" onclick="openAnswerDialog(\'' + d.id + '\')" class="layui-btn layui-btn-xs layui-bg-orange"> 回答</a>';
                     }
                 } else {
                     // ========== 非问答分类:原有审核流程 ==========