From 0377a0cc8cf069188a153d823b830a35559d44b1 Mon Sep 17 00:00:00 2001 From: dashixiong Date: Thu, 9 Apr 2026 13:12:26 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=B7=E5=81=87=E8=A1=A5=E5=81=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 11 +++++++++++ .../mapper/administration/LeaveApplyMapper.xml | 8 +++----- .../administration/LeaveApplyService.java | 17 ++++++++--------- .../sql/upgrade_leave_apply_audit_man_id.sql | 14 ++++++++++++++ .../webapp/jsp/administration/leaveApplyAdd.jsp | 15 --------------- .../jsp/administration/leaveApplyEdit.jsp | 15 --------------- 6 files changed, 36 insertions(+), 44 deletions(-) create mode 100644 src/main/resources/sql/upgrade_leave_apply_audit_man_id.sql diff --git a/pom.xml b/pom.xml index a032a273..08c61642 100644 --- a/pom.xml +++ b/pom.xml @@ -603,6 +603,17 @@ org.redisson redisson 3.11.4 + + + + org.jodd + jodd-bean + + + org.jodd + jodd-core + + diff --git a/src/main/java/com/sipai/mapper/administration/LeaveApplyMapper.xml b/src/main/java/com/sipai/mapper/administration/LeaveApplyMapper.xml index 13c27d5d..422feade 100644 --- a/src/main/java/com/sipai/mapper/administration/LeaveApplyMapper.xml +++ b/src/main/java/com/sipai/mapper/administration/LeaveApplyMapper.xml @@ -49,14 +49,14 @@ insert into tb_administration_leave_apply ( id, insdt, insuser, upduser, upddt, unit_id, apply_type, leave_type, start_time, end_time, hours, days, reason, handover_desc, attachment_ids, overtime_ref_id, overtime_hours, - actual_start_time, actual_end_time, state, audit_man_id, submission_time, processid, + actual_start_time, actual_end_time, state, submission_time, processid, processdefid, remark, del_flag) values ( #{id,jdbcType=VARCHAR}, #{insdt,jdbcType=TIMESTAMP}, #{insuser,jdbcType=VARCHAR}, #{upduser,jdbcType=VARCHAR}, #{upddt,jdbcType=TIMESTAMP}, #{unitId,jdbcType=VARCHAR}, #{applyType,jdbcType=VARCHAR}, #{leaveType,jdbcType=VARCHAR}, #{startTime,jdbcType=TIMESTAMP}, #{endTime,jdbcType=TIMESTAMP}, NULLIF(#{hours,jdbcType=VARCHAR}, ''), NULLIF(#{days,jdbcType=VARCHAR}, ''), #{reason,jdbcType=VARCHAR}, #{handoverDesc,jdbcType=VARCHAR}, #{attachmentIds,jdbcType=VARCHAR}, #{overtimeRefId,jdbcType=VARCHAR}, NULLIF(#{overtimeHours,jdbcType=VARCHAR}, ''), #{actualStartTime,jdbcType=TIMESTAMP}, #{actualEndTime,jdbcType=TIMESTAMP}, - #{state,jdbcType=VARCHAR}, #{auditManId,jdbcType=VARCHAR}, #{submissionTime,jdbcType=TIMESTAMP}, #{processid,jdbcType=VARCHAR}, + #{state,jdbcType=VARCHAR}, #{submissionTime,jdbcType=TIMESTAMP}, #{processid,jdbcType=VARCHAR}, #{processdefid,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, #{delFlag,jdbcType=CHAR}) @@ -82,7 +82,6 @@ actual_start_time, actual_end_time, state, - audit_man_id, submission_time, processid, processdefid, @@ -110,7 +109,6 @@ #{actualStartTime,jdbcType=TIMESTAMP}, #{actualEndTime,jdbcType=TIMESTAMP}, #{state,jdbcType=VARCHAR}, - #{auditManId,jdbcType=VARCHAR}, #{submissionTime,jdbcType=TIMESTAMP}, #{processid,jdbcType=VARCHAR}, #{processdefid,jdbcType=VARCHAR}, @@ -140,7 +138,7 @@ actual_start_time = #{actualStartTime,jdbcType=TIMESTAMP}, actual_end_time = #{actualEndTime,jdbcType=TIMESTAMP}, state = #{state,jdbcType=VARCHAR}, - audit_man_id = #{auditManId,jdbcType=VARCHAR}, + audit_man_id = NULL, submission_time = #{submissionTime,jdbcType=TIMESTAMP}, processid = #{processid,jdbcType=VARCHAR}, processdefid = #{processdefid,jdbcType=VARCHAR}, diff --git a/src/main/java/com/sipai/service/administration/LeaveApplyService.java b/src/main/java/com/sipai/service/administration/LeaveApplyService.java index a5415148..d8ccefb2 100644 --- a/src/main/java/com/sipai/service/administration/LeaveApplyService.java +++ b/src/main/java/com/sipai/service/administration/LeaveApplyService.java @@ -127,7 +127,6 @@ public class LeaveApplyService implements CommService { if (StringUtils.isBlank(candidateUserIds)) { return MaintenanceCommString.Response_StartProcess_NoUser; } - leaveApply.setAuditManId(candidateUserIds); variables.put("userIds", candidateUserIds); variables.put("applyType", leaveApply.getApplyType()); variables.put("leaveType", leaveApply.getLeaveType()); @@ -252,11 +251,6 @@ public class LeaveApplyService implements CommService { if (resourceId == null) { resourceId = BusinessUnit.UNIT_LEAVE_APPLY_SECTION_AUDIT; } - String auditManId = StringUtils.trimToNull(leaveApply.getAuditManId()); - if (auditManId != null && (StringUtils.isBlank(leaveApply.getProcessid()) - || BusinessUnit.UNIT_LEAVE_APPLY_SECTION_AUDIT.equals(resourceId))) { - return auditManId; - } String jobIds = StringUtils.trimToNull(this.jobService.getJobs4Activiti( leaveApply.getUnitId(), ProcessType.Administration_Leave.getId(), resourceId)); if (StringUtils.isBlank(jobIds) && !BusinessUnit.UNIT_LEAVE_APPLY_SECTION_AUDIT.equals(resourceId)) { @@ -298,11 +292,12 @@ public class LeaveApplyService implements CommService { List nextWorkTasks = workflowProcessDefinitionService.getNextWorkTasks(leaveApply.getProcessdefid(), currentTaskDefinitionKey); if (nextWorkTasks == null || nextWorkTasks.isEmpty()) { - return this.getDefaultCandidateUserIds(leaveApply); + return null; } int expectedRouteNum = routeNum == null ? -1 : routeNum; + boolean matchedRoute = false; for (com.sipai.entity.activiti.WorkTask workTask : nextWorkTasks) { - if (workTask == null || !"userTask".equals(workTask.getType())) { + if (workTask == null) { continue; } if (workTask.isPassFlag() != passStatus) { @@ -311,9 +306,13 @@ public class LeaveApplyService implements CommService { if (expectedRouteNum >= 0 && workTask.getRouteNum() != expectedRouteNum) { continue; } + matchedRoute = true; + if (!"userTask".equals(workTask.getType())) { + continue; + } return this.getDefaultCandidateUserIds(leaveApply, workTask.getTaskKey()); } - return this.getDefaultCandidateUserIds(leaveApply); + return matchedRoute ? null : this.getDefaultCandidateUserIds(leaveApply); } private String joinUserIds(List userIds) { diff --git a/src/main/resources/sql/upgrade_leave_apply_audit_man_id.sql b/src/main/resources/sql/upgrade_leave_apply_audit_man_id.sql new file mode 100644 index 00000000..edb55de8 --- /dev/null +++ b/src/main/resources/sql/upgrade_leave_apply_audit_man_id.sql @@ -0,0 +1,14 @@ +/* + 请假补假流程审批人字段扩容脚本 + 场景: + 1) audit_man_id 保存当前节点候选审批人 ID 列表 + 2) 组织下候选人员较多时,原 varchar(250/500) 可能被截断 +*/ + +IF OBJECT_ID('dbo.tb_administration_leave_apply', 'U') IS NOT NULL +AND COL_LENGTH('dbo.tb_administration_leave_apply', 'audit_man_id') IS NOT NULL +BEGIN + ALTER TABLE dbo.tb_administration_leave_apply + ALTER COLUMN audit_man_id varchar(max) NULL; +END +GO diff --git a/src/main/webapp/jsp/administration/leaveApplyAdd.jsp b/src/main/webapp/jsp/administration/leaveApplyAdd.jsp index 849b059c..72c99f47 100644 --- a/src/main/webapp/jsp/administration/leaveApplyAdd.jsp +++ b/src/main/webapp/jsp/administration/leaveApplyAdd.jsp @@ -62,14 +62,6 @@ function calculateLeaveDays() { $("#days").val(days % 1 === 0 ? days.toString() : days.toFixed(1)); return true; } -function showUser4AuditSelectsFun() { - var userIds = $("#auditManId").val(); - var companyId = $("#subForm [name='unitId']").val(); - $.post(ext.contextPath + '/user/userForSelect.do', {formId:"subForm",hiddenId:"auditManId",textId:"auditManName",userIds:userIds,companyId:companyId}, function(data) { - $("#user4SelectDiv").html(data); - openModal("user4SelectModal"); - }); -} function doSaveLeaveApply(startProcess) { $("#subForm").bootstrapValidator('validate'); if ($("#subForm").data('bootstrapValidator').isValid()) { @@ -184,13 +176,6 @@ $(function(){
-
- -
- - -
-
diff --git a/src/main/webapp/jsp/administration/leaveApplyEdit.jsp b/src/main/webapp/jsp/administration/leaveApplyEdit.jsp index f0a0bc2c..de25efa0 100644 --- a/src/main/webapp/jsp/administration/leaveApplyEdit.jsp +++ b/src/main/webapp/jsp/administration/leaveApplyEdit.jsp @@ -67,14 +67,6 @@ function calculateLeaveDays() { $("#days").val(days % 1 === 0 ? days.toString() : days.toFixed(1)); return true; } -function showUser4AuditSelectsFun() { - var userIds = $("#auditManId").val(); - var companyId = $("#subForm [name='unitId']").val(); - $.post(ext.contextPath + '/user/userForSelect.do', {formId:"subForm",hiddenId:"auditManId",textId:"auditManName",userIds:userIds,companyId:companyId}, function(data) { - $("#user4SelectDiv").html(data); - openModal("user4SelectModal"); - }); -} function doUpdateLeaveApply(startProcess) { $("#subForm").bootstrapValidator('validate'); if ($("#subForm").data('bootstrapValidator').isValid()) { @@ -188,13 +180,6 @@ $(function(){
-
- -
- - -
-