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 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 30 - **Vue Router** - 路由管理
22 31 - **Axios** - HTTP客户端
23 32 - **SCSS** - CSS预处理器
  33 +- **ECharts** - 数据可视化图表库
24 34  
25 35 ## 项目结构
26 36  
... ... @@ -46,9 +56,13 @@ lvqianmeiye_ERP/
46 56 │ │ ├── api/ # API接口
47 57 │ │ ├── components/ # 公共组件
48 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 67 │ │ ├── router/ # 路由配置
54 68 │ │ └── store/ # 状态管理
... ... @@ -64,33 +78,25 @@ lvqianmeiye_ERP/
64 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 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 102 - `EmailService` - 邮件服务
... ... @@ -99,9 +105,16 @@ lvqianmeiye_ERP/
99 105 - `WorkLogService` - 工作日志服务
100 106  
101 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 118 - **Model/** - 业务模型类
106 119  
107 120 ### NCC.Extend.Interfaces(接口定义层)
... ... @@ -171,39 +184,44 @@ npm run dev
171 184  
172 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 226 ### ⚙️ 系统管理模块(位于System模块)
209 227 - **用户管理** - 系统用户维护,用户权限管理
... ... @@ -215,60 +233,91 @@ npm run dev
215 233  
216 234 ### 🎯 核心业务开发(Extend模块)
217 235  
218   -#### 添加新的业务服务
219   -1. **创建实体模型** (`NCC.Extend.Entitys/Entity/`)
  236 +#### 统计服务开发规范
  237 +1. **统计表实体** (`NCC.Extend.Entitys/Entity/lq_statistics_*/`)
220 238 ```csharp
221   - [SugarTable("lq_新表名")]
  239 + [SugarTable("lq_statistics_新统计表")]
222 240 [Tenant(ClaimConst.TENANT_ID)]
223   - public class Lq新实体Entity
  241 + public class LqStatistics新统计Entity
224 242 {
225 243 [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)]
226 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 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 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 306 ```javascript
268   - export function getLq新实体List(data) {
  307 + // 统计接口
  308 + export function get新统计StatisticsList(data) {
269 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 321 data
273 322 })
274 323 }
... ... @@ -341,6 +390,30 @@ proxy: {
341 390 2. 将 `dist` 目录部署到Web服务器
342 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 419 ### Q: 前端启动失败
... ... @@ -355,15 +428,53 @@ A: 检查JWT配置和Token有效期设置
355 428 ### Q: 页面显示异常
356 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 18 - `lq_mdgf/` - 门店股份占比明细
19 19  
20 20 #### 人员相关表
21   -- `lq_ryzl/` - 人员资料
  21 +- (已删除) `lq_ryzl/` - 人员资料
22 22  
23 23 #### 项目相关表
24 24 - `lq_xmzl/` - 项目资料
... ... @@ -63,7 +63,7 @@
63 63 - `lq_sbtjb/` - 社保统计表
64 64 - `lq_skzh/` - 收款账号
65 65 - `lq_tkjlb/` - 拓客记录表
66   -- `lq_tk_xsc/` - 拓客记录表
  66 +- (已删除) `lq_tk_xsc/` - 拓客记录表
67 67 - `lq_yaoyjl/` - 邀约记录
68 68 - `lq_yxhdfa/` - 营销活动方案
69 69 - `lq_yyjl/` - 预约记录
... ... @@ -80,7 +80,7 @@
80 80  
81 81 例如:
82 82 - `NCC.Extend.Entitys.lq_mdxx` - 门店资料
83   -- `NCC.Extend.Entitys.lq_ryzl` - 人员资料
  83 +- (已删除) `NCC.Extend.Entitys.lq_ryzl` - 人员资料
84 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 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 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 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 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 21 using NCC.Extend.Entitys.lq_eventuser;
22 22 using NCC.Extend.Entitys.lq_khxx;
23 23 using NCC.Extend.Entitys.lq_mdxx;
24   -using NCC.Extend.Entitys.lq_ryzl;
25 24 using NCC.Extend.Entitys.lq_tkjlb;
26 25 using NCC.Extend.Interfaces.LqTkjlb;
27 26 using NCC.FriendlyException;
... ...