Skip to content

Commit ab708eb

Browse files
committed
feat: Approval detail
1 parent ed9a4e2 commit ab708eb

24 files changed

Lines changed: 370 additions & 147 deletions

backend/crm/src/main/java/cn/cordys/common/constants/FormKey.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package cn.cordys.common.constants;
22

33
import lombok.Getter;
4+
import org.apache.commons.lang3.Strings;
45

56
import java.util.Arrays;
67
import java.util.List;
8+
import java.util.Objects;
79
import java.util.stream.Collectors;
810

911
/**
@@ -79,4 +81,17 @@ public enum FormKey {
7981
public static List<String> allKeys() {
8082
return Arrays.stream(FormKey.values()).map(FormKey::getKey).collect(Collectors.toList());
8183
}
84+
85+
public static FormKey ofKey(String key) {
86+
for (FormKey formKey : FormKey.values()) {
87+
if (Strings.CI.equals(formKey.getKey(), key)) {
88+
return formKey;
89+
}
90+
}
91+
return null;
92+
}
93+
94+
public boolean hasSnapshot() {
95+
return Strings.CI.equalsAny(this.key, CONTRACT.getKey(), INVOICE.getKey(), QUOTATION.getKey());
96+
}
8297
}

backend/crm/src/main/java/cn/cordys/crm/approval/aspect/HitApprovalAspect.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public void handleHitApproval(JoinPoint joinPoint, Object retValue) {
7575

7676
if (hit) {
7777
// 命中审批流, 修改业务资源审批状态为待提审
78-
approvalResourceService.updateApprovalStatus(annotation.formKey(), resourceId, ApprovalStatus.PENDING.name());
78+
approvalResourceService.updateResourceApprovalStatus(annotation.formKey(), resourceId, ApprovalStatus.PENDING.name());
7979
}
8080
} catch (Exception e) {
8181
log.error("审批流执行时机匹配失败,error:{}", e.getMessage(), e);

backend/crm/src/main/java/cn/cordys/crm/approval/domain/ApprovalRecord.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ public class ApprovalRecord extends BaseModel {
1818
@Schema(description = "任务ID")
1919
private String taskId;
2020

21+
@Schema(description = "节点轮次")
22+
private Integer nodeRound;
23+
2124
@Schema(description = "节点ID")
2225
private String nodeId;
2326

backend/crm/src/main/java/cn/cordys/crm/approval/domain/ApprovalTask.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ public class ApprovalTask extends BaseModel {
1515
@Schema(description = "节点ID")
1616
private String nodeId;
1717

18+
@Schema(description = "节点轮次")
19+
private Integer nodeRound;
20+
1821
@Schema(description = "审批实例ID")
1922
private String instanceId;
2023

backend/crm/src/main/java/cn/cordys/crm/approval/dto/ApprovalInstanceDetail.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,16 @@ public class ApprovalInstanceDetail {
1414
@Schema(description = "提交人ID")
1515
private String submitterId;
1616

17+
@Schema(description = "提交人头像")
18+
private String submitAvatar;
19+
1720
@Schema(description = "提交人")
1821
private String submitter;
1922

2023
@Schema(description = "提交时间")
2124
private Long submitTime;
2225

23-
@Schema(description = "审批结果")
24-
private String result;
25-
26-
@Schema(description = "审批实例状态")
26+
@Schema(description = "审批状态")
2727
private String approvalStatus;
2828

2929
@Schema(description = "当前节点ID")

backend/crm/src/main/java/cn/cordys/crm/approval/dto/ApprovalRecordNode.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ public class ApprovalRecordNode {
1717
@Schema(description = "节点ID")
1818
private String nodeId;
1919

20+
@Schema(description = "节点轮次")
21+
private Integer nodeRound;
22+
2023
@Schema(description = "审批状态")
2124
private String approvalStatus;
2225

backend/crm/src/main/java/cn/cordys/crm/approval/dto/ApprovalTaskNode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,5 +43,5 @@ public class ApprovalTaskNode {
4343
private Long approvalTime;
4444

4545
@Schema(description = "是否加签任务")
46-
private boolean isAddSign;
46+
private boolean sign;
4747
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package cn.cordys.crm.approval.dto;
2+
3+
import lombok.Builder;
4+
import lombok.Data;
5+
6+
@Data
7+
@Builder
8+
public class ResourceSnapshotApprovalParam {
9+
10+
private String resourceId;
11+
private String approvalStatus;
12+
}

backend/crm/src/main/java/cn/cordys/crm/approval/mapper/ExtApprovalInstanceMapper.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,14 @@ void updateApprovalStatus(@Param("sourceTable") String sourceTable, @Param("id")
2222
String selectBusinessName(@Param("sourceTable") String sourceTable, @Param("id") String id);
2323

2424
String getResourceOwner(@Param("sourceTable")String sourceTable, @Param("id")String id);
25+
26+
/**
27+
* 获取节点下一个执行轮次
28+
* 从 approval_task 和 approval_record 中一起获取,取最大轮次 +1
29+
*
30+
* @param instanceId 审批实例ID
31+
* @param nodeId 节点ID
32+
* @return 下一个轮次
33+
*/
34+
Integer getNextNodeRound(@Param("instanceId") String instanceId, @Param("nodeId") String nodeId);
2535
}

backend/crm/src/main/java/cn/cordys/crm/approval/mapper/ExtApprovalInstanceMapper.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,11 @@
1515
<select id="getResourceOwner" resultType="java.lang.String">
1616
select owner from ${sourceTable} where id = #{id}
1717
</select>
18+
19+
<select id="getNextNodeRound" resultType="java.lang.Integer">
20+
SELECT IFNULL(GREATEST(
21+
(SELECT MAX(node_round) FROM approval_task WHERE instance_id = #{instanceId} AND node_id = #{nodeId}),
22+
(SELECT MAX(node_round) FROM approval_record WHERE instance_id = #{instanceId} AND node_id = #{nodeId})
23+
), 0) + 1
24+
</select>
1825
</mapper>

0 commit comments

Comments
 (0)