领导带班下井导入
This commit is contained in:
parent
f7a781a601
commit
1c8dc0a9b3
@ -106,14 +106,14 @@ namespace APT.FO.WebApi.Controllers
|
||||
}
|
||||
for (int i = 0; i < rowAll; i++)
|
||||
{
|
||||
if (string.IsNullOrEmpty(dtSource.Rows[i][0].ToString()))
|
||||
if (string.IsNullOrEmpty(dtSource.Rows[i][0].ToString().Trim()))
|
||||
{
|
||||
if (string.IsNullOrEmpty(Msg))
|
||||
Msg = "第"+(i+1)+"行第1列:日期不能为空";
|
||||
else
|
||||
Msg = Msg + "\n" + "第" + (i + 1) + "行第1列:日期不能为空";
|
||||
}
|
||||
if (string.IsNullOrEmpty(dtSource.Rows[i][1].ToString()))
|
||||
if (string.IsNullOrEmpty(dtSource.Rows[i][1].ToString().Trim()))
|
||||
{
|
||||
if (string.IsNullOrEmpty(Msg))
|
||||
Msg = "第" + (i + 1) + "行第2列:班次不能为空";
|
||||
@ -122,7 +122,7 @@ namespace APT.FO.WebApi.Controllers
|
||||
}
|
||||
else
|
||||
{
|
||||
var firstClass = fmClass.FirstOrDefault(t => t.NAME == dtSource.Rows[i][1].ToString());
|
||||
var firstClass = fmClass.FirstOrDefault(t => t.NAME == dtSource.Rows[i][1].ToString().Trim());
|
||||
if (firstClass == null)
|
||||
{
|
||||
if (string.IsNullOrEmpty(Msg))
|
||||
@ -131,7 +131,7 @@ namespace APT.FO.WebApi.Controllers
|
||||
Msg = Msg + "\n" + "第" + (i + 1) + "行第2列:班次未找到,请先到班次管理添加";
|
||||
}
|
||||
}
|
||||
if (string.IsNullOrEmpty(dtSource.Rows[i][2].ToString()))
|
||||
if (string.IsNullOrEmpty(dtSource.Rows[i][2].ToString().Trim()))
|
||||
{
|
||||
if (string.IsNullOrEmpty(Msg))
|
||||
Msg = "第" + (i + 1) + "行第3列:带班领导不能为空";
|
||||
@ -140,7 +140,7 @@ namespace APT.FO.WebApi.Controllers
|
||||
}
|
||||
else
|
||||
{
|
||||
var firstUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][2].ToString());
|
||||
var firstUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][2].ToString().Trim());
|
||||
if (firstUser == null)
|
||||
{
|
||||
if (string.IsNullOrEmpty(Msg))
|
||||
@ -149,7 +149,7 @@ namespace APT.FO.WebApi.Controllers
|
||||
Msg = Msg + "\n" + "第" + (i + 1) + "行第3列:带班领导未找到,请先到用户列表添加";
|
||||
}
|
||||
}
|
||||
if (string.IsNullOrEmpty(dtSource.Rows[i][5].ToString()))
|
||||
if (string.IsNullOrEmpty(dtSource.Rows[i][5].ToString().Trim()))
|
||||
{
|
||||
if (string.IsNullOrEmpty(Msg))
|
||||
Msg = "第" + (i + 1) + "行第6列:班次不能为空";
|
||||
@ -158,7 +158,7 @@ namespace APT.FO.WebApi.Controllers
|
||||
}
|
||||
else
|
||||
{
|
||||
var firstClass = fmClass.FirstOrDefault(t => t.NAME == dtSource.Rows[i][5].ToString());
|
||||
var firstClass = fmClass.FirstOrDefault(t => t.NAME == dtSource.Rows[i][5].ToString().Trim());
|
||||
if (firstClass == null)
|
||||
{
|
||||
if (string.IsNullOrEmpty(Msg))
|
||||
@ -167,7 +167,7 @@ namespace APT.FO.WebApi.Controllers
|
||||
Msg = Msg + "\n" + "第" + (i + 1) + "行第6列:班次未找到,请先到班次管理添加";
|
||||
}
|
||||
}
|
||||
if (string.IsNullOrEmpty(dtSource.Rows[i][6].ToString()))
|
||||
if (string.IsNullOrEmpty(dtSource.Rows[i][6].ToString().Trim()))
|
||||
{
|
||||
if (string.IsNullOrEmpty(Msg))
|
||||
Msg = "第" + (i + 1) + "行第7列:带班领导不能为空";
|
||||
@ -176,7 +176,7 @@ namespace APT.FO.WebApi.Controllers
|
||||
}
|
||||
else
|
||||
{
|
||||
var firstUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][6].ToString());
|
||||
var firstUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][6].ToString().Trim());
|
||||
if (firstUser == null)
|
||||
{
|
||||
if (string.IsNullOrEmpty(Msg))
|
||||
@ -185,7 +185,7 @@ namespace APT.FO.WebApi.Controllers
|
||||
Msg = Msg + "\n" + "第" + (i + 1) + "行第7列:带班领导未找到,请先到用户列表添加";
|
||||
}
|
||||
}
|
||||
if (string.IsNullOrEmpty(dtSource.Rows[i][9].ToString()))
|
||||
if (string.IsNullOrEmpty(dtSource.Rows[i][9].ToString().Trim()))
|
||||
{
|
||||
if (string.IsNullOrEmpty(Msg))
|
||||
Msg = "第" + (i + 1) + "行第10列:班次不能为空";
|
||||
@ -194,7 +194,7 @@ namespace APT.FO.WebApi.Controllers
|
||||
}
|
||||
else
|
||||
{
|
||||
var firstClass = fmClass.FirstOrDefault(t => t.NAME == dtSource.Rows[i][9].ToString());
|
||||
var firstClass = fmClass.FirstOrDefault(t => t.NAME == dtSource.Rows[i][9].ToString().Trim());
|
||||
if (firstClass == null)
|
||||
{
|
||||
if (string.IsNullOrEmpty(Msg))
|
||||
@ -203,7 +203,7 @@ namespace APT.FO.WebApi.Controllers
|
||||
Msg = Msg + "\n" + "第" + (i + 1) + "行第10列:班次未找到,请先到班次管理添加";
|
||||
}
|
||||
}
|
||||
if (string.IsNullOrEmpty(dtSource.Rows[i][10].ToString()))
|
||||
if (string.IsNullOrEmpty(dtSource.Rows[i][10].ToString().Trim()))
|
||||
{
|
||||
if (string.IsNullOrEmpty(Msg))
|
||||
Msg = "第" + (i + 1) + "行第11列:带班领导不能为空";
|
||||
@ -212,7 +212,7 @@ namespace APT.FO.WebApi.Controllers
|
||||
}
|
||||
else
|
||||
{
|
||||
var firstUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][10].ToString());
|
||||
var firstUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][10].ToString().Trim());
|
||||
if (firstUser == null)
|
||||
{
|
||||
if (string.IsNullOrEmpty(Msg))
|
||||
@ -227,54 +227,54 @@ namespace APT.FO.WebApi.Controllers
|
||||
{
|
||||
throw new Exception(Msg);
|
||||
}
|
||||
var classFirst = fmClass.FirstOrDefault(t => t.NAME == dtSource.Rows[0][1].ToString());
|
||||
var classScond = fmClass.FirstOrDefault(t => t.NAME == dtSource.Rows[0][5].ToString());
|
||||
var classThird = fmClass.FirstOrDefault(t => t.NAME == dtSource.Rows[0][9].ToString());
|
||||
var classFirst = fmClass.FirstOrDefault(t => t.NAME == dtSource.Rows[0][1].ToString().Trim());
|
||||
var classScond = fmClass.FirstOrDefault(t => t.NAME == dtSource.Rows[0][5].ToString().Trim());
|
||||
var classThird = fmClass.FirstOrDefault(t => t.NAME == dtSource.Rows[0][9].ToString().Trim());
|
||||
List<T_FO_SCHEDULING> sches = new List<T_FO_SCHEDULING>();
|
||||
string[] Day = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
|
||||
for (int i = 0; i < rowAll; i++)
|
||||
{
|
||||
var firstUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][2].ToString());
|
||||
var techUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][3].ToString());
|
||||
var driverUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][4].ToString());
|
||||
var scondUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][6].ToString());
|
||||
var techScondUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][7].ToString());
|
||||
var driverScondUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][8].ToString());
|
||||
var thirdUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][10].ToString());
|
||||
var techThirdUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][11].ToString());
|
||||
var driverThirdUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][12].ToString());
|
||||
var firstUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][2].ToString().Trim());
|
||||
var techUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][3].ToString().Trim());
|
||||
var driverUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][4].ToString().Trim());
|
||||
var scondUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][6].ToString().Trim());
|
||||
var techScondUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][7].ToString().Trim());
|
||||
var driverScondUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][8].ToString().Trim());
|
||||
var thirdUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][10].ToString().Trim());
|
||||
var techThirdUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][11].ToString().Trim());
|
||||
var driverThirdUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][12].ToString().Trim());
|
||||
T_FO_SCHEDULING sche = new T_FO_SCHEDULING();
|
||||
sche.ID = Guid.NewGuid();
|
||||
sche.ORG_ID = orgId;
|
||||
sche.DATE = Convert.ToDateTime(dtSource.Rows[i][0].ToString());
|
||||
sche.DATE = Convert.ToDateTime(dtSource.Rows[i][0].ToString().Trim());
|
||||
sche.USER_ID = firstUser.ID;
|
||||
sche.TECH_ID = techUser?.ID;
|
||||
sche.DRIVER_ID = driverUser?.ID;
|
||||
sche.CLASS_ID = classFirst.ID;
|
||||
sche.REMARK = dtSource.Rows[i][13].ToString();
|
||||
sche.WEEK = Day[Convert.ToInt32(sche.DATE.DayOfWeek.ToString("d"))].ToString();
|
||||
sche.REMARK = dtSource.Rows[i][13].ToString().Trim();
|
||||
sche.WEEK = Day[Convert.ToInt32(sche.DATE.DayOfWeek.ToString("d"))].ToString().Trim();
|
||||
sches.Add(sche);
|
||||
T_FO_SCHEDULING sche2 = new T_FO_SCHEDULING();
|
||||
sche2.ID = Guid.NewGuid();
|
||||
sche2.ORG_ID = orgId;
|
||||
sche2.DATE = Convert.ToDateTime(dtSource.Rows[i][0].ToString());
|
||||
sche2.DATE = Convert.ToDateTime(dtSource.Rows[i][0].ToString().Trim());
|
||||
sche2.USER_ID = scondUser.ID;
|
||||
sche2.TECH_ID = techUser?.ID;
|
||||
sche2.TECH_ID = techScondUser?.ID;
|
||||
sche2.DRIVER_ID = driverScondUser?.ID;
|
||||
sche2.CLASS_ID = classScond.ID;
|
||||
sche2.REMARK = dtSource.Rows[i][13].ToString();
|
||||
sche2.WEEK = Day[Convert.ToInt32(sche.DATE.DayOfWeek.ToString("d"))].ToString();
|
||||
sche2.REMARK = dtSource.Rows[i][13].ToString().Trim();
|
||||
sche2.WEEK = Day[Convert.ToInt32(sche.DATE.DayOfWeek.ToString("d"))].ToString().Trim();
|
||||
sches.Add(sche2);
|
||||
T_FO_SCHEDULING sche3 = new T_FO_SCHEDULING();
|
||||
sche3.ID = Guid.NewGuid();
|
||||
sche3.ORG_ID = orgId;
|
||||
sche3.DATE = Convert.ToDateTime(dtSource.Rows[i][0].ToString());
|
||||
sche3.DATE = Convert.ToDateTime(dtSource.Rows[i][0].ToString().Trim());
|
||||
sche3.USER_ID = thirdUser.ID;
|
||||
sche3.TECH_ID = techThirdUser?.ID;
|
||||
sche3.DRIVER_ID = driverThirdUser?.ID;
|
||||
sche3.CLASS_ID = classThird.ID;
|
||||
sche3.REMARK = dtSource.Rows[i][13].ToString();
|
||||
sche3.WEEK = Day[Convert.ToInt32(sche.DATE.DayOfWeek.ToString("d"))].ToString();
|
||||
sche3.REMARK = dtSource.Rows[i][13].ToString().Trim();
|
||||
sche3.WEEK = Day[Convert.ToInt32(sche.DATE.DayOfWeek.ToString("d"))].ToString().Trim();
|
||||
sches.Add(sche3);
|
||||
}
|
||||
UnifiedCommit(() =>
|
||||
|
||||
@ -19,11 +19,13 @@ using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.VisualBasic;
|
||||
using NPOI.SS.Formula.Functions;
|
||||
using NPOI.Util;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using static Microsoft.AspNetCore.Razor.Language.TagHelperMetadata;
|
||||
using static NPOI.HSSF.Util.HSSFColor;
|
||||
|
||||
namespace APT.PP.WebApi.Controllers.Api.PP
|
||||
{
|
||||
@ -1994,6 +1996,10 @@ namespace APT.PP.WebApi.Controllers.Api.PP
|
||||
var wellRecords = new List<T_FO_LEADER_WELL_RECORD>();
|
||||
var wellRecordUsers = new List<T_FO_LEADER_WELL_RECORD_USER>();
|
||||
var dt = DateTime.Now;
|
||||
if (filter.Parameter1 != null)
|
||||
{
|
||||
dt = DateTime.Parse(filter.Parameter1);
|
||||
}
|
||||
var company = this.GetEntity<T_FM_DEPARTMENT>(t => t.PARENT_ID == null && t.ENABLE_STATUS == 0);
|
||||
var fmClass = this.GetEntities<T_FM_CLASS>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_ClassDetail");
|
||||
var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0 && !t.CODE.Contains("admin"), new BaseFilter(filter.OrgId),"Nav_Department");
|
||||
@ -2021,6 +2027,7 @@ namespace APT.PP.WebApi.Controllers.Api.PP
|
||||
record.JOB_END_DATE = Convert.ToDateTime(DateTime.Now.Date.ToShortDateString() + firstTime.ENDTIME.ToShortTimeString());
|
||||
record.APPLY_DEPARTMENT_ID = sendUser.DEPARTMENT_ID;
|
||||
record.COMPANY_ID = company?.ID;
|
||||
record.CLASS_ID = item.CLASS_ID;
|
||||
record.PRODUCTION_UNIT_ID = sendUser?.Nav_Department?.PRODUCTION_UNIT_ID;
|
||||
wellRecords.Add(record);
|
||||
T_FO_LEADER_WELL_RECORD_USER ledUser = new T_FO_LEADER_WELL_RECORD_USER();
|
||||
@ -2070,13 +2077,20 @@ namespace APT.PP.WebApi.Controllers.Api.PP
|
||||
try
|
||||
{
|
||||
var notices = new List<T_FM_NOTIFICATION_TASK>();
|
||||
var wellRecords = new List<T_FO_LEADER_WELL_RECORD>();
|
||||
var wellRecordUsers = new List<T_FO_LEADER_WELL_RECORD_USER>();
|
||||
var wellRecords = new List<T_FO_CURRENT_CLASS_RECORD>();
|
||||
var wellRecordUsers = new List<T_FO_CURRENT_CLASS_RECORD_USER>();
|
||||
var dt = DateTime.Now;
|
||||
if (filter.Parameter1 != null)
|
||||
{
|
||||
dt = DateTime.Parse(filter.Parameter1);
|
||||
}
|
||||
var departs = this.GetEntities<T_FM_DEPARTMENT>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId));
|
||||
var fmClass = this.GetEntities<T_FM_CLASS>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_ClassDetail");
|
||||
var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0 && !t.CODE.Contains("admin"), new BaseFilter(filter.OrgId), "Nav_Department");
|
||||
var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0 && !t.CODE.Contains("admin"), new BaseFilter(filter.OrgId), "Nav_Person.Nav_Post");
|
||||
var records = this.GetEntities<T_FO_CURRENT_CLASS_RECORD>(t => t.CREATE_TIME.Value.Date == DateTime.Now.Date, new BaseFilter(filter.OrgId));
|
||||
var preClass = this.GetEntities<T_FO_PRE_SHIFT_MEETING_RECORD>(t => t.CREATE_TIME.Value.Date == DateTime.Now.Date && t.DEPARTMENT_SCHEDULING_ID == null, new BaseFilter(filter.OrgId));
|
||||
var preClassIds = preClass.Select(t => t.ID).ToList();
|
||||
var preClassUsers = this.GetEntities<T_FO_PRE_SHIFT_MEETING_RECORD_USER>(t => preClassIds.Contains(t.PRE_SHIFT_MEETING_RECORD_ID), new BaseFilter(filter.OrgId));
|
||||
if (preClass != null && preClass.Any())
|
||||
{
|
||||
foreach (var item in preClass)
|
||||
@ -2088,27 +2102,32 @@ namespace APT.PP.WebApi.Controllers.Api.PP
|
||||
var firstTime = classFisrt.Nav_ClassDetail.OrderBy(t => t.NUM).FirstOrDefault();
|
||||
if (firstTime.ENDTIME.Hour == DateTime.Now.AddHours(1).Hour && firstRecord == null)
|
||||
{
|
||||
var sendUser = users.FirstOrDefault(t => t.ID == item.USER_ID);
|
||||
if (sendUser != null)
|
||||
var userIds = preClassUsers.Where(t => t.PRE_SHIFT_MEETING_RECORD_ID == item.ID).Select(m => m.USER_ID).Distinct().ToList();
|
||||
var sendUsers = users.Where(t => userIds.Contains(t.ID) && t.Nav_Person != null).ToList();
|
||||
if (sendUsers != null && sendUsers.Any())
|
||||
{
|
||||
T_FO_LEADER_WELL_RECORD record = new T_FO_LEADER_WELL_RECORD();
|
||||
record.ORG_ID = item.ORG_ID;
|
||||
record.APPLY_USER_ID = sendUser.ID;
|
||||
record.APPLY_DEPARTMENT_ID = sendUser.DEPARTMENT_ID;
|
||||
record.JOB_START_DATE = Convert.ToDateTime(DateTime.Now.Date.ToShortDateString() + firstTime.STARTTIME.ToShortTimeString());
|
||||
record.JOB_END_DATE = Convert.ToDateTime(DateTime.Now.Date.ToShortDateString() + firstTime.ENDTIME.ToShortTimeString());
|
||||
record.APPLY_DEPARTMENT_ID = sendUser.DEPARTMENT_ID;
|
||||
|
||||
record.PRODUCTION_UNIT_ID = sendUser?.Nav_Department?.PRODUCTION_UNIT_ID;
|
||||
wellRecords.Add(record);
|
||||
T_FO_LEADER_WELL_RECORD_USER ledUser = new T_FO_LEADER_WELL_RECORD_USER();
|
||||
ledUser.ORG_ID = item.ORG_ID;
|
||||
ledUser.LEADER_WELL_RECORD_ID = record.ID;
|
||||
ledUser.USER_ID = sendUser.ID;
|
||||
wellRecordUsers.Add(ledUser);
|
||||
var notice = NotificationTaskService.InsertUserNoticeTaskModel("领导带班下井记录" + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0') + "-" + classFisrt.NAME, record.ID, item.ORG_ID, sendUser.ID, sendUser.NAME, DateTime.Now,
|
||||
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "FO041");
|
||||
notices.Add(notice);
|
||||
foreach (var user in sendUsers)
|
||||
{
|
||||
var depart = departs.FirstOrDefault(t => t.ID == user.DEPARTMENT_ID);
|
||||
T_FO_CURRENT_CLASS_RECORD record = new T_FO_CURRENT_CLASS_RECORD();
|
||||
record.ORG_ID = item.ORG_ID;
|
||||
record.NAME = DateTime.Now.ToShortDateString() + depart?.NAME + "-" + user?.Nav_Person?.Nav_Post?.NAME + "当班工作记录";
|
||||
record.EDITOR_ID = user.ID;
|
||||
record.RECORD_DATE = Convert.ToDateTime(DateTime.Now.Date.ToShortDateString() + firstTime.ENDTIME.ToShortTimeString());
|
||||
record.CLASS_ID = item.CLASS_ID;
|
||||
record.DEPARTMENT_ID = user.DEPARTMENT_ID;
|
||||
record.DEPARTMENT_POST_ID = user?.Nav_Person?.POST_ID;
|
||||
record.CHARGE_USER_ID = depart?.USER_ID;
|
||||
wellRecords.Add(record);
|
||||
T_FO_CURRENT_CLASS_RECORD_USER ledUser = new T_FO_CURRENT_CLASS_RECORD_USER();
|
||||
ledUser.ORG_ID = item.ORG_ID;
|
||||
ledUser.CURRENT_CLASS_RECORD_ID = record.ID;
|
||||
ledUser.USER_ID = user.ID;
|
||||
wellRecordUsers.Add(ledUser);
|
||||
var notice = NotificationTaskService.InsertUserNoticeTaskModel(record.NAME, record.ID, item.ORG_ID, user.ID, user.NAME, DateTime.Now,
|
||||
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "FO005");
|
||||
notices.Add(notice);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2116,12 +2135,12 @@ namespace APT.PP.WebApi.Controllers.Api.PP
|
||||
}
|
||||
UnifiedCommit(() =>
|
||||
{
|
||||
//if (wellRecords != null && wellRecords.Any())
|
||||
// BantchSaveEntityNoCommit(wellRecords);
|
||||
//if (wellRecordUsers != null && wellRecordUsers.Any())
|
||||
// BantchSaveEntityNoCommit(wellRecordUsers);
|
||||
//if (notices != null && notices.Any())
|
||||
// BantchSaveEntityNoCommit(notices);
|
||||
if (wellRecords != null && wellRecords.Any())
|
||||
BantchSaveEntityNoCommit(wellRecords);
|
||||
if (wellRecordUsers != null && wellRecordUsers.Any())
|
||||
BantchSaveEntityNoCommit(wellRecordUsers);
|
||||
if (notices != null && notices.Any())
|
||||
BantchSaveEntityNoCommit(notices);
|
||||
});
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user