新建(弹出框新建保存业务处理)
注意:写在[主表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;
}