新建(弹出框新建保存业务处理)

注意:写在[主表service.cs]中

    public override WebResponseContent Add(SaveModel saveDataModel)
    {
        //此处saveModel是从前台提交的原生数据,可对数据进修改过滤
        //saveModel.MainData["字段"]="值";//这里可以对提交的原来参数处理或者添加其他字段

        // 在保存数据库前的操作,所有数据都验证通过了,这一步执行完就执行数据库保存
        AddOnExecuting = (表 order, object list) =>
        {
            //明细表对象
            List<表List> orderLists = list as List<表List>;
            //自定义逻辑
            if (orderLists == null || orderLists.Count == 0)
            {//如果没有界面上没有填写明细,则中断执行
                return webResponse.Error("必须填写明细数据");
            }
            if (orderLists.Exists(x => x.Qty <= 20))
                return webResponse.Error("明细数量必须大于20");
            //Code = "-1"会中止后面代码执行(不会执行数据库保存)
            //webResponse.Code = "-1";
            //return webResponse.OK("返回提示");//或者return webResponse.Error("返回提示")
            return webResponse.OK();
        };

        //此方法中已开启了事务,如果在此方法中做其他数据库操作,请不要再开启事务
        // 在保存数据库后的操作,此时已进行数据提交,但未提交事务,如果返回false,则会回滚提交
        AddOnExecuted = (表 order, object list) =>
        {           
            //如果是一对多表,在这里根据主键id查询出来后单独处理业务逻辑
            
            //明细表对象
            // List<表List> orderLists = list as List<表List>;
            if (order.Qty < 10) //如果输入的销售数量<10,会回滚数据库
            { 
                return webResponse.Error("销售数量必须大于1000");
            }
            //保存到数据库后,这里可以再查询数据库写业务操作
            //注意EF版,这里如果是执行的sql,只能使用ef执行sql,如:repository.DbContext.Database.xx
            return webResponse.OK("已新建成功,台AddOnExecuted方法返回的消息");
        };

        //新建的数据进入审批流程前处理,
        AddWorkFlowExecuting = (表 order) =>
        {
            return true;  //返回false,当前数据不会进入审批流程
        };

        表 order2=null;
        //新建的数据写入审批流程后,第二个参数为审批人的用户id
        AddWorkFlowExecuted = (表 order, List<int> userIds) =>
        {
            order2=order;//外面申明对象,用于下面if(res.Status)自定义业务逻辑取数
            //这里可以做发邮件通知
            //var userInfo = repository
            //      .DbContext.Set<Sys_User>()
            //      .Where(x => userIds.Contains(x.User_Id))
            //      .Select(s => new { s.User_Id, s.UserTrueName, s.Email, s.PhoneNo })
            //      .ToList();

            //发送邮件方法
            //MailHelper.Send()
        };
        var res= base.Add(saveDataModel);
        //这里在保存成功后做一些其他操作
        if(res.Status){

        }
        return res;
    }
Last Updated 2025/4/15 14:51:28