diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkMx/LqHytkMxCrInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkMx/LqHytkMxCrInput.cs
index e7c406d..fa154b4 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkMx/LqHytkMxCrInput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkMx/LqHytkMxCrInput.cs
@@ -48,7 +48,7 @@ namespace NCC.Extend.Entitys.Dto.LqHytkMx
///
/// 项目次数
///
- public int? F_ProjectNumber { get; set; }
+ public decimal? F_ProjectNumber { get; set; }
///
/// 是否有效
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkMx/LqHytkMxInfoOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkMx/LqHytkMxInfoOutput.cs
index 623329e..85d67ad 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkMx/LqHytkMxInfoOutput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkMx/LqHytkMxInfoOutput.cs
@@ -48,7 +48,7 @@ namespace NCC.Extend.Entitys.Dto.LqHytkMx
///
/// 项目次数
///
- public int projectNumber { get; set; }
+ public decimal projectNumber { get; set; }
///
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkMx/LqHytkMxUpInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkMx/LqHytkMxUpInput.cs
index a23fc9e..d2fd158 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkMx/LqHytkMxUpInput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkMx/LqHytkMxUpInput.cs
@@ -40,7 +40,7 @@ namespace NCC.Extend.Entitys.Dto.LqHytkMx
///
/// 项目次数
///
- public int? F_ProjectNumber { get; set; }
+ public decimal? F_ProjectNumber { get; set; }
///
/// 是否有效
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkCrInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkCrInput.cs
index 215d6c4..ac326d5 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkCrInput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkCrInput.cs
@@ -80,6 +80,16 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk
public string signatureFile { get; set; }
///
+ /// 加班系数(NULL或0表示非加班单,大于0表示加班单,如 0.5、1、1.5)
+ ///
+ public decimal? overtimeCoefficient { get; set; }
+
+ ///
+ /// 原始手工费(用户输入的原始值)
+ ///
+ public decimal? originalSgfy { get; set; }
+
+ ///
/// 耗卡_品项明细
///
public List lqXhPxmxList { get; set; }
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkInfoOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkInfoOutput.cs
index d1ccbc2..db77441 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkInfoOutput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkInfoOutput.cs
@@ -112,6 +112,21 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk
public string cancelRemark { get; set; }
///
+ /// 加班系数(NULL或0表示非加班单,大于0表示加班单,如 0.5、1、1.5)
+ ///
+ public decimal? overtimeCoefficient { get; set; }
+
+ ///
+ /// 原始手工费(用户输入的原始值)
+ ///
+ public decimal? originalSgfy { get; set; }
+
+ ///
+ /// 加班手工费(加班计算后的增量值)
+ ///
+ public decimal? overtimeSgfy { get; set; }
+
+ ///
/// 健康师业绩
///
public List lqXhJksyjList { get; set; }
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkListOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkListOutput.cs
index 6c8a987..5d67139 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkListOutput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkListOutput.cs
@@ -95,5 +95,20 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk
///
public int isEffective { get; set; }
+ ///
+ /// 加班系数(NULL或0表示非加班单,大于0表示加班单,如 0.5、1、1.5)
+ ///
+ public decimal? overtimeCoefficient { get; set; }
+
+ ///
+ /// 原始手工费(用户输入的原始值)
+ ///
+ public decimal? originalSgfy { get; set; }
+
+ ///
+ /// 加班手工费(加班计算后的增量值)
+ ///
+ public decimal? overtimeSgfy { get; set; }
+
}
}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkMemberCardUsageOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkMemberCardUsageOutput.cs
index 8b2a0f4..2e3dad5 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkMemberCardUsageOutput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkMemberCardUsageOutput.cs
@@ -87,7 +87,7 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk
///
/// 项目次数
///
- public int? ProjectNumber { get; set; }
+ public decimal? ProjectNumber { get; set; }
///
/// 合计金额
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhJksyj/LqXhJksyjInfoOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhJksyj/LqXhJksyjInfoOutput.cs
index c696d88..01585dc 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhJksyj/LqXhJksyjInfoOutput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhJksyj/LqXhJksyjInfoOutput.cs
@@ -68,6 +68,26 @@ namespace NCC.Extend.Entitys.Dto.LqXhJksyj
public decimal? kdpxNumber { get; set; }
///
+ /// 原始耗卡品项次数(原始值)
+ ///
+ public decimal? originalKdpxNumber { get; set; }
+
+ ///
+ /// 加班耗卡品项次数(加班计算后的增量值)
+ ///
+ public decimal? overtimeKdpxNumber { get; set; }
+
+ ///
+ /// 原始手工费(原始值)
+ ///
+ public decimal? originalLaborCost { get; set; }
+
+ ///
+ /// 加班手工费(加班计算后的增量值)
+ ///
+ public decimal? overtimeLaborCost { get; set; }
+
+ ///
/// 会员id
///
public string memberId { get; set; }
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhKjbsyj/LqXhKjbsyjInfoOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhKjbsyj/LqXhKjbsyjInfoOutput.cs
index 9aff454..b510e2c 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhKjbsyj/LqXhKjbsyjInfoOutput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhKjbsyj/LqXhKjbsyjInfoOutput.cs
@@ -56,5 +56,25 @@ namespace NCC.Extend.Entitys.Dto.LqXhKjbsyj
/// 耗卡品相次数
///
public decimal? hdpxNumber { get; set; }
+
+ ///
+ /// 原始耗卡品相次数(原始值)
+ ///
+ public decimal? originalHdpxNumber { get; set; }
+
+ ///
+ /// 加班耗卡品相次数(加班计算后的增量值)
+ ///
+ public decimal? overtimeHdpxNumber { get; set; }
+
+ ///
+ /// 原始手工费(原始值)
+ ///
+ public decimal? originalLaborCost { get; set; }
+
+ ///
+ /// 加班手工费(加班计算后的增量值)
+ ///
+ public decimal? overtimeLaborCost { get; set; }
}
}
\ No newline at end of file
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhPxmx/LqXhPxmxCrInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhPxmx/LqXhPxmxCrInput.cs
index 5165762..3b55700 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhPxmx/LqXhPxmxCrInput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhPxmx/LqXhPxmxCrInput.cs
@@ -46,7 +46,7 @@ namespace NCC.Extend.Entitys.Dto.LqXhPxmx
///
/// 项目次数
///
- public int? projectNumber { get; set; }
+ public decimal? projectNumber { get; set; }
///
/// 是否有效
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhPxmx/LqXhPxmxInfoOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhPxmx/LqXhPxmxInfoOutput.cs
index a8e38cb..a5b37f5 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhPxmx/LqXhPxmxInfoOutput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhPxmx/LqXhPxmxInfoOutput.cs
@@ -53,7 +53,17 @@ namespace NCC.Extend.Entitys.Dto.LqXhPxmx
///
/// 项目次数
///
- public int? projectNumber { get; set; }
+ public decimal? projectNumber { get; set; }
+
+ ///
+ /// 原始项目次数(用户输入的原始值)
+ ///
+ public decimal? originalProjectNumber { get; set; }
+
+ ///
+ /// 加班项目次数(加班计算后的增量值)
+ ///
+ public decimal? overtimeProjectNumber { get; set; }
///
/// 来源类型(开卡/赠送/其他)
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhPxmx/LqXhPxmxUpInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhPxmx/LqXhPxmxUpInput.cs
index eef2a87..5374891 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhPxmx/LqXhPxmxUpInput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhPxmx/LqXhPxmxUpInput.cs
@@ -51,7 +51,7 @@ namespace NCC.Extend.Entitys.Dto.LqXhPxmx
///
/// 项目次数
///
- public int? projectNumber { get; set; }
+ public decimal? projectNumber { get; set; }
///
/// 是否有效
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXmzl/LqXmzlStatisticsOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXmzl/LqXmzlStatisticsOutput.cs
index 58f52d6..86cfd82 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXmzl/LqXmzlStatisticsOutput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXmzl/LqXmzlStatisticsOutput.cs
@@ -65,17 +65,17 @@ namespace NCC.Extend.Entitys.Dto.LqXmzl
///
/// 消耗购买次数
///
- public int ConsumePurchaseCount { get; set; }
+ public decimal ConsumePurchaseCount { get; set; }
///
/// 消耗赠送次数
///
- public int ConsumeGiftCount { get; set; }
+ public decimal ConsumeGiftCount { get; set; }
///
/// 消耗体验次数
///
- public int ConsumeExperienceCount { get; set; }
+ public decimal ConsumeExperienceCount { get; set; }
///
/// 退卡业绩
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_hytk_mx/LqHytkMxEntity.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_hytk_mx/LqHytkMxEntity.cs
index 8786f9b..75272ee 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_hytk_mx/LqHytkMxEntity.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_hytk_mx/LqHytkMxEntity.cs
@@ -71,7 +71,7 @@ namespace NCC.Extend.Entitys.lq_hytk_mx
/// 项目次数
///
[SugarColumn(ColumnName = "F_ProjectNumber")]
- public int ProjectNumber { get; set; }
+ public decimal ProjectNumber { get; set; }
///
/// 来源类型
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xh_hyhk/LqXhHyhkEntity.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xh_hyhk/LqXhHyhkEntity.cs
index 5a91782..8c5ab50 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xh_hyhk/LqXhHyhkEntity.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xh_hyhk/LqXhHyhkEntity.cs
@@ -126,5 +126,23 @@ namespace NCC.Extend.Entitys.lq_xh_hyhk
///
[SugarColumn(ColumnName = "F_CancelRemark")]
public string CancelRemark { get; set; }
+
+ ///
+ /// 加班系数(NULL或0表示非加班单,大于0表示加班单,如 0.5、1、1.5)
+ ///
+ [SugarColumn(ColumnName = "F_OvertimeCoefficient")]
+ public decimal? OvertimeCoefficient { get; set; }
+
+ ///
+ /// 原始手工费(用户输入的原始值)
+ ///
+ [SugarColumn(ColumnName = "F_OriginalSgfy")]
+ public decimal? OriginalSgfy { get; set; }
+
+ ///
+ /// 加班手工费(加班计算后的增量值)
+ ///
+ [SugarColumn(ColumnName = "F_OvertimeSgfy")]
+ public decimal? OvertimeSgfy { get; set; }
}
}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xh_jksyj/LqXhJksyjEntity.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xh_jksyj/LqXhJksyjEntity.cs
index 83c7d63..18c409f 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xh_jksyj/LqXhJksyjEntity.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xh_jksyj/LqXhJksyjEntity.cs
@@ -78,6 +78,30 @@ namespace NCC.Extend.Entitys.lq_xh_jksyj
public decimal? KdpxNumber { get; set; }
///
+ /// 原始耗卡品项次数(原始值)
+ ///
+ [SugarColumn(ColumnName = "F_OriginalKdpxNumber")]
+ public decimal? OriginalKdpxNumber { get; set; }
+
+ ///
+ /// 加班耗卡品项次数(加班计算后的增量值)
+ ///
+ [SugarColumn(ColumnName = "F_OvertimeKdpxNumber")]
+ public decimal? OvertimeKdpxNumber { get; set; }
+
+ ///
+ /// 原始手工费(原始值)
+ ///
+ [SugarColumn(ColumnName = "F_OriginalLaborCost")]
+ public decimal? OriginalLaborCost { get; set; }
+
+ ///
+ /// 加班手工费(加班计算后的增量值)
+ ///
+ [SugarColumn(ColumnName = "F_OvertimeLaborCost")]
+ public decimal? OvertimeLaborCost { get; set; }
+
+ ///
/// 是否有效
///
[SugarColumn(ColumnName = "F_IsEffective")]
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xh_kjbsyj/LqXhKjbsyjEntity.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xh_kjbsyj/LqXhKjbsyjEntity.cs
index cb973bd..06c074d 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xh_kjbsyj/LqXhKjbsyjEntity.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xh_kjbsyj/LqXhKjbsyjEntity.cs
@@ -72,6 +72,30 @@ namespace NCC.Extend.Entitys.lq_xh_kjbsyj
public decimal? HdpxNumber { get; set; }
///
+ /// 原始耗卡品相次数(原始值)
+ ///
+ [SugarColumn(ColumnName = "F_OriginalHdpxNumber")]
+ public decimal? OriginalHdpxNumber { get; set; }
+
+ ///
+ /// 加班耗卡品相次数(加班计算后的增量值)
+ ///
+ [SugarColumn(ColumnName = "F_OvertimeHdpxNumber")]
+ public decimal? OvertimeHdpxNumber { get; set; }
+
+ ///
+ /// 原始手工费(原始值)
+ ///
+ [SugarColumn(ColumnName = "F_OriginalLaborCost")]
+ public decimal? OriginalLaborCost { get; set; }
+
+ ///
+ /// 加班手工费(加班计算后的增量值)
+ ///
+ [SugarColumn(ColumnName = "F_OvertimeLaborCost")]
+ public decimal? OvertimeLaborCost { get; set; }
+
+ ///
/// 是否有效
///
[SugarColumn(ColumnName = "F_IsEffective")]
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xh_pxmx/LqXhPxmxEntity.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xh_pxmx/LqXhPxmxEntity.cs
index 1938185..23810eb 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xh_pxmx/LqXhPxmxEntity.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xh_pxmx/LqXhPxmxEntity.cs
@@ -63,7 +63,19 @@ namespace NCC.Extend.Entitys.lq_xh_pxmx
/// 项目次数
///
[SugarColumn(ColumnName = "F_ProjectNumber")]
- public int ProjectNumber { get; set; }
+ public decimal ProjectNumber { get; set; }
+
+ ///
+ /// 原始项目次数(用户输入的原始值)
+ ///
+ [SugarColumn(ColumnName = "F_OriginalProjectNumber")]
+ public decimal? OriginalProjectNumber { get; set; }
+
+ ///
+ /// 加班项目次数(加班计算后的增量值)
+ ///
+ [SugarColumn(ColumnName = "F_OvertimeProjectNumber")]
+ public decimal? OvertimeProjectNumber { get; set; }
///
/// 来源类型
diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqMdxxService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqMdxxService.cs
index 2ebf5f9..ab17b91 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend/LqMdxxService.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend/LqMdxxService.cs
@@ -346,7 +346,7 @@ namespace NCC.Extend.LqMdxx
var entity = await _db.Queryable().FirstAsync(p => p.Id == id);
_ = entity ?? throw NCCException.Oh(ErrorCode.COM1005);
//直接修改status为0
- entity.Status = StatusEnum.删除.GetHashCode();
+ entity.Status = StatusEnum.无效.GetHashCode();
var isOk = await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1001);
}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqXhHyhkService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqXhHyhkService.cs
index 56bbc87..e54f94c 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend/LqXhHyhkService.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend/LqXhHyhkService.cs
@@ -305,6 +305,7 @@ namespace NCC.Extend.LqXhHyhk
public async Task Create([FromBody] LqXhHyhkCrInput input)
{
var userInfo = await _userManager.GetUserInfo();
+ //首先判断当前时间是否是加班时间
var entity = input.Adapt();
entity.Id = YitIdHelper.NextId().ToString();
entity.Czry = _userManager.UserId;
@@ -312,6 +313,15 @@ namespace NCC.Extend.LqXhHyhk
entity.CreateTime = DateTime.Now;
entity.IsEffective = StatusEnum.有效.GetHashCode();
entity.UpdateTime = DateTime.Now;
+ entity.OvertimeCoefficient = input.overtimeCoefficient ?? 0;
+ entity.OriginalSgfy = entity.Sgfy;
+ if (entity.OvertimeCoefficient > 0)
+ {
+ //加班手工费 = 原始手工费 * 加班系数
+ entity.OvertimeSgfy = entity.OriginalSgfy * entity.OvertimeCoefficient;
+ //最终手工费 = 原始手工费 + 加班手工费
+ entity.Sgfy = entity.OriginalSgfy + entity.OvertimeSgfy;
+ }
try
{
// 开启事务
diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqXmzlService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqXmzlService.cs
index 3f157f9..685d428 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend/LqXmzlService.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend/LqXmzlService.cs
@@ -498,7 +498,6 @@ namespace NCC.Extend.LqXmzl
RefundAmount = refundData?.RefundAmount ?? 0,
RefundCount = refundData?.RefundCount ?? 0
};
-
result.Add(output);
}
@@ -691,9 +690,9 @@ namespace NCC.Extend.LqXmzl
{
public string ItemId { get; set; }
public decimal ConsumeAmount { get; set; }
- public int ConsumePurchaseCount { get; set; }
- public int ConsumeGiftCount { get; set; }
- public int ConsumeExperienceCount { get; set; }
+ public decimal ConsumePurchaseCount { get; set; }
+ public decimal ConsumeGiftCount { get; set; }
+ public decimal ConsumeExperienceCount { get; set; }
}
///
diff --git a/消耗功能加班需求分析.md b/消耗功能加班需求分析.md
new file mode 100644
index 0000000..057ac9b
--- /dev/null
+++ b/消耗功能加班需求分析.md
@@ -0,0 +1,209 @@
+# 消耗功能加班需求分析与设计方案
+
+## 一、需求分析
+
+### 核心需求
+1. **加班标识**:标识消耗单是否是加班单
+2. **加班系数**:记录加班系数(如 0.5、1、1.5 等)
+3. **数据计算**:消耗单的项目数和手工费需要加上对应的系数
+4. **数据保留**:保留原始数据、加班数据、最终数据
+
+### 影响范围
+- **项目数**:影响 `lq_xh_pxmx.F_ProjectNumber`(品项明细项目次数)
+- **手工费**:影响 `lq_xh_hyhk.sgfy`(耗卡主表手工费用)和 `lq_xh_jksyj.F_LaborCost`(健康师业绩手工费)、`lq_xh_kjbsyj.F_LaborCost`(科技部老师业绩手工费)
+
+## 二、当前表结构分析
+
+### 1. lq_xh_hyhk(耗卡主表)
+- `xfje` - 消费金额(decimal)
+- `sgfy` - 手工费用(decimal)**← 需要记录原始值、加班计算值、最终值**
+- `hksj` - 耗卡时间
+
+### 2. lq_xh_pxmx(耗卡品项明细表)
+- `F_ProjectNumber` - 项目次数(int)**← 需要记录原始值、加班计算值、最终值**
+- `F_TotalPrice` - 合计金额(decimal)
+- `pxjg` - 品项价格(decimal)
+
+### 3. lq_xh_jksyj(耗卡健康师业绩表)
+- `F_kdpxNumber` - 耗卡品项次数(decimal)**← 需要记录原始值、加班计算值、最终值**
+- `F_LaborCost` - 手工费(decimal)**← 需要记录原始值、加班计算值、最终值**
+- `jksyj` - 健康师业绩(decimal)
+
+### 4. lq_xh_kjbsyj(耗卡科技部老师业绩表)
+- `F_hdpxNumber` - 耗卡品相次数(decimal)**← 需要记录原始值、加班计算值、最终值**
+- `F_LaborCost` - 手工费(decimal)**← 需要记录原始值、加班计算值、最终值**
+- `kjblsyj` - 科技部老师业绩(decimal)
+
+## 三、设计方案
+
+### 方案概述
+采用 **主表标识 + 明细表计算** 的设计模式:
+- 加班标识和加班系数存储在 **耗卡主表**(`lq_xh_hyhk`)
+- 原始数据、加班计算后的数据、最终数据分别存储在相关表中
+
+### 字段设计
+
+#### 3.1 lq_xh_hyhk(耗卡主表)- 新增字段
+```
+F_OvertimeCoefficient DECIMAL(18,2) 加班系数(NULL或0表示非加班单,大于0表示加班单,如 0.5、1、1.5)
+F_OriginalSgfy DECIMAL(18,2) 原始手工费(用户输入的原始值)
+F_OvertimeSgfy DECIMAL(18,2) 加班手工费(加班计算后的增量值)
+```
+
+**说明:**
+- `F_OvertimeCoefficient` 存储加班系数,用于判断是否为加班单:
+ - `NULL` 或 `0` → 非加班单
+ - 大于 `0`(如 0.5、1、1.5)→ 加班单,系数值表示加倍的倍数
+- `F_OriginalSgfy` 存储用户输入的原始手工费
+- `F_OvertimeSgfy = F_OriginalSgfy * F_OvertimeCoefficient`(加班计算后的增量,仅当系数大于0时计算)
+- `sgfy`(最终手工费)= `F_OriginalSgfy + F_OvertimeSgfy`(原始值 + 加班增量)
+
+#### 3.2 lq_xh_pxmx(耗卡品项明细表)- 新增字段
+```
+F_OriginalProjectNumber INT 原始项目次数(用户输入的原始值)
+F_OvertimeProjectNumber DECIMAL(18,2) 加班项目次数(加班计算后的增量值)
+```
+
+**说明:**
+- `F_OriginalProjectNumber` 存储用户输入的原始项目次数
+- `F_OvertimeProjectNumber = F_OriginalProjectNumber * F_OvertimeCoefficient`(从主表获取系数计算)
+- `F_ProjectNumber`(最终项目次数)= `F_OriginalProjectNumber + F_OvertimeProjectNumber`(原始值 + 加班增量)
+
+#### 3.3 lq_xh_jksyj(耗卡健康师业绩表)- 新增字段
+```
+F_OriginalKdpxNumber DECIMAL(18,2) 原始耗卡品项次数(原始值)
+F_OvertimeKdpxNumber DECIMAL(18,2) 加班耗卡品项次数(加班计算后的增量值)
+F_OriginalLaborCost DECIMAL(18,2) 原始手工费(原始值)
+F_OvertimeLaborCost DECIMAL(18,2) 加班手工费(加班计算后的增量值)
+```
+
+**说明:**
+- `F_OriginalKdpxNumber` 存储原始耗卡品项次数
+- `F_OvertimeKdpxNumber = F_OriginalKdpxNumber * F_OvertimeCoefficient`(从主表获取系数计算)
+- `F_kdpxNumber`(最终耗卡品项次数)= `F_OriginalKdpxNumber + F_OvertimeKdpxNumber`
+- `F_OriginalLaborCost` 存储原始手工费
+- `F_OvertimeLaborCost = F_OriginalLaborCost * F_OvertimeCoefficient`(从主表获取系数计算)
+- `F_LaborCost`(最终手工费)= `F_OriginalLaborCost + F_OvertimeLaborCost`
+
+#### 3.4 lq_xh_kjbsyj(耗卡科技部老师业绩表)- 新增字段
+```
+F_OriginalHdpxNumber DECIMAL(18,2) 原始耗卡品相次数(原始值)
+F_OvertimeHdpxNumber DECIMAL(18,2) 加班耗卡品相次数(加班计算后的增量值)
+F_OriginalLaborCost DECIMAL(18,2) 原始手工费(原始值)
+F_OvertimeLaborCost DECIMAL(18,2) 加班手工费(加班计算后的增量值)
+```
+
+**说明:**
+- `F_OriginalHdpxNumber` 存储原始耗卡品相次数
+- `F_OvertimeHdpxNumber = F_OriginalHdpxNumber * F_OvertimeCoefficient`(从主表获取系数计算)
+- `F_hdpxNumber`(最终耗卡品相次数)= `F_OriginalHdpxNumber + F_OvertimeHdpxNumber`
+- `F_OriginalLaborCost` 存储原始手工费
+- `F_OvertimeLaborCost = F_OriginalLaborCost * F_OvertimeCoefficient`(从主表获取系数计算)
+- `F_LaborCost`(最终手工费)= `F_OriginalLaborCost + F_OvertimeLaborCost`
+
+## 四、数据计算逻辑
+
+### 4.1 创建消耗单时的计算流程
+
+**前提条件:**
+- 如果用户输入加班系数(`F_OvertimeCoefficient`),且值大于 0,则视为加班单
+- 加班系数可以为 `NULL`、`0`(非加班单)或大于 `0` 的值(如 0.5、1、1.5)
+
+**计算步骤:**
+
+1. **耗卡主表(lq_xh_hyhk)**
+ ```
+ 原始手工费(F_OriginalSgfy)= 用户输入的手工费
+ 加班手工费(F_OvertimeSgfy)= F_OriginalSgfy * F_OvertimeCoefficient(如果 F_OvertimeCoefficient > 0)
+ 最终手工费(sgfy)= F_OriginalSgfy + F_OvertimeSgfy
+ ```
+
+2. **耗卡品项明细表(lq_xh_pxmx)**
+ ```
+ 原始项目次数(F_OriginalProjectNumber)= 用户输入的项目次数
+ 加班项目次数(F_OvertimeProjectNumber)= F_OriginalProjectNumber * F_OvertimeCoefficient(如果 F_OvertimeCoefficient > 0)
+ 最终项目次数(F_ProjectNumber)= F_OriginalProjectNumber + F_OvertimeProjectNumber
+ ```
+
+3. **健康师业绩表(lq_xh_jksyj)**
+ ```
+ 原始耗卡品项次数(F_OriginalKdpxNumber)= 原始项目次数
+ 加班耗卡品项次数(F_OvertimeKdpxNumber)= F_OriginalKdpxNumber * F_OvertimeCoefficient(如果 F_OvertimeCoefficient > 0)
+ 最终耗卡品项次数(F_kdpxNumber)= F_OriginalKdpxNumber + F_OvertimeKdpxNumber
+
+ 原始手工费(F_OriginalLaborCost)= 该健康师的原始手工费
+ 加班手工费(F_OvertimeLaborCost)= F_OriginalLaborCost * F_OvertimeCoefficient(如果 F_OvertimeCoefficient > 0)
+ 最终手工费(F_LaborCost)= F_OriginalLaborCost + F_OvertimeLaborCost
+ ```
+
+4. **科技部老师业绩表(lq_xh_kjbsyj)**
+ ```
+ 原始耗卡品相次数(F_OriginalHdpxNumber)= 原始项目次数
+ 加班耗卡品相次数(F_OvertimeHdpxNumber)= F_OriginalHdpxNumber * F_OvertimeCoefficient(如果 F_OvertimeCoefficient > 0)
+ 最终耗卡品相次数(F_hdpxNumber)= F_OriginalHdpxNumber + F_OvertimeHdpxNumber
+
+ 原始手工费(F_OriginalLaborCost)= 该科技部老师的原始手工费
+ 加班手工费(F_OvertimeLaborCost)= F_OriginalLaborCost * F_OvertimeCoefficient(如果 F_OvertimeCoefficient > 0)
+ 最终手工费(F_LaborCost)= F_OriginalLaborCost + F_OvertimeLaborCost
+ ```
+
+### 4.2 特殊情况处理
+
+- **非加班单(F_OvertimeCoefficient IS NULL 或 F_OvertimeCoefficient = 0)**:
+ - 所有加班字段(`F_Overtime*`)都等于 `0` 或 `NULL`
+ - 最终值 = 原始值
+
+- **加班系数为 0**:
+ - 加班增量 = 0,最终值 = 原始值(等同于非加班单)
+
+- **加班系数为 NULL**:
+ - 视为非加班单,不进行任何加班计算
+
+## 五、数据查询与展示
+
+### 5.1 查询时展示的数据
+- **原始数据**:所有 `F_Original*` 字段
+- **加班数据**:所有 `F_Overtime*` 字段 + `F_OvertimeCoefficient`
+- **最终数据**:所有最终字段(`sgfy`、`F_ProjectNumber`、`F_kdpxNumber`、`F_LaborCost` 等)
+
+### 5.2 统计计算
+- 统计时可以分别统计:
+ - 原始数据总和
+ - 加班数据总和(筛选条件:`F_OvertimeCoefficient > 0`)
+ - 最终数据总和
+- 查询加班单:`WHERE F_OvertimeCoefficient > 0`
+- 查询非加班单:`WHERE F_OvertimeCoefficient IS NULL OR F_OvertimeCoefficient = 0`
+
+## 六、实施建议
+
+### 6.1 数据库变更
+1. 执行 SQL 脚本添加所有新字段
+2. 为现有数据设置默认值:
+ - `F_OvertimeCoefficient = NULL`(所有现有数据默认为非加班)
+ - `F_OriginalSgfy = sgfy`(现有手工费作为原始值)
+ - `F_OvertimeSgfy = 0`(现有数据无加班增量)
+ - 类似处理其他原始值字段
+
+### 6.2 代码变更
+1. **实体类(Entity)**:添加所有新字段属性
+2. **DTO 类**:
+ - `LqXhHyhkCrInput` - 添加 `F_OvertimeCoefficient`(加班系数)输入字段
+ - `LqXhHyhkInfoOutput` - 添加加班相关输出字段(系数、原始值、加班值)
+ - `LqXhPxmxInfoOutput` - 添加加班相关输出字段(原始值、加班值)
+ - `LqXhJksyjInfoOutput` - 添加加班相关输出字段(原始值、加班值)
+ - `LqXhKjbsyjInfoOutput` - 添加加班相关输出字段(原始值、加班值)
+3. **Service 层**:
+ - `Create` 方法:添加加班计算逻辑
+ - `Update` 方法:添加加班计算逻辑
+ - `GetInfo` 方法:返回加班相关字段
+
+## 七、总结
+
+本设计方案实现了:
+✅ **原始数据保留**:所有原始值存储在 `F_Original*` 字段
+✅ **加班数据保留**:所有加班计算值存储在 `F_Overtime*` 字段
+✅ **最终数据展示**:最终值 = 原始值 + 加班增量
+✅ **数据可追溯**:可以查看任意时刻的原始值、加班值、最终值
+✅ **灵活扩展**:加班系数可配置,支持不同场景(0.5、1、1.5 等)
+✅ **简化设计**:通过 `F_OvertimeCoefficient` 一个字段即可判断是否为加班单(NULL/0=非加班,>0=加班)
+
diff --git a/添加消耗功能加班字段.sql b/添加消耗功能加班字段.sql
new file mode 100644
index 0000000..d692243
--- /dev/null
+++ b/添加消耗功能加班字段.sql
@@ -0,0 +1,102 @@
+-- ============================================
+-- 为消耗功能添加加班相关字段
+-- ============================================
+-- 说明:此脚本为消耗功能添加加班标识、加班系数以及原始值、加班值、最终值的字段
+-- 执行顺序:按照表的主从关系依次执行
+
+-- ============================================
+-- 1. lq_xh_hyhk(耗卡主表) - 添加加班相关字段
+-- ============================================
+-- 说明:F_OvertimeCoefficient 为 NULL 或 0 表示非加班单,大于 0 表示加班单
+ALTER TABLE lq_xh_hyhk
+ADD COLUMN F_OvertimeCoefficient DECIMAL(18,2) NULL DEFAULT NULL COMMENT '加班系数(NULL或0表示非加班单,大于0表示加班单,如 0.5、1、1.5)' AFTER F_CancelRemark,
+ADD COLUMN F_OriginalSgfy DECIMAL(18,2) NULL COMMENT '原始手工费(用户输入的原始值)' AFTER F_OvertimeCoefficient,
+ADD COLUMN F_OvertimeSgfy DECIMAL(18,2) NULL DEFAULT 0 COMMENT '加班手工费(加班计算后的增量值)' AFTER F_OriginalSgfy;
+
+-- 为现有数据设置默认值
+UPDATE lq_xh_hyhk
+SET F_OvertimeCoefficient = NULL,
+ F_OriginalSgfy = COALESCE(sgfy, 0),
+ F_OvertimeSgfy = 0
+WHERE F_OvertimeCoefficient IS NULL;
+
+-- ============================================
+-- 2. lq_xh_pxmx(耗卡品项明细表) - 添加加班相关字段
+-- ============================================
+ALTER TABLE lq_xh_pxmx
+ADD COLUMN F_OriginalProjectNumber DECIMAL(18,2) NULL COMMENT '原始项目次数(用户输入的原始值)' AFTER F_ProjectNumber,
+ADD COLUMN F_OvertimeProjectNumber DECIMAL(18,2) NULL DEFAULT 0 COMMENT '加班项目次数(加班计算后的增量值)' AFTER F_OriginalProjectNumber;
+
+-- 为现有数据设置默认值
+UPDATE lq_xh_pxmx
+SET F_OriginalProjectNumber = COALESCE(F_ProjectNumber, 0),
+ F_OvertimeProjectNumber = 0
+WHERE F_OriginalProjectNumber IS NULL;
+
+-- ============================================
+-- 3. lq_xh_jksyj(耗卡健康师业绩表) - 添加加班相关字段
+-- ============================================
+ALTER TABLE lq_xh_jksyj
+ADD COLUMN F_OriginalKdpxNumber DECIMAL(18,2) NULL COMMENT '原始耗卡品项次数(原始值)' AFTER F_kdpxNumber,
+ADD COLUMN F_OvertimeKdpxNumber DECIMAL(18,2) NULL DEFAULT 0 COMMENT '加班耗卡品项次数(加班计算后的增量值)' AFTER F_OriginalKdpxNumber,
+ADD COLUMN F_OriginalLaborCost DECIMAL(18,2) NULL COMMENT '原始手工费(原始值)' AFTER F_LaborCost,
+ADD COLUMN F_OvertimeLaborCost DECIMAL(18,2) NULL DEFAULT 0 COMMENT '加班手工费(加班计算后的增量值)' AFTER F_OriginalLaborCost;
+
+-- 为现有数据设置默认值
+UPDATE lq_xh_jksyj
+SET F_OriginalKdpxNumber = COALESCE(F_kdpxNumber, 0),
+ F_OvertimeKdpxNumber = 0,
+ F_OriginalLaborCost = COALESCE(F_LaborCost, 0),
+ F_OvertimeLaborCost = 0
+WHERE F_OriginalKdpxNumber IS NULL;
+
+-- ============================================
+-- 4. lq_xh_kjbsyj(耗卡科技部老师业绩表) - 添加加班相关字段
+-- ============================================
+ALTER TABLE lq_xh_kjbsyj
+ADD COLUMN F_OriginalHdpxNumber DECIMAL(18,2) NULL COMMENT '原始耗卡品相次数(原始值)' AFTER F_hdpxNumber,
+ADD COLUMN F_OvertimeHdpxNumber DECIMAL(18,2) NULL DEFAULT 0 COMMENT '加班耗卡品相次数(加班计算后的增量值)' AFTER F_OriginalHdpxNumber,
+ADD COLUMN F_OriginalLaborCost DECIMAL(18,2) NULL COMMENT '原始手工费(原始值)' AFTER F_LaborCost,
+ADD COLUMN F_OvertimeLaborCost DECIMAL(18,2) NULL DEFAULT 0 COMMENT '加班手工费(加班计算后的增量值)' AFTER F_OriginalLaborCost;
+
+-- 为现有数据设置默认值
+UPDATE lq_xh_kjbsyj
+SET F_OriginalHdpxNumber = COALESCE(F_hdpxNumber, 0),
+ F_OvertimeHdpxNumber = 0,
+ F_OriginalLaborCost = COALESCE(F_LaborCost, 0),
+ F_OvertimeLaborCost = 0
+WHERE F_OriginalHdpxNumber IS NULL;
+
+-- ============================================
+-- 5. 创建索引(可选,用于优化查询)
+-- ============================================
+-- 为加班系数创建索引,方便查询加班单(系数大于0的记录)
+CREATE INDEX idx_xh_hyhk_overtime_coefficient ON lq_xh_hyhk(F_OvertimeCoefficient);
+
+-- ============================================
+-- 6. 验证字段创建
+-- ============================================
+-- 验证 lq_xh_hyhk 表
+-- SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT, COLUMN_COMMENT
+-- FROM INFORMATION_SCHEMA.COLUMNS
+-- WHERE TABLE_NAME = 'lq_xh_hyhk'
+-- AND (COLUMN_NAME LIKE 'F_%Overtime%' OR COLUMN_NAME LIKE 'F_Original%');
+
+-- 验证 lq_xh_pxmx 表
+-- SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT, COLUMN_COMMENT
+-- FROM INFORMATION_SCHEMA.COLUMNS
+-- WHERE TABLE_NAME = 'lq_xh_pxmx'
+-- AND (COLUMN_NAME LIKE 'F_%Overtime%' OR COLUMN_NAME LIKE 'F_Original%');
+
+-- 验证 lq_xh_jksyj 表
+-- SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT, COLUMN_COMMENT
+-- FROM INFORMATION_SCHEMA.COLUMNS
+-- WHERE TABLE_NAME = 'lq_xh_jksyj'
+-- AND (COLUMN_NAME LIKE 'F_%Overtime%' OR COLUMN_NAME LIKE 'F_Original%');
+
+-- 验证 lq_xh_kjbsyj 表
+-- SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT, COLUMN_COMMENT
+-- FROM INFORMATION_SCHEMA.COLUMNS
+-- WHERE TABLE_NAME = 'lq_xh_kjbsyj'
+-- AND (COLUMN_NAME LIKE 'F_%Overtime%' OR COLUMN_NAME LIKE 'F_Original%');
+