From 16b063870156db78148440971ab46c649e3e6018 Mon Sep 17 00:00:00 2001
From: 移动系统liao <liaoxujun@qq.com>
Date: 星期三, 19 三月 2025 11:44:22 +0800
Subject: [PATCH] 测试定版,

---
 cylsg/cylsg.Application/CyOS/CyOSStaffController.cs |  324 ++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 300 insertions(+), 24 deletions(-)

diff --git a/cylsg/cylsg.Application/CyOS/CyOSStaffController.cs b/cylsg/cylsg.Application/CyOS/CyOSStaffController.cs
index 0c322a4..d0249df 100644
--- a/cylsg/cylsg.Application/CyOS/CyOSStaffController.cs
+++ b/cylsg/cylsg.Application/CyOS/CyOSStaffController.cs
@@ -5,7 +5,10 @@
 using cylsg.utility.Extend;
 using Cylsg.Filter;
 using ECTESTOA;
+using EzCoreNet.Redis;
 using Furion.LinqBuilder;
+using Microsoft.CodeAnalysis.CSharp.Syntax;
+using Models;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -21,16 +24,19 @@
     /// 宸濆嵃鏅�氬憳宸ユ帶鍒跺櫒
     /// </summary>
     [Authorize]
+    [ApiDescriptionSettings("CYOA")]
     public class CyOSStaffController : IDynamicApiController
     {
         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>
@@ -39,6 +45,7 @@
         [HttpPost]
         public async Task<WorekPlandto> getplanelist(SearchOaWorekPlan param)
         {
+            
             if(! await CheckRols())
             {
                 throw Oops.Oh("娌℃湁鏉冮檺");
@@ -48,6 +55,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 +167,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,22 +186,20 @@
             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;
             pram.RewardType = 1;
-         
-           
-
-
-
-
-
+            pram.Keyid = null;
             await  _SugarClient.InsertNav(pram).Include(x=>x.WorkPlanAttachments).ExecuteCommandAsync();
             return true;
             
@@ -230,18 +240,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 +278,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;
@@ -284,7 +305,7 @@
 
         }
         /// <summary>
-        /// 鑾峰彇璇︽儏
+        /// 鑾峰彇璐㈠姟鐢宠鍗曡鎯�
         /// </summary>
         /// <param name="id"></param>
         /// <returns></returns>
@@ -295,12 +316,11 @@
             {
                 throw Oops.Oh("娌℃湁鏉冮檺");
             }
-            return await _SugarClient.Queryable<OaWorkPlan>().Includes(x=>x.SentStaff).Includes(x=>x.Depart).Includes(x=>x.WorkPlanAttachments).Where(x => x.Keyid == id).FirstAsync();
+            return await _SugarClient.Queryable<OaWorkPlan>().Includes(x=>x.SentStaff).Includes(x => x.OaWorkPlanShenpis,y=>y.ApprovalStaff).Includes(x=>x.Depart).Includes(x=>x.WorkPlanAttachments).Where(x => x.Keyid == id).FirstAsync();
         }
         /// <summary>
         /// 鍒犻櫎
         /// </summary>
-        /// <param name="pram"></param>
         /// <returns></returns>
         [HttpDelete]
         public async Task<bool> DelOderAsync(int id )
@@ -326,6 +346,228 @@
             return true;
         }
 
+
+        /// <summary>
+        /// 鑾峰彇棰勭害閰嶉�佷俊鎭�
+        /// </summary>
+        /// <param name="Param"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<AppointmentDeliverRet> GetListAppointmentDeliverList(ApoointmentDeliverSearchParam Param)
+        {
+
+            if (!await CheckRols())
+            {
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            }
+
+            Expression<Func<OA_DeliverTixing, bool>> SearchList = (x) => true;
+            SearchList = SearchList.And(x => x.FirmId == _OAServices.firmId);
+            SearchList = SearchList.And(x => x.Creater == Permissions.MemberId);
+            if (!string.IsNullOrEmpty(Param.Content))
+            {
+                SearchList = SearchList.And(x => x.Remark.Contains(Param.Content));
+            }
+            if (Param.MemberId != null)
+            {
+                SearchList = SearchList.And(x => x.FirmId == Param.MemberId);
+            }
+            if (Param.TimeStart !=null)
+            {
+                SearchList = SearchList.And(x => x.CreateTime> Param.TimeStart);
+            }
+            if (Param.TimeEnd != null)
+            {
+                SearchList = SearchList.And(x => x.CreateTime < Param.TimeEnd.Value.AddDays(1));
+            }
+           
+
+            
+            if (Param.DeliverState != null)
+            {
+                SearchList = SearchList.And(x => x.Chulistatus == Param.DeliverState);
+            }
+            //寮哄埗澧炲姞鍛樺伐杩囨护
+            RefAsync<int> totle = 0;
+            var data = await _SugarClient.Queryable<OA_DeliverTixing>()
+                .Where(SearchList).OrderByDescending(x => x.ChuliTime).ToPageListAsync(Param.page.PageIndex, Param.page.PageSize, totle);
+
+            Param.page.TotalCount = totle;
+         
+            return new AppointmentDeliverRet
+
+            {
+                Data = data,
+                page= Param.page,
+               
+            };
+        }
+
+       
+        /// <summary>
+        /// 鍒涘缓涓�涓绾﹂厤閫�
+        /// </summary>
+        /// <param name="Param"></param>
+        /// <returns></returns>
+        [LimitFilter(LimiType = Limttype.User,timespan =5,ResponseMeg ="璇峰嬁鍦�5鍐呴噸澶嶈姹�",InCount =1)]
+        public async Task<int> CreatAppointmentDeliver(OA_DeliverTixing Param)
+        {
+           if(  string.IsNullOrEmpty(Param.Remark))
+                 throw Oops.Oh("鍐呭蹇呭~");
+
+            if (!await CheckRols())
+            {
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            }
+
+            Param.FirmId = _OAServices.firmId;
+            Param.CreateTime = DateTime.Now;
+            Param.Creater = Permissions.MemberId;
+            Param.Chulistatus = AppointmentDeliverState.unAccept;
+            
+         return  await   _SugarClient.Insertable(Param).ExecuteCommandAsync();
+        }
+        
+        /// <summary>
+        /// 淇敼棰勭害鎻愰啋        
+        /// </summary>
+        /// <param name="Param"></param>
+        /// <returns></returns>
+        public async Task<int> UpDataAppointmentDeliver(OA_DeliverTixing Param)
+        {
+          if(  Param.Chulistatus== AppointmentDeliverState.Accept)
+                throw Oops.Oh("鐘舵�佷笉鍙慨鏀逛负鍙楃悊鐘舵��");
+            if (!(Param.Keyid>0))
+                throw Oops.Oh("Keyid涓嶈兘涓虹┖");
+            if (string.IsNullOrEmpty(Param.Remark))
+                throw Oops.Oh("鍐呭蹇呭~");
+
+            if (!await CheckRols())
+            {
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            }
+            var data= await   _SugarClient.Queryable<OA_DeliverTixing>().Where(x => x.Keyid == Param.Keyid&&x.FirmId==_OAServices.firmId&&x.Creater==Permissions.MemberId).FirstAsync();
+            if (data == null)
+                throw Oops.Oh("娌℃壘鍒版暟鎹�");
+            if(data.Chulistatus == AppointmentDeliverState.Accept)
+                throw Oops.Oh("宸插彈鐞嗙姸鎬佷笉鍙慨鏀�");
+            if (data.Remark!=Param.Remark)
+            {
+                data.Remark = Param.Remark;
+                data.LastUpdateTime = DateTime.Now;
+                data.Updater = Permissions.MemberId;
+                return await _SugarClient.Updateable(data).ExecuteCommandAsync();
+            }
+            return 1;
+
+            
+        }
+        /// <summary>
+        /// 鍒犻櫎棰勭害鎻愰啋        
+        /// </summary>
+        /// <param name="Param"></param>
+        /// <returns></returns>
+        public async Task<int> DelAppointmentDeliver(OA_DeliverTixing Param)
+        {
+            if (!(Param.Keyid > 0))
+                throw Oops.Oh("Keyid涓嶈兘涓虹┖");
+          
+
+            if (!await CheckRols())
+            {
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            }
+            var data = await _SugarClient.Queryable<OA_DeliverTixing>().Where(x => x.Keyid == Param.Keyid && x.Creater == Permissions.MemberId&&x.FirmId==_OAServices.firmId).FirstAsync();
+            if (data == null)
+                throw Oops.Oh("娌℃壘鍒版暟鎹垨鑰呮病鏈夋潈闄�");
+          if(  data.Chulistatus!= AppointmentDeliverState.unAccept)
+               throw Oops.Oh("宸插彈鐞嗙姸鎬佷笉鍙垹闄�");
+
+            return await _SugarClient.Deleteable(data).ExecuteCommandAsync();
+
+
+        }
+
+        /// <summary>
+        /// 鑾峰彇閫佽揣鍗�
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<DeliverOderPageRet>  GetDeliverPlans(DeliverPlanSearchParam Param)
+        {
+            if (!await CheckRols())
+            {
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            }
+
+            Expression<Func<OA_DeliverPlanPaiche, bool>> SearchList = (x) => true;
+            SearchList = SearchList.And(x => x.FirmId == _OAServices.firmId);
+            SearchList = SearchList.And(x => x.BusinessManagerId == Permissions.KeyId);//鍙湅鑷繁 瀹㈡埛缁忕悊鏄嚜宸�
+            SearchList = SearchList.And(x => x.ShifouDelivery !=2);//杩囨护鏈夋晥
+            if (Param.DeliverKeyID!=null)
+            {
+                SearchList = SearchList.And(x => x.DriverId == Param.DeliverKeyID);
+            }
+            //瀹㈡埛鍚嶇О
+            if (!string.IsNullOrEmpty(Param.CorporateClient))
+            {
+                SearchList = SearchList.And(x => x.CompanyName.Contains(Param.CorporateClient));
+            }
+            if (Param.TimeStart != null)
+            {
+                SearchList = SearchList.And(x => x.DeliverTime >= Param.TimeStart.Value.Date);
+            }
+            if (Param.TimeEnd != null)
+            {
+                SearchList = SearchList.And(x => x.DeliverTime < Param.TimeEnd.Value.Date.AddDays(1));
+            }
+            if (Param.DeliveredState != null)
+            {
+                if (Param.DeliveredState != DeliveredType.Delivered)
+                {
+                    SearchList = SearchList.And(x => x.Deliveredstatus != DeliveredType.Delivered);
+                }
+                else
+                {
+                    SearchList = SearchList.And(x => x.Deliveredstatus == DeliveredType.Delivered);
+                }
+            }
+
+            //寮哄埗澧炲姞鍛樺伐杩囨护
+            RefAsync<int> totle = 0;
+            var data = await _SugarClient.Queryable<OA_DeliverPlanPaiche>().Includes(x => x.Driver).Includes(x=>x.DeliverPlans)
+                .Where(SearchList).OrderByDescending(x => x.CreateTime.Value.Date).OrderBy(x=>SqlFunc.Asc(x.Sort)).ToPageListAsync(Param.page.PageIndex, Param.page.PageSize, totle);
+
+            Param.page.TotalCount = totle;
+        
+
+            return new DeliverOderPageRet
+
+            {
+                Data = data,
+                page = Param.page,
+
+            };
+
+
+        }
+
+        /// <summary>
+        /// 鑾峰彇閫佽揣鍗曡鎯�
+        /// </summary>
+        /// <param name="KeyId"></param>
+        /// <returns></returns>
+        public async Task<OA_DeliverPlanPaiche> GetDeliverPlanInfo(Guid KeyId)
+        {
+
+            if (!await CheckRols())
+            {
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            }
+            return await _SugarClient.Queryable<OA_DeliverPlanPaiche>().Includes(x => x.Attachments).Includes(x=>x.Driver).Includes(x=>x.DeliverPlans)
+                .Where(x => x.BusinessManagerId == Permissions.KeyId && x.Keyid == KeyId && x.ShifouDelivery != 2).FirstAsync();
+
+        }
 
         /// <summary>
         /// 鍒ゆ柇鏄惁鍏锋湁鏉冮檺
@@ -410,4 +652,38 @@
         public decimal TotalMoney { get; set; } = 0;
 
     }
+
+    /// <summary>
+    /// 閰嶉�侀绾�
+    /// </summary>
+    public class AppointmentDeliverRet
+    {
+        /// <summary>
+        /// 鏁版嵁鍒楄〃
+        /// </summary>
+        public List<OA_DeliverTixing> Data { get; set; }
+
+        /// <summary>
+        /// 椤甸潰鍙傛暟
+        /// </summary>
+        public PageModel page { get; set; }
+
+    }
+
+
+    /// <summary>
+    /// 閰嶉�佸崟鏁版嵁杩斿洖
+    /// </summary>
+    public class DeliverOderPageRet
+    {
+        /// <summary>
+        /// 鏁版嵁鍒楄〃
+        /// </summary>
+        public List<OA_DeliverPlanPaiche> Data { get; set; }
+
+        /// <summary>
+        /// 椤甸潰鍙傛暟
+        /// </summary>
+        public PageModel page { get; set; }
+    }
 }

--
Gitblit v1.9.1