移动系统liao
2025-02-12 908027331273ceae9c4c23d087b0cd070948f42c
增加批量精力审批
2个文件已修改
123 ■■■■■ 已修改文件
cylsg/cylsg.Application/CyOS/CyOSBaoXiaoJingLiController.cs 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cylsg/cylsg.Application/CyOS/CyOSStaffController.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cylsg/cylsg.Application/CyOS/CyOSBaoXiaoJingLiController.cs
@@ -208,6 +208,101 @@
        }
        /// <summary>
        /// 批量审批
        /// </summary>
        [HttpPost]
        public async Task<bool> BatchShenPi(BatchShenPiIn param)
        {
            if (param.ApprovalStatus == PlanStatusType.unApproval)
                throw Oops.Oh("不可设置为未审批状态");
            if (!param.OA_WorkPlanIds.Any())
                throw Oops.Oh("未选中任何报销单");
            if (!await CheckRols())
            {
                throw Oops.Oh("没有权限");
            }
            var dataList = await _SugarClient.Queryable<OaWorkPlan>().Includes(x => x.OaWorkPlanShenpis).In(param.OA_WorkPlanIds).ToListAsync();
            if (dataList == null||dataList.Count==0)
                throw Oops.Oh("没有找到报销单");
            try
            {
                await _SugarClient.AsTenant().BeginTranAsync();
                foreach (var item in dataList)
                {
                    if (item.ApprovalStatus != PlanStatusType.unApproval)
                    {
                        await _SugarClient.AsTenant().RollbackTranAsync();
                        throw Oops.Oh($"{item.SentStaff.Name} 的报销单:{item.PlanContent}---已经批复完毕,终止本次操作");
                    }
                    if (item.ApprovalStatus == PlanStatusType.Uncommitted)
                    {
                        await _SugarClient.AsTenant().RollbackTranAsync();
                        throw Oops.Oh($"{item.SentStaff.Name} 的报销单:{item.PlanContent}---已经未提交或者未完成前置审批,终止本次操作");
                    }
                   if( item.OaWorkPlanShenpis.Where(x=>x.Buzhou == 1&&x.ApprovalStatus== PlanStatusType.Yes).Count()<2)
                    {
                        await _SugarClient.AsTenant().RollbackTranAsync();
                        throw Oops.Oh($"{item.SentStaff.Name} 的报销单:{item.PlanContent}---未完成前置审批,终止本次操作");
                    }
                    OaWorkPlanShenpi shenpi = item.OaWorkPlanShenpis.Where(x => x.ApprovalStaffId == Permissions.MemberId && x.Buzhou == 2).FirstOrDefault();
                    if (shenpi != null)
                    {
                        await _SugarClient.AsTenant().RollbackTranAsync();
                        //已经批复
                        throw Oops.Oh($"{item.SentStaff.Name} 的报销单:{item.PlanContent} ----报销单已经批复完毕 不可更改,操作终止");
                    }
                    else
                    {
                        shenpi = new OaWorkPlanShenpi()
                        {
                            ApprovalStaffId = Permissions.MemberId,
                            ApprovalContent = param.ApprovalContent,
                            ApprovalStatus = param.ApprovalStatus,
                            ApprovalTime = DateTime.Now,
                            //总经理审批为2
                            Buzhou = 2,
                            CreateTime = DateTime.Now,
                            Operator = Permissions.Name,
                            OA_WorkPlanId = item.Keyid,
                        };
                        await _SugarClient.Insertable(shenpi).ExecuteCommandAsync();
                    }
                    //审批时可修改内容
                    item.ApprovalTime = DateTime.Now;
                    item.ApprovalStatus = param.ApprovalStatus;
                    item.ApprovalContent = param.ApprovalContent;
                    item.LastUpdateTime = DateTime.Now;
                    await _SugarClient.Updateable(item).ExecuteCommandAsync();
                }
                await _SugarClient.AsTenant().CommitTranAsync();
                return true;
            }
            catch (Exception)
            {
                await _SugarClient.AsTenant().RollbackTranAsync();
                throw;
            }
        }
        /// <summary>
        /// 判断是否具有权限
        /// </summary>
        /// <returns></returns>
@@ -227,5 +322,27 @@
                return false;
        }
    }
    /// <summary>
    /// 批量审批参数
    /// </summary>
    public class BatchShenPiIn
    {
        /// <summary>
        /// 工作计划ID 报销单ID
        /// </summary>
        [Required]
        public int[] OA_WorkPlanIds { get; set; }
        /// <summary>
        /// 审批状态
        /// </summary>
        [Required]
        public PlanStatusType? ApprovalStatus { get; set; }
        /// <summary>
        /// 审批内容
        /// </summary>
        public string ApprovalContent { get; set; }
    }
}
cylsg/cylsg.Application/CyOS/CyOSStaffController.cs
@@ -196,12 +196,6 @@
            pram.RewardMoney = 0;
            pram.RewardType = 1;
            pram.Keyid = null;
            await  _SugarClient.InsertNav(pram).Include(x=>x.WorkPlanAttachments).ExecuteCommandAsync();
            return true;