Commit c8db89cd26ffee2271959a67fcdebcc1d36e56c1

Authored by “wangming”
1 parent a52c7842

123

netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqDailyReport/StorePerformanceCompletionOutput.cs
@@ -24,7 +24,22 @@ namespace NCC.Extend.Entitys.Dto.LqDailyReport @@ -24,7 +24,22 @@ namespace NCC.Extend.Entitys.Dto.LqDailyReport
24 public decimal TargetPerformance { get; set; } 24 public decimal TargetPerformance { get; set; }
25 25
26 /// <summary> 26 /// <summary>
27 - /// 完成业绩(开单业绩) 27 + /// 开单业绩
  28 + /// </summary>
  29 + public decimal BillingPerformance { get; set; }
  30 +
  31 + /// <summary>
  32 + /// 退款业绩(退卡业绩)
  33 + /// </summary>
  34 + public decimal RefundPerformance { get; set; }
  35 +
  36 + /// <summary>
  37 + /// 实际业绩(开单业绩 - 退款业绩)
  38 + /// </summary>
  39 + public decimal ActualPerformance { get; set; }
  40 +
  41 + /// <summary>
  42 + /// 完成业绩(实际业绩,用于兼容旧版本)
28 /// </summary> 43 /// </summary>
29 public decimal CompletedPerformance { get; set; } 44 public decimal CompletedPerformance { get; set; }
30 45
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhFeedback/LqXhFeedbackCrInput.cs
@@ -32,5 +32,11 @@ namespace NCC.Extend.Entitys.Dto.LqXhFeedback @@ -32,5 +32,11 @@ namespace NCC.Extend.Entitys.Dto.LqXhFeedback
32 /// </summary> 32 /// </summary>
33 [Display(Name = "备注", Description = "反馈备注信息")] 33 [Display(Name = "备注", Description = "反馈备注信息")]
34 public string Remark { get; set; } 34 public string Remark { get; set; }
  35 +
  36 + /// <summary>
  37 + /// 科技部备注
  38 + /// </summary>
  39 + [Display(Name = "科技部备注", Description = "科技部备注信息")]
  40 + public string KjbRemark { get; set; }
35 } 41 }
36 } 42 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhFeedback/LqXhFeedbackInfoOutput.cs
@@ -18,6 +18,11 @@ namespace NCC.Extend.Entitys.Dto.LqXhFeedback @@ -18,6 +18,11 @@ namespace NCC.Extend.Entitys.Dto.LqXhFeedback
18 public string consumeId { get; set; } 18 public string consumeId { get; set; }
19 19
20 /// <summary> 20 /// <summary>
  21 + /// 会员ID
  22 + /// </summary>
  23 + public string memberId { get; set; }
  24 +
  25 + /// <summary>
21 /// 前图片 26 /// 前图片
22 /// </summary> 27 /// </summary>
23 public string beforeImage { get; set; } 28 public string beforeImage { get; set; }
@@ -33,6 +38,11 @@ namespace NCC.Extend.Entitys.Dto.LqXhFeedback @@ -33,6 +38,11 @@ namespace NCC.Extend.Entitys.Dto.LqXhFeedback
33 public string remark { get; set; } 38 public string remark { get; set; }
34 39
35 /// <summary> 40 /// <summary>
  41 + /// 科技部备注
  42 + /// </summary>
  43 + public string kjbRemark { get; set; }
  44 +
  45 + /// <summary>
36 /// 添加人ID 46 /// 添加人ID
37 /// </summary> 47 /// </summary>
38 public string createUser { get; set; } 48 public string createUser { get; set; }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhFeedback/LqXhFeedbackListOutput.cs
@@ -18,6 +18,11 @@ namespace NCC.Extend.Entitys.Dto.LqXhFeedback @@ -18,6 +18,11 @@ namespace NCC.Extend.Entitys.Dto.LqXhFeedback
18 public string consumeId { get; set; } 18 public string consumeId { get; set; }
19 19
20 /// <summary> 20 /// <summary>
  21 + /// 会员ID
  22 + /// </summary>
  23 + public string memberId { get; set; }
  24 +
  25 + /// <summary>
21 /// 前图片 26 /// 前图片
22 /// </summary> 27 /// </summary>
23 public string beforeImage { get; set; } 28 public string beforeImage { get; set; }
@@ -33,6 +38,11 @@ namespace NCC.Extend.Entitys.Dto.LqXhFeedback @@ -33,6 +38,11 @@ namespace NCC.Extend.Entitys.Dto.LqXhFeedback
33 public string remark { get; set; } 38 public string remark { get; set; }
34 39
35 /// <summary> 40 /// <summary>
  41 + /// 科技部备注
  42 + /// </summary>
  43 + public string kjbRemark { get; set; }
  44 +
  45 + /// <summary>
36 /// 添加人ID 46 /// 添加人ID
37 /// </summary> 47 /// </summary>
38 public string createUser { get; set; } 48 public string createUser { get; set; }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xh_feedback/LqXhFeedbackEntity.cs
@@ -24,6 +24,12 @@ namespace NCC.Extend.Entitys.lq_xh_feedback @@ -24,6 +24,12 @@ namespace NCC.Extend.Entitys.lq_xh_feedback
24 public string ConsumeId { get; set; } 24 public string ConsumeId { get; set; }
25 25
26 /// <summary> 26 /// <summary>
  27 + /// 会员ID
  28 + /// </summary>
  29 + [SugarColumn(ColumnName = "F_MemberId")]
  30 + public string MemberId { get; set; }
  31 +
  32 + /// <summary>
27 /// 前图片 33 /// 前图片
28 /// </summary> 34 /// </summary>
29 [SugarColumn(ColumnName = "F_BeforeImage")] 35 [SugarColumn(ColumnName = "F_BeforeImage")]
@@ -42,6 +48,12 @@ namespace NCC.Extend.Entitys.lq_xh_feedback @@ -42,6 +48,12 @@ namespace NCC.Extend.Entitys.lq_xh_feedback
42 public string Remark { get; set; } 48 public string Remark { get; set; }
43 49
44 /// <summary> 50 /// <summary>
  51 + /// 科技部备注
  52 + /// </summary>
  53 + [SugarColumn(ColumnName = "F_KjbRemark")]
  54 + public string KjbRemark { get; set; }
  55 +
  56 + /// <summary>
45 /// 添加人ID 57 /// 添加人ID
46 /// </summary> 58 /// </summary>
47 [SugarColumn(ColumnName = "F_CreateUser")] 59 [SugarColumn(ColumnName = "F_CreateUser")]
netcore/src/Modularity/Extend/NCC.Extend/LqDailyReportService.cs
@@ -192,8 +192,11 @@ namespace NCC.Extend @@ -192,8 +192,11 @@ namespace NCC.Extend
192 /// - StoreId: 门店ID 192 /// - StoreId: 门店ID
193 /// - StoreName: 门店名称 193 /// - StoreName: 门店名称
194 /// - TargetPerformance: 目标业绩(生命线,来自门店信息表) 194 /// - TargetPerformance: 目标业绩(生命线,来自门店信息表)
195 - /// - CompletedPerformance: 完成业绩(当月1号至统计日期的开单业绩总和)  
196 - /// - CompletionRate: 完成率(百分比,CompletedPerformance / TargetPerformance * 100) 195 + /// - BillingPerformance: 开单业绩(开单业绩总和)
  196 + /// - RefundPerformance: 退款业绩(退卡业绩总和)
  197 + /// - ActualPerformance: 实际业绩(开单业绩 - 退款业绩)
  198 + /// - CompletedPerformance: 完成业绩(实际业绩,用于兼容旧版本)
  199 + /// - CompletionRate: 完成率(百分比,ActualPerformance / TargetPerformance * 100)
197 /// </remarks> 200 /// </remarks>
198 /// <param name="input">查询参数</param> 201 /// <param name="input">查询参数</param>
199 /// <returns>门店业绩完成情况列表</returns> 202 /// <returns>门店业绩完成情况列表</returns>
@@ -222,7 +225,7 @@ namespace NCC.Extend @@ -222,7 +225,7 @@ namespace NCC.Extend
222 store.dm as StoreName, 225 store.dm as StoreName,
223 -- 目标业绩(生命线) 226 -- 目标业绩(生命线)
224 COALESCE(store.xsyj, 0) as TargetPerformance, 227 COALESCE(store.xsyj, 0) as TargetPerformance,
225 - -- 完成业绩(开单业绩总和) 228 + -- 开单业绩总和
226 COALESCE(( 229 COALESCE((
227 SELECT SUM(billing.sfyj) 230 SELECT SUM(billing.sfyj)
228 FROM lq_kd_kdjlb billing 231 FROM lq_kd_kdjlb billing
@@ -230,25 +233,39 @@ namespace NCC.Extend @@ -230,25 +233,39 @@ namespace NCC.Extend
230 AND billing.F_IsEffective = 1 233 AND billing.F_IsEffective = 1
231 AND DATE(billing.kdrq) >= '{startDate:yyyy-MM-dd}' 234 AND DATE(billing.kdrq) >= '{startDate:yyyy-MM-dd}'
232 AND DATE(billing.kdrq) <= '{endDate:yyyy-MM-dd}' 235 AND DATE(billing.kdrq) <= '{endDate:yyyy-MM-dd}'
233 - ), 0) as CompletedPerformance 236 + ), 0) as BillingPerformance,
  237 + -- 退款业绩总和(退卡业绩)
  238 + COALESCE((
  239 + SELECT SUM(refund.tkje)
  240 + FROM lq_hytk_hytk refund
  241 + WHERE refund.md = store.F_Id
  242 + AND refund.F_IsEffective = 1
  243 + AND DATE(refund.tksj) >= '{startDate:yyyy-MM-dd}'
  244 + AND DATE(refund.tksj) <= '{endDate:yyyy-MM-dd}'
  245 + ), 0) as RefundPerformance
234 FROM lq_mdxx store 246 FROM lq_mdxx store
235 WHERE 1=1 {storeFilter} 247 WHERE 1=1 {storeFilter}
236 - ORDER BY CompletedPerformance DESC"; 248 + ORDER BY (BillingPerformance - RefundPerformance) DESC";
237 249
238 var result = await _db.Ado.SqlQueryAsync<dynamic>(sql); 250 var result = await _db.Ado.SqlQueryAsync<dynamic>(sql);
239 251
240 var outputList = result.Select(item => 252 var outputList = result.Select(item =>
241 { 253 {
242 var targetPerformance = Convert.ToDecimal(item.TargetPerformance); 254 var targetPerformance = Convert.ToDecimal(item.TargetPerformance);
243 - var completedPerformance = Convert.ToDecimal(item.CompletedPerformance);  
244 - var completionRate = targetPerformance > 0 ? (completedPerformance / targetPerformance * 100m) : 0m; 255 + var billingPerformance = Convert.ToDecimal(item.BillingPerformance);
  256 + var refundPerformance = Convert.ToDecimal(item.RefundPerformance);
  257 + var actualPerformance = billingPerformance - refundPerformance;
  258 + var completionRate = targetPerformance > 0 ? (actualPerformance / targetPerformance * 100m) : 0m;
245 259
246 return new StorePerformanceCompletionOutput 260 return new StorePerformanceCompletionOutput
247 { 261 {
248 StoreId = item.StoreId, 262 StoreId = item.StoreId,
249 StoreName = item.StoreName, 263 StoreName = item.StoreName,
250 TargetPerformance = targetPerformance, 264 TargetPerformance = targetPerformance,
251 - CompletedPerformance = completedPerformance, 265 + BillingPerformance = billingPerformance,
  266 + RefundPerformance = refundPerformance,
  267 + ActualPerformance = actualPerformance,
  268 + CompletedPerformance = actualPerformance, // 保持兼容性
252 CompletionRate = decimal.Round(completionRate, 2) 269 CompletionRate = decimal.Round(completionRate, 2)
253 }; 270 };
254 }).ToList(); 271 }).ToList();
netcore/src/Modularity/Extend/NCC.Extend/LqTkjlbService.cs
@@ -238,7 +238,7 @@ namespace NCC.Extend.LqTkjlb @@ -238,7 +238,7 @@ namespace NCC.Extend.LqTkjlb
238 Pxjg = 0, 238 Pxjg = 0,
239 Yjsj = DateTime.Now, 239 Yjsj = DateTime.Now,
240 MemberId = MemberId, 240 MemberId = MemberId,
241 - ProjectNumber = 0, 241 + ProjectNumber = 1,
242 IsEnabled = StatusEnum.有效.GetHashCode(), 242 IsEnabled = StatusEnum.有效.GetHashCode(),
243 SourceType = "体验", 243 SourceType = "体验",
244 TotalPrice = 0, 244 TotalPrice = 0,
netcore/src/Modularity/Extend/NCC.Extend/LqXhFeedbackService.cs
@@ -92,17 +92,21 @@ namespace NCC.Extend @@ -92,17 +92,21 @@ namespace NCC.Extend
92 /// ```json 92 /// ```json
93 /// { 93 /// {
94 /// "consumeId": "耗卡记录ID", 94 /// "consumeId": "耗卡记录ID",
  95 + /// "memberId": "会员ID",
95 /// "beforeImage": "前图片路径或Base64", 96 /// "beforeImage": "前图片路径或Base64",
96 /// "afterImage": "后图片路径或Base64", 97 /// "afterImage": "后图片路径或Base64",
97 - /// "remark": "反馈备注" 98 + /// "remark": "反馈备注",
  99 + /// "kjbRemark": "科技部备注"
98 /// } 100 /// }
99 /// ``` 101 /// ```
100 /// 102 ///
101 /// 参数说明: 103 /// 参数说明:
102 /// - consumeId: 耗卡记录ID(必填) 104 /// - consumeId: 耗卡记录ID(必填)
  105 + /// - memberId: 会员ID(可选)
103 /// - beforeImage: 前图片(可选) 106 /// - beforeImage: 前图片(可选)
104 /// - afterImage: 后图片(可选) 107 /// - afterImage: 后图片(可选)
105 /// - remark: 反馈备注(可选) 108 /// - remark: 反馈备注(可选)
  109 + /// - kjbRemark: 科技部备注(可选)
106 /// </remarks> 110 /// </remarks>
107 /// <param name="input">创建参数</param> 111 /// <param name="input">创建参数</param>
108 /// <returns>创建的耗卡反馈记录</returns> 112 /// <returns>创建的耗卡反馈记录</returns>
@@ -125,6 +129,7 @@ namespace NCC.Extend @@ -125,6 +129,7 @@ namespace NCC.Extend
125 entity.CreateUser = _userManager.UserId; 129 entity.CreateUser = _userManager.UserId;
126 entity.CreateTime = DateTime.Now; 130 entity.CreateTime = DateTime.Now;
127 entity.UpdateTime = DateTime.Now; 131 entity.UpdateTime = DateTime.Now;
  132 + entity.MemberId = consumeRecord.Hy;
128 await _db.Insertable(entity).ExecuteCommandAsync(); 133 await _db.Insertable(entity).ExecuteCommandAsync();
129 return entity.Adapt<LqXhFeedbackInfoOutput>(); 134 return entity.Adapt<LqXhFeedbackInfoOutput>();
130 } 135 }
@@ -147,18 +152,22 @@ namespace NCC.Extend @@ -147,18 +152,22 @@ namespace NCC.Extend
147 /// { 152 /// {
148 /// "id": "反馈记录ID", 153 /// "id": "反馈记录ID",
149 /// "consumeId": "耗卡记录ID", 154 /// "consumeId": "耗卡记录ID",
  155 + /// "memberId": "会员ID",
150 /// "beforeImage": "前图片路径或Base64", 156 /// "beforeImage": "前图片路径或Base64",
151 /// "afterImage": "后图片路径或Base64", 157 /// "afterImage": "后图片路径或Base64",
152 - /// "remark": "反馈备注" 158 + /// "remark": "反馈备注",
  159 + /// "kjbRemark": "科技部备注"
153 /// } 160 /// }
154 /// ``` 161 /// ```
155 /// 162 ///
156 /// 参数说明: 163 /// 参数说明:
157 /// - id: 反馈记录ID(必填) 164 /// - id: 反馈记录ID(必填)
158 /// - consumeId: 耗卡记录ID(必填) 165 /// - consumeId: 耗卡记录ID(必填)
  166 + /// - memberId: 会员ID(可选)
159 /// - beforeImage: 前图片(可选) 167 /// - beforeImage: 前图片(可选)
160 /// - afterImage: 后图片(可选) 168 /// - afterImage: 后图片(可选)
161 /// - remark: 反馈备注(可选) 169 /// - remark: 反馈备注(可选)
  170 + /// - kjbRemark: 科技部备注(可选)
162 /// </remarks> 171 /// </remarks>
163 /// <param name="input">更新参数</param> 172 /// <param name="input">更新参数</param>
164 /// <returns>更新后的耗卡反馈记录</returns> 173 /// <returns>更新后的耗卡反馈记录</returns>
@@ -187,7 +196,9 @@ namespace NCC.Extend @@ -187,7 +196,9 @@ namespace NCC.Extend
187 entity.BeforeImage = input.BeforeImage; 196 entity.BeforeImage = input.BeforeImage;
188 entity.AfterImage = input.AfterImage; 197 entity.AfterImage = input.AfterImage;
189 entity.Remark = input.Remark; 198 entity.Remark = input.Remark;
  199 + entity.KjbRemark = input.KjbRemark;
190 entity.UpdateTime = DateTime.Now; 200 entity.UpdateTime = DateTime.Now;
  201 + entity.MemberId = consumeRecord.Hy;
191 await _db.Updateable(entity).ExecuteCommandAsync(); 202 await _db.Updateable(entity).ExecuteCommandAsync();
192 return entity.Adapt<LqXhFeedbackInfoOutput>(); 203 return entity.Adapt<LqXhFeedbackInfoOutput>();
193 } 204 }
@@ -272,9 +283,11 @@ namespace NCC.Extend @@ -272,9 +283,11 @@ namespace NCC.Extend
272 { 283 {
273 id = it.Id, 284 id = it.Id,
274 consumeId = it.ConsumeId, 285 consumeId = it.ConsumeId,
  286 + memberId = it.MemberId,
275 beforeImage = it.BeforeImage, 287 beforeImage = it.BeforeImage,
276 afterImage = it.AfterImage, 288 afterImage = it.AfterImage,
277 remark = it.Remark, 289 remark = it.Remark,
  290 + kjbRemark = it.KjbRemark,
278 createUser = it.CreateUser, 291 createUser = it.CreateUser,
279 createUserName = SqlFunc.Subqueryable<UserEntity>().Where(x => x.Id == it.CreateUser).Select(x => x.RealName), 292 createUserName = SqlFunc.Subqueryable<UserEntity>().Where(x => x.Id == it.CreateUser).Select(x => x.RealName),
280 createTime = it.CreateTime, 293 createTime = it.CreateTime,