/* *所有关于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; } } }