⚡ 优化角色数据权限、用户组织范围与流程完结处理人展示
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+20
-20
@@ -128,7 +128,7 @@ public final class MkProcessBizHandlers {
|
||||
entity.setApprovalStatus(change ? "change_approved" : "approved");
|
||||
entity.setEffectiveType("formal");
|
||||
entity.setCurrentNode("审核通过");
|
||||
entity.setCurrentProcessor(MkProcessNodeHelper.text(processorName, "系统"));
|
||||
entity.setCurrentProcessor(MkProcessNodeHelper.PROCESS_FINISHED);
|
||||
entity.setApprovedTime(LocalDateTime.now());
|
||||
// HCS 推送:审批通过置待同步状态,更新成功后即时推送,扫描任务保留兜底(ADR-0001 修订,前端接入设计 §6)
|
||||
entity.setHcsSyncStatus(HcsSyncConstant.HCS_STATUS_UNSYNCED);
|
||||
@@ -149,7 +149,7 @@ public final class MkProcessBizHandlers {
|
||||
boolean change = "change_reviewing".equals(entity.getApprovalStatus());
|
||||
entity.setApprovalStatus(change ? "change_rejected" : "rejected");
|
||||
entity.setCurrentNode("审核不通过");
|
||||
entity.setCurrentProcessor(MkProcessNodeHelper.text(processorName, "系统"));
|
||||
entity.setCurrentProcessor(MkProcessNodeHelper.PROCESS_FINISHED);
|
||||
return service.updateById(entity);
|
||||
}
|
||||
}
|
||||
@@ -201,7 +201,7 @@ public final class MkProcessBizHandlers {
|
||||
Long projectId = service.approve(id);
|
||||
entity = service.getById(id);
|
||||
if (entity != null) {
|
||||
entity.setCurrentProcessor(MkProcessNodeHelper.text(processorName, "系统"));
|
||||
entity.setCurrentProcessor(MkProcessNodeHelper.PROCESS_FINISHED);
|
||||
service.updateById(entity);
|
||||
}
|
||||
if (projectId != null) {
|
||||
@@ -219,7 +219,7 @@ public final class MkProcessBizHandlers {
|
||||
boolean rejected = service.reject(id);
|
||||
entity = service.getById(id);
|
||||
if (entity != null) {
|
||||
entity.setCurrentProcessor(MkProcessNodeHelper.text(processorName, "系统"));
|
||||
entity.setCurrentProcessor(MkProcessNodeHelper.PROCESS_FINISHED);
|
||||
service.updateById(entity);
|
||||
}
|
||||
return rejected;
|
||||
@@ -273,7 +273,7 @@ public final class MkProcessBizHandlers {
|
||||
Long contractId = service.approve(id);
|
||||
entity = service.getById(id);
|
||||
if (entity != null) {
|
||||
entity.setCurrentProcessor(MkProcessNodeHelper.text(processorName, "系统"));
|
||||
entity.setCurrentProcessor(MkProcessNodeHelper.PROCESS_FINISHED);
|
||||
service.updateById(entity);
|
||||
}
|
||||
if (contractId != null) {
|
||||
@@ -291,7 +291,7 @@ public final class MkProcessBizHandlers {
|
||||
boolean rejected = service.reject(id);
|
||||
entity = service.getById(id);
|
||||
if (entity != null) {
|
||||
entity.setCurrentProcessor(MkProcessNodeHelper.text(processorName, "系统"));
|
||||
entity.setCurrentProcessor(MkProcessNodeHelper.PROCESS_FINISHED);
|
||||
service.updateById(entity);
|
||||
}
|
||||
return rejected;
|
||||
@@ -348,7 +348,7 @@ public final class MkProcessBizHandlers {
|
||||
boolean change = "change_reviewing".equals(entity.getApprovalStatus());
|
||||
entity.setApprovalStatus(change ? "change_approved" : "approved");
|
||||
entity.setCurrentNode("审核通过");
|
||||
entity.setCurrentProcessor(MkProcessNodeHelper.text(processorName, "系统"));
|
||||
entity.setCurrentProcessor(MkProcessNodeHelper.PROCESS_FINISHED);
|
||||
// HCS 推送:审批通过置待同步状态,更新成功后即时推送,扫描任务保留兜底(ADR-0001 修订,前端接入设计 §6)
|
||||
entity.setHcsSyncStatus(HcsSyncConstant.HCS_STATUS_UNSYNCED);
|
||||
boolean updated = service.updateById(entity);
|
||||
@@ -368,7 +368,7 @@ public final class MkProcessBizHandlers {
|
||||
boolean change = "change_reviewing".equals(entity.getApprovalStatus());
|
||||
entity.setApprovalStatus(change ? "change_rejected" : "rejected");
|
||||
entity.setCurrentNode("审核不通过");
|
||||
entity.setCurrentProcessor(MkProcessNodeHelper.text(processorName, "系统"));
|
||||
entity.setCurrentProcessor(MkProcessNodeHelper.PROCESS_FINISHED);
|
||||
return service.updateById(entity);
|
||||
}
|
||||
}
|
||||
@@ -418,7 +418,7 @@ public final class MkProcessBizHandlers {
|
||||
}
|
||||
entity.setApprovalStatus("approved");
|
||||
entity.setCurrentNode("审核通过");
|
||||
entity.setCurrentProcessor(MkProcessNodeHelper.text(processorName, "系统"));
|
||||
entity.setCurrentProcessor(MkProcessNodeHelper.PROCESS_FINISHED);
|
||||
entity.setApprovedTime(LocalDateTime.now());
|
||||
return service.updateById(entity);
|
||||
}
|
||||
@@ -431,7 +431,7 @@ public final class MkProcessBizHandlers {
|
||||
}
|
||||
entity.setApprovalStatus("returned");
|
||||
entity.setCurrentNode("审核不通过");
|
||||
entity.setCurrentProcessor(MkProcessNodeHelper.text(processorName, "系统"));
|
||||
entity.setCurrentProcessor(MkProcessNodeHelper.PROCESS_FINISHED);
|
||||
return service.updateById(entity);
|
||||
}
|
||||
}
|
||||
@@ -498,7 +498,7 @@ public final class MkProcessBizHandlers {
|
||||
FormalSettlement updated = service.getById(id);
|
||||
if (updated != null) {
|
||||
updated.setCurrentNode("审核通过");
|
||||
updated.setCurrentProcessor(MkProcessNodeHelper.text(processorName, "系统"));
|
||||
updated.setCurrentProcessor(MkProcessNodeHelper.PROCESS_FINISHED);
|
||||
service.updateById(updated);
|
||||
}
|
||||
return true;
|
||||
@@ -516,7 +516,7 @@ public final class MkProcessBizHandlers {
|
||||
}
|
||||
entity.setApprovalStatus("returned");
|
||||
entity.setCurrentNode("审核不通过");
|
||||
entity.setCurrentProcessor(MkProcessNodeHelper.text(processorName, "系统"));
|
||||
entity.setCurrentProcessor(MkProcessNodeHelper.PROCESS_FINISHED);
|
||||
return service.updateById(entity);
|
||||
}
|
||||
}
|
||||
@@ -573,7 +573,7 @@ public final class MkProcessBizHandlers {
|
||||
PaymentApplication updated = service.getById(id);
|
||||
if (updated != null) {
|
||||
updated.setCurrentNode("审核通过");
|
||||
updated.setCurrentProcessor(MkProcessNodeHelper.text(processorName, "系统"));
|
||||
updated.setCurrentProcessor(MkProcessNodeHelper.PROCESS_FINISHED);
|
||||
// HCS 推送零埋点:MK 审批回调仅置待同步状态,与 /approve 入口收敛于同一权威状态(ADR-0001)
|
||||
updated.setHcsSyncStatus(HcsSyncConstant.HCS_STATUS_UNSYNCED);
|
||||
service.updateById(updated);
|
||||
@@ -600,7 +600,7 @@ public final class MkProcessBizHandlers {
|
||||
}
|
||||
updated.setApprovalStatus("returned");
|
||||
updated.setCurrentNode("审核不通过");
|
||||
updated.setCurrentProcessor(MkProcessNodeHelper.text(processorName, "系统"));
|
||||
updated.setCurrentProcessor(MkProcessNodeHelper.PROCESS_FINISHED);
|
||||
return service.updateById(updated);
|
||||
}
|
||||
}
|
||||
@@ -654,7 +654,7 @@ public final class MkProcessBizHandlers {
|
||||
InvoiceApplication updated = service.getById(id);
|
||||
if (updated != null) {
|
||||
updated.setCurrentNode("审核通过");
|
||||
updated.setCurrentProcessor(MkProcessNodeHelper.text(processorName, "系统"));
|
||||
updated.setCurrentProcessor(MkProcessNodeHelper.PROCESS_FINISHED);
|
||||
service.updateById(updated);
|
||||
}
|
||||
return true;
|
||||
@@ -673,7 +673,7 @@ public final class MkProcessBizHandlers {
|
||||
InvoiceApplication updated = service.getById(id);
|
||||
if (updated != null) {
|
||||
updated.setCurrentNode("审核不通过");
|
||||
updated.setCurrentProcessor(MkProcessNodeHelper.text(processorName, "系统"));
|
||||
updated.setCurrentProcessor(MkProcessNodeHelper.PROCESS_FINISHED);
|
||||
service.updateById(updated);
|
||||
}
|
||||
return true;
|
||||
@@ -729,7 +729,7 @@ public final class MkProcessBizHandlers {
|
||||
InvoiceReceipt updated = service.getById(id);
|
||||
if (updated != null) {
|
||||
updated.setCurrentNode("审核通过");
|
||||
updated.setCurrentProcessor(MkProcessNodeHelper.text(processorName, "系统"));
|
||||
updated.setCurrentProcessor(MkProcessNodeHelper.PROCESS_FINISHED);
|
||||
service.updateById(updated);
|
||||
}
|
||||
return true;
|
||||
@@ -748,7 +748,7 @@ public final class MkProcessBizHandlers {
|
||||
InvoiceReceipt updated = service.getById(id);
|
||||
if (updated != null) {
|
||||
updated.setCurrentNode("审核不通过");
|
||||
updated.setCurrentProcessor(MkProcessNodeHelper.text(processorName, "系统"));
|
||||
updated.setCurrentProcessor(MkProcessNodeHelper.PROCESS_FINISHED);
|
||||
service.updateById(updated);
|
||||
}
|
||||
return true;
|
||||
@@ -804,7 +804,7 @@ public final class MkProcessBizHandlers {
|
||||
BillPayment updated = service.getById(id);
|
||||
if (updated != null) {
|
||||
updated.setCurrentNode("审核通过");
|
||||
updated.setCurrentProcessor(MkProcessNodeHelper.text(processorName, "系统"));
|
||||
updated.setCurrentProcessor(MkProcessNodeHelper.PROCESS_FINISHED);
|
||||
service.updateById(updated);
|
||||
}
|
||||
return true;
|
||||
@@ -823,7 +823,7 @@ public final class MkProcessBizHandlers {
|
||||
BillPayment updated = service.getById(id);
|
||||
if (updated != null) {
|
||||
updated.setCurrentNode("审核不通过");
|
||||
updated.setCurrentProcessor(MkProcessNodeHelper.text(processorName, "系统"));
|
||||
updated.setCurrentProcessor(MkProcessNodeHelper.PROCESS_FINISHED);
|
||||
service.updateById(updated);
|
||||
}
|
||||
return true;
|
||||
|
||||
+16
@@ -20,6 +20,11 @@ public final class MkProcessNodeHelper {
|
||||
*/
|
||||
private static final String DRAFT_NODE_NUMBER = "N2";
|
||||
|
||||
/**
|
||||
* 流程完结后业务单据「当前处理人」统一展示文案。
|
||||
*/
|
||||
public static final String PROCESS_FINISHED = "流程结束";
|
||||
|
||||
private static final List<String> CURRENT_NODE_KEYS = List.of("handlerInfos", "drafterInfos", "adminInfos");
|
||||
|
||||
private MkProcessNodeHelper() {
|
||||
@@ -39,9 +44,20 @@ public final class MkProcessNodeHelper {
|
||||
}
|
||||
|
||||
public static String currentProcessor(Object processInfo) {
|
||||
// 流程已完结时不再回写最后处理人,统一展示「流程结束」
|
||||
if (isProcessFinished(processInfo)) {
|
||||
return PROCESS_FINISHED;
|
||||
}
|
||||
return joinDistinct(extractTexts(asMap(processInfo).get("currentHandlers"), "fdName", "name"), "、");
|
||||
}
|
||||
|
||||
/**
|
||||
* MK 流程是否已完结(fdProcessStatus=30)。
|
||||
*/
|
||||
public static boolean isProcessFinished(Object processInfo) {
|
||||
return "30".equals(text(asMap(processInfo).get("fdProcessStatus")));
|
||||
}
|
||||
|
||||
public static String currentNode(Object processInfo) {
|
||||
Map<String, Object> taskInfo = asMap(asMap(processInfo).get("fdTaskInfo"));
|
||||
List<String> nodeNames = new ArrayList<>();
|
||||
|
||||
+9
-3
@@ -280,9 +280,15 @@ public class CustomerArchiveServiceImpl extends BaseServiceImpl<CustomerArchiveM
|
||||
public boolean submit(CustomerArchiveVO customer) {
|
||||
CustomerArchiveVO beforeDetail = Func.isEmpty(customer.getId()) ? null : detail(customer.getId());
|
||||
prepare(customer);
|
||||
validateBase(customer);
|
||||
boolean created = Func.isEmpty(customer.getId());
|
||||
CustomerArchive before = created ? null : ensureCustomerAccessible(customer.getId());
|
||||
if (!created) {
|
||||
// 编辑时客商编号、供应商编码、统一社会信用代码不允许修改
|
||||
customer.setCustomerCode(before.getCustomerCode());
|
||||
customer.setSupplierCode(before.getSupplierCode());
|
||||
customer.setUnifiedCreditCode(before.getUnifiedCreditCode());
|
||||
}
|
||||
validateBase(customer);
|
||||
if (created) {
|
||||
// 新增时金蝶已有客商,前端回填金蝶客商编码,建档直接沿用;未回填则自动生成
|
||||
customer.setCustomerCode(Func.isEmpty(customer.getCustomerCode()) ? this.nextCustomerCode() : customer.getCustomerCode());
|
||||
@@ -432,7 +438,7 @@ public class CustomerArchiveServiceImpl extends BaseServiceImpl<CustomerArchiveM
|
||||
after.setAccessType(ACCESS_FORMAL);
|
||||
after.setApprovalStatus(APPROVAL_APPROVED);
|
||||
after.setCurrentNode("审核通过");
|
||||
after.setCurrentProcessor(Func.isEmpty(processorName) ? "系统" : processorName.trim());
|
||||
after.setCurrentProcessor(MkProcessNodeHelper.PROCESS_FINISHED);
|
||||
after.setApprovedTime(LocalDateTime.now());
|
||||
// 审核通过后按当前未删除评分刷新生效等级/额度(替换旧评分场景在此切换生效)
|
||||
this.applyCreditFromActiveScore(after);
|
||||
@@ -462,7 +468,7 @@ public class CustomerArchiveServiceImpl extends BaseServiceImpl<CustomerArchiveM
|
||||
CustomerArchive after = copyCustomer(before);
|
||||
after.setApprovalStatus(APPROVAL_REJECTED);
|
||||
after.setCurrentNode("审核不通过");
|
||||
after.setCurrentProcessor(Func.isEmpty(processorName) ? "系统" : processorName.trim());
|
||||
after.setCurrentProcessor(MkProcessNodeHelper.PROCESS_FINISHED);
|
||||
addChangeRecord(id, "客商准入审核不通过", before, after);
|
||||
boolean updated = updateById(after);
|
||||
log.info("流程审核驳回 id={} processor={} result={}", id, after.getCurrentProcessor(), updated);
|
||||
|
||||
Reference in New Issue
Block a user