# 宜搭对接 NC 单据开发 - 后端应用程序 ## 概述 这是一个基于 .NET Framework 的 C# 控制台程序,用于在用友 NC 数据库、NC 接口与钉钉宜搭表单之间执行数据同步。程序通过 `Program.cs` 选择要执行的同步服务,并从 `App.config` 读取数据库连接、宜搭访问凭据、表单标识与 NC 接口地址等运行参数。 当前主入口启用的是客户同步:`KH_SyncService.DataSync()`。其他同步任务保留在入口文件中,可按实际作业需求调整后重新编译。 ## 工程结构 ```text . ├─ HH.YiDaSyncNC.sln Visual Studio 解决方案 ├─ HH.YiDaSyncNC/ 主项目(.NET Framework 控制台程序) │ ├─ Program.cs 程序入口、配置读取与同步任务选择 │ ├─ App.config 运行参数配置(不应提交真实凭据) │ ├─ packages.config NuGet 包版本清单 │ ├─ DataSync/ 各业务单据与基础档案同步服务 │ ├─ Dtos/ NC 与宜搭接口的数据传输对象 │ │ ├─ NC/ NC 实体及字段模型 │ │ └─ YIDA/ 宜搭表单数据模型 │ ├─ Models/ 同步过程使用的业务模型 │ ├─ Helper/ 数据库、HTTP、钉钉、日志等通用工具 │ ├─ Properties/ 程序程序集属性 │ ├─ lib/ 项目本地引用的第三方程序集 │ ├─ bin/ 编译输出目录 │ └─ obj/ 中间编译文件 └─ packages/ 已还原的 NuGet 包目录 ``` ## 主要模块 | 模块 | 职责 | | --- | --- | | `Program.cs` | 创建 SqlSugar 数据库客户端,读取运行配置,并调用选定的同步服务。 | | `DataSync` | 实现客户、供应商、物料、项目、资产、采购订单、开票、付款、报销、保证金等业务的同步流程。 | | `Dtos/NC` | 定义 NC 侧数据库或接口对应的数据模型。 | | `Dtos/YIDA` | 定义宜搭表单、子表及接口响应对应的数据模型。 | | `Models` | 承载各同步场景的请求和中间业务数据。 | | `Helper` | 提供 SqlSugar 数据访问、HTTP 请求、钉钉接口调用、日志、时间处理等能力。 | ## 技术栈 - C# / .NET Framework 4.7.2 - Visual Studio 2022 Community 或兼容 MSBuild - SQL Server(通过 SqlSugar 访问) - 钉钉宜搭 OpenAPI(Alibaba Cloud DingTalk SDK) - Newtonsoft.Json、System.Text.Json、RestSharp 项目使用 `packages.config` 管理 NuGet 依赖,主要依赖包括 `SqlSugar`、`AlibabaCloud.SDK.Dingtalk`、`Newtonsoft.Json` 与 `RestSharp`。 ## 构建 ### Visual Studio 1. 使用 Visual Studio 2022 打开 `HH.YiDaSyncNC.sln`。 2. 选择 `Debug` 或 `Release` 配置。 3. 执行“生成解决方案”。 ### Developer Command Prompt for VS 2022 ```bat cd /d "C:\Users\EDY\Desktop\work\pro\lanyun\宜搭对接NC单据开发-后端-应用程序" MSBuild HH.YiDaSyncNC.sln /t:Build /p:Configuration=Debug /m ``` 默认 Debug 输出文件为: ```text HH.YiDaSyncNC\bin\Debug\HH.YiDaSyncNC.exe ``` ## 运行前检查 运行该程序会访问外部数据库和接口。首次运行前应由具备相应授权的维护人员确认: 1. `App.config` 中的数据库、NC 服务与宜搭参数已按目标环境配置。 2. 当前入口中仅启用了预期的同步服务。 3. 运行账户具备目标 SQL Server、NC 接口和宜搭表单的必要权限。 4. 已确认同步范围与影响,避免重复写入或误同步生产数据。 请勿将真实连接字符串、访问令牌、用户标识或接口地址提交到版本库、README 或日志中。 ## 当前验证状态 已在本机使用 Visual Studio 2022 的 MSBuild 对 `Debug` 配置完成一次构建。构建成功,输出文件已生成;现有未使用变量警告不影响生成结果。