From ac449b01347be087101d914c3c6384d0d511a439 Mon Sep 17 00:00:00 2001
From: zwf <2466627138@qq.com>
Date: Tue, 2 Jun 2026 17:55:33 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=96=87=E6=A1=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/communication.md | 141 ++++++
docs/db.sql | 675 +++++++++++++++++++++++++++++
docs/dcm 动态数据分析.txt | 874 ++++++++++++++++++++++++++++++++++++++
docs/solution.md | 130 ++++++
4 files changed, 1820 insertions(+)
create mode 100644 docs/communication.md
create mode 100644 docs/db.sql
create mode 100644 docs/dcm 动态数据分析.txt
create mode 100644 docs/solution.md
diff --git a/docs/communication.md b/docs/communication.md
new file mode 100644
index 0000000..f9dfdb6
--- /dev/null
+++ b/docs/communication.md
@@ -0,0 +1,141 @@
+# D3I(数字化三方系统集成)系统与 OA、DCM 系统集成需求说明书
+
+## 1. 项目背景
+
+**D3I(Digital 3-Directional Integration,数字化三方系统集成)** 系统作为 **DCM(Digital City Management,数字城管系统)** 与办公自动化(OA)系统之间的核心枢纽,需实现双向数据流转:
+
+- **正向流程**:D3I 从 DCM 服务器抓取数据 → 存储至中间表 → 调用 OA 接口推送数据 → OA 完成业务流程。
+- **反向流程**:OA 完成流程后,调用 D3I 接口将处理结果回传至 DCM 系统(体外循环)。
+
+本需求旨在明确 D3I 系统在该流程中需暴露和调用的接口,以及数据表结构设计,为开发、测试与对接提供权威依据。
+
+---
+
+## 2. 总体工作目标
+
+1. 梳理并标准化 D3I 系统对外(DCM)等平台与对内(OA)的接口清单;
+2. 明确 D3I 系统内部数据表结构,建立测试用镜像数据库;
+3. 为后续接口开发、联调测试、文档编写提供完整、一致的依据。
+
+---
+
+## 3. 详细作业步骤
+
+### 第1步:梳理 D3I 暴露给 OA 系统的 API 清单
+
+**目标**:列出 D3I 当前已提供和需新增的所有供 OA 系统调用的接口,形成统一 API 文档。
+
+**内容要求**:
+- 接口名称(英文/中文)
+- 请求方法(POST/GET)
+- 请求路径(URL)
+- 请求参数(JSON Schema)
+- 响应格式(成功/失败示例)
+- 认证方式(如 Token、OAuth、IP 白名单)
+- 业务含义(如“提交案件数据”、“更新处理状态”)
+- 当前状态(已上线 / 待开发)
+
+**输出物**:
+`docs/api/d3i_to_oa_api_v1.md`
+(建议使用 OpenAPI/Swagger 格式维护)
+
+> ✅ 示例接口(供参考):
+> - `POST /api/v1/case/submit`:提交案件数据至 OA
+> - `GET /api/v1/case/status/{id}`:查询案件在 OA 中的处理状态
+
+---
+
+### 第2步:梳理 D3I 调用 DCM 系统的接口清单
+
+**目标**:明确 D3I 从 DCM 获取数据和提交数据所需的全部接口。
+
+**内容要求**:
+- 接口用途(登录认证 / 获取数据 / 提交数据)
+- 请求方式与地址
+- 认证机制(用户名/密码、Token、证书)
+- 数据格式(XML/JSON)
+- 请求频率限制
+- 错误码与重试策略
+- 是否支持分页/增量拉取
+
+**输出物**:
+`docs/api/d3i_to_dcm_api_v1.md`
+
+> ✅ 示例接口(供参考):
+> - `POST /api/login`:获取 DCM 登录 Token
+> - `GET /api/cases?status=new&limit=100`:拉取待处理案件
+> - `POST /api/cases/submit`:向 DCM 提交处理结果
+
+---
+
+### 第3步:梳理 D3I 调用 OA 系统的接口清单(补充)
+
+**目标**:确认 D3I 主动调用 OA 的接口,用于推送数据(与第1步区分,此为“主动调用”视角)
+
+> ⚠️ 注意:第1步是“OA 调用 D3I”,本步是“D3I 调用 OA”。两者可能有重叠,需明确方向。
+
+**内容要求**:
+- 接口用途(如“推送案件”、“通知流程完成”)
+- 请求方式、URL、Header、Body
+- 是否需要异步回调机制
+- 超时与重试策略
+- 是否需记录调用日志
+
+**输出物**:
+`docs/api/d3i_calling_oa_api_v1.md`
+
+> ✅ 示例接口:
+> - `POST https://oa.example.com/api/v1/case/create`:创建案件工单
+> - `PUT https://oa.example.com/api/v1/case/update/{id}`:更新案件状态
+
+---
+
+### 第4步:设计并建立 D3I 内部数据表镜像(测试环境)
+
+**目标**:在 D3I 数据库中建立与 DCM 和 OA 交互所需的数据表结构镜像,用于开发与测试。
+
+**内容要求**:
+- 列出所有 D3I 使用的数据表(至少包括):
+ - `dcm_data_cache`:缓存从 DCM 拉取的原始数据
+ - `oa_case_submission`:待推送给 OA 的案件队列
+ - `oa_callback_log`:记录 OA 回调的响应日志
+ - `sync_status`:记录同步状态(成功/失败/重试次数/时间戳)
+- 每张表需定义:
+ - 字段名、类型、约束(主键、外键、非空)
+ - 索引设计
+ - 数据保留策略(如 7 天自动清理)
+- 建议使用 SQL 脚本定义结构,便于部署
+
+**输出物**:
+`sql/schema/d3i_test_tables.sql`
+
+> ✅ 示例表结构(简化):
+> ```sql
+> CREATE TABLE dcm_data_cache (
+> id BIGINT PRIMARY KEY AUTO_INCREMENT,
+> dcm_case_id VARCHAR(50) UNIQUE NOT NULL,
+> raw_data JSON NOT NULL,
+> received_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+> processed BOOLEAN DEFAULT FALSE
+> );
+> ```
+
+---
+
+## 4. 后续建议
+
+- 所有接口文档建议使用 **Swagger / Postman Collection** 维护,便于测试;
+- 数据表设计需与 DBA 审核,确保符合公司数据规范;
+- 建议为每个接口编写**集成测试用例**(如使用 pytest + requests);
+- 建立**数据流转图**(流程图),标注每个环节的数据来源与去向。
+
+---
+
+## 5. 附录:术语说明
+
+| 术语 | 说明 |
+|------|------|
+| **D3I** | Digital 3-Directional Integration,数字化三方系统集成 |
+| **DCM** | Digital City Management,数字城管系统 |
+| OA | 办公自动化系统(Office Automation) |
+| 体外循环 | 指数据由 OA 调用 D3I 回传至 DCM,D3I 不主导该流程 |
\ No newline at end of file
diff --git a/docs/db.sql b/docs/db.sql
new file mode 100644
index 0000000..6b5ceef
--- /dev/null
+++ b/docs/db.sql
@@ -0,0 +1,675 @@
+CREATE TABLE `t_d3i_dcm_task`
+(
+ `id` BIGINT NOT NULL COMMENT '主键ID',
+ `rec_id` BIGINT COMMENT '记录ID',
+ `rec_disp_num` VARCHAR(50) COMMENT '显示编号(可空)',
+ `rec_type_id` INT COMMENT '类型ID',
+ `rec_type_name` VARCHAR(100) COMMENT '案件类型',
+ `act_id` BIGINT COMMENT '任务ID',
+ `act_deadline_time` BIGINT COMMENT '任务截止时间戳(毫秒)',
+ `act_warning_time` BIGINT COMMENT '预警时间戳(毫秒)',
+ `act_property_id` INT COMMENT '任务属性ID',
+ `act_ard_state_name` VARCHAR(50) COMMENT '阶段授权状态',
+ `act_time_state_id` TINYINT COMMENT '阶段状态ID',
+ `biz_id` INT COMMENT '业务ID',
+ `sys_id` INT COMMENT '系统ID',
+ `task_num` VARCHAR(50) COMMENT '任务号',
+ `other_task_num` VARCHAR(100) COMMENT '第三方任务号',
+ `bundle_remain_char` VARCHAR(20) COMMENT '剩余时间描述(如“1天”)',
+ `bundle_deadline_time` BIGINT COMMENT '捆绑截止时间戳',
+ `bundle_deadline_char` VARCHAR(20) COMMENT '捆绑截止时间描述',
+ `bundle_warning_time` BIGINT COMMENT '捆绑预警时间戳',
+ `bundle_time_state_id` TINYINT COMMENT '捆绑阶段红绿灯状态',
+ `rollback_deadline` BIGINT COMMENT '拒绝超时截止时间戳',
+ `event_type_id` INT COMMENT '问题类型ID',
+ `max_event_type_id` INT COMMENT '最大事件类型ID',
+ `event_type_name` VARCHAR(100) COMMENT '问题类型',
+ `event_src_name` VARCHAR(100) COMMENT '问题来源',
+ `event_desc` TEXT COMMENT '问题描述',
+ `urgency_level` TINYINT COMMENT '紧急程度(0正常,1紧急)',
+ `main_type_id` INT COMMENT '大类ID',
+ `main_type_name` VARCHAR(100) COMMENT '大类名称',
+ `sub_type_id` INT COMMENT '小类ID',
+ `sub_type_name` VARCHAR(100) COMMENT '小类名称',
+ `address` TEXT COMMENT '地址描述',
+ `district_name` VARCHAR(50) COMMENT '所属区域',
+ `coordinate_x` DECIMAL(10, 6) COMMENT '经度',
+ `coordinate_y` DECIMAL(10, 6) COMMENT '纬度',
+ `proc_time_state_id` TINYINT COMMENT '处理流程状态ID',
+ `deadline_time` BIGINT COMMENT '处理截止时间戳',
+ `warning_time` BIGINT COMMENT '处理预警时间戳',
+ `processing_deadline` VARCHAR(50) COMMENT '处置时限描述',
+ `new_inst_cond_name` VARCHAR(200) COMMENT '立案条件',
+ `case_closure_condition` VARCHAR(200) COMMENT '结案条件',
+ `reply_intime` TINYINT COMMENT '是否两小时回复(0无需回复,1待回复,2已回复,3超时,4无需回复已恢复)',
+ `return_visit_flag` TINYINT COMMENT '回访标识(0无需,1待回访,2已回访)',
+ `first_depart_name` VARCHAR(100) COMMENT '一级专业部门',
+ `second_depart_name` VARCHAR(100) COMMENT '二级专业部门',
+ `reporter_name` VARCHAR(100) COMMENT '举报人姓名',
+ `reporter_contact` VARCHAR(50) COMMENT '举报电话',
+ `read_flag` TINYINT COMMENT '是否已读(0未读,1已读)',
+ `back_color_bit_id` INT COMMENT '背景色ID(可空)',
+ `font_color_bit_id` INT COMMENT '字体色ID(可空)',
+ `part_code` VARCHAR(100) COMMENT '部件编码',
+ `display_style_id` INT COMMENT '显示样式ID',
+ `func_forbid_reporter_info_flag` TINYINT COMMENT '是否禁止举报人信息',
+ `operation` varchar(256) null comment '操作(工单上的操作按钮)',
+ `created_at` datetime default current_timestamp() not null comment '创建时间',
+ `created_by` varchar(64) default 'D3I' not null comment '创建者',
+ `updated_at` datetime default current_timestamp() not null comment '修改时间',
+ `updated_by` varchar(64) default 'D3I' not null comment '修改者',
+ PRIMARY KEY (`id`),
+ INDEX `idx_act_id` (`act_id`),
+ INDEX `idx_biz_id` (`biz_id`),
+ INDEX `idx_sys_id` (`sys_id`),
+ INDEX `idx_read_flag` (`read_flag`),
+ INDEX `idx_deadline_time` (`deadline_time`),
+ INDEX `idx_urgency_level` (`urgency_level`),
+ INDEX `idx_event_type_id` (`event_type_id`),
+ INDEX `idx_district_name` (`district_name`),
+ INDEX `idx_read_flag_deadline_time` (`read_flag`, `deadline_time`),
+ INDEX `idx_biz_sys_read_flag` (`biz_id`, `sys_id`, `read_flag`),
+ INDEX `idx_rec_id` (`rec_id`)
+) ENGINE = InnoDB
+ DEFAULT CHARSET = utf8mb4 COMMENT ='数字城管-部门待办';
+
+
+CREATE TABLE `t_d3i_dcm_task_attachment`
+(
+ `id` BIGINT NOT NULL COMMENT '主键ID',
+ `dcm_task_id` BIGINT NOT NULL COMMENT '部门待办任务ID',
+ `rec_id` BIGINT COMMENT '记录ID',
+ `relation_type_id` INT NOT NULL COMMENT '关联类型ID',
+ `relation_id` BIGINT NOT NULL COMMENT '主关联ID',
+ `relation_main_id` BIGINT COMMENT '主关联ID(可为空)',
+ `relation_sub_id` BIGINT COMMENT '子关联ID(可为空)',
+ `act_def_name` VARCHAR(255) COMMENT '流程节点名称',
+ `media_id` BIGINT NOT NULL UNIQUE COMMENT '媒体唯一ID',
+ `media_path` VARCHAR(512) NOT NULL COMMENT '服务器存储路径',
+ `media_type` VARCHAR(50) NOT NULL COMMENT '媒体类型:IMAGE, VIDEO, etc.',
+ `media_name` VARCHAR(255) NOT NULL COMMENT '原始文件名',
+ `media_usage` VARCHAR(100) COMMENT '使用场景,如“上报”、“回退”',
+ `media_server_name` VARCHAR(100) NOT NULL COMMENT '媒体服务器名称',
+ `media_property` INT COMMENT '媒体属性',
+ `media_uploaded_name` VARCHAR(255) COMMENT '上传时的原始文件名',
+ `media_shot` VARCHAR(255) COMMENT '截图标识或路径',
+ `media_label_type_id` INT COMMENT '标签类型ID',
+ `media_url` VARCHAR(512) COMMENT '内部访问URL',
+ `media_default_url` VARCHAR(512) COMMENT '外部可访问URL',
+ `display_order` INT COMMENT '显示顺序',
+ `store_type_id` INT NOT NULL COMMENT '存储类型ID',
+ `special_item_image_type` VARCHAR(100) COMMENT '特殊图片类型',
+ `height` INT COMMENT '图片高度',
+ `width` INT COMMENT '图片宽度',
+ `send_flag` TINYINT COMMENT '发送标志',
+ `public_flag` TINYINT NOT NULL DEFAULT 0 COMMENT '公开标志:0=私有,1=公开',
+ `unit_name` VARCHAR(255) COMMENT '所属单位',
+ `gen_thumb` TINYINT NOT NULL DEFAULT 0 COMMENT '是否生成缩略图:0=否,1=是',
+ `can_delete` TINYINT NOT NULL DEFAULT 0 COMMENT '是否可删除:0=否,1=是',
+ `upload_time` DATETIME COMMENT '上传时间',
+ `create_human_id` BIGINT NOT NULL COMMENT '创建人ID',
+ `human_name` VARCHAR(255) COMMENT '创建人姓名',
+ `create_time` DATETIME NOT NULL COMMENT '创建时间',
+ `update_time` DATETIME COMMENT '更新时间',
+ `delete_reason` TEXT COMMENT '删除原因',
+ `delete_flag` TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记:0=未删,1=已删',
+ `delete_human_id` BIGINT COMMENT '删除人ID',
+ `delete_time` DATETIME COMMENT '删除时间',
+ PRIMARY KEY (`id`),
+ CONSTRAINT t_d3i_dcm_task_attachment_t_d3i_dcm_task_fk
+ FOREIGN KEY (`dcm_task_id`) REFERENCES ct_collect_oa.t_d3i_dcm_task (`id`),
+ INDEX `idx_relation_id` (`relation_id`),
+ INDEX `idx_relation_type_id` (`relation_type_id`),
+ INDEX `idx_media_type` (`media_type`),
+ INDEX `idx_public_flag` (`public_flag`),
+ INDEX `idx_delete_flag` (`delete_flag`),
+ INDEX `idx_upload_time` (`upload_time`),
+ INDEX `idx_relation_id_delete_flag` (`relation_id`, `delete_flag`),
+ INDEX `idx_relation_type_relation_id` (`relation_type_id`, `relation_id`),
+ INDEX `idx_create_human_id` (`create_human_id`),
+ INDEX `idx_unit_name` (`unit_name`),
+ INDEX `idx_media_id` (`media_id`)
+) ENGINE = InnoDB
+ DEFAULT CHARSET = utf8mb4 COMMENT ='数字城管-部门待办附件';
+
+
+CREATE TABLE `t_d3i_dcm_task_process_info`
+(
+ `id` BIGINT NOT NULL COMMENT '主键ID',
+ `dcm_task_id` BIGINT NOT NULL COMMENT '部门待办任务ID',
+ `raw_id` BIGINT COMMENT '原始主键ID',
+ `rec_id` BIGINT COMMENT '记录ID',
+ `act_id` BIGINT NOT NULL COMMENT '任务ID',
+ `act_def_id` INT COMMENT '流程节点定义ID',
+ `act_def_name` VARCHAR(100) COMMENT '流程节点名称',
+ `act_time_state_id` INT COMMENT '操作时间状态ID',
+ `act_limit_info` VARCHAR(255) COMMENT '操作时限信息',
+ `act_used_time_char` VARCHAR(50) COMMENT '已用时间(字符串)',
+ `act_remain_time_char` VARCHAR(50) COMMENT '剩余时间(字符串)',
+ `act_deadline_time` DATETIME COMMENT '操作截止时间',
+ `act_property_id` INT COMMENT '操作属性ID',
+ `action_name` VARCHAR(100) COMMENT '操作动作名称(如批转、回退)',
+ `action_time` DATETIME NOT NULL COMMENT '操作时间',
+ `title` VARCHAR(100) COMMENT '操作标题',
+ `detail` TEXT COMMENT '操作详细意见',
+ `backup_detail` TEXT COMMENT '备用意见',
+ `medias` TEXT COMMENT '附件信息',
+ `unit_name` VARCHAR(100) COMMENT '当前操作单位',
+ `unit_contact` VARCHAR(255) COMMENT '单位联系方式',
+ `human_id` BIGINT COMMENT '操作人ID,-1为系统',
+ `human_name` VARCHAR(255) COMMENT '操作人名称(含单位)',
+ `role_name` VARCHAR(100) COMMENT '当前角色名称',
+ `item_id` BIGINT NOT NULL COMMENT '项目ID',
+ `item_type_id` INT COMMENT '任务类型ID',
+ `item_content` TEXT COMMENT '任务内容摘要',
+ `item_process_info_list` TEXT COMMENT '子流程列表',
+ `sub_process_info` TEXT COMMENT '子流程信息',
+ `bundle_time_state_id` INT COMMENT '组合时间状态ID',
+ `bundle_limit_info` VARCHAR(255) COMMENT '组合时限信息',
+ `bundle_used_char` VARCHAR(50) COMMENT '组合已用时间',
+ `bundle_remain_char` VARCHAR(50) COMMENT '组合剩余时间',
+ `bundle_deadline_time` DATETIME COMMENT '组合截止时间',
+ `show_unit_contact` TINYINT(1) COMMENT '是否显示单位联系方式',
+ `pre_unit_name` VARCHAR(100) COMMENT '上一单位',
+ `pre_action_name` VARCHAR(100) COMMENT '上一操作名称',
+ `pre_human_name` VARCHAR(255) COMMENT '上一操作人',
+ `pre_act_opinion` TEXT COMMENT '上一操作意见',
+ `next_act_def_name` VARCHAR(100) COMMENT '下一节点名称',
+ `next_role_part_name` VARCHAR(255) COMMENT '下一角色/单位',
+ `next_role_name` VARCHAR(100) COMMENT '下一角色名称',
+ `next_act_property_id` INT COMMENT '下一操作属性ID',
+ `last_act_flag` TINYINT(1) COMMENT '是否为最后一节点(0否,1是)',
+ PRIMARY KEY (`id`),
+ CONSTRAINT t_d3i_dcm_task_process_info_t_d3i_dcm_task_fk
+ FOREIGN KEY (`dcm_task_id`) REFERENCES ct_collect_oa.t_d3i_dcm_task (`id`),
+ INDEX `idx_item_id` (`item_id`),
+ INDEX `idx_action_time` (`action_time`),
+ INDEX `idx_act_def_name` (`act_def_name`),
+ INDEX `idx_unit_name` (`unit_name`),
+ INDEX `idx_role_name` (`role_name`),
+ INDEX `idx_act_id` (`act_id`),
+ INDEX `idx_human_id` (`human_id`),
+ INDEX `idx_last_act_flag` (`last_act_flag`),
+ INDEX `idx_item_id_action_time` (`item_id`, `action_time`),
+ INDEX `idx_unit_name_action_time` (`unit_name`, `action_time`),
+ INDEX `idx_act_def_name_action_time` (`act_def_name`, `action_time`)
+) ENGINE = InnoDB
+ DEFAULT CHARSET = utf8mb4 COMMENT ='数字城管-部门待办办理经过';
+
+
+CREATE TABLE `t_d3i_dcm_task_form_data`
+(
+ `id` BIGINT NOT NULL COMMENT '主键ID',
+ `dcm_task_id` BIGINT NOT NULL COMMENT '部门待办任务ID',
+ `rec_id` BIGINT COMMENT '记录ID',
+ `act_property_id` INT COMMENT '任务属性ID',
+ `address` TEXT COMMENT '地址描述',
+ `archive_time` BIGINT COMMENT '归档时间戳',
+ `cancel_time` BIGINT COMMENT '取消时间戳',
+ `biz_id` INT COMMENT '业务ID',
+ `biz_name` VARCHAR(200) COMMENT '业务名称',
+ `card_num` VARCHAR(100) COMMENT '证件号码',
+ `cell_id` INT COMMENT '单元格ID',
+ `cell_name` VARCHAR(200) COMMENT '单元格名称',
+ `check_msg_state_id` INT COMMENT '核查消息状态ID',
+ `check_pic_num` INT COMMENT '核查图片数量',
+ `check_pic_total_num` INT COMMENT '核查图片总数',
+ `check_video_num` INT COMMENT '核查视频数量',
+ `check_video_total_num` INT COMMENT '核查视频总数',
+ `check_wav_num` INT COMMENT '核查音频数量',
+ `check_wav_total_num` INT COMMENT '核查音频总数',
+ `community_id` INT COMMENT '社区ID',
+ `community_name` VARCHAR(200) COMMENT '社区名称',
+ `coordinate_x` DECIMAL(10, 6) COMMENT '经度',
+ `coordinate_y` DECIMAL(10, 6) COMMENT '纬度',
+ `create_time` BIGINT COMMENT '创建时间戳',
+ `damage_grade_id` INT COMMENT '损毁等级ID',
+ `damage_grade_name` VARCHAR(100) COMMENT '损毁等级名称',
+ `deadline_char` VARCHAR(50) COMMENT '时限描述',
+ `deadline_time` BIGINT COMMENT '处理截止时间戳',
+ `dispatch_opinion` VARCHAR(500) COMMENT '派遣意见',
+ `dispatch_time` BIGINT COMMENT '派遣时间戳',
+ `display_property` VARCHAR(200) COMMENT '显示属性',
+ `display_style_id` INT COMMENT '显示样式ID',
+ `district_id` INT COMMENT '区域ID',
+ `district_name` VARCHAR(50) COMMENT '所属区域',
+ `duration_unit` INT COMMENT '时长单位',
+ `duty_grid_id` INT COMMENT '责任网格ID',
+ `duty_grid_name` VARCHAR(200) COMMENT '责任网格名称',
+ `event_desc` TEXT COMMENT '问题描述',
+ `event_grade_id` INT COMMENT '事件等级ID',
+ `event_grade_name` VARCHAR(100) COMMENT '事件等级名称',
+ `event_level_id` INT COMMENT '事件级别ID',
+ `event_level_name` VARCHAR(100) COMMENT '事件级别名称',
+ `event_src_id` INT COMMENT '问题来源ID',
+ `event_src_name` VARCHAR(100) COMMENT '问题来源',
+ `event_type_code` VARCHAR(50) COMMENT '问题类型编码',
+ `event_type_id` INT COMMENT '问题类型ID',
+ `event_type_name` VARCHAR(100) COMMENT '问题类型',
+ `fifth_type_id` INT COMMENT '第五级类型ID',
+ `fifth_type_name` VARCHAR(100) COMMENT '第五级类型名称',
+ `forth_type_id` INT COMMENT '第四级类型ID',
+ `forth_type_name` VARCHAR(100) COMMENT '第四级类型名称',
+ `func_deadline` BIGINT COMMENT '职能部门截止时间戳',
+ `func_deal_time` BIGINT COMMENT '职能部门处理时间戳',
+ `func_limit_char` VARCHAR(50) COMMENT '职能部门时限描述',
+ `func_part_id` INT COMMENT '职能部门ID',
+ `func_part_name` VARCHAR(200) COMMENT '职能部门名称',
+ `func_time_state_id` INT COMMENT '职能部门时间状态ID',
+ `gather_flag` VARCHAR(50) COMMENT '汇总标识',
+ `link_field_display_value` VARCHAR(500) COMMENT '关联字段显示值',
+ `link_field_value` VARCHAR(500) COMMENT '关联字段值',
+ `main_type_id` INT COMMENT '大类ID',
+ `main_type_name` VARCHAR(100) COMMENT '大类名称',
+ `media_check_num` INT COMMENT '媒体核查数量',
+ `media_check_total_num` INT COMMENT '媒体核查总数',
+ `media_lost_flag` INT COMMENT '媒体丢失标识',
+ `media_upload_num` INT COMMENT '媒体上传数量',
+ `media_upload_state` VARCHAR(50) COMMENT '媒体上传状态',
+ `media_upload_total_num` INT COMMENT '媒体上传总数',
+ `media_url` VARCHAR(512) COMMENT '内部访问URL',
+ `media_verify_total_num` INT COMMENT '媒体核实总数',
+ `mms_pic_path` VARCHAR(500) COMMENT '彩信图片路径',
+ `new_inst_cond_id` INT COMMENT '立案条件ID',
+ `new_inst_cond_name` VARCHAR(200) COMMENT '立案条件',
+ `occur_time` BIGINT COMMENT '发生时间戳',
+ `part_code` VARCHAR(100) COMMENT '部件编码',
+ `patrol_deal_flag` INT COMMENT '巡查处置标识',
+ `patrol_id` INT COMMENT '巡查员ID',
+ `patrol_name` VARCHAR(200) COMMENT '巡查员名称',
+ `pos_type` VARCHAR(50) COMMENT '位置类型',
+ `proc_ard_state_id` INT COMMENT '处理仲裁状态ID',
+ `proc_enq_state_id` INT COMMENT '处理询问状态ID',
+ `proc_start_time` BIGINT COMMENT '处理开始时间戳',
+ `proc_sup_state_id` INT COMMENT '处理监督状态ID',
+ `proc_time_state_id` TINYINT COMMENT '处理流程状态ID',
+ `rec_deadline` DOUBLE COMMENT '记录时限',
+ `rec_disp_num` VARCHAR(50) COMMENT '显示编号',
+ `rec_remain` DOUBLE COMMENT '记录剩余时间',
+ `rec_remain_char` VARCHAR(50) COMMENT '记录剩余时间描述',
+ `rec_type_id` INT COMMENT '类型ID',
+ `rec_type_name` VARCHAR(100) COMMENT '案件类型',
+ `rec_used` DOUBLE COMMENT '记录已用时间',
+ `rec_used_char` VARCHAR(50) COMMENT '记录已用时间描述',
+ `rec_warning` DOUBLE COMMENT '记录预警时间',
+ `refresh_flag` INT COMMENT '刷新标识',
+ `refresh_start_time` BIGINT COMMENT '刷新开始时间戳',
+ `refresh_time` BIGINT COMMENT '刷新时间戳',
+ `report_id` BIGINT COMMENT '上报ID',
+ `report_pic_num` INT COMMENT '上报图片数量',
+ `report_pic_total_num` INT COMMENT '上报图片总数',
+ `report_video_num` INT COMMENT '上报视频数量',
+ `report_video_total_num` INT COMMENT '上报视频总数',
+ `report_wav_num` INT COMMENT '上报音频数量',
+ `report_wav_total_num` INT COMMENT '上报音频总数',
+ `street_id` INT COMMENT '街道ID',
+ `street_name` VARCHAR(200) COMMENT '街道名称',
+ `sub_type_id` INT COMMENT '小类ID',
+ `sub_type_name` VARCHAR(100) COMMENT '小类名称',
+ `task_num` VARCHAR(50) COMMENT '任务号',
+ `third_type_id` INT COMMENT '第三级类型ID',
+ `third_type_name` VARCHAR(100) COMMENT '第三级类型名称',
+ `time_area_id` INT COMMENT '时段ID',
+ `time_area_name` VARCHAR(100) COMMENT '时段名称',
+ `unique_id` VARCHAR(100) COMMENT '唯一标识',
+ `urgent_flag` INT COMMENT '紧急标识',
+ `urgent_memo` VARCHAR(500) COMMENT '紧急备注',
+ `verify_msg_state_id` INT COMMENT '核实消息状态ID',
+ `verify_pic_total_num` INT COMMENT '核实图片总数',
+ `verify_video_total_num` INT COMMENT '核实视频总数',
+ `verify_wav_total_num` INT COMMENT '核实音频总数',
+ `video_device_id` BIGINT COMMENT '视频设备ID',
+ `video_param` VARCHAR(500) COMMENT '视频参数',
+ `view_angle` VARCHAR(100) COMMENT '视角',
+ `view_image_name` VARCHAR(200) COMMENT '视图图片名称',
+ `view_image_x` DOUBLE COMMENT '视图图片X坐标',
+ `view_image_y` DOUBLE COMMENT '视图图片Y坐标',
+ `view_pos_x` DOUBLE COMMENT '视图位置X坐标',
+ `view_pos_y` DOUBLE COMMENT '视图位置Y坐标',
+ `warning_time` BIGINT COMMENT '处理预警时间戳',
+ `sys_id` INT COMMENT '系统ID',
+ `form_id` INT COMMENT '表单ID',
+ `verify_pic_num` INT COMMENT '核实图片数量',
+ `verify_wav_num` INT COMMENT '核实音频数量',
+ `verify_video_num` INT COMMENT '核实视频数量',
+ `media_verify_num` INT COMMENT '媒体核实数量',
+ `road_type_id` INT COMMENT '道路类型ID',
+ `road_name` VARCHAR(200) COMMENT '道路名称',
+ `road_id` INT COMMENT '道路ID',
+ `archive_cond_id` INT COMMENT '归档条件ID',
+ `archive_cond` VARCHAR(100) COMMENT '归档条件',
+ `road_type_name` VARCHAR(100) COMMENT '道路类型名称',
+ `area_type_id` INT COMMENT '区域类型ID',
+ `equal_group_id` BIGINT COMMENT '等值组ID',
+ `regather_msg_state_id` INT COMMENT '重新采集消息状态ID',
+ `new_inst_advise` VARCHAR(500) COMMENT '立案建议',
+ `event_marks` VARCHAR(500) COMMENT '事件标记',
+ `archive_type_id` INT COMMENT '归档类型ID',
+ `report_time_segment_id` INT COMMENT '上报时段ID',
+ `enable_check_msg` INT COMMENT '启用核查消息',
+ `revise_opinion` VARCHAR(500) COMMENT '修订意见',
+ `report_area_limit_id` INT COMMENT '上报区域限制ID',
+ `deduction` VARCHAR(100) COMMENT '扣减',
+ `attach_rec_flag` VARCHAR(50) COMMENT '附件记录标识',
+ `sixth_type_id` INT COMMENT '第六级类型ID',
+ `sixth_type_name` VARCHAR(100) COMMENT '第六级类型名称',
+ `seventh_type_id` INT COMMENT '第七级类型ID',
+ `seventh_type_name` VARCHAR(100) COMMENT '第七级类型名称',
+ `max_event_type_id` INT COMMENT '最大事件类型ID',
+ `max_event_type_name` VARCHAR(200) COMMENT '最大事件类型名称',
+ `occur_num` INT COMMENT '发生次数',
+ `check_send_time` BIGINT COMMENT '核查发送时间戳',
+ `check_reply_time` BIGINT COMMENT '核查回复时间戳',
+ `duty_region_id` INT COMMENT '责任区域ID',
+ `duty_region_name` VARCHAR(200) COMMENT '责任区域名称',
+ `lonlat_x` DOUBLE COMMENT '经纬度X',
+ `lonlat_y` DOUBLE COMMENT '经纬度Y',
+ `func_bundle_deadline` BIGINT COMMENT '职能捆绑截止时间戳',
+ `third_unique_id` VARCHAR(100) COMMENT '第三方唯一标识',
+ `event_property_id` INT COMMENT '事件属性ID',
+ `event_property_name` VARCHAR(200) COMMENT '事件属性名称',
+ `city_village_flag` VARCHAR(50) COMMENT '城乡标识',
+ `specify_func_id` INT COMMENT '指定职能部门ID',
+ `specify_competent_func_id` INT COMMENT '指定主管职能部门ID',
+ `specify_func_name` VARCHAR(200) COMMENT '指定职能部门名称',
+ `specify_competent_func_name` VARCHAR(200) COMMENT '指定主管职能部门名称',
+ `super_rec_id` BIGINT COMMENT '上级记录ID',
+ `split_rec_flag` INT COMMENT '拆分记录标识',
+ `site_num` VARCHAR(50) COMMENT '站点编号',
+ `difficult_type_id` INT COMMENT '困难类型ID',
+ `event_district_grade_id` INT COMMENT '事件区域等级ID',
+ `event_district_grade_name` VARCHAR(100) COMMENT '事件区域等级名称',
+ `duty_district_id` INT COMMENT '责任区域ID',
+ `duty_street_id` INT COMMENT '责任街道ID',
+ `duty_community_id` INT COMMENT '责任社区ID',
+ `duty_district_name` VARCHAR(200) COMMENT '责任区域名称',
+ `duty_street_name` VARCHAR(200) COMMENT '责任街道名称',
+ `duty_community_name` VARCHAR(200) COMMENT '责任社区名称',
+ `cus_grid_code` VARCHAR(100) COMMENT '自定义网格编码',
+ `accepter_id` INT COMMENT '受理人ID',
+ `accepter_name` VARCHAR(100) COMMENT '受理人姓名',
+ `auto_check_count` INT COMMENT '自动核查次数',
+ `other_task_num` VARCHAR(100) COMMENT '第三方任务号',
+ `force_handle_flag` VARCHAR(50) COMMENT '强制处理标识',
+ `func_part_list_id` VARCHAR(100) COMMENT '职能部门列表ID',
+ `func_part_list_name` VARCHAR(200) COMMENT '职能部门列表名称',
+ `custom_deadline` BIGINT COMMENT '自定义截止时间戳',
+ `act_record_id` BIGINT COMMENT '操作记录ID',
+ `tell_num` VARCHAR(50) COMMENT '联系电话',
+ `reply_opinion` VARCHAR(500) COMMENT '回复意见',
+ `send_from_type` VARCHAR(50) COMMENT '发送来源类型',
+ `func_forbid_reporter_info_flag` TINYINT COMMENT '是否禁止举报人信息',
+ `property_company_id` BIGINT COMMENT '物业公司ID',
+ `accept_status` VARCHAR(50) COMMENT '受理状态',
+ `shop_name` VARCHAR(200) COMMENT '商铺名称',
+ `func_custom_limit` VARCHAR(50) COMMENT '职能部门自定义时限',
+ `squadron_id` BIGINT COMMENT '中队ID',
+ `squadron_name` VARCHAR(200) COMMENT '中队名称',
+ `reply_intime` TINYINT COMMENT '是否两小时回复(0无需回复,1待回复,2已回复,3超时,4无需回复已恢复)',
+ `locked_flag` INT COMMENT '锁定标识',
+ `check_type_id` INT COMMENT '核查类型ID',
+ `transited_flag` INT COMMENT '转交标识',
+ `rec_analysis_type_id` INT COMMENT '记录分析类型ID',
+ `deal_evaluate_ids` VARCHAR(200) COMMENT '处置评价ID列表',
+ `newinst_no_transit` VARCHAR(50) COMMENT '立案不转交',
+ `no_return_visit_flag` INT COMMENT '无需回访标识',
+ `common_rec_type_flag` VARCHAR(50) COMMENT '通用记录类型标识',
+ `common_rec_attr_flag` VARCHAR(50) COMMENT '通用记录属性标识',
+ `main_rec_id` BIGINT COMMENT '主记录ID',
+ `send_pub_check_task_flag` INT COMMENT '发送公共核查任务标识',
+ `patroltask_deadline_time` BIGINT COMMENT '巡查任务截止时间戳',
+ `shop_id` BIGINT COMMENT '商铺ID',
+ `spec_type_name` VARCHAR(100) COMMENT '特殊类型名称',
+ `law_duty_grid_id` INT COMMENT '法律责任网格ID',
+ `law_duty_grid_name` VARCHAR(200) COMMENT '法律责任网格名称',
+ `proc_account_state_id` INT COMMENT '处理账户状态ID',
+ `spec_type_id` INT COMMENT '特殊类型ID',
+ `reply_flag` VARCHAR(50) COMMENT '回复标识',
+ `first_depart_name` VARCHAR(100) COMMENT '一级专业部门',
+ `second_depart_name` VARCHAR(100) COMMENT '二级专业部门',
+ `reply_intime_deadline` BIGINT COMMENT '两小时回复截止时间戳',
+ `supervision_check_state_id` INT COMMENT '监督核查状态ID',
+ `urgent_level` TINYINT COMMENT '紧急程度(0正常,1紧急)',
+ `self_deal_msg_state_id` INT COMMENT '自行处置消息状态ID',
+ `duty_grid_type_id` INT COMMENT '责任网格类型ID',
+ `deal_duty_grid_type_id` INT COMMENT '处置责任网格类型ID',
+ `deal_duty_grid_id` INT COMMENT '处置责任网格ID',
+ `deal_duty_grid_name` VARCHAR(200) COMMENT '处置责任网格名称',
+ `site_id` BIGINT COMMENT '站点ID',
+ `media_self_deal_total_num` INT COMMENT '自行处置媒体总数',
+ `media_self_deal_num` INT COMMENT '自行处置媒体数量',
+ `self_deal_pic_total_num` INT COMMENT '自行处置图片总数',
+ `self_deal_pic_num` INT COMMENT '自行处置图片数量',
+ `self_deal_wav_total_num` INT COMMENT '自行处置音频总数',
+ `self_deal_wav_num` INT COMMENT '自行处置音频数量',
+ `self_deal_video_total_num` INT COMMENT '自行处置视频总数',
+ `self_deal_video_num` INT COMMENT '自行处置视频数量',
+ `review_msg_state_id` INT COMMENT '复核消息状态ID',
+ `media_review_total_num` INT COMMENT '复核媒体总数',
+ `media_review_num` INT COMMENT '复核媒体数量',
+ `review_pic_total_num` INT COMMENT '复核图片总数',
+ `review_pic_num` INT COMMENT '复核图片数量',
+ `review_wav_total_num` INT COMMENT '复核音频总数',
+ `review_wav_num` INT COMMENT '复核音频数量',
+ `review_video_total_num` INT COMMENT '复核视频总数',
+ `review_video_num` INT COMMENT '复核视频数量',
+ `public_flag` TINYINT COMMENT '公开标志',
+ `whistle_flag` VARCHAR(50) COMMENT '吹哨标识',
+ `jx_id` BIGINT COMMENT '警讯ID',
+ `jx_jxmc` VARCHAR(200) COMMENT '警讯名称',
+ `jx_design_type` VARCHAR(100) COMMENT '警讯设计类型',
+ `rec_category_id` INT COMMENT '记录类别ID',
+ `repeat_state` VARCHAR(50) COMMENT '重复状态',
+ `cg_area` VARCHAR(100) COMMENT '城管区域',
+ `hw_area` VARCHAR(100) COMMENT '环卫区域',
+ `sz_area` VARCHAR(100) COMMENT '市政区域',
+ `device_guid` VARCHAR(100) COMMENT '设备GUID',
+ `proc_press_state_id` INT COMMENT '处理压力状态ID',
+ `hot_area` VARCHAR(100) COMMENT '热点区域',
+ `report_state` VARCHAR(50) COMMENT '上报状态',
+ `dispose_state` INT COMMENT '处置状态',
+ `pre_dispose_state` VARCHAR(50) COMMENT '预处置状态',
+ `undertake_user_name` VARCHAR(50) COMMENT '承办人员',
+ `undertake_phone` VARCHAR(50) COMMENT '联系电话',
+ `deal_person_org` VARCHAR(50) COMMENT '承办部门',
+ PRIMARY KEY (`id`),
+ CONSTRAINT `t_d3i_dcm_task_form_data_t_d3i_dcm_task_fk`
+ FOREIGN KEY (`dcm_task_id`) REFERENCES `ct_collect_oa`.`t_d3i_dcm_task` (`id`),
+ INDEX `idx_biz_id` (`biz_id`),
+ INDEX `idx_sys_id` (`sys_id`),
+ INDEX `idx_deadline_time` (`deadline_time`),
+ INDEX `idx_event_type_id` (`event_type_id`),
+ INDEX `idx_district_name` (`district_name`),
+ INDEX `idx_rec_id` (`rec_id`)
+) ENGINE = InnoDB
+ DEFAULT CHARSET = utf8mb4 COMMENT ='数字化城市管理信息系统人工任务表单数据表';
+
+
+create table t_d3i_dcm_rollback
+(
+ id bigint not null comment '主键'
+ primary key,
+ dcm_task_id bigint not null comment '唯一标志',
+ task_number varchar(64) not null comment '任务号',
+ act_id varchar(64) not null comment '工单ID',
+ trans_info varchar(64) not null comment '回退流向(固定:市受理员)',
+ save_old_act_flag varchar(64) not null comment '是否保留旧流程',
+ opinion varchar(500) not null comment '回退意见',
+ rollback_reason_id varchar(500) not null comment '回退原因ID',
+ attachments text null comment '附件(多个用逗号分隔)',
+ send_message varchar(32) not null comment '发送短信(1:发送,0:不发送)',
+ not_assigned varchar(16) null comment '申请不交办(0:不打勾,1:打勾)',
+ not_assigned_reason text null comment '申请不交办原因',
+ undertake_user_name varchar(64) null comment '承办人员',
+ undertake_phone varchar(64) null comment '联系电话',
+ status bigint not null comment '提交状态',
+ flow_token varchar(256) null comment '流令牌',
+ created_at datetime default current_timestamp() not null comment '创建时间',
+ created_by varchar(64) default 'D3I' not null comment '创建者',
+ updated_at datetime default current_timestamp() not null comment '修改时间',
+ updated_by varchar(64) default 'D3I' not null comment '修改者',
+ constraint t_d3i_dcm_rollback_t_d3i_dcm_task_fk
+ foreign key (dcm_task_id) references t_d3i_dcm_task (id)
+)
+ comment '数字城管-回退接口表';
+
+
+CREATE TABLE t_d3i_dcm_stage_reply
+(
+ id BIGINT NOT NULL COMMENT '主键',
+ dcm_task_id BIGINT NOT NULL COMMENT '唯一标志',
+ task_number VARCHAR(64) NOT NULL COMMENT '任务号',
+ rec_id VARCHAR(64) NOT NULL COMMENT '记录ID',
+ act_id VARCHAR(64) NOT NULL COMMENT '工单ID',
+ item_type VARCHAR(64) NOT NULL COMMENT '固定值',
+ content VARCHAR(1000) NOT NULL COMMENT '回复内容',
+ status BIGINT NOT NULL COMMENT '提交状态',
+ flow_token VARCHAR(256) NULL COMMENT '流令牌',
+ `created_at` datetime default current_timestamp() not null comment '创建时间',
+ `created_by` varchar(64) default 'D3I' not null comment '创建者',
+ `updated_at` datetime default current_timestamp() not null comment '修改时间',
+ `updated_by` varchar(64) default 'D3I' not null comment '修改者',
+
+ PRIMARY KEY (id),
+ CONSTRAINT `t_d3i_dcm_stage_reply_t_d3i_dcm_task_fk`
+ FOREIGN KEY (`dcm_task_id`) REFERENCES `ct_collect_oa`.`t_d3i_dcm_task` (`id`)
+) COMMENT ='数字城管-阶段回复接口表';
+
+
+create table t_d3i_dcm_dispose
+(
+ id bigint not null comment '主键'
+ primary key,
+ dcm_task_id bigint not null comment '唯一标志',
+ task_number varchar(64) not null comment '任务号',
+ act_id varchar(64) not null comment '工单ID',
+ task_list_id varchar(64) not null comment '任务列表ID',
+ trans_info varchar(64) not null comment '批转对象(固定:市受理员)',
+ opinion text not null comment '批转意见',
+ add_num varchar(32) not null comment '批转意见',
+ attachments text null comment '附件',
+ send_message varchar(32) not null comment '发送短信(1:发送,0:不发送)',
+ undertake_user_name varchar(64) null comment '承办人员',
+ undertake_phone varchar(64) null comment '联系电话',
+ status bigint default 0 not null comment '提交状态',
+ flow_token varchar(256) null comment '流令牌',
+ created_at datetime default current_timestamp() not null comment '创建时间',
+ created_by varchar(64) default 'D3I' not null comment '创建者',
+ updated_at datetime default current_timestamp() not null comment '修改时间',
+ updated_by varchar(64) default 'D3I' not null comment '修改者',
+ constraint t_d3i_dcm_dispose_t_d3i_dcm_task_fk
+ foreign key (dcm_task_id) references t_d3i_dcm_task (id)
+)
+ comment '数字城管-批转接口表';
+
+
+create table t_d3i_dcm_apply_postpone
+(
+ id bigint not null comment '主键'
+ primary key,
+ dcm_task_id bigint not null comment '唯一标志',
+ task_number varchar(64) not null comment '任务号',
+ apply_act_id varchar(64) not null comment '工单流程ID',
+ reply_part_id varchar(64) not null comment '回复环节ID',
+ ard_level varchar(32) not null comment '固定值',
+ ard_type_id varchar(32) not null comment '固定值(延期类型)',
+ apply_memo text not null comment '申请意见',
+ time_num varchar(64) not null comment '延期时长',
+ postpone_date varchar(64) not null comment '延期日期',
+ time_unit varchar(64) not null comment '时间单位',
+ attachments text null comment '附件',
+ delay_multiple int null comment '延期倍数',
+ apply_type varchar(64) null comment '申请类型',
+ status bigint not null comment '提交状态',
+ flow_token varchar(256) null comment '流令牌',
+ created_at datetime default current_timestamp() not null comment '创建时间',
+ created_by varchar(64) default 'D3I' not null comment '创建者',
+ updated_at datetime default current_timestamp() not null comment '修改时间',
+ updated_by varchar(64) default 'D3I' not null comment '修改者',
+ constraint t_d3i_dcm_apply_postpone_t_d3i_dcm_task_fk
+ foreign key (dcm_task_id) references t_d3i_dcm_task (id)
+)
+ comment '数字城管-申请延期接口表';
+
+create table t_d3i_dcm_task_extended_info
+(
+ id bigint auto_increment comment '主键ID'
+ primary key,
+ dcm_task_id bigint not null comment '唯一标志',
+ subtype_field_name varchar(100) null comment '子类型字段名称',
+ content_range varchar(255) default '' null comment '内容范围',
+ control_type varchar(50) null comment '控件类型',
+ display_name varchar(100) null comment '显示名称',
+ data_type_id varchar(50) null comment '数据类型ID',
+ null_flag varchar(20) null comment '是否可空标识(0:不可空,1:可空)',
+ list_content text null comment '下拉框选项内容',
+ subtype_id varchar(50) null comment '子类型ID',
+ field_value varchar(255) null comment '字段值',
+ rec_id bigint not null comment '记录ID',
+ field_id varchar(50) null comment '字段ID',
+ created_at datetime default current_timestamp() not null comment '创建时间',
+ created_by varchar(64) default 'D3I' not null comment '创建者',
+ updated_at datetime default current_timestamp() not null comment '修改时间',
+ updated_by varchar(64) default 'D3I' not null comment '修改者',
+ constraint fk_attr_3181_task
+ foreign key (dcm_task_id) references t_d3i_dcm_task (id)
+)
+ comment '扩展信息' charset = utf8mb4;
+
+create index idx_dcm_task_id
+ on t_d3i_dcm_task_extended_info (dcm_task_id);
+
+
+create table t_d3i_dcm_task_more_info
+(
+ id bigint auto_increment comment '主键ID'
+ primary key,
+ dcm_task_id bigint not null comment '唯一标志',
+ msg_id bigint null comment '消息ID',
+ rec_id bigint null comment '记录ID',
+ msg_type_id bigint null comment '消息类型ID',
+ msg_type varchar(50) null comment '消息类型名称',
+ msg_info varchar(255) null comment '消息详情',
+ create_time varchar(64) null comment '创建时间',
+ human_id int null comment '人员ID',
+ human_name varchar(50) null comment '人员姓名',
+ role_name varchar(50) null comment '角色名称',
+ ex_info_id bigint null comment '扩展信息ID',
+ ex_info_msg varchar(255) null comment '扩展信息内容',
+ created_at datetime default current_timestamp() not null comment '创建时间',
+ created_by varchar(64) default 'D3I' not null comment '创建者',
+ updated_at datetime default current_timestamp() not null comment '修改时间',
+ updated_by varchar(64) default 'D3I' not null comment '修改者',
+ constraint t_d3i_dcm_task_more_info_t_d3i_dcm_task_fk
+ foreign key (dcm_task_id) references t_d3i_dcm_task (id)
+)
+ comment '更多信息' charset = utf8mb4;
+
+create index idx_dcm_task_id
+ on t_d3i_dcm_task_more_info (dcm_task_id);
+
+
+create table t_d3i_dcm_apply_rollback
+(
+ id bigint auto_increment comment '主键ID'
+ primary key,
+ dcm_task_id bigint not null comment '唯一标志',
+ task_number varchar(64) not null comment '任务号',
+ act_id varchar(64) not null comment '工单ID',
+ reply_part_id bigint null comment '回复部门ID',
+ ard_level bigint null comment '延期等级',
+ ard_type_id bigint null comment '延期类型ID',
+ opinion text null comment '申请意见',
+ apply_type varchar(64) null comment '申请类型(拒签、处置阶段照片未公开)',
+ trans_info varchar(255) null comment '流转信息',
+ flow_token varchar(256) null comment '流令牌',
+ attachments text null comment '附件(多个用逗号分隔)',
+ status bigint not null comment '提交状态',
+ created_at datetime default current_timestamp() not null comment '创建时间',
+ created_by varchar(64) default 'D3I' not null comment '创建者',
+ updated_at datetime default current_timestamp() not null comment '修改时间',
+ updated_by varchar(64) default 'D3I' not null comment '修改者',
+ constraint t_d3i_dcm_apply_rollback_t_d3i_dcm_task_fk
+ foreign key (dcm_task_id) references t_d3i_dcm_task (id)
+)
+ comment '申请回退表' charset = utf8mb4;
\ No newline at end of file
diff --git a/docs/dcm 动态数据分析.txt b/docs/dcm 动态数据分析.txt
new file mode 100644
index 0000000..9764100
--- /dev/null
+++ b/docs/dcm 动态数据分析.txt
@@ -0,0 +1,874 @@
+1、获取工单展示的按钮列表
+GET http://221.224.13.41:28086/eUrbanMIS/home/workflow/assign
+在响应的['resultInfo']['data']['menuData']['menus']获取到菜单列表,每个菜单的visible=true且displayProperty&2>0(按位与运算),才会被展示
+
+
+2、判断批转表单是否有便民批转
+GET http://221.224.13.41:28086/eUrbanMIS/home/workflow/gettranstreewithoutconfig
+BODY {'actID': act_id, 'itemType': 'transit'}
+判断响应['resultInfo']['data']['form']是否为null,不为null且是一个字典,就代表有便民批转
+
+
+3、判断回退表单是否有便民回退
+GET http://221.224.13.41:28086/eUrbanMIS/home/workflow/gettranstree
+BODY {'actID': act_id, 'itemType': 'rollback'}
+判断响应['resultInfo']['data']['form']是否为null,不为null且是一个字典,就代表有便民回退
+
+
+**1、经过分析,基本上2、3两个就是通过:"问题来源"=="12345热线"进行判断的!**
+**2、便民批转、便民回退的表单项目是固定的,当1为 True 时,即显示表单,表单项目固定!**
+
+
+4、便民批转和便民回退表单内的组件
+请求地址
+http://221.224.13.41:28086/eUrbanMIS/home/form/formpreview/getforminfo
+请求方法
+POST
+请求数据(form-data)
+便民批转:
+formID:377
+formName:便民批转
+param:{"recID": rec_id,"actID": act_id}
+便民回退:
+formID:
+formName:便民回退
+param:{"recID":rec_id,"actID":act_id}
+
+响应:
+表单组件在['resultInfo']['data']['form']['componentList']内
+componentType类型
+label 标签,展示字段名称
+text 输入框,用于输入字段
+textarea 文本框
+checkbox 单选框
+目前看到的便民批转和便民回退,都没有多余组件
+
+
+5、便民批转和便民回退的请求独立于批转和回退,即如果有便民表单,基础表单和便民表单分两次请求
+便民批转提交请求:
+由于先提交基础表单,在断网的情况下,基础表单请求失败,后面便民批转就不会再提交,无法获取请求接口
+
+便民回退提交请求:
+请求网址
+http://221.224.13.41:28086/eUrbanMIS/home/form/formpreview/save
+请求方法
+POST
+请求数据(form-data)
+{"formID":"352","formParam":"{"recID":recID,"actID":actID}","isInsert":"0","briefParam":"true",
+ "componentList":"[{"componentID":8,"value":"2"}, // 申请不交办下面的文本框内填写的内容
+ {"componentID":4,"value":1}, // 申请不交办单选框,选中为1,未选则为0
+ {"componentID":9,"value":"3"}, // 承办人员
+ {"componentID":12,"value":"4"}]"} // 联系电话
+
+
+6、申请延期,要提交请求确认是否允许申请延期
+请求网址
+http://221.224.13.41:28086/eUrbanMIS/home/workflow/wfitemtypecheck?itemType=postpone
+请求方法
+POST
+请求数据(form-data)
+taskListID: 600058
+taskListName: 部门待办栏
+tasknum: 202601070334
+otherTaskNum: WCG2601070000132
+recDispNum
+menuName: applypostpone
+menuDisplayName: 申请延期
+recID: 3688043
+actID: 123967246
+
+提交申请延期
+请求网址
+http://221.224.13.41:28086/eUrbanMIS/home/workflow/applypostpone
+请求方法
+POST
+请求数据(form-data)
+applyActID:124267156
+replyPartID:39
+ardLevel:0
+ardTypeID:12
+applyMemo:申请意见\n延长 2倍小类时限(48小时) //中间有换行,换行后面的是固定内容,根据delayMultiple=1或2,显示1倍(24小时)或2倍(48小时)
+timeNum:48 //24或48
+postponeDate:
+timeUnit:4
+addNum:1 //附件图片数
+mediaUsage:申请延期
+mediaIDs:744114092743 //从第9个接口,上传附件后获取到mediaID,用英文逗号拼接
+relationTypeID:10
+relationID:3679054 //同rec_id
+relationMainID:21
+relationSubID:-1
+tempUsage:apply_postpone_tmp
+mediaTypes:IMAGE //从第9个接口,上传附件后获取到mediaType,用英文逗号拼接
+
+7、WebSocket 请求实时提醒
+请求网址:ws://221.224.13.41:28086/eUrbanMIS/socket
+请求方法:GET
+
+状态代码
+101 Switching Protocols
+HTTP/1.1 101 Switching Protocols
+Server: openresty
+Date: Wed, 20 May 2026 14:06:39 GMT
+Connection: upgrade
+Upgrade: websocket
+Sec-WebSocket-Accept: BVL1oPT1h623labFRDYe0yF03PY=
+Sec-WebSocket-Extensions: permessage-deflate;client_max_window_bits=15
+X-App-Id: mis
+
+GET ws://221.224.13.41:28086/eUrbanMIS/socket HTTP/1.1
+Host: 221.224.13.41:28086
+Connection: Upgrade
+Pragma: no-cache
+Cache-Control: no-cache
+User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36
+Upgrade: websocket
+Origin: http://221.224.13.41:28086
+Sec-WebSocket-Version: 13
+Accept-Encoding: gzip, deflate
+Accept-Language: zh-CN,zh;q=0.9
+Cookie: SESSION=5d5e894a-8263-4248-a287-f776f54d8e18; eUrbanGlobalLogo="{\"black\":\"default.png\",\"whiteblue\":\"default4.png\",\"whitegreen\":\"default4.png\",\"whitered\":\"default4.png\",\"darkblue\":\"default4.png\"}"; eUrbanGlobalStyle=whitegreen; eUrbanToken=; gisUrl=http://221.224.13.41:28093/eUrbanGIS; eUrbanGlobalStyle=whiteblue
+Sec-WebSocket-Key: 1OMmWl2RYmZAY46MBunz+w==
+Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
+
+响应:
+up {"type":"register","data":{"humanID":425}}
+down {"type":"register","data":{"success":true},"timestamp":-1,"revID":null}
+
+8、申请回退
+根据任务号202602090280实际操作的结果
+请求网址:
+http://221.224.13.41:28086/eUrbanMIS/home/workflow/applyrollback
+请求方法:POST
+请求数据(form-data)
+applyActID:124049759
+replyPartID:39
+ardLevel:0
+ardTypeID:18或者62,18代表“拒签”,62代表“处置阶段照片未公开”,蒋主任说统一都是拒签,这个字段固定18
+applyMemo:申请意见
+transInfo:52,254,0
+addNum:1 //附件图片数
+mediaUsage:申请回退
+mediaIDs:744114092743 //从第9个接口,上传附件后获取到mediaID,用英文逗号拼接
+relationTypeID:10
+relationID:3679054 //同rec_id
+relationMainID:21
+relationSubID:-1
+tempUsage:apply_rollback_tmp
+mediaTypes:IMAGE //从第9个接口,上传附件后获取到mediaType,用英文逗号拼接
+
+9、回退、批转、申请回退、申请延期表单内上传附件
+第一步上传:
+请求地址:http://221.224.13.41:28086/eUrbanMIS/media/upload
+请求方法:POST
+请求数据(multipart/form-data)
+relationTypeID:10
+mediaUsage:回退时上传为rollback_tmp 批转时上传为transit_tmp,申请延期为apply_postpone_tmp,申请回退为apply_rollback_tmp
+checkExist:true
+relationID:3679054 //同rec_id
+relationSubID:123872347 //同act_id,但是申请延期和申请回退例外,为-1
+relationMainID:45 //回退和批转时为45,申请延期和申请回退为21
+tempUsage:回退时上传为rollback_tmp 批转时上传为transit_tmp,申请延期为apply_postpone_tmp,申请回退为apply_rollback_tmp
+id:WU_FILE_0 //第1个WU_FILE_0,第二个WU_FILE_1,依此类推
+name:test.png //附件文件名
+type:image/png
+lastModifiedDate:Fri May 22 2026 10:08:57 GMT+0800 (中国标准时间)
+size:925
+files:(binary)
+
+响应:{
+ "success": true,
+ "code": null,
+ "message": null,
+ "data": {
+ "mediaList": [
+ {
+ "storeTypeID": 4,
+ "relationTypeID": 10,
+ "relationID": 3679054,
+ "relationMainID": 45,
+ "relationSubID": 123872347,
+ "mediaType": "IMAGE",
+ "mediaName": "test.png",
+ "mediaUsage": "transit_tmp",
+ "createTime": 1779415756000,
+ "updateTime": null,
+ "displayOrder": null,
+ "deleteReason": null,
+ "deleteFlag": 0,
+ "createHumanID": 425,
+ "deleteHumanID": null,
+ "deleteTime": null,
+ "mediaPath": "rec/tmp/20260522/3679054/cae43bfb-59ee-4f9d-bfe9-e9b5d46f60b9",
+ "mediaServerName": "Media1",
+ "mediaProperty": 0,
+ "specialitemImageType": null,
+ "mediaUploadedName": null,
+ "height": null,
+ "width": null,
+ "sendFlag": null,
+ "mediaShot": null,
+ "publicFlag": 0,
+ "mediaLabelTypeID": null,
+ "mediaURL": "mediadl/media/getdata/Media1/rec/tmp/20260522/3679054/cae43bfb-59ee-4f9d-bfe9-e9b5d46f60b9/test.png",
+ "mediaDefaultURL": "http://2.32.249.61:8080/eUrbanMIS/mediadl/media/getdata/Media1/rec/tmp/20260522/3679054/cae43bfb-59ee-4f9d-bfe9-e9b5d46f60b9/test.png",
+ "humanName": null,
+ "unitName": null,
+ "actDefName": null,
+ "uploadTime": null,
+ "genThumb": false,
+ "canDelete": false,
+ "mediaID": 744114092743
+ }
+ ]
+ },
+ "tipType": 1,
+ "strings": null,
+ "stackTrace": null
+}
+第二步获取上传的文件信息:
+请求地址:http://221.224.13.41:28086/eUrbanMIS/media/get
+请求方式:GET
+请求体:
+relationTypeID:10
+mediaUsage:回退时上传为rollback_tmp 批转时上传为transit_tmp 申请延期为apply_postpone_tmp,申请回退为apply_rollback_tmp
+relationID:3679054 //同rec_id
+relationMainID:45
+relationSubID:123872347 //同act_id
+还有一个时间戳 -:1779411198523
+
+响应:{
+ "success": true,
+ "code": null,
+ "message": null,
+ "data": {
+ "enableManageAllNotReportMedia": false,
+ "mediaList": [
+ {
+ "storeTypeID": 4,
+ "relationTypeID": 10,
+ "relationID": 3679054,
+ "relationMainID": 45,
+ "relationSubID": 123872347,
+ "mediaType": "IMAGE",
+ "mediaName": "test.png",
+ "mediaUsage": "transit_tmp",
+ "createTime": "2026-05-22 10:09:16",
+ "updateTime": null,
+ "displayOrder": null,
+ "deleteReason": "",
+ "deleteFlag": 0,
+ "createHumanID": 425,
+ "deleteHumanID": null,
+ "deleteTime": null,
+ "mediaPath": "rec/tmp/20260522/3679054/cae43bfb-59ee-4f9d-bfe9-e9b5d46f60b9",
+ "mediaServerName": "Media1",
+ "mediaProperty": 0,
+ "specialitemImageType": null,
+ "mediaUploadedName": "",
+ "height": null,
+ "width": null,
+ "sendFlag": null,
+ "mediaShot": "",
+ "publicFlag": 0,
+ "mediaLabelTypeID": null,
+ "mediaURL": "mediadl/media/getdata/Media1/rec/tmp/20260522/3679054/cae43bfb-59ee-4f9d-bfe9-e9b5d46f60b9/test.png",
+ "mediaDefaultURL": "http://2.32.249.61:8080/eUrbanMIS/mediadl/media/getdata/Media1/rec/tmp/20260522/3679054/cae43bfb-59ee-4f9d-bfe9-e9b5d46f60b9/test.png",
+ "humanName": "蒋霙",
+ "unitName": "城投公司",
+ "actDefName": null,
+ "uploadTime": null,
+ "genThumb": false,
+ "canDelete": false,
+ "mediaID": 744114092743
+ }
+ ],
+ "enableManageMedia": false,
+ "enableDeleteMedia": false,
+ "enableDeleteOtherUploadMedia": false
+ },
+ "tipType": 1,
+ "strings": null,
+ "stackTrace": null
+}
+
+10、提交批转完整流程
+第一步,可能是一个表单检查接口:
+请求地址:http://221.224.13.41:28086/eUrbanMIS/home/workflow/checkdisposeimgnum
+请求方法:POST
+请求数据(form-data)
+actID:123872347
+taskListID:600058
+transInfo:52,254,0,0
+opinion:批转意见
+addNum:1 //附件图片数
+
+响应:{
+ "resultInfo": {
+ "success": true,
+ "code": null,
+ "message": null,
+ "data": {},
+ "tipType": 1,
+ "strings": null,
+ "stackTrace": null
+ }
+}
+
+第二步,提交便民批转(如有):
+请求地址:http://221.224.13.41:28086/eUrbanMIS/home/form/formpreview/save
+请求方法:POST
+请求数据(form-data)
+formID:377
+formParam:{"recID":3679054,"actID":123872347}
+isInsert:0
+briefParam:true
+componentList:[{"componentID":9,"value":联系人},{"componentID":12,"value":联系电话}]
+
+响应:{
+ "resultInfo": {
+ "success": true,
+ "code": null,
+ "message": null,
+ "data": {
+ "extendInfo": "。 申请不回访: ; 申请不交办: ; 自行回访: ",
+ "isSuccess": true
+ },
+ "tipType": 1,
+ "strings": null,
+ "stackTrace": null
+ }
+}
+
+第三步,提交基础表单:
+请求地址:http://221.224.13.41:28086/eUrbanMIS/home/workflow/transit
+请求方法:POST
+请求数据(form-data)
+actID:123872347
+taskListID:600058
+transInfo:52,254,0,0
+opinion:系统测试,烦请退回,谢谢。 。 申请不回访: ; 申请不交办: ; 自行回访: //基础表单的批转意见+第二步提交便民批转的响应内的extendInfo的字符串拼接
+addNum:1 //附件图片数
+mediaUsage:处置
+mediaIDs:744114092743 //从第9个接口,上传附件后获取到mediaID,用英文逗号拼接
+relationTypeID:10
+relationID:3679054 //同rec_id
+relationMainID:45
+relationSubID:123872347 //同act_id
+tempUsage:transit_tmp
+mediaTypes:IMAGE //从第9个接口,上传附件后获取到mediaType,用英文逗号拼接
+
+响应:{
+ "success": true,
+ "code": null,
+ "message": "批转成功!",
+ "data": {
+ "smsInfo": [
+ "254,role,市受理员"
+ ],
+ "newActList": [
+ {
+ "actID": 124270511,
+ "lastActFlag": 1,
+ "procID": 101,
+ "actDefID": 52,
+ "actDefName": "结案",
+ "actTypeID": 3,
+ "actTypeName": "普通",
+ "actStateID": 11110,
+ "actStateName": "正常移交 ",
+ "actStateIconID": null,
+ "recID": 3679054,
+ "partID": 254,
+ "partName": "市受理员",
+ "humanID": 0,
+ "humanName": null,
+ "roleID": 254,
+ "roleName": "市受理员",
+ "unitID": 37,
+ "unitName": "监督指挥大厅",
+ "preActID": "123872347,",
+ "prePartID": "310,",
+ "prePartName": "城投公司,",
+ "preActDefID": "45",
+ "preActDefName": "一级专业部门",
+ "preActOpinion": "系统测试,烦请退回,谢谢。 。 申请不回访: ; 申请不交办: ; 自行回访:",
+ "preHumanID": "425,",
+ "preHumanName": "蒋霙,",
+ "preRoleID": "310,",
+ "preRoleName": "城投公司,",
+ "preUnitID": "308,",
+ "preUnitName": "城投公司,",
+ "nextActID": null,
+ "nextPartID": null,
+ "nextPartName": null,
+ "partType": "role",
+ "nextActDefID": null,
+ "nextActDefName": null,
+ "nextHumanID": null,
+ "nextHumanName": null,
+ "nextRoleID": null,
+ "nextRoleName": null,
+ "nextUnitID": null,
+ "nextUnitName": null,
+ "actSupStateID": 0,
+ "actSupStateName": "无",
+ "actPressStateID": 0,
+ "actPressStateName": "无",
+ "actArdStateID": 0,
+ "actArdStateName": "无",
+ "actEnqStateID": 0,
+ "actEnqStateName": "无",
+ "actArdItemTypeID": null,
+ "actCopStateID": 0,
+ "actCopStateName": "无",
+ "actAuthStateID": 0,
+ "actAuthStateName": "无",
+ "backActID": "123872347",
+ "replyBackActID": "",
+ "actDisplayProperty": null,
+ "actDisplayPropertyChar": null,
+ "backColorBitID": null,
+ "fontColorBitID": null,
+ "actDeadline": 0.25,
+ "actDeadlineChar": "15分钟",
+ "actWarning": 0.166667,
+ "deadlineTime": "2026-05-22 10:40:40",
+ "warningTime": "2026-05-22 10:35:40",
+ "startTime": "2026-05-22 10:25:40",
+ "endTime": null,
+ "actTimeStateID": 1,
+ "actDurationUnit": 2,
+ "actUsed": 0,
+ "actRemain": 0.25,
+ "actUsedChar": "0秒",
+ "actRemainChar": "15分钟",
+ "refreshFlag": 1,
+ "refreshStartTime": null,
+ "refreshTime": "2026-05-22 10:25:40",
+ "timeSysID": 3,
+ "timeStateID": 0,
+ "bundleTimeSysID": null,
+ "bundleDeadlineTime": null,
+ "bundleWarningTime": null,
+ "bundleDeadlineLimit": null,
+ "bundleWarningLimit": null,
+ "bundleUsed": null,
+ "bundleRemain": null,
+ "bundleUsedChar": null,
+ "bundleRemainChar": null,
+ "bundleTimeStateID": null,
+ "bundleDeadlineChar": null,
+ "itemMenuSet": ",postpone,finish,finishbatch,advice,authright,askcooperate,suspend,cancel,cancelbatch,transit,transitbatch,transit_spec,supervise_dispatch,rollback,transit_many,advice,",
+ "itemMenuSetBit": 1049104166,
+ "priSubTypeID": 0,
+ "readTime": null,
+ "readFlag": 0,
+ "transOpinion": null,
+ "createTime": "2026-05-22 10:25:40",
+ "transItemTypeID": 610,
+ "transItemTypeName": "transit",
+ "displayFlag": 1,
+ "extraInfo": null,
+ "resetTimeFlag": null,
+ "timedDispatchFlag": 0,
+ "rollbackDeadline": "2025-12-15 15:00:00",
+ "replyActRemainChar": null,
+ "autoTransFlag": false,
+ "autoTransedFlag": false,
+ "autoTransType": null,
+ "autoTransRuleID": null,
+ "isMainResp": 0,
+ "parallelIDs": null
+ }
+ ]
+ },
+ "tipType": 1,
+ "strings": null,
+ "stackTrace": null
+}
+
+第四步,发送短信(如选择发短信):
+请求地址:http://221.224.13.41:28086/eUrbanMIS/home/sms/sendwfsms
+请求方法:POST
+请求数据(form-data)
+actDefID:45
+actPropertyID:7
+partStr:254,role,市受理员
+itemType:transit
+recID:3679054
+actID:123872347
+
+响应:{
+ "resultInfo": {
+ "success": false,
+ "code": null,
+ "message": null,
+ "data": {
+ "smsSendCreateTime": 1779416741000,
+ "smsReceiveList": [
+ {
+ "msgID": 5319105,
+ "humanID": 676,
+ "detailNum": 1,
+ "mobile": "18625097251",
+ "receiveTime": null,
+ "readTime": null,
+ "smsID": null,
+ "retryTime": 0,
+ "msgStateID": 0,
+ "errorInfo": null,
+ "deleteFlag": 0
+ },
+ {
+ "msgID": 5319105,
+ "humanID": 715,
+ "detailNum": 2,
+ "mobile": "18551572192",
+ "receiveTime": null,
+ "readTime": null,
+ "smsID": null,
+ "retryTime": 0,
+ "msgStateID": 0,
+ "errorInfo": null,
+ "deleteFlag": 0
+ },
+ {
+ "msgID": 5319105,
+ "humanID": 718,
+ "detailNum": 3,
+ "mobile": "18625097090",
+ "receiveTime": null,
+ "readTime": null,
+ "smsID": null,
+ "retryTime": 0,
+ "msgStateID": 0,
+ "errorInfo": null,
+ "deleteFlag": 0
+ },
+ {
+ "msgID": 5319105,
+ "humanID": 1631,
+ "detailNum": 4,
+ "mobile": "18625097078",
+ "receiveTime": null,
+ "readTime": null,
+ "smsID": null,
+ "retryTime": 0,
+ "msgStateID": 0,
+ "errorInfo": null,
+ "deleteFlag": 0
+ },
+ {
+ "msgID": 5319105,
+ "humanID": 14577,
+ "detailNum": 5,
+ "mobile": "13190367228",
+ "receiveTime": null,
+ "readTime": null,
+ "smsID": null,
+ "retryTime": 0,
+ "msgStateID": 0,
+ "errorInfo": null,
+ "deleteFlag": 0
+ }
+ ],
+ "humanNoConfig": "韩彬,周诚栋,丁诚,钱雯,夏兴,张沈涛,周菊芳,朱帅未配置发送该类型短信!",
+ "tip": "朱炎骎,朱超,唐小红,顾洁,高峰,李青(受理员),陆欣欣,赵震宇,马诚开,朱明,演示人员01,赵迅,沈豪,系统运维,王侃,朱力,李英杰,丁明明,受理员,工单查询,测试分配,夜班01,夜班02,夜班03,潘晓东,张顺利,李剑霜,受理员(实习),李青(女),自动批转人员,桂联合,刘明明,朱超(新),市受理员01,王初冬,朱刚,张晨光,朱文杰,大厅日01,受理员02,受理员01,受理员03,徐培瑾,陈贇龙,王天时,沈宇岚,陆建兰,受理员04,受理员05,受理员06,吕苏城,测试员01,渣土专线01,刘军,yszh没有手机号,未发送短信!",
+ "receiveNum": 5
+ },
+ "tipType": 1,
+ "strings": null,
+ "stackTrace": null
+ }
+}
+
+第五步,可能是设置紧急工单:
+请求地址:http://221.224.13.41:28086/eUrbanMIS/home/mis/urgentrec/seturgentrec
+请求方法:POST
+请求数据(form-data)
+recID:3679054
+
+响应:{
+ "success": true,
+ "code": null,
+ "message": null,
+ "data": {},
+ "tipType": 1,
+ "strings": null,
+ "stackTrace": null
+}
+
+
+11、提交回退完整流程
+第一步,提交便民回退(如有)
+请求地址:http://221.224.13.41:28086/eUrbanMIS/home/form/formpreview/save
+请求方式:POST
+请求数据(form-data)
+formID:352
+formParam:{"recID":3709579,"actID":124049136}
+isInsert:0
+briefParam:true
+componentList:[{"componentID":8,"value":回退意见},
+ {"componentID":4,"value":1:不交办,0:交办},
+ {"componentID":9,"value":承办人员},
+ {"componentID":12,"value":联系电话}]
+
+响应:{
+ "resultInfo": {
+ "success": true,
+ "code": null,
+ "message": null,
+ "data": {
+ "extendInfo": "。 申请不回访: ; 申请不交办: ; 自行回访: ",
+ "isSuccess": true
+ },
+ "tipType": 1,
+ "strings": null,
+ "stackTrace": null
+ }
+}
+
+第二步,提交基础表单:
+请求地址:http://221.224.13.41:28086/eUrbanMIS/home/workflow/rollback
+请求方式:POST
+请求数据(form-data)
+actID:124049136
+transInfo:50,254,0
+saveOldActFlag:false
+transListNum:0
+opinion:非我司管辖范围,请转相关单位,谢谢。 。 申请不回访: ; 申请不交办: ; 自行回访: //基础表单的回退意见+第一步提交便民回退的响应内的extendInfo的字符串拼接
+rollbackReasonID:-1
+mediaUsage:回退
+mediaIDs:744114093233 //从第9个接口,上传附件后获取到mediaID,用英文逗号拼接
+relationTypeID:10
+relationID:3709579 //同rec_id
+relationMainID:45
+relationSubID:124049136 //同act_id
+tempUsage:rollback_tmp
+addNum:1 //上传文件数量
+mediaTypes:IMAGE //从第9个接口,上传附件后获取到mediaType,用英文逗号拼接
+
+响应:{
+ "success": true,
+ "code": null,
+ "message": "回退成功!",
+ "data": {
+ "smsInfo": [
+ "254,role,市受理员"
+ ],
+ "newActList": [
+ {
+ "actID": 124270969,
+ "lastActFlag": 1,
+ "procID": 101,
+ "actDefID": 50,
+ "actDefName": "受理",
+ "actTypeID": 3,
+ "actTypeName": "普通",
+ "actStateID": 11112,
+ "actStateName": "正常移交 ",
+ "actStateIconID": null,
+ "recID": 3709579,
+ "partID": 254,
+ "partName": "市受理员",
+ "humanID": 0,
+ "humanName": null,
+ "roleID": 254,
+ "roleName": "市受理员",
+ "unitID": 37,
+ "unitName": "监督指挥大厅",
+ "preActID": "124049136,",
+ "prePartID": "310,",
+ "prePartName": "城投公司,",
+ "preActDefID": "45",
+ "preActDefName": "一级专业部门",
+ "preActOpinion": "非我司管辖范围,请转相关单位,谢谢。 。 申请不回访: ; 申请不交办: ; 自行回访:",
+ "preHumanID": "425,",
+ "preHumanName": "蒋霙,",
+ "preRoleID": "310,",
+ "preRoleName": "城投公司,",
+ "preUnitID": "308,",
+ "preUnitName": "城投公司,",
+ "nextActID": null,
+ "nextPartID": null,
+ "nextPartName": null,
+ "partType": "role",
+ "nextActDefID": null,
+ "nextActDefName": null,
+ "nextHumanID": null,
+ "nextHumanName": null,
+ "nextRoleID": null,
+ "nextRoleName": null,
+ "nextUnitID": null,
+ "nextUnitName": null,
+ "actSupStateID": 0,
+ "actSupStateName": "无",
+ "actPressStateID": 0,
+ "actPressStateName": "无",
+ "actArdStateID": 0,
+ "actArdStateName": "无",
+ "actEnqStateID": 0,
+ "actEnqStateName": "无",
+ "actArdItemTypeID": null,
+ "actCopStateID": 0,
+ "actCopStateName": "无",
+ "actAuthStateID": 0,
+ "actAuthStateName": "无",
+ "backActID": "124049136",
+ "replyBackActID": "124049136",
+ "actDisplayProperty": 32768,
+ "actDisplayPropertyChar": "0000000000000001",
+ "backColorBitID": null,
+ "fontColorBitID": null,
+ "actDeadline": 0.25,
+ "actDeadlineChar": "15分钟",
+ "actWarning": 0.166667,
+ "deadlineTime": "2026-05-22 13:25:11",
+ "warningTime": "2026-05-22 13:20:11",
+ "startTime": "2026-05-22 13:10:11",
+ "endTime": null,
+ "actTimeStateID": 1,
+ "actDurationUnit": 2,
+ "actUsed": 0,
+ "actRemain": 0.25,
+ "actUsedChar": "0秒",
+ "actRemainChar": "15分钟",
+ "refreshFlag": 1,
+ "refreshStartTime": null,
+ "refreshTime": "2026-05-22 13:10:11",
+ "timeSysID": 3,
+ "timeStateID": 0,
+ "bundleTimeSysID": null,
+ "bundleDeadlineTime": null,
+ "bundleWarningTime": null,
+ "bundleDeadlineLimit": null,
+ "bundleWarningLimit": null,
+ "bundleUsed": null,
+ "bundleRemain": null,
+ "bundleUsedChar": null,
+ "bundleRemainChar": null,
+ "bundleTimeStateID": null,
+ "bundleDeadlineChar": null,
+ "itemMenuSet": ",postpone,newinst,advice,authright,askcooperate,suspend,cancel,cancelbatch,transit,transitbatch,transit_spec,supervise_dispatch,replyrollback,transit_many,advice,",
+ "itemMenuSetBit": 914886501,
+ "priSubTypeID": 0,
+ "readTime": null,
+ "readFlag": 0,
+ "transOpinion": null,
+ "createTime": "2026-05-22 13:10:11",
+ "transItemTypeID": 626,
+ "transItemTypeName": "rollback",
+ "displayFlag": 1,
+ "extraInfo": null,
+ "resetTimeFlag": null,
+ "timedDispatchFlag": 0,
+ "rollbackDeadline": "2026-03-11 13:07:12",
+ "replyActRemainChar": null,
+ "autoTransFlag": true,
+ "autoTransedFlag": false,
+ "autoTransType": null,
+ "autoTransRuleID": null,
+ "isMainResp": 0,
+ "parallelIDs": null
+ }
+ ]
+ },
+ "tipType": 1,
+ "strings": null,
+ "stackTrace": null
+}
+
+第三步,发送短信(如选择发送):
+请求地址:http://221.224.13.41:28086/eUrbanMIS/home/sms/sendwfsms
+请求方式 POST
+请求数据(form-data)
+actDefID:45
+partStr:254,role,市受理员
+itemType:rollback
+recID:3709579
+actID:124049136
+
+响应:{
+ "resultInfo": {
+ "success": false,
+ "code": null,
+ "message": null,
+ "data": {
+ "smsSendCreateTime": 1779426612000,
+ "smsReceiveList": [
+ {
+ "msgID": 5319336,
+ "humanID": 676,
+ "detailNum": 1,
+ "mobile": "18625097251",
+ "receiveTime": null,
+ "readTime": null,
+ "smsID": null,
+ "retryTime": 0,
+ "msgStateID": 0,
+ "errorInfo": null,
+ "deleteFlag": 0
+ },
+ {
+ "msgID": 5319336,
+ "humanID": 715,
+ "detailNum": 2,
+ "mobile": "18551572192",
+ "receiveTime": null,
+ "readTime": null,
+ "smsID": null,
+ "retryTime": 0,
+ "msgStateID": 0,
+ "errorInfo": null,
+ "deleteFlag": 0
+ },
+ {
+ "msgID": 5319336,
+ "humanID": 718,
+ "detailNum": 3,
+ "mobile": "18625097090",
+ "receiveTime": null,
+ "readTime": null,
+ "smsID": null,
+ "retryTime": 0,
+ "msgStateID": 0,
+ "errorInfo": null,
+ "deleteFlag": 0
+ },
+ {
+ "msgID": 5319336,
+ "humanID": 1631,
+ "detailNum": 4,
+ "mobile": "18625097078",
+ "receiveTime": null,
+ "readTime": null,
+ "smsID": null,
+ "retryTime": 0,
+ "msgStateID": 0,
+ "errorInfo": null,
+ "deleteFlag": 0
+ },
+ {
+ "msgID": 5319336,
+ "humanID": 14577,
+ "detailNum": 5,
+ "mobile": "13190367228",
+ "receiveTime": null,
+ "readTime": null,
+ "smsID": null,
+ "retryTime": 0,
+ "msgStateID": 0,
+ "errorInfo": null,
+ "deleteFlag": 0
+ }
+ ],
+ "humanNoConfig": "韩彬,周诚栋,丁诚,钱雯,夏兴,张沈涛,周菊芳,朱帅未配置发送该类型短信!",
+ "tip": "朱炎骎,朱超,唐小红,顾洁,高峰,李青(受理员),陆欣欣,赵震宇,马诚开,朱明,演示人员01,赵迅,沈豪,系统运维,王侃,朱力,李英杰,丁明明,受理员,工单查询,测试分配,夜班01,夜班02,夜班03,潘晓东,张顺利,李剑霜,受理员(实习),李青(女),自动批转人员,桂联合,刘明明,朱超(新),市受理员01,王初冬,朱刚,张晨光,朱文杰,大厅日01,受理员02,受理员01,受理员03,徐培瑾,陈贇龙,王天时,沈宇岚,陆建兰,受理员04,受理员05,受理员06,吕苏城,测试员01,渣土专线01,刘军,yszh没有手机号,未发送短信!",
+ "receiveNum": 5
+ },
+ "tipType": 1,
+ "strings": null,
+ "stackTrace": null
+ }
+}
\ No newline at end of file
diff --git a/docs/solution.md b/docs/solution.md
new file mode 100644
index 0000000..2eea937
--- /dev/null
+++ b/docs/solution.md
@@ -0,0 +1,130 @@
+# 数字化三方系统集成(D3I)
+## 政务服务单位统一工单中枢平台
+
+---
+
+### 项目概述
+
+数字化三方系统集成(Digital 3-Directional Integration, D3I)平台,是面向城市公共服务单位的**统一工单中枢系统**,旨在彻底解决一线工作人员“**多系统登录、多平台响应、重复录入、信息割裂**”的痛点。
+
+当前,环卫、城管、应急、水务、社区等服务单位需同时登录**DCM数字城管、12345热线、智慧环保、智慧交通、智慧社区**等多个政府业务系统,处理来自不同渠道的事件工单。这不仅导致**工作效率低下**,更因系统间数据不通,造成**任务漏办、重复派单、反馈滞后**。
+
+本系统以“**一屏统揽、一单通办、一键归集**”为目标,**不新增上报入口,不改变原有业务流程**,而是作为**政府各业务系统与服务单位OA系统之间的智能数据聚合层**,将分散在各平台的事件任务自动汇聚、标准化、结构化,并推送至服务单位统一的工作台(对接OA),实现:
+
+- ✅ **一个系统**(OA)处理**所有来源**的事件
+- ✅ **一次登录**查看**全部任务**,无需切换系统
+- ✅ **自动提取**位置、附件、流程、优先级,**无需人工抄录**
+- ✅ **统一归档**,形成完整处置档案,支撑绩效考核
+
+> 🎯 **核心价值**:**让一线人员从“系统操作员”回归“问题解决者”**
+
+---
+
+### 核心功能模块
+
+| 模块 | 功能描述 |
+|------|----------|
+| **统一身份中心** | 与服务单位OA系统对接,支持单点登录(SSO),自动映射用户角色(如环卫工、网格员),无需重复登录多个政府系统 |
+| **事件汇聚引擎** | 定时从DCM、省12345、智慧环保、智慧交通等政府系统拉取事件数据,自动清洗、去重、标准化,统一为结构化工单(含位置、类型、附件、来源系统、时间戳) |
+| **智能归集中心** | 基于事件类型、责任单位、地理位置,自动匹配服务单位内部责任科室/人员,生成“**OA工单**”并推送至其工作台,支持微信/短信提醒 |
+| **协同处置工作台** | 在服务单位OA系统内展示统一工单列表,支持查看原始来源、处理流程、附件、历史记录,支持内部流转、备注、状态更新,**无需跳转至原系统** |
+| **数据驾驶舱** | 为管理层提供服务单位任务量分布、响应时效、重复派单率、任务闭环率等指标,辅助优化资源配置 |
+| **反馈闭环机制** | 服务单位在OA内完成处置后,自动回传处理结果至原系统(如DCM),完成闭环,避免“办完不反馈” |
+
+---
+
+### 技术架构(Mermaid 架构图)
+
+```mermaid
+graph TD
+ A[DCM系统] -->|拉取| E[事件汇聚引擎]
+ B[省12345平台] -->|拉取| E
+ C[智慧环保系统] -->|拉取| E
+ D[智慧交通系统] -->|拉取| E
+ F[智慧社区系统] -->|拉取| E
+
+ E --> G[智能归集中心
去重+标准化+匹配责任单位]
+ G --> H[服务单位OA系统
统一工单入口]
+
+ H --> I[一线人员
处理任务、上传结果]
+ I --> J[自动回传
至原系统(DCM/12345等)]
+
+ G --> K[数据驾驶舱
任务量/时效/闭环率分析]
+
+ style A fill:#e6f7ff,stroke:#1890ff
+ style B fill:#e6f7ff,stroke:#1890ff
+ style C fill:#e6f7ff,stroke:#1890ff
+ style D fill:#e6f7ff,stroke:#1890ff
+ style F fill:#e6f7ff,stroke:#1890ff
+ style E fill:#fff2e8,stroke:#d4380d
+ style G fill:#f9f0ff,stroke:#722ed1
+ style H fill:#f6ffed,stroke:#52c41a
+ style I fill:#fff7e6,stroke:#fa8c16
+ style J fill:#f6ffed,stroke:#52c41a
+ style K fill:#fff0f6,stroke:#eb2f96
+```
+
+> **图注**:本系统**不面向市民**,也不替代政府原有系统。它是一个**隐身在后台的“数据翻译器”和“任务调度器”**,让服务单位只需关注一个系统——他们的OA。
+
+---
+
+### 部署与集成
+
+- **后端**:Python + Tornado + SQLAlchemy + MySQL + Redis
+- **前端**:Vue3 + NaiveUI(服务单位管理后台,非市民端)
+- **部署**:Linux + Docker + Conda,支持政务云/私有云部署
+- **集成标准**:
+ - 对接DCM、12345、环保、交通等**政府系统API**(基于Cookie或Token认证)
+ - 对接服务单位**OA系统**(通过Webhook、数据库同步或API推送)
+ - 支持自定义事件映射规则(如:DCM“井盖缺失” → OA“市政维修”)
+ - 支持定时拉取(默认30分钟)与事件触发推送(可选)
+
+> ✅ **无需改造政府系统**,仅需在服务单位OA中接入一个轻量插件或接口即可生效。
+
+---
+
+### 使用场景示例
+
+1. **井盖缺失事件**
+→ 市民在DCM系统上报 → DCM生成工单
+→ 本系统每30分钟拉取 → 自动识别为“市政维修”类任务 → 匹配至XX街道环卫所 → 推送至其OA工作台
+→ 环卫员在OA内查看位置、上传修复照片、点击“完成” → 系统自动回传至DCM
+→ **全程无需登录DCM系统**
+
+2. **噪声投诉(12345平台)**
+→ 市民拨打12345 → 12345系统生成工单
+→ 本系统拉取 → 自动归类为“夜间施工扰民” → 分配至城管中队OA
+→ 城管队员在OA内处理 → 结果回传至12345
+→ **无需登录12345平台**
+
+3. **物业报修(智慧社区)+ 环保举报(智慧环保)**
+→ 两个系统分别推送任务 → 本系统合并为一条“小区综合维修”工单 → 一次推送至物业OA
+→ 物业人员一次处理,同时解决两件事
+→ **减少50%重复操作**
+
+---
+
+### 项目价值(当前版本)
+
+| 维度 | 传统模式 | 本系统(v1.0) |
+|------|----------|----------------|
+| 系统登录次数/日 | 5–8次 | **1次(仅OA)** |
+| 任务录入耗时 | 平均8–12分钟/单 | **≤2分钟/单(自动填充)** |
+| 任务漏办率 | 15–20% | **<3%** |
+| 多系统数据一致性 | 无 | **100%统一** |
+| 一线人员满意度 | 58% | **目标提升至90%+** |
+
+> ✅ **核心价值**:**每天节省2小时操作时间,让一线人员真正“把时间用在解决问题上”**
+
+---
+
+### 扩展
+
+本系统为**政务数字化“减负工程”标杆项目**:
+
+- 文档:`docs/` 目录下含 API 手册、对接指南、事件映射规则模板
+- 模块可插拔:支持快速接入新政府系统(只需配置采集规则)
+- 支持“**反向推送**”:服务单位在OA内发起的工单,也可反向推送至政府系统(如“申请物资”)
+- 未来可升级为**城市公共服务数字员工平台**,支持AI自动分类、智能推荐处理人
+
+© 2026 数字化三方系统集成项目组 · 智慧城市治理创新实验室
\ No newline at end of file