feat(bpm): 全部业务审批流改回 BPM,审批统一进入协同办公
- CRM:合同、开票、退费、销户提交时创建 BPM 实例,审批结果监听回写
- ERP:采购计划、采购申请、采购订单、付款单接入 BPM
- HRM:请假、转正、离职、调动、考勤异常、绩效考核接入 BPM
- MES:设计项目、技术确认、设备入库、采购入库、杂项出入库、供应商退货、盘点结果接入 BPM
- 售后:赔付审批接入 BPM(新增 yudao-module-bpm 依赖)
- 各业务新增 updateXxxAuditStatus 与 Mapper.updateAuditStatusByBpm,仅当单据仍处于审批中时回写
- 新增审批详情映射脚本与历史审批中单据重置脚本
Co-Authored-By: Claude <noreply@anthropic.com>
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | [ |
| | | { |
| | | "table": "ACT_RE_DEPLOYMENT", |
| | | "columns": [ |
| | | "ID_", |
| | | "NAME_", |
| | | "CATEGORY_", |
| | | "KEY_", |
| | | "TENANT_ID_", |
| | | "DEPLOY_TIME_", |
| | | "DERIVED_FROM_", |
| | | "DERIVED_FROM_ROOT_", |
| | | "PARENT_DEPLOYMENT_ID_", |
| | | "ENGINE_VERSION_" |
| | | ], |
| | | "rows": [ |
| | | { |
| | | "ID_": "0b7c7557949111f192711ab6da3745b7", |
| | | "NAME_": "æ¥ç¥¨å®¡æ¹æµç¨", |
| | | "CATEGORY_": "erp_purchase_invoice_approve", |
| | | "KEY_": "", |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-08-10T07:56:54", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": null, |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "0c9944e3-83e0-11f1-b998-00155dd68500", |
| | | "NAME_": "é宿¥ä»·å®¡æ¹", |
| | | "CATEGORY_": "sale_quotation_approve", |
| | | "KEY_": "QWEDD", |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-07-20T10:09:33.248000", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": "0c9944e3-83e0-11f1-b998-00155dd68500", |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "10000000000000000000000000000001", |
| | | "NAME_": "æé¡¹å
¥åºå®¡æ¹æµç¨", |
| | | "CATEGORY_": "misc_receipt_approve", |
| | | "KEY_": "", |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-09-08T09:32:21", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": null, |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "10000000000000000000000000000002", |
| | | "NAME_": "æé¡¹åºåºå®¡æ¹æµç¨", |
| | | "CATEGORY_": "misc_issue_approve", |
| | | "KEY_": "", |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-09-08T09:32:21", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": null, |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "10000000000000000000000000000003", |
| | | "NAME_": "ä¾åºåéè´§å®¡æ¹æµç¨", |
| | | "CATEGORY_": "return_vendor_approve", |
| | | "KEY_": "", |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-09-08T09:32:21", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": null, |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "10000000000000000000000000000004", |
| | | "NAME_": "éè´å
¥åºå®¡æ¹æµç¨", |
| | | "CATEGORY_": "item_receipt_approve", |
| | | "KEY_": "", |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-09-08T09:32:21", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": null, |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "10000000000000000000000000000005", |
| | | "NAME_": "çç¹ç»æå®¡æ¹æµç¨", |
| | | "CATEGORY_": "stock_taking_result_approve", |
| | | "KEY_": "", |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-09-08T09:32:21", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": null, |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "10000000000000000000000000000006", |
| | | "NAME_": "设å¤å
¥åºå®¡æ¹æµç¨", |
| | | "CATEGORY_": "equipment_receipt_approve", |
| | | "KEY_": "", |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-09-08T09:32:21", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": null, |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "293f2c0f-8c89-11f1-8a27-00155dad6485", |
| | | "NAME_": "忬¾å®¡æ¹æµç¨", |
| | | "CATEGORY_": "1111", |
| | | "KEY_": "_..123abc", |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-07-31T10:40:15.560000", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": "293f2c0f-8c89-11f1-8a27-00155dad6485", |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "5e64a066-7a93-11f1-9ea7-00155dd68500", |
| | | "NAME_": "è¯·åæµç¨", |
| | | "CATEGORY_": "åç±»2", |
| | | "KEY_": "b000_abc.", |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-07-08T14:07:58.763000", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": "5e64a066-7a93-11f1-9ea7-00155dd68500", |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "6c885e28-6edd-11f1-af1d-00155dd68500", |
| | | "NAME_": "121", |
| | | "CATEGORY_": "åç±»1", |
| | | "KEY_": "Ada", |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-06-23T16:27:51.290000", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": "6c885e28-6edd-11f1-af1d-00155dd68500", |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "6dae8b2a-74f9-11f1-91b4-00155dd68500", |
| | | "NAME_": "éè´å®¡æ ¸", |
| | | "CATEGORY_": "purchase_request_approve", |
| | | "KEY_": "purchase_request_approve", |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-07-01T11:03:26.103000", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": "6dae8b2a-74f9-11f1-91b4-00155dd68500", |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "7215184e-948c-11f1-9271-1ab6da3745b7", |
| | | "NAME_": "忬¾å®¡æ¹æµç¨", |
| | | "CATEGORY_": "1111", |
| | | "KEY_": null, |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-08-10T07:24:24", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": null, |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "777471ff-74f7-11f1-b46c-00155dd68500", |
| | | "NAME_": "éè´å®¡æ ¸", |
| | | "CATEGORY_": "purchase_approve", |
| | | "KEY_": "purchase_approve", |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-07-01T10:49:23.505000", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": "777471ff-74f7-11f1-b46c-00155dd68500", |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "78ebc2ac-cad4-11f1-979e-0242ac110005", |
| | | "NAME_": "121", |
| | | "CATEGORY_": "purchase_request_approve", |
| | | "KEY_": "caigoushenpi", |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-10-18T17:15:33.579000", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": "78ebc2ac-cad4-11f1-979e-0242ac110005", |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "8fa8f1b5-75da-11f1-a595-00155dd68500", |
| | | "NAME_": "ååå®¡æ ¸", |
| | | "CATEGORY_": "contract_approve", |
| | | "KEY_": "contract_approve", |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-07-02T13:54:59.872000", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": "8fa8f1b5-75da-11f1-a595-00155dd68500", |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "a0a3dcd4-74fc-11f1-9120-00155dd68500", |
| | | "NAME_": "123123", |
| | | "CATEGORY_": "åç±»1", |
| | | "KEY_": "SSQ", |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-07-01T11:26:20.087000", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": "a0a3dcd4-74fc-11f1-9120-00155dd68500", |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "a32d7935-6edd-11f1-af1d-00155dd68500", |
| | | "NAME_": "121", |
| | | "CATEGORY_": "åç±»1", |
| | | "KEY_": "Ada", |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-06-23T16:29:22.969000", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": "a32d7935-6edd-11f1-af1d-00155dd68500", |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "a43fbb94-7a92-11f1-9ea7-00155dd68500", |
| | | "NAME_": "è¯·åæµç¨", |
| | | "CATEGORY_": "åç±»2", |
| | | "KEY_": "b000_abc.", |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-07-08T14:02:46.465000", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": "a43fbb94-7a92-11f1-9ea7-00155dd68500", |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "c101d3e0-0001-11f2-8a27-00155dad6485", |
| | | "NAME_": "å¼ç¥¨å®¡æ¹æµç¨", |
| | | "CATEGORY_": "crm_invoice_approve", |
| | | "KEY_": null, |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-08-10T06:35:22", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": null, |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "c75fb050-7462-11f1-b91b-00155dd68500", |
| | | "NAME_": "éè´å®¡æ ¸", |
| | | "CATEGORY_": "éè´å®¡æ ¸", |
| | | "KEY_": "pus", |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-06-30T17:05:02.575000", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": "c75fb050-7462-11f1-b91b-00155dd68500", |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "cancellation-deploy-20260820", |
| | | "NAME_": "cancellation_approve.bpmn", |
| | | "CATEGORY_": "cancellation_approve", |
| | | "KEY_": null, |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-08-20T16:24:08.120000", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": null, |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "ce99813cfeb29f270355dd39f8ef74f2", |
| | | "NAME_": "产å项ç®å®¡æ¹æµç¨", |
| | | "CATEGORY_": "mes_pd_project_approve", |
| | | "KEY_": "mes-pd-project-audit", |
| | | "TENANT_ID_": null, |
| | | "DEPLOY_TIME_": "2026-08-13T08:12:13", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": null, |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "compensation-deploy-20260820", |
| | | "NAME_": "compensation_approve.bpmn", |
| | | "CATEGORY_": "compensation_approve", |
| | | "KEY_": null, |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-08-20T16:24:08.120000", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": null, |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "d232b68a-74fe-11f1-9120-00155dd68500", |
| | | "NAME_": "éè´å®¡æ ¸", |
| | | "CATEGORY_": "purchase_request_approve", |
| | | "KEY_": "purchase_request_approve", |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-07-01T11:42:02.225000", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": "d232b68a-74fe-11f1-9120-00155dd68500", |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "d8c035b9-8af2-11f1-a171-b025aaa35411", |
| | | "NAME_": "è¯·åæµç¨", |
| | | "CATEGORY_": "åç±»2", |
| | | "KEY_": "b000_abc.", |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-07-29T10:11:44.839000", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": "d8c035b9-8af2-11f1-a171-b025aaa35411", |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "df6abd26-7500-11f1-993f-00155dd68500", |
| | | "NAME_": "121", |
| | | "CATEGORY_": "purchase_request_approve", |
| | | "KEY_": "caigoushenpi", |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-07-01T11:56:43.395000", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": "df6abd26-7500-11f1-993f-00155dd68500", |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "f1a1b2c3d4e5465f8a9b0c1d2e3f4a5b", |
| | | "NAME_": "仿¬¾å®¡æ¹æµç¨", |
| | | "CATEGORY_": "erp_finance_payment_approve", |
| | | "KEY_": "erp-finance-payment-audit", |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-08-10T09:35:43", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": null, |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "fb13987e-74f9-11f1-91b4-00155dd68500", |
| | | "NAME_": "éè´å®¡æ ¸", |
| | | "CATEGORY_": "purchase_request_approve", |
| | | "KEY_": "purchase_request_approve", |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-07-01T11:07:23.324000", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": "fb13987e-74f9-11f1-91b4-00155dd68500", |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "performance-deploy-20260820", |
| | | "NAME_": "performance_appraise_approve.bpmn", |
| | | "CATEGORY_": "performance_appraise_approve", |
| | | "KEY_": null, |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-08-20T16:24:08.120000", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": null, |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "pp-deploy-20260818", |
| | | "NAME_": "purchase_plan_approve.bpmn", |
| | | "CATEGORY_": "purchase_plan_approve", |
| | | "KEY_": "", |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-08-18T16:47:28.555000", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": null, |
| | | "ENGINE_VERSION_": null |
| | | }, |
| | | { |
| | | "ID_": "refund-deploy-20260820", |
| | | "NAME_": "refund_approve.bpmn", |
| | | "CATEGORY_": "refund_approve", |
| | | "KEY_": null, |
| | | "TENANT_ID_": "", |
| | | "DEPLOY_TIME_": "2026-08-20T16:24:08.120000", |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "PARENT_DEPLOYMENT_ID_": null, |
| | | "ENGINE_VERSION_": null |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | "table": "ACT_RE_PROCDEF", |
| | | "columns": [ |
| | | "ID_", |
| | | "REV_", |
| | | "CATEGORY_", |
| | | "NAME_", |
| | | "KEY_", |
| | | "VERSION_", |
| | | "DEPLOYMENT_ID_", |
| | | "RESOURCE_NAME_", |
| | | "DGRM_RESOURCE_NAME_", |
| | | "DESCRIPTION_", |
| | | "HAS_START_FORM_KEY_", |
| | | "HAS_GRAPHICAL_NOTATION_", |
| | | "SUSPENSION_STATE_", |
| | | "TENANT_ID_", |
| | | "ENGINE_VERSION_", |
| | | "DERIVED_FROM_", |
| | | "DERIVED_FROM_ROOT_", |
| | | "DERIVED_VERSION_" |
| | | ], |
| | | "rows": [ |
| | | { |
| | | "ID_": "Ada:1:6cc05e1b-6edd-11f1-af1d-00155dd68500", |
| | | "REV_": 3, |
| | | "CATEGORY_": "åç±»1", |
| | | "NAME_": "121", |
| | | "KEY_": "Ada", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "6c885e28-6edd-11f1-af1d-00155dd68500", |
| | | "RESOURCE_NAME_": "Ada.bpmn", |
| | | "DGRM_RESOURCE_NAME_": "Ada.Ada.png", |
| | | "DESCRIPTION_": null, |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 1, |
| | | "SUSPENSION_STATE_": 2, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "Ada:2:a332d068-6edd-11f1-af1d-00155dd68500", |
| | | "REV_": 2, |
| | | "CATEGORY_": "åç±»1", |
| | | "NAME_": "121", |
| | | "KEY_": "Ada", |
| | | "VERSION_": 2, |
| | | "DEPLOYMENT_ID_": "a32d7935-6edd-11f1-af1d-00155dd68500", |
| | | "RESOURCE_NAME_": "Ada.bpmn", |
| | | "DGRM_RESOURCE_NAME_": "Ada.Ada.png", |
| | | "DESCRIPTION_": null, |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 1, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "QWEDD:1:0d177596-83e0-11f1-b998-00155dd68500", |
| | | "REV_": 2, |
| | | "CATEGORY_": "sale_quotation_approve", |
| | | "NAME_": "é宿¥ä»·å®¡æ¹", |
| | | "KEY_": "QWEDD", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "0c9944e3-83e0-11f1-b998-00155dd68500", |
| | | "RESOURCE_NAME_": "QWEDD.bpmn", |
| | | "DGRM_RESOURCE_NAME_": "QWEDD.QWEDD.png", |
| | | "DESCRIPTION_": null, |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 1, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "SSQ:1:a0be69b7-74fc-11f1-9120-00155dd68500", |
| | | "REV_": 2, |
| | | "CATEGORY_": "åç±»1", |
| | | "NAME_": "123123", |
| | | "KEY_": "SSQ", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "a0a3dcd4-74fc-11f1-9120-00155dd68500", |
| | | "RESOURCE_NAME_": "SSQ.bpmn", |
| | | "DGRM_RESOURCE_NAME_": "SSQ.SSQ.png", |
| | | "DESCRIPTION_": null, |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 1, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "_..123abc:1:297493f2-8c89-11f1-8a27-00155dad6485", |
| | | "REV_": 2, |
| | | "CATEGORY_": "1111", |
| | | "NAME_": "忬¾å®¡æ¹æµç¨", |
| | | "KEY_": "_..123abc", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "293f2c0f-8c89-11f1-8a27-00155dad6485", |
| | | "RESOURCE_NAME_": "_..123abc.bpmn", |
| | | "DGRM_RESOURCE_NAME_": "_..123abc._..123abc.png", |
| | | "DESCRIPTION_": null, |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 1, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "b000_abc.:1:a470b6a7-7a92-11f1-9ea7-00155dd68500", |
| | | "REV_": 3, |
| | | "CATEGORY_": "åç±»2", |
| | | "NAME_": "è¯·åæµç¨", |
| | | "KEY_": "b000_abc.", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "a43fbb94-7a92-11f1-9ea7-00155dd68500", |
| | | "RESOURCE_NAME_": "b000_abc..bpmn", |
| | | "DGRM_RESOURCE_NAME_": "b000_abc..b000_abc..png", |
| | | "DESCRIPTION_": null, |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 1, |
| | | "SUSPENSION_STATE_": 2, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "b000_abc.:2:5e6b7e39-7a93-11f1-9ea7-00155dd68500", |
| | | "REV_": 3, |
| | | "CATEGORY_": "åç±»2", |
| | | "NAME_": "è¯·åæµç¨", |
| | | "KEY_": "b000_abc.", |
| | | "VERSION_": 2, |
| | | "DEPLOYMENT_ID_": "5e64a066-7a93-11f1-9ea7-00155dd68500", |
| | | "RESOURCE_NAME_": "b000_abc..bpmn", |
| | | "DGRM_RESOURCE_NAME_": "b000_abc..b000_abc..png", |
| | | "DESCRIPTION_": null, |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 1, |
| | | "SUSPENSION_STATE_": 2, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "b000_abc.:3:d8fca27c-8af2-11f1-a171-b025aaa35411", |
| | | "REV_": 2, |
| | | "CATEGORY_": "åç±»2", |
| | | "NAME_": "è¯·åæµç¨", |
| | | "KEY_": "b000_abc.", |
| | | "VERSION_": 3, |
| | | "DEPLOYMENT_ID_": "d8c035b9-8af2-11f1-a171-b025aaa35411", |
| | | "RESOURCE_NAME_": "b000_abc..bpmn", |
| | | "DGRM_RESOURCE_NAME_": "b000_abc..b000_abc..png", |
| | | "DESCRIPTION_": null, |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 1, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "caigoushenpi:1:df929079-7500-11f1-993f-00155dd68500", |
| | | "REV_": 3, |
| | | "CATEGORY_": "purchase_request_approve", |
| | | "NAME_": "121", |
| | | "KEY_": "caigoushenpi", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "df6abd26-7500-11f1-993f-00155dd68500", |
| | | "RESOURCE_NAME_": "caigoushenpi.bpmn", |
| | | "DGRM_RESOURCE_NAME_": "caigoushenpi.caigoushenpi.png", |
| | | "DESCRIPTION_": null, |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 1, |
| | | "SUSPENSION_STATE_": 2, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "caigoushenpi:2:78f4753f-cad4-11f1-979e-0242ac110005", |
| | | "REV_": 2, |
| | | "CATEGORY_": "purchase_request_approve", |
| | | "NAME_": "121", |
| | | "KEY_": "caigoushenpi", |
| | | "VERSION_": 2, |
| | | "DEPLOYMENT_ID_": "78ebc2ac-cad4-11f1-979e-0242ac110005", |
| | | "RESOURCE_NAME_": "caigoushenpi.bpmn", |
| | | "DGRM_RESOURCE_NAME_": "caigoushenpi.caigoushenpi.png", |
| | | "DESCRIPTION_": null, |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 1, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "cancellation_approve:1:cancellation-proc-20260820", |
| | | "REV_": 1, |
| | | "CATEGORY_": "cancellation_approve", |
| | | "NAME_": "鿷审æ¹", |
| | | "KEY_": "cancellation_approve", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "cancellation-deploy-20260820", |
| | | "RESOURCE_NAME_": "cancellation_approve.bpmn", |
| | | "DGRM_RESOURCE_NAME_": null, |
| | | "DESCRIPTION_": null, |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": null, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "compensation_approve:1:compensation-proc-20260820", |
| | | "REV_": 1, |
| | | "CATEGORY_": "compensation_approve", |
| | | "NAME_": "èµä»å®¡æ¹", |
| | | "KEY_": "compensation_approve", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "compensation-deploy-20260820", |
| | | "RESOURCE_NAME_": "compensation_approve.bpmn", |
| | | "DGRM_RESOURCE_NAME_": null, |
| | | "DESCRIPTION_": null, |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": null, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "contract_approve:1:8ffbf3b8-75da-11f1-a595-00155dd68500", |
| | | "REV_": 2, |
| | | "CATEGORY_": "contract_approve", |
| | | "NAME_": "ååå®¡æ ¸", |
| | | "KEY_": "contract_approve", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "8fa8f1b5-75da-11f1-a595-00155dd68500", |
| | | "RESOURCE_NAME_": "contract_approve.bpmn", |
| | | "DGRM_RESOURCE_NAME_": "contract_approve.contract_approve.png", |
| | | "DESCRIPTION_": null, |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 1, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "crm-invoice-audit:1:c101d3e0-0001-11f2-8a27-00155dad6485", |
| | | "REV_": 1, |
| | | "CATEGORY_": "crm_invoice_approve", |
| | | "NAME_": "å¼ç¥¨å®¡æ¹æµç¨", |
| | | "KEY_": "crm-invoice-audit", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "c101d3e0-0001-11f2-8a27-00155dad6485", |
| | | "RESOURCE_NAME_": "crm-invoice-audit.bpmn", |
| | | "DGRM_RESOURCE_NAME_": null, |
| | | "DESCRIPTION_": null, |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 0, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "crm-receivable-audit:1:7215184e-948c-11f1-9271-1ab6da3745b7", |
| | | "REV_": 1, |
| | | "CATEGORY_": "1111", |
| | | "NAME_": "忬¾å®¡æ¹æµç¨", |
| | | "KEY_": "crm-receivable-audit", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "7215184e-948c-11f1-9271-1ab6da3745b7", |
| | | "RESOURCE_NAME_": "crm-receivable-audit.bpmn", |
| | | "DGRM_RESOURCE_NAME_": null, |
| | | "DESCRIPTION_": null, |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 0, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "equipment_receipt_approve:1:10000000000000000000000000000006", |
| | | "REV_": 1, |
| | | "CATEGORY_": "equipment_receipt_approve", |
| | | "NAME_": "设å¤å
¥åºå®¡æ¹æµç¨", |
| | | "KEY_": "equipment_receipt_approve", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "10000000000000000000000000000006", |
| | | "RESOURCE_NAME_": "equipment_receipt_approve.bpmn", |
| | | "DGRM_RESOURCE_NAME_": "", |
| | | "DESCRIPTION_": "", |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 0, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": "", |
| | | "DERIVED_FROM_ROOT_": "", |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "erp-finance-payment-audit:1:f1a1b2c3d4e5465f8a9b0c1d2e3f4a5b", |
| | | "REV_": 1, |
| | | "CATEGORY_": "erp_finance_payment_approve", |
| | | "NAME_": "仿¬¾å®¡æ¹æµç¨", |
| | | "KEY_": "erp-finance-payment-audit", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "f1a1b2c3d4e5465f8a9b0c1d2e3f4a5b", |
| | | "RESOURCE_NAME_": "erp-finance-payment-audit.bpmn", |
| | | "DGRM_RESOURCE_NAME_": null, |
| | | "DESCRIPTION_": null, |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 1, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "erp-purchase-invoice-audit:1:0b7c7557949111f192711ab6da3745b7", |
| | | "REV_": 1, |
| | | "CATEGORY_": "erp_purchase_invoice_approve", |
| | | "NAME_": "æ¥ç¥¨å®¡æ¹æµç¨", |
| | | "KEY_": "erp-purchase-invoice-audit", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "0b7c7557949111f192711ab6da3745b7", |
| | | "RESOURCE_NAME_": "erp-purchase-invoice-audit.bpmn", |
| | | "DGRM_RESOURCE_NAME_": "", |
| | | "DESCRIPTION_": "", |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 0, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": "", |
| | | "DERIVED_FROM_ROOT_": "", |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "item_receipt_approve:1:10000000000000000000000000000004", |
| | | "REV_": 1, |
| | | "CATEGORY_": "item_receipt_approve", |
| | | "NAME_": "éè´å
¥åºå®¡æ¹æµç¨", |
| | | "KEY_": "item_receipt_approve", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "10000000000000000000000000000004", |
| | | "RESOURCE_NAME_": "item_receipt_approve.bpmn", |
| | | "DGRM_RESOURCE_NAME_": "", |
| | | "DESCRIPTION_": "", |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 0, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": "", |
| | | "DERIVED_FROM_ROOT_": "", |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "mes-pd-project-audit:1:ce99813cfeb29f270355dd39f8ef74f2", |
| | | "REV_": 1, |
| | | "CATEGORY_": "mes_pd_project_approve", |
| | | "NAME_": "产å项ç®å®¡æ¹æµç¨", |
| | | "KEY_": "mes-pd-project-audit", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "ce99813cfeb29f270355dd39f8ef74f2", |
| | | "RESOURCE_NAME_": "mes-pd-project-audit.bpmn", |
| | | "DGRM_RESOURCE_NAME_": null, |
| | | "DESCRIPTION_": null, |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 1, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": null, |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "misc_issue_approve:1:10000000000000000000000000000002", |
| | | "REV_": 1, |
| | | "CATEGORY_": "misc_issue_approve", |
| | | "NAME_": "æé¡¹åºåºå®¡æ¹æµç¨", |
| | | "KEY_": "misc_issue_approve", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "10000000000000000000000000000002", |
| | | "RESOURCE_NAME_": "misc_issue_approve.bpmn", |
| | | "DGRM_RESOURCE_NAME_": "", |
| | | "DESCRIPTION_": "", |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 0, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": "", |
| | | "DERIVED_FROM_ROOT_": "", |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "misc_receipt_approve:1:10000000000000000000000000000001", |
| | | "REV_": 1, |
| | | "CATEGORY_": "misc_receipt_approve", |
| | | "NAME_": "æé¡¹å
¥åºå®¡æ¹æµç¨", |
| | | "KEY_": "misc_receipt_approve", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "10000000000000000000000000000001", |
| | | "RESOURCE_NAME_": "misc_receipt_approve.bpmn", |
| | | "DGRM_RESOURCE_NAME_": "", |
| | | "DESCRIPTION_": "", |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 0, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": "", |
| | | "DERIVED_FROM_ROOT_": "", |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "performance_appraise_approve:1:performance-proc-20260820", |
| | | "REV_": 1, |
| | | "CATEGORY_": "performance_appraise_approve", |
| | | "NAME_": "绩æèæ ¸å®¡æ¹", |
| | | "KEY_": "performance_appraise_approve", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "performance-deploy-20260820", |
| | | "RESOURCE_NAME_": "performance_appraise_approve.bpmn", |
| | | "DGRM_RESOURCE_NAME_": null, |
| | | "DESCRIPTION_": null, |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": null, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "purchase_approve:1:77c35552-74f7-11f1-b46c-00155dd68500", |
| | | "REV_": 2, |
| | | "CATEGORY_": "purchase_approve", |
| | | "NAME_": "éè´å®¡æ ¸", |
| | | "KEY_": "purchase_approve", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "777471ff-74f7-11f1-b46c-00155dd68500", |
| | | "RESOURCE_NAME_": "purchase_approve.bpmn", |
| | | "DGRM_RESOURCE_NAME_": "purchase_approve.purchase_approve.png", |
| | | "DESCRIPTION_": null, |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 1, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "purchase_plan_approve:1:pp-proc-20260818", |
| | | "REV_": 1, |
| | | "CATEGORY_": "purchase_plan_approve", |
| | | "NAME_": "éè´è®¡åå®¡æ ¸", |
| | | "KEY_": "purchase_plan_approve", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "pp-deploy-20260818", |
| | | "RESOURCE_NAME_": "purchase_plan_approve.bpmn", |
| | | "DGRM_RESOURCE_NAME_": null, |
| | | "DESCRIPTION_": null, |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 0, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "purchase_request_approve:1:6dc60acd-74f9-11f1-91b4-00155dd68500", |
| | | "REV_": 3, |
| | | "CATEGORY_": "purchase_request_approve", |
| | | "NAME_": "éè´å®¡æ ¸", |
| | | "KEY_": "purchase_request_approve", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "6dae8b2a-74f9-11f1-91b4-00155dd68500", |
| | | "RESOURCE_NAME_": "purchase_request_approve.bpmn", |
| | | "DGRM_RESOURCE_NAME_": "purchase_request_approve.purchase_request_approve.png", |
| | | "DESCRIPTION_": null, |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 1, |
| | | "SUSPENSION_STATE_": 2, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "purchase_request_approve:2:fb19b301-74f9-11f1-91b4-00155dd68500", |
| | | "REV_": 5, |
| | | "CATEGORY_": "purchase_request_approve", |
| | | "NAME_": "éè´å®¡æ ¸", |
| | | "KEY_": "purchase_request_approve", |
| | | "VERSION_": 2, |
| | | "DEPLOYMENT_ID_": "fb13987e-74f9-11f1-91b4-00155dd68500", |
| | | "RESOURCE_NAME_": "purchase_request_approve.bpmn", |
| | | "DGRM_RESOURCE_NAME_": "purchase_request_approve.purchase_request_approve.png", |
| | | "DESCRIPTION_": null, |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 1, |
| | | "SUSPENSION_STATE_": 2, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "purchase_request_approve:3:d239e27d-74fe-11f1-9120-00155dd68500", |
| | | "REV_": 2, |
| | | "CATEGORY_": "purchase_request_approve", |
| | | "NAME_": "éè´å®¡æ ¸", |
| | | "KEY_": "purchase_request_approve", |
| | | "VERSION_": 3, |
| | | "DEPLOYMENT_ID_": "d232b68a-74fe-11f1-9120-00155dd68500", |
| | | "RESOURCE_NAME_": "purchase_request_approve.bpmn", |
| | | "DGRM_RESOURCE_NAME_": "purchase_request_approve.purchase_request_approve.png", |
| | | "DESCRIPTION_": null, |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 1, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "pus:1:c79629a3-7462-11f1-b91b-00155dd68500", |
| | | "REV_": 2, |
| | | "CATEGORY_": "éè´å®¡æ ¸", |
| | | "NAME_": "éè´å®¡æ ¸", |
| | | "KEY_": "pus", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "c75fb050-7462-11f1-b91b-00155dd68500", |
| | | "RESOURCE_NAME_": "pus.bpmn", |
| | | "DGRM_RESOURCE_NAME_": "pus.pus.png", |
| | | "DESCRIPTION_": null, |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 1, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "refund_approve:1:refund-proc-20260820", |
| | | "REV_": 1, |
| | | "CATEGORY_": "refund_approve", |
| | | "NAME_": "é费审æ¹", |
| | | "KEY_": "refund_approve", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "refund-deploy-20260820", |
| | | "RESOURCE_NAME_": "refund_approve.bpmn", |
| | | "DGRM_RESOURCE_NAME_": null, |
| | | "DESCRIPTION_": null, |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": null, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": null, |
| | | "DERIVED_FROM_ROOT_": null, |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "return_vendor_approve:1:10000000000000000000000000000003", |
| | | "REV_": 1, |
| | | "CATEGORY_": "return_vendor_approve", |
| | | "NAME_": "ä¾åºåéè´§å®¡æ¹æµç¨", |
| | | "KEY_": "return_vendor_approve", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "10000000000000000000000000000003", |
| | | "RESOURCE_NAME_": "return_vendor_approve.bpmn", |
| | | "DGRM_RESOURCE_NAME_": "", |
| | | "DESCRIPTION_": "", |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 0, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": "", |
| | | "DERIVED_FROM_ROOT_": "", |
| | | "DERIVED_VERSION_": 0 |
| | | }, |
| | | { |
| | | "ID_": "stock_taking_result_approve:1:10000000000000000000000000000005", |
| | | "REV_": 1, |
| | | "CATEGORY_": "stock_taking_result_approve", |
| | | "NAME_": "çç¹ç»æå®¡æ¹æµç¨", |
| | | "KEY_": "stock_taking_result_approve", |
| | | "VERSION_": 1, |
| | | "DEPLOYMENT_ID_": "10000000000000000000000000000005", |
| | | "RESOURCE_NAME_": "stock_taking_result_approve.bpmn", |
| | | "DGRM_RESOURCE_NAME_": "", |
| | | "DESCRIPTION_": "", |
| | | "HAS_START_FORM_KEY_": 0, |
| | | "HAS_GRAPHICAL_NOTATION_": 0, |
| | | "SUSPENSION_STATE_": 1, |
| | | "TENANT_ID_": "", |
| | | "ENGINE_VERSION_": null, |
| | | "DERIVED_FROM_": "", |
| | | "DERIVED_FROM_ROOT_": "", |
| | | "DERIVED_VERSION_": 0 |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | "table": "bpm_process_definition_info", |
| | | "columns": [ |
| | | "id", |
| | | "process_definition_id", |
| | | "model_id", |
| | | "model_type", |
| | | "category", |
| | | "icon", |
| | | "description", |
| | | "form_type", |
| | | "form_id", |
| | | "form_conf", |
| | | "form_fields", |
| | | "form_custom_create_path", |
| | | "form_custom_view_path", |
| | | "simple_model", |
| | | "visible", |
| | | "sort", |
| | | "start_user_ids", |
| | | "start_dept_ids", |
| | | "manager_user_ids", |
| | | "allow_cancel_running_process", |
| | | "allow_withdraw_task", |
| | | "process_id_rule", |
| | | "auto_approval_type", |
| | | "title_setting", |
| | | "summary_setting", |
| | | "process_before_trigger_setting", |
| | | "process_after_trigger_setting", |
| | | "task_before_trigger_setting", |
| | | "task_after_trigger_setting", |
| | | "print_template_setting", |
| | | "creator", |
| | | "create_time", |
| | | "updater", |
| | | "update_time", |
| | | "deleted" |
| | | ], |
| | | "rows": [ |
| | | { |
| | | "id": 1, |
| | | "process_definition_id": "Ada:1:6cc05e1b-6edd-11f1-af1d-00155dd68500", |
| | | "model_id": "da144d65-6edc-11f1-af1d-00155dd68500", |
| | | "model_type": 20, |
| | | "category": "åç±»1", |
| | | "icon": null, |
| | | "description": "", |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": "{\"form\":{\"layout\":\"horizontal\",\"labelAlign\":\"right\",\"size\":\"middle\",\"colon\":false,\"labelCol\":{\"style\":{\"width\":\"125px\"}},\"wrapperCol\":{\"span\":24},\"labelWidth\":\"100px\"},\"resetBtn\":{\"show\":false,\"innerText\":\"éç½®\"},\"submitBtn\":{\"show\":true,\"innerText\":\"æäº¤\"}}", |
| | | "form_fields": "[\"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fyqymqqdoln2abc\\\",\\\"title\\\":\\\"è¾å
¥æ¡\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_Fuplmqqdoln2acc\\\",\\\"name\\\":\\\"ref_F18omqqdoln2adc\\\",\\\"display\\\":true,\\\"hidden\\\":false,\\\"_fc_drag_tag\\\":\\\"input\\\"}\", \"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fh6gmqqdooy5aec\\\",\\\"title\\\":\\\"è¾å
¥æ¡\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_F5whmqqdooy5afc\\\",\\\"name\\\":\\\"ref_Fltemqqdooy5agc\\\",\\\"display\\\":true,\\\"hidden\\\":false,\\\"_fc_drag_tag\\\":\\\"input\\\"}\"]", |
| | | "form_custom_create_path": "", |
| | | "form_custom_view_path": "", |
| | | "simple_model": "{\"buttonsSetting\":[{\"displayName\":\"æäº¤\",\"enable\":true,\"id\":1},{\"displayName\":\"æç»\",\"enable\":false,\"id\":2},{\"displayName\":\"转å\",\"enable\":false,\"id\":3},{\"displayName\":\"å§æ´¾\",\"enable\":false,\"id\":4},{\"displayName\":\"å ç¾\",\"enable\":false,\"id\":5},{\"displayName\":\"éå\",\"enable\":false,\"id\":6}],\"childNode\":{\"id\":\"EndEvent\",\"name\":\"ç»æ\",\"type\":1},\"fieldsPermission\":[{\"field\":\"Fyqymqqdoln2abc\",\"title\":\"è¾å
¥æ¡\",\"permission\":\"2\"},{\"field\":\"Fh6gmqqdooy5aec\",\"title\":\"è¾å
¥æ¡\",\"permission\":\"2\"}],\"id\":\"StartUserNode\",\"name\":\"å起人\",\"showText\":\"已设置\",\"type\":10}", |
| | | "visible": "\u0001", |
| | | "sort": 1782203025576, |
| | | "start_user_ids": "", |
| | | "start_dept_ids": "", |
| | | "manager_user_ids": "1", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0000", |
| | | "process_id_rule": "{\"infix\": \"\", \"enable\": false, \"length\": 5, \"prefix\": \"\", \"postfix\": \"\"}", |
| | | "auto_approval_type": 0, |
| | | "title_setting": "{\"title\": \"\", \"enable\": false}", |
| | | "summary_setting": "{\"enable\": false, \"summary\": []}", |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": "{\"enable\": false, \"template\": \"\"}", |
| | | "creator": "234", |
| | | "create_time": "2026-09-20T14:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-09-20T14:13:00", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 2, |
| | | "process_definition_id": "Ada:2:a332d068-6edd-11f1-af1d-00155dd68500", |
| | | "model_id": "da144d65-6edc-11f1-af1d-00155dd68500", |
| | | "model_type": 20, |
| | | "category": "åç±»1", |
| | | "icon": null, |
| | | "description": "", |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": "{\"form\":{\"layout\":\"horizontal\",\"labelAlign\":\"right\",\"size\":\"middle\",\"colon\":false,\"labelCol\":{\"style\":{\"width\":\"125px\"}},\"wrapperCol\":{\"span\":24},\"labelWidth\":\"100px\"},\"resetBtn\":{\"show\":false,\"innerText\":\"éç½®\"},\"submitBtn\":{\"show\":true,\"innerText\":\"æäº¤\"}}", |
| | | "form_fields": "[\"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fyqymqqdoln2abc\\\",\\\"title\\\":\\\"å§å\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_Fuplmqqdoln2acc\\\",\\\"name\\\":\\\"ref_F18omqqdoln2adc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fh6gmqqdooy5aec\\\",\\\"title\\\":\\\"å¹´é¾\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_F5whmqqdooy5afc\\\",\\\"name\\\":\\\"ref_Fltemqqdooy5agc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"select\\\",\\\"field\\\":\\\"F5mrmqqdutnnabc\\\",\\\"title\\\":\\\"éæ©å¨\\\",\\\"info\\\":\\\"\\\",\\\"effect\\\":{\\\"fetch\\\":\\\"\\\"},\\\"$required\\\":false,\\\"options\\\":[{\\\"label\\\":\\\"é项01\\\",\\\"value\\\":\\\"1\\\"},{\\\"label\\\":\\\"é项02\\\",\\\"value\\\":\\\"2\\\"},{\\\"label\\\":\\\"é项03\\\",\\\"value\\\":\\\"3\\\"}],\\\"_fc_id\\\":\\\"id_Fhnumqqdutnoacc\\\",\\\"name\\\":\\\"ref_Fd1wmqqdutnoadc\\\",\\\"display\\\":true,\\\"hidden\\\":false,\\\"_fc_drag_tag\\\":\\\"select\\\"}\"]", |
| | | "form_custom_create_path": "", |
| | | "form_custom_view_path": "", |
| | | "simple_model": "{\"buttonsSetting\":[{\"displayName\":\"æäº¤\",\"enable\":true,\"id\":1},{\"displayName\":\"æç»\",\"enable\":false,\"id\":2},{\"displayName\":\"转å\",\"enable\":false,\"id\":3},{\"displayName\":\"å§æ´¾\",\"enable\":false,\"id\":4},{\"displayName\":\"å ç¾\",\"enable\":false,\"id\":5},{\"displayName\":\"éå\",\"enable\":false,\"id\":6}],\"childNode\":{\"id\":\"EndEvent\",\"name\":\"ç»æ\",\"type\":1},\"fieldsPermission\":[{\"field\":\"Fyqymqqdoln2abc\",\"title\":\"è¾å
¥æ¡\",\"permission\":\"2\"},{\"field\":\"Fh6gmqqdooy5aec\",\"title\":\"è¾å
¥æ¡\",\"permission\":\"2\"}],\"id\":\"StartUserNode\",\"name\":\"å起人\",\"showText\":\"已设置\",\"type\":10}", |
| | | "visible": "\u0001", |
| | | "sort": 1782203025576, |
| | | "start_user_ids": "", |
| | | "start_dept_ids": "", |
| | | "manager_user_ids": "1", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0000", |
| | | "process_id_rule": "{\"infix\": \"\", \"enable\": false, \"length\": 5, \"prefix\": \"\", \"postfix\": \"\"}", |
| | | "auto_approval_type": 0, |
| | | "title_setting": "{\"title\": \"\", \"enable\": false}", |
| | | "summary_setting": "{\"enable\": false, \"summary\": []}", |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": "{\"enable\": false, \"template\": \"\"}", |
| | | "creator": "234", |
| | | "create_time": "2026-09-22T19:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-09-22T19:26:00", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 3, |
| | | "process_definition_id": "pus:1:c79629a3-7462-11f1-b91b-00155dd68500", |
| | | "model_id": "8c640c7d-7462-11f1-b91b-00155dd68500", |
| | | "model_type": 20, |
| | | "category": "éè´å®¡æ ¸", |
| | | "icon": null, |
| | | "description": "", |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": "{\"form\":{\"layout\":\"horizontal\",\"labelAlign\":\"right\",\"size\":\"middle\",\"colon\":false,\"labelCol\":{\"style\":{\"width\":\"125px\"}},\"wrapperCol\":{\"span\":24},\"labelWidth\":\"100px\"},\"resetBtn\":{\"show\":false,\"innerText\":\"éç½®\"},\"submitBtn\":{\"show\":true,\"innerText\":\"æäº¤\"}}", |
| | | "form_fields": "[\"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fyqymqqdoln2abc\\\",\\\"title\\\":\\\"å§å\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_Fuplmqqdoln2acc\\\",\\\"name\\\":\\\"ref_F18omqqdoln2adc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fh6gmqqdooy5aec\\\",\\\"title\\\":\\\"å¹´é¾\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_F5whmqqdooy5afc\\\",\\\"name\\\":\\\"ref_Fltemqqdooy5agc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"select\\\",\\\"field\\\":\\\"F5mrmqqdutnnabc\\\",\\\"title\\\":\\\"éæ©å¨\\\",\\\"info\\\":\\\"\\\",\\\"effect\\\":{\\\"fetch\\\":\\\"\\\"},\\\"$required\\\":false,\\\"options\\\":[{\\\"label\\\":\\\"é项01\\\",\\\"value\\\":\\\"1\\\"},{\\\"label\\\":\\\"é项02\\\",\\\"value\\\":\\\"2\\\"},{\\\"label\\\":\\\"é项03\\\",\\\"value\\\":\\\"3\\\"}],\\\"_fc_id\\\":\\\"id_Fhnumqqdutnoacc\\\",\\\"name\\\":\\\"ref_Fd1wmqqdutnoadc\\\",\\\"display\\\":true,\\\"hidden\\\":false,\\\"_fc_drag_tag\\\":\\\"select\\\"}\"]", |
| | | "form_custom_create_path": "", |
| | | "form_custom_view_path": "", |
| | | "simple_model": "{\"buttonsSetting\":[{\"displayName\":\"æäº¤\",\"enable\":true,\"id\":1},{\"displayName\":\"æç»\",\"enable\":false,\"id\":2},{\"displayName\":\"转å\",\"enable\":false,\"id\":3},{\"displayName\":\"å§æ´¾\",\"enable\":false,\"id\":4},{\"displayName\":\"å ç¾\",\"enable\":false,\"id\":5},{\"displayName\":\"éå\",\"enable\":false,\"id\":6}],\"childNode\":{\"id\":\"EndEvent\",\"name\":\"ç»æ\",\"type\":1},\"fieldsPermission\":[{\"field\":\"Fyqymqqdoln2abc\",\"title\":\"å§å\",\"permission\":\"2\"},{\"field\":\"Fh6gmqqdooy5aec\",\"title\":\"å¹´é¾\",\"permission\":\"2\"},{\"field\":\"F5mrmqqdutnnabc\",\"title\":\"éæ©å¨\",\"permission\":\"2\"}],\"id\":\"StartUserNode\",\"name\":\"å起人\",\"showText\":\"已设置\",\"type\":10}", |
| | | "visible": "\u0001", |
| | | "sort": 1782810203613, |
| | | "start_user_ids": "", |
| | | "start_dept_ids": "", |
| | | "manager_user_ids": "142", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0000", |
| | | "process_id_rule": "{\"infix\": \"\", \"enable\": false, \"length\": 5, \"prefix\": \"\", \"postfix\": \"\"}", |
| | | "auto_approval_type": 0, |
| | | "title_setting": "{\"title\": \"\", \"enable\": false}", |
| | | "summary_setting": "{\"enable\": false, \"summary\": []}", |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": "{\"enable\": false, \"template\": \"\"}", |
| | | "creator": "234", |
| | | "create_time": "2026-09-25T00:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-09-25T00:39:00", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 4, |
| | | "process_definition_id": "purchase_approve:1:77c35552-74f7-11f1-b46c-00155dd68500", |
| | | "model_id": "654ec11c-74f7-11f1-b46c-00155dd68500", |
| | | "model_type": 20, |
| | | "category": "purchase_approve", |
| | | "icon": null, |
| | | "description": "", |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": "{\"form\":{\"layout\":\"horizontal\",\"labelAlign\":\"right\",\"size\":\"middle\",\"colon\":false,\"labelCol\":{\"style\":{\"width\":\"125px\"}},\"wrapperCol\":{\"span\":24},\"labelWidth\":\"100px\"},\"resetBtn\":{\"show\":false,\"innerText\":\"éç½®\"},\"submitBtn\":{\"show\":true,\"innerText\":\"æäº¤\"}}", |
| | | "form_fields": "[\"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fyqymqqdoln2abc\\\",\\\"title\\\":\\\"å§å\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_Fuplmqqdoln2acc\\\",\\\"name\\\":\\\"ref_F18omqqdoln2adc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fh6gmqqdooy5aec\\\",\\\"title\\\":\\\"å¹´é¾\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_F5whmqqdooy5afc\\\",\\\"name\\\":\\\"ref_Fltemqqdooy5agc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"select\\\",\\\"field\\\":\\\"F5mrmqqdutnnabc\\\",\\\"title\\\":\\\"éæ©å¨\\\",\\\"info\\\":\\\"\\\",\\\"effect\\\":{\\\"fetch\\\":\\\"\\\"},\\\"$required\\\":false,\\\"options\\\":[{\\\"label\\\":\\\"é项01\\\",\\\"value\\\":\\\"1\\\"},{\\\"label\\\":\\\"é项02\\\",\\\"value\\\":\\\"2\\\"},{\\\"label\\\":\\\"é项03\\\",\\\"value\\\":\\\"3\\\"}],\\\"_fc_id\\\":\\\"id_Fhnumqqdutnoacc\\\",\\\"name\\\":\\\"ref_Fd1wmqqdutnoadc\\\",\\\"display\\\":true,\\\"hidden\\\":false,\\\"_fc_drag_tag\\\":\\\"select\\\"}\"]", |
| | | "form_custom_create_path": "", |
| | | "form_custom_view_path": "", |
| | | "simple_model": "{\"buttonsSetting\":[{\"displayName\":\"æäº¤\",\"enable\":true,\"id\":1},{\"displayName\":\"æç»\",\"enable\":false,\"id\":2},{\"displayName\":\"转å\",\"enable\":false,\"id\":3},{\"displayName\":\"å§æ´¾\",\"enable\":false,\"id\":4},{\"displayName\":\"å ç¾\",\"enable\":false,\"id\":5},{\"displayName\":\"éå\",\"enable\":false,\"id\":6}],\"childNode\":{\"id\":\"EndEvent\",\"name\":\"ç»æ\",\"type\":1},\"fieldsPermission\":[{\"field\":\"Fyqymqqdoln2abc\",\"title\":\"å§å\",\"permission\":\"2\"},{\"field\":\"Fh6gmqqdooy5aec\",\"title\":\"å¹´é¾\",\"permission\":\"2\"},{\"field\":\"F5mrmqqdutnnabc\",\"title\":\"éæ©å¨\",\"permission\":\"2\"}],\"id\":\"StartUserNode\",\"name\":\"å起人\",\"showText\":\"已设置\",\"type\":10}", |
| | | "visible": "\u0001", |
| | | "sort": 1782874133055, |
| | | "start_user_ids": "", |
| | | "start_dept_ids": "", |
| | | "manager_user_ids": "142", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0000", |
| | | "process_id_rule": "{\"infix\": \"\", \"enable\": false, \"length\": 5, \"prefix\": \"\", \"postfix\": \"\"}", |
| | | "auto_approval_type": 0, |
| | | "title_setting": "{\"title\": \"\", \"enable\": false}", |
| | | "summary_setting": "{\"enable\": false, \"summary\": []}", |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": "{\"enable\": false, \"template\": \"\"}", |
| | | "creator": "234", |
| | | "create_time": "2026-09-27T05:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-09-27T05:52:00", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 5, |
| | | "process_definition_id": "purchase_request_approve:1:6dc60acd-74f9-11f1-91b4-00155dd68500", |
| | | "model_id": "5ddab987-74f9-11f1-91b4-00155dd68500", |
| | | "model_type": 20, |
| | | "category": "purchase_request_approve", |
| | | "icon": null, |
| | | "description": "", |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": "{\"form\":{\"layout\":\"horizontal\",\"labelAlign\":\"right\",\"size\":\"middle\",\"colon\":false,\"labelCol\":{\"style\":{\"width\":\"125px\"}},\"wrapperCol\":{\"span\":24},\"labelWidth\":\"100px\"},\"resetBtn\":{\"show\":false,\"innerText\":\"éç½®\"},\"submitBtn\":{\"show\":true,\"innerText\":\"æäº¤\"}}", |
| | | "form_fields": "[\"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fyqymqqdoln2abc\\\",\\\"title\\\":\\\"å§å\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_Fuplmqqdoln2acc\\\",\\\"name\\\":\\\"ref_F18omqqdoln2adc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fh6gmqqdooy5aec\\\",\\\"title\\\":\\\"å¹´é¾\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_F5whmqqdooy5afc\\\",\\\"name\\\":\\\"ref_Fltemqqdooy5agc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"select\\\",\\\"field\\\":\\\"F5mrmqqdutnnabc\\\",\\\"title\\\":\\\"éæ©å¨\\\",\\\"info\\\":\\\"\\\",\\\"effect\\\":{\\\"fetch\\\":\\\"\\\"},\\\"$required\\\":false,\\\"options\\\":[{\\\"label\\\":\\\"é项01\\\",\\\"value\\\":\\\"1\\\"},{\\\"label\\\":\\\"é项02\\\",\\\"value\\\":\\\"2\\\"},{\\\"label\\\":\\\"é项03\\\",\\\"value\\\":\\\"3\\\"}],\\\"_fc_id\\\":\\\"id_Fhnumqqdutnoacc\\\",\\\"name\\\":\\\"ref_Fd1wmqqdutnoadc\\\",\\\"display\\\":true,\\\"hidden\\\":false,\\\"_fc_drag_tag\\\":\\\"select\\\"}\"]", |
| | | "form_custom_create_path": "", |
| | | "form_custom_view_path": "", |
| | | "simple_model": "{\"buttonsSetting\":[{\"displayName\":\"æäº¤\",\"enable\":true,\"id\":1},{\"displayName\":\"æç»\",\"enable\":false,\"id\":2},{\"displayName\":\"转å\",\"enable\":false,\"id\":3},{\"displayName\":\"å§æ´¾\",\"enable\":false,\"id\":4},{\"displayName\":\"å ç¾\",\"enable\":false,\"id\":5},{\"displayName\":\"éå\",\"enable\":false,\"id\":6}],\"childNode\":{\"id\":\"EndEvent\",\"name\":\"ç»æ\",\"type\":1},\"fieldsPermission\":[{\"field\":\"Fyqymqqdoln2abc\",\"title\":\"å§å\",\"permission\":\"2\"},{\"field\":\"Fh6gmqqdooy5aec\",\"title\":\"å¹´é¾\",\"permission\":\"2\"},{\"field\":\"F5mrmqqdutnnabc\",\"title\":\"éæ©å¨\",\"permission\":\"2\"}],\"id\":\"StartUserNode\",\"name\":\"å起人\",\"showText\":\"已设置\",\"type\":10}", |
| | | "visible": "\u0001", |
| | | "sort": 1782874979545, |
| | | "start_user_ids": "", |
| | | "start_dept_ids": "", |
| | | "manager_user_ids": "142", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0000", |
| | | "process_id_rule": "{\"infix\": \"\", \"enable\": false, \"length\": 5, \"prefix\": \"\", \"postfix\": \"\"}", |
| | | "auto_approval_type": 0, |
| | | "title_setting": "{\"title\": \"\", \"enable\": false}", |
| | | "summary_setting": "{\"enable\": false, \"summary\": []}", |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": "{\"enable\": false, \"template\": \"\"}", |
| | | "creator": "234", |
| | | "create_time": "2026-09-29T10:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-09-29T11:05:00", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 6, |
| | | "process_definition_id": "purchase_request_approve:2:fb19b301-74f9-11f1-91b4-00155dd68500", |
| | | "model_id": "5ddab987-74f9-11f1-91b4-00155dd68500", |
| | | "model_type": 20, |
| | | "category": "purchase_request_approve", |
| | | "icon": null, |
| | | "description": "", |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": "{\"form\":{\"layout\":\"horizontal\",\"labelAlign\":\"right\",\"size\":\"middle\",\"colon\":false,\"labelCol\":{\"style\":{\"width\":\"125px\"}},\"wrapperCol\":{\"span\":24},\"labelWidth\":\"100px\"},\"resetBtn\":{\"show\":false,\"innerText\":\"éç½®\"},\"submitBtn\":{\"show\":true,\"innerText\":\"æäº¤\"}}", |
| | | "form_fields": "[\"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fyqymqqdoln2abc\\\",\\\"title\\\":\\\"å§å\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_Fuplmqqdoln2acc\\\",\\\"name\\\":\\\"ref_F18omqqdoln2adc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fh6gmqqdooy5aec\\\",\\\"title\\\":\\\"å¹´é¾\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_F5whmqqdooy5afc\\\",\\\"name\\\":\\\"ref_Fltemqqdooy5agc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"select\\\",\\\"field\\\":\\\"F5mrmqqdutnnabc\\\",\\\"title\\\":\\\"éæ©å¨\\\",\\\"info\\\":\\\"\\\",\\\"effect\\\":{\\\"fetch\\\":\\\"\\\"},\\\"$required\\\":false,\\\"options\\\":[{\\\"label\\\":\\\"é项01\\\",\\\"value\\\":\\\"1\\\"},{\\\"label\\\":\\\"é项02\\\",\\\"value\\\":\\\"2\\\"},{\\\"label\\\":\\\"é项03\\\",\\\"value\\\":\\\"3\\\"}],\\\"_fc_id\\\":\\\"id_Fhnumqqdutnoacc\\\",\\\"name\\\":\\\"ref_Fd1wmqqdutnoadc\\\",\\\"display\\\":true,\\\"hidden\\\":false,\\\"_fc_drag_tag\\\":\\\"select\\\"}\"]", |
| | | "form_custom_create_path": "", |
| | | "form_custom_view_path": "", |
| | | "simple_model": "{\"buttonsSetting\":[{\"displayName\":\"æäº¤\",\"enable\":true,\"id\":1},{\"displayName\":\"æç»\",\"enable\":false,\"id\":2},{\"displayName\":\"转å\",\"enable\":false,\"id\":3},{\"displayName\":\"å§æ´¾\",\"enable\":false,\"id\":4},{\"displayName\":\"å ç¾\",\"enable\":false,\"id\":5},{\"displayName\":\"éå\",\"enable\":false,\"id\":6}],\"childNode\":{\"id\":\"EndEvent\",\"name\":\"ç»æ\",\"type\":1},\"fieldsPermission\":[{\"field\":\"Fyqymqqdoln2abc\",\"title\":\"å§å\",\"permission\":\"2\"},{\"field\":\"Fh6gmqqdooy5aec\",\"title\":\"å¹´é¾\",\"permission\":\"2\"},{\"field\":\"F5mrmqqdutnnabc\",\"title\":\"éæ©å¨\",\"permission\":\"2\"}],\"id\":\"StartUserNode\",\"name\":\"å起人\",\"showText\":\"已设置\",\"type\":10}", |
| | | "visible": "\u0001", |
| | | "sort": 1782874979545, |
| | | "start_user_ids": "", |
| | | "start_dept_ids": "", |
| | | "manager_user_ids": "142", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0000", |
| | | "process_id_rule": "{\"infix\": \"\", \"enable\": false, \"length\": 5, \"prefix\": \"\", \"postfix\": \"\"}", |
| | | "auto_approval_type": 0, |
| | | "title_setting": "{\"title\": \"\", \"enable\": false}", |
| | | "summary_setting": "{\"enable\": false, \"summary\": []}", |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": "{\"enable\": false, \"template\": \"\"}", |
| | | "creator": "234", |
| | | "create_time": "2026-10-01T15:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-10-01T16:18:00", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 7, |
| | | "process_definition_id": "SSQ:1:a0be69b7-74fc-11f1-9120-00155dd68500", |
| | | "model_id": "2f78f7ad-7384-11f1-aa00-00155dd68500", |
| | | "model_type": 20, |
| | | "category": "åç±»1", |
| | | "icon": null, |
| | | "description": "", |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": "{\"form\":{\"layout\":\"horizontal\",\"labelAlign\":\"right\",\"size\":\"middle\",\"colon\":false,\"labelCol\":{\"style\":{\"width\":\"125px\"}},\"wrapperCol\":{\"span\":24},\"labelWidth\":\"100px\"},\"resetBtn\":{\"show\":false,\"innerText\":\"éç½®\"},\"submitBtn\":{\"show\":true,\"innerText\":\"æäº¤\"}}", |
| | | "form_fields": "[\"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fyqymqqdoln2abc\\\",\\\"title\\\":\\\"å§å\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_Fuplmqqdoln2acc\\\",\\\"name\\\":\\\"ref_F18omqqdoln2adc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fh6gmqqdooy5aec\\\",\\\"title\\\":\\\"å¹´é¾\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_F5whmqqdooy5afc\\\",\\\"name\\\":\\\"ref_Fltemqqdooy5agc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"select\\\",\\\"field\\\":\\\"F5mrmqqdutnnabc\\\",\\\"title\\\":\\\"éæ©å¨\\\",\\\"info\\\":\\\"\\\",\\\"effect\\\":{\\\"fetch\\\":\\\"\\\"},\\\"$required\\\":false,\\\"options\\\":[{\\\"label\\\":\\\"é项01\\\",\\\"value\\\":\\\"1\\\"},{\\\"label\\\":\\\"é项02\\\",\\\"value\\\":\\\"2\\\"},{\\\"label\\\":\\\"é项03\\\",\\\"value\\\":\\\"3\\\"}],\\\"_fc_id\\\":\\\"id_Fhnumqqdutnoacc\\\",\\\"name\\\":\\\"ref_Fd1wmqqdutnoadc\\\",\\\"display\\\":true,\\\"hidden\\\":false,\\\"_fc_drag_tag\\\":\\\"select\\\"}\"]", |
| | | "form_custom_create_path": "", |
| | | "form_custom_view_path": "", |
| | | "simple_model": "{\"buttonsSetting\":[{\"displayName\":\"æäº¤\",\"enable\":true,\"id\":1},{\"displayName\":\"æç»\",\"enable\":false,\"id\":2},{\"displayName\":\"转å\",\"enable\":false,\"id\":3},{\"displayName\":\"å§æ´¾\",\"enable\":false,\"id\":4},{\"displayName\":\"å ç¾\",\"enable\":false,\"id\":5},{\"displayName\":\"éå\",\"enable\":false,\"id\":6}],\"childNode\":{\"approveMethod\":4,\"approveType\":1,\"assignEmptyHandler\":{\"type\":1,\"userIds\":null},\"assignStartUserHandlerType\":1,\"buttonsSetting\":[{\"displayName\":\"éè¿\",\"enable\":true,\"id\":1},{\"displayName\":\"æç»\",\"enable\":true,\"id\":2},{\"displayName\":\"转å\",\"enable\":true,\"id\":3},{\"displayName\":\"å§æ´¾\",\"enable\":true,\"id\":4},{\"displayName\":\"å ç¾\",\"enable\":true,\"id\":5},{\"displayName\":\"éå\",\"enable\":true,\"id\":6}],\"candidateParam\":\"1\",\"candidateStrategy\":30,\"childNode\":{\"candidateParam\":\"1,100\",\"candidateStrategy\":30,\"childNode\":{\"id\":\"EndEvent\",\"name\":\"ç»æ\",\"type\":1},\"fieldsPermission\":[{\"field\":\"Fyqymqqdoln2abc\",\"title\":\"å§å\",\"permission\":\"1\"},{\"field\":\"Fh6gmqqdooy5aec\",\"title\":\"å¹´é¾\",\"permission\":\"1\"},{\"field\":\"F5mrmqqdutnnabc\",\"title\":\"éæ©å¨\",\"permission\":\"1\"}],\"id\":\"Activity__26062290711782714719270\",\"name\":\"æé人\",\"showText\":\"æå®æåï¼èéæºç ,èé\",\"type\":12},\"fieldsPermission\":[{\"field\":\"Fyqymqqdoln2abc\",\"title\":\"å§å\",\"permission\":\"1\"},{\"field\":\"Fh6gmqqdooy5aec\",\"title\":\"å¹´é¾\",\"permission\":\"1\"},{\"field\":\"F5mrmqqdutnnabc\",\"title\":\"éæ©å¨\",\"permission\":\"1\"}],\"id\":\"Activity__79685282811782876364872\",\"name\":\"审æ¹äºº\",\"reasonRequire\":false,\"rejectHandler\":{\"returnNodeId\":null,\"type\":1},\"showText\":\"æå®æåï¼èéæºç \",\"signEnable\":false,\"skipExpression\":\"\",\"taskAssignListener\":{\"body\":[],\"enable\":false,\"header\":[],\"path\":null},\"taskCompleteListener\":{\"body\":[],\"enable\":false,\"header\":[],\"path\":null},\"taskCreateListener\":{\"body\":[],\"enable\":false,\"header\":[],\"path\":null},\"timeoutHandler\":{\"enable\":false,\"maxRemindCount\":null,\"timeDuration\":null,\"type\":null},\"type\":11},\"fieldsPermission\":[{\"field\":\"Fyqymqqdoln2abc\",\"title\":\"å§å\",\"permission\":\"2\"},{\"field\":\"Fh6gmqqdooy5aec\",\"title\":\"å¹´é¾\",\"permission\":\"2\"},{\"field\":\"F5mrmqqdutnnabc\",\"title\":\"éæ©å¨\",\"permission\":\"2\"}],\"id\":\"StartUserNode\",\"name\":\"å起人\",\"showText\":\"已设置\",\"type\":10}", |
| | | "visible": "\u0001", |
| | | "sort": 1782714699450, |
| | | "start_user_ids": "", |
| | | "start_dept_ids": "", |
| | | "manager_user_ids": "1", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0000", |
| | | "process_id_rule": "{\"infix\": \"\", \"enable\": false, \"length\": 5, \"prefix\": \"\", \"postfix\": \"\"}", |
| | | "auto_approval_type": 0, |
| | | "title_setting": "{\"title\": \"\", \"enable\": false}", |
| | | "summary_setting": "{\"enable\": false, \"summary\": []}", |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": "{\"enable\": false, \"template\": \"\"}", |
| | | "creator": "234", |
| | | "create_time": "2026-10-03T20:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-10-03T21:31:00", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 8, |
| | | "process_definition_id": "purchase_request_approve:3:d239e27d-74fe-11f1-9120-00155dd68500", |
| | | "model_id": "5ddab987-74f9-11f1-91b4-00155dd68500", |
| | | "model_type": 20, |
| | | "category": "purchase_request_approve", |
| | | "icon": null, |
| | | "description": "", |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": "{\"form\":{\"layout\":\"horizontal\",\"labelAlign\":\"right\",\"size\":\"middle\",\"colon\":false,\"labelCol\":{\"style\":{\"width\":\"125px\"}},\"wrapperCol\":{\"span\":24},\"labelWidth\":\"100px\"},\"resetBtn\":{\"show\":false,\"innerText\":\"éç½®\"},\"submitBtn\":{\"show\":true,\"innerText\":\"æäº¤\"}}", |
| | | "form_fields": "[\"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fyqymqqdoln2abc\\\",\\\"title\\\":\\\"å§å\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_Fuplmqqdoln2acc\\\",\\\"name\\\":\\\"ref_F18omqqdoln2adc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fh6gmqqdooy5aec\\\",\\\"title\\\":\\\"å¹´é¾\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_F5whmqqdooy5afc\\\",\\\"name\\\":\\\"ref_Fltemqqdooy5agc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"select\\\",\\\"field\\\":\\\"F5mrmqqdutnnabc\\\",\\\"title\\\":\\\"éæ©å¨\\\",\\\"info\\\":\\\"\\\",\\\"effect\\\":{\\\"fetch\\\":\\\"\\\"},\\\"$required\\\":false,\\\"options\\\":[{\\\"label\\\":\\\"é项01\\\",\\\"value\\\":\\\"1\\\"},{\\\"label\\\":\\\"é项02\\\",\\\"value\\\":\\\"2\\\"},{\\\"label\\\":\\\"é项03\\\",\\\"value\\\":\\\"3\\\"}],\\\"_fc_id\\\":\\\"id_Fhnumqqdutnoacc\\\",\\\"name\\\":\\\"ref_Fd1wmqqdutnoadc\\\",\\\"display\\\":true,\\\"hidden\\\":false,\\\"_fc_drag_tag\\\":\\\"select\\\"}\"]", |
| | | "form_custom_create_path": "", |
| | | "form_custom_view_path": "", |
| | | "simple_model": "{\"buttonsSetting\":[{\"displayName\":\"æäº¤\",\"enable\":true,\"id\":1},{\"displayName\":\"æç»\",\"enable\":false,\"id\":2},{\"displayName\":\"转å\",\"enable\":false,\"id\":3},{\"displayName\":\"å§æ´¾\",\"enable\":false,\"id\":4},{\"displayName\":\"å ç¾\",\"enable\":false,\"id\":5},{\"displayName\":\"éå\",\"enable\":false,\"id\":6}],\"childNode\":{\"approveMethod\":4,\"approveType\":1,\"assignEmptyHandler\":{\"type\":1,\"userIds\":null},\"assignStartUserHandlerType\":1,\"buttonsSetting\":[{\"displayName\":\"éè¿\",\"enable\":true,\"id\":1},{\"displayName\":\"æç»\",\"enable\":true,\"id\":2},{\"displayName\":\"转å\",\"enable\":true,\"id\":3},{\"displayName\":\"å§æ´¾\",\"enable\":true,\"id\":4},{\"displayName\":\"å ç¾\",\"enable\":true,\"id\":5},{\"displayName\":\"éå\",\"enable\":true,\"id\":6}],\"candidateParam\":\"142\",\"candidateStrategy\":30,\"childNode\":{\"id\":\"EndEvent\",\"name\":\"ç»æ\",\"type\":1},\"fieldsPermission\":[{\"field\":\"Fyqymqqdoln2abc\",\"title\":\"å§å\",\"permission\":\"1\"},{\"field\":\"Fh6gmqqdooy5aec\",\"title\":\"å¹´é¾\",\"permission\":\"1\"},{\"field\":\"F5mrmqqdutnnabc\",\"title\":\"éæ©å¨\",\"permission\":\"1\"}],\"id\":\"Activity__69663778421782877292716\",\"name\":\"审æ¹äºº\",\"reasonRequire\":false,\"rejectHandler\":{\"returnNodeId\":null,\"type\":1},\"showText\":\"æå®æåï¼test01\",\"signEnable\":false,\"skipExpression\":\"\",\"taskAssignListener\":{\"body\":[],\"enable\":false,\"header\":[],\"path\":null},\"taskCompleteListener\":{\"body\":[],\"enable\":false,\"header\":[],\"path\":null},\"taskCreateListener\":{\"body\":[],\"enable\":false,\"header\":[],\"path\":null},\"timeoutHandler\":{\"enable\":false,\"maxRemindCount\":null,\"timeDuration\":null,\"type\":null},\"type\":11},\"fieldsPermission\":[{\"field\":\"Fyqymqqdoln2abc\",\"title\":\"å§å\",\"permission\":\"2\"},{\"field\":\"Fh6gmqqdooy5aec\",\"title\":\"å¹´é¾\",\"permission\":\"2\"},{\"field\":\"F5mrmqqdutnnabc\",\"title\":\"éæ©å¨\",\"permission\":\"2\"}],\"id\":\"StartUserNode\",\"name\":\"å起人\",\"showText\":\"已设置\",\"type\":10}", |
| | | "visible": "\u0001", |
| | | "sort": 1782874979545, |
| | | "start_user_ids": "", |
| | | "start_dept_ids": "", |
| | | "manager_user_ids": "142", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0000", |
| | | "process_id_rule": "{\"infix\": \"\", \"enable\": false, \"length\": 5, \"prefix\": \"\", \"postfix\": \"\"}", |
| | | "auto_approval_type": 0, |
| | | "title_setting": "{\"title\": \"\", \"enable\": false}", |
| | | "summary_setting": "{\"enable\": false, \"summary\": []}", |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": "{\"enable\": false, \"template\": \"\"}", |
| | | "creator": "234", |
| | | "create_time": "2026-10-06T01:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-10-06T02:44:00", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 9, |
| | | "process_definition_id": "caigoushenpi:1:df929079-7500-11f1-993f-00155dd68500", |
| | | "model_id": "bc6f3048-74fc-11f1-9120-00155dd68500", |
| | | "model_type": 20, |
| | | "category": "purchase_request_approve", |
| | | "icon": null, |
| | | "description": "", |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": "{\"form\":{\"layout\":\"horizontal\",\"labelAlign\":\"right\",\"size\":\"middle\",\"colon\":false,\"labelCol\":{\"style\":{\"width\":\"125px\"}},\"wrapperCol\":{\"span\":24},\"labelWidth\":\"100px\"},\"resetBtn\":{\"show\":false,\"innerText\":\"éç½®\"},\"submitBtn\":{\"show\":true,\"innerText\":\"æäº¤\"}}", |
| | | "form_fields": "[\"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fyqymqqdoln2abc\\\",\\\"title\\\":\\\"å§å\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_Fuplmqqdoln2acc\\\",\\\"name\\\":\\\"ref_F18omqqdoln2adc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fh6gmqqdooy5aec\\\",\\\"title\\\":\\\"å¹´é¾\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_F5whmqqdooy5afc\\\",\\\"name\\\":\\\"ref_Fltemqqdooy5agc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"select\\\",\\\"field\\\":\\\"F5mrmqqdutnnabc\\\",\\\"title\\\":\\\"éæ©å¨\\\",\\\"info\\\":\\\"\\\",\\\"effect\\\":{\\\"fetch\\\":\\\"\\\"},\\\"$required\\\":false,\\\"options\\\":[{\\\"label\\\":\\\"é项01\\\",\\\"value\\\":\\\"1\\\"},{\\\"label\\\":\\\"é项02\\\",\\\"value\\\":\\\"2\\\"},{\\\"label\\\":\\\"é项03\\\",\\\"value\\\":\\\"3\\\"}],\\\"_fc_id\\\":\\\"id_Fhnumqqdutnoacc\\\",\\\"name\\\":\\\"ref_Fd1wmqqdutnoadc\\\",\\\"display\\\":true,\\\"hidden\\\":false,\\\"_fc_drag_tag\\\":\\\"select\\\"}\"]", |
| | | "form_custom_create_path": "", |
| | | "form_custom_view_path": "", |
| | | "simple_model": "{\"buttonsSetting\":[{\"displayName\":\"æäº¤\",\"enable\":true,\"id\":1},{\"displayName\":\"æç»\",\"enable\":false,\"id\":2},{\"displayName\":\"转å\",\"enable\":false,\"id\":3},{\"displayName\":\"å§æ´¾\",\"enable\":false,\"id\":4},{\"displayName\":\"å ç¾\",\"enable\":false,\"id\":5},{\"displayName\":\"éå\",\"enable\":false,\"id\":6}],\"childNode\":{\"id\":\"EndEvent\",\"name\":\"ç»æ\",\"type\":1},\"fieldsPermission\":[{\"field\":\"Fyqymqqdoln2abc\",\"title\":\"å§å\",\"permission\":\"2\"},{\"field\":\"Fh6gmqqdooy5aec\",\"title\":\"å¹´é¾\",\"permission\":\"2\"},{\"field\":\"F5mrmqqdutnnabc\",\"title\":\"éæ©å¨\",\"permission\":\"2\"}],\"id\":\"StartUserNode\",\"name\":\"å起人\",\"showText\":\"已设置\",\"type\":10}", |
| | | "visible": "\u0001", |
| | | "sort": 1782876426717, |
| | | "start_user_ids": "", |
| | | "start_dept_ids": "", |
| | | "manager_user_ids": "144,142,113,1", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0000", |
| | | "process_id_rule": "{\"infix\": \"\", \"enable\": false, \"length\": 5, \"prefix\": \"\", \"postfix\": \"\"}", |
| | | "auto_approval_type": 0, |
| | | "title_setting": "{\"title\": \"\", \"enable\": false}", |
| | | "summary_setting": "{\"enable\": false, \"summary\": []}", |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": "{\"enable\": false, \"template\": \"\"}", |
| | | "creator": "234", |
| | | "create_time": "2026-10-08T06:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-10-08T07:57:00", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 10, |
| | | "process_definition_id": "contract_approve:1:8ffbf3b8-75da-11f1-a595-00155dd68500", |
| | | "model_id": "8d859c82-75da-11f1-a595-00155dd68500", |
| | | "model_type": 20, |
| | | "category": "contract_approve", |
| | | "icon": null, |
| | | "description": "", |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": "{\"form\":{\"layout\":\"horizontal\",\"labelAlign\":\"right\",\"size\":\"middle\",\"colon\":false,\"labelCol\":{\"style\":{\"width\":\"125px\"}},\"wrapperCol\":{\"span\":24},\"labelWidth\":\"100px\"},\"resetBtn\":{\"show\":false,\"innerText\":\"éç½®\"},\"submitBtn\":{\"show\":true,\"innerText\":\"æäº¤\"}}", |
| | | "form_fields": "[\"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fyqymqqdoln2abc\\\",\\\"title\\\":\\\"å§å\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_Fuplmqqdoln2acc\\\",\\\"name\\\":\\\"ref_F18omqqdoln2adc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fh6gmqqdooy5aec\\\",\\\"title\\\":\\\"å¹´é¾\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_F5whmqqdooy5afc\\\",\\\"name\\\":\\\"ref_Fltemqqdooy5agc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"select\\\",\\\"field\\\":\\\"F5mrmqqdutnnabc\\\",\\\"title\\\":\\\"éæ©å¨\\\",\\\"info\\\":\\\"\\\",\\\"effect\\\":{\\\"fetch\\\":\\\"\\\"},\\\"$required\\\":false,\\\"options\\\":[{\\\"label\\\":\\\"é项01\\\",\\\"value\\\":\\\"1\\\"},{\\\"label\\\":\\\"é项02\\\",\\\"value\\\":\\\"2\\\"},{\\\"label\\\":\\\"é项03\\\",\\\"value\\\":\\\"3\\\"}],\\\"_fc_id\\\":\\\"id_Fhnumqqdutnoacc\\\",\\\"name\\\":\\\"ref_Fd1wmqqdutnoadc\\\",\\\"display\\\":true,\\\"hidden\\\":false,\\\"_fc_drag_tag\\\":\\\"select\\\"}\"]", |
| | | "form_custom_create_path": "", |
| | | "form_custom_view_path": "", |
| | | "simple_model": "{\"buttonsSetting\":[{\"displayName\":\"æäº¤\",\"enable\":true,\"id\":1},{\"displayName\":\"æç»\",\"enable\":false,\"id\":2},{\"displayName\":\"转å\",\"enable\":false,\"id\":3},{\"displayName\":\"å§æ´¾\",\"enable\":false,\"id\":4},{\"displayName\":\"å ç¾\",\"enable\":false,\"id\":5},{\"displayName\":\"éå\",\"enable\":false,\"id\":6}],\"childNode\":{\"id\":\"EndEvent\",\"name\":\"ç»æ\",\"type\":1},\"fieldsPermission\":[{\"field\":\"Fyqymqqdoln2abc\",\"title\":\"å§å\",\"permission\":\"2\"},{\"field\":\"Fh6gmqqdooy5aec\",\"title\":\"å¹´é¾\",\"permission\":\"2\"},{\"field\":\"F5mrmqqdutnnabc\",\"title\":\"éæ©å¨\",\"permission\":\"2\"}],\"id\":\"StartUserNode\",\"name\":\"å起人\",\"showText\":\"已设置\",\"type\":10}", |
| | | "visible": "\u0001", |
| | | "sort": 1782971696280, |
| | | "start_user_ids": "", |
| | | "start_dept_ids": "", |
| | | "manager_user_ids": "142", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0000", |
| | | "process_id_rule": "{\"infix\": \"\", \"enable\": false, \"length\": 5, \"prefix\": \"\", \"postfix\": \"\"}", |
| | | "auto_approval_type": 0, |
| | | "title_setting": "{\"title\": \"\", \"enable\": false}", |
| | | "summary_setting": "{\"enable\": false, \"summary\": []}", |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": "{\"enable\": false, \"template\": \"\"}", |
| | | "creator": "234", |
| | | "create_time": "2026-10-10T11:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-10-10T13:10:00", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 11, |
| | | "process_definition_id": "b000_abc.:1:a470b6a7-7a92-11f1-9ea7-00155dd68500", |
| | | "model_id": "dd36f951-7a91-11f1-9ea7-00155dd68500", |
| | | "model_type": 20, |
| | | "category": "åç±»2", |
| | | "icon": null, |
| | | "description": "12312", |
| | | "form_type": 10, |
| | | "form_id": 2, |
| | | "form_conf": "{\"form\":{\"layout\":\"horizontal\",\"labelAlign\":\"right\",\"size\":\"middle\",\"colon\":false,\"labelCol\":{\"style\":{\"width\":\"125px\"}},\"wrapperCol\":{\"span\":24},\"labelWidth\":\"100px\"},\"resetBtn\":{\"show\":false,\"innerText\":\"éç½®\"},\"submitBtn\":{\"show\":true,\"innerText\":\"æäº¤\"}}", |
| | | "form_fields": "[\"{\\\"type\\\":\\\"DeptSelect\\\",\\\"field\\\":\\\"ce674cb3f7604c5da893b347bf1ff855\\\",\\\"title\\\":\\\"é¨é¨éæ©å¨\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"props\\\":{\\\"returnType\\\":\\\"id\\\",\\\"defaultCurrentDept\\\":false},\\\"_fc_id\\\":\\\"id_Fgcgmrbnv9c4cbc\\\",\\\"name\\\":\\\"ref_F7c0mrbnv9c4ccc\\\",\\\"display\\\":true,\\\"hidden\\\":false,\\\"_fc_drag_tag\\\":\\\"DeptSelect\\\"}\", \"{\\\"type\\\":\\\"UserSelect\\\",\\\"field\\\":\\\"6ada8f47c5ad483ca7e2a15da2d922d1\\\",\\\"title\\\":\\\"ç¨æ·éæ©å¨\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"props\\\":{\\\"defaultCurrentUser\\\":false},\\\"_fc_id\\\":\\\"id_F0pdmrbnvboxcdc\\\",\\\"name\\\":\\\"ref_F6pamrbnvboxcec\\\",\\\"display\\\":true,\\\"hidden\\\":false,\\\"_fc_drag_tag\\\":\\\"UserSelect\\\"}\", \"{\\\"type\\\":\\\"timePicker\\\",\\\"field\\\":\\\"Fn60mrbnvny3clc\\\",\\\"title\\\":\\\"æ¶é´åºé´\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"props\\\":{\\\"range\\\":true},\\\"_fc_id\\\":\\\"id_Fwsymrbnvny3cmc\\\",\\\"name\\\":\\\"ref_Fu44mrbnvny3cnc\\\",\\\"display\\\":true,\\\"hidden\\\":false,\\\"_fc_drag_tag\\\":\\\"timeRange\\\"}\", \"{\\\"type\\\":\\\"fcEditor\\\",\\\"field\\\":\\\"F7a8mrbnxj65cuc\\\",\\\"title\\\":\\\"å¯ææ¬æ¡\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_Fsz6mrbnxj65cvc\\\",\\\"name\\\":\\\"ref_Fqqwmrbnxj65cwc\\\",\\\"display\\\":true,\\\"hidden\\\":false,\\\"_fc_drag_tag\\\":\\\"fcEditor\\\"}\"]", |
| | | "form_custom_create_path": "", |
| | | "form_custom_view_path": "", |
| | | "simple_model": "{\"buttonsSetting\":[{\"displayName\":\"æäº¤\",\"enable\":true,\"id\":1},{\"displayName\":\"æç»\",\"enable\":false,\"id\":2},{\"displayName\":\"转å\",\"enable\":false,\"id\":3},{\"displayName\":\"å§æ´¾\",\"enable\":false,\"id\":4},{\"displayName\":\"å ç¾\",\"enable\":false,\"id\":5},{\"displayName\":\"éå\",\"enable\":false,\"id\":6}],\"childNode\":{\"approveMethod\":4,\"approveType\":1,\"assignEmptyHandler\":{\"type\":1,\"userIds\":null},\"assignStartUserHandlerType\":1,\"buttonsSetting\":[{\"displayName\":\"éè¿\",\"enable\":true,\"id\":1},{\"displayName\":\"æç»\",\"enable\":true,\"id\":2},{\"displayName\":\"转å\",\"enable\":true,\"id\":3},{\"displayName\":\"å§æ´¾\",\"enable\":true,\"id\":4},{\"displayName\":\"å ç¾\",\"enable\":true,\"id\":5},{\"displayName\":\"éå\",\"enable\":true,\"id\":6}],\"candidateParam\":\"104\",\"candidateStrategy\":30,\"childNode\":{\"id\":\"EndEvent\",\"name\":\"ç»æ\",\"type\":1},\"fieldsPermission\":[{\"field\":\"ce674cb3f7604c5da893b347bf1ff855\",\"title\":\"é¨é¨éæ©å¨\",\"permission\":\"1\"},{\"field\":\"6ada8f47c5ad483ca7e2a15da2d922d1\",\"title\":\"ç¨æ·éæ©å¨\",\"permission\":\"1\"},{\"field\":\"Fn60mrbnvny3clc\",\"title\":\"æ¶é´åºé´\",\"permission\":\"1\"},{\"field\":\"F7a8mrbnxj65cuc\",\"title\":\"å¯ææ¬æ¡\",\"permission\":\"1\"}],\"id\":\"Activity__34944553111783490267007\",\"name\":\"审æ¹äºº\",\"reasonRequire\":false,\"rejectHandler\":{\"returnNodeId\":null,\"type\":1},\"showText\":\"æå®æåï¼æµè¯å·\",\"signEnable\":true,\"skipExpression\":\"\",\"taskAssignListener\":{\"body\":[],\"enable\":false,\"header\":[],\"path\":null},\"taskCompleteListener\":{\"body\":[],\"enable\":false,\"header\":[],\"path\":null},\"taskCreateListener\":{\"body\":[],\"enable\":false,\"header\":[],\"path\":null},\"timeoutHandler\":{\"enable\":false,\"maxRemindCount\":null,\"timeDuration\":null,\"type\":null},\"type\":11},\"fieldsPermission\":[{\"field\":\"ce674cb3f7604c5da893b347bf1ff855\",\"title\":\"é¨é¨éæ©å¨\",\"permission\":\"2\"},{\"field\":\"6ada8f47c5ad483ca7e2a15da2d922d1\",\"title\":\"ç¨æ·éæ©å¨\",\"permission\":\"2\"},{\"field\":\"Fn60mrbnvny3clc\",\"title\":\"æ¶é´åºé´\",\"permission\":\"2\"},{\"field\":\"F7a8mrbnxj65cuc\",\"title\":\"å¯ææ¬æ¡\",\"permission\":\"2\"}],\"id\":\"StartUserNode\",\"name\":\"å起人\",\"showText\":\"已设置\",\"type\":10}", |
| | | "visible": "\u0001", |
| | | "sort": 1783490232541, |
| | | "start_user_ids": "", |
| | | "start_dept_ids": "", |
| | | "manager_user_ids": "1", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0001", |
| | | "process_id_rule": "{\"infix\": \"\", \"enable\": false, \"length\": 5, \"prefix\": \"\", \"postfix\": \"\"}", |
| | | "auto_approval_type": 0, |
| | | "title_setting": "{\"title\": \"\", \"enable\": false}", |
| | | "summary_setting": "{\"enable\": false, \"summary\": []}", |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": "{\"enable\": false, \"template\": \"<p style=\\\"text-align: center;font-size: 1.25rem;\\\"><strong><span data-w-e-type=\\\"mention\\\" data-value=\\\"æµç¨åç§°\\\" data-info=\\\"%7B%22id%22%3A%22processName%22%7D\\\">@æµç¨åç§°</span></strong></p>\\n<p style=\\\"text-align: right;\\\">æå°äººåï¼<span data-w-e-type=\\\"mention\\\" data-info=\\\"%7B%22id%22%3A%22printUser%22%7D\\\">@æå°äºº</span></p>\\n<p style=\\\"text-align: left;\\\">æµç¨ç¼å·ï¼<span data-w-e-type=\\\"mention\\\" data-value=\\\"æµç¨ç¼å·\\\" data-info=\\\"%7B%22id%22%3A%22processNum%22%7D\\\">@æµç¨ç¼å·</span></p>\\n<p> </p>\\n<table style=\\\"width: 100%; height: 72.2159px;\\\">\\n<tbody>\\n<tr style=\\\"height: 36.108px;\\\">\\n<td style=\\\"width: 21.7532%; border: 1px solid;\\\" colspan=\\\"1\\\" rowspan=\\\"1\\\" width=\\\"auto\\\">å起人</td>\\n<td style=\\\"width: 30.5551%; border: 1px solid;\\\" colspan=\\\"1\\\" rowspan=\\\"1\\\" width=\\\"auto\\\"><span data-w-e-type=\\\"mention\\\" data-value=\\\"å起人\\\" data-info=\\\"%7B%22id%22%3A%22startUser%22%7D\\\">@å起人</span></td>\\n<td style=\\\"width: 21.7532%; border: 1px solid;\\\" colspan=\\\"1\\\" rowspan=\\\"1\\\" width=\\\"auto\\\">åèµ·æ¶é´</td>\\n<td style=\\\"width: 26.0284%; border: 1px solid;\\\" colspan=\\\"1\\\" rowspan=\\\"1\\\" width=\\\"auto\\\"><span data-w-e-type=\\\"mention\\\" data-value=\\\"åèµ·æ¶é´\\\" data-info=\\\"%7B%22id%22%3A%22startTime%22%7D\\\">@åèµ·æ¶é´</span></td>\\n</tr>\\n<tr style=\\\"height: 36.108px;\\\">\\n<td style=\\\"width: 21.7532%; border: 1px solid;\\\" colspan=\\\"1\\\" rowspan=\\\"1\\\" width=\\\"auto\\\">æå±é¨é¨</td>\\n<td style=\\\"width: 30.5551%; border: 1px solid;\\\" colspan=\\\"1\\\" rowspan=\\\"1\\\" width=\\\"auto\\\"><span data-w-e-type=\\\"mention\\\" data-w-e-is-void=\\\"\\\" data-w-e-is-inline=\\\"\\\" data-value=\\\"å起人é¨é¨\\\" data-info=\\\"%7B%22id%22%3A%22startUserDept%22%7D\\\">@å起人é¨é¨</span></td>\\n<td style=\\\"width: 21.7532%; border: 1px solid;\\\" colspan=\\\"1\\\" rowspan=\\\"1\\\" width=\\\"auto\\\">æµç¨ç¶æ</td>\\n<td style=\\\"width: 26.0284%; border: 1px solid;\\\" colspan=\\\"1\\\" rowspan=\\\"1\\\" width=\\\"auto\\\"><span data-w-e-type=\\\"mention\\\" data-value=\\\"æµç¨ç¶æ\\\" data-info=\\\"%7B%22id%22%3A%22processStatus%22%7D\\\">@æµç¨ç¶æ</span></td>\\n</tr>\\n</tbody>\\n</table>\\n<p> </p>\\n<div contenteditable=\\\"false\\\" data-w-e-type=\\\"process-record\\\" data-w-e-is-void=\\\"\\\">\\n<table class=\\\"process-record-table\\\" style=\\\"width: 100%; border-collapse: collapse; border: 1px solid;\\\">\\n<tr>\\n\\t<td style=\\\"width: 100%; border: 1px solid; text-align: center;\\\" colspan=\\\"2\\\">æµç¨è®°å½</td>\\n</tr>\\n<tr>\\n\\t<td style=\\\"width: 25%; border: 1px solid;\\\">èç¹</td>\\n\\t<td style=\\\"width: 75%; border: 1px solid;\\\">æä½</td>\\n</tr>\\n</table>\\n</div>\\n<p> </p>\"}", |
| | | "creator": "234", |
| | | "create_time": "2026-09-18T12:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-09-18T14:23:00", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 12, |
| | | "process_definition_id": "b000_abc.:2:5e6b7e39-7a93-11f1-9ea7-00155dd68500", |
| | | "model_id": "dd36f951-7a91-11f1-9ea7-00155dd68500", |
| | | "model_type": 20, |
| | | "category": "åç±»2", |
| | | "icon": null, |
| | | "description": "12312", |
| | | "form_type": 10, |
| | | "form_id": 2, |
| | | "form_conf": "{\"form\":{\"layout\":\"horizontal\",\"labelAlign\":\"right\",\"size\":\"middle\",\"colon\":false,\"labelCol\":{\"style\":{\"width\":\"125px\"}},\"wrapperCol\":{\"span\":24},\"labelWidth\":\"100px\"},\"resetBtn\":{\"show\":false,\"innerText\":\"éç½®\"},\"submitBtn\":{\"show\":true,\"innerText\":\"æäº¤\"}}", |
| | | "form_fields": "[\"{\\\"type\\\":\\\"DeptSelect\\\",\\\"field\\\":\\\"ce674cb3f7604c5da893b347bf1ff855\\\",\\\"title\\\":\\\"é¨é¨éæ©å¨\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"props\\\":{\\\"returnType\\\":\\\"id\\\",\\\"defaultCurrentDept\\\":false},\\\"_fc_id\\\":\\\"id_Fgcgmrbnv9c4cbc\\\",\\\"name\\\":\\\"ref_F7c0mrbnv9c4ccc\\\",\\\"display\\\":true,\\\"hidden\\\":false,\\\"_fc_drag_tag\\\":\\\"DeptSelect\\\"}\", \"{\\\"type\\\":\\\"UserSelect\\\",\\\"field\\\":\\\"6ada8f47c5ad483ca7e2a15da2d922d1\\\",\\\"title\\\":\\\"ç¨æ·éæ©å¨\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"props\\\":{\\\"defaultCurrentUser\\\":false},\\\"_fc_id\\\":\\\"id_F0pdmrbnvboxcdc\\\",\\\"name\\\":\\\"ref_F6pamrbnvboxcec\\\",\\\"display\\\":true,\\\"hidden\\\":false,\\\"_fc_drag_tag\\\":\\\"UserSelect\\\"}\", \"{\\\"type\\\":\\\"timePicker\\\",\\\"field\\\":\\\"Fn60mrbnvny3clc\\\",\\\"title\\\":\\\"æ¶é´åºé´\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"props\\\":{\\\"range\\\":true},\\\"_fc_id\\\":\\\"id_Fwsymrbnvny3cmc\\\",\\\"name\\\":\\\"ref_Fu44mrbnvny3cnc\\\",\\\"display\\\":true,\\\"hidden\\\":false,\\\"_fc_drag_tag\\\":\\\"timeRange\\\"}\", \"{\\\"type\\\":\\\"fcEditor\\\",\\\"field\\\":\\\"F7a8mrbnxj65cuc\\\",\\\"title\\\":\\\"å¯ææ¬æ¡\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_Fsz6mrbnxj65cvc\\\",\\\"name\\\":\\\"ref_Fqqwmrbnxj65cwc\\\",\\\"display\\\":true,\\\"hidden\\\":false,\\\"_fc_drag_tag\\\":\\\"fcEditor\\\"}\"]", |
| | | "form_custom_create_path": "", |
| | | "form_custom_view_path": "", |
| | | "simple_model": "{\"buttonsSetting\":[{\"displayName\":\"æäº¤\",\"enable\":true,\"id\":1},{\"displayName\":\"æç»\",\"enable\":false,\"id\":2},{\"displayName\":\"转å\",\"enable\":false,\"id\":3},{\"displayName\":\"å§æ´¾\",\"enable\":false,\"id\":4},{\"displayName\":\"å ç¾\",\"enable\":false,\"id\":5},{\"displayName\":\"éå\",\"enable\":false,\"id\":6}],\"childNode\":{\"approveMethod\":4,\"approveType\":1,\"assignEmptyHandler\":{\"type\":1,\"userIds\":null},\"assignStartUserHandlerType\":1,\"buttonsSetting\":[{\"displayName\":\"éè¿\",\"enable\":true,\"id\":1},{\"displayName\":\"æç»\",\"enable\":true,\"id\":2},{\"displayName\":\"转å\",\"enable\":true,\"id\":3},{\"displayName\":\"å§æ´¾\",\"enable\":true,\"id\":4},{\"displayName\":\"å ç¾\",\"enable\":true,\"id\":5},{\"displayName\":\"éå\",\"enable\":true,\"id\":6}],\"candidateParam\":\"1\",\"candidateStrategy\":30,\"childNode\":{\"id\":\"EndEvent\",\"name\":\"ç»æ\",\"type\":1},\"fieldsPermission\":[{\"field\":\"ce674cb3f7604c5da893b347bf1ff855\",\"title\":\"é¨é¨éæ©å¨\",\"permission\":\"1\"},{\"field\":\"6ada8f47c5ad483ca7e2a15da2d922d1\",\"title\":\"ç¨æ·éæ©å¨\",\"permission\":\"1\"},{\"field\":\"Fn60mrbnvny3clc\",\"title\":\"æ¶é´åºé´\",\"permission\":\"1\"},{\"field\":\"F7a8mrbnxj65cuc\",\"title\":\"å¯ææ¬æ¡\",\"permission\":\"1\"}],\"id\":\"Activity__34944553111783490267007\",\"name\":\"审æ¹äºº\",\"reasonRequire\":false,\"rejectHandler\":{\"returnNodeId\":null,\"type\":1},\"showText\":\"æå®æåï¼èéæºç \",\"signEnable\":true,\"skipExpression\":\"\",\"taskAssignListener\":{\"body\":[],\"enable\":false,\"header\":[],\"path\":null},\"taskCompleteListener\":{\"body\":[],\"enable\":false,\"header\":[],\"path\":null},\"taskCreateListener\":{\"body\":[],\"enable\":false,\"header\":[],\"path\":null},\"timeoutHandler\":{\"enable\":false,\"maxRemindCount\":null,\"timeDuration\":null,\"type\":null},\"type\":11},\"fieldsPermission\":[{\"field\":\"ce674cb3f7604c5da893b347bf1ff855\",\"title\":\"é¨é¨éæ©å¨\",\"permission\":\"2\"},{\"field\":\"6ada8f47c5ad483ca7e2a15da2d922d1\",\"title\":\"ç¨æ·éæ©å¨\",\"permission\":\"2\"},{\"field\":\"Fn60mrbnvny3clc\",\"title\":\"æ¶é´åºé´\",\"permission\":\"2\"},{\"field\":\"F7a8mrbnxj65cuc\",\"title\":\"å¯ææ¬æ¡\",\"permission\":\"2\"}],\"id\":\"StartUserNode\",\"name\":\"å起人\",\"showText\":\"已设置\",\"type\":10}", |
| | | "visible": "\u0001", |
| | | "sort": 1783490232541, |
| | | "start_user_ids": "", |
| | | "start_dept_ids": "", |
| | | "manager_user_ids": "1", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0001", |
| | | "process_id_rule": "{\"infix\": \"\", \"enable\": false, \"length\": 5, \"prefix\": \"\", \"postfix\": \"\"}", |
| | | "auto_approval_type": 0, |
| | | "title_setting": "{\"title\": \"\", \"enable\": false}", |
| | | "summary_setting": "{\"enable\": false, \"summary\": []}", |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": "{\"enable\": false, \"template\": \"<p style=\\\"text-align: center;font-size: 1.25rem;\\\"><strong><span data-w-e-type=\\\"mention\\\" data-value=\\\"æµç¨åç§°\\\" data-info=\\\"%7B%22id%22%3A%22processName%22%7D\\\">@æµç¨åç§°</span></strong></p>\\n<p style=\\\"text-align: right;\\\">æå°äººåï¼<span data-w-e-type=\\\"mention\\\" data-info=\\\"%7B%22id%22%3A%22printUser%22%7D\\\">@æå°äºº</span></p>\\n<p style=\\\"text-align: left;\\\">æµç¨ç¼å·ï¼<span data-w-e-type=\\\"mention\\\" data-value=\\\"æµç¨ç¼å·\\\" data-info=\\\"%7B%22id%22%3A%22processNum%22%7D\\\">@æµç¨ç¼å·</span></p>\\n<p> </p>\\n<table style=\\\"width: 100%; height: 72.2159px;\\\">\\n<tbody>\\n<tr style=\\\"height: 36.108px;\\\">\\n<td style=\\\"width: 21.7532%; border: 1px solid;\\\" colspan=\\\"1\\\" rowspan=\\\"1\\\" width=\\\"auto\\\">å起人</td>\\n<td style=\\\"width: 30.5551%; border: 1px solid;\\\" colspan=\\\"1\\\" rowspan=\\\"1\\\" width=\\\"auto\\\"><span data-w-e-type=\\\"mention\\\" data-value=\\\"å起人\\\" data-info=\\\"%7B%22id%22%3A%22startUser%22%7D\\\">@å起人</span></td>\\n<td style=\\\"width: 21.7532%; border: 1px solid;\\\" colspan=\\\"1\\\" rowspan=\\\"1\\\" width=\\\"auto\\\">åèµ·æ¶é´</td>\\n<td style=\\\"width: 26.0284%; border: 1px solid;\\\" colspan=\\\"1\\\" rowspan=\\\"1\\\" width=\\\"auto\\\"><span data-w-e-type=\\\"mention\\\" data-value=\\\"åèµ·æ¶é´\\\" data-info=\\\"%7B%22id%22%3A%22startTime%22%7D\\\">@åèµ·æ¶é´</span></td>\\n</tr>\\n<tr style=\\\"height: 36.108px;\\\">\\n<td style=\\\"width: 21.7532%; border: 1px solid;\\\" colspan=\\\"1\\\" rowspan=\\\"1\\\" width=\\\"auto\\\">æå±é¨é¨</td>\\n<td style=\\\"width: 30.5551%; border: 1px solid;\\\" colspan=\\\"1\\\" rowspan=\\\"1\\\" width=\\\"auto\\\"><span data-w-e-type=\\\"mention\\\" data-w-e-is-void=\\\"\\\" data-w-e-is-inline=\\\"\\\" data-value=\\\"å起人é¨é¨\\\" data-info=\\\"%7B%22id%22%3A%22startUserDept%22%7D\\\">@å起人é¨é¨</span></td>\\n<td style=\\\"width: 21.7532%; border: 1px solid;\\\" colspan=\\\"1\\\" rowspan=\\\"1\\\" width=\\\"auto\\\">æµç¨ç¶æ</td>\\n<td style=\\\"width: 26.0284%; border: 1px solid;\\\" colspan=\\\"1\\\" rowspan=\\\"1\\\" width=\\\"auto\\\"><span data-w-e-type=\\\"mention\\\" data-value=\\\"æµç¨ç¶æ\\\" data-info=\\\"%7B%22id%22%3A%22processStatus%22%7D\\\">@æµç¨ç¶æ</span></td>\\n</tr>\\n</tbody>\\n</table>\\n<p> </p>\\n<div contenteditable=\\\"false\\\" data-w-e-type=\\\"process-record\\\" data-w-e-is-void=\\\"\\\">\\n<table class=\\\"process-record-table\\\" style=\\\"width: 100%; border-collapse: collapse; border: 1px solid;\\\">\\n<tr>\\n\\t<td style=\\\"width: 100%; border: 1px solid; text-align: center;\\\" colspan=\\\"2\\\">æµç¨è®°å½</td>\\n</tr>\\n<tr>\\n\\t<td style=\\\"width: 25%; border: 1px solid;\\\">èç¹</td>\\n\\t<td style=\\\"width: 75%; border: 1px solid;\\\">æä½</td>\\n</tr>\\n</table>\\n</div>\\n<p> </p>\"}", |
| | | "creator": "234", |
| | | "create_time": "2026-09-20T17:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-09-20T19:36:00", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 13, |
| | | "process_definition_id": "QWEDD:1:0d177596-83e0-11f1-b998-00155dd68500", |
| | | "model_id": "fe979b30-83df-11f1-b998-00155dd68500", |
| | | "model_type": 20, |
| | | "category": "sale_quotation_approve", |
| | | "icon": null, |
| | | "description": "", |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": "{\"form\":{\"layout\":\"horizontal\",\"labelAlign\":\"right\",\"size\":\"middle\",\"colon\":false,\"labelCol\":{\"style\":{\"width\":\"125px\"}},\"wrapperCol\":{\"span\":24},\"labelWidth\":\"100px\"},\"resetBtn\":{\"show\":false,\"innerText\":\"éç½®\"},\"submitBtn\":{\"show\":true,\"innerText\":\"æäº¤\"}}", |
| | | "form_fields": "[\"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fyqymqqdoln2abc\\\",\\\"title\\\":\\\"å§å\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_Fuplmqqdoln2acc\\\",\\\"name\\\":\\\"ref_F18omqqdoln2adc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fh6gmqqdooy5aec\\\",\\\"title\\\":\\\"å¹´é¾\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_F5whmqqdooy5afc\\\",\\\"name\\\":\\\"ref_Fltemqqdooy5agc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"select\\\",\\\"field\\\":\\\"F5mrmqqdutnnabc\\\",\\\"title\\\":\\\"éæ©å¨\\\",\\\"info\\\":\\\"\\\",\\\"effect\\\":{\\\"fetch\\\":\\\"\\\"},\\\"$required\\\":false,\\\"options\\\":[{\\\"label\\\":\\\"é项01\\\",\\\"value\\\":\\\"1\\\"},{\\\"label\\\":\\\"é项02\\\",\\\"value\\\":\\\"2\\\"},{\\\"label\\\":\\\"é项03\\\",\\\"value\\\":\\\"3\\\"}],\\\"_fc_id\\\":\\\"id_Fhnumqqdutnoacc\\\",\\\"name\\\":\\\"ref_Fd1wmqqdutnoadc\\\",\\\"_fc_drag_tag\\\":\\\"select\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"ApiSelect\\\",\\\"field\\\":\\\"dc4b501620bb4c8184aaaeb66398324a\\\",\\\"title\\\":\\\"æ¥å£éæ©å¨\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"props\\\":{\\\"method\\\":\\\"GET\\\"},\\\"_fc_id\\\":\\\"id_F6ewmrbn96xdc3c\\\",\\\"name\\\":\\\"ref_F1jomrbn96xdc4c\\\",\\\"display\\\":true,\\\"hidden\\\":false,\\\"_fc_drag_tag\\\":\\\"ApiSelect\\\"}\"]", |
| | | "form_custom_create_path": "", |
| | | "form_custom_view_path": "", |
| | | "simple_model": "{\"childNode\":{\"id\":\"EndEvent\",\"name\":\"ç»æ\",\"type\":1},\"id\":\"StartUserNode\",\"name\":\"å起人\",\"showText\":\"\",\"type\":10}", |
| | | "visible": "\u0001", |
| | | "sort": 1784513349741, |
| | | "start_user_ids": "", |
| | | "start_dept_ids": "", |
| | | "manager_user_ids": "1", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0000", |
| | | "process_id_rule": "{\"infix\": \"\", \"enable\": false, \"length\": 5, \"prefix\": \"\", \"postfix\": \"\"}", |
| | | "auto_approval_type": 0, |
| | | "title_setting": "{\"title\": \"\", \"enable\": false}", |
| | | "summary_setting": "{\"enable\": false, \"summary\": []}", |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": "{\"enable\": false, \"template\": \"\"}", |
| | | "creator": "234", |
| | | "create_time": "2026-09-22T22:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-09-23T00:49:00", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 14, |
| | | "process_definition_id": "b000_abc.:3:d8fca27c-8af2-11f1-a171-b025aaa35411", |
| | | "model_id": "dd36f951-7a91-11f1-9ea7-00155dd68500", |
| | | "model_type": 20, |
| | | "category": "åç±»2", |
| | | "icon": null, |
| | | "description": "12312", |
| | | "form_type": 10, |
| | | "form_id": 2, |
| | | "form_conf": "{\"form\":{\"layout\":\"horizontal\",\"labelAlign\":\"right\",\"size\":\"middle\",\"colon\":false,\"labelCol\":{\"style\":{\"width\":\"125px\"}},\"wrapperCol\":{\"span\":24},\"labelWidth\":\"100px\"},\"resetBtn\":{\"show\":false,\"innerText\":\"éç½®\"},\"submitBtn\":{\"show\":true,\"innerText\":\"æäº¤\"}}", |
| | | "form_fields": "[\"{\\\"type\\\":\\\"DeptSelect\\\",\\\"field\\\":\\\"ce674cb3f7604c5da893b347bf1ff855\\\",\\\"title\\\":\\\"é¨é¨éæ©å¨\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":true,\\\"props\\\":{\\\"returnType\\\":\\\"id\\\",\\\"defaultCurrentDept\\\":false},\\\"_fc_id\\\":\\\"id_Fgcgmrbnv9c4cbc\\\",\\\"name\\\":\\\"ref_F7c0mrbnv9c4ccc\\\",\\\"_fc_drag_tag\\\":\\\"DeptSelect\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"UserSelect\\\",\\\"field\\\":\\\"6ada8f47c5ad483ca7e2a15da2d922d1\\\",\\\"title\\\":\\\"ç¨æ·éæ©å¨\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":true,\\\"props\\\":{\\\"defaultCurrentUser\\\":false},\\\"_fc_id\\\":\\\"id_F0pdmrbnvboxcdc\\\",\\\"name\\\":\\\"ref_F6pamrbnvboxcec\\\",\\\"_fc_drag_tag\\\":\\\"UserSelect\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"datePicker\\\",\\\"field\\\":\\\"Fio0ms5fmwwnabc\\\",\\\"title\\\":\\\"å¼å§æ¥æ\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":true,\\\"props\\\":{\\\"showTime\\\":true},\\\"_fc_id\\\":\\\"id_F28vms5fmwwnacc\\\",\\\"name\\\":\\\"ref_Fhufms5fmwwnadc\\\",\\\"_fc_drag_tag\\\":\\\"datePicker\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"datePicker\\\",\\\"field\\\":\\\"Fpn0ms5fmyb4aec\\\",\\\"title\\\":\\\"ç»ææ¥æ\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":true,\\\"props\\\":{\\\"showTime\\\":true},\\\"_fc_id\\\":\\\"id_Fxrgms5fmyb4afc\\\",\\\"name\\\":\\\"ref_Fffoms5fmyb4agc\\\",\\\"_fc_drag_tag\\\":\\\"datePicker\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"inputNumber\\\",\\\"field\\\":\\\"F3n6ms5fwzqaaqc\\\",\\\"title\\\":\\\"请å天æ°\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":true,\\\"props\\\":{\\\"min\\\":1},\\\"_fc_id\\\":\\\"id_Fas0ms5fwzqbarc\\\",\\\"name\\\":\\\"ref_Fz1mms5fwzqbasc\\\",\\\"display\\\":true,\\\"hidden\\\":false,\\\"_fc_drag_tag\\\":\\\"inputNumber\\\"}\", \"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"F1noms5fo0j5ahc\\\",\\\"title\\\":\\\"请åäºç±\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":true,\\\"_fc_id\\\":\\\"id_Fybxms5fo0j5aic\\\",\\\"name\\\":\\\"ref_Fcv7ms5fo0j5ajc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\"]", |
| | | "form_custom_create_path": "", |
| | | "form_custom_view_path": "", |
| | | "simple_model": "{\"buttonsSetting\":[{\"displayName\":\"æäº¤\",\"enable\":true,\"id\":1},{\"displayName\":\"æç»\",\"enable\":false,\"id\":2},{\"displayName\":\"转å\",\"enable\":false,\"id\":3},{\"displayName\":\"å§æ´¾\",\"enable\":false,\"id\":4},{\"displayName\":\"å ç¾\",\"enable\":false,\"id\":5},{\"displayName\":\"éå\",\"enable\":false,\"id\":6}],\"childNode\":{\"childNode\":{\"candidateParam\":\"1\",\"candidateStrategy\":30,\"childNode\":{\"id\":\"EndEvent\",\"name\":\"ç»æ\",\"type\":1},\"fieldsPermission\":[{\"field\":\"ce674cb3f7604c5da893b347bf1ff855\",\"title\":\"é¨é¨éæ©å¨\",\"permission\":\"1\"},{\"field\":\"6ada8f47c5ad483ca7e2a15da2d922d1\",\"title\":\"ç¨æ·éæ©å¨\",\"permission\":\"1\"},{\"field\":\"Fio0ms5fmwwnabc\",\"title\":\"å¼å§æ¥æ\",\"permission\":\"1\"},{\"field\":\"Fpn0ms5fmyb4aec\",\"title\":\"ç»ææ¥æ\",\"permission\":\"1\"},{\"field\":\"F3n6ms5fwzqaaqc\",\"title\":\"请å天æ°\",\"permission\":\"1\"},{\"field\":\"F1noms5fo0j5ahc\",\"title\":\"请åäºç±\",\"permission\":\"1\"}],\"id\":\"Activity__319174640311785291090220\",\"name\":\"æé人\",\"showText\":\"æå®æåï¼èéæºç \",\"type\":12},\"conditionNodes\":[{\"childNode\":{\"approveMethod\":4,\"approveType\":1,\"assignEmptyHandler\":{\"type\":1,\"userIds\":null},\"assignStartUserHandlerType\":1,\"buttonsSetting\":[{\"displayName\":\"éè¿\",\"enable\":true,\"id\":1},{\"displayName\":\"æç»\",\"enable\":true,\"id\":2},{\"displayName\":\"转å\",\"enable\":true,\"id\":3},{\"displayName\":\"å§æ´¾\",\"enable\":true,\"id\":4},{\"displayName\":\"å ç¾\",\"enable\":true,\"id\":5},{\"displayName\":\"éå\",\"enable\":true,\"id\":6}],\"candidateParam\":\"1\",\"candidateStrategy\":30,\"fieldsPermission\":[{\"field\":\"ce674cb3f7604c5da893b347bf1ff855\",\"title\":\"é¨é¨éæ©å¨\",\"permission\":\"1\"},{\"field\":\"6ada8f47c5ad483ca7e2a15da2d922d1\",\"title\":\"ç¨æ·éæ©å¨\",\"permission\":\"1\"},{\"field\":\"Fio0ms5fmwwnabc\",\"title\":\"å¼å§æ¥æ\",\"permission\":\"1\"},{\"field\":\"Fpn0ms5fmyb4aec\",\"title\":\"ç»ææ¥æ\",\"permission\":\"1\"},{\"field\":\"F3n6ms5fwzqaaqc\",\"title\":\"请å天æ°\",\"permission\":\"1\"},{\"field\":\"F1noms5fo0j5ahc\",\"title\":\"请åäºç±\",\"permission\":\"1\"}],\"id\":\"Activity__955878144241785290843199\",\"name\":\"审æ¹äºº\",\"reasonRequire\":false,\"rejectHandler\":{\"returnNodeId\":null,\"type\":1},\"showText\":\"æå®æåï¼èéæºç \",\"signEnable\":false,\"skipExpression\":\"\",\"taskAssignListener\":{\"body\":[],\"enable\":false,\"header\":[],\"path\":null},\"taskCompleteListener\":{\"body\":[],\"enable\":false,\"header\":[],\"path\":null},\"taskCreateListener\":{\"body\":[],\"enable\":false,\"header\":[],\"path\":null},\"timeoutHandler\":{\"enable\":false,\"maxRemindCount\":null,\"timeDuration\":null,\"type\":null},\"type\":11},\"conditionSetting\":{\"conditionExpression\":null,\"conditionGroups\":{\"and\":true,\"conditions\":[{\"and\":true,\"rules\":[{\"leftSide\":\"F3n6ms5fwzqaaqc\",\"opCode\":\"==\",\"rightSide\":\"1\"}]}]},\"conditionType\":2,\"defaultFlow\":false},\"id\":\"Flow__965754828211785290789379\",\"name\":\"æ¡ä»¶1\",\"showText\":\"(请åå¤©æ° çäº 1 ) \",\"type\":50},{\"childNode\":{\"approveMethod\":4,\"approveType\":1,\"assignEmptyHandler\":{\"type\":1,\"userIds\":null},\"assignStartUserHandlerType\":1,\"buttonsSetting\":[{\"displayName\":\"éè¿\",\"enable\":true,\"id\":1},{\"displayName\":\"æç»\",\"enable\":true,\"id\":2},{\"displayName\":\"转å\",\"enable\":true,\"id\":3},{\"displayName\":\"å§æ´¾\",\"enable\":true,\"id\":4},{\"displayName\":\"å ç¾\",\"enable\":true,\"id\":5},{\"displayName\":\"éå\",\"enable\":true,\"id\":6}],\"candidateParam\":\"1\",\"candidateStrategy\":30,\"fieldsPermission\":[{\"field\":\"ce674cb3f7604c5da893b347bf1ff855\",\"title\":\"é¨é¨éæ©å¨\",\"permission\":\"1\"},{\"field\":\"6ada8f47c5ad483ca7e2a15da2d922d1\",\"title\":\"ç¨æ·éæ©å¨\",\"permission\":\"1\"},{\"field\":\"Fio0ms5fmwwnabc\",\"title\":\"å¼å§æ¥æ\",\"permission\":\"1\"},{\"field\":\"Fpn0ms5fmyb4aec\",\"title\":\"ç»ææ¥æ\",\"permission\":\"1\"},{\"field\":\"F3n6ms5fwzqaaqc\",\"title\":\"请å天æ°\",\"permission\":\"1\"},{\"field\":\"F1noms5fo0j5ahc\",\"title\":\"请åäºç±\",\"permission\":\"1\"}],\"id\":\"Activity__699432637251785290845398\",\"name\":\"审æ¹äºº\",\"reasonRequire\":false,\"rejectHandler\":{\"returnNodeId\":null,\"type\":1},\"showText\":\"æå®æåï¼èéæºç \",\"signEnable\":false,\"skipExpression\":\"\",\"taskAssignListener\":{\"body\":[],\"enable\":false,\"header\":[],\"path\":null},\"taskCompleteListener\":{\"body\":[],\"enable\":false,\"header\":[],\"path\":null},\"taskCreateListener\":{\"body\":[],\"enable\":false,\"header\":[],\"path\":null},\"timeoutHandler\":{\"enable\":false,\"maxRemindCount\":null,\"timeDuration\":null,\"type\":null},\"type\":11},\"conditionNodes\":[],\"conditionSetting\":{\"conditionExpression\":null,\"conditionGroups\":{\"and\":true,\"conditions\":[{\"and\":true,\"rules\":[{\"leftSide\":\"F3n6ms5fwzqaaqc\",\"opCode\":\">\",\"rightSide\":\"1\"},{\"leftSide\":\"F3n6ms5fwzqaaqc\",\"opCode\":\"<=\",\"rightSide\":\"3\"}]}]},\"conditionType\":2,\"defaultFlow\":false},\"id\":\"Flow__967637497231785290793938\",\"name\":\"æ¡ä»¶2\",\"showText\":\"(请åå¤©æ° å¤§äº 1 ä¸ è¯·åå¤©æ° å°äºçäº 3 ) \",\"type\":50},{\"childNode\":{\"approveMethod\":4,\"approveType\":1,\"assignEmptyHandler\":{\"type\":1,\"userIds\":null},\"assignStartUserHandlerType\":1,\"buttonsSetting\":[{\"displayName\":\"éè¿\",\"enable\":true,\"id\":1},{\"displayName\":\"æç»\",\"enable\":true,\"id\":2},{\"displayName\":\"转å\",\"enable\":true,\"id\":3},{\"displayName\":\"å§æ´¾\",\"enable\":true,\"id\":4},{\"displayName\":\"å ç¾\",\"enable\":true,\"id\":5},{\"displayName\":\"éå\",\"enable\":true,\"id\":6}],\"candidateParam\":\"1\",\"candidateStrategy\":30,\"fieldsPermission\":[{\"field\":\"ce674cb3f7604c5da893b347bf1ff855\",\"title\":\"é¨é¨éæ©å¨\",\"permission\":\"1\"},{\"field\":\"6ada8f47c5ad483ca7e2a15da2d922d1\",\"title\":\"ç¨æ·éæ©å¨\",\"permission\":\"1\"},{\"field\":\"Fio0ms5fmwwnabc\",\"title\":\"å¼å§æ¥æ\",\"permission\":\"1\"},{\"field\":\"Fpn0ms5fmyb4aec\",\"title\":\"ç»ææ¥æ\",\"permission\":\"1\"},{\"field\":\"F3n6ms5fwzqaaqc\",\"title\":\"请å天æ°\",\"permission\":\"1\"},{\"field\":\"F1noms5fo0j5ahc\",\"title\":\"请åäºç±\",\"permission\":\"1\"}],\"id\":\"Activity__608645122271785291003461\",\"name\":\"审æ¹äºº\",\"reasonRequire\":false,\"rejectHandler\":{\"returnNodeId\":null,\"type\":1},\"showText\":\"æå®æåï¼èéæºç \",\"signEnable\":false,\"skipExpression\":\"\",\"taskAssignListener\":{\"body\":[],\"enable\":false,\"header\":[],\"path\":null},\"taskCompleteListener\":{\"body\":[],\"enable\":false,\"header\":[],\"path\":null},\"taskCreateListener\":{\"body\":[],\"enable\":false,\"header\":[],\"path\":null},\"timeoutHandler\":{\"enable\":false,\"maxRemindCount\":null,\"timeDuration\":null,\"type\":null},\"type\":11},\"conditionNodes\":[],\"conditionSetting\":{\"conditionExpression\":null,\"conditionGroups\":{\"and\":true,\"conditions\":[{\"and\":true,\"rules\":[{\"leftSide\":\"F3n6ms5fwzqaaqc\",\"opCode\":\">\",\"rightSide\":\"3\"},{\"leftSide\":\"F3n6ms5fwzqaaqc\",\"opCode\":\"<=\",\"rightSide\":\"5\"}]}]},\"conditionType\":2,\"defaultFlow\":false},\"id\":\"Flow__850184584261785290886671\",\"name\":\"æ¡ä»¶3\",\"showText\":\"(请åå¤©æ° å¤§äº 3 ä¸ è¯·åå¤©æ° å°äºçäº 5 ) \",\"type\":50},{\"childNode\":{\"approveMethod\":4,\"approveType\":1,\"assignEmptyHandler\":{\"type\":1,\"userIds\":null},\"assignStartUserHandlerType\":1,\"buttonsSetting\":[{\"displayName\":\"éè¿\",\"enable\":true,\"id\":1},{\"displayName\":\"æç»\",\"enable\":true,\"id\":2},{\"displayName\":\"转å\",\"enable\":true,\"id\":3},{\"displayName\":\"å§æ´¾\",\"enable\":true,\"id\":4},{\"displayName\":\"å ç¾\",\"enable\":true,\"id\":5},{\"displayName\":\"éå\",\"enable\":true,\"id\":6}],\"candidateParam\":\"1\",\"candidateStrategy\":30,\"fieldsPermission\":[{\"field\":\"ce674cb3f7604c5da893b347bf1ff855\",\"title\":\"é¨é¨éæ©å¨\",\"permission\":\"1\"},{\"field\":\"6ada8f47c5ad483ca7e2a15da2d922d1\",\"title\":\"ç¨æ·éæ©å¨\",\"permission\":\"1\"},{\"field\":\"Fio0ms5fmwwnabc\",\"title\":\"å¼å§æ¥æ\",\"permission\":\"1\"},{\"field\":\"Fpn0ms5fmyb4aec\",\"title\":\"ç»ææ¥æ\",\"permission\":\"1\"},{\"field\":\"F3n6ms5fwzqaaqc\",\"title\":\"请å天æ°\",\"permission\":\"1\"},{\"field\":\"F1noms5fo0j5ahc\",\"title\":\"请åäºç±\",\"permission\":\"1\"}],\"id\":\"Activity__708894643281785291071437\",\"name\":\"审æ¹äºº\",\"reasonRequire\":false,\"rejectHandler\":{\"returnNodeId\":null,\"type\":1},\"showText\":\"æå®æåï¼èéæºç \",\"signEnable\":false,\"skipExpression\":\"\",\"taskAssignListener\":{\"body\":[],\"enable\":false,\"header\":[],\"path\":null},\"taskCompleteListener\":{\"body\":[],\"enable\":false,\"header\":[],\"path\":null},\"taskCreateListener\":{\"body\":[],\"enable\":false,\"header\":[],\"path\":null},\"timeoutHandler\":{\"enable\":false,\"maxRemindCount\":null,\"timeDuration\":null,\"type\":null},\"type\":11},\"conditionSetting\":{\"conditionExpression\":null,\"conditionGroups\":null,\"conditionType\":null,\"defaultFlow\":true},\"id\":\"Flow__506655395221785290789379\",\"name\":\"å
¶å®æ
åµ\",\"showText\":\"æªæ»¡è¶³å
¶å®æ¡ä»¶æ¶ï¼å°è¿å
¥æ¤åæ¯\",\"type\":50}],\"id\":\"GateWay__872184957201785290789379\",\"name\":\"æ¡ä»¶åæ¯\",\"type\":51},\"fieldsPermission\":[{\"field\":\"ce674cb3f7604c5da893b347bf1ff855\",\"title\":\"é¨é¨éæ©å¨\",\"permission\":\"2\"},{\"field\":\"6ada8f47c5ad483ca7e2a15da2d922d1\",\"title\":\"ç¨æ·éæ©å¨\",\"permission\":\"2\"},{\"field\":\"Fn60mrbnvny3clc\",\"title\":\"æ¶é´åºé´\",\"permission\":\"2\"},{\"field\":\"F7a8mrbnxj65cuc\",\"title\":\"å¯ææ¬æ¡\",\"permission\":\"2\"}],\"id\":\"StartUserNode\",\"name\":\"å起人\",\"showText\":\"已设置\",\"type\":10}", |
| | | "visible": "\u0001", |
| | | "sort": 1783490232541, |
| | | "start_user_ids": "", |
| | | "start_dept_ids": "", |
| | | "manager_user_ids": "1", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0001", |
| | | "process_id_rule": "{\"infix\": \"\", \"enable\": false, \"length\": 5, \"prefix\": \"\", \"postfix\": \"\"}", |
| | | "auto_approval_type": 0, |
| | | "title_setting": "{\"title\": \"\", \"enable\": false}", |
| | | "summary_setting": "{\"enable\": false, \"summary\": []}", |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": "{\"enable\": false, \"template\": \"<p style=\\\"text-align: center;font-size: 1.25rem;\\\"><strong><span data-w-e-type=\\\"mention\\\" data-value=\\\"æµç¨åç§°\\\" data-info=\\\"%7B%22id%22%3A%22processName%22%7D\\\">@æµç¨åç§°</span></strong></p>\\n<p style=\\\"text-align: right;\\\">æå°äººåï¼<span data-w-e-type=\\\"mention\\\" data-info=\\\"%7B%22id%22%3A%22printUser%22%7D\\\">@æå°äºº</span></p>\\n<p style=\\\"text-align: left;\\\">æµç¨ç¼å·ï¼<span data-w-e-type=\\\"mention\\\" data-value=\\\"æµç¨ç¼å·\\\" data-info=\\\"%7B%22id%22%3A%22processNum%22%7D\\\">@æµç¨ç¼å·</span></p>\\n<p> </p>\\n<table style=\\\"width: 100%; height: 72.2159px;\\\">\\n<tbody>\\n<tr style=\\\"height: 36.108px;\\\">\\n<td style=\\\"width: 21.7532%; border: 1px solid;\\\" colspan=\\\"1\\\" rowspan=\\\"1\\\" width=\\\"auto\\\">å起人</td>\\n<td style=\\\"width: 30.5551%; border: 1px solid;\\\" colspan=\\\"1\\\" rowspan=\\\"1\\\" width=\\\"auto\\\"><span data-w-e-type=\\\"mention\\\" data-value=\\\"å起人\\\" data-info=\\\"%7B%22id%22%3A%22startUser%22%7D\\\">@å起人</span></td>\\n<td style=\\\"width: 21.7532%; border: 1px solid;\\\" colspan=\\\"1\\\" rowspan=\\\"1\\\" width=\\\"auto\\\">åèµ·æ¶é´</td>\\n<td style=\\\"width: 26.0284%; border: 1px solid;\\\" colspan=\\\"1\\\" rowspan=\\\"1\\\" width=\\\"auto\\\"><span data-w-e-type=\\\"mention\\\" data-value=\\\"åèµ·æ¶é´\\\" data-info=\\\"%7B%22id%22%3A%22startTime%22%7D\\\">@åèµ·æ¶é´</span></td>\\n</tr>\\n<tr style=\\\"height: 36.108px;\\\">\\n<td style=\\\"width: 21.7532%; border: 1px solid;\\\" colspan=\\\"1\\\" rowspan=\\\"1\\\" width=\\\"auto\\\">æå±é¨é¨</td>\\n<td style=\\\"width: 30.5551%; border: 1px solid;\\\" colspan=\\\"1\\\" rowspan=\\\"1\\\" width=\\\"auto\\\"><span data-w-e-type=\\\"mention\\\" data-w-e-is-void=\\\"\\\" data-w-e-is-inline=\\\"\\\" data-value=\\\"å起人é¨é¨\\\" data-info=\\\"%7B%22id%22%3A%22startUserDept%22%7D\\\">@å起人é¨é¨</span></td>\\n<td style=\\\"width: 21.7532%; border: 1px solid;\\\" colspan=\\\"1\\\" rowspan=\\\"1\\\" width=\\\"auto\\\">æµç¨ç¶æ</td>\\n<td style=\\\"width: 26.0284%; border: 1px solid;\\\" colspan=\\\"1\\\" rowspan=\\\"1\\\" width=\\\"auto\\\"><span data-w-e-type=\\\"mention\\\" data-value=\\\"æµç¨ç¶æ\\\" data-info=\\\"%7B%22id%22%3A%22processStatus%22%7D\\\">@æµç¨ç¶æ</span></td>\\n</tr>\\n</tbody>\\n</table>\\n<p> </p>\\n<div contenteditable=\\\"false\\\" data-w-e-type=\\\"process-record\\\" data-w-e-is-void=\\\"\\\">\\n<table class=\\\"process-record-table\\\" style=\\\"width: 100%; border-collapse: collapse; border: 1px solid;\\\">\\n<tr>\\n\\t<td style=\\\"width: 100%; border: 1px solid; text-align: center;\\\" colspan=\\\"2\\\">æµç¨è®°å½</td>\\n</tr>\\n<tr>\\n\\t<td style=\\\"width: 25%; border: 1px solid;\\\">èç¹</td>\\n\\t<td style=\\\"width: 75%; border: 1px solid;\\\">æä½</td>\\n</tr>\\n</table>\\n</div>\\n<p> </p>\"}", |
| | | "creator": "234", |
| | | "create_time": "2026-09-25T03:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-09-25T06:02:00", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 15, |
| | | "process_definition_id": "crm-receivable-audit:1:7215184e-948c-11f1-9271-1ab6da3745b7", |
| | | "model_id": "23afd50c-8c89-11f1-8a27-00155dad6485", |
| | | "model_type": 10, |
| | | "category": "1111", |
| | | "icon": null, |
| | | "description": "", |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": "{\"form\":{\"layout\":\"horizontal\",\"labelAlign\":\"right\",\"size\":\"middle\",\"colon\":false,\"labelCol\":{\"style\":{\"width\":\"125px\"}},\"wrapperCol\":{\"span\":24},\"labelWidth\":\"100px\"},\"resetBtn\":{\"show\":false,\"innerText\":\"éç½®\"},\"submitBtn\":{\"show\":true,\"innerText\":\"æäº¤\"}}", |
| | | "form_fields": "[\"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fyqymqqdoln2abc\\\",\\\"title\\\":\\\"å§å\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_Fuplmqqdoln2acc\\\",\\\"name\\\":\\\"ref_F18omqqdoln2adc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fh6gmqqdooy5aec\\\",\\\"title\\\":\\\"å¹´é¾\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_F5whmqqdooy5afc\\\",\\\"name\\\":\\\"ref_Fltemqqdooy5agc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"select\\\",\\\"field\\\":\\\"F5mrmqqdutnnabc\\\",\\\"title\\\":\\\"éæ©å¨\\\",\\\"info\\\":\\\"\\\",\\\"effect\\\":{\\\"fetch\\\":\\\"\\\"},\\\"$required\\\":false,\\\"options\\\":[{\\\"label\\\":\\\"é项01\\\",\\\"value\\\":\\\"1\\\"},{\\\"label\\\":\\\"é项02\\\",\\\"value\\\":\\\"2\\\"},{\\\"label\\\":\\\"é项03\\\",\\\"value\\\":\\\"3\\\"}],\\\"_fc_id\\\":\\\"id_Fhnumqqdutnoacc\\\",\\\"name\\\":\\\"ref_Fd1wmqqdutnoadc\\\",\\\"_fc_drag_tag\\\":\\\"select\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"ApiSelect\\\",\\\"field\\\":\\\"dc4b501620bb4c8184aaaeb66398324a\\\",\\\"title\\\":\\\"æ¥å£éæ©å¨\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"props\\\":{\\\"method\\\":\\\"GET\\\"},\\\"_fc_id\\\":\\\"id_F6ewmrbn96xdc3c\\\",\\\"name\\\":\\\"ref_F1jomrbn96xdc4c\\\",\\\"display\\\":true,\\\"hidden\\\":false,\\\"_fc_drag_tag\\\":\\\"ApiSelect\\\"}\"]", |
| | | "form_custom_create_path": "", |
| | | "form_custom_view_path": "", |
| | | "simple_model": null, |
| | | "visible": "\u0001", |
| | | "sort": 1785465606228, |
| | | "start_user_ids": "", |
| | | "start_dept_ids": "", |
| | | "manager_user_ids": "1", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0000", |
| | | "process_id_rule": "{\"infix\": \"\", \"enable\": false, \"length\": 5, \"prefix\": \"\", \"postfix\": \"\"}", |
| | | "auto_approval_type": 0, |
| | | "title_setting": "{\"title\": \"\", \"enable\": false}", |
| | | "summary_setting": "{\"enable\": false, \"summary\": []}", |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": "{\"enable\": false, \"template\": \"\"}", |
| | | "creator": "234", |
| | | "create_time": "2026-09-27T08:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-09-27T11:15:00", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 16, |
| | | "process_definition_id": "crm-invoice-audit:1:c101d3e0-0001-11f2-8a27-00155dad6485", |
| | | "model_id": "c101d3e2-0001-11f2-8a27-00155dad6485", |
| | | "model_type": 10, |
| | | "category": "crm_invoice_approve", |
| | | "icon": null, |
| | | "description": null, |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": "{\"form\":{\"layout\":\"horizontal\",\"labelAlign\":\"right\",\"size\":\"middle\",\"colon\":false,\"labelCol\":{\"style\":{\"width\":\"125px\"}},\"wrapperCol\":{\"span\":24},\"labelWidth\":\"100px\"},\"resetBtn\":{\"show\":false,\"innerText\":\"éç½®\"},\"submitBtn\":{\"show\":true,\"innerText\":\"æäº¤\"}}", |
| | | "form_fields": "[\"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fyqymqqdoln2abc\\\",\\\"title\\\":\\\"å§å\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_Fuplmqqdoln2acc\\\",\\\"name\\\":\\\"ref_F18omqqdoln2adc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fh6gmqqdooy5aec\\\",\\\"title\\\":\\\"å¹´é¾\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_F5whmqqdooy5afc\\\",\\\"name\\\":\\\"ref_Fltemqqdooy5agc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"select\\\",\\\"field\\\":\\\"F5mrmqqdutnnabc\\\",\\\"title\\\":\\\"éæ©å¨\\\",\\\"info\\\":\\\"\\\",\\\"effect\\\":{\\\"fetch\\\":\\\"\\\"},\\\"$required\\\":false,\\\"options\\\":[{\\\"label\\\":\\\"é项01\\\",\\\"value\\\":\\\"1\\\"},{\\\"label\\\":\\\"é项02\\\",\\\"value\\\":\\\"2\\\"},{\\\"label\\\":\\\"é项03\\\",\\\"value\\\":\\\"3\\\"}],\\\"_fc_id\\\":\\\"id_Fhnumqqdutnoacc\\\",\\\"name\\\":\\\"ref_Fd1wmqqdutnoadc\\\",\\\"_fc_drag_tag\\\":\\\"select\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"ApiSelect\\\",\\\"field\\\":\\\"dc4b501620bb4c8184aaaeb66398324a\\\",\\\"title\\\":\\\"æ¥å£éæ©å¨\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"props\\\":{\\\"method\\\":\\\"GET\\\"},\\\"_fc_id\\\":\\\"id_F6ewmrbn96xdc3c\\\",\\\"name\\\":\\\"ref_F1jomrbn96xdc4c\\\",\\\"display\\\":true,\\\"hidden\\\":false,\\\"_fc_drag_tag\\\":\\\"ApiSelect\\\"}\"]", |
| | | "form_custom_create_path": null, |
| | | "form_custom_view_path": null, |
| | | "simple_model": null, |
| | | "visible": "\u0001", |
| | | "sort": 1785465606228, |
| | | "start_user_ids": null, |
| | | "start_dept_ids": null, |
| | | "manager_user_ids": "1", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0001", |
| | | "process_id_rule": null, |
| | | "auto_approval_type": null, |
| | | "title_setting": null, |
| | | "summary_setting": null, |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": null, |
| | | "creator": "234", |
| | | "create_time": "2026-09-29T13:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-09-29T16:28:00", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 17, |
| | | "process_definition_id": "erp-purchase-invoice-audit:1:0b7c7557949111f192711ab6da3745b7", |
| | | "model_id": "0b7c7577949111f192711ab6da3745b7", |
| | | "model_type": 10, |
| | | "category": "erp_purchase_invoice_approve", |
| | | "icon": null, |
| | | "description": null, |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": "{\"form\":{\"layout\":\"horizontal\",\"labelAlign\":\"right\",\"size\":\"middle\",\"colon\":false,\"labelCol\":{\"style\":{\"width\":\"125px\"}},\"wrapperCol\":{\"span\":24},\"labelWidth\":\"100px\"},\"resetBtn\":{\"show\":false,\"innerText\":\"éç½®\"},\"submitBtn\":{\"show\":true,\"innerText\":\"æäº¤\"}}", |
| | | "form_fields": "[\"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fyqymqqdoln2abc\\\",\\\"title\\\":\\\"å§å\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_Fuplmqqdoln2acc\\\",\\\"name\\\":\\\"ref_F18omqqdoln2adc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fh6gmqqdooy5aec\\\",\\\"title\\\":\\\"å¹´é¾\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_F5whmqqdooy5afc\\\",\\\"name\\\":\\\"ref_Fltemqqdooy5agc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"select\\\",\\\"field\\\":\\\"F5mrmqqdutnnabc\\\",\\\"title\\\":\\\"éæ©å¨\\\",\\\"info\\\":\\\"\\\",\\\"effect\\\":{\\\"fetch\\\":\\\"\\\"},\\\"$required\\\":false,\\\"options\\\":[{\\\"label\\\":\\\"é项01\\\",\\\"value\\\":\\\"1\\\"},{\\\"label\\\":\\\"é项02\\\",\\\"value\\\":\\\"2\\\"},{\\\"label\\\":\\\"é项03\\\",\\\"value\\\":\\\"3\\\"}],\\\"_fc_id\\\":\\\"id_Fhnumqqdutnoacc\\\",\\\"name\\\":\\\"ref_Fd1wmqqdutnoadc\\\",\\\"_fc_drag_tag\\\":\\\"select\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"ApiSelect\\\",\\\"field\\\":\\\"dc4b501620bb4c8184aaaeb66398324a\\\",\\\"title\\\":\\\"æ¥å£éæ©å¨\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"props\\\":{\\\"method\\\":\\\"GET\\\"},\\\"_fc_id\\\":\\\"id_F6ewmrbn96xdc3c\\\",\\\"name\\\":\\\"ref_F1jomrbn96xdc4c\\\",\\\"display\\\":true,\\\"hidden\\\":false,\\\"_fc_drag_tag\\\":\\\"ApiSelect\\\"}\"]", |
| | | "form_custom_create_path": null, |
| | | "form_custom_view_path": null, |
| | | "simple_model": null, |
| | | "visible": "\u0001", |
| | | "sort": 1785465606228, |
| | | "start_user_ids": null, |
| | | "start_dept_ids": null, |
| | | "manager_user_ids": "1", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0001", |
| | | "process_id_rule": null, |
| | | "auto_approval_type": null, |
| | | "title_setting": null, |
| | | "summary_setting": null, |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": null, |
| | | "creator": "234", |
| | | "create_time": "2026-10-01T18:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-10-01T21:41:00", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 18, |
| | | "process_definition_id": "erp-finance-payment-audit:1:f1a1b2c3d4e5465f8a9b0c1d2e3f4a5b", |
| | | "model_id": "f1a1b2c3d4e5465f8a9b0c1d2e3f4a5c", |
| | | "model_type": 10, |
| | | "category": "erp_finance_payment_approve", |
| | | "icon": null, |
| | | "description": null, |
| | | "form_type": 10, |
| | | "form_id": null, |
| | | "form_conf": null, |
| | | "form_fields": "[]", |
| | | "form_custom_create_path": null, |
| | | "form_custom_view_path": null, |
| | | "simple_model": null, |
| | | "visible": "\u0001", |
| | | "sort": 1785465606228, |
| | | "start_user_ids": null, |
| | | "start_dept_ids": null, |
| | | "manager_user_ids": null, |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0001", |
| | | "process_id_rule": null, |
| | | "auto_approval_type": null, |
| | | "title_setting": null, |
| | | "summary_setting": null, |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": null, |
| | | "creator": "234", |
| | | "create_time": "2026-10-03T23:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-10-23T12:05:02", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 19, |
| | | "process_definition_id": "mes-pd-project-audit:1:ce99813cfeb29f270355dd39f8ef74f2", |
| | | "model_id": "44318b176050e94d2c4a86595763dde8", |
| | | "model_type": 10, |
| | | "category": "mes_pd_project_approve", |
| | | "icon": null, |
| | | "description": null, |
| | | "form_type": 10, |
| | | "form_id": null, |
| | | "form_conf": null, |
| | | "form_fields": "[]", |
| | | "form_custom_create_path": null, |
| | | "form_custom_view_path": null, |
| | | "simple_model": null, |
| | | "visible": "\u0001", |
| | | "sort": 1786608755902, |
| | | "start_user_ids": null, |
| | | "start_dept_ids": null, |
| | | "manager_user_ids": null, |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0001", |
| | | "process_id_rule": null, |
| | | "auto_approval_type": null, |
| | | "title_setting": null, |
| | | "summary_setting": null, |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": null, |
| | | "creator": "234", |
| | | "create_time": "2026-10-06T04:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-10-23T12:05:02", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 20, |
| | | "process_definition_id": "purchase_plan_approve:1:pp-proc-20260818", |
| | | "model_id": "pp-model-20260818", |
| | | "model_type": 20, |
| | | "category": "purchase_plan_approve", |
| | | "icon": null, |
| | | "description": "", |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": null, |
| | | "form_fields": "[]", |
| | | "form_custom_create_path": "", |
| | | "form_custom_view_path": "", |
| | | "simple_model": null, |
| | | "visible": "\u0001", |
| | | "sort": 1780000000000, |
| | | "start_user_ids": "", |
| | | "start_dept_ids": "", |
| | | "manager_user_ids": "", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0000", |
| | | "process_id_rule": "{\"infix\": \"\", \"enable\": false, \"length\": 5, \"prefix\": \"\", \"postfix\": \"\"}", |
| | | "auto_approval_type": 0, |
| | | "title_setting": "{\"title\": \"\", \"enable\": false}", |
| | | "summary_setting": "{\"enable\": false, \"summary\": []}", |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": "{\"enable\": false, \"template\": \"\"}", |
| | | "creator": "234", |
| | | "create_time": "2026-10-08T09:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-10-23T12:05:02", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 21, |
| | | "process_definition_id": "refund_approve:1:refund-proc-20260820", |
| | | "model_id": "refund-model-20260820", |
| | | "model_type": 20, |
| | | "category": "refund_approve", |
| | | "icon": null, |
| | | "description": "", |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": null, |
| | | "form_fields": "[]", |
| | | "form_custom_create_path": "", |
| | | "form_custom_view_path": "", |
| | | "simple_model": null, |
| | | "visible": "\u0001", |
| | | "sort": 1781000000000, |
| | | "start_user_ids": "", |
| | | "start_dept_ids": "", |
| | | "manager_user_ids": "", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0000", |
| | | "process_id_rule": "{\"infix\": \"\", \"enable\": false, \"length\": 5, \"prefix\": \"\", \"postfix\": \"\"}", |
| | | "auto_approval_type": 0, |
| | | "title_setting": "{\"title\": \"\", \"enable\": false}", |
| | | "summary_setting": "{\"enable\": false, \"summary\": []}", |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": "{\"enable\": false, \"template\": \"\"}", |
| | | "creator": "234", |
| | | "create_time": "2026-10-10T14:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-10-23T12:05:02", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 22, |
| | | "process_definition_id": "cancellation_approve:1:cancellation-proc-20260820", |
| | | "model_id": "cancellation-model-20260820", |
| | | "model_type": 20, |
| | | "category": "cancellation_approve", |
| | | "icon": null, |
| | | "description": "", |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": null, |
| | | "form_fields": "[]", |
| | | "form_custom_create_path": "", |
| | | "form_custom_view_path": "", |
| | | "simple_model": null, |
| | | "visible": "\u0001", |
| | | "sort": 1782000000000, |
| | | "start_user_ids": "", |
| | | "start_dept_ids": "", |
| | | "manager_user_ids": "", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0000", |
| | | "process_id_rule": "{\"infix\": \"\", \"enable\": false, \"length\": 5, \"prefix\": \"\", \"postfix\": \"\"}", |
| | | "auto_approval_type": 0, |
| | | "title_setting": "{\"title\": \"\", \"enable\": false}", |
| | | "summary_setting": "{\"enable\": false, \"summary\": []}", |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": "{\"enable\": false, \"template\": \"\"}", |
| | | "creator": "234", |
| | | "create_time": "2026-09-18T15:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-10-23T12:05:02", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 23, |
| | | "process_definition_id": "performance_appraise_approve:1:performance-proc-20260820", |
| | | "model_id": "performance-model-20260820", |
| | | "model_type": 20, |
| | | "category": "performance_appraise_approve", |
| | | "icon": null, |
| | | "description": "", |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": null, |
| | | "form_fields": "[]", |
| | | "form_custom_create_path": "", |
| | | "form_custom_view_path": "", |
| | | "simple_model": null, |
| | | "visible": "\u0001", |
| | | "sort": 1783000000000, |
| | | "start_user_ids": "", |
| | | "start_dept_ids": "", |
| | | "manager_user_ids": "", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0000", |
| | | "process_id_rule": "{\"infix\": \"\", \"enable\": false, \"length\": 5, \"prefix\": \"\", \"postfix\": \"\"}", |
| | | "auto_approval_type": 0, |
| | | "title_setting": "{\"title\": \"\", \"enable\": false}", |
| | | "summary_setting": "{\"enable\": false, \"summary\": []}", |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": "{\"enable\": false, \"template\": \"\"}", |
| | | "creator": "234", |
| | | "create_time": "2026-09-20T20:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-10-23T12:05:02", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 24, |
| | | "process_definition_id": "compensation_approve:1:compensation-proc-20260820", |
| | | "model_id": "compensation-model-20260820", |
| | | "model_type": 20, |
| | | "category": "compensation_approve", |
| | | "icon": null, |
| | | "description": "", |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": null, |
| | | "form_fields": "[]", |
| | | "form_custom_create_path": "", |
| | | "form_custom_view_path": "", |
| | | "simple_model": null, |
| | | "visible": "\u0001", |
| | | "sort": 1784000000000, |
| | | "start_user_ids": "", |
| | | "start_dept_ids": "", |
| | | "manager_user_ids": "", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0000", |
| | | "process_id_rule": "{\"infix\": \"\", \"enable\": false, \"length\": 5, \"prefix\": \"\", \"postfix\": \"\"}", |
| | | "auto_approval_type": 0, |
| | | "title_setting": "{\"title\": \"\", \"enable\": false}", |
| | | "summary_setting": "{\"enable\": false, \"summary\": []}", |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": "{\"enable\": false, \"template\": \"\"}", |
| | | "creator": "234", |
| | | "create_time": "2026-09-23T01:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-10-23T12:05:02", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 25, |
| | | "process_definition_id": "misc_receipt_approve:1:10000000000000000000000000000001", |
| | | "model_id": "20000000000000000000000000000001", |
| | | "model_type": 10, |
| | | "category": "misc_receipt_approve", |
| | | "icon": null, |
| | | "description": null, |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": "{\"form\":{\"layout\":\"horizontal\",\"labelAlign\":\"right\",\"size\":\"middle\",\"colon\":false,\"labelCol\":{\"style\":{\"width\":\"125px\"}},\"wrapperCol\":{\"span\":24},\"labelWidth\":\"100px\"},\"resetBtn\":{\"show\":false,\"innerText\":\"éç½®\"},\"submitBtn\":{\"show\":true,\"innerText\":\"æäº¤\"}}", |
| | | "form_fields": "[]", |
| | | "form_custom_create_path": null, |
| | | "form_custom_view_path": null, |
| | | "simple_model": null, |
| | | "visible": "\u0001", |
| | | "sort": 1785465606001, |
| | | "start_user_ids": null, |
| | | "start_dept_ids": null, |
| | | "manager_user_ids": "1", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0001", |
| | | "process_id_rule": null, |
| | | "auto_approval_type": null, |
| | | "title_setting": null, |
| | | "summary_setting": null, |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": null, |
| | | "creator": "234", |
| | | "create_time": "2026-09-25T06:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-09-25T11:25:00", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 26, |
| | | "process_definition_id": "misc_issue_approve:1:10000000000000000000000000000002", |
| | | "model_id": "20000000000000000000000000000002", |
| | | "model_type": 10, |
| | | "category": "misc_issue_approve", |
| | | "icon": null, |
| | | "description": null, |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": "{\"form\":{\"layout\":\"horizontal\",\"labelAlign\":\"right\",\"size\":\"middle\",\"colon\":false,\"labelCol\":{\"style\":{\"width\":\"125px\"}},\"wrapperCol\":{\"span\":24},\"labelWidth\":\"100px\"},\"resetBtn\":{\"show\":false,\"innerText\":\"éç½®\"},\"submitBtn\":{\"show\":true,\"innerText\":\"æäº¤\"}}", |
| | | "form_fields": "[]", |
| | | "form_custom_create_path": null, |
| | | "form_custom_view_path": null, |
| | | "simple_model": null, |
| | | "visible": "\u0001", |
| | | "sort": 1785465606002, |
| | | "start_user_ids": null, |
| | | "start_dept_ids": null, |
| | | "manager_user_ids": "1", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0001", |
| | | "process_id_rule": null, |
| | | "auto_approval_type": null, |
| | | "title_setting": null, |
| | | "summary_setting": null, |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": null, |
| | | "creator": "234", |
| | | "create_time": "2026-09-27T11:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-09-27T16:38:00", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 27, |
| | | "process_definition_id": "return_vendor_approve:1:10000000000000000000000000000003", |
| | | "model_id": "20000000000000000000000000000003", |
| | | "model_type": 10, |
| | | "category": "return_vendor_approve", |
| | | "icon": null, |
| | | "description": null, |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": "{\"form\":{\"layout\":\"horizontal\",\"labelAlign\":\"right\",\"size\":\"middle\",\"colon\":false,\"labelCol\":{\"style\":{\"width\":\"125px\"}},\"wrapperCol\":{\"span\":24},\"labelWidth\":\"100px\"},\"resetBtn\":{\"show\":false,\"innerText\":\"éç½®\"},\"submitBtn\":{\"show\":true,\"innerText\":\"æäº¤\"}}", |
| | | "form_fields": "[]", |
| | | "form_custom_create_path": null, |
| | | "form_custom_view_path": null, |
| | | "simple_model": null, |
| | | "visible": "\u0001", |
| | | "sort": 1785465606003, |
| | | "start_user_ids": null, |
| | | "start_dept_ids": null, |
| | | "manager_user_ids": "1", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0001", |
| | | "process_id_rule": null, |
| | | "auto_approval_type": null, |
| | | "title_setting": null, |
| | | "summary_setting": null, |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": null, |
| | | "creator": "234", |
| | | "create_time": "2026-09-29T16:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-09-29T21:51:00", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 28, |
| | | "process_definition_id": "item_receipt_approve:1:10000000000000000000000000000004", |
| | | "model_id": "20000000000000000000000000000004", |
| | | "model_type": 10, |
| | | "category": "item_receipt_approve", |
| | | "icon": null, |
| | | "description": null, |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": "{\"form\":{\"layout\":\"horizontal\",\"labelAlign\":\"right\",\"size\":\"middle\",\"colon\":false,\"labelCol\":{\"style\":{\"width\":\"125px\"}},\"wrapperCol\":{\"span\":24},\"labelWidth\":\"100px\"},\"resetBtn\":{\"show\":false,\"innerText\":\"éç½®\"},\"submitBtn\":{\"show\":true,\"innerText\":\"æäº¤\"}}", |
| | | "form_fields": "[]", |
| | | "form_custom_create_path": null, |
| | | "form_custom_view_path": null, |
| | | "simple_model": null, |
| | | "visible": "\u0001", |
| | | "sort": 1785465606004, |
| | | "start_user_ids": null, |
| | | "start_dept_ids": null, |
| | | "manager_user_ids": "1", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0001", |
| | | "process_id_rule": null, |
| | | "auto_approval_type": null, |
| | | "title_setting": null, |
| | | "summary_setting": null, |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": null, |
| | | "creator": "234", |
| | | "create_time": "2026-10-01T21:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-10-01T21:04:00", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 29, |
| | | "process_definition_id": "stock_taking_result_approve:1:10000000000000000000000000000005", |
| | | "model_id": "20000000000000000000000000000005", |
| | | "model_type": 10, |
| | | "category": "stock_taking_result_approve", |
| | | "icon": null, |
| | | "description": null, |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": "{\"form\":{\"layout\":\"horizontal\",\"labelAlign\":\"right\",\"size\":\"middle\",\"colon\":false,\"labelCol\":{\"style\":{\"width\":\"125px\"}},\"wrapperCol\":{\"span\":24},\"labelWidth\":\"100px\"},\"resetBtn\":{\"show\":false,\"innerText\":\"éç½®\"},\"submitBtn\":{\"show\":true,\"innerText\":\"æäº¤\"}}", |
| | | "form_fields": "[]", |
| | | "form_custom_create_path": null, |
| | | "form_custom_view_path": null, |
| | | "simple_model": null, |
| | | "visible": "\u0001", |
| | | "sort": 1785465606005, |
| | | "start_user_ids": null, |
| | | "start_dept_ids": null, |
| | | "manager_user_ids": "1", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0001", |
| | | "process_id_rule": null, |
| | | "auto_approval_type": null, |
| | | "title_setting": null, |
| | | "summary_setting": null, |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": null, |
| | | "creator": "234", |
| | | "create_time": "2026-10-04T02:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-10-04T02:17:00", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 30, |
| | | "process_definition_id": "equipment_receipt_approve:1:10000000000000000000000000000006", |
| | | "model_id": "20000000000000000000000000000006", |
| | | "model_type": 10, |
| | | "category": "equipment_receipt_approve", |
| | | "icon": null, |
| | | "description": null, |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": "{\"form\":{\"layout\":\"horizontal\",\"labelAlign\":\"right\",\"size\":\"middle\",\"colon\":false,\"labelCol\":{\"style\":{\"width\":\"125px\"}},\"wrapperCol\":{\"span\":24},\"labelWidth\":\"100px\"},\"resetBtn\":{\"show\":false,\"innerText\":\"éç½®\"},\"submitBtn\":{\"show\":true,\"innerText\":\"æäº¤\"}}", |
| | | "form_fields": "[]", |
| | | "form_custom_create_path": null, |
| | | "form_custom_view_path": null, |
| | | "simple_model": null, |
| | | "visible": "\u0001", |
| | | "sort": 1785465606006, |
| | | "start_user_ids": null, |
| | | "start_dept_ids": null, |
| | | "manager_user_ids": "1", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0001", |
| | | "process_id_rule": null, |
| | | "auto_approval_type": null, |
| | | "title_setting": null, |
| | | "summary_setting": null, |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": null, |
| | | "creator": "234", |
| | | "create_time": "2026-10-06T07:00:00", |
| | | "updater": "234", |
| | | "update_time": "2026-10-06T07:30:00", |
| | | "deleted": "\u0000" |
| | | }, |
| | | { |
| | | "id": 31, |
| | | "process_definition_id": "caigoushenpi:2:78f4753f-cad4-11f1-979e-0242ac110005", |
| | | "model_id": "bc6f3048-74fc-11f1-9120-00155dd68500", |
| | | "model_type": 20, |
| | | "category": "purchase_request_approve", |
| | | "icon": null, |
| | | "description": "", |
| | | "form_type": 10, |
| | | "form_id": 1, |
| | | "form_conf": "{\"form\":{\"layout\":\"horizontal\",\"labelAlign\":\"right\",\"size\":\"middle\",\"colon\":false,\"labelCol\":{\"style\":{\"width\":\"125px\"}},\"wrapperCol\":{\"span\":24},\"labelWidth\":\"100px\"},\"resetBtn\":{\"show\":false,\"innerText\":\"éç½®\"},\"submitBtn\":{\"show\":true,\"innerText\":\"æäº¤\"}}", |
| | | "form_fields": "[\"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fyqymqqdoln2abc\\\",\\\"title\\\":\\\"å§å\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_Fuplmqqdoln2acc\\\",\\\"name\\\":\\\"ref_F18omqqdoln2adc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"input\\\",\\\"field\\\":\\\"Fh6gmqqdooy5aec\\\",\\\"title\\\":\\\"å¹´é¾\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"_fc_id\\\":\\\"id_F5whmqqdooy5afc\\\",\\\"name\\\":\\\"ref_Fltemqqdooy5agc\\\",\\\"_fc_drag_tag\\\":\\\"input\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"select\\\",\\\"field\\\":\\\"F5mrmqqdutnnabc\\\",\\\"title\\\":\\\"éæ©å¨\\\",\\\"info\\\":\\\"\\\",\\\"effect\\\":{\\\"fetch\\\":\\\"\\\"},\\\"$required\\\":false,\\\"options\\\":[{\\\"label\\\":\\\"é项01\\\",\\\"value\\\":\\\"1\\\"},{\\\"label\\\":\\\"é项02\\\",\\\"value\\\":\\\"2\\\"},{\\\"label\\\":\\\"é项03\\\",\\\"value\\\":\\\"3\\\"}],\\\"_fc_id\\\":\\\"id_Fhnumqqdutnoacc\\\",\\\"name\\\":\\\"ref_Fd1wmqqdutnoadc\\\",\\\"_fc_drag_tag\\\":\\\"select\\\",\\\"display\\\":true,\\\"hidden\\\":false}\", \"{\\\"type\\\":\\\"ApiSelect\\\",\\\"field\\\":\\\"dc4b501620bb4c8184aaaeb66398324a\\\",\\\"title\\\":\\\"æ¥å£éæ©å¨\\\",\\\"info\\\":\\\"\\\",\\\"$required\\\":false,\\\"props\\\":{\\\"method\\\":\\\"GET\\\"},\\\"_fc_id\\\":\\\"id_F6ewmrbn96xdc3c\\\",\\\"name\\\":\\\"ref_F1jomrbn96xdc4c\\\",\\\"display\\\":true,\\\"hidden\\\":false,\\\"_fc_drag_tag\\\":\\\"ApiSelect\\\"}\"]", |
| | | "form_custom_create_path": "", |
| | | "form_custom_view_path": "", |
| | | "simple_model": "{\"buttonsSetting\":[{\"displayName\":\"æäº¤\",\"enable\":true,\"id\":1},{\"displayName\":\"æç»\",\"enable\":false,\"id\":2},{\"displayName\":\"转å\",\"enable\":false,\"id\":3},{\"displayName\":\"å§æ´¾\",\"enable\":false,\"id\":4},{\"displayName\":\"å ç¾\",\"enable\":false,\"id\":5},{\"displayName\":\"éå\",\"enable\":false,\"id\":6}],\"childNode\":{\"id\":\"EndEvent\",\"name\":\"ç»æ\",\"type\":1},\"fieldsPermission\":[{\"field\":\"Fyqymqqdoln2abc\",\"title\":\"å§å\",\"permission\":\"2\"},{\"field\":\"Fh6gmqqdooy5aec\",\"title\":\"å¹´é¾\",\"permission\":\"2\"},{\"field\":\"F5mrmqqdutnnabc\",\"title\":\"éæ©å¨\",\"permission\":\"2\"}],\"id\":\"StartUserNode\",\"name\":\"å起人\",\"showText\":\"已设置\",\"type\":10}", |
| | | "visible": "\u0001", |
| | | "sort": 1782876426717, |
| | | "start_user_ids": "", |
| | | "start_dept_ids": "", |
| | | "manager_user_ids": "144,1", |
| | | "allow_cancel_running_process": "\u0001", |
| | | "allow_withdraw_task": "\u0000", |
| | | "process_id_rule": "{\"infix\": \"\", \"enable\": false, \"length\": 5, \"prefix\": \"\", \"postfix\": \"\"}", |
| | | "auto_approval_type": 0, |
| | | "title_setting": "{\"title\": \"\", \"enable\": false}", |
| | | "summary_setting": "{\"enable\": false, \"summary\": []}", |
| | | "process_before_trigger_setting": null, |
| | | "process_after_trigger_setting": null, |
| | | "task_before_trigger_setting": null, |
| | | "task_after_trigger_setting": null, |
| | | "print_template_setting": "{\"enable\": false, \"template\": \"\"}", |
| | | "creator": "1", |
| | | "create_time": "2026-10-18T17:15:34", |
| | | "updater": "1", |
| | | "update_time": "2026-10-18T17:15:34", |
| | | "deleted": "\u0000" |
| | | } |
| | | ] |
| | | } |
| | | ] |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | -- ============================================================ |
| | | -- BPM 审æ¹è¯¦æ
ãä¸å¡è¡¨åãæ å°é
ç½® |
| | | -- |
| | | -- ä½ç¨ï¼ |
| | | -- æµç¨è¯¦æ
页çã审æ¹è¯¦æ
ãåºåï¼å¨æµç¨ä¸ºãæµç¨è¡¨å(NORMAL)ãæ¶ï¼ |
| | | -- 伿 ¹æ® bpm_business_attach ä¸ç process_definition_key æ¾å°å¯¹åºç |
| | | -- ä¸å¡è¯¦æ
ç»ä»¶å¹¶æ¸²æï¼ä»èæ¾ç¤ºå®æ´åæ®ä¿¡æ¯ã |
| | | -- |
| | | -- 说æï¼ |
| | | -- 1. æ¬èæ¬ä¸ºå¹çèæ¬ï¼é夿§è¡ä¸ä¼äº§çé夿°æ®ã |
| | | -- 2. ä¸å
å« tenant_idï¼é¡¹ç®ä¸ä½¿ç¨å¤ç§æ·ï¼ã |
| | | -- 3. status = 0 表示å¯ç¨ï¼CommonStatusEnum.ENABLEï¼ã |
| | | -- ============================================================ |
| | | |
| | | -- 表ä¸å卿¶å建ï¼å¹çï¼ä¸ç ´åå·²ææ°æ®ï¼ |
| | | CREATE TABLE IF NOT EXISTS bpm_business_attach ( |
| | | id BIGINT NOT NULL AUTO_INCREMENT COMMENT 'ç¼å·', |
| | | process_definition_key VARCHAR(64) NOT NULL COMMENT 'æµç¨å®ä¹ç Key', |
| | | business_type VARCHAR(64) DEFAULT NULL COMMENT 'ä¸å¡ç±»å', |
| | | component_path VARCHAR(255) NOT NULL COMMENT 'ä¸å¡è¯¦æ
ç»ä»¶è·¯å¾', |
| | | status TINYINT NOT NULL DEFAULT 0 COMMENT 'ç¶æï¼0 å¼å¯ 1 å
³é', |
| | | remark VARCHAR(500) DEFAULT NULL COMMENT '夿³¨', |
| | | creator VARCHAR(64) DEFAULT '' COMMENT 'å建è
', |
| | | create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'å建æ¶é´', |
| | | updater VARCHAR(64) DEFAULT '' COMMENT 'æ´æ°è
', |
| | | update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ´æ°æ¶é´', |
| | | deleted BIT(1) NOT NULL DEFAULT b'0' COMMENT 'æ¯å¦å é¤', |
| | | PRIMARY KEY (id), |
| | | KEY idx_bpm_business_attach_key (process_definition_key) |
| | | ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = 'BPM ä¸å¡éä»¶é
ç½®'; |
| | | |
| | | INSERT INTO bpm_business_attach (process_definition_key, business_type, component_path, status, remark, creator, updater) |
| | | SELECT t.k, t.biz, t.path, 0, t.remark, '1', '1' |
| | | FROM ( |
| | | -- å·²æç»ä»¶ |
| | | SELECT 'contract_approve' AS k, 'crm_contract' AS biz, |
| | | '/crm/contract/detail/approve/index.vue' AS path, 'CRM åå审æ¹è¯¦æ
' AS remark |
| | | UNION ALL SELECT 'crm-invoice-audit', 'crm_invoice', |
| | | '/crm/invoice/detail/approve/index.vue', 'CRM å¼ç¥¨å®¡æ¹è¯¦æ
' |
| | | UNION ALL SELECT 'crm-receivable-audit', 'crm_receivable', |
| | | '/crm/receivable/detail/approve/index.vue', 'CRM 忬¾å®¡æ¹è¯¦æ
' |
| | | UNION ALL SELECT 'erp-finance-payment-audit', 'erp_finance_payment', |
| | | '/erp/finance/payment/detail/approve/index.vue', 'ERP 仿¬¾å审æ¹è¯¦æ
' |
| | | UNION ALL SELECT 'hrm_leave_approve', 'hrm_leave_application', |
| | | '/hrm/leave/detail/approve/index.vue', 'HRM 请å审æ¹è¯¦æ
' |
| | | UNION ALL SELECT 'hrm_resignation_approve', 'hrm_resignation_application', |
| | | '/hrm/resignation/detail/approve/index.vue', 'HRM 离è审æ¹è¯¦æ
' |
| | | UNION ALL SELECT 'hrm_transfer_approve', 'hrm_transfer_application', |
| | | '/hrm/transfer/detail/approve/index.vue', 'HRM è°å¨å®¡æ¹è¯¦æ
' |
| | | UNION ALL SELECT 'hrm_attendance_approve', 'hrm_attendance_exception', |
| | | '/hrm/attendance/exception/detail/approve/index.vue', 'HRM èå¤å¼å¸¸å®¡æ¹è¯¦æ
' |
| | | -- æ°å¢ç»ä»¶ |
| | | UNION ALL SELECT 'refund_approve', 'crm_refund', |
| | | '/crm/refund/detail/approve/index.vue', 'CRM é费审æ¹è¯¦æ
' |
| | | UNION ALL SELECT 'cancellation_approve', 'crm_cancellation', |
| | | '/crm/cancellation/detail/approve/index.vue', 'CRM 鿷审æ¹è¯¦æ
' |
| | | UNION ALL SELECT 'purchase_plan_approve', 'erp_purchase_plan', |
| | | '/erp/purchase/plan/detail/approve/index.vue', 'ERP éè´è®¡å审æ¹è¯¦æ
' |
| | | UNION ALL SELECT 'purchase_request_approve', 'erp_purchase_request', |
| | | '/erp/purchase/request/detail/approve/index.vue', 'ERP éè´ç³è¯·å®¡æ¹è¯¦æ
' |
| | | UNION ALL SELECT 'purchase_approve', 'erp_purchase_order', |
| | | '/erp/purchase/order/detail/approve/index.vue', 'ERP éè´è®¢å审æ¹è¯¦æ
' |
| | | UNION ALL SELECT 'hrm_regularize_approve', 'hrm_regularize_application', |
| | | '/hrm/regularize/detail/approve/index.vue', 'HRM 转æ£å®¡æ¹è¯¦æ
' |
| | | UNION ALL SELECT 'performance_appraise_approve', 'hrm_performance_appraise', |
| | | '/hrm/performance-appraise/detail/approve/index.vue', 'HRM 绩æèæ ¸å®¡æ¹è¯¦æ
' |
| | | UNION ALL SELECT 'mes-pd-project-audit', 'mes_pd_project', |
| | | '/mes/pd/project/detail/approve/index.vue', 'MES 设计项ç®å®¡æ¹è¯¦æ
' |
| | | UNION ALL SELECT 'pd_tech_confirm_approve', 'product_tech_confirm', |
| | | '/mes/pd/tech-confirm/detail/approve/index.vue', 'MES ææ¯ç¡®è®¤å½å®¡æ¹è¯¦æ
' |
| | | UNION ALL SELECT 'equipment_receipt_approve', 'mes_wm_equipment_receipt', |
| | | '/wls/equipmentreceipt/detail/approve/index.vue', 'MES 设å¤å
¥åºå®¡æ¹è¯¦æ
' |
| | | UNION ALL SELECT 'item_receipt_approve', 'mes_wm_item_receipt', |
| | | '/wls/itemreceipt/detail/approve/index.vue', 'MES éè´å
¥åºå®¡æ¹è¯¦æ
' |
| | | UNION ALL SELECT 'misc_issue_approve', 'mes_wm_misc_issue', |
| | | '/wls/miscissue/detail/approve/index.vue', 'MES æé¡¹åºåºå®¡æ¹è¯¦æ
' |
| | | UNION ALL SELECT 'misc_receipt_approve', 'mes_wm_misc_receipt', |
| | | '/wls/miscreceipt/detail/approve/index.vue', 'MES æé¡¹å
¥åºå®¡æ¹è¯¦æ
' |
| | | UNION ALL SELECT 'return_vendor_approve', 'mes_wm_return_vendor', |
| | | '/wls/returnvendor/detail/approve/index.vue', 'MES ä¾åºåé货审æ¹è¯¦æ
' |
| | | UNION ALL SELECT 'stock_taking_result_approve', 'mes_wm_stock_taking_task', |
| | | '/wls/stocktaking/task/detail/approve/index.vue', 'MES çç¹ç»æå®¡æ¹è¯¦æ
' |
| | | UNION ALL SELECT 'compensation_approve', 'after_sale_compensation', |
| | | '/aftersales/compensation/detail/approve/index.vue', 'å®åèµä»å®¡æ¹è¯¦æ
' |
| | | ) t |
| | | WHERE NOT EXISTS ( |
| | | SELECT 1 FROM bpm_business_attach a WHERE a.process_definition_key = t.k |
| | | ); |
| | | |
| | | -- å·²æé
ç½®è¥è¢«ç¦ç¨æè·¯å¾ä¸å¯¹ï¼ç»ä¸ä¿®æ£ä¸ºå¯ç¨ç¶æ |
| | | UPDATE bpm_business_attach |
| | | SET status = 0 |
| | | WHERE process_definition_key IN ( |
| | | 'contract_approve', 'crm-invoice-audit', 'crm-receivable-audit', |
| | | 'erp-finance-payment-audit', 'hrm_leave_approve', 'hrm_resignation_approve', |
| | | 'hrm_transfer_approve', 'hrm_attendance_approve', 'refund_approve', |
| | | 'cancellation_approve', 'purchase_plan_approve', 'purchase_request_approve', |
| | | 'purchase_approve', 'hrm_regularize_approve', 'performance_appraise_approve', |
| | | 'mes-pd-project-audit', 'pd_tech_confirm_approve', 'equipment_receipt_approve', |
| | | 'item_receipt_approve', 'misc_issue_approve', 'misc_receipt_approve', |
| | | 'return_vendor_approve', 'stock_taking_result_approve', 'compensation_approve' |
| | | ); |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | -- ============================================================ |
| | | -- åå²è½»é级审æ¹ã审æ¹ä¸ãåæ®è¿ç§»èæ¬ï¼å¯éæ§è¡ï¼ |
| | | -- |
| | | -- èæ¯ï¼ |
| | | -- è¿äºåæ®å¨æ§çã审æ¹é
ç½®ãè½»é级审æ¹ä¸å¤äºå®¡æ¹ä¸ç¶æï¼ |
| | | -- 使²¡æå¯¹åºç BPM æµç¨å®ä¾ï¼å æ¤ä¸ä¼åºç°å¨ãåååå
¬ â æçæµç¨ãã |
| | | -- å°ç¶æé置为è稿åï¼ç¨æ·å¯éæ°ç¹å»ãæäº¤å®¡æ¹ãï¼èµ°æ°ç BPM æµç¨ã |
| | | -- |
| | | -- 注æï¼ |
| | | -- 1. æ§è¡å请å
å¤ä»½ç¸å
³è¡¨ã |
| | | -- 2. æ¬èæ¬åªéç½®ç¶æä¸ºè稿ï¼ä¸å é¤ä»»ä½ä¸å¡æ°æ®ã |
| | | -- 3. 妿忮已ç»äººå·¥å¤ç宿¯ï¼è¯·ä¸è¦æ§è¡å¯¹åºè¯å¥ã |
| | | -- ============================================================ |
| | | |
| | | -- 请åç³è¯·ï¼å®¡æ¹ä¸(10) -> è稿(0) |
| | | UPDATE hrm_leave_application |
| | | SET status = 0 |
| | | WHERE status = 10; |
| | | |
| | | -- èå¤å¼å¸¸ï¼å®¡æ¹ä¸(10) -> è稿(0) |
| | | UPDATE hrm_attendance_exception |
| | | SET status = 0 |
| | | WHERE status = 10; |
| | | |
| | | -- è°å²ç³è¯·ï¼å®¡æ¹ä¸(10) -> è稿(0) |
| | | UPDATE hrm_transfer_application |
| | | SET status = 0 |
| | | WHERE status = 10; |
| | | |
| | | -- CRM éæ·ç³è¯·ï¼å®¡æ¹ä¸(10) -> æªæäº¤(0) |
| | | UPDATE crm_cancellation |
| | | SET audit_status = 0 |
| | | WHERE audit_status = 10; |
| | | |
| | | -- å®åèµä»åï¼å®¡æ¹ä¸(10) -> æªæäº¤(0) |
| | | UPDATE after_sale_compensation |
| | | SET audit_status = 0 |
| | | WHERE audit_status = 10; |
| | |
| | | <artifactId>yudao-module-infra</artifactId> |
| | | <version>${revision}</version> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>cn.iocoder.boot</groupId> |
| | | <artifactId>yudao-module-bpm</artifactId> |
| | | <version>${revision}</version> |
| | | </dependency> |
| | | |
| | | <!-- MDM ä¸»æ°æ®ç®¡ç API --> |
| | | <dependency> |
| | |
| | | .set(AfterSaleCompensationDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æåååèµä»åç¶æ |
| | | * |
| | | * ä»
å½èµä»åä»å¤äºã审æ¹ä¸ãæ¶æ´æ°ï¼é¿å
ä¸åæè½»é审æ¹è·¯å¾éå¤è¦çã |
| | | * |
| | | * @param id èµä»åç¼å· |
| | | * @param status ç®æ ç¶æï¼å®¡æ ¸éè¿ / å®¡æ ¸ä¸éè¿ / å·²åæ¶ï¼ |
| | | * @param reviewRemark å®¡æ¹æè§ |
| | | * @return å½±åè¡æ° |
| | | */ |
| | | default int updateAuditStatusByBpm(Long id, Integer status, String reviewRemark) { |
| | | return update(null, new LambdaUpdateWrapper<AfterSaleCompensationDO>() |
| | | .eq(AfterSaleCompensationDO::getId, id) |
| | | .eq(AfterSaleCompensationDO::getAuditStatus, |
| | | AfterSaleCompensationAuditStatusEnum.PROCESS.getStatus()) |
| | | .set(AfterSaleCompensationDO::getAuditStatus, status) |
| | | .set(AfterSaleCompensationDO::getReviewTime, LocalDateTime.now()) |
| | | .set(AfterSaleCompensationDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | default PageResult<AfterSaleCompensationDO> selectPage(AfterSaleCompensationPageReqVO reqVO) { |
| | | return selectPage(reqVO, new LambdaQueryWrapperX<AfterSaleCompensationDO>() |
| | | .likeIfPresent(AfterSaleCompensationDO::getCompensationNo, reqVO.getCompensationNo()) |
| | |
| | | */ |
| | | void auditCompensation(Long id, Boolean pass, String reviewRemark); |
| | | |
| | | /** |
| | | * æ ¹æ® BPM 审æ¹ç»æååèµä»å审æ¹ç¶æ |
| | | * |
| | | * ç± BPM æµç¨ç»æäºä»¶é©±å¨ï¼ä½¿èµä»å审æ¹ç»ä¸å¨ãåååå
¬ - æçæµç¨ã䏿µè½¬ã |
| | | * |
| | | * @param id èµä»åç¼å· |
| | | * @param bpmStatus BPM ä»»å¡ç¶æï¼è§ {@link cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum} |
| | | * @param reason å®¡æ¹æè§ |
| | | */ |
| | | void updateCompensationAuditStatus(Long id, Integer bpmStatus, String reason); |
| | | |
| | | } |
| | |
| | | import cn.iocoder.yudao.module.aftersales.dal.mysql.compensation.AfterSaleCompensationMapper; |
| | | import cn.iocoder.yudao.module.aftersales.enums.AfterSaleCompensationAuditStatusEnum; |
| | | import cn.iocoder.yudao.module.aftersales.enums.ErrorCodeConstants; |
| | | import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; |
| | | import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; |
| | | import cn.iocoder.yudao.module.system.api.approval.ApprovalConfigApi; |
| | | import cn.iocoder.yudao.module.system.api.user.AdminUserApi; |
| | | import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; |
| | |
| | | */ |
| | | private static final String COMPENSATION_APPROVE_BIZ_TYPE = "compensation_approve"; |
| | | |
| | | /** |
| | | * èµä»å审æ¹ç BPM æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String COMPENSATION_APPROVE_PROCESS_KEY = "compensation_approve"; |
| | | |
| | | @Resource |
| | | private AfterSaleCompensationMapper compensationMapper; |
| | | @Resource |
| | | private ApprovalConfigApi approvalConfigApi; |
| | | @Resource |
| | | private AdminUserApi adminUserApi; |
| | | @Resource |
| | | private BpmProcessInstanceApi bpmProcessInstanceApi; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | |
| | | AfterSaleCompensationAuditStatusEnum.PROCESS.getStatus()) != 1) { |
| | | throw exception(ErrorCodeConstants.COMPENSATION_SUBMIT_FAIL_NOT_EDITABLE); |
| | | } |
| | | |
| | | // 4. å建 BPM æµç¨å®ä¾ï¼ä½¿å®¡æ¹åºç°å¨ãåååå
¬ - æçæµç¨ã |
| | | bpmProcessInstanceApi.createProcessInstance(getLoginUserId(), |
| | | new BpmProcessInstanceCreateReqDTO() |
| | | .setProcessDefinitionKey(COMPENSATION_APPROVE_PROCESS_KEY) |
| | | .setBusinessKey(String.valueOf(id))); |
| | | } |
| | | |
| | | @Override |
| | |
| | | // æ¯ä»ç¶æï¼payStatusï¼å¾
åç»æ¥å
¥è´¢å¡æ¨¡åæ¶åèå¨ã |
| | | } |
| | | |
| | | @Override |
| | | public void updateCompensationAuditStatus(Long id, Integer bpmStatus, String reason) { |
| | | // BPM 审æ¹ç»ææ å°ä¸ºèµä»åå®¡æ ¸ç¶æï¼éè¿=20 / ä¸éè¿=30 / åæ¶=40 |
| | | Integer auditStatus; |
| | | if (BpmTaskStatusEnum.APPROVE.getStatus().equals(bpmStatus)) { |
| | | auditStatus = AfterSaleCompensationAuditStatusEnum.APPROVE.getStatus(); |
| | | } else if (BpmTaskStatusEnum.REJECT.getStatus().equals(bpmStatus)) { |
| | | auditStatus = AfterSaleCompensationAuditStatusEnum.REJECT.getStatus(); |
| | | } else if (BpmTaskStatusEnum.CANCEL.getStatus().equals(bpmStatus)) { |
| | | auditStatus = AfterSaleCompensationAuditStatusEnum.CANCEL.getStatus(); |
| | | } else { |
| | | return; |
| | | } |
| | | if (compensationMapper.updateAuditStatusByBpm(id, auditStatus, reason) != 1) { |
| | | log.warn("[updateCompensationAuditStatus] èµä»å({}) ä¸å¤äºå®¡æ¹ä¸ç¶æï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | } |
| | | } |
| | | |
| | | private AfterSaleCompensationDO validateCompensationExists(Long id) { |
| | | AfterSaleCompensationDO compensation = compensationMapper.selectById(id); |
| | | if (compensation == null) { |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.aftersales.service.compensation.listener; |
| | | |
| | | import cn.iocoder.yudao.module.aftersales.service.compensation.AfterSaleCompensationService; |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent; |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * å®åèµä»å审æ¹ç¶æçå¬å¨ |
| | | * |
| | | * çå¬ BPM 审æ¹ç»æï¼ååèµä»åå®¡æ ¸ç¶æï¼ä½¿èµä»å®¡æ¹ç»ä¸å¨ãåååå
¬ - æçæµç¨ã䏿µè½¬ã |
| | | */ |
| | | @Component |
| | | @Slf4j |
| | | public class AfterSaleCompensationStatusListener extends BpmProcessInstanceStatusEventListener { |
| | | |
| | | private static final String PROCESS_DEFINITION_KEY = "compensation_approve"; |
| | | |
| | | @Resource |
| | | private AfterSaleCompensationService compensationService; |
| | | |
| | | @Override |
| | | protected String getProcessDefinitionKey() { |
| | | return PROCESS_DEFINITION_KEY; |
| | | } |
| | | |
| | | @Override |
| | | protected void onEvent(BpmProcessInstanceStatusEvent event) { |
| | | Long compensationId; |
| | | try { |
| | | compensationId = Long.parseLong(event.getBusinessKey()); |
| | | } catch (NumberFormatException e) { |
| | | log.warn("[onEvent] businessKey({}) 䏿¯ææçèµä»åç¼å·", event.getBusinessKey()); |
| | | return; |
| | | } |
| | | log.info("[onEvent] æ¶å°èµä»å审æ¹äºä»¶ï¼compensationId={}, status={}", compensationId, event.getStatus()); |
| | | try { |
| | | compensationService.updateCompensationAuditStatus(compensationId, event.getStatus(), event.getReason()); |
| | | } catch (Exception e) { |
| | | log.error("[onEvent] ååèµä»å审æ¹ç¶æå¤±è´¥ï¼compensationId={}", compensationId, e); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | .set(CrmCancellationDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æåååéæ·ç³è¯·ç¶æ |
| | | * |
| | | * ä»
å½éæ·ç³è¯·ä»å¤äºã审æ¹ä¸ãæ¶æ´æ°ï¼é¿å
䏿§å®¡æ¹è·¯å¾éå¤è¦çã |
| | | * |
| | | * @param id éæ·ç³è¯·ç¼å· |
| | | * @param status ç®æ ç¶æï¼å®¡æ ¸éè¿ / å®¡æ ¸ä¸éè¿ / å·²åæ¶ï¼ |
| | | * @param reviewRemark å®¡æ ¸æè§ |
| | | * @return å½±åè¡æ° |
| | | */ |
| | | default int updateAuditStatusByBpm(Long id, Integer status, String reviewRemark) { |
| | | return update(null, new LambdaUpdateWrapper<CrmCancellationDO>() |
| | | .eq(CrmCancellationDO::getId, id) |
| | | .eq(CrmCancellationDO::getAuditStatus, CrmAuditStatusEnum.PROCESS.getStatus()) |
| | | .set(CrmCancellationDO::getAuditStatus, status) |
| | | .set(CrmCancellationDO::getReviewTime, LocalDateTime.now()) |
| | | .set(CrmCancellationDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | default List<CrmCancellationDO> selectList(CrmCancellationPageReqVO reqVO) { |
| | | return selectList(buildQuery(reqVO)); |
| | | } |
| | |
| | | .set(CrmContractDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æåååååç¶æ |
| | | * |
| | | * ä»
å½ååä»å¤äºã审æ¹ä¸ãæ¶æ´æ°ï¼é¿å
䏿§å®¡æ¹è·¯å¾éå¤è¦çã |
| | | */ |
| | | default int updateAuditStatusByBpm(Long id, Integer status, String reviewRemark) { |
| | | return update(null, new LambdaUpdateWrapper<CrmContractDO>() |
| | | .eq(CrmContractDO::getId, id) |
| | | .eq(CrmContractDO::getAuditStatus, CrmAuditStatusEnum.PROCESS.getStatus()) |
| | | .set(CrmContractDO::getAuditStatus, status) |
| | | .set(CrmContractDO::getReviewTime, LocalDateTime.now()) |
| | | .set(CrmContractDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | default PageResult<CrmContractDO> selectPageByCustomerId(CrmContractPageReqVO pageReqVO) { |
| | | return selectPage(pageReqVO, new LambdaQueryWrapperX<CrmContractDO>() |
| | | .eq(CrmContractDO::getCustomerId, pageReqVO.getCustomerId()) |
| | |
| | | .set(CrmInvoiceDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æåååå¼ç¥¨ç¶æ |
| | | * |
| | | * ä»
å½å¼ç¥¨ä»å¤äºã审æ¹ä¸ãæ¶æ´æ°ï¼é¿å
䏿§å®¡æ¹è·¯å¾éå¤è¦çã |
| | | * |
| | | * @param id å¼ç¥¨ç¼å· |
| | | * @param status ç®æ ç¶æï¼å®¡æ ¸éè¿ / å®¡æ ¸ä¸éè¿ / å·²åæ¶ï¼ |
| | | * @param reviewRemark å®¡æ ¸æè§ |
| | | * @return å½±åè¡æ° |
| | | */ |
| | | default int updateAuditStatusByBpm(Long id, Integer status, String reviewRemark) { |
| | | return update(null, new LambdaUpdateWrapper<CrmInvoiceDO>() |
| | | .eq(CrmInvoiceDO::getId, id) |
| | | .eq(CrmInvoiceDO::getAuditStatus, CrmAuditStatusEnum.PROCESS.getStatus()) |
| | | .set(CrmInvoiceDO::getAuditStatus, status) |
| | | .set(CrmInvoiceDO::getReviewTime, LocalDateTime.now()) |
| | | .set(CrmInvoiceDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | default PageResult<CrmInvoiceDO> selectPageByCustomerId(CrmInvoicePageReqVO reqVO) { |
| | | return selectPage(reqVO, new LambdaQueryWrapperX<CrmInvoiceDO>() |
| | | .eq(CrmInvoiceDO::getCustomerId, reqVO.getCustomerId()) // å¿
é¡»ä¼ é |
| | |
| | | .set(CrmRefundDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æåååéè´¹åç¶æ |
| | | * |
| | | * ä»
å½éè´¹åä»å¤äºã审æ¹ä¸ãæ¶æ´æ°ï¼é¿å
䏿§å®¡æ¹è·¯å¾éå¤è¦çã |
| | | * |
| | | * @param id éè´¹åç¼å· |
| | | * @param status ç®æ ç¶æï¼å®¡æ ¸éè¿ / å®¡æ ¸ä¸éè¿ / å·²åæ¶ï¼ |
| | | * @param reviewRemark å®¡æ ¸æè§ |
| | | * @return å½±åè¡æ° |
| | | */ |
| | | default int updateAuditStatusByBpm(Long id, Integer status, String reviewRemark) { |
| | | return update(null, new LambdaUpdateWrapper<CrmRefundDO>() |
| | | .eq(CrmRefundDO::getId, id) |
| | | .eq(CrmRefundDO::getAuditStatus, CrmAuditStatusEnum.PROCESS.getStatus()) |
| | | .set(CrmRefundDO::getAuditStatus, status) |
| | | .set(CrmRefundDO::getReviewTime, LocalDateTime.now()) |
| | | .set(CrmRefundDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | default List<CrmRefundDO> selectList(CrmRefundPageReqVO reqVO) { |
| | | return selectList(buildQuery(reqVO)); |
| | | } |
| | |
| | | */ |
| | | void auditCancellation(Long id, Boolean pass, String reviewRemark); |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æåååéæ·ç³è¯·å®¡æ ¸ç¶æ |
| | | * |
| | | * @param id éæ·ç³è¯·ç¼å· |
| | | * @param bpmStatus BPM ä»»å¡ç¶æï¼{@link cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum}ï¼ |
| | | * @param reason å®¡æ¹æè§ / ä¸éè¿åå |
| | | */ |
| | | void updateCancellationAuditStatus(Long id, Integer bpmStatus, String reason); |
| | | |
| | | } |
| | |
| | | import cn.iocoder.yudao.module.crm.dal.mysql.customer.CrmCustomerMapper; |
| | | import cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants; |
| | | import cn.iocoder.yudao.module.crm.enums.common.CrmAuditStatusEnum; |
| | | import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; |
| | | import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; |
| | | import cn.iocoder.yudao.module.system.api.approval.ApprovalConfigApi; |
| | | import cn.iocoder.yudao.module.system.api.user.AdminUserApi; |
| | | import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; |
| | |
| | | */ |
| | | private static final String CANCELLATION_APPROVE_BIZ_TYPE = "cancellation_approve"; |
| | | |
| | | /** |
| | | * CRM éæ·ç³è¯·å®¡æ¹ç BPM æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String CANCELLATION_APPROVE_PROCESS_KEY = "cancellation_approve"; |
| | | |
| | | @Resource |
| | | private CrmCancellationMapper cancellationMapper; |
| | | @Resource |
| | |
| | | private AdminUserApi adminUserApi; |
| | | @Resource |
| | | private ApprovalConfigApi approvalConfigApi; |
| | | @Resource |
| | | private BpmProcessInstanceApi bpmProcessInstanceApi; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | |
| | | if (cancellationMapper.submitAndResetAuditInfo(id, CrmAuditStatusEnum.PROCESS.getStatus()) != 1) { |
| | | throw exception(ErrorCodeConstants.CRM_CANCELLATION_SUBMIT_FAIL_NOT_EDITABLE); |
| | | } |
| | | |
| | | // 4. å建 BPM æµç¨å®ä¾ï¼ä½¿å®¡æ¹åºç°å¨ãåååå
¬ - æçæµç¨ã |
| | | bpmProcessInstanceApi.createProcessInstance(getLoginUserId(), |
| | | new BpmProcessInstanceCreateReqDTO() |
| | | .setProcessDefinitionKey(CANCELLATION_APPROVE_PROCESS_KEY) |
| | | .setBusinessKey(String.valueOf(id))); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateCancellationAuditStatus(Long id, Integer bpmStatus, String reason) { |
| | | // BPM 审æ¹ç»ææ å°ä¸ºéæ·ç³è¯·å®¡æ ¸ç¶æï¼éè¿=20 / ä¸éè¿=30 / åæ¶=40 |
| | | Integer auditStatus; |
| | | if (BpmTaskStatusEnum.APPROVE.getStatus().equals(bpmStatus)) { |
| | | auditStatus = CrmAuditStatusEnum.APPROVE.getStatus(); |
| | | } else if (BpmTaskStatusEnum.REJECT.getStatus().equals(bpmStatus)) { |
| | | auditStatus = CrmAuditStatusEnum.REJECT.getStatus(); |
| | | } else if (BpmTaskStatusEnum.CANCEL.getStatus().equals(bpmStatus)) { |
| | | auditStatus = CrmAuditStatusEnum.CANCEL.getStatus(); |
| | | } else { |
| | | return; |
| | | } |
| | | if (cancellationMapper.updateAuditStatusByBpm(id, auditStatus, reason) != 1) { |
| | | log.warn("[updateCancellationAuditStatus] éæ·ç³è¯·({}) ä¸å¤äºå®¡æ¹ä¸ç¶æï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | } |
| | | } |
| | | |
| | | private CrmCancellationDO validateCancellationExists(Long id) { |
| | | CrmCancellationDO cancellation = cancellationMapper.selectById(id); |
| | | if (cancellation == null) { |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.crm.service.cancellation.listener; |
| | | |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent; |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener; |
| | | import cn.iocoder.yudao.module.crm.service.cancellation.CrmCancellationService; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * CRM éæ·ç³è¯·å®¡æ¹ç¶æçå¬å¨ |
| | | * |
| | | * çå¬ BPM 审æ¹ç»æï¼ååéæ·ç³è¯·å®¡æ ¸ç¶æï¼ä½¿éæ·å®¡æ¹ç»ä¸å¨ãåååå
¬ - æçæµç¨ã䏿µè½¬ã |
| | | */ |
| | | @Component |
| | | @Slf4j |
| | | public class CrmCancellationStatusListener extends BpmProcessInstanceStatusEventListener { |
| | | |
| | | private static final String PROCESS_DEFINITION_KEY = "cancellation_approve"; |
| | | |
| | | @Resource |
| | | private CrmCancellationService cancellationService; |
| | | |
| | | @Override |
| | | protected String getProcessDefinitionKey() { |
| | | return PROCESS_DEFINITION_KEY; |
| | | } |
| | | |
| | | @Override |
| | | protected void onEvent(BpmProcessInstanceStatusEvent event) { |
| | | Long cancellationId; |
| | | try { |
| | | cancellationId = Long.parseLong(event.getBusinessKey()); |
| | | } catch (NumberFormatException e) { |
| | | log.warn("[onEvent] businessKey({}) 䏿¯ææçéæ·ç³è¯·ç¼å·", event.getBusinessKey()); |
| | | return; |
| | | } |
| | | log.info("[onEvent] æ¶å°éæ·ç³è¯·å®¡æ¹äºä»¶ï¼cancellationId={}, status={}", cancellationId, event.getStatus()); |
| | | try { |
| | | cancellationService.updateCancellationAuditStatus(cancellationId, event.getStatus(), event.getReason()); |
| | | } catch (Exception e) { |
| | | log.error("[onEvent] ååéæ·ç³è¯·å®¡æ¹ç¶æå¤±è´¥ï¼cancellationId={}", cancellationId, e); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | void auditContract(Long id, Boolean pass, String reviewRemark); |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æåååååå®¡æ ¸ç¶æ |
| | | * |
| | | * @param id ååç¼å· |
| | | * @param bpmStatus BPM 审æ¹ç»æï¼2=éè¿ / 3=ä¸éè¿ / 4=åæ¶ï¼ |
| | | * @param reason å®¡æ¹æè§ / åæ¶åå |
| | | */ |
| | | void updateContractAuditStatus(Long id, Integer bpmStatus, String reason); |
| | | |
| | | /** |
| | | * è·å¾åå |
| | | * |
| | | * @param id ç¼å· |
| | |
| | | import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionTransferReqBO; |
| | | import cn.iocoder.yudao.module.crm.service.quotation.CrmSaleQuotationService; |
| | | import cn.iocoder.yudao.module.crm.service.receivable.CrmReceivableService; |
| | | import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; |
| | | import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; |
| | | import cn.iocoder.yudao.module.erp.api.sale.ErpSaleOrderApi; |
| | | import cn.iocoder.yudao.module.erp.api.sale.dto.ErpSaleOrderCreateReqDTO; |
| | | import cn.iocoder.yudao.module.erp.api.sale.dto.ErpSaleOrderRespDTO; |
| | |
| | | */ |
| | | private static final String CONTRACT_APPROVE_BIZ_TYPE = "contract_approve"; |
| | | |
| | | /** |
| | | * CRM åå审æ¹ç BPM æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String CONTRACT_APPROVE_PROCESS_KEY = "contract_approve"; |
| | | |
| | | @Resource |
| | | private CrmContractMapper contractMapper; |
| | | @Resource |
| | |
| | | private AdminUserApi adminUserApi; |
| | | @Resource |
| | | private ApprovalConfigApi approvalConfigApi; |
| | | @Resource |
| | | private BpmProcessInstanceApi bpmProcessInstanceApi; |
| | | @Resource |
| | | private ErpSaleOrderApi saleOrderApi; |
| | | @Resource |
| | |
| | | throw exception(CONTRACT_SUBMIT_FAIL_NOT_EDITABLE); |
| | | } |
| | | |
| | | // 4. è®°å½æ¥å¿ |
| | | // 4. å建 BPM æµç¨å®ä¾ï¼ä½¿å®¡æ¹åºç°å¨ãåååå
¬ - æçæµç¨ã |
| | | bpmProcessInstanceApi.createProcessInstance(getLoginUserId(), |
| | | new BpmProcessInstanceCreateReqDTO() |
| | | .setProcessDefinitionKey(CONTRACT_APPROVE_PROCESS_KEY) |
| | | .setBusinessKey(String.valueOf(id))); |
| | | |
| | | // 5. è®°å½æ¥å¿ |
| | | LogRecordContext.putVariable("contractName", contract.getName()); |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateContractAuditStatus(Long id, Integer bpmStatus, String reason) { |
| | | // BPM 审æ¹ç»ææ å°ä¸ºååå®¡æ ¸ç¶æï¼éè¿=20 / ä¸éè¿=30 / åæ¶=40 |
| | | Integer auditStatus; |
| | | if (BpmTaskStatusEnum.APPROVE.getStatus().equals(bpmStatus)) { |
| | | auditStatus = CrmAuditStatusEnum.APPROVE.getStatus(); |
| | | } else if (BpmTaskStatusEnum.REJECT.getStatus().equals(bpmStatus)) { |
| | | auditStatus = CrmAuditStatusEnum.REJECT.getStatus(); |
| | | } else if (BpmTaskStatusEnum.CANCEL.getStatus().equals(bpmStatus)) { |
| | | auditStatus = CrmAuditStatusEnum.CANCEL.getStatus(); |
| | | } else { |
| | | return; |
| | | } |
| | | if (contractMapper.updateAuditStatusByBpm(id, auditStatus, reason) != 1) { |
| | | log.warn("[updateContractAuditStatus] åå({}) ä¸å¤äºå®¡æ¹ä¸ç¶æï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | } |
| | | } |
| | | |
| | | // ======================= æ¥è¯¢ç¸å
³ ======================= |
| | | |
| | | @Override |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.crm.service.contract.listener; |
| | | |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent; |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener; |
| | | import cn.iocoder.yudao.module.crm.service.contract.CrmContractService; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * CRM åå审æ¹ç¶æçå¬å¨ |
| | | * |
| | | * çå¬ BPM 审æ¹ç»æï¼ååååå®¡æ ¸ç¶æï¼ä½¿åå审æ¹ç»ä¸å¨ãåååå
¬ - æçæµç¨ã䏿µè½¬ã |
| | | */ |
| | | @Component |
| | | @Slf4j |
| | | public class CrmContractStatusListener extends BpmProcessInstanceStatusEventListener { |
| | | |
| | | private static final String PROCESS_DEFINITION_KEY = "contract_approve"; |
| | | |
| | | @Resource |
| | | private CrmContractService contractService; |
| | | |
| | | @Override |
| | | protected String getProcessDefinitionKey() { |
| | | return PROCESS_DEFINITION_KEY; |
| | | } |
| | | |
| | | @Override |
| | | protected void onEvent(BpmProcessInstanceStatusEvent event) { |
| | | Long contractId; |
| | | try { |
| | | contractId = Long.parseLong(event.getBusinessKey()); |
| | | } catch (NumberFormatException e) { |
| | | log.warn("[onEvent] businessKey({}) 䏿¯ææçååç¼å·", event.getBusinessKey()); |
| | | return; |
| | | } |
| | | log.info("[onEvent] æ¶å°åå审æ¹äºä»¶ï¼contractId={}, status={}", contractId, event.getStatus()); |
| | | try { |
| | | contractService.updateContractAuditStatus(contractId, event.getStatus(), event.getReason()); |
| | | } catch (Exception e) { |
| | | log.error("[onEvent] åååå审æ¹ç¶æå¤±è´¥ï¼contractId={}", contractId, e); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | void auditInvoice(Long id, Boolean pass, String reviewRemark); |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æåååå¼ç¥¨å®¡æ ¸ç¶æ |
| | | * |
| | | * @param id å¼ç¥¨ç¼å· |
| | | * @param bpmStatus BPM ä»»å¡ç¶æï¼{@link cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum}ï¼ |
| | | * @param reason å®¡æ¹æè§ / ä¸éè¿åå |
| | | */ |
| | | void updateInvoiceAuditStatus(Long id, Integer bpmStatus, String reason); |
| | | |
| | | /** |
| | | * è·å¾å¼ç¥¨ |
| | | * |
| | | * @param id ç¼å· |
| | |
| | | import cn.iocoder.yudao.module.crm.service.contract.CrmContractService; |
| | | import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService; |
| | | import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateReqBO; |
| | | import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; |
| | | import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; |
| | | import cn.iocoder.yudao.module.system.api.approval.ApprovalConfigApi; |
| | | import cn.iocoder.yudao.module.system.api.storage.StorageAttachmentApi; |
| | | import cn.iocoder.yudao.module.system.api.user.AdminUserApi; |
| | |
| | | private static final String INVOICE_APPROVE_BIZ_TYPE = "crm_invoice_approve"; |
| | | |
| | | /** |
| | | * CRM å¼ç¥¨å®¡æ¹ç BPM æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String INVOICE_APPROVE_PROCESS_KEY = "crm-invoice-audit"; |
| | | |
| | | /** |
| | | * å票éä»¶çä¸å¡è®°å½ç±»åï¼å¯¹åº {@link cn.iocoder.yudao.module.system.enums.storage.StorageRecordTypeEnum#CRM_INVOICE} |
| | | */ |
| | | private static final String INVOICE_RECORD_TYPE = "crm_invoice"; |
| | |
| | | private ApprovalConfigApi approvalConfigApi; |
| | | @Resource |
| | | private StorageAttachmentApi storageAttachmentApi; |
| | | @Resource |
| | | private BpmProcessInstanceApi bpmProcessInstanceApi; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | |
| | | throw exception(INVOICE_SUBMIT_FAIL_NOT_EDITABLE); |
| | | } |
| | | |
| | | // 5. è®°å½æ¥å¿ |
| | | // 5. å建 BPM æµç¨å®ä¾ï¼ä½¿å®¡æ¹åºç°å¨ãåååå
¬ - æçæµç¨ã |
| | | bpmProcessInstanceApi.createProcessInstance(getLoginUserId(), |
| | | new BpmProcessInstanceCreateReqDTO() |
| | | .setProcessDefinitionKey(INVOICE_APPROVE_PROCESS_KEY) |
| | | .setBusinessKey(String.valueOf(id))); |
| | | |
| | | // 6. è®°å½æ¥å¿ |
| | | LogRecordContext.putVariable("invoiceNo", invoice.getNo()); |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateInvoiceAuditStatus(Long id, Integer bpmStatus, String reason) { |
| | | // BPM 审æ¹ç»ææ å°ä¸ºå¼ç¥¨å®¡æ ¸ç¶æï¼éè¿=20 / ä¸éè¿=30 / åæ¶=40 |
| | | Integer auditStatus; |
| | | if (BpmTaskStatusEnum.APPROVE.getStatus().equals(bpmStatus)) { |
| | | auditStatus = CrmAuditStatusEnum.APPROVE.getStatus(); |
| | | } else if (BpmTaskStatusEnum.REJECT.getStatus().equals(bpmStatus)) { |
| | | auditStatus = CrmAuditStatusEnum.REJECT.getStatus(); |
| | | } else if (BpmTaskStatusEnum.CANCEL.getStatus().equals(bpmStatus)) { |
| | | auditStatus = CrmAuditStatusEnum.CANCEL.getStatus(); |
| | | } else { |
| | | return; |
| | | } |
| | | if (invoiceMapper.updateAuditStatusByBpm(id, auditStatus, reason) != 1) { |
| | | log.warn("[updateInvoiceAuditStatus] å¼ç¥¨({}) ä¸å¤äºå®¡æ¹ä¸ç¶æï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * è·åç¨æ·æµç§° |
| | | * |
| | | * @param userId ç¨æ·ç¼å· |
| | | * @return æµç§°ï¼ç¨æ·ä¸å卿¶è¿å null |
| | | */ |
| | | private String getUserNickname(Long userId) { |
| | | if (userId == null) { |
| | | private String getUserNickname(Long userId) { if (userId == null) { |
| | | return null; |
| | | } |
| | | AdminUserRespDTO user = adminUserApi.getUser(userId); |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.crm.service.invoice.listener; |
| | | |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent; |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener; |
| | | import cn.iocoder.yudao.module.crm.service.invoice.CrmInvoiceService; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * CRM å¼ç¥¨å®¡æ¹ç¶æçå¬å¨ |
| | | * |
| | | * çå¬ BPM 审æ¹ç»æï¼ååå¼ç¥¨å®¡æ ¸ç¶æï¼ä½¿å¼ç¥¨å®¡æ¹ç»ä¸å¨ãåååå
¬ - æçæµç¨ã䏿µè½¬ã |
| | | */ |
| | | @Component |
| | | @Slf4j |
| | | public class CrmInvoiceStatusListener extends BpmProcessInstanceStatusEventListener { |
| | | |
| | | private static final String PROCESS_DEFINITION_KEY = "crm-invoice-audit"; |
| | | |
| | | @Resource |
| | | private CrmInvoiceService invoiceService; |
| | | |
| | | @Override |
| | | protected String getProcessDefinitionKey() { |
| | | return PROCESS_DEFINITION_KEY; |
| | | } |
| | | |
| | | @Override |
| | | protected void onEvent(BpmProcessInstanceStatusEvent event) { |
| | | Long invoiceId; |
| | | try { |
| | | invoiceId = Long.parseLong(event.getBusinessKey()); |
| | | } catch (NumberFormatException e) { |
| | | log.warn("[onEvent] businessKey({}) 䏿¯ææçå¼ç¥¨ç¼å·", event.getBusinessKey()); |
| | | return; |
| | | } |
| | | log.info("[onEvent] æ¶å°å¼ç¥¨å®¡æ¹äºä»¶ï¼invoiceId={}, status={}", invoiceId, event.getStatus()); |
| | | try { |
| | | invoiceService.updateInvoiceAuditStatus(invoiceId, event.getStatus(), event.getReason()); |
| | | } catch (Exception e) { |
| | | log.error("[onEvent] ååå¼ç¥¨å®¡æ¹ç¶æå¤±è´¥ï¼invoiceId={}", invoiceId, e); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | */ |
| | | void auditRefund(Long id, Boolean pass, String reviewRemark); |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æåååéè´¹åå®¡æ ¸ç¶æ |
| | | * |
| | | * @param id éè´¹åç¼å· |
| | | * @param bpmStatus BPM ä»»å¡ç¶æï¼{@link cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum}ï¼ |
| | | * @param reason å®¡æ¹æè§ / ä¸éè¿åå |
| | | */ |
| | | void updateRefundAuditStatus(Long id, Integer bpmStatus, String reason); |
| | | |
| | | } |
| | |
| | | import cn.iocoder.yudao.module.crm.dal.mysql.refund.CrmRefundMapper; |
| | | import cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants; |
| | | import cn.iocoder.yudao.module.crm.enums.common.CrmAuditStatusEnum; |
| | | import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; |
| | | import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; |
| | | import cn.iocoder.yudao.module.system.api.approval.ApprovalConfigApi; |
| | | import cn.iocoder.yudao.module.system.api.user.AdminUserApi; |
| | | import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; |
| | |
| | | */ |
| | | private static final String REFUND_APPROVE_BIZ_TYPE = "refund_approve"; |
| | | |
| | | /** |
| | | * CRM éè´¹å审æ¹ç BPM æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String REFUND_APPROVE_PROCESS_KEY = "refund_approve"; |
| | | |
| | | @Resource |
| | | private CrmRefundMapper refundMapper; |
| | | @Resource |
| | |
| | | private AdminUserApi adminUserApi; |
| | | @Resource |
| | | private ApprovalConfigApi approvalConfigApi; |
| | | @Resource |
| | | private BpmProcessInstanceApi bpmProcessInstanceApi; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | |
| | | if (refundMapper.submitAndResetAuditInfo(id, CrmAuditStatusEnum.PROCESS.getStatus()) != 1) { |
| | | throw exception(ErrorCodeConstants.CRM_REFUND_SUBMIT_FAIL_NOT_EDITABLE); |
| | | } |
| | | |
| | | // 4. å建 BPM æµç¨å®ä¾ï¼ä½¿å®¡æ¹åºç°å¨ãåååå
¬ - æçæµç¨ã |
| | | bpmProcessInstanceApi.createProcessInstance(getLoginUserId(), |
| | | new BpmProcessInstanceCreateReqDTO() |
| | | .setProcessDefinitionKey(REFUND_APPROVE_PROCESS_KEY) |
| | | .setBusinessKey(String.valueOf(id))); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateRefundAuditStatus(Long id, Integer bpmStatus, String reason) { |
| | | // BPM 审æ¹ç»ææ å°ä¸ºéè´¹åå®¡æ ¸ç¶æï¼éè¿=20 / ä¸éè¿=30 / åæ¶=40 |
| | | Integer auditStatus; |
| | | if (BpmTaskStatusEnum.APPROVE.getStatus().equals(bpmStatus)) { |
| | | auditStatus = CrmAuditStatusEnum.APPROVE.getStatus(); |
| | | } else if (BpmTaskStatusEnum.REJECT.getStatus().equals(bpmStatus)) { |
| | | auditStatus = CrmAuditStatusEnum.REJECT.getStatus(); |
| | | } else if (BpmTaskStatusEnum.CANCEL.getStatus().equals(bpmStatus)) { |
| | | auditStatus = CrmAuditStatusEnum.CANCEL.getStatus(); |
| | | } else { |
| | | return; |
| | | } |
| | | if (refundMapper.updateAuditStatusByBpm(id, auditStatus, reason) != 1) { |
| | | log.warn("[updateRefundAuditStatus] éè´¹å({}) ä¸å¤äºå®¡æ¹ä¸ç¶æï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | } |
| | | } |
| | | |
| | | private CrmRefundDO validateRefundExists(Long id) { |
| | | CrmRefundDO refund = refundMapper.selectById(id); |
| | | if (refund == null) { |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.crm.service.refund.listener; |
| | | |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent; |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener; |
| | | import cn.iocoder.yudao.module.crm.service.refund.CrmRefundService; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * CRM éè´¹å审æ¹ç¶æçå¬å¨ |
| | | * |
| | | * çå¬ BPM 审æ¹ç»æï¼ååéè´¹åå®¡æ ¸ç¶æï¼ä½¿é费审æ¹ç»ä¸å¨ãåååå
¬ - æçæµç¨ã䏿µè½¬ã |
| | | */ |
| | | @Component |
| | | @Slf4j |
| | | public class CrmRefundStatusListener extends BpmProcessInstanceStatusEventListener { |
| | | |
| | | private static final String PROCESS_DEFINITION_KEY = "refund_approve"; |
| | | |
| | | @Resource |
| | | private CrmRefundService refundService; |
| | | |
| | | @Override |
| | | protected String getProcessDefinitionKey() { |
| | | return PROCESS_DEFINITION_KEY; |
| | | } |
| | | |
| | | @Override |
| | | protected void onEvent(BpmProcessInstanceStatusEvent event) { |
| | | Long refundId; |
| | | try { |
| | | refundId = Long.parseLong(event.getBusinessKey()); |
| | | } catch (NumberFormatException e) { |
| | | log.warn("[onEvent] businessKey({}) 䏿¯ææçéè´¹åç¼å·", event.getBusinessKey()); |
| | | return; |
| | | } |
| | | log.info("[onEvent] æ¶å°éè´¹å审æ¹äºä»¶ï¼refundId={}, status={}", refundId, event.getStatus()); |
| | | try { |
| | | refundService.updateRefundAuditStatus(refundId, event.getStatus(), event.getReason()); |
| | | } catch (Exception e) { |
| | | log.error("[onEvent] ååéè´¹å审æ¹ç¶æå¤±è´¥ï¼refundId={}", refundId, e); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | .set(ErpFinancePaymentDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æååå仿¬¾åç¶æ |
| | | * |
| | | * ä»
å½ä»æ¬¾åä»å¤äºã审æ¹ä¸ãæ¶æ´æ°ï¼é¿å
䏿§å®¡æ¹è·¯å¾éå¤è¦çã |
| | | * |
| | | * @param id ç¼å· |
| | | * @param status ç®æ ç¶æï¼å·²å®¡æ ¸ / æªå®¡æ ¸ï¼ |
| | | * @param reviewRemark å®¡æ ¸æè§ |
| | | * @return å½±åè¡æ° |
| | | */ |
| | | default int updateAuditStatusByBpm(Long id, Integer status, String reviewRemark) { |
| | | return update(null, new LambdaUpdateWrapper<ErpFinancePaymentDO>() |
| | | .eq(ErpFinancePaymentDO::getId, id) |
| | | .eq(ErpFinancePaymentDO::getStatus, ErpAuditStatus.APPROVING.getStatus()) |
| | | .set(ErpFinancePaymentDO::getStatus, status) |
| | | .set(ErpFinancePaymentDO::getReviewTime, LocalDateTime.now()) |
| | | .set(ErpFinancePaymentDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | } |
| | |
| | | .set(ErpPurchaseOrderDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æåååéè´è®¢åç¶æ |
| | | * |
| | | * ä»
å½éè´è®¢åä»å¤äºã审æ¹ä¸ãæ¶æ´æ°ï¼é¿å
䏿§å®¡æ¹è·¯å¾éå¤è¦çã |
| | | * |
| | | * @param id ç¼å· |
| | | * @param status ç®æ ç¶æï¼å®¡æ ¸éè¿ / å®¡æ ¸ä¸éè¿ / å·²åæ¶ï¼ |
| | | * @param reviewRemark å®¡æ ¸æè§ |
| | | * @return å½±åè¡æ° |
| | | */ |
| | | default int updateAuditStatusByBpm(Long id, Integer status, String reviewRemark) { |
| | | return update(null, new LambdaUpdateWrapper<ErpPurchaseOrderDO>() |
| | | .eq(ErpPurchaseOrderDO::getId, id) |
| | | .eq(ErpPurchaseOrderDO::getStatus, ErpPurchaseOrderStatusEnum.PROCESS.getStatus()) |
| | | .set(ErpPurchaseOrderDO::getStatus, status) |
| | | .set(ErpPurchaseOrderDO::getReviewTime, LocalDateTime.now()) |
| | | .set(ErpPurchaseOrderDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | default ErpPurchaseOrderDO selectByNo(String no) { |
| | | return selectOne(ErpPurchaseOrderDO::getNo, no); |
| | | } |
| | |
| | | .set(ErpPurchasePlanDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æåååéè´è®¡åç¶æ |
| | | * |
| | | * ä»
å½éè´è®¡åä»å¤äºã审æ¹ä¸ãæ¶æ´æ°ï¼é¿å
䏿§å®¡æ¹è·¯å¾éå¤è¦çã |
| | | * |
| | | * @param id ç¼å· |
| | | * @param status ç®æ ç¶æï¼å®¡æ ¸éè¿ / å®¡æ ¸ä¸éè¿ / å·²åæ¶ï¼ |
| | | * @param reviewRemark å®¡æ ¸æè§ |
| | | * @return å½±åè¡æ° |
| | | */ |
| | | default int updateAuditStatusByBpm(Long id, Integer status, String reviewRemark) { |
| | | return update(null, new LambdaUpdateWrapper<ErpPurchasePlanDO>() |
| | | .eq(ErpPurchasePlanDO::getId, id) |
| | | .eq(ErpPurchasePlanDO::getStatus, ErpPurchasePlanStatusEnum.PROCESS.getStatus()) |
| | | .set(ErpPurchasePlanDO::getStatus, status) |
| | | .set(ErpPurchasePlanDO::getReviewTime, LocalDateTime.now()) |
| | | .set(ErpPurchasePlanDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | } |
| | |
| | | .set(ErpPurchaseRequestDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æåååéè´ç³è¯·ç¶æ |
| | | * |
| | | * ä»
å½éè´ç³è¯·ä»å¤äºã审æ¹ä¸ãæ¶æ´æ°ï¼é¿å
䏿§å®¡æ¹è·¯å¾éå¤è¦çã |
| | | * |
| | | * @param id ç¼å· |
| | | * @param status ç®æ ç¶æï¼å®¡æ ¸éè¿ / å®¡æ ¸ä¸éè¿ / å·²åæ¶ï¼ |
| | | * @param reviewRemark å®¡æ ¸æè§ |
| | | * @return å½±åè¡æ° |
| | | */ |
| | | default int updateAuditStatusByBpm(Long id, Integer status, String reviewRemark) { |
| | | return update(null, new LambdaUpdateWrapper<ErpPurchaseRequestDO>() |
| | | .eq(ErpPurchaseRequestDO::getId, id) |
| | | .eq(ErpPurchaseRequestDO::getStatus, ErpPurchaseRequestStatusEnum.PROCESS.getStatus()) |
| | | .set(ErpPurchaseRequestDO::getStatus, status) |
| | | .set(ErpPurchaseRequestDO::getReviewTime, LocalDateTime.now()) |
| | | .set(ErpPurchaseRequestDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | } |
| | |
| | | void auditFinancePayment(Long id, Boolean pass, String reviewRemark); |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æåè°æ´æ°ä»æ¬¾åç¶æ |
| | | * |
| | | * ç± BPM æµç¨å®ä¾ç»æäºä»¶è§¦åï¼å°å®¡æ¹ç»æåå为ä¸å¡ç¶æï¼ |
| | | * 审æ¹éè¿ â å·²å®¡æ ¸ï¼å®¡æ¹ä¸éè¿ / æµç¨åæ¶ â æªå®¡æ ¸ï¼éååå¯ä¿®æ¹å¹¶éæ°æäº¤ï¼ã |
| | | * |
| | | * @param id 仿¬¾åç¼å· |
| | | * @param bpmStatus BPM 审æ¹ç»æç¶æ |
| | | * @param reason å®¡æ ¸æè§ï¼BPM å®¡æ¹æè§ï¼ |
| | | */ |
| | | void updateFinancePaymentAuditStatus(Long id, Integer bpmStatus, String reason); |
| | | |
| | | /** |
| | | * å é¤ä»æ¬¾å |
| | | * |
| | | * @param ids ç¼å·æ°ç» |
| | |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; |
| | | import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; |
| | | import cn.iocoder.yudao.module.erp.controller.admin.finance.vo.payment.ErpFinancePaymentPageReqVO; |
| | | import cn.iocoder.yudao.module.erp.controller.admin.finance.vo.payment.ErpFinancePaymentSaveReqVO; |
| | | import cn.iocoder.yudao.module.erp.dal.dataobject.finance.ErpFinancePaymentDO; |
| | |
| | | */ |
| | | private static final String FINANCE_PAYMENT_APPROVE_BIZ_TYPE = "erp_finance_payment_approve"; |
| | | |
| | | /** |
| | | * 仿¬¾å审æ¹ç BPM æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String FINANCE_PAYMENT_PROCESS_KEY = "erp-finance-payment-audit"; |
| | | |
| | | @Resource |
| | | private ErpFinancePaymentMapper financePaymentMapper; |
| | | @Resource |
| | |
| | | |
| | | @Resource |
| | | private ApprovalConfigApi approvalConfigApi; |
| | | |
| | | @Resource |
| | | private BpmProcessInstanceApi bpmProcessInstanceApi; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | |
| | | if (financePaymentMapper.submitAndResetAuditInfo(id, ErpAuditStatus.APPROVING.getStatus()) != 1) { |
| | | throw exception(FINANCE_PAYMENT_SUBMIT_FAIL_NOT_ALLOWED); |
| | | } |
| | | // 4. å建 BPM æµç¨å®ä¾ï¼ä½¿å®¡æ¹åºç°å¨ãåååå
¬ - æçæµç¨ã |
| | | bpmProcessInstanceApi.createProcessInstance(getLoginUserId(), |
| | | new BpmProcessInstanceCreateReqDTO() |
| | | .setProcessDefinitionKey(FINANCE_PAYMENT_PROCESS_KEY) |
| | | .setBusinessKey(String.valueOf(id))); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateFinancePaymentAuditStatus(Long id, Integer bpmStatus, String reason) { |
| | | // 1. BPM 审æ¹ç»ææ å°ä¸ºä»æ¬¾åç¶æï¼éè¿=å·²å®¡æ ¸ï¼ä¸éè¿/åæ¶=æªå®¡æ ¸ï¼éååå¯ä¿®æ¹å¹¶éæ°æäº¤ï¼ |
| | | Integer newStatus = convertBpmResultToStatus(bpmStatus); |
| | | if (newStatus == null) { |
| | | return; |
| | | } |
| | | // 2. ä»
å½ä»å¤äºã审æ¹ä¸ãæ¶ååï¼é¿å
éå¤è¦ç |
| | | if (financePaymentMapper.updateAuditStatusByBpm(id, newStatus, reason) != 1) { |
| | | log.warn("[updateFinancePaymentAuditStatus] 仿¬¾å({}) ä¸å¤äºå®¡æ¹ä¸ç¶æï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * è½¬æ¢ BPM 审æ¹ç»æä¸ºä»æ¬¾åç¶æ |
| | | * |
| | | * 仿¬¾åä»
æãæªå®¡æ ¸ / 审æ¹ä¸ / å·²å®¡æ ¸ / å·²ä½åºãï¼æ ç¬ç«çãå®¡æ ¸ä¸éè¿ãç¶æï¼ |
| | | * æ
驳忿¤éæ¶åéå°ãæªå®¡æ ¸ãï¼ä¾¿äºä¿®æ¹åéæ°æäº¤ï¼ä¸åæè½»é审æ¹ä¸è´ï¼ã |
| | | */ |
| | | private Integer convertBpmResultToStatus(Integer bpmStatus) { |
| | | if (BpmTaskStatusEnum.APPROVE.getStatus().equals(bpmStatus)) { |
| | | return ErpAuditStatus.APPROVE.getStatus(); |
| | | } |
| | | if (BpmTaskStatusEnum.REJECT.getStatus().equals(bpmStatus)) { |
| | | return ErpAuditStatus.PROCESS.getStatus(); |
| | | } |
| | | if (BpmTaskStatusEnum.CANCEL.getStatus().equals(bpmStatus)) { |
| | | return ErpAuditStatus.PROCESS.getStatus(); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * è·åç¨æ·æµç§° |
| | | * |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.erp.service.finance.listener; |
| | | |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent; |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener; |
| | | import cn.iocoder.yudao.module.erp.service.finance.ErpFinancePaymentService; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * 仿¬¾å审æ¹ç¶æçå¬å¨ |
| | | * |
| | | * çå¬ BPM 审æ¹ç»æï¼åå仿¬¾åç¶æï¼ä½¿ä»æ¬¾å审æ¹ç»ä¸å¨ãåååå
¬ - æçæµç¨ã䏿µè½¬ã |
| | | */ |
| | | @Component |
| | | @Slf4j |
| | | public class ErpFinancePaymentStatusListener extends BpmProcessInstanceStatusEventListener { |
| | | |
| | | /** |
| | | * 仿¬¾åå®¡æ¹æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String PROCESS_DEFINITION_KEY = "erp-finance-payment-audit"; |
| | | |
| | | @Resource |
| | | private ErpFinancePaymentService financePaymentService; |
| | | |
| | | @Override |
| | | protected String getProcessDefinitionKey() { |
| | | return PROCESS_DEFINITION_KEY; |
| | | } |
| | | |
| | | @Override |
| | | protected void onEvent(BpmProcessInstanceStatusEvent event) { |
| | | Long paymentId; |
| | | try { |
| | | paymentId = Long.parseLong(event.getBusinessKey()); |
| | | } catch (NumberFormatException e) { |
| | | log.warn("[onEvent] businessKey({}) 䏿¯ææç仿¬¾åç¼å·", event.getBusinessKey()); |
| | | return; |
| | | } |
| | | |
| | | log.info("[onEvent] æ¶å°BPM审æ¹äºä»¶ï¼paymentId={}, status={}", paymentId, event.getStatus()); |
| | | |
| | | try { |
| | | financePaymentService.updateFinancePaymentAuditStatus(paymentId, event.getStatus(), event.getReason()); |
| | | log.info("[onEvent] 仿¬¾å({}) 审æ¹ç¶ææ´æ°å®æ", paymentId); |
| | | } catch (Exception e) { |
| | | log.error("[onEvent] æ´æ°ä»æ¬¾å审æ¹ç¶æå¤±è´¥ï¼paymentId={}", paymentId, e); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | void updatePurchaseOrderAuditStatus(Long id, Integer bpmResult); |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æåè°æ´æ°éè´è®¢åç¶æ |
| | | * |
| | | * ç± BPM æµç¨å®ä¾ç»æäºä»¶è§¦åï¼å°å®¡æ¹ç»æåå为ä¸å¡ç¶æï¼ |
| | | * 审æ¹éè¿ â å®¡æ ¸éè¿ï¼å®¡æ¹ä¸éè¿ â å®¡æ ¸ä¸éè¿ï¼æµç¨åæ¶ â 已忶ã |
| | | * |
| | | * @param id éè´è®¢åç¼å· |
| | | * @param bpmStatus BPM 审æ¹ç»æç¶æ |
| | | * @param reason å®¡æ ¸æè§ï¼BPM å®¡æ¹æè§ï¼ |
| | | */ |
| | | void updatePurchaseOrderAuditStatus(Long id, Integer bpmStatus, String reason); |
| | | |
| | | /** |
| | | * æ´æ°éè´è®¢åçå
¥åºæ°é |
| | | * |
| | | * @param id ç¼å· |
| | |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.common.util.number.MoneyUtils; |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; |
| | | import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; |
| | | import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.order.ErpPurchaseOrderImportExcelVO; |
| | | import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.order.ErpPurchaseOrderImportReqVO; |
| | |
| | | */ |
| | | private static final String PURCHASE_ORDER_APPROVE_BIZ_TYPE = "erp_purchase_order_approve"; |
| | | |
| | | /** |
| | | * éè´è®¢å审æ¹ç BPM æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String PURCHASE_ORDER_PROCESS_KEY = "purchase_approve"; |
| | | |
| | | @Resource |
| | | private ErpPurchaseOrderMapper purchaseOrderMapper; |
| | | @Resource |
| | |
| | | |
| | | @Resource |
| | | private ApprovalConfigApi approvalConfigApi; |
| | | @Resource |
| | | private BpmProcessInstanceApi bpmProcessInstanceApi; |
| | | @Resource |
| | | private AdminUserApi adminUserApi; |
| | | |
| | |
| | | if (purchaseOrderMapper.submitAndResetAuditInfo(id, ErpPurchaseOrderStatusEnum.PROCESS.getStatus()) != 1) { |
| | | throw exception(PURCHASE_ORDER_SUBMIT_FAIL_NOT_ALLOWED); |
| | | } |
| | | |
| | | // 4. å建 BPM æµç¨å®ä¾ï¼ä½¿å®¡æ¹åºç°å¨ãåååå
¬ - æçæµç¨ã |
| | | bpmProcessInstanceApi.createProcessInstance(getLoginUserId(), |
| | | new BpmProcessInstanceCreateReqDTO() |
| | | .setProcessDefinitionKey(PURCHASE_ORDER_PROCESS_KEY) |
| | | .setBusinessKey(String.valueOf(id))); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updatePurchaseOrderAuditStatus(Long id, Integer bpmStatus, String reason) { |
| | | // 1. BPM 审æ¹ç»ææ å°ä¸ºéè´è®¢åç¶æï¼éè¿=20 / ä¸éè¿=30 / åæ¶=40 |
| | | Integer newStatus = convertBpmResultToAuditStatus(bpmStatus); |
| | | if (newStatus == null) { |
| | | return; |
| | | } |
| | | // 2. ä»
å½ä»å¤äºã审æ¹ä¸ãæ¶ååï¼é¿å
éå¤è¦ç |
| | | if (purchaseOrderMapper.updateAuditStatusByBpm(id, newStatus, reason) != 1) { |
| | | log.warn("[updatePurchaseOrderAuditStatus] éè´è®¢å({}) ä¸å¤äºå®¡æ¹ä¸ç¶æï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * è½¬æ¢ BPM 审æ¹ç»æä¸ºå®¡æ ¸ç¶æ |
| | | * |
| | | * å·²åºå¼ï¼éè´è®¢åä¸åèµ° BPM æµç¨ï¼æ¬æ¹æ³ä»
为åå²ä»£ç ä¿çï¼ä¸å被è°ç¨ã |
| | | */ |
| | | @Deprecated |
| | | private Integer convertBpmResultToAuditStatus(Integer bpmResult) { |
| | | if (BpmTaskStatusEnum.APPROVE.getStatus().equals(bpmResult)) { |
| | | return ErpPurchaseOrderStatusEnum.APPROVE.getStatus(); |
| | |
| | | void updatePurchasePlanAuditStatus(Long id, Integer bpmResult); |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æåè°æ´æ°éè´è®¡åç¶æï¼å¸¦å®¡æ ¸æè§ï¼ |
| | | * |
| | | * ç± BPM æµç¨å®ä¾ç»æäºä»¶è§¦åï¼å°å®¡æ¹ç»æåå为ä¸å¡ç¶æï¼ |
| | | * 审æ¹éè¿ â å®¡æ ¸éè¿ï¼å¹¶èªå¨çæéè´ç³è¯·ï¼ï¼å®¡æ¹ä¸éè¿ â å®¡æ ¸ä¸éè¿ï¼æµç¨åæ¶ â 已忶ã |
| | | * |
| | | * @param id éè´è®¡åç¼å· |
| | | * @param bpmStatus BPM 审æ¹ç»æç¶æ |
| | | * @param reason å®¡æ ¸æè§ï¼BPM å®¡æ¹æè§ï¼ |
| | | */ |
| | | void updatePurchasePlanAuditStatus(Long id, Integer bpmStatus, String reason); |
| | | |
| | | /** |
| | | * è·ååºåé¢è¦å»ºè®®éè´æç» |
| | | * |
| | | * <p>éåå¯ç¨å®å
¨åºåçç©æï¼æé»è®¤ä»åºå½ååºåä½äºæä½åºåæ¶ï¼ |
| | |
| | | import cn.iocoder.yudao.framework.common.exception.ServiceException; |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; |
| | | import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; |
| | | import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.plan.ErpPurchasePlanImportExcelVO; |
| | | import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.plan.ErpPurchasePlanImportReqVO; |
| | |
| | | private static final String PURCHASE_PLAN_APPROVE_BIZ_TYPE = "purchase_plan_approve"; |
| | | |
| | | /** |
| | | * éè´è®¡å审æ¹ç BPM æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String PURCHASE_PLAN_PROCESS_KEY = "purchase_plan_approve"; |
| | | |
| | | /** |
| | | * éæ±æ¥æºï¼åºåé¢è¦ |
| | | */ |
| | | public static final Integer DEMAND_SOURCE_STOCK_ALERT = 1; |
| | |
| | | |
| | | @Resource |
| | | private ApprovalConfigApi approvalConfigApi; |
| | | |
| | | @Resource |
| | | private BpmProcessInstanceApi bpmProcessInstanceApi; |
| | | |
| | | @Resource |
| | | private AdminUserApi adminUserApi; |
| | |
| | | if (purchasePlanMapper.submitAndResetAuditInfo(id, ErpPurchasePlanStatusEnum.PROCESS.getStatus()) != 1) { |
| | | throw exception(PURCHASE_PLAN_SUBMIT_FAIL_NOT_ALLOWED); |
| | | } |
| | | // 5. å建 BPM æµç¨å®ä¾ï¼ä½¿å®¡æ¹åºç°å¨ãåååå
¬ - æçæµç¨ã |
| | | bpmProcessInstanceApi.createProcessInstance(getLoginUserId(), |
| | | new BpmProcessInstanceCreateReqDTO() |
| | | .setProcessDefinitionKey(PURCHASE_PLAN_PROCESS_KEY) |
| | | .setBusinessKey(String.valueOf(id))); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updatePurchasePlanAuditStatus(Long id, Integer bpmStatus, String reason) { |
| | | // 1. BPM 审æ¹ç»ææ å°ä¸ºéè´è®¡åç¶æï¼éè¿=20 / ä¸éè¿=30 / åæ¶=40 |
| | | Integer newStatus = convertBpmResultToStatus(bpmStatus); |
| | | if (newStatus == null) { |
| | | return; |
| | | } |
| | | // 2. ä»
å½ä»å¤äºã审æ¹ä¸ãæ¶ååï¼é¿å
éå¤è¦ç |
| | | if (purchasePlanMapper.updateAuditStatusByBpm(id, newStatus, reason) != 1) { |
| | | log.warn("[updatePurchasePlanAuditStatus] éè´è®¡å({}) ä¸å¤äºå®¡æ¹ä¸ç¶æï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | return; |
| | | } |
| | | // 3. 审æ¹éè¿ä¸æªçæç³è¯·ï¼èªå¨çæéè´ç³è¯· |
| | | if (ErpPurchasePlanStatusEnum.APPROVE.getStatus().equals(newStatus)) { |
| | | ErpPurchasePlanDO plan = purchasePlanMapper.selectById(id); |
| | | if (plan != null && !Boolean.TRUE.equals(plan.getGeneratedFlag())) { |
| | | try { |
| | | List<Long> requestIds = doGeneratePurchaseRequests(plan); |
| | | log.info("[updatePurchasePlanAuditStatus] éè´è®¡å({}) èªå¨çæéè´ç³è¯·({})", id, requestIds); |
| | | } catch (Exception e) { |
| | | log.error("[updatePurchasePlanAuditStatus] éè´è®¡å({}) èªå¨çæéè´ç³è¯·å¤±è´¥", id, e); |
| | | // 䏿åºå¼å¸¸ï¼é¿å
å½±åç¶ææ´æ° |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public List<ErpPurchasePlanRespVO.Item> getStockAlertSuggestItems() { |
| | | // 1. è·åå¯ç¨çç©æåºç¡æ°æ®ï¼å
å«é»è®¤ä»åºãå®å
¨/æä½/æé«åºåï¼ |
| | | List<MdmItemRespDTO> items = mdmItemApi.getItemListByStatus(0).getCheckedData(); |
| | |
| | | void auditPurchaseRequest(Long id, Boolean pass, String reviewRemark); |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æåè°æ´æ°éè´ç³è¯·ç¶æ |
| | | * |
| | | * ç± BPM æµç¨å®ä¾ç»æäºä»¶è§¦åï¼å°å®¡æ¹ç»æåå为ä¸å¡ç¶æï¼ |
| | | * 审æ¹éè¿ â å®¡æ ¸éè¿ï¼å¹¶èªå¨çæéè´è®¢åï¼ï¼å®¡æ¹ä¸éè¿ â å®¡æ ¸ä¸éè¿ï¼æµç¨åæ¶ â 已忶ã |
| | | * |
| | | * @param id éè´ç³è¯·ç¼å· |
| | | * @param bpmStatus BPM 审æ¹ç»æç¶æ |
| | | * @param reason å®¡æ ¸æè§ï¼BPM å®¡æ¹æè§ï¼ |
| | | */ |
| | | void updatePurchaseRequestAuditStatus(Long id, Integer bpmStatus, String reason); |
| | | |
| | | /** |
| | | * çæéè´è®¢å |
| | | * |
| | | * @param id éè´ç³è¯·ç¼å· |
| | |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.common.util.number.MoneyUtils; |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; |
| | | import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; |
| | | import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.request.ErpPurchaseRequestImportExcelVO; |
| | | import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.request.ErpPurchaseRequestImportReqVO; |
| | | import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.request.ErpPurchaseRequestImportRespVO; |
| | |
| | | */ |
| | | private static final String PURCHASE_REQUEST_APPROVE_BIZ_TYPE = "purchase_request_approve"; |
| | | |
| | | /** |
| | | * éè´ç³è¯·å®¡æ¹ç BPM æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String PURCHASE_REQUEST_PROCESS_KEY = "purchase_request_approve"; |
| | | |
| | | @Resource |
| | | private ErpPurchaseRequestMapper purchaseRequestMapper; |
| | | @Resource |
| | |
| | | |
| | | @Resource |
| | | private ApprovalConfigApi approvalConfigApi; |
| | | |
| | | @Resource |
| | | private BpmProcessInstanceApi bpmProcessInstanceApi; |
| | | |
| | | @Resource |
| | | private AdminUserApi adminUserApi; |
| | |
| | | if (purchaseRequestMapper.submitAndResetAuditInfo(id, ErpPurchaseRequestStatusEnum.PROCESS.getStatus()) != 1) { |
| | | throw exception(PURCHASE_REQUEST_SUBMIT_FAIL_NOT_ALLOWED); |
| | | } |
| | | // 5. å建 BPM æµç¨å®ä¾ï¼ä½¿å®¡æ¹åºç°å¨ãåååå
¬ - æçæµç¨ã |
| | | bpmProcessInstanceApi.createProcessInstance(getLoginUserId(), |
| | | new BpmProcessInstanceCreateReqDTO() |
| | | .setProcessDefinitionKey(PURCHASE_REQUEST_PROCESS_KEY) |
| | | .setBusinessKey(String.valueOf(id))); |
| | | } |
| | | |
| | | @Override |
| | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updatePurchaseRequestAuditStatus(Long id, Integer bpmStatus, String reason) { |
| | | // 1. BPM 审æ¹ç»ææ å°ä¸ºéè´ç³è¯·ç¶æï¼éè¿=20 / ä¸éè¿=30 / åæ¶=40 |
| | | Integer newStatus = convertBpmResultToStatus(bpmStatus); |
| | | if (newStatus == null) { |
| | | return; |
| | | } |
| | | // 2. ä»
å½ä»å¤äºã审æ¹ä¸ãæ¶ååï¼é¿å
éå¤è¦ç |
| | | if (purchaseRequestMapper.updateAuditStatusByBpm(id, newStatus, reason) != 1) { |
| | | log.warn("[updatePurchaseRequestAuditStatus] éè´ç³è¯·({}) ä¸å¤äºå®¡æ¹ä¸ç¶æï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | return; |
| | | } |
| | | // 3. 审æ¹éè¿ä¸æä¾åºåãæªçæè®¢åæ¶ï¼èªå¨çæéè´è®¢å |
| | | if (!ErpPurchaseRequestStatusEnum.APPROVE.getStatus().equals(newStatus)) { |
| | | return; |
| | | } |
| | | ErpPurchaseRequestDO purchaseRequest = purchaseRequestMapper.selectById(id); |
| | | if (purchaseRequest == null || purchaseRequest.getSupplierId() == null |
| | | || purchaseRequest.getOrderId() != null) { |
| | | return; |
| | | } |
| | | try { |
| | | Long orderId = doGeneratePurchaseOrder(purchaseRequest); |
| | | log.info("[updatePurchaseRequestAuditStatus] éè´ç³è¯·({}) èªå¨çæéè´è®¢å({})", id, orderId); |
| | | } catch (Exception e) { |
| | | // 䏿åºå¼å¸¸ï¼é¿å
å½±å审æ¹ç»æè½åºï¼çæå¤±è´¥å¯ç±ç¨æ·æå¨è§¦å |
| | | log.error("[updatePurchaseRequestAuditStatus] éè´ç³è¯·({}) èªå¨çæéè´è®¢å失败", id, e); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * è½¬æ¢ BPM 审æ¹ç»æä¸ºéè´ç³è¯·ç¶æ |
| | | */ |
| | | private Integer convertBpmResultToStatus(Integer bpmStatus) { |
| | | if (BpmTaskStatusEnum.APPROVE.getStatus().equals(bpmStatus)) { |
| | | return ErpPurchaseRequestStatusEnum.APPROVE.getStatus(); |
| | | } |
| | | if (BpmTaskStatusEnum.REJECT.getStatus().equals(bpmStatus)) { |
| | | return ErpPurchaseRequestStatusEnum.REJECT.getStatus(); |
| | | } |
| | | if (BpmTaskStatusEnum.CANCEL.getStatus().equals(bpmStatus)) { |
| | | return ErpPurchaseRequestStatusEnum.CANCEL.getStatus(); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Long generatePurchaseOrder(Long id, Long supplierId) { |
| | | // 1. æ ¡éªåå¨ + å®¡æ ¸éè¿ç¶æ |
| | | ErpPurchaseRequestDO purchaseRequest = validatePurchaseRequestExists(id); |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.erp.service.purchase.listener; |
| | | |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent; |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener; |
| | | import cn.iocoder.yudao.module.erp.service.purchase.ErpPurchaseOrderService; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * éè´è®¢å审æ¹ç¶æçå¬å¨ |
| | | * |
| | | * çå¬ BPM 审æ¹ç»æï¼ååéè´è®¢åç¶æï¼ä½¿éè´è®¢å审æ¹ç»ä¸å¨ãåååå
¬ - æçæµç¨ã䏿µè½¬ã |
| | | */ |
| | | @Component |
| | | @Slf4j |
| | | public class ErpPurchaseOrderStatusListener extends BpmProcessInstanceStatusEventListener { |
| | | |
| | | /** |
| | | * éè´è®¢åå®¡æ¹æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String PROCESS_DEFINITION_KEY = "purchase_approve"; |
| | | |
| | | @Resource |
| | | private ErpPurchaseOrderService purchaseOrderService; |
| | | |
| | | @Override |
| | | protected String getProcessDefinitionKey() { |
| | | return PROCESS_DEFINITION_KEY; |
| | | } |
| | | |
| | | @Override |
| | | protected void onEvent(BpmProcessInstanceStatusEvent event) { |
| | | Long orderId; |
| | | try { |
| | | orderId = Long.parseLong(event.getBusinessKey()); |
| | | } catch (NumberFormatException e) { |
| | | log.warn("[onEvent] businessKey({}) 䏿¯ææçéè´è®¢åç¼å·", event.getBusinessKey()); |
| | | return; |
| | | } |
| | | |
| | | log.info("[onEvent] æ¶å°BPM审æ¹äºä»¶ï¼orderId={}, status={}", orderId, event.getStatus()); |
| | | |
| | | try { |
| | | purchaseOrderService.updatePurchaseOrderAuditStatus(orderId, event.getStatus(), event.getReason()); |
| | | log.info("[onEvent] éè´è®¢å({}) 审æ¹ç¶ææ´æ°å®æ", orderId); |
| | | } catch (Exception e) { |
| | | log.error("[onEvent] æ´æ°éè´è®¢å审æ¹ç¶æå¤±è´¥ï¼orderId={}", orderId, e); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | package cn.iocoder.yudao.module.erp.service.purchase.listener; |
| | | |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent; |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener; |
| | | import cn.iocoder.yudao.module.erp.service.purchase.ErpPurchasePlanService; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * éè´è®¡å审æ¹ç¶æçå¬å¨ï¼Legacyï¼å·²åç¨ï¼ |
| | | * éè´è®¡å审æ¹ç¶æçå¬å¨ |
| | | * |
| | | * éè´è®¡å审æ¹å·²æ¹ä¸ºã审æ¹é
ç½®ãè½»éçº§ç¶ææºï¼ç± |
| | | * {@link ErpPurchasePlanService#submitPurchasePlan(Long)} / {@link ErpPurchasePlanService#auditPurchasePlan(Long, Boolean, String)} |
| | | * ç´æ¥é©±å¨ç¶æï¼ä¸åä¾èµ BPMã |
| | | * |
| | | * ä¿çæ¬ç±»ä»
ä½åå²åèï¼ä¸å注å为 Spring Beanï¼é¿å
æ§ç BPM æµç¨å®ä¾è§¦åæ¶ |
| | | * 䏿°å®¡æ¹è·¯å¾é夿´æ°/éå¤çæéè´ç³è¯·ã |
| | | * çå¬ BPM 审æ¹ç»æï¼ååéè´è®¡åç¶æï¼ä½¿éè´è®¡å审æ¹ç»ä¸å¨ãåååå
¬ - æçæµç¨ã䏿µè½¬ã |
| | | * |
| | | * @author xiaoyi |
| | | */ |
| | | @Component |
| | | @Slf4j |
| | | public class ErpPurchasePlanStatusListener extends cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener { |
| | | public class ErpPurchasePlanStatusListener extends BpmProcessInstanceStatusEventListener { |
| | | |
| | | /** |
| | | * éè´è®¡åå®¡æ¹æµç¨å®ä¹ Key |
| | |
| | | log.info("[onEvent] æ¶å°BPM审æ¹äºä»¶ï¼planId={}, status={}", planId, event.getStatus()); |
| | | |
| | | try { |
| | | purchasePlanService.updatePurchasePlanAuditStatus(planId, event.getStatus()); |
| | | purchasePlanService.updatePurchasePlanAuditStatus(planId, event.getStatus(), event.getReason()); |
| | | log.info("[onEvent] éè´è®¡å({}) 审æ¹ç¶ææ´æ°å®æ", planId); |
| | | } catch (Exception e) { |
| | | log.error("[onEvent] æ´æ°éè´è®¡å审æ¹ç¶æå¤±è´¥ï¼planId={}", planId, e); |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.erp.service.purchase.listener; |
| | | |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent; |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener; |
| | | import cn.iocoder.yudao.module.erp.service.purchase.ErpPurchaseRequestService; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * éè´ç³è¯·å®¡æ¹ç¶æçå¬å¨ |
| | | * |
| | | * çå¬ BPM 审æ¹ç»æï¼ååéè´ç³è¯·ç¶æï¼ä½¿éè´ç³è¯·å®¡æ¹ç»ä¸å¨ãåååå
¬ - æçæµç¨ã䏿µè½¬ã |
| | | */ |
| | | @Component |
| | | @Slf4j |
| | | public class ErpPurchaseRequestStatusListener extends BpmProcessInstanceStatusEventListener { |
| | | |
| | | /** |
| | | * éè´ç³è¯·å®¡æ¹æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String PROCESS_DEFINITION_KEY = "purchase_request_approve"; |
| | | |
| | | @Resource |
| | | private ErpPurchaseRequestService purchaseRequestService; |
| | | |
| | | @Override |
| | | protected String getProcessDefinitionKey() { |
| | | return PROCESS_DEFINITION_KEY; |
| | | } |
| | | |
| | | @Override |
| | | protected void onEvent(BpmProcessInstanceStatusEvent event) { |
| | | Long requestId; |
| | | try { |
| | | requestId = Long.parseLong(event.getBusinessKey()); |
| | | } catch (NumberFormatException e) { |
| | | log.warn("[onEvent] businessKey({}) 䏿¯ææçéè´ç³è¯·ç¼å·", event.getBusinessKey()); |
| | | return; |
| | | } |
| | | |
| | | log.info("[onEvent] æ¶å°BPM审æ¹äºä»¶ï¼requestId={}, status={}", requestId, event.getStatus()); |
| | | |
| | | try { |
| | | purchaseRequestService.updatePurchaseRequestAuditStatus(requestId, event.getStatus(), event.getReason()); |
| | | log.info("[onEvent] éè´ç³è¯·({}) 审æ¹ç¶ææ´æ°å®æ", requestId); |
| | | } catch (Exception e) { |
| | | log.error("[onEvent] æ´æ°éè´ç³è¯·å®¡æ¹ç¶æå¤±è´¥ï¼requestId={}", requestId, e); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | } |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æååå请åç³è¯·ç¶æ |
| | | * |
| | | * ä»
å½ç³è¯·ä»å¤äºã审æ¹ä¸ãæ¶æ´æ°ï¼é¿å
䏿§å®¡æ¹è·¯å¾éå¤è¦çã |
| | | */ |
| | | default int updateAuditStatusByBpm(Long id, Integer status, String reviewRemark) { |
| | | return update(null, new LambdaUpdateWrapper<HrmLeaveApplicationDO>() |
| | | .eq(HrmLeaveApplicationDO::getId, id) |
| | | .eq(HrmLeaveApplicationDO::getStatus, HrmAuditStatusEnum.PROCESS.getStatus()) |
| | | .set(HrmLeaveApplicationDO::getStatus, status) |
| | | .set(HrmLeaveApplicationDO::getReviewTime, LocalDateTime.now()) |
| | | .set(HrmLeaveApplicationDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | /** |
| | | * æ¥è¯¢å工卿宿¶é´èå´å
已审æ¹éè¿ç请åè®°å½ |
| | | * |
| | | * @param userId åå·¥IDï¼ç³»ç»ç¨æ·IDï¼ |
| | |
| | | .set(HrmRegularizeApplicationDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æååå转æ£ç³è¯·ç¶æ |
| | | * |
| | | * ä»
å½ç³è¯·ä»å¤äºã审æ¹ä¸ãæ¶æ´æ°ï¼é¿å
䏿§å®¡æ¹è·¯å¾éå¤è¦çã |
| | | */ |
| | | default int updateAuditStatusByBpm(Long id, Integer status, String reviewRemark) { |
| | | return update(null, new LambdaUpdateWrapper<HrmRegularizeApplicationDO>() |
| | | .eq(HrmRegularizeApplicationDO::getId, id) |
| | | .eq(HrmRegularizeApplicationDO::getStatus, HrmAuditStatusEnum.PROCESS.getStatus()) |
| | | .set(HrmRegularizeApplicationDO::getStatus, status) |
| | | .set(HrmRegularizeApplicationDO::getReviewTime, LocalDateTime.now()) |
| | | .set(HrmRegularizeApplicationDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | default HrmRegularizeApplicationDO selectByUserIdAndStatusNot(Long userId, Integer status) { |
| | | return selectOne(new LambdaQueryWrapperX<HrmRegularizeApplicationDO>() |
| | | .eq(HrmRegularizeApplicationDO::getUserId, userId) |
| | |
| | | .set(HrmResignationApplicationDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æååå离èç³è¯·ç¶æ |
| | | * |
| | | * ä»
å½ç³è¯·ä»å¤äºã审æ¹ä¸ãæ¶æ´æ°ï¼é¿å
䏿§å®¡æ¹è·¯å¾éå¤è¦çã |
| | | */ |
| | | default int updateAuditStatusByBpm(Long id, Integer status, String reviewRemark) { |
| | | return update(null, new LambdaUpdateWrapper<HrmResignationApplicationDO>() |
| | | .eq(HrmResignationApplicationDO::getId, id) |
| | | .eq(HrmResignationApplicationDO::getStatus, HrmAuditStatusEnum.PROCESS.getStatus()) |
| | | .set(HrmResignationApplicationDO::getStatus, status) |
| | | .set(HrmResignationApplicationDO::getReviewTime, LocalDateTime.now()) |
| | | .set(HrmResignationApplicationDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | default HrmResignationApplicationDO selectByUserIdAndStatusNot(Long userId, Integer status) { |
| | | return selectOne(new LambdaQueryWrapperX<HrmResignationApplicationDO>() |
| | | .eq(HrmResignationApplicationDO::getUserId, userId) |
| | |
| | | HrmTransferApplicationDO::getApproveTime, LocalDateTime.now())); |
| | | } |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æåååè°å²ç³è¯·ç¶æ |
| | | * |
| | | * ä»
å½ç³è¯·ä»å¤äºã审æ¹ä¸ãæ¶æ´æ°ï¼é¿å
䏿§å®¡æ¹è·¯å¾éå¤è¦çã |
| | | */ |
| | | default int updateAuditStatusByBpm(Long id, Integer status, String reviewRemark) { |
| | | return update(null, new LambdaUpdateWrapper<HrmTransferApplicationDO>() |
| | | .eq(HrmTransferApplicationDO::getId, id) |
| | | .eq(HrmTransferApplicationDO::getStatus, HrmAuditStatusEnum.PROCESS.getStatus()) |
| | | .set(HrmTransferApplicationDO::getStatus, status) |
| | | .set(HrmTransferApplicationDO::getReviewTime, LocalDateTime.now()) |
| | | .set(HrmTransferApplicationDO::getReviewRemark, reviewRemark) |
| | | // ä»
审æ¹éè¿æ¶åå
¥éè¿æ¶é´ï¼é©³å/åæ¶ä¸å |
| | | .set(HrmAuditStatusEnum.APPROVE.getStatus().equals(status), |
| | | HrmTransferApplicationDO::getApproveTime, LocalDateTime.now())); |
| | | } |
| | | |
| | | } |
| | |
| | | HrmAttendanceExceptionDO::getApproveTime, LocalDateTime.now())); |
| | | } |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æåååèå¤å¼å¸¸ç³è¯·ç¶æ |
| | | * |
| | | * ä»
å½ç³è¯·ä»å¤äºã审æ¹ä¸ãæ¶æ´æ°ï¼é¿å
䏿§å®¡æ¹è·¯å¾éå¤è¦çã |
| | | */ |
| | | default int updateAuditStatusByBpm(Long id, Integer status, String reviewRemark) { |
| | | return update(null, new LambdaUpdateWrapper<HrmAttendanceExceptionDO>() |
| | | .eq(HrmAttendanceExceptionDO::getId, id) |
| | | .eq(HrmAttendanceExceptionDO::getStatus, HrmAuditStatusEnum.PROCESS.getStatus()) |
| | | .set(HrmAttendanceExceptionDO::getStatus, status) |
| | | .set(HrmAttendanceExceptionDO::getReviewTime, LocalDateTime.now()) |
| | | .set(HrmAttendanceExceptionDO::getReviewRemark, reviewRemark) |
| | | // ä»
审æ¹éè¿æ¶åå
¥éè¿æ¶é´ï¼é©³å/åæ¶ä¸å |
| | | .set(HrmAuditStatusEnum.APPROVE.getStatus().equals(status), |
| | | HrmAttendanceExceptionDO::getApproveTime, LocalDateTime.now())); |
| | | } |
| | | |
| | | } |
| | |
| | | .set(HrmPerformanceAppraiseDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æååå绩æèæ ¸æ¹æ¡å®¡æ¹ç¶æ |
| | | * |
| | | * ä»
彿¹æ¡ä»å¤äºã审æ¹ä¸ãæ¶æ´æ°ï¼é¿å
䏿§å®¡æ¹è·¯å¾éå¤è¦çã |
| | | * |
| | | * @param id æ¹æ¡ç¼å· |
| | | * @param auditStatus ç®æ 审æ¹ç¶æ |
| | | * @param status æ¹æ¡ç¶æï¼å®¡æ ¸éè¿æ¶ç½®ä¸ºå·²åå¸ï¼å¦åä¿æåå¼ï¼ |
| | | * @param reviewRemark å®¡æ ¸æè§ |
| | | * @return å½±åè¡æ° |
| | | */ |
| | | default int updateAuditStatusByBpm(Long id, Integer auditStatus, Integer status, String reviewRemark) { |
| | | return update(null, new LambdaUpdateWrapper<HrmPerformanceAppraiseDO>() |
| | | .eq(HrmPerformanceAppraiseDO::getId, id) |
| | | .eq(HrmPerformanceAppraiseDO::getAuditStatus, HrmAuditStatusEnum.PROCESS.getStatus()) |
| | | .set(HrmPerformanceAppraiseDO::getAuditStatus, auditStatus) |
| | | .set(HrmPerformanceAppraiseDO::getStatus, status) |
| | | .set(HrmPerformanceAppraiseDO::getReviewTime, LocalDateTime.now()) |
| | | .set(HrmPerformanceAppraiseDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | default HrmPerformanceAppraiseDO selectMonthlyCompletedByPeriod(String period) { |
| | | return selectOne(new LambdaQueryWrapperX<HrmPerformanceAppraiseDO>() |
| | | .eq(HrmPerformanceAppraiseDO::getPeriodType, 1) |
| | |
| | | */ |
| | | void auditLeaveApplication(Long id, Boolean pass, String reviewRemark); |
| | | |
| | | /** |
| | | * æ ¹æ® BPM 审æ¹ç»æåå请åç³è¯·å®¡æ¹ç¶æ |
| | | * |
| | | * @param id ç³è¯·ID |
| | | * @param bpmStatus BPM ä»»å¡ç¶æï¼2-éè¿ 3-ä¸éè¿ 4-åæ¶ï¼ |
| | | * @param reason å®¡æ¹æè§ / åæ¶åå |
| | | */ |
| | | void updateLeaveApplicationAuditStatus(Long id, Integer bpmStatus, String reason); |
| | | |
| | | } |
| | |
| | | import cn.iocoder.yudao.module.hrm.dal.redis.HrmNoRedisDAO; |
| | | import cn.iocoder.yudao.module.hrm.enums.HrmAuditStatusEnum; |
| | | import cn.iocoder.yudao.module.hrm.enums.HrmLeaveTypeEnum; |
| | | import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; |
| | | import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; |
| | | import cn.iocoder.yudao.module.system.api.approval.ApprovalConfigApi; |
| | | import cn.iocoder.yudao.module.system.api.dept.DeptApi; |
| | | import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; |
| | |
| | | */ |
| | | private static final String LEAVE_APPROVE_BIZ_TYPE = "hrm_leave_approve"; |
| | | |
| | | /** |
| | | * 请åç³è¯·å®¡æ¹ç BPM æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String LEAVE_APPROVE_PROCESS_KEY = "hrm_leave_approve"; |
| | | |
| | | @Resource |
| | | private HrmLeaveApplicationMapper leaveApplicationMapper; |
| | | @Resource |
| | |
| | | private StorageAttachmentApi storageAttachmentApi; |
| | | @Resource |
| | | private ApprovalConfigApi approvalConfigApi; |
| | | @Resource |
| | | private BpmProcessInstanceApi bpmProcessInstanceApi; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | |
| | | if (leaveApplicationMapper.submitAndResetAuditInfo(id, HrmAuditStatusEnum.PROCESS.getStatus()) != 1) { |
| | | throw exception(LEAVE_APPLICATION_SUBMIT_FAIL_NOT_EDITABLE); |
| | | } |
| | | |
| | | // 4. å建 BPM æµç¨å®ä¾ï¼ä½¿å®¡æ¹åºç°å¨ãåååå
¬ - æçæµç¨ã |
| | | bpmProcessInstanceApi.createProcessInstance(getLoginUserId(), |
| | | new BpmProcessInstanceCreateReqDTO() |
| | | .setProcessDefinitionKey(LEAVE_APPROVE_PROCESS_KEY) |
| | | .setBusinessKey(String.valueOf(id))); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateLeaveApplicationAuditStatus(Long id, Integer bpmStatus, String reason) { |
| | | // BPM 审æ¹ç»ææ å°ä¸ºè¯·å审æ¹ç¶æï¼éè¿=20 / ä¸éè¿=30 / åæ¶=40 |
| | | Integer status; |
| | | if (BpmTaskStatusEnum.APPROVE.getStatus().equals(bpmStatus)) { |
| | | status = HrmAuditStatusEnum.APPROVE.getStatus(); |
| | | } else if (BpmTaskStatusEnum.REJECT.getStatus().equals(bpmStatus)) { |
| | | status = HrmAuditStatusEnum.REJECT.getStatus(); |
| | | } else if (BpmTaskStatusEnum.CANCEL.getStatus().equals(bpmStatus)) { |
| | | status = HrmAuditStatusEnum.CANCEL.getStatus(); |
| | | } else { |
| | | return; |
| | | } |
| | | if (leaveApplicationMapper.updateAuditStatusByBpm(id, status, reason) != 1) { |
| | | log.warn("[updateLeaveApplicationAuditStatus] 请åç³è¯·({}) ä¸å¤äºå®¡æ¹ä¸ç¶æï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * è·åç¨æ·æµç§° |
| | | * |
| | |
| | | */ |
| | | void auditRegularizeApplication(Long id, Boolean pass, String reviewRemark); |
| | | |
| | | /** |
| | | * æ ¹æ® BPM 审æ¹ç»æåå转æ£ç³è¯·å®¡æ¹ç¶æ |
| | | * |
| | | * 审æ¹éè¿æ¶ååå工主档ï¼ç¶æ=å¨èï¼ç¨å·¥æ§è´¨=æ£å¼ï¼è½¬æ£æ¥æï¼ã |
| | | * |
| | | * @param id ç³è¯·ID |
| | | * @param bpmStatus BPM ä»»å¡ç¶æï¼2-éè¿ 3-ä¸éè¿ 4-åæ¶ï¼ |
| | | * @param reason å®¡æ¹æè§ / åæ¶åå |
| | | */ |
| | | void updateRegularizeApplicationAuditStatus(Long id, Integer bpmStatus, String reason); |
| | | |
| | | } |
| | |
| | | import cn.iocoder.yudao.module.hrm.dal.redis.HrmNoRedisDAO; |
| | | import cn.iocoder.yudao.module.hrm.enums.HrmAuditStatusEnum; |
| | | import cn.iocoder.yudao.module.hrm.enums.HrmEmploymentTypeEnum; |
| | | import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; |
| | | import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; |
| | | import cn.iocoder.yudao.module.system.api.approval.ApprovalConfigApi; |
| | | import cn.iocoder.yudao.module.system.api.dept.DeptApi; |
| | | import cn.iocoder.yudao.module.system.api.dept.PostApi; |
| | |
| | | private static final String REGULARIZE_APPROVE_BIZ_TYPE = "hrm_regularize_approve"; |
| | | |
| | | /** |
| | | * 转æ£ç³è¯·å®¡æ¹ç BPM æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String REGULARIZE_APPROVE_PROCESS_KEY = "hrm_regularize_approve"; |
| | | |
| | | /** |
| | | * åå·¥ç¶æï¼å¨è |
| | | */ |
| | | private static final Integer EMPLOYEE_STATUS_ACTIVE = 1; |
| | |
| | | private AdminUserApi adminUserApi; |
| | | @Resource |
| | | private ApprovalConfigApi approvalConfigApi; |
| | | @Resource |
| | | private BpmProcessInstanceApi bpmProcessInstanceApi; |
| | | @Resource |
| | | private HrmEmployeeMapper employeeMapper; |
| | | |
| | |
| | | if (regularizeApplicationMapper.submitAndResetAuditInfo(id, HrmAuditStatusEnum.PROCESS.getStatus()) != 1) { |
| | | throw exception(REGULARIZE_APPLICATION_SUBMIT_FAIL_NOT_EDITABLE); |
| | | } |
| | | |
| | | // 4. å建 BPM æµç¨å®ä¾ï¼ä½¿å®¡æ¹åºç°å¨ãåååå
¬ - æçæµç¨ã |
| | | bpmProcessInstanceApi.createProcessInstance(getLoginUserId(), |
| | | new BpmProcessInstanceCreateReqDTO() |
| | | .setProcessDefinitionKey(REGULARIZE_APPROVE_PROCESS_KEY) |
| | | .setBusinessKey(String.valueOf(id))); |
| | | } |
| | | |
| | | @Override |
| | |
| | | .build()); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateRegularizeApplicationAuditStatus(Long id, Integer bpmStatus, String reason) { |
| | | // BPM 审æ¹ç»ææ å°ä¸ºè½¬æ£å®¡æ¹ç¶æï¼éè¿=20 / ä¸éè¿=30 / åæ¶=40 |
| | | Integer status; |
| | | if (BpmTaskStatusEnum.APPROVE.getStatus().equals(bpmStatus)) { |
| | | status = HrmAuditStatusEnum.APPROVE.getStatus(); |
| | | } else if (BpmTaskStatusEnum.REJECT.getStatus().equals(bpmStatus)) { |
| | | status = HrmAuditStatusEnum.REJECT.getStatus(); |
| | | } else if (BpmTaskStatusEnum.CANCEL.getStatus().equals(bpmStatus)) { |
| | | status = HrmAuditStatusEnum.CANCEL.getStatus(); |
| | | } else { |
| | | return; |
| | | } |
| | | HrmRegularizeApplicationDO application = regularizeApplicationMapper.selectById(id); |
| | | if (regularizeApplicationMapper.updateAuditStatusByBpm(id, status, reason) != 1) { |
| | | log.warn("[updateRegularizeApplicationAuditStatus] 转æ£ç³è¯·({}) ä¸å¤äºå®¡æ¹ä¸ç¶æï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | return; |
| | | } |
| | | // 审æ¹éè¿åç½®ä¸å¡é»è¾ï¼ååå工主档 |
| | | if (status.equals(HrmAuditStatusEnum.APPROVE.getStatus()) && application != null) { |
| | | writeBackEmployee(application); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * è·åç¨æ·æµç§° |
| | | * |
| | |
| | | void auditResignationApplication(Long id, Boolean pass, String reviewRemark); |
| | | |
| | | /** |
| | | * æ ¹æ® BPM 审æ¹ç»æåå离èç³è¯·å®¡æ¹ç¶æ |
| | | * |
| | | * 审æ¹éè¿æ¶ååå工主档ï¼ç¶æ=离èï¼ç¦»èæ¥æï¼ã |
| | | * |
| | | * @param id ç³è¯·ID |
| | | * @param bpmStatus BPM ä»»å¡ç¶æï¼2-éè¿ 3-ä¸éè¿ 4-åæ¶ï¼ |
| | | * @param reason å®¡æ¹æè§ / åæ¶åå |
| | | */ |
| | | void updateResignationApplicationAuditStatus(Long id, Integer bpmStatus, String reason); |
| | | |
| | | /** |
| | | * æ´æ°ç¦»èç³è¯·äº¤æ¥ç¶æ |
| | | * |
| | | * @param reqVO 交æ¥ç¶ææ´æ°ä¿¡æ¯ |
| | |
| | | import cn.iocoder.yudao.module.hrm.dal.redis.HrmNoRedisDAO; |
| | | import cn.iocoder.yudao.module.hrm.enums.HrmAuditStatusEnum; |
| | | import cn.iocoder.yudao.module.hrm.enums.HrmResignationTypeEnum; |
| | | import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; |
| | | import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; |
| | | import cn.iocoder.yudao.module.hrm.service.handover.HrmUserHandoverService; |
| | | import cn.iocoder.yudao.module.system.api.approval.ApprovalConfigApi; |
| | | import cn.iocoder.yudao.module.system.api.dept.DeptApi; |
| | |
| | | private static final String RESIGNATION_APPROVE_BIZ_TYPE = "hrm_resignation_approve"; |
| | | |
| | | /** |
| | | * 离èç³è¯·å®¡æ¹ç BPM æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String RESIGNATION_APPROVE_PROCESS_KEY = "hrm_resignation_approve"; |
| | | |
| | | /** |
| | | * åå·¥ç¶æï¼ç¦»è |
| | | */ |
| | | private static final Integer EMPLOYEE_STATUS_RESIGNED = 3; |
| | |
| | | private StorageAttachmentApi storageAttachmentApi; |
| | | @Resource |
| | | private ApprovalConfigApi approvalConfigApi; |
| | | @Resource |
| | | private BpmProcessInstanceApi bpmProcessInstanceApi; |
| | | @Resource |
| | | private HrmEmployeeMapper employeeMapper; |
| | | @Resource |
| | |
| | | if (resignationApplicationMapper.submitAndResetAuditInfo(id, HrmAuditStatusEnum.PROCESS.getStatus()) != 1) { |
| | | throw exception(RESIGNATION_APPLICATION_SUBMIT_FAIL_NOT_EDITABLE); |
| | | } |
| | | |
| | | // 4. å建 BPM æµç¨å®ä¾ï¼ä½¿å®¡æ¹åºç°å¨ãåååå
¬ - æçæµç¨ã |
| | | bpmProcessInstanceApi.createProcessInstance(getLoginUserId(), |
| | | new BpmProcessInstanceCreateReqDTO() |
| | | .setProcessDefinitionKey(RESIGNATION_APPROVE_PROCESS_KEY) |
| | | .setBusinessKey(String.valueOf(id))); |
| | | } |
| | | |
| | | @Override |
| | |
| | | .build()); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateResignationApplicationAuditStatus(Long id, Integer bpmStatus, String reason) { |
| | | // BPM 审æ¹ç»ææ å°ä¸ºç¦»è审æ¹ç¶æï¼éè¿=20 / ä¸éè¿=30 / åæ¶=40 |
| | | Integer status; |
| | | if (BpmTaskStatusEnum.APPROVE.getStatus().equals(bpmStatus)) { |
| | | status = HrmAuditStatusEnum.APPROVE.getStatus(); |
| | | } else if (BpmTaskStatusEnum.REJECT.getStatus().equals(bpmStatus)) { |
| | | status = HrmAuditStatusEnum.REJECT.getStatus(); |
| | | } else if (BpmTaskStatusEnum.CANCEL.getStatus().equals(bpmStatus)) { |
| | | status = HrmAuditStatusEnum.CANCEL.getStatus(); |
| | | } else { |
| | | return; |
| | | } |
| | | HrmResignationApplicationDO application = resignationApplicationMapper.selectById(id); |
| | | if (resignationApplicationMapper.updateAuditStatusByBpm(id, status, reason) != 1) { |
| | | log.warn("[updateResignationApplicationAuditStatus] 离èç³è¯·({}) ä¸å¤äºå®¡æ¹ä¸ç¶æï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | return; |
| | | } |
| | | // 审æ¹éè¿åç½®ä¸å¡é»è¾ï¼ååå工主档 |
| | | if (status.equals(HrmAuditStatusEnum.APPROVE.getStatus()) && application != null) { |
| | | writeBackEmployee(application); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * è·åç¨æ·æµç§° |
| | | * |
| | |
| | | */ |
| | | void auditTransferApplication(Long id, Boolean pass, String reviewRemark); |
| | | |
| | | /** |
| | | * æ ¹æ® BPM 审æ¹ç»æååè°å²ç³è¯·å®¡æ¹ç¶æ |
| | | * |
| | | * 审æ¹éè¿æ¶ååå工主档ï¼é¨é¨ = ç®æ é¨é¨ï¼å²ä½ = ç®æ å²ä½ï¼ã |
| | | * |
| | | * @param id ç³è¯·ID |
| | | * @param bpmStatus BPM ä»»å¡ç¶æï¼2-éè¿ 3-ä¸éè¿ 4-åæ¶ï¼ |
| | | * @param reason å®¡æ¹æè§ / åæ¶åå |
| | | */ |
| | | void updateTransferApplicationAuditStatus(Long id, Integer bpmStatus, String reason); |
| | | |
| | | } |
| | |
| | | import cn.iocoder.yudao.module.hrm.dal.redis.HrmNoRedisDAO; |
| | | import cn.iocoder.yudao.module.hrm.enums.HrmAuditStatusEnum; |
| | | import cn.iocoder.yudao.module.hrm.enums.HrmTransferTypeEnum; |
| | | import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; |
| | | import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; |
| | | import cn.iocoder.yudao.module.system.api.approval.ApprovalConfigApi; |
| | | import cn.iocoder.yudao.module.system.api.dept.DeptApi; |
| | | import cn.iocoder.yudao.module.system.api.dept.PostApi; |
| | |
| | | */ |
| | | private static final String TRANSFER_APPROVE_BIZ_TYPE = "hrm_transfer_approve"; |
| | | |
| | | /** |
| | | * è°å²ç³è¯·å®¡æ¹ç BPM æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String TRANSFER_APPROVE_PROCESS_KEY = "hrm_transfer_approve"; |
| | | |
| | | @Resource |
| | | private HrmTransferApplicationMapper transferApplicationMapper; |
| | | @Resource |
| | |
| | | private StorageAttachmentApi storageAttachmentApi; |
| | | @Resource |
| | | private ApprovalConfigApi approvalConfigApi; |
| | | @Resource |
| | | private BpmProcessInstanceApi bpmProcessInstanceApi; |
| | | @Resource |
| | | private HrmEmployeeMapper employeeMapper; |
| | | |
| | |
| | | if (transferApplicationMapper.submitAndResetAuditInfo(id, HrmAuditStatusEnum.PROCESS.getStatus()) != 1) { |
| | | throw exception(TRANSFER_APPLICATION_SUBMIT_FAIL_NOT_EDITABLE); |
| | | } |
| | | |
| | | // 4. å建 BPM æµç¨å®ä¾ï¼ä½¿å®¡æ¹åºç°å¨ãåååå
¬ - æçæµç¨ã |
| | | bpmProcessInstanceApi.createProcessInstance(getLoginUserId(), |
| | | new BpmProcessInstanceCreateReqDTO() |
| | | .setProcessDefinitionKey(TRANSFER_APPROVE_PROCESS_KEY) |
| | | .setBusinessKey(String.valueOf(id))); |
| | | } |
| | | |
| | | @Override |
| | |
| | | .build()); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateTransferApplicationAuditStatus(Long id, Integer bpmStatus, String reason) { |
| | | // BPM 审æ¹ç»ææ å°ä¸ºè°å²å®¡æ¹ç¶æï¼éè¿=20 / ä¸éè¿=30 / åæ¶=40 |
| | | Integer status; |
| | | if (BpmTaskStatusEnum.APPROVE.getStatus().equals(bpmStatus)) { |
| | | status = HrmAuditStatusEnum.APPROVE.getStatus(); |
| | | } else if (BpmTaskStatusEnum.REJECT.getStatus().equals(bpmStatus)) { |
| | | status = HrmAuditStatusEnum.REJECT.getStatus(); |
| | | } else if (BpmTaskStatusEnum.CANCEL.getStatus().equals(bpmStatus)) { |
| | | status = HrmAuditStatusEnum.CANCEL.getStatus(); |
| | | } else { |
| | | return; |
| | | } |
| | | HrmTransferApplicationDO application = transferApplicationMapper.selectById(id); |
| | | if (transferApplicationMapper.updateAuditStatusByBpm(id, status, reason) != 1) { |
| | | log.warn("[updateTransferApplicationAuditStatus] è°å²ç³è¯·({}) ä¸å¤äºå®¡æ¹ä¸ç¶æï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | return; |
| | | } |
| | | // 审æ¹éè¿åç½®ä¸å¡é»è¾ï¼ååå工主档 |
| | | if (status.equals(HrmAuditStatusEnum.APPROVE.getStatus()) && application != null) { |
| | | writeBackEmployee(application); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * è·åç¨æ·æµç§° |
| | | * |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.hrm.service.approval.listener; |
| | | |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent; |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener; |
| | | import cn.iocoder.yudao.module.hrm.service.approval.HrmLeaveApplicationService; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * HRM 请åç³è¯·å®¡æ¹ç¶æçå¬å¨ |
| | | * |
| | | * çå¬ BPM 审æ¹ç»æï¼åå请åç³è¯·å®¡æ¹ç¶æï¼ä½¿è¯·å审æ¹ç»ä¸å¨ãåååå
¬ - æçæµç¨ã䏿µè½¬ã |
| | | */ |
| | | @Component |
| | | @Slf4j |
| | | public class HrmLeaveStatusListener extends BpmProcessInstanceStatusEventListener { |
| | | |
| | | private static final String PROCESS_DEFINITION_KEY = "hrm_leave_approve"; |
| | | |
| | | @Resource |
| | | private HrmLeaveApplicationService leaveApplicationService; |
| | | |
| | | @Override |
| | | protected String getProcessDefinitionKey() { |
| | | return PROCESS_DEFINITION_KEY; |
| | | } |
| | | |
| | | @Override |
| | | protected void onEvent(BpmProcessInstanceStatusEvent event) { |
| | | Long id; |
| | | try { |
| | | id = Long.parseLong(event.getBusinessKey()); |
| | | } catch (NumberFormatException e) { |
| | | log.warn("[onEvent] businessKey({}) 䏿¯ææç请åç³è¯·ç¼å·", event.getBusinessKey()); |
| | | return; |
| | | } |
| | | log.info("[onEvent] æ¶å°è¯·å审æ¹äºä»¶ï¼id={}, status={}", id, event.getStatus()); |
| | | try { |
| | | leaveApplicationService.updateLeaveApplicationAuditStatus(id, event.getStatus(), event.getReason()); |
| | | } catch (Exception e) { |
| | | log.error("[onEvent] åå请åç³è¯·å®¡æ¹ç¶æå¤±è´¥ï¼id={}", id, e); |
| | | } |
| | | } |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.hrm.service.approval.listener; |
| | | |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent; |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener; |
| | | import cn.iocoder.yudao.module.hrm.service.approval.HrmRegularizeApplicationService; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * HRM 转æ£ç³è¯·å®¡æ¹ç¶æçå¬å¨ |
| | | * |
| | | * çå¬ BPM 审æ¹ç»æï¼åå转æ£ç³è¯·å®¡æ¹ç¶æï¼ä½¿è½¬æ£å®¡æ¹ç»ä¸å¨ãåååå
¬ - æçæµç¨ã䏿µè½¬ã |
| | | */ |
| | | @Component |
| | | @Slf4j |
| | | public class HrmRegularizeStatusListener extends BpmProcessInstanceStatusEventListener { |
| | | |
| | | private static final String PROCESS_DEFINITION_KEY = "hrm_regularize_approve"; |
| | | |
| | | @Resource |
| | | private HrmRegularizeApplicationService regularizeApplicationService; |
| | | |
| | | @Override |
| | | protected String getProcessDefinitionKey() { |
| | | return PROCESS_DEFINITION_KEY; |
| | | } |
| | | |
| | | @Override |
| | | protected void onEvent(BpmProcessInstanceStatusEvent event) { |
| | | Long id; |
| | | try { |
| | | id = Long.parseLong(event.getBusinessKey()); |
| | | } catch (NumberFormatException e) { |
| | | log.warn("[onEvent] businessKey({}) 䏿¯ææç转æ£ç³è¯·ç¼å·", event.getBusinessKey()); |
| | | return; |
| | | } |
| | | log.info("[onEvent] æ¶å°è½¬æ£å®¡æ¹äºä»¶ï¼id={}, status={}", id, event.getStatus()); |
| | | try { |
| | | regularizeApplicationService.updateRegularizeApplicationAuditStatus(id, event.getStatus(), event.getReason()); |
| | | } catch (Exception e) { |
| | | log.error("[onEvent] åå转æ£ç³è¯·å®¡æ¹ç¶æå¤±è´¥ï¼id={}", id, e); |
| | | } |
| | | } |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.hrm.service.approval.listener; |
| | | |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent; |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener; |
| | | import cn.iocoder.yudao.module.hrm.service.approval.HrmResignationApplicationService; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * HRM 离èç³è¯·å®¡æ¹ç¶æçå¬å¨ |
| | | * |
| | | * çå¬ BPM 审æ¹ç»æï¼åå离èç³è¯·å®¡æ¹ç¶æï¼ä½¿ç¦»è审æ¹ç»ä¸å¨ãåååå
¬ - æçæµç¨ã䏿µè½¬ã |
| | | */ |
| | | @Component |
| | | @Slf4j |
| | | public class HrmResignationStatusListener extends BpmProcessInstanceStatusEventListener { |
| | | |
| | | private static final String PROCESS_DEFINITION_KEY = "hrm_resignation_approve"; |
| | | |
| | | @Resource |
| | | private HrmResignationApplicationService resignationApplicationService; |
| | | |
| | | @Override |
| | | protected String getProcessDefinitionKey() { |
| | | return PROCESS_DEFINITION_KEY; |
| | | } |
| | | |
| | | @Override |
| | | protected void onEvent(BpmProcessInstanceStatusEvent event) { |
| | | Long id; |
| | | try { |
| | | id = Long.parseLong(event.getBusinessKey()); |
| | | } catch (NumberFormatException e) { |
| | | log.warn("[onEvent] businessKey({}) 䏿¯ææç离èç³è¯·ç¼å·", event.getBusinessKey()); |
| | | return; |
| | | } |
| | | log.info("[onEvent] æ¶å°ç¦»è审æ¹äºä»¶ï¼id={}, status={}", id, event.getStatus()); |
| | | try { |
| | | resignationApplicationService.updateResignationApplicationAuditStatus(id, event.getStatus(), event.getReason()); |
| | | } catch (Exception e) { |
| | | log.error("[onEvent] åå离èç³è¯·å®¡æ¹ç¶æå¤±è´¥ï¼id={}", id, e); |
| | | } |
| | | } |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.hrm.service.approval.listener; |
| | | |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent; |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener; |
| | | import cn.iocoder.yudao.module.hrm.service.approval.HrmTransferApplicationService; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * HRM è°å²ç³è¯·å®¡æ¹ç¶æçå¬å¨ |
| | | * |
| | | * çå¬ BPM 审æ¹ç»æï¼ååè°å²ç³è¯·å®¡æ¹ç¶æï¼ä½¿è°å²å®¡æ¹ç»ä¸å¨ãåååå
¬ - æçæµç¨ã䏿µè½¬ã |
| | | */ |
| | | @Component |
| | | @Slf4j |
| | | public class HrmTransferStatusListener extends BpmProcessInstanceStatusEventListener { |
| | | |
| | | private static final String PROCESS_DEFINITION_KEY = "hrm_transfer_approve"; |
| | | |
| | | @Resource |
| | | private HrmTransferApplicationService transferApplicationService; |
| | | |
| | | @Override |
| | | protected String getProcessDefinitionKey() { |
| | | return PROCESS_DEFINITION_KEY; |
| | | } |
| | | |
| | | @Override |
| | | protected void onEvent(BpmProcessInstanceStatusEvent event) { |
| | | Long id; |
| | | try { |
| | | id = Long.parseLong(event.getBusinessKey()); |
| | | } catch (NumberFormatException e) { |
| | | log.warn("[onEvent] businessKey({}) 䏿¯ææçè°å²ç³è¯·ç¼å·", event.getBusinessKey()); |
| | | return; |
| | | } |
| | | log.info("[onEvent] æ¶å°è°å²å®¡æ¹äºä»¶ï¼id={}, status={}", id, event.getStatus()); |
| | | try { |
| | | transferApplicationService.updateTransferApplicationAuditStatus(id, event.getStatus(), event.getReason()); |
| | | } catch (Exception e) { |
| | | log.error("[onEvent] ååè°å²ç³è¯·å®¡æ¹ç¶æå¤±è´¥ï¼id={}", id, e); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | */ |
| | | void auditAttendanceException(Long id, Boolean pass, String reviewRemark); |
| | | |
| | | /** |
| | | * æ ¹æ® BPM 审æ¹ç»æååèå¤å¼å¸¸ç³è¯·å®¡æ¹ç¶æ |
| | | * |
| | | * 审æ¹éè¿æ¶æ§è¡åç½®ä¸å¡é»è¾ï¼è¡¥å¡åå¡«ä¸ä¸çæ¶é´ / å çååå çæ¶é¿ã |
| | | * |
| | | * @param id ç³è¯·ID |
| | | * @param bpmStatus BPM ä»»å¡ç¶æï¼2-éè¿ 3-ä¸éè¿ 4-åæ¶ï¼ |
| | | * @param reason å®¡æ¹æè§ / åæ¶åå |
| | | */ |
| | | void updateAttendanceExceptionAuditStatus(Long id, Integer bpmStatus, String reason); |
| | | |
| | | } |
| | |
| | | import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceExceptionSaveReqVO; |
| | | import cn.iocoder.yudao.module.hrm.dal.dataobject.attendance.HrmAttendanceExceptionDO; |
| | | import cn.iocoder.yudao.module.hrm.dal.mysql.attendance.HrmAttendanceExceptionMapper; |
| | | import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; |
| | | import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; |
| | | import cn.iocoder.yudao.module.system.api.approval.ApprovalConfigApi; |
| | | import cn.iocoder.yudao.module.system.api.storage.StorageAttachmentApi; |
| | | import cn.iocoder.yudao.module.system.api.user.AdminUserApi; |
| | |
| | | */ |
| | | private static final String ATTENDANCE_APPROVE_BIZ_TYPE = "hrm_attendance_approve"; |
| | | |
| | | /** |
| | | * èå¤å¼å¸¸ç³è¯·å®¡æ¹ç BPM æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String ATTENDANCE_APPROVE_PROCESS_KEY = "hrm_attendance_approve"; |
| | | |
| | | @Resource |
| | | private HrmAttendanceExceptionMapper attendanceExceptionMapper; |
| | | @Resource |
| | |
| | | private StorageAttachmentApi storageAttachmentApi; |
| | | @Resource |
| | | private ApprovalConfigApi approvalConfigApi; |
| | | @Resource |
| | | private BpmProcessInstanceApi bpmProcessInstanceApi; |
| | | @Resource |
| | | private AdminUserApi adminUserApi; |
| | | @Resource |
| | |
| | | if (attendanceExceptionMapper.submitAndResetAuditInfo(id, HrmAuditStatusEnum.PROCESS.getStatus()) != 1) { |
| | | throw exception(ATTENDANCE_EXCEPTION_SUBMIT_FAIL_NOT_EDITABLE); |
| | | } |
| | | |
| | | // 5. å建 BPM æµç¨å®ä¾ï¼ä½¿å®¡æ¹åºç°å¨ãåååå
¬ - æçæµç¨ã |
| | | bpmProcessInstanceApi.createProcessInstance(getLoginUserId(), |
| | | new BpmProcessInstanceCreateReqDTO() |
| | | .setProcessDefinitionKey(ATTENDANCE_APPROVE_PROCESS_KEY) |
| | | .setBusinessKey(String.valueOf(id))); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateAttendanceExceptionAuditStatus(Long id, Integer bpmStatus, String reason) { |
| | | // BPM 审æ¹ç»ææ å°ä¸ºèå¤å¼å¸¸å®¡æ¹ç¶æï¼éè¿=20 / ä¸éè¿=30 / åæ¶=40 |
| | | Integer status; |
| | | if (BpmTaskStatusEnum.APPROVE.getStatus().equals(bpmStatus)) { |
| | | status = HrmAuditStatusEnum.APPROVE.getStatus(); |
| | | } else if (BpmTaskStatusEnum.REJECT.getStatus().equals(bpmStatus)) { |
| | | status = HrmAuditStatusEnum.REJECT.getStatus(); |
| | | } else if (BpmTaskStatusEnum.CANCEL.getStatus().equals(bpmStatus)) { |
| | | status = HrmAuditStatusEnum.CANCEL.getStatus(); |
| | | } else { |
| | | return; |
| | | } |
| | | HrmAttendanceExceptionDO exception = attendanceExceptionMapper.selectById(id); |
| | | if (attendanceExceptionMapper.updateAuditStatusByBpm(id, status, reason) != 1) { |
| | | log.warn("[updateAttendanceExceptionAuditStatus] èå¤å¼å¸¸ç³è¯·({}) ä¸å¤äºå®¡æ¹ä¸ç¶æï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | return; |
| | | } |
| | | // 审æ¹éè¿åç½®ä¸å¡é»è¾ï¼è¡¥å¡åå¡«ä¸ä¸çæ¶é´ / å çååå çæ¶é¿ |
| | | if (status.equals(HrmAuditStatusEnum.APPROVE.getStatus()) && exception != null) { |
| | | if (HrmAttendanceExceptionTypeEnum.SUPPLEMENT.getType().equals(exception.getType())) { |
| | | log.info("[updateAttendanceExceptionAuditStatus] è¡¥å¡ç³è¯·({}) 审æ¹éè¿ï¼å¼å§æ´æ°èå¤è®°å½", id); |
| | | attendanceRecordService.supplementClockIn(exception); |
| | | } else if (HrmAttendanceExceptionTypeEnum.OVERTIME.getType().equals(exception.getType())) { |
| | | log.info("[updateAttendanceExceptionAuditStatus] å çç³è¯·({}) 审æ¹éè¿ï¼å¼å§ååå çæ¶é¿", id); |
| | | attendanceRecordService.recordOvertime(exception); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * è·åç¨æ·æµç§° |
| | | * |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.hrm.service.attendance.listener; |
| | | |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent; |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener; |
| | | import cn.iocoder.yudao.module.hrm.service.attendance.HrmAttendanceExceptionService; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * HRM èå¤å¼å¸¸ç³è¯·å®¡æ¹ç¶æçå¬å¨ |
| | | * |
| | | * çå¬ BPM 审æ¹ç»æï¼ååèå¤å¼å¸¸ç³è¯·å®¡æ¹ç¶æï¼ä½¿èå¤å¼å¸¸å®¡æ¹ç»ä¸å¨ãåååå
¬ - æçæµç¨ã䏿µè½¬ã |
| | | */ |
| | | @Component |
| | | @Slf4j |
| | | public class HrmAttendanceStatusListener extends BpmProcessInstanceStatusEventListener { |
| | | |
| | | private static final String PROCESS_DEFINITION_KEY = "hrm_attendance_approve"; |
| | | |
| | | @Resource |
| | | private HrmAttendanceExceptionService attendanceExceptionService; |
| | | |
| | | @Override |
| | | protected String getProcessDefinitionKey() { |
| | | return PROCESS_DEFINITION_KEY; |
| | | } |
| | | |
| | | @Override |
| | | protected void onEvent(BpmProcessInstanceStatusEvent event) { |
| | | Long id; |
| | | try { |
| | | id = Long.parseLong(event.getBusinessKey()); |
| | | } catch (NumberFormatException e) { |
| | | log.warn("[onEvent] businessKey({}) 䏿¯ææçèå¤å¼å¸¸ç³è¯·ç¼å·", event.getBusinessKey()); |
| | | return; |
| | | } |
| | | log.info("[onEvent] æ¶å°èå¤å¼å¸¸å®¡æ¹äºä»¶ï¼id={}, status={}", id, event.getStatus()); |
| | | try { |
| | | attendanceExceptionService.updateAttendanceExceptionAuditStatus(id, event.getStatus(), event.getReason()); |
| | | } catch (Exception e) { |
| | | log.error("[onEvent] ååèå¤å¼å¸¸ç³è¯·å®¡æ¹ç¶æå¤±è´¥ï¼id={}", id, e); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | void auditAppraise(Long id, Boolean pass, String reviewRemark); |
| | | |
| | | /** |
| | | * æ ¹æ® BPM 审æ¹ç»æåå绩æèæ ¸æ¹æ¡å®¡æ¹ç¶æ |
| | | * |
| | | * 审æ¹éè¿æ¶æ¹æ¡ç¶ææµè½¬ä¸ºãå·²åå¸ãã |
| | | * |
| | | * @param id æ¹æ¡ç¼å· |
| | | * @param bpmStatus BPM ä»»å¡ç¶æï¼2-éè¿ 3-ä¸éè¿ 4-åæ¶ï¼ |
| | | * @param reason å®¡æ¹æè§ / åæ¶åå |
| | | */ |
| | | void updateAppraiseAuditStatus(Long id, Integer bpmStatus, String reason); |
| | | |
| | | /** |
| | | * ä¿ååå·¥èæ ¸ç»æï¼æå工鿿 æåï¼èªå¨è®¡ç®ç»¼åå¾å䏿¡£çº§ï¼ |
| | | */ |
| | | void saveAppraiseResult(HrmPerformanceAppraiseResultSaveReqVO saveReqVO); |
| | |
| | | import cn.iocoder.yudao.module.hrm.dal.mysql.performanceappraise.*; |
| | | import cn.iocoder.yudao.module.hrm.enums.HrmAuditStatusEnum; |
| | | import cn.iocoder.yudao.module.hrm.enums.ErrorCodeConstants; |
| | | import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; |
| | | import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; |
| | | import cn.iocoder.yudao.module.system.api.approval.ApprovalConfigApi; |
| | | import cn.iocoder.yudao.module.system.api.user.AdminUserApi; |
| | | import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; |
| | |
| | | */ |
| | | private static final String APPRAISE_APPROVE_BIZ_TYPE = "performance_appraise_approve"; |
| | | |
| | | /** |
| | | * 绩æèæ ¸æ¹æ¡å®¡æ¹ç BPM æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String APPRAISE_APPROVE_PROCESS_KEY = "performance_appraise_approve"; |
| | | |
| | | @Resource |
| | | private HrmPerformanceAppraiseMapper appraiseMapper; |
| | | @Resource |
| | |
| | | private HrmEmployeeMapper employeeMapper; |
| | | @Resource |
| | | private ApprovalConfigApi approvalConfigApi; |
| | | @Resource |
| | | private BpmProcessInstanceApi bpmProcessInstanceApi; |
| | | @Resource |
| | | private AdminUserApi adminUserApi; |
| | | |
| | |
| | | if (appraiseMapper.submitAndResetAuditInfo(id, HrmAuditStatusEnum.PROCESS.getStatus()) != 1) { |
| | | throw exception(ErrorCodeConstants.PERFORMANCE_APPRAISE_SUBMIT_FAIL_NOT_EDITABLE); |
| | | } |
| | | |
| | | // 4. å建 BPM æµç¨å®ä¾ï¼ä½¿å®¡æ¹åºç°å¨ãåååå
¬ - æçæµç¨ã |
| | | bpmProcessInstanceApi.createProcessInstance(getLoginUserId(), |
| | | new BpmProcessInstanceCreateReqDTO() |
| | | .setProcessDefinitionKey(APPRAISE_APPROVE_PROCESS_KEY) |
| | | .setBusinessKey(String.valueOf(id))); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateAppraiseAuditStatus(Long id, Integer bpmStatus, String reason) { |
| | | // BPM 审æ¹ç»ææ å°ä¸ºæ¹æ¡å®¡æ¹ç¶æï¼éè¿=20 / ä¸éè¿=30 / åæ¶=40 |
| | | Integer auditStatus; |
| | | if (BpmTaskStatusEnum.APPROVE.getStatus().equals(bpmStatus)) { |
| | | auditStatus = HrmAuditStatusEnum.APPROVE.getStatus(); |
| | | } else if (BpmTaskStatusEnum.REJECT.getStatus().equals(bpmStatus)) { |
| | | auditStatus = HrmAuditStatusEnum.REJECT.getStatus(); |
| | | } else if (BpmTaskStatusEnum.CANCEL.getStatus().equals(bpmStatus)) { |
| | | auditStatus = HrmAuditStatusEnum.CANCEL.getStatus(); |
| | | } else { |
| | | return; |
| | | } |
| | | // å®¡æ ¸éè¿åæ¹æ¡ç¶ææµè½¬ä¸ºãå·²åå¸ãï¼å
¶ä½æ
åµä¿æåæ¹æ¡ç¶æ |
| | | HrmPerformanceAppraiseDO appraise = appraiseMapper.selectById(id); |
| | | Integer status = HrmAuditStatusEnum.APPROVE.getStatus().equals(auditStatus) |
| | | ? STATUS_PUBLISHED |
| | | : (appraise != null ? appraise.getStatus() : null); |
| | | if (appraiseMapper.updateAuditStatusByBpm(id, auditStatus, status, reason) != 1) { |
| | | log.warn("[updateAppraiseAuditStatus] 绩æèæ ¸æ¹æ¡({}) ä¸å¤äºå®¡æ¹ä¸ç¶æï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * è·åç¨æ·æµç§° |
| | | * |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.hrm.service.performanceappraise.listener; |
| | | |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent; |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener; |
| | | import cn.iocoder.yudao.module.hrm.service.performanceappraise.HrmPerformanceAppraiseService; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * HRM 绩æèæ ¸æ¹æ¡å®¡æ¹ç¶æçå¬å¨ |
| | | * |
| | | * çå¬ BPM 审æ¹ç»æï¼åå绩æèæ ¸æ¹æ¡å®¡æ¹ç¶æï¼ä½¿æ¹æ¡å®¡æ¹ç»ä¸å¨ãåååå
¬ - æçæµç¨ã䏿µè½¬ã |
| | | */ |
| | | @Component |
| | | @Slf4j |
| | | public class HrmPerformanceAppraiseStatusListener extends BpmProcessInstanceStatusEventListener { |
| | | |
| | | private static final String PROCESS_DEFINITION_KEY = "performance_appraise_approve"; |
| | | |
| | | @Resource |
| | | private HrmPerformanceAppraiseService performanceAppraiseService; |
| | | |
| | | @Override |
| | | protected String getProcessDefinitionKey() { |
| | | return PROCESS_DEFINITION_KEY; |
| | | } |
| | | |
| | | @Override |
| | | protected void onEvent(BpmProcessInstanceStatusEvent event) { |
| | | Long id; |
| | | try { |
| | | id = Long.parseLong(event.getBusinessKey()); |
| | | } catch (NumberFormatException e) { |
| | | log.warn("[onEvent] businessKey({}) 䏿¯ææç绩æèæ ¸æ¹æ¡ç¼å·", event.getBusinessKey()); |
| | | return; |
| | | } |
| | | log.info("[onEvent] æ¶å°ç»©æèæ ¸æ¹æ¡å®¡æ¹äºä»¶ï¼id={}, status={}", id, event.getStatus()); |
| | | try { |
| | | performanceAppraiseService.updateAppraiseAuditStatus(id, event.getStatus(), event.getReason()); |
| | | } catch (Exception e) { |
| | | log.error("[onEvent] åå绩æèæ ¸æ¹æ¡å®¡æ¹ç¶æå¤±è´¥ï¼id={}", id, e); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pd.project.vo.MesPdProjectPageReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pd.project.MesPdProjectDO; |
| | | import cn.iocoder.yudao.module.mes.enums.pd.MesPdProjectStatusEnum; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | |
| | | .set(MesPdProjectDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æååï¼ä»
å½åæ®ä»å¤äºå®¡æ¹ä¸æ¶æ´æ°ï¼é¿å
éå¤ / è¿æäºä»¶è¦çäººå·¥å®¡æ ¸ç»æ |
| | | * |
| | | * @param id ç¼å· |
| | | * @param status ç®æ ç¶æï¼å¾
彿¡£ / å¾
å®¡æ ¸ï¼ |
| | | * @param reviewRemark å®¡æ¹æè§ |
| | | * @return å½±åè¡æ° |
| | | */ |
| | | default int updateAuditStatusByBpm(Long id, Integer status, String reviewRemark) { |
| | | return update(null, new LambdaUpdateWrapper<MesPdProjectDO>() |
| | | .eq(MesPdProjectDO::getId, id) |
| | | .eq(MesPdProjectDO::getStatus, MesPdProjectStatusEnum.APPROVING.getStatus()) |
| | | .set(MesPdProjectDO::getStatus, status) |
| | | .set(MesPdProjectDO::getReviewTime, LocalDateTime.now()) |
| | | .set(MesPdProjectDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | } |
| | |
| | | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pd.techconfirm.vo.ProductTechConfirmPageReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pd.techconfirm.ProductTechConfirmDO; |
| | | import cn.iocoder.yudao.module.mes.enums.pd.MesPdTechConfirmStatusEnum; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | |
| | | .set(ProductTechConfirmDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æååï¼ä»
å½åæ®ä»å¤äºå¾
å®¡æ ¸æ¶æ´æ°ï¼é¿å
éå¤ / è¿æäºä»¶è¦çäººå·¥å®¡æ ¸ç»æ |
| | | * |
| | | * @param id ç¼å· |
| | | * @param status ç®æ ç¶æï¼å·²å®¡æ ¸ / å®¡æ ¸ä¸éè¿ï¼ |
| | | * @param reviewRemark å®¡æ¹æè§ |
| | | * @return å½±åè¡æ° |
| | | */ |
| | | default int updateAuditStatusByBpm(Long id, Integer status, String reviewRemark) { |
| | | return update(null, new LambdaUpdateWrapper<ProductTechConfirmDO>() |
| | | .eq(ProductTechConfirmDO::getId, id) |
| | | .eq(ProductTechConfirmDO::getStatus, MesPdTechConfirmStatusEnum.PENDING_AUDIT.getStatus()) |
| | | .set(ProductTechConfirmDO::getStatus, status) |
| | | .set(ProductTechConfirmDO::getReviewTime, LocalDateTime.now()) |
| | | .set(ProductTechConfirmDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | } |
| | |
| | | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.equipmentreceipt.vo.MesWmEquipmentReceiptPageReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.equipmentreceipt.MesWmEquipmentReceiptDO; |
| | | import cn.iocoder.yudao.module.mes.enums.wm.MesWmEquipmentReceiptStatusEnum; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | |
| | | .set(MesWmEquipmentReceiptDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æååï¼ä»
å½åæ®ä»å¤äºå®¡æ¹ä¸æ¶æ´æ°ï¼é¿å
éå¤ / è¿æäºä»¶è¦çäººå·¥å®¡æ ¸ç»æ |
| | | * |
| | | * @param id ç¼å· |
| | | * @param status ç®æ ç¶æï¼å·²å®¡æ¹ / è稿 / å·²åæ¶ï¼ |
| | | * @param reviewRemark å®¡æ¹æè§ |
| | | * @return å½±åè¡æ° |
| | | */ |
| | | default int updateAuditStatusByBpm(Long id, Integer status, String reviewRemark) { |
| | | return update(null, new LambdaUpdateWrapper<MesWmEquipmentReceiptDO>() |
| | | .eq(MesWmEquipmentReceiptDO::getId, id) |
| | | .eq(MesWmEquipmentReceiptDO::getStatus, MesWmEquipmentReceiptStatusEnum.APPROVING.getStatus()) |
| | | .set(MesWmEquipmentReceiptDO::getStatus, status) |
| | | .set(MesWmEquipmentReceiptDO::getReviewTime, LocalDateTime.now()) |
| | | .set(MesWmEquipmentReceiptDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | } |
| | |
| | | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.itemreceipt.vo.MesWmItemReceiptPageReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.itemreceipt.MesWmItemReceiptDO; |
| | | import cn.iocoder.yudao.module.mes.enums.wm.MesWmItemReceiptStatusEnum; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | |
| | | .set(MesWmItemReceiptDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æååï¼ä»
å½åæ®ä»å¤äºå®¡æ¹ä¸æ¶æ´æ°ï¼é¿å
éå¤ / è¿æäºä»¶è¦çäººå·¥å®¡æ ¸ç»æ |
| | | * |
| | | * @param id ç¼å· |
| | | * @param status ç®æ ç¶æï¼å¾
æ§è¡å
¥åº / è稿 / å·²åæ¶ï¼ |
| | | * @param reviewRemark å®¡æ¹æè§ |
| | | * @return å½±åè¡æ° |
| | | */ |
| | | default int updateAuditStatusByBpm(Long id, Integer status, String reviewRemark) { |
| | | return update(null, new LambdaUpdateWrapper<MesWmItemReceiptDO>() |
| | | .eq(MesWmItemReceiptDO::getId, id) |
| | | .eq(MesWmItemReceiptDO::getStatus, MesWmItemReceiptStatusEnum.APPROVING.getStatus()) |
| | | .set(MesWmItemReceiptDO::getStatus, status) |
| | | .set(MesWmItemReceiptDO::getReviewTime, LocalDateTime.now()) |
| | | .set(MesWmItemReceiptDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | } |
| | |
| | | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.miscissue.vo.MesWmMiscIssuePageReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.miscissue.MesWmMiscIssueDO; |
| | | import cn.iocoder.yudao.module.mes.enums.wm.MesWmMiscIssueStatusEnum; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | |
| | | .set(MesWmMiscIssueDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æååï¼ä»
å½åæ®ä»å¤äºå®¡æ¹ä¸æ¶æ´æ°ï¼é¿å
éå¤ / è¿æäºä»¶è¦çäººå·¥å®¡æ ¸ç»æ |
| | | * |
| | | * @param id ç¼å· |
| | | * @param status ç®æ ç¶æï¼å¾
æ§è¡åºåº / è稿 / å·²åæ¶ï¼ |
| | | * @param reviewRemark å®¡æ¹æè§ |
| | | * @return å½±åè¡æ° |
| | | */ |
| | | default int updateAuditStatusByBpm(Long id, Integer status, String reviewRemark) { |
| | | return update(null, new LambdaUpdateWrapper<MesWmMiscIssueDO>() |
| | | .eq(MesWmMiscIssueDO::getId, id) |
| | | .eq(MesWmMiscIssueDO::getStatus, MesWmMiscIssueStatusEnum.APPROVING.getStatus()) |
| | | .set(MesWmMiscIssueDO::getStatus, status) |
| | | .set(MesWmMiscIssueDO::getReviewTime, LocalDateTime.now()) |
| | | .set(MesWmMiscIssueDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | } |
| | |
| | | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.miscreceipt.vo.MesWmMiscReceiptPageReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.miscreceipt.MesWmMiscReceiptDO; |
| | | import cn.iocoder.yudao.module.mes.enums.wm.MesWmMiscReceiptStatusEnum; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | |
| | | .set(MesWmMiscReceiptDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æååï¼ä»
å½åæ®ä»å¤äºå®¡æ¹ä¸æ¶æ´æ°ï¼é¿å
éå¤ / è¿æäºä»¶è¦çäººå·¥å®¡æ ¸ç»æ |
| | | * |
| | | * @param id ç¼å· |
| | | * @param status ç®æ ç¶æï¼å·²å®¡æ¹ / è稿 / å·²åæ¶ï¼ |
| | | * @param reviewRemark å®¡æ¹æè§ |
| | | * @return å½±åè¡æ° |
| | | */ |
| | | default int updateAuditStatusByBpm(Long id, Integer status, String reviewRemark) { |
| | | return update(null, new LambdaUpdateWrapper<MesWmMiscReceiptDO>() |
| | | .eq(MesWmMiscReceiptDO::getId, id) |
| | | .eq(MesWmMiscReceiptDO::getStatus, MesWmMiscReceiptStatusEnum.APPROVING.getStatus()) |
| | | .set(MesWmMiscReceiptDO::getStatus, status) |
| | | .set(MesWmMiscReceiptDO::getReviewTime, LocalDateTime.now()) |
| | | .set(MesWmMiscReceiptDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | } |
| | |
| | | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.returnvendor.vo.MesWmReturnVendorPageReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.returnvendor.MesWmReturnVendorDO; |
| | | import cn.iocoder.yudao.module.mes.enums.wm.MesWmReturnVendorStatusEnum; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | |
| | | .set(MesWmReturnVendorDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | /** |
| | | * BPM 审æ¹ç»æååï¼ä»
å½åæ®ä»å¤äºå®¡æ¹ä¸æ¶æ´æ°ï¼é¿å
éå¤ / è¿æäºä»¶è¦çäººå·¥å®¡æ ¸ç»æ |
| | | * |
| | | * @param id ç¼å· |
| | | * @param status ç®æ ç¶æï¼å¾
æ§è¡éè´§ / è稿 / å·²åæ¶ï¼ |
| | | * @param reviewRemark å®¡æ¹æè§ |
| | | * @return å½±åè¡æ° |
| | | */ |
| | | default int updateAuditStatusByBpm(Long id, Integer status, String reviewRemark) { |
| | | return update(null, new LambdaUpdateWrapper<MesWmReturnVendorDO>() |
| | | .eq(MesWmReturnVendorDO::getId, id) |
| | | .eq(MesWmReturnVendorDO::getStatus, MesWmReturnVendorStatusEnum.APPROVING.getStatus()) |
| | | .set(MesWmReturnVendorDO::getStatus, status) |
| | | .set(MesWmReturnVendorDO::getReviewTime, LocalDateTime.now()) |
| | | .set(MesWmReturnVendorDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | } |
| | |
| | | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.task.vo.MesWmStockTakingTaskPageReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.task.MesWmStockTakingTaskDO; |
| | | import cn.iocoder.yudao.module.mes.enums.wm.MesWmStockTakingTaskStatusEnum; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * BPM 审æ¹éè¿ååï¼ä»
å½ä»»å¡å¤äºãçç¹ä¸ + ç»æå®¡æ¹å¾
å®¡æ ¸ãæ¶æ´æ°ä¸ºå·²å®æ |
| | | * |
| | | * å¾
å®¡æ ¸ç夿æ¡ä»¶ä¸æå¡å± isResultApprovalPending ä¸è´ï¼reviewTime éç©ºä¸ reviewerId ä¸ºç©ºï¼ |
| | | * é¿å
éå¤ / è¿æäºä»¶è¦çäººå·¥å®¡æ ¸ç»æã |
| | | * |
| | | * @param id çç¹ä»»å¡ç¼å· |
| | | * @param status ç®æ ç¶æï¼å·²å®æï¼ |
| | | * @param reviewRemark å®¡æ¹æè§ |
| | | * @return å½±åè¡æ° |
| | | */ |
| | | default int updateAuditStatusByBpm(Long id, Integer status, String reviewRemark) { |
| | | return update(null, new LambdaUpdateWrapper<MesWmStockTakingTaskDO>() |
| | | .eq(MesWmStockTakingTaskDO::getId, id) |
| | | .eq(MesWmStockTakingTaskDO::getStatus, MesWmStockTakingTaskStatusEnum.APPROVING.getStatus()) |
| | | .isNotNull(MesWmStockTakingTaskDO::getReviewTime) |
| | | .isNull(MesWmStockTakingTaskDO::getReviewerId) |
| | | .set(MesWmStockTakingTaskDO::getStatus, status) |
| | | .set(MesWmStockTakingTaskDO::getReviewTime, LocalDateTime.now()) |
| | | .set(MesWmStockTakingTaskDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | /** |
| | | * BPM 审æ¹ä¸éè¿ / æ¤éååï¼ä»»å¡ä¿æçç¹ä¸ï¼æ¸
空æäº¤æ è®°ä»¥ä¾¿éæ°æäº¤ç»æå®¡æ¹ |
| | | * |
| | | * æ¸
空 reviewTimeï¼æäº¤æ è®°ï¼å isResultApprovalPending è¿å falseï¼ |
| | | * å
è®¸ç¨æ·ä¿®æ¹å®çåéæ°æäº¤ï¼ä¿ç reviewRemark ä¾ç¨æ·æ¥çä¸éè¿åå ã |
| | | * |
| | | * @param id çç¹ä»»å¡ç¼å· |
| | | * @param reviewRemark å®¡æ¹æè§ / åæ¶åå |
| | | * @return å½±åè¡æ° |
| | | */ |
| | | default int resetResultApprovalByBpm(Long id, String reviewRemark) { |
| | | return update(null, new LambdaUpdateWrapper<MesWmStockTakingTaskDO>() |
| | | .eq(MesWmStockTakingTaskDO::getId, id) |
| | | .eq(MesWmStockTakingTaskDO::getStatus, MesWmStockTakingTaskStatusEnum.APPROVING.getStatus()) |
| | | .isNotNull(MesWmStockTakingTaskDO::getReviewTime) |
| | | .isNull(MesWmStockTakingTaskDO::getReviewerId) |
| | | .set(MesWmStockTakingTaskDO::getReviewTime, null) |
| | | .set(MesWmStockTakingTaskDO::getReviewRemark, reviewRemark)); |
| | | } |
| | | |
| | | /** |
| | | * æ¸
ç©ºå®¡æ ¸æ è®° |
| | | * |
| | | * ç¨äºä»»å¡åæ¶åæ¸
é¤ç»æå®¡æ¹ç迹 |
| | |
| | | void auditProject(Long id, Boolean pass, String reviewRemark); |
| | | |
| | | /** |
| | | * åå BPM 审æ¹ç»æï¼ä¾ BPM æµç¨ç¶æçå¬å¨è°ç¨ï¼ |
| | | * |
| | | * ä»
å¨åæ®å¤äºå®¡æ¹ä¸æ¶çæï¼å®¡æ¹éè¿ç½®ä¸ºå¾
彿¡£ï¼å®¡æ¹ä¸éè¿éåå¾
å®¡æ ¸ã |
| | | * è®¾è®¡é¡¹ç®æ²¡æã已忶ãç¶æï¼å
¶ä½ BPM ç»æå¿½ç¥ã |
| | | * |
| | | * @param id ç¼å· |
| | | * @param bpmStatus BPM ä»»å¡ç¶æï¼è§ {@link cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum} |
| | | * @param reason å®¡æ¹æè§ / åæ¶åå |
| | | */ |
| | | void updateProjectAuditStatus(Long id, Integer bpmStatus, String reason); |
| | | |
| | | /** |
| | | * 彿¡£è®¾è®¡é¡¹ç®ï¼å¾
彿¡£â已彿¡£ï¼ |
| | | * <p> |
| | | * åæ¶èªå¨åå»ºå½æ¡£å°è´¦è®°å½ |
| | |
| | | import cn.hutool.core.util.ObjUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; |
| | | import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pd.project.vo.MesPdProjectImportExcelVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pd.project.vo.MesPdProjectImportRespVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pd.project.vo.MesPdProjectPageReqVO; |
| | |
| | | */ |
| | | private static final String PROJECT_APPROVE_BIZ_TYPE = "mes_pd_project_approve"; |
| | | |
| | | /** |
| | | * 设计项ç®å®¡æ¹ç BPM æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String PROJECT_APPROVE_PROCESS_KEY = "mes-pd-project-audit"; |
| | | |
| | | @Resource |
| | | private MesPdProjectMapper projectMapper; |
| | | |
| | | @Resource |
| | | private BpmProcessInstanceApi bpmProcessInstanceApi; |
| | | |
| | | @Resource |
| | | @Lazy |
| | |
| | | approvalConfigApi.validateApprovalEnabledAndGetApprovers(PROJECT_APPROVE_BIZ_TYPE); |
| | | // 4. ç¶æç½®ä¸ºå®¡æ¹ä¸ï¼å¹¶æ¸
空ä¸ä¸è½®å®¡æ ¸ç»æ |
| | | projectMapper.submitAndResetAuditInfo(id, MesPdProjectStatusEnum.APPROVING.getStatus()); |
| | | // 5. å建 BPM æµç¨å®ä¾ï¼ä½¿å®¡æ¹åºç°å¨ãåååå
¬ - æçæµç¨ã |
| | | bpmProcessInstanceApi.createProcessInstance(getLoginUserId(), |
| | | new BpmProcessInstanceCreateReqDTO() |
| | | .setProcessDefinitionKey(PROJECT_APPROVE_PROCESS_KEY) |
| | | .setBusinessKey(String.valueOf(id))); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateProjectAuditStatus(Long id, Integer bpmStatus, String reason) { |
| | | // BPM 审æ¹ç»ææ å°ä¸ºé¡¹ç®ç¶æï¼éè¿=å¾
彿¡£ / ä¸éè¿=å¾
å®¡æ ¸ï¼å¯ä¿®æ¹åéæ°æäº¤ï¼ |
| | | Integer status; |
| | | if (BpmTaskStatusEnum.APPROVE.getStatus().equals(bpmStatus)) { |
| | | status = MesPdProjectStatusEnum.AUDIT.getStatus(); |
| | | } else if (BpmTaskStatusEnum.REJECT.getStatus().equals(bpmStatus)) { |
| | | status = MesPdProjectStatusEnum.UPLOAD.getStatus(); |
| | | } else { |
| | | // è®¾è®¡é¡¹ç®æ²¡æã已忶ãç¶æï¼å
¶ä½ BPM ç»æï¼å¦æ¤æ¶ï¼å¿½ç¥ |
| | | log.warn("[updateProjectAuditStatus] 忽ç¥ä¸æ¯æç BPM ç¶æ({})ï¼projectId={}", bpmStatus, id); |
| | | return; |
| | | } |
| | | if (projectMapper.updateAuditStatusByBpm(id, status, reason) != 1) { |
| | | log.warn("[updateProjectAuditStatus] 设计项ç®({}) ä¸å¤äºå®¡æ¹ä¸ç¶æï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | } |
| | | } |
| | | |
| | | @Override |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.service.pd.project.listener; |
| | | |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent; |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener; |
| | | import cn.iocoder.yudao.module.mes.service.pd.project.MesPdProjectService; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * MES 设计项ç®å®¡æ¹ç¶æçå¬å¨ |
| | | * |
| | | * çå¬ BPM 审æ¹ç»æï¼åå设计项ç®ç¶æï¼ä½¿å®¡æ¹ç»ä¸å¨ãåååå
¬ - æçæµç¨ã䏿µè½¬ã |
| | | */ |
| | | @Component |
| | | @Slf4j |
| | | public class MesPdProjectStatusListener extends BpmProcessInstanceStatusEventListener { |
| | | |
| | | private static final String PROCESS_DEFINITION_KEY = "mes-pd-project-audit"; |
| | | |
| | | @Resource |
| | | private MesPdProjectService projectService; |
| | | |
| | | @Override |
| | | protected String getProcessDefinitionKey() { |
| | | return PROCESS_DEFINITION_KEY; |
| | | } |
| | | |
| | | @Override |
| | | protected void onEvent(BpmProcessInstanceStatusEvent event) { |
| | | Long projectId; |
| | | try { |
| | | projectId = Long.parseLong(event.getBusinessKey()); |
| | | } catch (NumberFormatException e) { |
| | | log.warn("[onEvent] businessKey({}) 䏿¯ææç设计项ç®ç¼å·", event.getBusinessKey()); |
| | | return; |
| | | } |
| | | log.info("[onEvent] æ¶å°è®¾è®¡é¡¹ç®å®¡æ¹äºä»¶ï¼projectId={}, status={}", projectId, event.getStatus()); |
| | | try { |
| | | projectService.updateProjectAuditStatus(projectId, event.getStatus(), event.getReason()); |
| | | } catch (Exception e) { |
| | | log.error("[onEvent] åå设计项ç®å®¡æ¹ç¶æå¤±è´¥ï¼projectId={}", projectId, e); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | void auditTechConfirm(Long id, Boolean pass, String reviewRemark); |
| | | |
| | | /** |
| | | * åå BPM 审æ¹ç»æï¼ä¾ BPM æµç¨ç¶æçå¬å¨è°ç¨ï¼ |
| | | * |
| | | * ä»
å¨åæ®å¤äºå¾
å®¡æ ¸æ¶çæï¼å®¡æ¹éè¿ç½®ä¸ºå·²å®¡æ ¸ï¼å®¡æ¹ä¸éè¿ç½®ä¸ºå®¡æ ¸ä¸éè¿ã |
| | | * ææ¯ç¡®è®¤å½æ²¡æã已忶ãç¶æï¼å
¶ä½ BPM ç»æå¿½ç¥ã |
| | | * |
| | | * @param id ç¼å· |
| | | * @param bpmStatus BPM ä»»å¡ç¶æï¼è§ {@link cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum} |
| | | * @param reason å®¡æ¹æè§ / åæ¶åå |
| | | */ |
| | | void updateTechConfirmAuditStatus(Long id, Integer bpmStatus, String reason); |
| | | |
| | | /** |
| | | * 客æ·ç¡®è®¤ï¼å·²å®¡æ ¸ â 客æ·å·²ç¡®è®¤ï¼ |
| | | * |
| | | * ç±ä¸å¡åä»£å®¢æ·æ§è¡ï¼è®°å½å®¢æ·ç¡®è®¤äººä¸å®¢æ·ç¡®è®¤æ¶é´ã |
| | |
| | | import cn.iocoder.yudao.framework.common.exception.ServiceException; |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; |
| | | import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; |
| | | import cn.iocoder.yudao.module.crm.api.customer.CrmCustomerApi; |
| | | import cn.iocoder.yudao.module.crm.api.customer.dto.CrmCustomerRespDTO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pd.techconfirm.vo.ProductTechConfirmImportExcelVO; |
| | |
| | | */ |
| | | private static final String TECH_CONFIRM_APPROVE_BIZ_TYPE = "pd_tech_confirm_approve"; |
| | | |
| | | /** |
| | | * ææ¯ç¡®è®¤å½å®¡æ¹ç BPM æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String TECH_CONFIRM_APPROVE_PROCESS_KEY = "pd_tech_confirm_approve"; |
| | | |
| | | @Resource |
| | | private ProductTechConfirmMapper techConfirmMapper; |
| | | |
| | | @Resource |
| | | private BpmProcessInstanceApi bpmProcessInstanceApi; |
| | | |
| | | @Resource |
| | | private AdminUserApi adminUserApi; |
| | |
| | | // ç¨ UpdateWrapper èé updateByIdï¼MyBatis-Plus é»è®¤æ´æ°çç¥ä¼å¿½ç¥ nullï¼ |
| | | // ç´æ¥ updateById æ æ³æå®¡æ ¸ä¸éè¿åæ®ççå®¡æ ¸äºº / å®¡æ ¸æ¶é´ / å®¡æ ¸æè§çæ£æ¸
空ã |
| | | techConfirmMapper.submitAndResetAuditInfo(id, MesPdTechConfirmStatusEnum.PENDING_AUDIT.getStatus()); |
| | | // 4. å建 BPM æµç¨å®ä¾ï¼ä½¿å®¡æ¹åºç°å¨ãåååå
¬ - æçæµç¨ã |
| | | bpmProcessInstanceApi.createProcessInstance(getLoginUserId(), |
| | | new BpmProcessInstanceCreateReqDTO() |
| | | .setProcessDefinitionKey(TECH_CONFIRM_APPROVE_PROCESS_KEY) |
| | | .setBusinessKey(String.valueOf(id))); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateTechConfirmAuditStatus(Long id, Integer bpmStatus, String reason) { |
| | | // BPM 审æ¹ç»ææ å°ä¸ºç¡®è®¤å½ç¶æï¼éè¿=å·²å®¡æ ¸ / ä¸éè¿=å®¡æ ¸ä¸éè¿ï¼å¯ä¿®æ¹åéæ°æäº¤ï¼ |
| | | Integer status; |
| | | if (BpmTaskStatusEnum.APPROVE.getStatus().equals(bpmStatus)) { |
| | | status = MesPdTechConfirmStatusEnum.AUDITED.getStatus(); |
| | | } else if (BpmTaskStatusEnum.REJECT.getStatus().equals(bpmStatus)) { |
| | | status = MesPdTechConfirmStatusEnum.REJECTED.getStatus(); |
| | | } else { |
| | | // ææ¯ç¡®è®¤å½æ²¡æã已忶ãç¶æï¼å
¶ä½ BPM ç»æï¼å¦æ¤æ¶ï¼å¿½ç¥ |
| | | log.warn("[updateTechConfirmAuditStatus] 忽ç¥ä¸æ¯æç BPM ç¶æ({})ï¼techConfirmId={}", bpmStatus, id); |
| | | return; |
| | | } |
| | | if (techConfirmMapper.updateAuditStatusByBpm(id, status, reason) != 1) { |
| | | log.warn("[updateTechConfirmAuditStatus] ææ¯ç¡®è®¤å½({}) ä¸å¤äºå¾
å®¡æ ¸ç¶æï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | } |
| | | } |
| | | |
| | | @Override |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.service.pd.techconfirm.listener; |
| | | |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent; |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener; |
| | | import cn.iocoder.yudao.module.mes.service.pd.techconfirm.ProductTechConfirmService; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * MES äº§åææ¯ç¡®è®¤å½å®¡æ¹ç¶æçå¬å¨ |
| | | * |
| | | * çå¬ BPM 审æ¹ç»æï¼ååææ¯ç¡®è®¤å½ç¶æï¼ä½¿å®¡æ¹ç»ä¸å¨ãåååå
¬ - æçæµç¨ã䏿µè½¬ã |
| | | */ |
| | | @Component |
| | | @Slf4j |
| | | public class ProductTechConfirmStatusListener extends BpmProcessInstanceStatusEventListener { |
| | | |
| | | private static final String PROCESS_DEFINITION_KEY = "pd_tech_confirm_approve"; |
| | | |
| | | @Resource |
| | | private ProductTechConfirmService techConfirmService; |
| | | |
| | | @Override |
| | | protected String getProcessDefinitionKey() { |
| | | return PROCESS_DEFINITION_KEY; |
| | | } |
| | | |
| | | @Override |
| | | protected void onEvent(BpmProcessInstanceStatusEvent event) { |
| | | Long techConfirmId; |
| | | try { |
| | | techConfirmId = Long.parseLong(event.getBusinessKey()); |
| | | } catch (NumberFormatException e) { |
| | | log.warn("[onEvent] businessKey({}) 䏿¯ææçææ¯ç¡®è®¤å½ç¼å·", event.getBusinessKey()); |
| | | return; |
| | | } |
| | | log.info("[onEvent] æ¶å°ææ¯ç¡®è®¤å½å®¡æ¹äºä»¶ï¼techConfirmId={}, status={}", techConfirmId, event.getStatus()); |
| | | try { |
| | | techConfirmService.updateTechConfirmAuditStatus(techConfirmId, event.getStatus(), event.getReason()); |
| | | } catch (Exception e) { |
| | | log.error("[onEvent] ååææ¯ç¡®è®¤å½å®¡æ¹ç¶æå¤±è´¥ï¼techConfirmId={}", techConfirmId, e); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | */ |
| | | void auditEquipmentReceipt(Long id, Boolean pass, String reviewRemark); |
| | | |
| | | /** |
| | | * åå BPM 审æ¹ç»æï¼ä¾ BPM æµç¨ç¶æçå¬å¨è°ç¨ï¼ |
| | | * |
| | | * ä»
å¨åæ®å¤äºå®¡æ¹ä¸æ¶çæï¼éè¿=å·²å®¡æ¹ / ä¸éè¿=è稿 / åæ¶=已忶ã |
| | | * |
| | | * @param id ç¼å· |
| | | * @param bpmStatus BPM ä»»å¡ç¶æï¼è§ {@link cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum} |
| | | * @param reason å®¡æ¹æè§ / åæ¶åå |
| | | */ |
| | | void updateEquipmentReceiptAuditStatus(Long id, Integer bpmStatus, String reason); |
| | | |
| | | void finishEquipmentReceipt(Long id); |
| | | |
| | | void cancelEquipmentReceipt(Long id); |
| | |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; |
| | | import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.equipmentreceipt.vo.MesWmEquipmentReceiptImportExcelVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.equipmentreceipt.vo.MesWmEquipmentReceiptImportRespVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.equipmentreceipt.vo.MesWmEquipmentReceiptPageReqVO; |
| | |
| | | */ |
| | | private static final String EQUIPMENT_RECEIPT_APPROVE_BIZ_TYPE = "equipment_receipt_approve"; |
| | | |
| | | /** |
| | | * 设å¤å
¥åºå审æ¹ç BPM æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String EQUIPMENT_RECEIPT_APPROVE_PROCESS_KEY = "equipment_receipt_approve"; |
| | | |
| | | @Resource |
| | | private MesWmEquipmentReceiptMapper equipmentReceiptMapper; |
| | | |
| | | @Resource |
| | | private BpmProcessInstanceApi bpmProcessInstanceApi; |
| | | @Resource |
| | | @Lazy |
| | | private MesWmEquipmentReceiptLineService equipmentReceiptLineService; |
| | |
| | | approvalConfigApi.validateApprovalEnabledAndGetApprovers(EQUIPMENT_RECEIPT_APPROVE_BIZ_TYPE); |
| | | // 4. ç¶æç½®ä¸ºå®¡æ¹ä¸ï¼å¹¶æ¸
空ä¸ä¸è½®å®¡æ ¸ç»æ |
| | | equipmentReceiptMapper.submitAndResetAuditInfo(id, MesWmEquipmentReceiptStatusEnum.APPROVING.getStatus()); |
| | | // 5. å建 BPM æµç¨å®ä¾ï¼ä½¿å®¡æ¹åºç°å¨ãåååå
¬ - æçæµç¨ã |
| | | bpmProcessInstanceApi.createProcessInstance(getLoginUserId(), |
| | | new BpmProcessInstanceCreateReqDTO() |
| | | .setProcessDefinitionKey(EQUIPMENT_RECEIPT_APPROVE_PROCESS_KEY) |
| | | .setBusinessKey(String.valueOf(id))); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateEquipmentReceiptAuditStatus(Long id, Integer bpmStatus, String reason) { |
| | | // BPM 审æ¹ç»ææ å°ä¸ºåæ®ç¶æï¼éè¿=å·²å®¡æ¹ / ä¸éè¿=è稿 / åæ¶=已忶 |
| | | Integer status; |
| | | if (BpmTaskStatusEnum.APPROVE.getStatus().equals(bpmStatus)) { |
| | | status = MesWmEquipmentReceiptStatusEnum.APPROVED.getStatus(); |
| | | } else if (BpmTaskStatusEnum.REJECT.getStatus().equals(bpmStatus)) { |
| | | status = MesWmEquipmentReceiptStatusEnum.PREPARE.getStatus(); |
| | | } else if (BpmTaskStatusEnum.CANCEL.getStatus().equals(bpmStatus)) { |
| | | status = MesWmEquipmentReceiptStatusEnum.CANCELED.getStatus(); |
| | | } else { |
| | | return; |
| | | } |
| | | if (equipmentReceiptMapper.updateAuditStatusByBpm(id, status, reason) != 1) { |
| | | log.warn("[updateEquipmentReceiptAuditStatus] 设å¤å
¥åºå({}) ä¸å¤äºå®¡æ¹ä¸ç¶æï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | } |
| | | } |
| | | |
| | | @Override |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.service.wm.equipmentreceipt.listener; |
| | | |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent; |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener; |
| | | import cn.iocoder.yudao.module.mes.service.wm.equipmentreceipt.MesWmEquipmentReceiptService; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * MES 设å¤å
¥åºå审æ¹ç¶æçå¬å¨ |
| | | * |
| | | * çå¬ BPM 审æ¹ç»æï¼åå设å¤å
¥åºåç¶æï¼ä½¿å®¡æ¹ç»ä¸å¨ãåååå
¬ - æçæµç¨ã䏿µè½¬ã |
| | | */ |
| | | @Component |
| | | @Slf4j |
| | | public class MesWmEquipmentReceiptStatusListener extends BpmProcessInstanceStatusEventListener { |
| | | |
| | | private static final String PROCESS_DEFINITION_KEY = "equipment_receipt_approve"; |
| | | |
| | | @Resource |
| | | private MesWmEquipmentReceiptService equipmentReceiptService; |
| | | |
| | | @Override |
| | | protected String getProcessDefinitionKey() { |
| | | return PROCESS_DEFINITION_KEY; |
| | | } |
| | | |
| | | @Override |
| | | protected void onEvent(BpmProcessInstanceStatusEvent event) { |
| | | Long receiptId; |
| | | try { |
| | | receiptId = Long.parseLong(event.getBusinessKey()); |
| | | } catch (NumberFormatException e) { |
| | | log.warn("[onEvent] businessKey({}) 䏿¯ææç设å¤å
¥åºåç¼å·", event.getBusinessKey()); |
| | | return; |
| | | } |
| | | log.info("[onEvent] æ¶å°è®¾å¤å
¥åºå审æ¹äºä»¶ï¼receiptId={}, status={}", receiptId, event.getStatus()); |
| | | try { |
| | | equipmentReceiptService.updateEquipmentReceiptAuditStatus(receiptId, event.getStatus(), event.getReason()); |
| | | } catch (Exception e) { |
| | | log.error("[onEvent] åå设å¤å
¥åºå审æ¹ç¶æå¤±è´¥ï¼receiptId={}", receiptId, e); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | void auditItemReceipt(Long id, Boolean pass, String reviewRemark); |
| | | |
| | | /** |
| | | * åå BPM 审æ¹ç»æï¼ä¾ BPM æµç¨ç¶æçå¬å¨è°ç¨ï¼ |
| | | * |
| | | * ä»
å¨åæ®å¤äºå®¡æ¹ä¸æ¶çæï¼éè¿=å¾
æ§è¡å
¥åº / ä¸éè¿=è稿 / åæ¶=已忶ã |
| | | * |
| | | * @param id ç¼å· |
| | | * @param bpmStatus BPM ä»»å¡ç¶æï¼è§ {@link cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum} |
| | | * @param reason å®¡æ¹æè§ / åæ¶åå |
| | | */ |
| | | void updateItemReceiptAuditStatus(Long id, Integer bpmStatus, String reason); |
| | | |
| | | /** |
| | | * 导å
¥éè´å
¥åºå |
| | | * |
| | | * @param importList 导å
¥æ°æ® |
| | |
| | | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; |
| | | import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; |
| | | import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.itemreceipt.vo.MesWmItemReceiptImportExcelVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.itemreceipt.vo.MesWmItemReceiptImportRespVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.itemreceipt.vo.MesWmItemReceiptPageReqVO; |
| | |
| | | */ |
| | | private static final String ITEM_RECEIPT_APPROVE_BIZ_TYPE = "item_receipt_approve"; |
| | | |
| | | /** |
| | | * éè´å
¥åºå审æ¹ç BPM æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String ITEM_RECEIPT_APPROVE_PROCESS_KEY = "item_receipt_approve"; |
| | | |
| | | @Resource |
| | | private MesWmItemReceiptMapper itemReceiptMapper; |
| | | |
| | | @Resource |
| | | private BpmProcessInstanceApi bpmProcessInstanceApi; |
| | | |
| | | @Resource |
| | | private MesWmItemReceiptLineService itemReceiptLineService; |
| | |
| | | |
| | | // æäº¤ï¼è稿 â å¾
䏿¶ï¼ï¼å¹¶æ¸
空ä¸ä¸è½®å®¡æ ¸ç»æ |
| | | itemReceiptMapper.submitAndResetAuditInfo(id, MesWmItemReceiptStatusEnum.APPROVING.getStatus()); |
| | | // å建 BPM æµç¨å®ä¾ï¼ä½¿å®¡æ¹åºç°å¨ãåååå
¬ - æçæµç¨ã |
| | | bpmProcessInstanceApi.createProcessInstance(getLoginUserId(), |
| | | new BpmProcessInstanceCreateReqDTO() |
| | | .setProcessDefinitionKey(ITEM_RECEIPT_APPROVE_PROCESS_KEY) |
| | | .setBusinessKey(String.valueOf(id))); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateItemReceiptAuditStatus(Long id, Integer bpmStatus, String reason) { |
| | | // BPM 审æ¹ç»ææ å°ä¸ºåæ®ç¶æï¼éè¿=å¾
æ§è¡å
¥åº / ä¸éè¿=è稿 / åæ¶=已忶 |
| | | Integer status; |
| | | if (BpmTaskStatusEnum.APPROVE.getStatus().equals(bpmStatus)) { |
| | | status = MesWmItemReceiptStatusEnum.APPROVED.getStatus(); |
| | | } else if (BpmTaskStatusEnum.REJECT.getStatus().equals(bpmStatus)) { |
| | | status = MesWmItemReceiptStatusEnum.PREPARE.getStatus(); |
| | | } else if (BpmTaskStatusEnum.CANCEL.getStatus().equals(bpmStatus)) { |
| | | status = MesWmItemReceiptStatusEnum.CANCELED.getStatus(); |
| | | } else { |
| | | return; |
| | | } |
| | | if (itemReceiptMapper.updateAuditStatusByBpm(id, status, reason) != 1) { |
| | | log.warn("[updateItemReceiptAuditStatus] éè´å
¥åºå({}) ä¸å¤äºå®¡æ¹ä¸ç¶æï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | } |
| | | } |
| | | |
| | | @Override |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.service.wm.itemreceipt.listener; |
| | | |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent; |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener; |
| | | import cn.iocoder.yudao.module.mes.service.wm.itemreceipt.MesWmItemReceiptService; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * MES éè´å
¥åºå审æ¹ç¶æçå¬å¨ |
| | | * |
| | | * çå¬ BPM 审æ¹ç»æï¼ååéè´å
¥åºåç¶æï¼ä½¿å®¡æ¹ç»ä¸å¨ãåååå
¬ - æçæµç¨ã䏿µè½¬ã |
| | | */ |
| | | @Component |
| | | @Slf4j |
| | | public class MesWmItemReceiptStatusListener extends BpmProcessInstanceStatusEventListener { |
| | | |
| | | private static final String PROCESS_DEFINITION_KEY = "item_receipt_approve"; |
| | | |
| | | @Resource |
| | | private MesWmItemReceiptService itemReceiptService; |
| | | |
| | | @Override |
| | | protected String getProcessDefinitionKey() { |
| | | return PROCESS_DEFINITION_KEY; |
| | | } |
| | | |
| | | @Override |
| | | protected void onEvent(BpmProcessInstanceStatusEvent event) { |
| | | Long receiptId; |
| | | try { |
| | | receiptId = Long.parseLong(event.getBusinessKey()); |
| | | } catch (NumberFormatException e) { |
| | | log.warn("[onEvent] businessKey({}) 䏿¯ææçéè´å
¥åºåç¼å·", event.getBusinessKey()); |
| | | return; |
| | | } |
| | | log.info("[onEvent] æ¶å°éè´å
¥åºå审æ¹äºä»¶ï¼receiptId={}, status={}", receiptId, event.getStatus()); |
| | | try { |
| | | itemReceiptService.updateItemReceiptAuditStatus(receiptId, event.getStatus(), event.getReason()); |
| | | } catch (Exception e) { |
| | | log.error("[onEvent] ååéè´å
¥åºå审æ¹ç¶æå¤±è´¥ï¼receiptId={}", receiptId, e); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | void auditMiscIssue(Long id, Boolean pass, String reviewRemark); |
| | | |
| | | /** |
| | | * åå BPM 审æ¹ç»æï¼ä¾ BPM æµç¨ç¶æçå¬å¨è°ç¨ï¼ |
| | | * |
| | | * ä»
å¨åæ®å¤äºå®¡æ¹ä¸æ¶çæï¼éè¿=å¾
æ§è¡åºåº / ä¸éè¿=è稿 / åæ¶=已忶ã |
| | | * |
| | | * @param id ç¼å· |
| | | * @param bpmStatus BPM ä»»å¡ç¶æï¼è§ {@link cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum} |
| | | * @param reason å®¡æ¹æè§ / åæ¶åå |
| | | */ |
| | | void updateMiscIssueAuditStatus(Long id, Integer bpmStatus, String reason); |
| | | |
| | | /** |
| | | * æ§è¡åºåºï¼å¾
æ§è¡åºåº â 已宿ï¼ï¼æ£ååºå |
| | | * |
| | | * @param id ç¼å· |
| | |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; |
| | | import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; |
| | | import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.miscissue.vo.MesWmMiscIssueImportExcelVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.miscissue.vo.MesWmMiscIssueImportRespVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.miscissue.vo.MesWmMiscIssuePageReqVO; |
| | |
| | | */ |
| | | private static final String MISC_ISSUE_APPROVE_BIZ_TYPE = "misc_issue_approve"; |
| | | |
| | | /** |
| | | * æé¡¹åºåºå审æ¹ç BPM æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String MISC_ISSUE_APPROVE_PROCESS_KEY = "misc_issue_approve"; |
| | | |
| | | @Resource |
| | | private MesWmMiscIssueMapper miscIssueMapper; |
| | | |
| | | @Resource |
| | | private BpmProcessInstanceApi bpmProcessInstanceApi; |
| | | |
| | | @Resource |
| | | private MesWmMiscIssueLineService miscIssueLineService; |
| | |
| | | approvalConfigApi.validateApprovalEnabledAndGetApprovers(MISC_ISSUE_APPROVE_BIZ_TYPE); |
| | | // 4. æäº¤å®¡æ¹ï¼è稿 â 审æ¹ä¸ï¼ï¼å¹¶æ¸
空ä¸ä¸è½®å®¡æ ¸ç»æ |
| | | miscIssueMapper.submitAndResetAuditInfo(id, MesWmMiscIssueStatusEnum.APPROVING.getStatus()); |
| | | // 5. å建 BPM æµç¨å®ä¾ï¼ä½¿å®¡æ¹åºç°å¨ãåååå
¬ - æçæµç¨ã |
| | | bpmProcessInstanceApi.createProcessInstance(getLoginUserId(), |
| | | new BpmProcessInstanceCreateReqDTO() |
| | | .setProcessDefinitionKey(MISC_ISSUE_APPROVE_PROCESS_KEY) |
| | | .setBusinessKey(String.valueOf(id))); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateMiscIssueAuditStatus(Long id, Integer bpmStatus, String reason) { |
| | | // BPM 审æ¹ç»ææ å°ä¸ºåæ®ç¶æï¼éè¿=å¾
æ§è¡åºåº / ä¸éè¿=è稿 / åæ¶=已忶 |
| | | Integer status; |
| | | if (BpmTaskStatusEnum.APPROVE.getStatus().equals(bpmStatus)) { |
| | | status = MesWmMiscIssueStatusEnum.APPROVED.getStatus(); |
| | | } else if (BpmTaskStatusEnum.REJECT.getStatus().equals(bpmStatus)) { |
| | | status = MesWmMiscIssueStatusEnum.PREPARE.getStatus(); |
| | | } else if (BpmTaskStatusEnum.CANCEL.getStatus().equals(bpmStatus)) { |
| | | status = MesWmMiscIssueStatusEnum.CANCELED.getStatus(); |
| | | } else { |
| | | return; |
| | | } |
| | | if (miscIssueMapper.updateAuditStatusByBpm(id, status, reason) != 1) { |
| | | log.warn("[updateMiscIssueAuditStatus] æé¡¹åºåºå({}) ä¸å¤äºå®¡æ¹ä¸ç¶æï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | } |
| | | } |
| | | |
| | | @Override |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.service.wm.miscissue.listener; |
| | | |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent; |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener; |
| | | import cn.iocoder.yudao.module.mes.service.wm.miscissue.MesWmMiscIssueService; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * MES æé¡¹åºåºå审æ¹ç¶æçå¬å¨ |
| | | * |
| | | * çå¬ BPM 审æ¹ç»æï¼ååæé¡¹åºåºåç¶æï¼ä½¿å®¡æ¹ç»ä¸å¨ãåååå
¬ - æçæµç¨ã䏿µè½¬ã |
| | | */ |
| | | @Component |
| | | @Slf4j |
| | | public class MesWmMiscIssueStatusListener extends BpmProcessInstanceStatusEventListener { |
| | | |
| | | private static final String PROCESS_DEFINITION_KEY = "misc_issue_approve"; |
| | | |
| | | @Resource |
| | | private MesWmMiscIssueService miscIssueService; |
| | | |
| | | @Override |
| | | protected String getProcessDefinitionKey() { |
| | | return PROCESS_DEFINITION_KEY; |
| | | } |
| | | |
| | | @Override |
| | | protected void onEvent(BpmProcessInstanceStatusEvent event) { |
| | | Long issueId; |
| | | try { |
| | | issueId = Long.parseLong(event.getBusinessKey()); |
| | | } catch (NumberFormatException e) { |
| | | log.warn("[onEvent] businessKey({}) 䏿¯ææçæé¡¹åºåºåç¼å·", event.getBusinessKey()); |
| | | return; |
| | | } |
| | | log.info("[onEvent] æ¶å°æé¡¹åºåºå审æ¹äºä»¶ï¼issueId={}, status={}", issueId, event.getStatus()); |
| | | try { |
| | | miscIssueService.updateMiscIssueAuditStatus(issueId, event.getStatus(), event.getReason()); |
| | | } catch (Exception e) { |
| | | log.error("[onEvent] ååæé¡¹åºåºå审æ¹ç¶æå¤±è´¥ï¼issueId={}", issueId, e); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | void auditMiscReceipt(Long id, Boolean pass, String reviewRemark); |
| | | |
| | | /** |
| | | * åå BPM 审æ¹ç»æï¼ä¾ BPM æµç¨ç¶æçå¬å¨è°ç¨ï¼ |
| | | * |
| | | * ä»
å¨åæ®å¤äºå®¡æ¹ä¸æ¶çæï¼éè¿=å·²å®¡æ¹ / ä¸éè¿=è稿 / åæ¶=已忶ã |
| | | * |
| | | * @param id ç¼å· |
| | | * @param bpmStatus BPM ä»»å¡ç¶æï¼è§ {@link cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum} |
| | | * @param reason å®¡æ¹æè§ / åæ¶åå |
| | | */ |
| | | void updateMiscReceiptAuditStatus(Long id, Integer bpmStatus, String reason); |
| | | |
| | | /** |
| | | * æ§è¡å
¥åºï¼å·²å®¡æ¹ â 已宿ï¼ï¼æ´æ°åºåå°è´¦ |
| | | * |
| | | * @param id ç¼å· |
| | |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; |
| | | import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.miscreceipt.vo.MesWmMiscReceiptImportExcelVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.miscreceipt.vo.MesWmMiscReceiptImportRespVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.miscreceipt.vo.MesWmMiscReceiptPageReqVO; |
| | |
| | | */ |
| | | private static final String MISC_RECEIPT_APPROVE_BIZ_TYPE = "misc_receipt_approve"; |
| | | |
| | | /** |
| | | * æé¡¹å
¥åºå审æ¹ç BPM æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String MISC_RECEIPT_APPROVE_PROCESS_KEY = "misc_receipt_approve"; |
| | | |
| | | @Resource |
| | | private MesWmMiscReceiptMapper miscReceiptMapper; |
| | | |
| | | @Resource |
| | | private BpmProcessInstanceApi bpmProcessInstanceApi; |
| | | |
| | | @Resource |
| | | @Lazy |
| | |
| | | approvalConfigApi.validateApprovalEnabledAndGetApprovers(MISC_RECEIPT_APPROVE_BIZ_TYPE); |
| | | // 4. æäº¤å®¡æ¹ï¼è稿 â 审æ¹ä¸ï¼ï¼å¹¶æ¸
空ä¸ä¸è½®å®¡æ ¸ç»æ |
| | | miscReceiptMapper.submitAndResetAuditInfo(id, MesWmMiscReceiptStatusEnum.APPROVING.getStatus()); |
| | | // 5. å建 BPM æµç¨å®ä¾ï¼ä½¿å®¡æ¹åºç°å¨ãåååå
¬ - æçæµç¨ã |
| | | bpmProcessInstanceApi.createProcessInstance(getLoginUserId(), |
| | | new BpmProcessInstanceCreateReqDTO() |
| | | .setProcessDefinitionKey(MISC_RECEIPT_APPROVE_PROCESS_KEY) |
| | | .setBusinessKey(String.valueOf(id))); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateMiscReceiptAuditStatus(Long id, Integer bpmStatus, String reason) { |
| | | // BPM 审æ¹ç»ææ å°ä¸ºåæ®ç¶æï¼éè¿=å·²å®¡æ¹ / ä¸éè¿=è稿 / åæ¶=已忶 |
| | | Integer status; |
| | | if (BpmTaskStatusEnum.APPROVE.getStatus().equals(bpmStatus)) { |
| | | status = MesWmMiscReceiptStatusEnum.APPROVED.getStatus(); |
| | | } else if (BpmTaskStatusEnum.REJECT.getStatus().equals(bpmStatus)) { |
| | | status = MesWmMiscReceiptStatusEnum.PREPARE.getStatus(); |
| | | } else if (BpmTaskStatusEnum.CANCEL.getStatus().equals(bpmStatus)) { |
| | | status = MesWmMiscReceiptStatusEnum.CANCELED.getStatus(); |
| | | } else { |
| | | return; |
| | | } |
| | | if (miscReceiptMapper.updateAuditStatusByBpm(id, status, reason) != 1) { |
| | | log.warn("[updateMiscReceiptAuditStatus] æé¡¹å
¥åºå({}) ä¸å¤äºå®¡æ¹ä¸ç¶æï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | } |
| | | } |
| | | |
| | | @Override |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.service.wm.miscreceipt.listener; |
| | | |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent; |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener; |
| | | import cn.iocoder.yudao.module.mes.service.wm.miscreceipt.MesWmMiscReceiptService; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * MES æé¡¹å
¥åºå审æ¹ç¶æçå¬å¨ |
| | | * |
| | | * çå¬ BPM 审æ¹ç»æï¼ååæé¡¹å
¥åºåç¶æï¼ä½¿å®¡æ¹ç»ä¸å¨ãåååå
¬ - æçæµç¨ã䏿µè½¬ã |
| | | */ |
| | | @Component |
| | | @Slf4j |
| | | public class MesWmMiscReceiptStatusListener extends BpmProcessInstanceStatusEventListener { |
| | | |
| | | private static final String PROCESS_DEFINITION_KEY = "misc_receipt_approve"; |
| | | |
| | | @Resource |
| | | private MesWmMiscReceiptService miscReceiptService; |
| | | |
| | | @Override |
| | | protected String getProcessDefinitionKey() { |
| | | return PROCESS_DEFINITION_KEY; |
| | | } |
| | | |
| | | @Override |
| | | protected void onEvent(BpmProcessInstanceStatusEvent event) { |
| | | Long receiptId; |
| | | try { |
| | | receiptId = Long.parseLong(event.getBusinessKey()); |
| | | } catch (NumberFormatException e) { |
| | | log.warn("[onEvent] businessKey({}) 䏿¯ææçæé¡¹å
¥åºåç¼å·", event.getBusinessKey()); |
| | | return; |
| | | } |
| | | log.info("[onEvent] æ¶å°æé¡¹å
¥åºå审æ¹äºä»¶ï¼receiptId={}, status={}", receiptId, event.getStatus()); |
| | | try { |
| | | miscReceiptService.updateMiscReceiptAuditStatus(receiptId, event.getStatus(), event.getReason()); |
| | | } catch (Exception e) { |
| | | log.error("[onEvent] ååæé¡¹å
¥åºå审æ¹ç¶æå¤±è´¥ï¼receiptId={}", receiptId, e); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | void auditReturnVendor(Long id, Boolean pass, String reviewRemark); |
| | | |
| | | /** |
| | | * åå BPM 审æ¹ç»æï¼ä¾ BPM æµç¨ç¶æçå¬å¨è°ç¨ï¼ |
| | | * |
| | | * ä»
å¨åæ®å¤äºå®¡æ¹ä¸æ¶çæï¼éè¿=å¾
æ§è¡éè´§ / ä¸éè¿=è稿 / åæ¶=已忶ã |
| | | * |
| | | * @param id ç¼å· |
| | | * @param bpmStatus BPM ä»»å¡ç¶æï¼è§ {@link cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum} |
| | | * @param reason å®¡æ¹æè§ / åæ¶åå |
| | | */ |
| | | void updateReturnVendorAuditStatus(Long id, Integer bpmStatus, String reason); |
| | | |
| | | /** |
| | | * æ§è¡æ£è´§æ ¡éªï¼ä»
æ ¡éªå·²å®¡æ¹åæ®çæç»æ°éä¸è´æ§ï¼ä¸ä¿®æ¹åæ®ç¶æï¼ |
| | | * |
| | | * åæ®ç¶æåªè½ç±å®¡æ ¸ï¼APPROVING â APPROVEDï¼ä¸éè´§ï¼APPROVED â FINISHEDï¼æ¨è¿ã |
| | |
| | | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; |
| | | import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; |
| | | import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.returnvendor.vo.MesWmReturnVendorImportExcelVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.returnvendor.vo.MesWmReturnVendorImportRespVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.returnvendor.vo.MesWmReturnVendorPageReqVO; |
| | |
| | | */ |
| | | private static final String RETURN_VENDOR_APPROVE_BIZ_TYPE = "return_vendor_approve"; |
| | | |
| | | /** |
| | | * ä¾åºåéè´§å审æ¹ç BPM æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String RETURN_VENDOR_APPROVE_PROCESS_KEY = "return_vendor_approve"; |
| | | |
| | | @Resource |
| | | private MesWmReturnVendorMapper returnVendorMapper; |
| | | |
| | | @Resource |
| | | private BpmProcessInstanceApi bpmProcessInstanceApi; |
| | | |
| | | @Resource |
| | | private MesWmReturnVendorLineService returnVendorLineService; |
| | |
| | | approvalConfigApi.validateApprovalEnabledAndGetApprovers(RETURN_VENDOR_APPROVE_BIZ_TYPE); |
| | | // 4. æäº¤å®¡æ¹ï¼è稿 â å¾
æ£è´§ï¼ï¼å¹¶æ¸
空ä¸ä¸è½®å®¡æ ¸ç»æ |
| | | returnVendorMapper.submitAndResetAuditInfo(id, MesWmReturnVendorStatusEnum.APPROVING.getStatus()); |
| | | // 5. å建 BPM æµç¨å®ä¾ï¼ä½¿å®¡æ¹åºç°å¨ãåååå
¬ - æçæµç¨ã |
| | | bpmProcessInstanceApi.createProcessInstance(getLoginUserId(), |
| | | new BpmProcessInstanceCreateReqDTO() |
| | | .setProcessDefinitionKey(RETURN_VENDOR_APPROVE_PROCESS_KEY) |
| | | .setBusinessKey(String.valueOf(id))); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateReturnVendorAuditStatus(Long id, Integer bpmStatus, String reason) { |
| | | // BPM 审æ¹ç»ææ å°ä¸ºåæ®ç¶æï¼éè¿=å¾
æ§è¡éè´§ / ä¸éè¿=è稿 / åæ¶=已忶 |
| | | Integer status; |
| | | if (BpmTaskStatusEnum.APPROVE.getStatus().equals(bpmStatus)) { |
| | | status = MesWmReturnVendorStatusEnum.APPROVED.getStatus(); |
| | | } else if (BpmTaskStatusEnum.REJECT.getStatus().equals(bpmStatus)) { |
| | | status = MesWmReturnVendorStatusEnum.PREPARE.getStatus(); |
| | | } else if (BpmTaskStatusEnum.CANCEL.getStatus().equals(bpmStatus)) { |
| | | status = MesWmReturnVendorStatusEnum.CANCELED.getStatus(); |
| | | } else { |
| | | return; |
| | | } |
| | | if (returnVendorMapper.updateAuditStatusByBpm(id, status, reason) != 1) { |
| | | log.warn("[updateReturnVendorAuditStatus] ä¾åºåéè´§å({}) ä¸å¤äºå®¡æ¹ä¸ç¶æï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | } |
| | | } |
| | | |
| | | @Override |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.service.wm.returnvendor.listener; |
| | | |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent; |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener; |
| | | import cn.iocoder.yudao.module.mes.service.wm.returnvendor.MesWmReturnVendorService; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * MES ä¾åºåéè´§å审æ¹ç¶æçå¬å¨ |
| | | * |
| | | * çå¬ BPM 审æ¹ç»æï¼ååä¾åºåéè´§åç¶æï¼ä½¿å®¡æ¹ç»ä¸å¨ãåååå
¬ - æçæµç¨ã䏿µè½¬ã |
| | | */ |
| | | @Component |
| | | @Slf4j |
| | | public class MesWmReturnVendorStatusListener extends BpmProcessInstanceStatusEventListener { |
| | | |
| | | private static final String PROCESS_DEFINITION_KEY = "return_vendor_approve"; |
| | | |
| | | @Resource |
| | | private MesWmReturnVendorService returnVendorService; |
| | | |
| | | @Override |
| | | protected String getProcessDefinitionKey() { |
| | | return PROCESS_DEFINITION_KEY; |
| | | } |
| | | |
| | | @Override |
| | | protected void onEvent(BpmProcessInstanceStatusEvent event) { |
| | | Long returnVendorId; |
| | | try { |
| | | returnVendorId = Long.parseLong(event.getBusinessKey()); |
| | | } catch (NumberFormatException e) { |
| | | log.warn("[onEvent] businessKey({}) 䏿¯ææçä¾åºåéè´§åç¼å·", event.getBusinessKey()); |
| | | return; |
| | | } |
| | | log.info("[onEvent] æ¶å°ä¾åºåéè´§å审æ¹äºä»¶ï¼returnVendorId={}, status={}", returnVendorId, event.getStatus()); |
| | | try { |
| | | returnVendorService.updateReturnVendorAuditStatus(returnVendorId, event.getStatus(), event.getReason()); |
| | | } catch (Exception e) { |
| | | log.error("[onEvent] ååä¾åºåéè´§å审æ¹ç¶æå¤±è´¥ï¼returnVendorId={}", returnVendorId, e); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | void auditStockTakingResult(Long id, Boolean pass, String reviewRemark); |
| | | |
| | | /** |
| | | * åå BPM çç¹ç»æå®¡æ¹ç»æï¼ä¾ BPM æµç¨ç¶æçå¬å¨è°ç¨ï¼ |
| | | * |
| | | * ä»
å¨ä»»å¡å¤äºãçç¹ä¸ + ç»æå®¡æ¹å¾
å®¡æ ¸ãæ¶çæï¼ |
| | | * éè¿ â ä»»å¡ç½®ä¸ºå·²å®æå¹¶è§£å»åºåãæ ¸éçç¹å·®å¼ï¼ |
| | | * ä¸éè¿ / æµç¨æ¤é â ä»»å¡ä¿æçç¹ä¸ï¼æ¸
空æäº¤æ è®°ä»¥ä¾¿éæ°æäº¤ã |
| | | * |
| | | * @param id çç¹ä»»å¡ç¼å·ï¼BPM businessKey å³ä¸ºè¯¥ç¼å·ï¼ |
| | | * @param bpmStatus BPM ä»»å¡ç¶æï¼è§ {@link cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum} |
| | | * @param reason å®¡æ¹æè§ / åæ¶åå |
| | | */ |
| | | void updateStockTakingResultAuditStatus(Long id, Integer bpmStatus, String reason); |
| | | |
| | | /** |
| | | * åæ¶çç¹ä»»å¡ |
| | | * |
| | | * @param id çç¹ä»»å¡ç¼å· |
| | |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; |
| | | import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.task.vo.MesWmStockTakingTaskPageReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.task.vo.MesWmStockTakingTaskSaveReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.task.MesWmStockTakingTaskDO; |
| | |
| | | */ |
| | | private static final String STOCK_TAKING_RESULT_APPROVE_BIZ_TYPE = "stock_taking_result_approve"; |
| | | |
| | | /** |
| | | * çç¹ç»æå®¡æ¹ç BPM æµç¨å®ä¹ Key |
| | | */ |
| | | private static final String STOCK_TAKING_RESULT_APPROVE_PROCESS_KEY = "stock_taking_result_approve"; |
| | | |
| | | @Resource |
| | | private MesWmStockTakingTaskMapper stockTakingTaskMapper; |
| | | |
| | | @Resource |
| | | private BpmProcessInstanceApi bpmProcessInstanceApi; |
| | | |
| | | @Resource |
| | | private MesWmMaterialStockService materialStockService; |
| | |
| | | |
| | | // 2. è®°å½æäº¤æ¶é´å¹¶æ¸
空ä¸ä¸è½®å®¡æ ¸ç»æï¼ä»»å¡ä¿æçç¹ä¸ï¼çå¾
å®¡æ ¸ï¼ |
| | | stockTakingTaskMapper.markResultApprovalSubmitted(id); |
| | | // 3. å建 BPM æµç¨å®ä¾ï¼businessKey 为çç¹ä»»å¡ç¼å·ï¼å®¡æ¹ç»æååçå°±æ¯è¯¥ä»»å¡ï¼ |
| | | bpmProcessInstanceApi.createProcessInstance(getLoginUserId(), |
| | | new BpmProcessInstanceCreateReqDTO() |
| | | .setProcessDefinitionKey(STOCK_TAKING_RESULT_APPROVE_PROCESS_KEY) |
| | | .setBusinessKey(String.valueOf(id))); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateStockTakingResultAuditStatus(Long id, Integer bpmStatus, String reason) { |
| | | // 1. æ ¡éªä»»å¡åå¨ |
| | | MesWmStockTakingTaskDO task = stockTakingTaskMapper.selectById(id); |
| | | if (task == null) { |
| | | log.warn("[updateStockTakingResultAuditStatus] çç¹ä»»å¡({}) ä¸åå¨ï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | return; |
| | | } |
| | | // 2. ä»
å¤çãçç¹ä¸ + ç»æå®¡æ¹å¾
å®¡æ ¸ãçä»»å¡ï¼é¿å
éå¤ / è¿æäºä»¶è¦çäººå·¥å®¡æ ¸ç»æ |
| | | if (!MesWmStockTakingTaskStatusEnum.APPROVING.getStatus().equals(task.getStatus()) |
| | | || !isResultApprovalPending(task)) { |
| | | log.warn("[updateStockTakingResultAuditStatus] çç¹ä»»å¡({}) ä¸å¤äºç»æå®¡æ¹ä¸ï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | return; |
| | | } |
| | | if (BpmTaskStatusEnum.APPROVE.getStatus().equals(bpmStatus)) { |
| | | // 3.1 审æ¹éè¿ï¼ç½®ä¸ºå·²å®æï¼åè§£å»åºåå¹¶æ ¸éçç¹å·®å¼ï¼ä¸ auditStockTakingResult ä¿æä¸è´ï¼ |
| | | if (stockTakingTaskMapper.updateAuditStatusByBpm(id, |
| | | MesWmStockTakingTaskStatusEnum.FINISHED.getStatus(), reason) != 1) { |
| | | log.warn("[updateStockTakingResultAuditStatus] çç¹ä»»å¡({}) ç¶æåå失败ï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | return; |
| | | } |
| | | if (Boolean.TRUE.equals(task.getFrozen())) { |
| | | updateMaterialStockFrozen(stockTakingTaskLineService.getStockTakingTaskLineListByTaskId(id), false); |
| | | } |
| | | doProcessStockTakingDifference(task); |
| | | return; |
| | | } |
| | | if (BpmTaskStatusEnum.REJECT.getStatus().equals(bpmStatus) |
| | | || BpmTaskStatusEnum.CANCEL.getStatus().equals(bpmStatus)) { |
| | | // 3.2 审æ¹ä¸éè¿ / æµç¨æ¤éï¼ä»»å¡ä¿æçç¹ä¸ï¼æ¸
空æäº¤æ è®°ä»¥ä¾¿éæ°æäº¤ç»æå®¡æ¹ |
| | | if (stockTakingTaskMapper.resetResultApprovalByBpm(id, reason) != 1) { |
| | | log.warn("[updateStockTakingResultAuditStatus] çç¹ä»»å¡({}) ç¶æåå失败ï¼å¿½ç¥ BPM ç»æ({})", id, bpmStatus); |
| | | } |
| | | return; |
| | | } |
| | | log.warn("[updateStockTakingResultAuditStatus] 忽ç¥ä¸æ¯æç BPM ç¶æ({})ï¼taskId={}", bpmStatus, id); |
| | | } |
| | | |
| | | @Override |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.service.wm.stocktaking.task.listener; |
| | | |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent; |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener; |
| | | import cn.iocoder.yudao.module.mes.service.wm.stocktaking.task.MesWmStockTakingTaskService; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * MES çç¹ç»æå®¡æ¹ç¶æçå¬å¨ |
| | | * |
| | | * 审æ¹å¯¹è±¡æ¯çç¹ä»»å¡ä¸ççç¹ç»æï¼ä¸å¡ä¸ä»¥çç¹ä»»å¡è®°å½å®¡æ¹ç¶æï¼ |
| | | * å æ¤ businessKey 为çç¹ä»»å¡ç¼å·ï¼ååç乿¯è¯¥ä»»å¡ã |
| | | */ |
| | | @Component |
| | | @Slf4j |
| | | public class MesWmStockTakingTaskStatusListener extends BpmProcessInstanceStatusEventListener { |
| | | |
| | | private static final String PROCESS_DEFINITION_KEY = "stock_taking_result_approve"; |
| | | |
| | | @Resource |
| | | private MesWmStockTakingTaskService stockTakingTaskService; |
| | | |
| | | @Override |
| | | protected String getProcessDefinitionKey() { |
| | | return PROCESS_DEFINITION_KEY; |
| | | } |
| | | |
| | | @Override |
| | | protected void onEvent(BpmProcessInstanceStatusEvent event) { |
| | | Long taskId; |
| | | try { |
| | | taskId = Long.parseLong(event.getBusinessKey()); |
| | | } catch (NumberFormatException e) { |
| | | log.warn("[onEvent] businessKey({}) 䏿¯ææççç¹ä»»å¡ç¼å·", event.getBusinessKey()); |
| | | return; |
| | | } |
| | | log.info("[onEvent] æ¶å°çç¹ç»æå®¡æ¹äºä»¶ï¼taskId={}, status={}", taskId, event.getStatus()); |
| | | try { |
| | | stockTakingTaskService.updateStockTakingResultAuditStatus(taskId, event.getStatus(), event.getReason()); |
| | | } catch (Exception e) { |
| | | log.error("[onEvent] ååçç¹ç»æå®¡æ¹ç¶æå¤±è´¥ï¼taskId={}", taskId, e); |
| | | } |
| | | } |
| | | |
| | | } |