From 9dc10b600b4e11889749f274a061f3550ffa77e0 Mon Sep 17 00:00:00 2001
From: pengqiang <1067496116@qq.com>
Date: Wed, 28 Dec 2022 10:56:53 +0800
Subject: [PATCH 1/2] =?UTF-8?q?=E6=B5=81=E7=A8=8B=E6=9B=B4=E6=96=B0?=
 =?UTF-8?q?=E5=AE=A1=E6=89=B9=E4=BA=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../java/cn/palmte/work/service/ActListenerService.java   | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/main/java/cn/palmte/work/service/ActListenerService.java b/src/main/java/cn/palmte/work/service/ActListenerService.java
index 633c151..a99882e 100644
--- a/src/main/java/cn/palmte/work/service/ActListenerService.java
+++ b/src/main/java/cn/palmte/work/service/ActListenerService.java
@@ -105,11 +105,13 @@ public class ActListenerService {
         ActTaskDef actTaskDef = actTaskDefService.findFirstByProcDefIdAndTaskKey(procDefId, taskDefKey);
         //找到当前有效的用户
         List<Integer> enableUsers = currentEnableUsers(candidateUsers);
-        boolean isFirstUserTask = actTaskDef != null && actTaskDef.getTaskIndex() != ActTaskIndexEnum.FIRST_USER_TASK.getIndex();
+        boolean notFirstUserTask = actTaskDef != null && actTaskDef.getTaskIndex() != ActTaskIndexEnum.FIRST_USER_TASK.getIndex();
+        logger.info("**** rwcjjt 更新审批人 procInsId:{}, projectId:{}, enableUsers:{}, notFirstUserTask:{} **** ",
+                processInstance.getProcessInstanceId(), businessKey, enableUsers, notFirstUserTask);
 
         if (actUtil.isFourcalProcess(procDefId)) {
             int adminId = 0;//默认审批人设置为空
-            if (!isFirstUserTask && !enableUsers.isEmpty()) {
+            if (notFirstUserTask && !enableUsers.isEmpty()) {
                 adminId = enableUsers.get(0);//四算项目只支持一个审批人
             }
             logger.info("**** rwcjjt 任务创建监听 更新审批人1 procInsId:{}, projectId:{}, adminId:{} **** ",
@@ -119,7 +121,7 @@ public class ActListenerService {
             if (!enableUsers.isEmpty()) {
                 projectProcessService.updateAudit(Integer.parseInt(businessKey), null, enableUsers);
             }
-            logger.info("**** rwcjjt 任务创建监听 更新审批2 procInsId:{}, projectId:{}, enableUsers:{} **** ",
+            logger.info("**** rwcjjt 任务创建监听 更新审批人2 procInsId:{}, projectId:{}, enableUsers:{} **** ",
                     processInstance.getProcessInstanceId(), businessKey, enableUsers);
         }
     }

From 7a90a848aa5f71abe69efb532417293c207cfcbe Mon Sep 17 00:00:00 2001
From: pengqiang <1067496116@qq.com>
Date: Wed, 28 Dec 2022 11:38:30 +0800
Subject: [PATCH 2/2] =?UTF-8?q?=E6=B5=81=E7=A8=8B=E5=AE=9E=E4=BE=8B?=
 =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=A2=9E=E5=8A=A0=E6=90=9C=E7=B4=A2=E5=8A=9F?=
 =?UTF-8?q?=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../work/service/ActProcInsService.java       |  15 +++
 .../templates/admin/act_proc_ins_list.ftl     | 102 ++++++++++++++++++
 2 files changed, 117 insertions(+)

diff --git a/src/main/java/cn/palmte/work/service/ActProcInsService.java b/src/main/java/cn/palmte/work/service/ActProcInsService.java
index 29b0983..974e89a 100644
--- a/src/main/java/cn/palmte/work/service/ActProcInsService.java
+++ b/src/main/java/cn/palmte/work/service/ActProcInsService.java
@@ -9,6 +9,7 @@ import cn.palmte.work.model.ProjectTaskRecord;
 import cn.palmte.work.pojo.ActProcIns;
 import cn.palmte.work.utils.ActUtil;
 import cn.palmte.work.utils.InterfaceUtil;
+import cn.palmte.work.utils.StrKit;
 import org.activiti.bpmn.model.BpmnModel;
 import org.activiti.bpmn.model.FlowNode;
 import org.activiti.bpmn.model.SequenceFlow;
@@ -172,6 +173,20 @@ public class ActProcInsService {
                 "LEFT JOIN act_ru_task t on t.PROC_INST_ID_=h.proc_inst_id_ " +
                 "LEFT JOIN project pjct on pjct.id=h.BUSINESS_KEY_ " +
                 "LEFT JOIN project_process pp on pp.id=h.BUSINESS_KEY_ ");
+
+        String procDefKey = searchInfo.get("procDefKey");
+        queryHelper.addCondition(StrKit.notBlank(procDefKey), "p.key_=?", procDefKey);
+
+        String projectName = searchInfo.get("projectName");
+        String projectNameLike = "%" + projectName + "%";
+        queryHelper.addCondition(StrKit.notBlank(projectName), " (pjct.name like ? or pp.project_title like ?) ", projectNameLike, projectNameLike);
+
+        String projectId = searchInfo.get("projectId");
+        queryHelper.addCondition(StrKit.notBlank(projectId), "h.BUSINESS_KEY_ =? ", projectId);
+
+        String procInsId = searchInfo.get("procInsId");
+        queryHelper.addCondition(StrKit.notBlank(procInsId), "h.proc_inst_id_ =? ", procInsId);
+
         queryHelper.addGroupProperty("h.PROC_INST_ID_");
         queryHelper.addOrderProperty("h.start_time_", false);
         Page<ActProcIns> paginate = pagination.paginate(queryHelper.getSql(), ActProcIns.class, pageNumber, pageSize);
diff --git a/src/main/resources/templates/admin/act_proc_ins_list.ftl b/src/main/resources/templates/admin/act_proc_ins_list.ftl
index ba51f35..201544b 100644
--- a/src/main/resources/templates/admin/act_proc_ins_list.ftl
+++ b/src/main/resources/templates/admin/act_proc_ins_list.ftl
@@ -10,6 +10,79 @@
             </div>
         </div>
 
+
+        <div class="am-g">
+            <div class="am-u-sm-12">
+                <form class="am-form" id="listForm" action="${base}/account/list" method="POST">
+                    <input type="hidden" id="keywords" name="keywords" value='${keywords!""}'/>
+                    <table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
+                        <tbody>
+                        <tr>
+                            <th class="am-text-middle">流程名称</th>
+                            <td>
+                                <div class="am-u-sm-10">
+                                    <select data-am-selected id="procDefKey" name="procDefKey">
+                                        <option value=" ">全部</option>
+                                        <option value='estimate'
+                                                <#if procDefKey! =="estimate" >selected</#if> >
+                                            概算审批流程</option>
+                                        <option value='budget'
+                                                <#if procDefKey! =="budget" >selected</#if> >
+                                            预算审批流程</option>
+                                        <option value='settle'
+                                                <#if procDefKey! =="settle" >selected</#if> >
+                                            结算审批流程</option>
+                                        <option value='final'
+                                                <#if procDefKey! =="final" >selected</#if> >
+                                            决算审批流程</option>
+                                        <option value='saleContract'
+                                                <#if procDefKey! =="saleContract" >selected</#if> >
+                                            销售合同审批流程</option>
+                                        <option value='businessPurchase'
+                                                <#if procDefKey! =="businessPurchase" >selected</#if> >
+                                            业务采购审批流程</option>
+                                    </select>
+                                </div>
+                            </td>
+                            <th class="am-text-middle">项目名称</th>
+                            <td>
+                                <div class="am-u-sm-10">
+                                    <input type="text" id="projectName" class="am-form-field am-input-sm" maxlength="50"
+                                           value="${projectName!}"/>
+                                </div>
+                            </td>
+
+                            <th class="am-text-middle">项目ID</th>
+                            <td>
+                                <div class="am-u-sm-10">
+                                    <input type="text" id="projectId" class="am-form-field am-input-sm" maxlength="12"
+                                           value="${projectId!}"/>
+                                </div>
+                            </td>
+
+                            <th class="am-text-middle">流程实例ID</th>
+                            <td>
+                                <div class="am-u-sm-10">
+                                    <input type="text" id="procInsId" class="am-form-field am-input-sm" maxlength="12"
+                                           value="${procInsId!}"/>
+                                </div>
+                            </td>
+
+                            <td >
+                                <div align='right'>
+                                    <button type="button" class="am-btn am-btn-default am-btn-sm am-text-secondary"
+                                            id="submit-btn" onclick="sub_function('query')">搜索
+                                    </button>
+                                </div>
+                            </td>
+                        </tr>
+
+                        </tbody>
+                    </table>
+                </form>
+            </div>
+        </div>
+
         <div class="am-g">
             <div class="am-u-sm-12 am-scrollable-horizontal">
                 <!--  padding:1px 2px 3px 4px;上、右、下,和左   -->
@@ -19,6 +92,7 @@
                         <th class="table-title">流程名称</th>
                         <th class="table-title">流程标识</th>
                         <th class="table-title">流程版本</th>
+                        <th class="table-title">流程实例id</th>
                         <th class="table-title">项目名称</th>
                         <th class="table-date">申请人</th>
                         <th class="table-date">申请时间</th>
@@ -35,6 +109,7 @@
                                 <td>${list.procName!}</td>
                                 <td>${list.procKey!}</td>
                                 <td>${list.version!}</td>
+                                <td>${list.procInsId!}</td>
                                 <td>${list.projectName!}${list.projectTitle!}</td>
                                 <td>${list.user!}</td>
                                 <td>${list.startTime?datetime}</td>
@@ -203,4 +278,31 @@
         });
     }
 
+
+    function initSearch() {
+        var keywordsObj = {};
+        if ($("#procDefKey").val())
+            keywordsObj.procDefKey = $("#procDefKey").val();
+        if ($("#projectName").val())
+            keywordsObj.projectName = $("#projectName").val();
+        if ($("#projectId").val())
+            keywordsObj.projectId = $("#projectId").val();
+        if ($("#procInsId").val())
+            keywordsObj.procInsId = $("#procInsId").val();
+
+        var keywords = "";
+        if (!$.isEmptyObject(keywordsObj)) {
+            keywords = JSON.stringify(keywordsObj);
+        }
+        $("#keywords").val(keywords);
+    };
+
+    var sub_function = function (type) {
+        initSearch();
+        if(type == 'query'){
+            $("#listForm").attr("action", "${base}/actProcIns/list");
+        }
+        $("#listForm").submit();
+    };
+
 </script>
\ No newline at end of file