Commit 47d33dcab5b64c9160d9f3d96e7d70d2e4c79cce

Authored by “wangming”
1 parent 111b5df6

国庆快乐~

Showing 21 changed files with 214 additions and 1656 deletions
README.md
@@ -2,7 +2,16 @@ @@ -2,7 +2,16 @@
2 2
3 ## 项目简介 3 ## 项目简介
4 4
5 -绿纤ERP管理系统是一个基于现代化技术栈开发的企业资源规划系统,专为绿纤行业量身定制。系统采用前后端分离架构,提供完整的生产、销售、库存、财务等业务管理功能。 5 +绿纤ERP管理系统是一个基于现代化技术栈开发的企业资源规划系统,专为绿纤行业量身定制。系统采用前后端分离架构,提供完整的门店管理、业绩统计、工资核算、报表分析等业务管理功能。
  6 +
  7 +## 🎯 核心功能亮点
  8 +
  9 +- **📊 业绩统计系统** - 门店业绩、个人业绩、金三角业绩等多维度统计
  10 +- **💰 工资核算系统** - 健康师底薪、提成、奖励等自动计算
  11 +- **📈 报表分析系统** - 可视化图表、趋势分析、排行榜展示
  12 +- **🏪 门店管理系统** - 门店信息、归属管理、新店保护
  13 +- **👥 人员管理系统** - 健康师管理、金三角团队管理
  14 +- **📋 客户管理系统** - 客户信息、会员权益、拓客记录
6 15
7 ## 技术栈 16 ## 技术栈
8 17
@@ -21,6 +30,7 @@ @@ -21,6 +30,7 @@
21 - **Vue Router** - 路由管理 30 - **Vue Router** - 路由管理
22 - **Axios** - HTTP客户端 31 - **Axios** - HTTP客户端
23 - **SCSS** - CSS预处理器 32 - **SCSS** - CSS预处理器
  33 +- **ECharts** - 数据可视化图表库
24 34
25 ## 项目结构 35 ## 项目结构
26 36
@@ -46,9 +56,13 @@ lvqianmeiye_ERP/ @@ -46,9 +56,13 @@ lvqianmeiye_ERP/
46 │ │ ├── api/ # API接口 56 │ │ ├── api/ # API接口
47 │ │ ├── components/ # 公共组件 57 │ │ ├── components/ # 公共组件
48 │ │ ├── views/ # 页面视图 58 │ │ ├── views/ # 页面视图
49 -│ │ │ ├── lqBmzb/ # 部门管理页面  
50 -│ │ │ ├── lqCpxx/ # 产品信息页面  
51 -│ │ │ ├── lqHygl/ # 会员管理页面 59 +│ │ │ ├── salaryStatistics/ # 工资统计页面
  60 +│ │ │ ├── personalPerformanceStatistics/ # 个人业绩统计
  61 +│ │ │ ├── storeTotalPerformanceStatistics/ # 门店总业绩统计
  62 +│ │ │ ├── departmentConsumePerformanceStatistics/ # 部门消耗业绩统计
  63 +│ │ │ ├── techPerformanceStatistics/ # 科技部业绩统计
  64 +│ │ │ ├── storeConsumePerformanceStatistics/ # 门店消耗业绩统计
  65 +│ │ │ ├── report/ # 报表分析页面
52 │ │ │ └── ... # 其他业务页面 66 │ │ │ └── ... # 其他业务页面
53 │ │ ├── router/ # 路由配置 67 │ │ ├── router/ # 路由配置
54 │ │ └── store/ # 状态管理 68 │ │ └── store/ # 状态管理
@@ -64,33 +78,25 @@ lvqianmeiye_ERP/ @@ -64,33 +78,25 @@ lvqianmeiye_ERP/
64 ### NCC.Extend(业务服务层) 78 ### NCC.Extend(业务服务层)
65 包含所有业务服务的具体实现,按功能分类: 79 包含所有业务服务的具体实现,按功能分类:
66 80
67 -#### 📋 基础管理类  
68 -- `LqCpxxService` - 产品信息管理服务 81 +#### 📊 业绩统计类
  82 +- `LqStatisticsService` - 核心统计服务(个人业绩、门店业绩、金三角业绩等)
  83 +- `LqReportService` - 报表分析服务(趋势图、排行榜、仪表盘)
  84 +
  85 +#### 💰 工资核算类
  86 +- `LqGzService` - 工资核算服务(健康师底薪、提成计算)
  87 +
  88 +#### 🏪 门店管理类
  89 +- `LqMdxxService` - 门店信息管理服务
  90 +- `LqMdXdbhsjService` - 门店新店保护时间管理
  91 +
  92 +#### 👥 人员管理类
  93 +- `LqYcsdJsjService` - 金三角设定管理服务
  94 +- `LqJinsanjiaoUserService` - 金三角用户绑定管理
  95 +
  96 +#### 📋 客户管理类
69 - `LqKhxxService` - 客户信息管理服务 97 - `LqKhxxService` - 客户信息管理服务
70 -- `LqRyzlService` - 人员资料管理服务  
71 -  
72 -#### 🏭 生产管理类  
73 -- `LqJsfaService` - 工艺方案管理服务  
74 -- `LqSbtjbService` - 设备统计管理服务  
75 -- `LqYcsdJsjService` - 技术数据管理服务  
76 -- `LqYcsdJjlftjsService` - 技术方案管理服务  
77 -- `LqYcsdMdlbjhsxxService` - 模具管理服务  
78 -  
79 -#### 💰 销售管理类  
80 -- `LqXhHyhkService` - 销售回款管理服务  
81 -- `LqXhmxbService` - 销售明细管理服务  
82 -- `LqTkXscService` - 提成管理服务  
83 -- `LqTkjlbService` - 提成记录管理服务  
84 -  
85 -#### 📦 库存管理类  
86 -- `LqKqhzbService` - 库存汇总管理服务  
87 -- `LqLssjService` - 历史数据管理服务  
88 -- `LqYjmxbService` - 原料明细管理服务  
89 -  
90 -#### 📊 财务管理类  
91 -- `LqSkzhService` - 收款账户管理服务  
92 -- `LqHzfService` - 汇总费用管理服务  
93 -- `LqJdqdService` - 季度清单管理服务 98 +- `LqTkjlbService` - 拓客记录管理服务
  99 +- `LqEventService` - 拓客活动管理服务
94 100
95 #### 🔧 系统工具类 101 #### 🔧 系统工具类
96 - `EmailService` - 邮件服务 102 - `EmailService` - 邮件服务
@@ -99,9 +105,16 @@ lvqianmeiye_ERP/ @@ -99,9 +105,16 @@ lvqianmeiye_ERP/
99 - `WorkLogService` - 工作日志服务 105 - `WorkLogService` - 工作日志服务
100 106
101 ### NCC.Extend.Entitys(实体模型层) 107 ### NCC.Extend.Entitys(实体模型层)
102 -- **Entity/** - 数据库实体模型(66个实体)  
103 -- **Dto/** - 数据传输对象(304个DTO)  
104 -- **Mapper/** - 对象映射配置(50个映射器) 108 +- **Entity/** - 数据库实体模型(包含统计表、工资表等核心实体)
  109 + - `lq_statistics_personal_performance/` - 个人业绩统计实体
  110 + - `lq_statistics_store_total_performance/` - 门店总业绩统计实体
  111 + - `lq_statistics_gold_triangle/` - 金三角业绩统计实体
  112 + - `lq_statistics_department_consume_performance/` - 部门消耗业绩统计实体
  113 + - `lq_statistics_tech_performance/` - 科技部业绩统计实体
  114 + - `lq_statistics_store_consume_performance/` - 门店消耗业绩统计实体
  115 + - `lq_salary_statistics/` - 工资统计实体
  116 +- **Dto/** - 数据传输对象(包含统计、报表等DTO)
  117 +- **Mapper/** - 对象映射配置
105 - **Model/** - 业务模型类 118 - **Model/** - 业务模型类
106 119
107 ### NCC.Extend.Interfaces(接口定义层) 120 ### NCC.Extend.Interfaces(接口定义层)
@@ -171,39 +184,44 @@ npm run dev @@ -171,39 +184,44 @@ npm run dev
171 184
172 > 💡 **说明**:所有业务功能的核心代码都位于 `netcore/src/Modularity/Extend/` 模块中 185 > 💡 **说明**:所有业务功能的核心代码都位于 `netcore/src/Modularity/Extend/` 模块中
173 186
174 -### 📋 基础管理模块  
175 -- **产品信息** (`LqCpxxService`) - 产品档案管理,产品分类维护  
176 -- **客户信息** (`LqKhxxService`) - 客户档案管理,客户关系维护  
177 -- **人员资料** (`LqRyzlService`) - 员工信息管理,人员档案维护  
178 -  
179 -### 🏭 生产管理模块  
180 -- **工艺方案** (`LqJsfaService`) - 生产工艺配置,工艺流程管理  
181 -- **设备统计** (`LqSbtjbService`) - 设备使用情况统计,设备维护管理  
182 -- **技术数据** (`LqYcsdJsjService`) - 技术参数管理,工艺数据维护  
183 -- **技术方案** (`LqYcsdJjlftjsService`) - 技术方案管理,工艺优化  
184 -- **模具管理** (`LqYcsdMdlbjhsxxService`) - 模具档案管理,模具维护  
185 -  
186 -### 💰 销售管理模块  
187 -- **销售回款** (`LqXhHyhkService`) - 销售回款管理,资金回笼跟踪  
188 -- **销售明细** (`LqXhmxbService`) - 销售明细管理,销售数据分析  
189 -- **提成管理** (`LqTkXscService`) - 销售提成计算,提成规则维护  
190 -- **提成记录** (`LqTkjlbService`) - 提成记录管理,提成发放跟踪  
191 -  
192 -### 📦 库存管理模块  
193 -- **库存汇总** (`LqKqhzbService`) - 库存数据分析,库存统计报表  
194 -- **历史数据** (`LqLssjService`) - 历史数据管理,数据归档  
195 -- **原料明细** (`LqYjmxbService`) - 原料库存管理,原料使用跟踪  
196 -  
197 -### 📊 财务管理模块  
198 -- **收款账户** (`LqSkzhService`) - 收款账户管理,资金账户维护  
199 -- **汇总费用** (`LqHzfService`) - 费用汇总管理,成本分析  
200 -- **季度清单** (`LqJdqdService`) - 季度财务清单,财务报告  
201 -  
202 -### 🔧 系统工具模块  
203 -- **邮件服务** (`EmailService`) - 邮件发送,通知提醒  
204 -- **文档管理** (`DocumentService`) - 文档存储,文件管理  
205 -- **大数据分析** (`BigDataService`) - 数据分析,报表生成  
206 -- **工作日志** (`WorkLogService`) - 工作日志记录,操作跟踪 187 +### 📊 业绩统计模块
  188 +- **个人业绩统计** (`LqStatisticsService`) - 健康师个人业绩统计,包含首单业绩、升单业绩等
  189 +- **门店总业绩统计** (`LqStatisticsService`) - 门店整体业绩统计,包含总业绩、欠款金额等
  190 +- **金三角业绩统计** (`LqStatisticsService`) - 金三角团队业绩统计和分析
  191 +- **部门消耗业绩统计** (`LqStatisticsService`) - 部门消耗业绩统计,包含人头数、人次等
  192 +- **科技部业绩统计** (`LqStatisticsService`) - 科技部老师业绩统计
  193 +- **门店消耗业绩统计** (`LqStatisticsService`) - 门店消耗业绩统计
  194 +
  195 +### 💰 工资核算模块
  196 +- **工资统计** (`LqGzService`) - 健康师工资核算,包含底薪、提成、奖励等
  197 +- **底薪计算** - 根据业绩标准自动计算健康师底薪(一星、二星、三星标准)
  198 +- **提成计算** - 根据业绩类型计算各类提成(基础业绩、合作业绩、奖励业绩等)
  199 +- **占比计算** - 队伍业绩与个人总业绩的占比分析
  200 +
  201 +### 📈 报表分析模块
  202 +- **门店业绩趋势** (`LqReportService`) - 门店业绩时间趋势分析
  203 +- **门店业绩排行榜** (`LqReportService`) - 门店业绩排名统计
  204 +- **健康师业绩趋势** (`LqReportService`) - 健康师个人业绩趋势
  205 +- **健康师业绩排行榜** (`LqReportService`) - 健康师业绩排名统计
  206 +- **金三角业绩趋势** (`LqReportService`) - 金三角团队业绩趋势
  207 +- **金三角业绩排行榜** (`LqReportService`) - 金三角团队排名统计
  208 +- **综合仪表盘** (`LqReportService`) - 多维度数据汇总展示
  209 +
  210 +### 🏪 门店管理模块
  211 +- **门店信息管理** (`LqMdxxService`) - 门店基础信息维护
  212 +- **门店归属管理** - 门店归属事业部、教育部、科技部等
  213 +- **新店保护时间** (`LqMdXdbhsjService`) - 新店保护期管理
  214 +
  215 +### 👥 人员管理模块
  216 +- **金三角设定** (`LqYcsdJsjService`) - 金三角团队配置管理
  217 +- **金三角用户绑定** (`LqJinsanjiaoUserService`) - 用户与金三角团队绑定关系
  218 +- **顾问身份管理** - 根据金三角绑定自动设置顾问身份
  219 +
  220 +### 📋 客户管理模块
  221 +- **客户信息管理** (`LqKhxxService`) - 客户档案管理
  222 +- **拓客记录管理** (`LqTkjlbService`) - 拓客活动记录
  223 +- **拓客活动管理** (`LqEventService`) - 拓客活动配置
  224 +- **会员权益管理** - 历史会员权益数据管理
207 225
208 ### ⚙️ 系统管理模块(位于System模块) 226 ### ⚙️ 系统管理模块(位于System模块)
209 - **用户管理** - 系统用户维护,用户权限管理 227 - **用户管理** - 系统用户维护,用户权限管理
@@ -215,60 +233,91 @@ npm run dev @@ -215,60 +233,91 @@ npm run dev
215 233
216 ### 🎯 核心业务开发(Extend模块) 234 ### 🎯 核心业务开发(Extend模块)
217 235
218 -#### 添加新的业务服务  
219 -1. **创建实体模型** (`NCC.Extend.Entitys/Entity/`) 236 +#### 统计服务开发规范
  237 +1. **统计表实体** (`NCC.Extend.Entitys/Entity/lq_statistics_*/`)
220 ```csharp 238 ```csharp
221 - [SugarTable("lq_新表名")] 239 + [SugarTable("lq_statistics_新统计表")]
222 [Tenant(ClaimConst.TENANT_ID)] 240 [Tenant(ClaimConst.TENANT_ID)]
223 - public class Lq新实体Entity 241 + public class LqStatistics新统计Entity
224 { 242 {
225 [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)] 243 [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)]
226 public string Id { get; set; } 244 public string Id { get; set; }
227 - // 其他字段... 245 +
  246 + [SugarColumn(ColumnName = "F_StatisticsMonth")]
  247 + public string StatisticsMonth { get; set; }
  248 +
  249 + // 其他统计字段...
228 } 250 }
229 ``` 251 ```
230 252
231 -2. **创建DTO对象** (`NCC.Extend.Entitys/Dto/`)  
232 - - `Lq新实体ListQueryInput` - 列表查询输入  
233 - - `Lq新实体CrInput` - 创建输入  
234 - - `Lq新实体UpInput` - 更新输入  
235 - - `Lq新实体InfoOutput` - 详情输出  
236 - - `Lq新实体ListOutput` - 列表输出 253 +2. **统计DTO对象** (`NCC.Extend.Entitys/Dto/LqStatistics/`)
  254 + - `Lq新统计ListQueryInput` - 列表查询输入
  255 + - `Lq新统计ListOutput` - 列表输出DTO
  256 +
  257 +3. **统计服务实现** (`LqStatisticsService`)
  258 + ```csharp
  259 + /// <summary>
  260 + /// 保存新统计数据
  261 + /// </summary>
  262 + public async Task Save新统计Statistics(string statisticsMonth)
  263 + {
  264 + // 统计逻辑实现
  265 + }
  266 +
  267 + /// <summary>
  268 + /// 获取新统计列表
  269 + /// </summary>
  270 + public async Task<dynamic> Get新统计StatisticsList(Lq新统计ListQueryInput input)
  271 + {
  272 + // 查询逻辑实现
  273 + }
  274 + ```
237 275
238 -3. **创建接口定义** (`NCC.Extend.Interfaces/`) 276 +#### 报表服务开发规范
  277 +1. **报表接口定义** (`NCC.Extend.Interfaces/LqReport/`)
239 ```csharp 278 ```csharp
240 - public interface ILq新实体Service : ITransient 279 + public interface ILqReportService
241 { 280 {
242 - Task<dynamic> GetInfo(string id);  
243 - Task<dynamic> GetList(Lq新实体ListQueryInput input);  
244 - Task Create(Lq新实体CrInput input);  
245 - Task Update(string id, Lq新实体UpInput input);  
246 - Task Delete(string id); 281 + Task<object> Get新报表Data(新报表Input input);
247 } 282 }
248 ``` 283 ```
249 284
250 -4. **实现业务服务** (`NCC.Extend/`) 285 +2. **报表服务实现** (`LqReportService`)
251 ```csharp 286 ```csharp
252 - [ApiDescriptionSettings(Tag = "Extend", Name = "Lq新实体", Order = 200)]  
253 - [Route("api/Extend/[controller]")]  
254 - public class Lq新实体Service : ILq新实体Service, IDynamicApiController, ITransient 287 + [HttpPost("get-新报表-data")]
  288 + public async Task<object> Get新报表Data(新报表Input input)
255 { 289 {
256 - // 服务实现... 290 + // 报表数据查询和格式化
257 } 291 }
258 ``` 292 ```
259 293
260 -#### 前端页面开发  
261 -1. **创建页面组件** (`antis-ncc-admin/src/views/lq新模块/`)  
262 - - `index.vue` - 列表页面  
263 - - `Form.vue` - 表单页面  
264 - - `ExportBox.vue` - 导出组件 294 +#### 前端页面开发规范
  295 +1. **统计页面组件** (`antis-ncc-admin/src/views/新统计Statistics/`)
  296 + - `index.vue` - 统计列表页面
  297 + - 使用 `NCC-table` 组件
  298 + - 支持分页、筛选、导出功能
  299 +
  300 +2. **报表页面组件** (`antis-ncc-admin/src/views/report/`)
  301 + - 集成到现有报表页面
  302 + - 使用 ECharts 图表组件
  303 + - 支持时间筛选、类型切换
265 304
266 -2. **添加API接口** (`antis-ncc-admin/src/api/extend/`) 305 +3. **API接口** (`antis-ncc-admin/src/api/`)
267 ```javascript 306 ```javascript
268 - export function getLq新实体List(data) { 307 + // 统计接口
  308 + export function get新统计StatisticsList(data) {
269 return request({ 309 return request({
270 - url: '/api/Extend/Lq新实体',  
271 - method: 'GET', 310 + url: '/api/Extend/LqStatistics/get-新统计-statistics-list',
  311 + method: 'post',
  312 + data
  313 + })
  314 + }
  315 +
  316 + // 报表接口
  317 + export function get新报表Data(data) {
  318 + return request({
  319 + url: '/api/Extend/LqReport/get-新报表-data',
  320 + method: 'post',
272 data 321 data
273 }) 322 })
274 } 323 }
@@ -341,6 +390,30 @@ proxy: { @@ -341,6 +390,30 @@ proxy: {
341 2. 将 `dist` 目录部署到Web服务器 390 2. 将 `dist` 目录部署到Web服务器
342 3. 配置Nginx或IIS反向代理 391 3. 配置Nginx或IIS反向代理
343 392
  393 +## 开发规范
  394 +
  395 +### 📋 项目开发规范
  396 +- **ID生成规范**: 必须使用 `YitIdHelper.NextId().ToString()` 生成ID,禁止使用 `Guid.NewGuid().ToString()`
  397 +- **API接口规范**: GET请求使用data字段传参,不使用params
  398 +- **权限控制**: 所有数据查询必须添加园区权限过滤
  399 +- **数据一致性**: 统计数据和列表数据必须使用相同的过滤条件
  400 +- **UI一致性**: 所有页面必须使用统一的布局和样式规范
  401 +- **性能优化**: 所有列表接口支持分页,避免大数据量查询
  402 +- **安全防护**: 使用SqlSugar ORM防止SQL注入
  403 +
  404 +### 🗄️ 数据库规范
  405 +- **表命名**: 业务前缀 + 功能名称 (如: lq_)
  406 +- **字段命名**: 驼峰化
  407 +- **时间字段**: 统一使用 DateTime 类型
  408 +- **删除标记**: `base_organize.DeleteMark` 为 `null` 表示未删除
  409 +- **SQL查询验证**: 对于统计类型的SQL查询,在提交代码前必须先使用MCP MySQL工具执行验证
  410 +
  411 +### 🎨 前端开发规范
  412 +- **组件开发**: views 与 components 分离,弹窗、二级页面必须单独创建 Vue 文件
  413 +- **文件命名**: 使用 kebab-case (如: user-dialog.vue)
  414 +- **UI规范**: 统一使用 NCC-table,标签右对齐,卡片高度100px,内边距12px,圆角12px
  415 +- **性能要求**: 启用懒加载和代码分割,页面加载时间 < 3s
  416 +
344 ## 常见问题 417 ## 常见问题
345 418
346 ### Q: 前端启动失败 419 ### Q: 前端启动失败
@@ -355,15 +428,53 @@ A: 检查JWT配置和Token有效期设置 @@ -355,15 +428,53 @@ A: 检查JWT配置和Token有效期设置
355 ### Q: 页面显示异常 428 ### Q: 页面显示异常
356 A: 检查浏览器控制台错误信息和网络请求状态 429 A: 检查浏览器控制台错误信息和网络请求状态
357 430
  431 +### Q: 统计SQL执行失败
  432 +A: 使用MCP MySQL工具先验证SQL语法和字段名是否正确
  433 +
  434 +### Q: 报表页面404错误
  435 +A: 检查LqReportService是否正确实现ITransient接口并注册到DI容器
  436 +
358 ## 技术支持 437 ## 技术支持
359 438
360 如有技术问题,请联系开发团队或查看项目文档。 439 如有技术问题,请联系开发团队或查看项目文档。
361 440
  441 +## 📊 已完成功能
  442 +
  443 +### ✅ 核心统计功能
  444 +- [x] 个人业绩统计 - 健康师个人业绩统计,包含首单业绩、升单业绩等
  445 +- [x] 门店总业绩统计 - 门店整体业绩统计,包含总业绩、欠款金额等
  446 +- [x] 金三角业绩统计 - 金三角团队业绩统计和分析
  447 +- [x] 部门消耗业绩统计 - 部门消耗业绩统计,包含人头数、人次等
  448 +- [x] 科技部业绩统计 - 科技部老师业绩统计
  449 +- [x] 门店消耗业绩统计 - 门店消耗业绩统计
  450 +
  451 +### ✅ 工资核算功能
  452 +- [x] 工资统计 - 健康师工资核算,包含底薪、提成、奖励等
  453 +- [x] 底薪计算 - 根据业绩标准自动计算健康师底薪(一星、二星、三星标准)
  454 +- [x] 提成计算 - 根据业绩类型计算各类提成(基础业绩、合作业绩、奖励业绩等)
  455 +- [x] 占比计算 - 队伍业绩与个人总业绩的占比分析
  456 +
  457 +### ✅ 报表分析功能
  458 +- [x] 门店业绩趋势 - 门店业绩时间趋势分析
  459 +- [x] 门店业绩排行榜 - 门店业绩排名统计
  460 +- [x] 健康师业绩趋势 - 健康师个人业绩趋势
  461 +- [x] 健康师业绩排行榜 - 健康师业绩排名统计
  462 +- [x] 金三角业绩趋势 - 金三角团队业绩趋势
  463 +- [x] 金三角业绩排行榜 - 金三角团队排名统计
  464 +- [x] 综合仪表盘 - 多维度数据汇总展示
  465 +
  466 +### ✅ 系统优化
  467 +- [x] 删除废弃代码 - 清理lq_ryzl、lq_tk_xsc等废弃模块
  468 +- [x] 修复SQL语法 - 解决MySQL兼容性问题
  469 +- [x] 修复字段映射 - 解决数据库字段名不匹配问题
  470 +- [x] 优化前端页面 - 修复布局、分页、样式等问题
  471 +
362 ## 版本信息 472 ## 版本信息
363 473
364 -- **当前版本**:v1.0.0  
365 -- **最后更新**:2024年 474 +- **当前版本**:v2.0.0
  475 +- **最后更新**:2024年12月
366 - **维护状态**:活跃开发中 476 - **维护状态**:活跃开发中
  477 +- **主要更新**:完成业绩统计、工资核算、报表分析等核心功能
367 478
368 --- 479 ---
369 480
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqRyzl/LqRyzlCrInput.cs deleted
1 -using System;  
2 -using System.Collections.Generic;  
3 -  
4 -namespace NCC.Extend.Entitys.Dto.LqRyzl  
5 -{  
6 - /// <summary>  
7 - /// 人员资料修改输入参数  
8 - /// </summary>  
9 - public class LqRyzlCrInput  
10 - {  
11 - /// <summary>  
12 - /// 序号  
13 - /// </summary>  
14 - public string id { get; set; }  
15 -  
16 - /// <summary>  
17 - /// 店名  
18 - /// </summary>  
19 - public string dm { get; set; }  
20 -  
21 - /// <summary>  
22 - /// 职位  
23 - /// </summary>  
24 - public string zw { get; set; }  
25 -  
26 - /// <summary>  
27 - /// 费用分摊  
28 - /// </summary>  
29 - public string fyft { get; set; }  
30 -  
31 - /// <summary>  
32 - /// 岗位分类1  
33 - /// </summary>  
34 - public string gwfl1 { get; set; }  
35 -  
36 - /// <summary>  
37 - /// 姓名  
38 - /// </summary>  
39 - public string xm { get; set; }  
40 -  
41 - /// <summary>  
42 - /// 在职情况  
43 - /// </summary>  
44 - public string zzqk { get; set; }  
45 -  
46 - /// <summary>  
47 - /// 岗位分类2  
48 - /// </summary>  
49 - public string gwfl2 { get; set; }  
50 -  
51 - /// <summary>  
52 - /// 入职时间  
53 - /// </summary>  
54 - public DateTime? rzsj { get; set; }  
55 -  
56 - /// <summary>  
57 - /// 离职时间  
58 - /// </summary>  
59 - public DateTime? lzsj { get; set; }  
60 -  
61 - /// <summary>  
62 - /// 战队  
63 - /// </summary>  
64 - public string zd { get; set; }  
65 -  
66 - /// <summary>  
67 - /// 预留1  
68 - /// </summary>  
69 - public string yl1 { get; set; }  
70 -  
71 - /// <summary>  
72 - /// 预留2  
73 - /// </summary>  
74 - public string yl2 { get; set; }  
75 -  
76 - /// <summary>  
77 - /// 预留3  
78 - /// </summary>  
79 - public string yl3 { get; set; }  
80 -  
81 - /// <summary>  
82 - /// 手机号  
83 - /// </summary>  
84 - public string sjh { get; set; }  
85 -  
86 - }  
87 -}  
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqRyzl/LqRyzlInfoOutput.cs deleted
1 -using System;  
2 -using System.Collections.Generic;  
3 -  
4 -namespace NCC.Extend.Entitys.Dto.LqRyzl  
5 -{  
6 - /// <summary>  
7 - /// 人员资料输出参数  
8 - /// </summary>  
9 - public class LqRyzlInfoOutput  
10 - {  
11 - /// <summary>  
12 - /// 序号  
13 - /// </summary>  
14 - public string id { get; set; }  
15 -  
16 - /// <summary>  
17 - /// 店名  
18 - /// </summary>  
19 - public string dm { get; set; }  
20 -  
21 - /// <summary>  
22 - /// 职位  
23 - /// </summary>  
24 - public string zw { get; set; }  
25 -  
26 - /// <summary>  
27 - /// 费用分摊  
28 - /// </summary>  
29 - public string fyft { get; set; }  
30 -  
31 - /// <summary>  
32 - /// 岗位分类1  
33 - /// </summary>  
34 - public string gwfl1 { get; set; }  
35 -  
36 - /// <summary>  
37 - /// 姓名  
38 - /// </summary>  
39 - public string xm { get; set; }  
40 -  
41 - /// <summary>  
42 - /// 在职情况  
43 - /// </summary>  
44 - public string zzqk { get; set; }  
45 -  
46 - /// <summary>  
47 - /// 岗位分类2  
48 - /// </summary>  
49 - public string gwfl2 { get; set; }  
50 -  
51 - /// <summary>  
52 - /// 入职时间  
53 - /// </summary>  
54 - public DateTime? rzsj { get; set; }  
55 -  
56 - /// <summary>  
57 - /// 离职时间  
58 - /// </summary>  
59 - public DateTime? lzsj { get; set; }  
60 -  
61 - /// <summary>  
62 - /// 战队  
63 - /// </summary>  
64 - public string zd { get; set; }  
65 -  
66 - /// <summary>  
67 - /// 预留1  
68 - /// </summary>  
69 - public string yl1 { get; set; }  
70 -  
71 - /// <summary>  
72 - /// 预留2  
73 - /// </summary>  
74 - public string yl2 { get; set; }  
75 -  
76 - /// <summary>  
77 - /// 预留3  
78 - /// </summary>  
79 - public string yl3 { get; set; }  
80 -  
81 - /// <summary>  
82 - /// 手机号  
83 - /// </summary>  
84 - public string sjh { get; set; }  
85 -  
86 - }  
87 -}  
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqRyzl/LqRyzlListOutput.cs deleted
1 -using System;  
2 -  
3 -namespace NCC.Extend.Entitys.Dto.LqRyzl  
4 -{  
5 - /// <summary>  
6 - /// 人员资料输入参数  
7 - /// </summary>  
8 - public class LqRyzlListOutput  
9 - {  
10 - /// <summary>  
11 - /// 序号  
12 - /// </summary>  
13 - public string id { get; set; }  
14 -  
15 - /// <summary>  
16 - /// 店名  
17 - /// </summary>  
18 - public string dm { get; set; }  
19 -  
20 - /// <summary>  
21 - /// 职位  
22 - /// </summary>  
23 - public string zw { get; set; }  
24 -  
25 - /// <summary>  
26 - /// 费用分摊  
27 - /// </summary>  
28 - public string fyft { get; set; }  
29 -  
30 - /// <summary>  
31 - /// 岗位分类1  
32 - /// </summary>  
33 - public string gwfl1 { get; set; }  
34 -  
35 - /// <summary>  
36 - /// 姓名  
37 - /// </summary>  
38 - public string xm { get; set; }  
39 -  
40 - /// <summary>  
41 - /// 在职情况  
42 - /// </summary>  
43 - public string zzqk { get; set; }  
44 -  
45 - /// <summary>  
46 - /// 岗位分类2  
47 - /// </summary>  
48 - public string gwfl2 { get; set; }  
49 -  
50 - /// <summary>  
51 - /// 入职时间  
52 - /// </summary>  
53 - public DateTime? rzsj { get; set; }  
54 -  
55 - /// <summary>  
56 - /// 离职时间  
57 - /// </summary>  
58 - public DateTime? lzsj { get; set; }  
59 -  
60 - /// <summary>  
61 - /// 战队  
62 - /// </summary>  
63 - public string zd { get; set; }  
64 -  
65 - /// <summary>  
66 - /// 预留1  
67 - /// </summary>  
68 - public string yl1 { get; set; }  
69 -  
70 - /// <summary>  
71 - /// 预留2  
72 - /// </summary>  
73 - public string yl2 { get; set; }  
74 -  
75 - /// <summary>  
76 - /// 预留3  
77 - /// </summary>  
78 - public string yl3 { get; set; }  
79 -  
80 - /// <summary>  
81 - /// 手机号  
82 - /// </summary>  
83 - public string sjh { get; set; }  
84 -  
85 - }  
86 -}  
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqRyzl/LqRyzlListQueryInput.cs deleted
1 -using NCC.Common.Filter;  
2 -using System.Collections.Generic;  
3 -  
4 -namespace NCC.Extend.Entitys.Dto.LqRyzl  
5 -{  
6 - /// <summary>  
7 - /// 人员资料列表查询输入  
8 - /// </summary>  
9 - public class LqRyzlListQueryInput : PageInputBase  
10 - {  
11 - /// <summary>  
12 - /// 选择导出数据key  
13 - /// </summary>  
14 - public string selectKey { get; set; }  
15 -  
16 - /// <summary>  
17 - ///  
18 - /// </summary>  
19 - public int dataType { get; set; }  
20 -  
21 -  
22 - /// <summary>  
23 - /// 序号  
24 - /// </summary>  
25 - public string id { get; set; }  
26 -  
27 - /// <summary>  
28 - /// 店名  
29 - /// </summary>  
30 - public string dm { get; set; }  
31 -  
32 - /// <summary>  
33 - /// 职位  
34 - /// </summary>  
35 - public string zw { get; set; }  
36 -  
37 - /// <summary>  
38 - /// 费用分摊  
39 - /// </summary>  
40 - public string fyft { get; set; }  
41 -  
42 - /// <summary>  
43 - /// 岗位分类1  
44 - /// </summary>  
45 - public string gwfl1 { get; set; }  
46 -  
47 - /// <summary>  
48 - /// 姓名  
49 - /// </summary>  
50 - public string xm { get; set; }  
51 -  
52 - /// <summary>  
53 - /// 在职情况  
54 - /// </summary>  
55 - public string zzqk { get; set; }  
56 -  
57 - /// <summary>  
58 - /// 岗位分类2  
59 - /// </summary>  
60 - public string gwfl2 { get; set; }  
61 -  
62 - /// <summary>  
63 - /// 入职时间  
64 - /// </summary>  
65 - public string rzsj { get; set; }  
66 -  
67 - /// <summary>  
68 - /// 离职时间  
69 - /// </summary>  
70 - public string lzsj { get; set; }  
71 -  
72 - /// <summary>  
73 - /// 战队  
74 - /// </summary>  
75 - public string zd { get; set; }  
76 -  
77 - /// <summary>  
78 - /// 预留1  
79 - /// </summary>  
80 - public string yl1 { get; set; }  
81 -  
82 - /// <summary>  
83 - /// 预留2  
84 - /// </summary>  
85 - public string yl2 { get; set; }  
86 -  
87 - /// <summary>  
88 - /// 预留3  
89 - /// </summary>  
90 - public string yl3 { get; set; }  
91 -  
92 - /// <summary>  
93 - /// 手机号  
94 - /// </summary>  
95 - public string sjh { get; set; }  
96 -  
97 - }  
98 -}  
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqRyzl/LqRyzlUpInput.cs deleted
1 -using System;  
2 -using System.Collections.Generic;  
3 -  
4 -namespace NCC.Extend.Entitys.Dto.LqRyzl  
5 -{  
6 - /// <summary>  
7 - /// 人员资料更新输入参数  
8 - /// </summary>  
9 - public class LqRyzlUpInput : LqRyzlCrInput  
10 - {  
11 - /// <summary>  
12 - /// 序号  
13 - /// </summary>  
14 - public string id { get; set; }  
15 -  
16 - }  
17 -}  
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkXsc/LqTkXscCrInput.cs deleted
1 -using System;  
2 -using System.Collections.Generic;  
3 -  
4 -namespace NCC.Extend.Entitys.Dto.LqTkXsc  
5 -{  
6 - /// <summary>  
7 - /// 线索池修改输入参数  
8 - /// </summary>  
9 - public class LqTkXscCrInput  
10 - {  
11 - /// <summary>  
12 - /// 客户编号  
13 - /// </summary>  
14 - public string id { get; set; }  
15 -  
16 - /// <summary>  
17 - /// 创建时间  
18 - /// </summary>  
19 - public DateTime? tjsj { get; set; }  
20 -  
21 - /// <summary>  
22 - /// 拓客人员  
23 - /// </summary>  
24 - public string tkry { get; set; }  
25 -  
26 - /// <summary>  
27 - /// 顾客姓名  
28 - /// </summary>  
29 - public string gkxm { get; set; }  
30 -  
31 - /// <summary>  
32 - /// 电话号码  
33 - /// </summary>  
34 - public string dhhm { get; set; }  
35 -  
36 - /// <summary>  
37 - /// 购买张数  
38 - /// </summary>  
39 - public int? gmzs { get; set; }  
40 -  
41 - /// <summary>  
42 - /// 支付方式  
43 - /// </summary>  
44 - public string zffs { get; set; }  
45 -  
46 - /// <summary>  
47 - /// 是否加微信  
48 - /// </summary>  
49 - public string sfjwx { get; set; }  
50 -  
51 - /// <summary>  
52 - /// 备注  
53 - /// </summary>  
54 - public string bz { get; set; }  
55 -  
56 - /// <summary>  
57 - /// 性别  
58 - /// </summary>  
59 - public string xb { get; set; }  
60 -  
61 - /// <summary>  
62 - /// 生日  
63 - /// </summary>  
64 - public DateTime? sr { get; set; }  
65 -  
66 - /// <summary>  
67 - /// 地址  
68 - /// </summary>  
69 - public string dz { get; set; }  
70 -  
71 - /// <summary>  
72 - /// 邮箱  
73 - /// </summary>  
74 - public string yx { get; set; }  
75 -  
76 - /// <summary>  
77 - /// 微信  
78 - /// </summary>  
79 - public string wx { get; set; }  
80 -  
81 - }  
82 -}  
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkXsc/LqTkXscInfoOutput.cs deleted
1 -using System;  
2 -using System.Collections.Generic;  
3 -  
4 -namespace NCC.Extend.Entitys.Dto.LqTkXsc  
5 -{  
6 - /// <summary>  
7 - /// 线索池输出参数  
8 - /// </summary>  
9 - public class LqTkXscInfoOutput  
10 - {  
11 - /// <summary>  
12 - /// 客户编号  
13 - /// </summary>  
14 - public string id { get; set; }  
15 -  
16 - /// <summary>  
17 - /// 创建时间  
18 - /// </summary>  
19 - public DateTime? tjsj { get; set; }  
20 -  
21 - /// <summary>  
22 - /// 拓客人员  
23 - /// </summary>  
24 - public string tkry { get; set; }  
25 -  
26 - /// <summary>  
27 - /// 顾客姓名  
28 - /// </summary>  
29 - public string gkxm { get; set; }  
30 -  
31 - /// <summary>  
32 - /// 电话号码  
33 - /// </summary>  
34 - public string dhhm { get; set; }  
35 -  
36 - /// <summary>  
37 - /// 购买张数  
38 - /// </summary>  
39 - public int? gmzs { get; set; }  
40 -  
41 - /// <summary>  
42 - /// 支付方式  
43 - /// </summary>  
44 - public string zffs { get; set; }  
45 -  
46 - /// <summary>  
47 - /// 是否加微信  
48 - /// </summary>  
49 - public string sfjwx { get; set; }  
50 -  
51 - /// <summary>  
52 - /// 备注  
53 - /// </summary>  
54 - public string bz { get; set; }  
55 -  
56 - /// <summary>  
57 - /// 性别  
58 - /// </summary>  
59 - public string xb { get; set; }  
60 -  
61 - /// <summary>  
62 - /// 生日  
63 - /// </summary>  
64 - public DateTime? sr { get; set; }  
65 -  
66 - /// <summary>  
67 - /// 地址  
68 - /// </summary>  
69 - public string dz { get; set; }  
70 -  
71 - /// <summary>  
72 - /// 邮箱  
73 - /// </summary>  
74 - public string yx { get; set; }  
75 -  
76 - /// <summary>  
77 - /// 微信  
78 - /// </summary>  
79 - public string wx { get; set; }  
80 -  
81 - }  
82 -}  
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkXsc/LqTkXscListOutput.cs deleted
1 -using System;  
2 -  
3 -namespace NCC.Extend.Entitys.Dto.LqTkXsc  
4 -{  
5 - /// <summary>  
6 - /// 线索池输入参数  
7 - /// </summary>  
8 - public class LqTkXscListOutput  
9 - {  
10 - /// <summary>  
11 - /// 客户编号  
12 - /// </summary>  
13 - public string id { get; set; }  
14 -  
15 - /// <summary>  
16 - /// 创建时间  
17 - /// </summary>  
18 - public DateTime? tjsj { get; set; }  
19 -  
20 - /// <summary>  
21 - /// 拓客人员  
22 - /// </summary>  
23 - public string tkry { get; set; }  
24 -  
25 - /// <summary>  
26 - /// 顾客姓名  
27 - /// </summary>  
28 - public string gkxm { get; set; }  
29 -  
30 - /// <summary>  
31 - /// 电话号码  
32 - /// </summary>  
33 - public string dhhm { get; set; }  
34 -  
35 - /// <summary>  
36 - /// 购买张数  
37 - /// </summary>  
38 - public int? gmzs { get; set; }  
39 -  
40 - /// <summary>  
41 - /// 支付方式  
42 - /// </summary>  
43 - public string zffs { get; set; }  
44 -  
45 - /// <summary>  
46 - /// 是否加微信  
47 - /// </summary>  
48 - public string sfjwx { get; set; }  
49 -  
50 - /// <summary>  
51 - /// 备注  
52 - /// </summary>  
53 - public string bz { get; set; }  
54 -  
55 - /// <summary>  
56 - /// 性别  
57 - /// </summary>  
58 - public string xb { get; set; }  
59 -  
60 - /// <summary>  
61 - /// 生日  
62 - /// </summary>  
63 - public DateTime? sr { get; set; }  
64 -  
65 - /// <summary>  
66 - /// 地址  
67 - /// </summary>  
68 - public string dz { get; set; }  
69 -  
70 - /// <summary>  
71 - /// 邮箱  
72 - /// </summary>  
73 - public string yx { get; set; }  
74 -  
75 - /// <summary>  
76 - /// 微信  
77 - /// </summary>  
78 - public string wx { get; set; }  
79 -  
80 - }  
81 -}  
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkXsc/LqTkXscListQueryInput.cs deleted
1 -using NCC.Common.Filter;  
2 -using System.Collections.Generic;  
3 -  
4 -namespace NCC.Extend.Entitys.Dto.LqTkXsc  
5 -{  
6 - /// <summary>  
7 - /// 线索池列表查询输入  
8 - /// </summary>  
9 - public class LqTkXscListQueryInput : PageInputBase  
10 - {  
11 - /// <summary>  
12 - /// 选择导出数据key  
13 - /// </summary>  
14 - public string selectKey { get; set; }  
15 -  
16 - /// <summary>  
17 - ///  
18 - /// </summary>  
19 - public int dataType { get; set; }  
20 -  
21 -  
22 - /// <summary>  
23 - /// 客户编号  
24 - /// </summary>  
25 - public string id { get; set; }  
26 -  
27 - /// <summary>  
28 - /// 创建时间  
29 - /// </summary>  
30 - public string tjsj { get; set; }  
31 -  
32 - /// <summary>  
33 - /// 拓客人员  
34 - /// </summary>  
35 - public string tkry { get; set; }  
36 -  
37 - /// <summary>  
38 - /// 顾客姓名  
39 - /// </summary>  
40 - public string gkxm { get; set; }  
41 -  
42 - /// <summary>  
43 - /// 电话号码  
44 - /// </summary>  
45 - public string dhhm { get; set; }  
46 -  
47 - /// <summary>  
48 - /// 购买张数  
49 - /// </summary>  
50 - public string gmzs { get; set; }  
51 -  
52 - /// <summary>  
53 - /// 支付方式  
54 - /// </summary>  
55 - public string zffs { get; set; }  
56 -  
57 - /// <summary>  
58 - /// 是否加微信  
59 - /// </summary>  
60 - public string sfjwx { get; set; }  
61 -  
62 - /// <summary>  
63 - /// 备注  
64 - /// </summary>  
65 - public string bz { get; set; }  
66 -  
67 - /// <summary>  
68 - /// 性别  
69 - /// </summary>  
70 - public string xb { get; set; }  
71 -  
72 - /// <summary>  
73 - /// 生日  
74 - /// </summary>  
75 - public string sr { get; set; }  
76 -  
77 - /// <summary>  
78 - /// 地址  
79 - /// </summary>  
80 - public string dz { get; set; }  
81 -  
82 - /// <summary>  
83 - /// 邮箱  
84 - /// </summary>  
85 - public string yx { get; set; }  
86 -  
87 - /// <summary>  
88 - /// 微信  
89 - /// </summary>  
90 - public string wx { get; set; }  
91 -  
92 - }  
93 -}  
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkXsc/LqTkXscUpInput.cs deleted
1 -using System;  
2 -using System.Collections.Generic;  
3 -  
4 -namespace NCC.Extend.Entitys.Dto.LqTkXsc  
5 -{  
6 - /// <summary>  
7 - /// 线索池更新输入参数  
8 - /// </summary>  
9 - public class LqTkXscUpInput : LqTkXscCrInput  
10 - {  
11 - /// <summary>  
12 - /// 客户编号  
13 - /// </summary>  
14 - public string id { get; set; }  
15 -  
16 - }  
17 -}  
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/README.md
@@ -18,7 +18,7 @@ @@ -18,7 +18,7 @@
18 - `lq_mdgf/` - 门店股份占比明细 18 - `lq_mdgf/` - 门店股份占比明细
19 19
20 #### 人员相关表 20 #### 人员相关表
21 -- `lq_ryzl/` - 人员资料 21 +- (已删除) `lq_ryzl/` - 人员资料
22 22
23 #### 项目相关表 23 #### 项目相关表
24 - `lq_xmzl/` - 项目资料 24 - `lq_xmzl/` - 项目资料
@@ -63,7 +63,7 @@ @@ -63,7 +63,7 @@
63 - `lq_sbtjb/` - 社保统计表 63 - `lq_sbtjb/` - 社保统计表
64 - `lq_skzh/` - 收款账号 64 - `lq_skzh/` - 收款账号
65 - `lq_tkjlb/` - 拓客记录表 65 - `lq_tkjlb/` - 拓客记录表
66 -- `lq_tk_xsc/` - 拓客记录表 66 +- (已删除) `lq_tk_xsc/` - 拓客记录表
67 - `lq_yaoyjl/` - 邀约记录 67 - `lq_yaoyjl/` - 邀约记录
68 - `lq_yxhdfa/` - 营销活动方案 68 - `lq_yxhdfa/` - 营销活动方案
69 - `lq_yyjl/` - 预约记录 69 - `lq_yyjl/` - 预约记录
@@ -80,7 +80,7 @@ @@ -80,7 +80,7 @@
80 80
81 例如: 81 例如:
82 - `NCC.Extend.Entitys.lq_mdxx` - 门店资料 82 - `NCC.Extend.Entitys.lq_mdxx` - 门店资料
83 -- `NCC.Extend.Entitys.lq_ryzl` - 人员资料 83 +- (已删除) `NCC.Extend.Entitys.lq_ryzl` - 人员资料
84 - `NCC.Extend.Entitys.lq_yjmxb` - 业绩明细表 84 - `NCC.Extend.Entitys.lq_yjmxb` - 业绩明细表
85 85
86 ## 使用说明 86 ## 使用说明
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_ryzl/LqRyzlEntity.cs deleted
1 -using NCC.Common.Const;  
2 -using SqlSugar;  
3 -using System;  
4 -  
5 -namespace NCC.Extend.Entitys.lq_ryzl  
6 -{  
7 - /// <summary>  
8 - /// 人员资料  
9 - /// </summary>  
10 - [SugarTable("lq_ryzl")]  
11 - [Tenant(ClaimConst.TENANT_ID)]  
12 - public class LqRyzlEntity  
13 - {  
14 - /// <summary>  
15 - /// 序号  
16 - /// </summary>  
17 - [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)]  
18 - public string Id { get; set; }  
19 -  
20 - /// <summary>  
21 - /// 店名  
22 - /// </summary>  
23 - [SugarColumn(ColumnName = "dm")]  
24 - public string Dm { get; set; }  
25 -  
26 - /// <summary>  
27 - /// 职位  
28 - /// </summary>  
29 - [SugarColumn(ColumnName = "zw")]  
30 - public string Zw { get; set; }  
31 -  
32 - /// <summary>  
33 - /// 费用分摊  
34 - /// </summary>  
35 - [SugarColumn(ColumnName = "fyft")]  
36 - public string Fyft { get; set; }  
37 -  
38 - /// <summary>  
39 - /// 岗位分类1  
40 - /// </summary>  
41 - [SugarColumn(ColumnName = "gwfl1")]  
42 - public string Gwfl1 { get; set; }  
43 -  
44 - /// <summary>  
45 - /// 姓名  
46 - /// </summary>  
47 - [SugarColumn(ColumnName = "xm")]  
48 - public string Xm { get; set; }  
49 -  
50 - /// <summary>  
51 - /// 在职情况  
52 - /// </summary>  
53 - [SugarColumn(ColumnName = "zzqk")]  
54 - public string Zzqk { get; set; }  
55 -  
56 - /// <summary>  
57 - /// 岗位分类2  
58 - /// </summary>  
59 - [SugarColumn(ColumnName = "gwfl2")]  
60 - public string Gwfl2 { get; set; }  
61 -  
62 - /// <summary>  
63 - /// 入职时间  
64 - /// </summary>  
65 - [SugarColumn(ColumnName = "rzsj")]  
66 - public DateTime? Rzsj { get; set; }  
67 -  
68 - /// <summary>  
69 - /// 离职时间  
70 - /// </summary>  
71 - [SugarColumn(ColumnName = "lzsj")]  
72 - public DateTime? Lzsj { get; set; }  
73 -  
74 - /// <summary>  
75 - /// 战队  
76 - /// </summary>  
77 - [SugarColumn(ColumnName = "zd")]  
78 - public string Zd { get; set; }  
79 -  
80 - /// <summary>  
81 - /// 预留1  
82 - /// </summary>  
83 - [SugarColumn(ColumnName = "yl1")]  
84 - public string Yl1 { get; set; }  
85 -  
86 - /// <summary>  
87 - /// 预留2  
88 - /// </summary>  
89 - [SugarColumn(ColumnName = "yl2")]  
90 - public string Yl2 { get; set; }  
91 -  
92 - /// <summary>  
93 - /// 预留3  
94 - /// </summary>  
95 - [SugarColumn(ColumnName = "yl3")]  
96 - public string Yl3 { get; set; }  
97 -  
98 - /// <summary>  
99 - /// 手机号  
100 - /// </summary>  
101 - [SugarColumn(ColumnName = "sjh")]  
102 - public string Sjh { get; set; }  
103 -  
104 - }  
105 -}  
106 \ No newline at end of file 0 \ No newline at end of file
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_tk_xsc/LqTkXscEntity.cs deleted
1 -using NCC.Common.Const;  
2 -using SqlSugar;  
3 -using System;  
4 -  
5 -namespace NCC.Extend.Entitys.lq_tk_xsc  
6 -{  
7 - /// <summary>  
8 - /// 线索池  
9 - /// </summary>  
10 - [SugarTable("lq_tk_xsc")]  
11 - [Tenant(ClaimConst.TENANT_ID)]  
12 - public class LqTkXscEntity  
13 - {  
14 - /// <summary>  
15 - /// 客户编号  
16 - /// </summary>  
17 - [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)]  
18 - public string Id { get; set; }  
19 -  
20 - /// <summary>  
21 - /// 创建时间  
22 - /// </summary>  
23 - [SugarColumn(ColumnName = "tjsj")]  
24 - public DateTime? Tjsj { get; set; }  
25 -  
26 - /// <summary>  
27 - /// 拓客人员  
28 - /// </summary>  
29 - [SugarColumn(ColumnName = "tkry")]  
30 - public string Tkry { get; set; }  
31 -  
32 - /// <summary>  
33 - /// 顾客姓名  
34 - /// </summary>  
35 - [SugarColumn(ColumnName = "gkxm")]  
36 - public string Gkxm { get; set; }  
37 -  
38 - /// <summary>  
39 - /// 电话号码  
40 - /// </summary>  
41 - [SugarColumn(ColumnName = "dhhm")]  
42 - public string Dhhm { get; set; }  
43 -  
44 - /// <summary>  
45 - /// 购买张数  
46 - /// </summary>  
47 - [SugarColumn(ColumnName = "gmzs")]  
48 - public int? Gmzs { get; set; }  
49 -  
50 - /// <summary>  
51 - /// 支付方式  
52 - /// </summary>  
53 - [SugarColumn(ColumnName = "zffs")]  
54 - public string Zffs { get; set; }  
55 -  
56 - /// <summary>  
57 - /// 是否加微信  
58 - /// </summary>  
59 - [SugarColumn(ColumnName = "sfjwx")]  
60 - public string Sfjwx { get; set; }  
61 -  
62 - /// <summary>  
63 - /// 备注  
64 - /// </summary>  
65 - [SugarColumn(ColumnName = "bz")]  
66 - public string Bz { get; set; }  
67 -  
68 - /// <summary>  
69 - /// 性别  
70 - /// </summary>  
71 - [SugarColumn(ColumnName = "xb")]  
72 - public string Xb { get; set; }  
73 -  
74 - /// <summary>  
75 - /// 生日  
76 - /// </summary>  
77 - [SugarColumn(ColumnName = "sr")]  
78 - public DateTime? Sr { get; set; }  
79 -  
80 - /// <summary>  
81 - /// 地址  
82 - /// </summary>  
83 - [SugarColumn(ColumnName = "dz")]  
84 - public string Dz { get; set; }  
85 -  
86 - /// <summary>  
87 - /// 邮箱  
88 - /// </summary>  
89 - [SugarColumn(ColumnName = "yx")]  
90 - public string Yx { get; set; }  
91 -  
92 - /// <summary>  
93 - /// 微信  
94 - /// </summary>  
95 - [SugarColumn(ColumnName = "wx")]  
96 - public string Wx { get; set; }  
97 -  
98 - }  
99 -}  
100 \ No newline at end of file 0 \ No newline at end of file
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Mapper/LqRyzlMapper.cs deleted
1 -using NCC.Common.Helper;  
2 -using NCC.Extend.Entitys.Dto.LqRyzl;  
3 -using Mapster;  
4 -using System.Collections.Generic;  
5 -  
6 -namespace NCC.Extend.Entitys.Mapper.LqRyzl  
7 -{  
8 - public class Mapper : IRegister  
9 - {  
10 - public void Register(TypeAdapterConfig config)  
11 - {  
12 - }  
13 - }  
14 -}  
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Mapper/LqTkXscMapper.cs deleted
1 -using NCC.Common.Helper;  
2 -using NCC.Extend.Entitys.Dto.LqTkXsc;  
3 -using Mapster;  
4 -using System.Collections.Generic;  
5 -  
6 -namespace NCC.Extend.Entitys.Mapper.LqTkXsc  
7 -{  
8 - public class Mapper : IRegister  
9 - {  
10 - public void Register(TypeAdapterConfig config)  
11 - {  
12 - }  
13 - }  
14 -}  
netcore/src/Modularity/Extend/NCC.Extend.Interfaces/ILqRyzlService.cs deleted
1 -namespace NCC.Extend.Interfaces.LqRyzl  
2 -{  
3 - public interface ILqRyzlService  
4 - {  
5 - }  
6 -}  
7 \ No newline at end of file 0 \ No newline at end of file
netcore/src/Modularity/Extend/NCC.Extend.Interfaces/ILqTkXscService.cs deleted
1 -namespace NCC.Extend.Interfaces.LqTkXsc  
2 -{  
3 - public interface ILqTkXscService  
4 - {  
5 - }  
6 -}  
7 \ No newline at end of file 0 \ No newline at end of file
netcore/src/Modularity/Extend/NCC.Extend/LqRyzlService.cs deleted
1 -using NCC.Common.Core.Manager;  
2 -using NCC.Common.Enum;  
3 -using NCC.Common.Extension;  
4 -using NCC.Common.Filter;  
5 -using NCC.Dependency;  
6 -using NCC.DynamicApiController;  
7 -using NCC.FriendlyException;  
8 -using NCC.Extend.Interfaces.LqRyzl;  
9 -using Mapster;  
10 -using Microsoft.AspNetCore.Mvc;  
11 -using SqlSugar;  
12 -using System;  
13 -using System.Collections.Generic;  
14 -using System.Linq;  
15 -using System.Threading.Tasks;  
16 -using NCC.Extend.Entitys.lq_ryzl;  
17 -using NCC.Extend.Entitys.Dto.LqRyzl;  
18 -using Yitter.IdGenerator;  
19 -using NCC.Common.Helper;  
20 -using NCC.JsonSerialization;  
21 -using NCC.Common.Model.NPOI;  
22 -using NCC.Common.Configuration;  
23 -using NCC.DataEncryption;  
24 -using NCC.ClayObject;  
25 -  
26 -namespace NCC.Extend.LqRyzl  
27 -{  
28 - /// <summary>  
29 - /// 人员资料服务  
30 - /// </summary>  
31 - [ApiDescriptionSettings(Tag = "Extend",Name = "LqRyzl", Order = 200)]  
32 - [Route("api/Extend/[controller]")]  
33 - public class LqRyzlService : ILqRyzlService, IDynamicApiController, ITransient  
34 - {  
35 - private readonly ISqlSugarRepository<LqRyzlEntity> _lqRyzlRepository;  
36 - private readonly SqlSugarScope _db;  
37 - private readonly IUserManager _userManager;  
38 -  
39 - /// <summary>  
40 - /// 初始化一个<see cref="LqRyzlService"/>类型的新实例  
41 - /// </summary>  
42 - public LqRyzlService(  
43 - ISqlSugarRepository<LqRyzlEntity> lqRyzlRepository,  
44 - IUserManager userManager)  
45 - {  
46 - _lqRyzlRepository = lqRyzlRepository;  
47 - _db = _lqRyzlRepository.Context;  
48 - _userManager = userManager;  
49 - }  
50 -  
51 - /// <summary>  
52 - /// 获取人员资料  
53 - /// </summary>  
54 - /// <param name="id">参数</param>  
55 - /// <returns></returns>  
56 - [HttpGet("{id}")]  
57 - public async Task<dynamic> GetInfo(string id)  
58 - {  
59 - var entity = await _db.Queryable<LqRyzlEntity>().FirstAsync(p => p.Id == id);  
60 - var output = entity.Adapt<LqRyzlInfoOutput>();  
61 - return output;  
62 - }  
63 -  
64 - /// <summary>  
65 - /// 获取人员资料列表  
66 - /// </summary>  
67 - /// <param name="input">请求参数</param>  
68 - /// <returns></returns>  
69 - [HttpGet("")]  
70 - public async Task<dynamic> GetList([FromQuery] LqRyzlListQueryInput input)  
71 - {  
72 - var sidx = input.sidx == null ? "id" : input.sidx;  
73 - List<string> queryRzsj = input.rzsj != null ? input.rzsj.Split(',').ToObeject<List<string>>() : null;  
74 - DateTime? startRzsj = queryRzsj != null ? Ext.GetDateTime(queryRzsj.First()) : null;  
75 - DateTime? endRzsj = queryRzsj != null ? Ext.GetDateTime(queryRzsj.Last()) : null;  
76 - List<string> queryLzsj = input.lzsj != null ? input.lzsj.Split(',').ToObeject<List<string>>() : null;  
77 - DateTime? startLzsj = queryLzsj != null ? Ext.GetDateTime(queryLzsj.First()) : null;  
78 - DateTime? endLzsj = queryLzsj != null ? Ext.GetDateTime(queryLzsj.Last()) : null;  
79 - var data = await _db.Queryable<LqRyzlEntity>()  
80 - .WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id))  
81 - .WhereIF(!string.IsNullOrEmpty(input.dm), p => p.Dm.Contains(input.dm))  
82 - .WhereIF(!string.IsNullOrEmpty(input.zw), p => p.Zw.Contains(input.zw))  
83 - .WhereIF(!string.IsNullOrEmpty(input.fyft), p => p.Fyft.Equals(input.fyft))  
84 - .WhereIF(!string.IsNullOrEmpty(input.gwfl1), p => p.Gwfl1.Equals(input.gwfl1))  
85 - .WhereIF(!string.IsNullOrEmpty(input.xm), p => p.Xm.Contains(input.xm))  
86 - .WhereIF(!string.IsNullOrEmpty(input.zzqk), p => p.Zzqk.Equals(input.zzqk))  
87 - .WhereIF(!string.IsNullOrEmpty(input.gwfl2), p => p.Gwfl2.Equals(input.gwfl2))  
88 - .WhereIF(queryRzsj != null, p => p.Rzsj >= new DateTime(startRzsj.ToDate().Year, startRzsj.ToDate().Month, startRzsj.ToDate().Day, 0, 0, 0))  
89 - .WhereIF(queryRzsj != null, p => p.Rzsj <= new DateTime(endRzsj.ToDate().Year, endRzsj.ToDate().Month, endRzsj.ToDate().Day, 23, 59, 59))  
90 - .WhereIF(queryLzsj != null, p => p.Lzsj >= new DateTime(startLzsj.ToDate().Year, startLzsj.ToDate().Month, startLzsj.ToDate().Day, 0, 0, 0))  
91 - .WhereIF(queryLzsj != null, p => p.Lzsj <= new DateTime(endLzsj.ToDate().Year, endLzsj.ToDate().Month, endLzsj.ToDate().Day, 23, 59, 59))  
92 - .WhereIF(!string.IsNullOrEmpty(input.zd), p => p.Zd.Contains(input.zd))  
93 - .WhereIF(!string.IsNullOrEmpty(input.yl1), p => p.Yl1.Contains(input.yl1))  
94 - .WhereIF(!string.IsNullOrEmpty(input.yl2), p => p.Yl2.Contains(input.yl2))  
95 - .WhereIF(!string.IsNullOrEmpty(input.yl3), p => p.Yl3.Contains(input.yl3))  
96 - .WhereIF(!string.IsNullOrEmpty(input.sjh), p => p.Sjh.Contains(input.sjh))  
97 - .Select(it=> new LqRyzlListOutput  
98 - {  
99 - id = it.Id,  
100 - dm=it.Dm,  
101 - zw=it.Zw,  
102 - fyft=it.Fyft,  
103 - gwfl1=it.Gwfl1,  
104 - xm=it.Xm,  
105 - zzqk=it.Zzqk,  
106 - gwfl2=it.Gwfl2,  
107 - rzsj=it.Rzsj,  
108 - lzsj=it.Lzsj,  
109 - zd=it.Zd,  
110 - yl1=it.Yl1,  
111 - yl2=it.Yl2,  
112 - yl3=it.Yl3,  
113 - sjh=it.Sjh,  
114 - }).MergeTable().OrderBy(sidx+" "+input.sort).ToPagedListAsync(input.currentPage, input.pageSize);  
115 - return PageResult<LqRyzlListOutput>.SqlSugarPageResult(data);  
116 - }  
117 -  
118 - /// <summary>  
119 - /// 新建人员资料  
120 - /// </summary>  
121 - /// <param name="input">参数</param>  
122 - /// <returns></returns>  
123 - [HttpPost("")]  
124 - public async Task Create([FromBody] LqRyzlCrInput input)  
125 - {  
126 - var userInfo = await _userManager.GetUserInfo();  
127 - var entity = input.Adapt<LqRyzlEntity>();  
128 - entity.Id = YitIdHelper.NextId().ToString();  
129 - var isOk = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandAsync();  
130 - if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1000);  
131 - }  
132 -  
133 - /// <summary>  
134 - /// 获取人员资料无分页列表  
135 - /// </summary>  
136 - /// <param name="input">请求参数</param>  
137 - /// <returns></returns>  
138 - [NonAction]  
139 - public async Task<dynamic> GetNoPagingList([FromQuery] LqRyzlListQueryInput input)  
140 - {  
141 - var sidx = input.sidx == null ? "id" : input.sidx;  
142 - List<string> queryRzsj = input.rzsj != null ? input.rzsj.Split(',').ToObeject<List<string>>() : null;  
143 - DateTime? startRzsj = queryRzsj != null ? Ext.GetDateTime(queryRzsj.First()) : null;  
144 - DateTime? endRzsj = queryRzsj != null ? Ext.GetDateTime(queryRzsj.Last()) : null;  
145 - List<string> queryLzsj = input.lzsj != null ? input.lzsj.Split(',').ToObeject<List<string>>() : null;  
146 - DateTime? startLzsj = queryLzsj != null ? Ext.GetDateTime(queryLzsj.First()) : null;  
147 - DateTime? endLzsj = queryLzsj != null ? Ext.GetDateTime(queryLzsj.Last()) : null;  
148 - var data = await _db.Queryable<LqRyzlEntity>()  
149 - .WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id))  
150 - .WhereIF(!string.IsNullOrEmpty(input.dm), p => p.Dm.Contains(input.dm))  
151 - .WhereIF(!string.IsNullOrEmpty(input.zw), p => p.Zw.Contains(input.zw))  
152 - .WhereIF(!string.IsNullOrEmpty(input.fyft), p => p.Fyft.Equals(input.fyft))  
153 - .WhereIF(!string.IsNullOrEmpty(input.gwfl1), p => p.Gwfl1.Equals(input.gwfl1))  
154 - .WhereIF(!string.IsNullOrEmpty(input.xm), p => p.Xm.Contains(input.xm))  
155 - .WhereIF(!string.IsNullOrEmpty(input.zzqk), p => p.Zzqk.Equals(input.zzqk))  
156 - .WhereIF(!string.IsNullOrEmpty(input.gwfl2), p => p.Gwfl2.Equals(input.gwfl2))  
157 - .WhereIF(queryRzsj != null, p => p.Rzsj >= new DateTime(startRzsj.ToDate().Year, startRzsj.ToDate().Month, startRzsj.ToDate().Day, 0, 0, 0))  
158 - .WhereIF(queryRzsj != null, p => p.Rzsj <= new DateTime(endRzsj.ToDate().Year, endRzsj.ToDate().Month, endRzsj.ToDate().Day, 23, 59, 59))  
159 - .WhereIF(queryLzsj != null, p => p.Lzsj >= new DateTime(startLzsj.ToDate().Year, startLzsj.ToDate().Month, startLzsj.ToDate().Day, 0, 0, 0))  
160 - .WhereIF(queryLzsj != null, p => p.Lzsj <= new DateTime(endLzsj.ToDate().Year, endLzsj.ToDate().Month, endLzsj.ToDate().Day, 23, 59, 59))  
161 - .WhereIF(!string.IsNullOrEmpty(input.zd), p => p.Zd.Contains(input.zd))  
162 - .WhereIF(!string.IsNullOrEmpty(input.yl1), p => p.Yl1.Contains(input.yl1))  
163 - .WhereIF(!string.IsNullOrEmpty(input.yl2), p => p.Yl2.Contains(input.yl2))  
164 - .WhereIF(!string.IsNullOrEmpty(input.yl3), p => p.Yl3.Contains(input.yl3))  
165 - .WhereIF(!string.IsNullOrEmpty(input.sjh), p => p.Sjh.Contains(input.sjh))  
166 - .Select(it=> new LqRyzlListOutput  
167 - {  
168 - id = it.Id,  
169 - dm=it.Dm,  
170 - zw=it.Zw,  
171 - fyft=it.Fyft,  
172 - gwfl1=it.Gwfl1,  
173 - xm=it.Xm,  
174 - zzqk=it.Zzqk,  
175 - gwfl2=it.Gwfl2,  
176 - rzsj=it.Rzsj,  
177 - lzsj=it.Lzsj,  
178 - zd=it.Zd,  
179 - yl1=it.Yl1,  
180 - yl2=it.Yl2,  
181 - yl3=it.Yl3,  
182 - sjh=it.Sjh,  
183 - }).MergeTable().OrderBy(sidx+" "+input.sort).ToListAsync();  
184 - return data;  
185 - }  
186 -  
187 - /// <summary>  
188 - /// 导出人员资料  
189 - /// </summary>  
190 - /// <param name="input">请求参数</param>  
191 - /// <returns></returns>  
192 - [HttpGet("Actions/Export")]  
193 - public async Task<dynamic> Export([FromQuery] LqRyzlListQueryInput input)  
194 - {  
195 - var userInfo = await _userManager.GetUserInfo();  
196 - var exportData = new List<LqRyzlListOutput>();  
197 - if (input.dataType == 0)  
198 - {  
199 - var data = Clay.Object(await this.GetList(input));  
200 - exportData = data.Solidify<PageResult<LqRyzlListOutput>>().list;  
201 - }  
202 - else  
203 - {  
204 - exportData = await this.GetNoPagingList(input);  
205 - }  
206 - List<ParamsModel> paramList = "[{\"value\":\"序号\",\"field\":\"id\"},{\"value\":\"店名\",\"field\":\"dm\"},{\"value\":\"职位\",\"field\":\"zw\"},{\"value\":\"费用分摊\",\"field\":\"fyft\"},{\"value\":\"岗位分类1\",\"field\":\"gwfl1\"},{\"value\":\"姓名\",\"field\":\"xm\"},{\"value\":\"在职情况\",\"field\":\"zzqk\"},{\"value\":\"岗位分类2\",\"field\":\"gwfl2\"},{\"value\":\"入职时间\",\"field\":\"rzsj\"},{\"value\":\"离职时间\",\"field\":\"lzsj\"},{\"value\":\"战队\",\"field\":\"zd\"},{\"value\":\"预留1\",\"field\":\"yl1\"},{\"value\":\"预留2\",\"field\":\"yl2\"},{\"value\":\"预留3\",\"field\":\"yl3\"},{\"value\":\"手机号\",\"field\":\"sjh\"},]".ToList<ParamsModel>();  
207 - ExcelConfig excelconfig = new ExcelConfig();  
208 - excelconfig.FileName = "人员资料.xls";  
209 - excelconfig.HeadFont = "微软雅黑";  
210 - excelconfig.HeadPoint = 10;  
211 - excelconfig.IsAllSizeColumn = true;  
212 - excelconfig.ColumnModel = new List<ExcelColumnModel>();  
213 - List<string> selectKeyList = input.selectKey.Split(',').ToList();  
214 - foreach (var item in selectKeyList)  
215 - {  
216 - var isExist = paramList.Find(p => p.field == item);  
217 - if (isExist != null)  
218 - {  
219 - excelconfig.ColumnModel.Add(new ExcelColumnModel() { Column = isExist.field, ExcelColumn = isExist.value });  
220 - }  
221 - }  
222 - var addPath = FileVariable.TemporaryFilePath + excelconfig.FileName;  
223 - ExcelExportHelper<LqRyzlListOutput>.Export(exportData, excelconfig, addPath);  
224 - var fileName = _userManager.UserId + "|" + addPath + "|xls";  
225 - var output = new  
226 - {  
227 - name = excelconfig.FileName,  
228 - url = "/api/File/Download?encryption=" + DESCEncryption.Encrypt(fileName, "NCC")  
229 - };  
230 - return output;  
231 - }  
232 -  
233 - /// <summary>  
234 - /// 批量删除人员资料  
235 - /// </summary>  
236 - /// <param name="ids">主键数组</param>  
237 - /// <returns></returns>  
238 - [HttpPost("batchRemove")]  
239 - public async Task BatchRemove([FromBody] List<string> ids)  
240 - {  
241 - var entitys = await _db.Queryable<LqRyzlEntity>().In(it => it.Id, ids).ToListAsync();  
242 - if (entitys.Count > 0)  
243 - {  
244 - try  
245 - {  
246 - //开启事务  
247 - _db.BeginTran();  
248 - //批量删除人员资料  
249 - await _db.Deleteable<LqRyzlEntity>().In(d => d.Id,ids).ExecuteCommandAsync();  
250 - //关闭事务  
251 - _db.CommitTran();  
252 - }  
253 - catch (Exception)  
254 - {  
255 - //回滚事务  
256 - _db.RollbackTran();  
257 - throw NCCException.Oh(ErrorCode.COM1002);  
258 - }  
259 - }  
260 - }  
261 -  
262 - /// <summary>  
263 - /// 更新人员资料  
264 - /// </summary>  
265 - /// <param name="id">主键</param>  
266 - /// <param name="input">参数</param>  
267 - /// <returns></returns>  
268 - [HttpPut("{id}")]  
269 - public async Task Update(string id, [FromBody] LqRyzlUpInput input)  
270 - {  
271 - var entity = input.Adapt<LqRyzlEntity>();  
272 - var isOk = await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();  
273 - if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1001);  
274 - }  
275 -  
276 - /// <summary>  
277 - /// 删除人员资料  
278 - /// </summary>  
279 - /// <returns></returns>  
280 - [HttpDelete("{id}")]  
281 - public async Task Delete(string id)  
282 - {  
283 - var entity = await _db.Queryable<LqRyzlEntity>().FirstAsync(p => p.Id == id);  
284 - _ = entity ?? throw NCCException.Oh(ErrorCode.COM1005);  
285 - var isOk = await _db.Deleteable<LqRyzlEntity>().Where(d => d.Id == id).ExecuteCommandAsync();  
286 - if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1002);  
287 - }  
288 - }  
289 -}  
netcore/src/Modularity/Extend/NCC.Extend/LqTkXscService.cs deleted
1 -using System;  
2 -using System.Collections.Generic;  
3 -using System.Linq;  
4 -using System.Threading.Tasks;  
5 -using Mapster;  
6 -using Microsoft.AspNetCore.Mvc;  
7 -using NCC.ClayObject;  
8 -using NCC.Common.Configuration;  
9 -using NCC.Common.Core.Manager;  
10 -using NCC.Common.Enum;  
11 -using NCC.Common.Extension;  
12 -using NCC.Common.Filter;  
13 -using NCC.Common.Helper;  
14 -using NCC.Common.Model.NPOI;  
15 -using NCC.DataEncryption;  
16 -using NCC.Dependency;  
17 -using NCC.DynamicApiController;  
18 -using NCC.Extend.Entitys.Dto.LqTkXsc;  
19 -using NCC.Extend.Entitys.lq_tk_xsc;  
20 -using NCC.Extend.Interfaces.LqTkXsc;  
21 -using NCC.FriendlyException;  
22 -using NCC.JsonSerialization;  
23 -using SqlSugar;  
24 -using Yitter.IdGenerator;  
25 -  
26 -namespace NCC.Extend.LqTkXsc  
27 -{  
28 - /// <summary>  
29 - /// 线索池服务  
30 - /// </summary>  
31 - [ApiDescriptionSettings(Tag = "Extend", Name = "LqTkXsc", Order = 200)]  
32 - [Route("api/Extend/[controller]")]  
33 - public class LqTkXscService : ILqTkXscService, IDynamicApiController, ITransient  
34 - {  
35 - private readonly ISqlSugarRepository<LqTkXscEntity> _lqTkXscRepository;  
36 - private readonly SqlSugarScope _db;  
37 - private readonly IUserManager _userManager;  
38 -  
39 - /// <summary>  
40 - /// 初始化一个<see cref="LqTkXscService"/>类型的新实例  
41 - /// </summary>  
42 - public LqTkXscService(ISqlSugarRepository<LqTkXscEntity> lqTkXscRepository, IUserManager userManager)  
43 - {  
44 - _lqTkXscRepository = lqTkXscRepository;  
45 - _db = _lqTkXscRepository.Context;  
46 - _userManager = userManager;  
47 - }  
48 -  
49 - /// <summary>  
50 - /// 获取线索池  
51 - /// </summary>  
52 - /// <param name="id">参数</param>  
53 - /// <returns></returns>  
54 - [HttpGet("{id}")]  
55 - public async Task<dynamic> GetInfo(string id)  
56 - {  
57 - var entity = await _db.Queryable<LqTkXscEntity>().FirstAsync(p => p.Id == id);  
58 - var output = entity.Adapt<LqTkXscInfoOutput>();  
59 - return output;  
60 - }  
61 -  
62 - /// <summary>  
63 - /// 获取线索池列表  
64 - /// </summary>  
65 - /// <param name="input">请求参数</param>  
66 - /// <returns></returns>  
67 - [HttpGet("")]  
68 - public async Task<dynamic> GetList([FromQuery] LqTkXscListQueryInput input)  
69 - {  
70 - var sidx = input.sidx == null ? "id" : input.sidx;  
71 - List<string> queryTjsj = input.tjsj != null ? input.tjsj.Split(',').ToObeject<List<string>>() : null;  
72 - DateTime? startTjsj = queryTjsj != null ? Ext.GetDateTime(queryTjsj.First()) : null;  
73 - DateTime? endTjsj = queryTjsj != null ? Ext.GetDateTime(queryTjsj.Last()) : null;  
74 - List<string> querySr = input.sr != null ? input.sr.Split(',').ToObeject<List<string>>() : null;  
75 - DateTime? startSr = querySr != null ? Ext.GetDateTime(querySr.First()) : null;  
76 - DateTime? endSr = querySr != null ? Ext.GetDateTime(querySr.Last()) : null;  
77 - var data = await _db.Queryable<LqTkXscEntity>()  
78 - .WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id))  
79 - .WhereIF(queryTjsj != null, p => p.Tjsj >= new DateTime(startTjsj.ToDate().Year, startTjsj.ToDate().Month, startTjsj.ToDate().Day, 0, 0, 0))  
80 - .WhereIF(queryTjsj != null, p => p.Tjsj <= new DateTime(endTjsj.ToDate().Year, endTjsj.ToDate().Month, endTjsj.ToDate().Day, 23, 59, 59))  
81 - .WhereIF(!string.IsNullOrEmpty(input.tkry), p => p.Tkry.Contains(input.tkry))  
82 - .WhereIF(!string.IsNullOrEmpty(input.gkxm), p => p.Gkxm.Contains(input.gkxm))  
83 - .WhereIF(!string.IsNullOrEmpty(input.dhhm), p => p.Dhhm.Contains(input.dhhm))  
84 - .WhereIF(!string.IsNullOrEmpty(input.gmzs), p => p.Gmzs.Equals(input.gmzs))  
85 - .WhereIF(!string.IsNullOrEmpty(input.zffs), p => p.Zffs.Equals(input.zffs))  
86 - .WhereIF(!string.IsNullOrEmpty(input.sfjwx), p => p.Sfjwx.Equals(input.sfjwx))  
87 - .WhereIF(!string.IsNullOrEmpty(input.bz), p => p.Bz.Contains(input.bz))  
88 - .WhereIF(!string.IsNullOrEmpty(input.xb), p => p.Xb.Equals(input.xb))  
89 - .WhereIF(querySr != null, p => p.Sr >= new DateTime(startSr.ToDate().Year, startSr.ToDate().Month, startSr.ToDate().Day, 0, 0, 0))  
90 - .WhereIF(querySr != null, p => p.Sr <= new DateTime(endSr.ToDate().Year, endSr.ToDate().Month, endSr.ToDate().Day, 23, 59, 59))  
91 - .WhereIF(!string.IsNullOrEmpty(input.dz), p => p.Dz.Contains(input.dz))  
92 - .WhereIF(!string.IsNullOrEmpty(input.yx), p => p.Yx.Contains(input.yx))  
93 - .WhereIF(!string.IsNullOrEmpty(input.wx), p => p.Wx.Contains(input.wx))  
94 - .Select(it => new LqTkXscListOutput  
95 - {  
96 - id = it.Id,  
97 - tjsj = it.Tjsj,  
98 - tkry = it.Tkry,  
99 - gkxm = it.Gkxm,  
100 - dhhm = it.Dhhm,  
101 - gmzs = it.Gmzs,  
102 - zffs = it.Zffs,  
103 - sfjwx = it.Sfjwx,  
104 - bz = it.Bz,  
105 - xb = it.Xb,  
106 - sr = it.Sr,  
107 - dz = it.Dz,  
108 - yx = it.Yx,  
109 - wx = it.Wx,  
110 - })  
111 - .MergeTable()  
112 - .OrderBy(sidx + " " + input.sort)  
113 - .ToPagedListAsync(input.currentPage, input.pageSize);  
114 - return PageResult<LqTkXscListOutput>.SqlSugarPageResult(data);  
115 - }  
116 -  
117 - /// <summary>  
118 - /// 新建线索池  
119 - /// </summary>  
120 - /// <param name="input">参数</param>  
121 - /// <returns></returns>  
122 - [HttpPost("")]  
123 - public async Task Create([FromBody] LqTkXscCrInput input)  
124 - {  
125 - var userInfo = await _userManager.GetUserInfo();  
126 - var entity = input.Adapt<LqTkXscEntity>();  
127 - entity.Id = YitIdHelper.NextId().ToString();  
128 - var isOk = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandAsync();  
129 - if (!(isOk > 0))  
130 - throw NCCException.Oh(ErrorCode.COM1000);  
131 - }  
132 -  
133 - /// <summary>  
134 - /// 获取线索池无分页列表  
135 - /// </summary>  
136 - /// <param name="input">请求参数</param>  
137 - /// <returns></returns>  
138 - [NonAction]  
139 - public async Task<dynamic> GetNoPagingList([FromQuery] LqTkXscListQueryInput input)  
140 - {  
141 - var sidx = input.sidx == null ? "id" : input.sidx;  
142 - List<string> queryTjsj = input.tjsj != null ? input.tjsj.Split(',').ToObeject<List<string>>() : null;  
143 - DateTime? startTjsj = queryTjsj != null ? Ext.GetDateTime(queryTjsj.First()) : null;  
144 - DateTime? endTjsj = queryTjsj != null ? Ext.GetDateTime(queryTjsj.Last()) : null;  
145 - List<string> querySr = input.sr != null ? input.sr.Split(',').ToObeject<List<string>>() : null;  
146 - DateTime? startSr = querySr != null ? Ext.GetDateTime(querySr.First()) : null;  
147 - DateTime? endSr = querySr != null ? Ext.GetDateTime(querySr.Last()) : null;  
148 - var data = await _db.Queryable<LqTkXscEntity>()  
149 - .WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id))  
150 - .WhereIF(queryTjsj != null, p => p.Tjsj >= new DateTime(startTjsj.ToDate().Year, startTjsj.ToDate().Month, startTjsj.ToDate().Day, 0, 0, 0))  
151 - .WhereIF(queryTjsj != null, p => p.Tjsj <= new DateTime(endTjsj.ToDate().Year, endTjsj.ToDate().Month, endTjsj.ToDate().Day, 23, 59, 59))  
152 - .WhereIF(!string.IsNullOrEmpty(input.tkry), p => p.Tkry.Contains(input.tkry))  
153 - .WhereIF(!string.IsNullOrEmpty(input.gkxm), p => p.Gkxm.Contains(input.gkxm))  
154 - .WhereIF(!string.IsNullOrEmpty(input.dhhm), p => p.Dhhm.Contains(input.dhhm))  
155 - .WhereIF(!string.IsNullOrEmpty(input.gmzs), p => p.Gmzs.Equals(input.gmzs))  
156 - .WhereIF(!string.IsNullOrEmpty(input.zffs), p => p.Zffs.Equals(input.zffs))  
157 - .WhereIF(!string.IsNullOrEmpty(input.sfjwx), p => p.Sfjwx.Equals(input.sfjwx))  
158 - .WhereIF(!string.IsNullOrEmpty(input.bz), p => p.Bz.Contains(input.bz))  
159 - .WhereIF(!string.IsNullOrEmpty(input.xb), p => p.Xb.Equals(input.xb))  
160 - .WhereIF(querySr != null, p => p.Sr >= new DateTime(startSr.ToDate().Year, startSr.ToDate().Month, startSr.ToDate().Day, 0, 0, 0))  
161 - .WhereIF(querySr != null, p => p.Sr <= new DateTime(endSr.ToDate().Year, endSr.ToDate().Month, endSr.ToDate().Day, 23, 59, 59))  
162 - .WhereIF(!string.IsNullOrEmpty(input.dz), p => p.Dz.Contains(input.dz))  
163 - .WhereIF(!string.IsNullOrEmpty(input.yx), p => p.Yx.Contains(input.yx))  
164 - .WhereIF(!string.IsNullOrEmpty(input.wx), p => p.Wx.Contains(input.wx))  
165 - .Select(it => new LqTkXscListOutput  
166 - {  
167 - id = it.Id,  
168 - tjsj = it.Tjsj,  
169 - tkry = it.Tkry,  
170 - gkxm = it.Gkxm,  
171 - dhhm = it.Dhhm,  
172 - gmzs = it.Gmzs,  
173 - zffs = it.Zffs,  
174 - sfjwx = it.Sfjwx,  
175 - bz = it.Bz,  
176 - xb = it.Xb,  
177 - sr = it.Sr,  
178 - dz = it.Dz,  
179 - yx = it.Yx,  
180 - wx = it.Wx,  
181 - })  
182 - .MergeTable()  
183 - .OrderBy(sidx + " " + input.sort)  
184 - .ToListAsync();  
185 - return data;  
186 - }  
187 -  
188 - /// <summary>  
189 - /// 导出线索池  
190 - /// </summary>  
191 - /// <param name="input">请求参数</param>  
192 - /// <returns></returns>  
193 - [HttpGet("Actions/Export")]  
194 - public async Task<dynamic> Export([FromQuery] LqTkXscListQueryInput input)  
195 - {  
196 - var userInfo = await _userManager.GetUserInfo();  
197 - var exportData = new List<LqTkXscListOutput>();  
198 - if (input.dataType == 0)  
199 - {  
200 - var data = Clay.Object(await this.GetList(input));  
201 - exportData = data.Solidify<PageResult<LqTkXscListOutput>>().list;  
202 - }  
203 - else  
204 - {  
205 - exportData = await this.GetNoPagingList(input);  
206 - }  
207 - List<ParamsModel> paramList =  
208 - "[{\"value\":\"客户编号\",\"field\":\"id\"},{\"value\":\"创建时间\",\"field\":\"tjsj\"},{\"value\":\"拓客人员\",\"field\":\"tkry\"},{\"value\":\"顾客姓名\",\"field\":\"gkxm\"},{\"value\":\"电话号码\",\"field\":\"dhhm\"},{\"value\":\"购买张数\",\"field\":\"gmzs\"},{\"value\":\"支付方式\",\"field\":\"zffs\"},{\"value\":\"是否加微信\",\"field\":\"sfjwx\"},{\"value\":\"备注\",\"field\":\"bz\"},{\"value\":\"性别\",\"field\":\"xb\"},{\"value\":\"生日\",\"field\":\"sr\"},{\"value\":\"地址\",\"field\":\"dz\"},{\"value\":\"邮箱\",\"field\":\"yx\"},{\"value\":\"微信\",\"field\":\"wx\"},]".ToList<ParamsModel>();  
209 - ExcelConfig excelconfig = new ExcelConfig();  
210 - excelconfig.FileName = "线索池.xls";  
211 - excelconfig.HeadFont = "微软雅黑";  
212 - excelconfig.HeadPoint = 10;  
213 - excelconfig.IsAllSizeColumn = true;  
214 - excelconfig.ColumnModel = new List<ExcelColumnModel>();  
215 - List<string> selectKeyList = input.selectKey.Split(',').ToList();  
216 - foreach (var item in selectKeyList)  
217 - {  
218 - var isExist = paramList.Find(p => p.field == item);  
219 - if (isExist != null)  
220 - {  
221 - excelconfig.ColumnModel.Add(new ExcelColumnModel() { Column = isExist.field, ExcelColumn = isExist.value });  
222 - }  
223 - }  
224 - var addPath = FileVariable.TemporaryFilePath + excelconfig.FileName;  
225 - ExcelExportHelper<LqTkXscListOutput>.Export(exportData, excelconfig, addPath);  
226 - var fileName = _userManager.UserId + "|" + addPath + "|xls";  
227 - var output = new { name = excelconfig.FileName, url = "/api/File/Download?encryption=" + DESCEncryption.Encrypt(fileName, "NCC") };  
228 - return output;  
229 - }  
230 -  
231 - /// <summary>  
232 - /// 批量删除线索池  
233 - /// </summary>  
234 - /// <param name="ids">主键数组</param>  
235 - /// <returns></returns>  
236 - [HttpPost("batchRemove")]  
237 - public async Task BatchRemove([FromBody] List<string> ids)  
238 - {  
239 - var entitys = await _db.Queryable<LqTkXscEntity>().In(it => it.Id, ids).ToListAsync();  
240 - if (entitys.Count > 0)  
241 - {  
242 - try  
243 - {  
244 - //开启事务  
245 - _db.BeginTran();  
246 - //批量删除线索池  
247 - await _db.Deleteable<LqTkXscEntity>().In(d => d.Id, ids).ExecuteCommandAsync();  
248 - //关闭事务  
249 - _db.CommitTran();  
250 - }  
251 - catch (Exception)  
252 - {  
253 - //回滚事务  
254 - _db.RollbackTran();  
255 - throw NCCException.Oh(ErrorCode.COM1002);  
256 - }  
257 - }  
258 - }  
259 -  
260 - /// <summary>  
261 - /// 更新线索池  
262 - /// </summary>  
263 - /// <param name="id">主键</param>  
264 - /// <param name="input">参数</param>  
265 - /// <returns></returns>  
266 - [HttpPut("{id}")]  
267 - public async Task Update(string id, [FromBody] LqTkXscUpInput input)  
268 - {  
269 - var entity = input.Adapt<LqTkXscEntity>();  
270 - var isOk = await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();  
271 - if (!(isOk > 0))  
272 - throw NCCException.Oh(ErrorCode.COM1001);  
273 - }  
274 -  
275 - /// <summary>  
276 - /// 删除线索池  
277 - /// </summary>  
278 - /// <returns></returns>  
279 - [HttpDelete("{id}")]  
280 - public async Task Delete(string id)  
281 - {  
282 - var entity = await _db.Queryable<LqTkXscEntity>().FirstAsync(p => p.Id == id);  
283 - _ = entity ?? throw NCCException.Oh(ErrorCode.COM1005);  
284 - var isOk = await _db.Deleteable<LqTkXscEntity>().Where(d => d.Id == id).ExecuteCommandAsync();  
285 - if (!(isOk > 0))  
286 - throw NCCException.Oh(ErrorCode.COM1002);  
287 - }  
288 - }  
289 -}  
netcore/src/Modularity/Extend/NCC.Extend/LqTkjlbService.cs
@@ -21,7 +21,6 @@ using NCC.Extend.Entitys.lq_event; @@ -21,7 +21,6 @@ using NCC.Extend.Entitys.lq_event;
21 using NCC.Extend.Entitys.lq_eventuser; 21 using NCC.Extend.Entitys.lq_eventuser;
22 using NCC.Extend.Entitys.lq_khxx; 22 using NCC.Extend.Entitys.lq_khxx;
23 using NCC.Extend.Entitys.lq_mdxx; 23 using NCC.Extend.Entitys.lq_mdxx;
24 -using NCC.Extend.Entitys.lq_ryzl;  
25 using NCC.Extend.Entitys.lq_tkjlb; 24 using NCC.Extend.Entitys.lq_tkjlb;
26 using NCC.Extend.Interfaces.LqTkjlb; 25 using NCC.Extend.Interfaces.LqTkjlb;
27 using NCC.FriendlyException; 26 using NCC.FriendlyException;