From f4a0b32daa9e021227707bcfb70b67738bd1b000 Mon Sep 17 00:00:00 2001
From: 移动系统liao <liaoxujun@qq.com>
Date: 星期五, 24 一月 2025 17:28:13 +0800
Subject: [PATCH] 修改报销部分逻辑
---
cylsg/cylsg.Application/CyOS/CyOSBaoXiaoCaiWuController.cs | 4
cylsg/cylsg.Model/ECTEModel/OaWorkPlan.cs | 9 ++
cylsg/cylsg.Application/CyOS/CyOSBaoXiaoJingLiController.cs | 17 +++++
cylsg/cylsg.Application/CyOS/CyOSBaoXiaoZHuGuanController.cs | 14 ++++
cylsg/cylsg.Model/ECTEModel/OaWorkPlanShenpi.cs | 17 +++++
cylsg/cylsg.redis/IEzCoreNetRedisService.cs | 5 +
cylsg/cylsg.Application/CyOS/CyOSStaffController.cs | 51 ++++++++++++----
cylsg/cylsg.Application/CyOS/CyOSSettingController.cs | 16 ++++
cylsg/cylsg.redis/EzCoreNetRedisService.cs | 16 +++++
9 files changed, 127 insertions(+), 22 deletions(-)
diff --git a/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoCaiWuController.cs b/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoCaiWuController.cs
index f839286..7b345c9 100644
--- a/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoCaiWuController.cs
+++ b/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoCaiWuController.cs
@@ -42,7 +42,7 @@
}
Expression<Func<OaWorkPlan, bool>> SearchList = (x) => true;
-
+ SearchList = SearchList.And(x => x.ApprovalStatus != PlanStatusType.Uncommitted);
//宸濆嵃宸ヤ綔鍗�
SearchList = SearchList.And(x => x.MemberId == _OAServices.firmId);
SearchList = SearchList.And(x => x.PlanType == 3);
@@ -158,7 +158,7 @@
try
{
data.EvaluationStatus = BaoxiaoStausType.Reimbursed;
- data.PlanContent = plan.PlanContent;
+ //data.PlanContent = plan.PlanContent;
data.LastUpdateTime = DateTime.Now;
await _SugarClient.Updateable(data).ExecuteCommandAsync();
diff --git a/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoJingLiController.cs b/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoJingLiController.cs
index c4aa2a1..a8e452b 100644
--- a/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoJingLiController.cs
+++ b/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoJingLiController.cs
@@ -1,5 +1,6 @@
锘縰sing cylsg.Model.ECTEModel;
using cylsg.Model.utilityViewModel;
+using cylsg.utility.Extend;
using ECTESTOA;
using Furion.LinqBuilder;
using Models;
@@ -42,6 +43,7 @@
Expression<Func<OaWorkPlan, bool>> SearchList = (x) => true;
//宸濆嵃宸ヤ綔鍗�
+ SearchList = SearchList.And(x => x.ApprovalStatus != PlanStatusType.Uncommitted);
SearchList = SearchList.And(x => x.MemberId == _OAServices.firmId);
SearchList = SearchList.And(x => x.PlanType == 3);
SearchList = SearchList.And(x => x.PlanDataType == 17);
@@ -135,6 +137,10 @@
throw Oops.Oh("娌℃湁鎵惧埌鎶ラ攢鍗�");
if ( data.ApprovalStatus != PlanStatusType.unApproval)
throw Oops.Oh("鎶ラ攢鍗曞凡缁忔壒澶嶅畬姣�");
+ if (data.ApprovalStatus == PlanStatusType.Uncommitted)
+ {
+ throw Oops.Oh("鎶ラ攢鍗曟湭鎻愪氦涓嶅彲瀹℃壒");
+ }
OaWorkPlanShenpi shenpi = data.OaWorkPlanShenpis.Where(x => x.ApprovalStaffId == Permissions.MemberId&&x.Buzhou==2).FirstOrDefault();
await _SugarClient.AsTenant().BeginTranAsync();
try
@@ -168,6 +174,17 @@
};
await _SugarClient.Insertable(shenpi).ExecuteCommandAsync();
}
+ if(!(param.RewardResult?.isPureNum()==true))
+ {
+ throw Oops.Oh("绉戠洰閫夋嫨閿欒");
+ }
+ //瀹℃壒鏃跺彲淇敼鍐呭
+ data.RewardResult = param.RewardResult;
+ data.PlanContent = param.PlanContent;
+ if(param.PlanMoney>0&¶m.PlanMoney<=data.PlanMoney)
+ data.PlanMoney = param.PlanMoney;
+
+
data.ApprovalTime = DateTime.Now;
data.ApprovalStatus = param.ApprovalStatus;
diff --git a/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoZHuGuanController.cs b/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoZHuGuanController.cs
index 6ec8bcd..39e60fe 100644
--- a/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoZHuGuanController.cs
+++ b/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoZHuGuanController.cs
@@ -41,6 +41,7 @@
Expression<Func<OaWorkPlan, bool>> SearchList = (x) => true;
//宸濆嵃宸ヤ綔鍗�
+ SearchList = SearchList.And(x => x.ApprovalStatus != PlanStatusType.Uncommitted);
SearchList = SearchList.And(x => x.MemberId == _OAServices.firmId);
SearchList = SearchList.And(x => x.PlanType == 3);
SearchList = SearchList.And(x => x.PlanDataType == 17);
@@ -168,6 +169,10 @@
throw Oops.Oh("娌℃湁鎵惧埌鎶ラ攢鍗�");
if (data.ApprovalStatus != null && data.ApprovalStatus != PlanStatusType.unApproval)
throw Oops.Oh("鎶ラ攢鍗曞凡缁忔壒澶嶅畬姣�");
+ if(data.ApprovalStatus== PlanStatusType.Uncommitted)
+ {
+ throw Oops.Oh("鎶ラ攢鍗曟湭鎻愪氦涓嶅彲瀹℃壒");
+ }
OaWorkPlanShenpi shenpi = data.OaWorkPlanShenpis.Where(x => x.ApprovalStaffId == Permissions.MemberId&&x.Buzhou==1).FirstOrDefault();
if (shenpi!=null)
{
@@ -178,7 +183,14 @@
}
else
{
- await _SugarClient.AsTenant().BeginTranAsync();
+
+
+ data.RewardResult = param.RewardResult;
+ data.PlanContent = param.PlanContent;
+ if (param.PlanMoney > 0 && param.PlanMoney <= data.PlanMoney)
+ data.PlanMoney = param.PlanMoney;
+
+ await _SugarClient.AsTenant().BeginTranAsync();
try
{
if (param.ApprovalStatus == PlanStatusType.No)
diff --git a/cylsg/cylsg.Application/CyOS/CyOSSettingController.cs b/cylsg/cylsg.Application/CyOS/CyOSSettingController.cs
index 8db3b42..5442385 100644
--- a/cylsg/cylsg.Application/CyOS/CyOSSettingController.cs
+++ b/cylsg/cylsg.Application/CyOS/CyOSSettingController.cs
@@ -1,5 +1,6 @@
锘縰sing cylsg.Model.ECTEModel;
using ECTESTOA;
+using EzCoreNet.Redis;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -16,10 +17,13 @@
private readonly ISqlSugarClient _client;
private readonly IOAServices _oAServices;
- public CYOSSettingController( ISqlSugarClient client,IOAServices oAServices )
+ private readonly IEzCoreNetRedisService _eZCoreNetRedisService;
+
+ public CYOSSettingController( ISqlSugarClient client,IOAServices oAServices,IEzCoreNetRedisService netRedisService )
{
_client = client.AsTenant().GetConnection("ECTESTOADB");
_oAServices = oAServices;
+ _eZCoreNetRedisService = netRedisService;
}
/// <summary>
@@ -50,6 +54,14 @@
Remark = x.Remark,
}).WithCache(3600).ToListAsync();
}
-
+ /// <summary>
+ /// 鑾峰彇娴佹按鍙�
+ /// </summary>
+ /// <returns></returns>
+ [HttpGet]
+ public string GetShowID()
+ {
+ return _eZCoreNetRedisService.GetYYYMMddAnd4sn();
+ }
}
}
diff --git a/cylsg/cylsg.Application/CyOS/CyOSStaffController.cs b/cylsg/cylsg.Application/CyOS/CyOSStaffController.cs
index 0c322a4..1c5135c 100644
--- a/cylsg/cylsg.Application/CyOS/CyOSStaffController.cs
+++ b/cylsg/cylsg.Application/CyOS/CyOSStaffController.cs
@@ -5,6 +5,7 @@
using cylsg.utility.Extend;
using Cylsg.Filter;
using ECTESTOA;
+using EzCoreNet.Redis;
using Furion.LinqBuilder;
using System;
using System.Collections.Generic;
@@ -25,12 +26,14 @@
{
private readonly IOAServices _OAServices;
private readonly ISqlSugarClient _SugarClient;
+ private readonly IEzCoreNetRedisService _ezCoreNetRedisService;
private ECTESTOAPermissions Permissions;
- public CyOSStaffController(IOAServices oaServices, ISqlSugarClient sugarClient)
+ public CyOSStaffController(IOAServices oaServices, ISqlSugarClient sugarClient,IEzCoreNetRedisService netRedisService)
{
_OAServices = oaServices;
_SugarClient = sugarClient.AsTenant().GetConnection("ECTESTOADB");
+ _ezCoreNetRedisService = netRedisService;
}
/// <summary>
@@ -48,6 +51,7 @@
SearchList = SearchList.And(x => x.MemberId == _OAServices.firmId);
SearchList = SearchList.And(x => x.PlanType == 3);
SearchList = SearchList.And(x => x.PlanDataType == 17);
+
if (!string.IsNullOrEmpty(param.StaffName))
{
SearchList = SearchList.And(x => x.SentStaff.Name.Contains(param.StaffName));
@@ -159,6 +163,10 @@
}
}
+ if (pram.ApprovalStatus != PlanStatusType.Uncommitted)
+ pram.EvaluationContent = _ezCoreNetRedisService.GetYYYMMddAnd4sn();
+ else
+ pram.EvaluationContent = "";
pram.PlanType = 3;//鍥哄畾涓�3
pram.MemberId = _OAServices.firmId;
pram.SentStaffId = Permissions.MemberId;
@@ -174,11 +182,15 @@
pram.PlanRemark = "";
pram.PlanPeople = Permissions.Name;
pram.PlanComplany = "";
- pram.PlanStatus = PlanStatusType.unApproval;
+ if(pram.PlanStatus!= PlanStatusType.Uncommitted)
+ {
+ pram.PlanStatus = PlanStatusType.unApproval;
+ }
+
+
pram.ApprovalStaffId = Guid.Empty;
pram.ApprovalTime=DateTime.Now;
- pram.ApprovalContent = "";
- pram.EvaluationContent = "";
+ pram.ApprovalContent = "";
pram.EvaluationStaffId = Guid.Empty;
pram.EvaluationTime = DateTime.Now;
pram.RewardMoney = 0;
@@ -230,18 +242,21 @@
var data= await _SugarClient.Queryable<OaWorkPlan>().Includes(x=>x.WorkPlanAttachments).Includes(x=>x.OaWorkPlanShenpis).Where(x=>x.Keyid==pram.Keyid&&x.SentStaffId==Permissions.MemberId).FirstAsync();
if(data==null)
throw Oops.Oh("娌℃湁鏉冮檺");
- if(data.ApprovalStatus!= PlanStatusType.unApproval||data.OaWorkPlanShenpis.Count>0)
+ if (data.ApprovalStatus != PlanStatusType.Uncommitted)
{
- if(data.HoubufapiaoStatus == HoubufapiaoStatusType.HouBuFaPiao&&data.HoubufapiaoStatus== HoubufapiaoStatusType.HouBuFaPiao)
+ if (data.ApprovalStatus != PlanStatusType.unApproval || data.OaWorkPlanShenpis.Count > 0)
{
- //鍚庤ˉ鍙戠エ锛屽彧鑳戒慨鏀瑰彂绁ㄥ拰闄勪欢
- await _SugarClient.UpdateNav(data).Include(x => x.WorkPlanAttachments).ExecuteCommandAsync();
- return true;
- }
- else
+ if (data.HoubufapiaoStatus == HoubufapiaoStatusType.HouBuFaPiao && data.HoubufapiaoStatus == HoubufapiaoStatusType.HouBuFaPiao)
+ {
+ //鍚庤ˉ鍙戠エ锛屽彧鑳戒慨鏀瑰彂绁ㄥ拰闄勪欢
+ await _SugarClient.UpdateNav(data).Include(x => x.WorkPlanAttachments).ExecuteCommandAsync();
+ return true;
+ }
+ else
- throw Oops.Oh("宸茬粡杩涘叆瀹℃壒娴佺▼涓嶅彲淇敼");
-
+ throw Oops.Oh("宸茬粡杩涘叆瀹℃壒娴佺▼涓嶅彲淇敼");
+
+ }
}
if (data.RewardResult != pram.RewardResult)
@@ -265,7 +280,15 @@
}
}
-
+
+ if(data.ApprovalStatus== PlanStatusType.Uncommitted&&pram.ApprovalStatus== PlanStatusType.unApproval)
+ {
+ //閲嶆柊鎻愪氦蹇呴』淇敼鏂扮殑鍗曞彿
+ data.EvaluationContent = _ezCoreNetRedisService.GetYYYMMddAnd4sn();
+ data.ApprovalStatus = pram.ApprovalStatus;
+ }
+
+
data.PlanMoney=pram.PlanMoney;
//鎽樿
data.PlanContent =pram.PlanContent;
diff --git a/cylsg/cylsg.Model/ECTEModel/OaWorkPlan.cs b/cylsg/cylsg.Model/ECTEModel/OaWorkPlan.cs
index 6c193c2..84d9ea8 100644
--- a/cylsg/cylsg.Model/ECTEModel/OaWorkPlan.cs
+++ b/cylsg/cylsg.Model/ECTEModel/OaWorkPlan.cs
@@ -170,7 +170,7 @@
public BaoxiaoStausType? EvaluationStatus { get; set; } = BaoxiaoStausType.NotReimbursed;
/// <summary>
- /// 鑰冭瘎鍐呭
+ /// 鑰冭瘎鍐呭// 鍙樻洿涓� 鎶ラ攢鍗曠紪鍙�
/// </summary>
[SugarColumn(ColumnName = "EvaluationContent", Length = 200)]
public string? EvaluationContent { get; set; }
@@ -256,7 +256,12 @@
/// 鍚﹀畾
/// </summary>
[Description("鍚﹀畾")]
- No
+ No,
+ /// <summary>
+ ///
+ /// </summary>
+ [Description("鏈彁浜�")]
+ Uncommitted
}
/// <summary>
/// 鍚庤ˉ鍙戠エ鐘舵��
diff --git a/cylsg/cylsg.Model/ECTEModel/OaWorkPlanShenpi.cs b/cylsg/cylsg.Model/ECTEModel/OaWorkPlanShenpi.cs
index 151f147..736fc4c 100644
--- a/cylsg/cylsg.Model/ECTEModel/OaWorkPlanShenpi.cs
+++ b/cylsg/cylsg.Model/ECTEModel/OaWorkPlanShenpi.cs
@@ -78,6 +78,21 @@
/// </summary>
[SugarColumn(ColumnName = "Buzhou")]
public int? Buzhou { get; set; }
- }
+ /// <summary>
+ /// 瀹℃壒鏃朵紶閫掔鐩甀D
+ /// </summary>
+ [SugarColumn( IsIgnore= true)]
+ public string? RewardResult { get; set; }
+ /// <summary>
+ /// 瀹℃壒鏃朵紶閫掓憳瑕�
+ /// </summary>
+ [SugarColumn(IsIgnore = true)]
+ public string? PlanContent { get; set; }
+ /// <summary>
+ /// 瀹℃壒鏃朵紶閫掗噾棰�
+ /// </summary>
+ [SugarColumn(IsIgnore = true)]
+ public decimal? PlanMoney { get; set; }
+ }
}
diff --git a/cylsg/cylsg.redis/EzCoreNetRedisService.cs b/cylsg/cylsg.redis/EzCoreNetRedisService.cs
index 5ce6426..f81b0a7 100644
--- a/cylsg/cylsg.redis/EzCoreNetRedisService.cs
+++ b/cylsg/cylsg.redis/EzCoreNetRedisService.cs
@@ -121,6 +121,22 @@
return re;
}
+
+ public string GetYYYMMddAnd4sn()
+ {
+ string formattedDate = DateTime.Now.ToString("yyyyMMdd");
+
+
+ var sn = Incrby($"CreatYYYMMddAnd4snKey:{formattedDate}");
+ if (sn < 1)
+ {
+ //璁剧疆鏈夋晥鏈熼檺涓�24灏忔椂
+ SetTtl($"CreatYYYMMddAnd4snKey:{formattedDate}", 24 * 60 * 60);
+ }
+ string re = formattedDate + sn.ToString("D4");
+
+ return re;
+ }
/// <summary>
///
/// </summary>
diff --git a/cylsg/cylsg.redis/IEzCoreNetRedisService.cs b/cylsg/cylsg.redis/IEzCoreNetRedisService.cs
index e7ae2af..b980cdf 100644
--- a/cylsg/cylsg.redis/IEzCoreNetRedisService.cs
+++ b/cylsg/cylsg.redis/IEzCoreNetRedisService.cs
@@ -87,6 +87,11 @@
/// </summary>
string Get32sn();
/// <summary>
+ /// 鑾峰彇yyymmdd +4浣嶆祦姘村彿
+ /// </summary>
+ /// <returns></returns>
+ string GetYYYMMddAnd4sn();
+ /// <summary>
/// 璁剧疆閿�
/// </summary>
/// <param name="LockKey"> 閿並ey</param>
--
Gitblit v1.9.1