/*
|
*所有关于Dt_agvtask类的业务代码应在此处编写
|
*可使用repository.调用常用方法,获取EF/Dapper等信息
|
*如果需要事务请使用repository.DbContextBeginTransaction
|
*也可使用DBServerProvider.手动获取数据库相关信息
|
*用户信息、权限、角色等使用UserContext.Current操作
|
*Dt_agvtaskService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter
|
*/
|
using WIDESEA_Entity.DomainModels;
|
using WIDESEA_Core.Utilities;
|
using System;
|
using WIDESEA_Services.Repositories;
|
using Newtonsoft.Json;
|
using Microsoft.Extensions.Logging;
|
using WIDESEA_Core.Services;
|
using WIDESEA_Core.Extensions;
|
using System.Linq;
|
using WIDESEA_Core.ManageUser;
|
using WIDESEA_Core.EFDbContext;
|
using WIDESEA_Services.IRepositories;
|
using System.Threading;
|
|
namespace WIDESEA_Services.Services
|
{
|
public partial class dt_task_numberService
|
{
|
//private static int InSideIsStored = 0;
|
//public string GetTaskNumber(Idt_task_numberRepository a, int selectnum = 1)
|
//{
|
//EF框架中对绑定数据操作监视具有线程安全,不能一个线程对同样主键数据进行操作
|
// string breakstring = "";
|
// int newnum = 0;
|
// if (Interlocked.Exchange(ref InSideIsStored, 1) == 0)
|
// {
|
// try
|
// {
|
// if (selectnum == 1)
|
// {
|
// var nummode = a.FindFirst(v => v.numtype == "tasknum");
|
// newnum = nummode.taskno += 1;
|
// a.Update(nummode, true);
|
// breakstring = newnum.ToString();
|
// }
|
// else
|
// {
|
// var nummode = a.FindFirst(v => v.numtype == "tasknum");
|
// newnum = nummode.taskno + 1;
|
// breakstring = newnum.ToString() + ";";
|
// newnum = newnum + 1;
|
// breakstring = breakstring + newnum + ";";
|
// newnum = newnum + 1;
|
// breakstring = breakstring + newnum + ";";
|
// newnum = newnum + 1;
|
// breakstring = breakstring + newnum;
|
// nummode.taskno = newnum;
|
// a.Update(nummode, true);
|
// }
|
// }
|
// catch (Exception ex)
|
// {
|
|
// }
|
// finally
|
// {
|
// Interlocked.Exchange(ref InSideIsStored, 0);
|
// }
|
// }
|
// return breakstring;
|
//}
|
|
|
|
|
private static int InSideIsStored = 0;
|
public string GetTaskNumber(Idt_task_numberRepository a, int selectnum = 1)
|
{
|
//EF框架中对绑定数据操作监视具有线程安全,不能一个线程对同样主键数据进行操作
|
string breakstring = "";
|
try
|
{
|
if (selectnum == 1)
|
{
|
string sql = "select next value for dbo.GetTaskNo";
|
breakstring = a.DapperContext.ExecuteScalar(sql, null).ToString();
|
}
|
else
|
{
|
string sql = "select next value for dbo.GetTaskNo";
|
for (int i = 0; i < 4; i++)
|
{
|
breakstring = a.DapperContext.ExecuteScalar(sql, null).ToString() + ";" + breakstring;
|
}
|
}
|
}
|
catch (Exception)
|
{
|
|
}
|
return breakstring;
|
}
|
}
|
}
|