mh_sms/APT.MicroApi/APT.SC.WebApi/Controllers/Api/SCController/StandardCreateController.cs
2024-04-12 16:50:28 +08:00

788 lines
37 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Domain.Entities;
using APT.BaseData.Domain.Enums.PF;
using APT.BaseData.Domain.Enums;
using APT.BaseData.Domain.IServices;
using APT.BaseData.Domain.IServices.FM;
using APT.Infrastructure.Core;
using APT.MS.Domain.Entities.SC.PT;
using APT.MS.Domain.Entities.SC.SC;
using APT.Utility;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Linq;
using APT.MS.Domain.Enums;
using APT.MS.Domain.Entities.SC.PT;
using System;
using APT.MS.Domain.Entities.HM;
using APT.BaseData.Services.Services.FM;
using System.Numerics;
using AutoMapper;
using Google.Protobuf.WellKnownTypes;
using Microsoft.EntityFrameworkCore.Metadata.Internal;
using System.Threading;
using Enum = System.Enum;
using APT.BaseData.Domain.ApiModel;
using System.IO;
using System.Data;
using APT.MS.Domain.Entities.SC;
using APT.BaseData.Domain.ApiModel.FM;
namespace APT.SC.WebApi.Controllers.Api.SCController
{
/// <summary>
/// 标准化创建
/// </summary>
[Route("api/SC/SCStandardCreate")]
public partial class StandardCreateController : AuthorizeApiController<T_SC_STANDARD_CREATE>
{
IPFCodeRuleService CodeRuleService { get; set; }
IFMNotificationTaskService NotificationTaskService { get; set; }
IFMFlowPermitService MFlowPermitService { get; set; }
IPFApproveCallBackService ApproveCallBackService { get; set; }
/// <summary>
///
/// </summary>
/// <param name="notificationTaskService"></param>
public StandardCreateController(IPFCodeRuleService codeRuleService, IFMNotificationTaskService notificationTaskService, IFMFlowPermitService mFlowPermitService, IPFApproveCallBackService approveCallBackService)
{
CodeRuleService = codeRuleService;
NotificationTaskService = notificationTaskService;
MFlowPermitService = mFlowPermitService;
ApproveCallBackService = approveCallBackService;
}
/// <summary>
/// 导入
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost, Route("FullImport")]
public JsonActionResult<bool> FullImport([FromBody] T_SC_STANDARD_CREATE entity)
{
return SafeExecute(() =>
{
var loginUserId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId;
var departmentId = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID;
List<T_SC_STANDARD_CREATE> stas = new List<T_SC_STANDARD_CREATE>();
List<T_SC_STANDARD_CREATE_FILE> files = new List<T_SC_STANDARD_CREATE_FILE>();
//List<T_SC_STANDARD_CREATE_POST> posts = new List<T_SC_STANDARD_CREATE_POST>();
var detail = entity.Nav_Details;
if (detail != null && detail.Any())
{
KeywordFilter filter = new KeywordFilter();
filter.OrgId = orgId;
filter.Keyword = detail.FirstOrDefault()?.TYPE.GetInt().ToString();
var code = GetFileCode(filter).Data;
int i = 1;
foreach (var item in detail)
{
// 取最后五位序列号
var serial = code.Substring(code.Length - 5);
//序列号+1不足五位补0
var num = (int.Parse(serial) + i).ToString().PadLeft(5, '0');
var temp = code.Substring(0, code.Length - 5);
var entityCode = temp + num;
T_SC_STANDARD_CREATE sta = new T_SC_STANDARD_CREATE();
sta.STATUS = SCSystemEditStatus.;
sta.USER_ID = loginUserId;
sta.DEPARTMENT_ID = item.DEPARTMENT_ID;
sta.VERSION = 1;
sta.FILE_STATUS = SCSystemFileStatus.;
sta.ORG_ID = orgId;
sta.CODE = entityCode;
sta.NAME = item.NAME;
sta.UNIT = item.UNIT;
sta.COMPILE_TIME = item.COMPILE_TIME;
sta.PUBLISH_TIME = item.PUBLISH_TIME;
sta.NOTE = item.NOTE;
sta.TYPE = item.TYPE;
sta.IMPORT_TYPE = DisableStatusEnum.;
sta.POST_ID = item.POST_ID;
sta.DEPARTMENT_TYPE = item.DEPARTMENT_TYPE;
sta.MineType = item.MineType;
if (!string.IsNullOrEmpty(item.FILE_CONTENT))
{
sta.FILE_CONTENT = item.FILE_CONTENT.Replace("\x20", "&nbsp;").Replace("\x0A", "<br />&nbsp;&nbsp;&nbsp;&nbsp;");
}
if (item.Nav_Files != null && item.Nav_Files.Any())
{
item.Nav_Files.ForEach(t =>
{
T_SC_STANDARD_CREATE_FILE file = new T_SC_STANDARD_CREATE_FILE();
file.ORG_ID = orgId; file.STANDARD_CREATE_ID = sta.ID;
file.IMG_FILE_ID = t.IMG_FILE_ID;
files.Add(file);
});
}
i++;
//if (item.Nav_Posts != null && item.Nav_Posts.Any())
//{
// item.Nav_Posts.ForEach(t =>
// {
// T_SC_STANDARD_CREATE_POST post = new T_SC_STANDARD_CREATE_POST();
// post.ORG_ID = orgId; post.STANDARD_CREATE_ID = sta.ID;
// post.POST_ID = t.POST_ID;
// posts.Add(post);
// });
//}
stas.Add(sta);
}
}
entity = null;
UnifiedCommit(() =>
{
if (stas != null && stas.Any())
this.BantchSaveEntityNoCommit(stas);
if (files != null && files.Any())
this.BantchSaveEntityNoCommit(files);
//if (posts != null && posts.Any())
// this.BantchSaveEntityNoCommit(posts);
});
return true;
});
}
/// <summary>
/// 新增/编辑
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost, Route("FullUpdate")]
public JsonActionResult<bool> FullUpdate([FromBody] T_SC_STANDARD_CREATE entity)
{
return SafeExecute(() =>
{
T_FM_NOTIFICATION_TASK task = null;
var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId;
KeywordFilter filter = new KeywordFilter();
filter.OrgId = orgId;
filter.Keyword = entity.TYPE.GetInt().ToString();
var files = entity.Nav_Files;
entity.STATUS = SCSystemEditStatus.稿;
var loginUserId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
entity.USER_ID = loginUserId;
entity.DEPARTMENT_ID = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID;
entity.VERSION = entity.VERSION == null ? 1 : entity.VERSION;
entity.FILE_STATUS = SCSystemFileStatus.;
//entity.IMPORT_TYPE = DisableStatusEnum.否;
if (string.IsNullOrEmpty(entity.CODE))
{
var code = GetFileCode(filter).Data;
if (string.IsNullOrEmpty(code))
throw new Exception("制度编号不能为空,请关闭当前页面重新新增");
else
{
if (code.Length <= 5)
throw new Exception("制度编号错误,请关闭当前页面重新新增");
else
entity.CODE = code;
}
}
if (files != null && files.Any())
{
files.ForEach(t =>
{
t.ORG_ID = entity.ORG_ID; t.STANDARD_CREATE_ID = entity.ID;
});
}
if (!string.IsNullOrEmpty(entity.FILE_CONTENT))
{
entity.FILE_CONTENT = entity.FILE_CONTENT.Replace("\x20", "&nbsp;").Replace("\x0A", "<br />&nbsp;&nbsp;&nbsp;&nbsp;");
}
var userInfo = this.GetEntity<T_FM_USER>(t => t.ENABLE_STATUS == (int)FMEnableStatusEnum. && t.ID == loginUserId, "Nav_Department");
if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify"))
{
if (userInfo != null && userInfo.Nav_Department != null)
{
if (entity.IMPORT_TYPE == DisableStatusEnum.)
{
entity.STATUS = SCSystemEditStatus.;
entity.Nav_Files = null;
//取审批流水码
var sysFilter = new SystemCodeFilter();
sysFilter.CodeType = (int)PFCodeRuleType.;
sysFilter.Count = 1;
sysFilter.OrgId = entity.ORG_ID;
var codes = CodeRuleService.NewGenSerial(sysFilter);
var serialCode = codes.Split(new char[] { ',' });
var param = Enum.GetName(typeof(SCDepartmentType), entity.DEPARTMENT_TYPE);
MFlowPermitService.InsertApprove(serialCode[0], "SC046", param, entity.ID, "SC046_SHOWPRINT", entity.TaskID, true, () =>
{
if (entity != null)
this.UpdateEntityNoCommit(entity);
if (files != null && files.Any())
this.BantchSaveEntityNoCommit(files);
}, null, null, null, null, null, "SC046_SHOWPRINT", null, entity.NAME + "创建");
return true;
}
else
{
entity.STATUS = SCSystemEditStatus.;
entity.FILE_STATUS = SCSystemFileStatus.;
}
}
if (entity.TaskID != Guid.Empty)
{
task = NotificationTaskService.GetTaskFinishModel(entity.TaskID);
task.SOURCE_FORMCODE = "SC046_SHOWPRINT";
}
}
entity.Nav_Files = null;
UnifiedCommit(() =>
{
if (entity != null)
this.UpdateEntityNoCommit(entity);
if (files != null && files.Any())
this.BantchSaveEntityNoCommit(files);
if (task != null)
this.UpdateEntityNoCommit(task);
});
return true;
});
}
/// <summary>
/// 获取
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("GetEdit")]
public JsonActionResult<T_SC_STANDARD_CREATE> GetEdit([FromBody] KeywordFilter filter)
{
return SafeExecute(() => {
var id = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "ID").Value.ToString();
if (string.IsNullOrEmpty(id))
this.ThrowError("030017");
var result = this.GetEntity<T_SC_STANDARD_CREATE>(id, new string[] { "Nav_User", "Nav_User.Nav_Department",
"Nav_Files","Nav_Files.Nav_ImgFile","Nav_Files.Nav_ImgFile.Nav_File","Nav_Post"
});
if (result != null && !string.IsNullOrEmpty(result.FILE_CONTENT))
{
result.FILE_CONTENT = result.FILE_CONTENT.Replace("&nbsp;", "\x20").Replace("<br />", "\n");
}
return result;
});
}
/// <summary>
/// 修订/废除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost, Route("FullRevisionUpdate")]
public JsonActionResult<bool> FullRevisionUpdate([FromBody] T_SC_STANDARD_CREATE entity)
{
return SafeExecute(() =>
{
//var oldEntity = this.GetEntity<T_SC_STANDARD_CREATE>(entity.ID.ToString());
//if (oldEntity != null)
//{
// if (oldEntity.STATUS != SCSystemEditStatus.已归档)
// this.ThrowError("040003");
//}
if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndScrap"))
{
if (entity.STATUS != SCSystemEditStatus.)
this.ThrowError("040009");
}
if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify"))
{
if (entity.STATUS != SCSystemEditStatus.)
this.ThrowError("040008");
}
var files = entity.Nav_Files;
entity.ID = Guid.NewGuid();
entity.STATUS = SCSystemEditStatus.稿;
var loginUserId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
entity.USER_ID = loginUserId;
entity.VERSION = entity.VERSION +1;
entity.IMPORT_TYPE = DisableStatusEnum.;
if (files != null && files.Any())
{
files.ForEach(t =>
{
t.ORG_ID = entity.ORG_ID; t.STANDARD_CREATE_ID = entity.ID;
});
}
T_SC_STANDARD_CREATE oldEntity = null;
//废除
if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndScrap"))
{
//entity.STATUS = SCSystemEditStatus.已废除;
//entity.FILE_STATUS = SCSystemFileStatus.失效;
//oldEntity = this.GetEntity<T_SC_STANDARD_CREATE>(t => t.ID != entity.ID && t.CODE == entity.CODE && t.FILE_STATUS == SCSystemFileStatus.有效);
//if (oldEntity != null)
// oldEntity.FILE_STATUS = SCSystemFileStatus.失效;
entity.FILE_STATUS = SCSystemFileStatus.;
entity.STATUS = SCSystemEditStatus.;
entity.Nav_Files = null;
//取审批流水码
var sysFilter = new SystemCodeFilter();
sysFilter.CodeType = (int)PFCodeRuleType.;
sysFilter.Count = 1;
sysFilter.OrgId = entity.ORG_ID;
var codes = CodeRuleService.NewGenSerial(sysFilter);
var serialCode = codes.Split(new char[] { ',' });
var param = Enum.GetName(typeof(SCDepartmentType), entity.DEPARTMENT_TYPE);
MFlowPermitService.InsertApprove(serialCode[0], "SC052", param, entity.ID, "SC052_SHOWPRINT", entity.TaskID, true, () =>
{
if (entity != null)
this.UpdateEntityNoCommit(entity);
if (files != null && files.Any())
this.BantchSaveEntityNoCommit(files);
}, null, null, null, null, null, "SC052_SHOWPRINT", null, entity.NAME + "废除");
return true;
}
//修订
if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify"))
{
//var formCode = "SC052";
//switch (entity.TYPE)
//{
// case SCType.制度:
// formCode = "SC052";
// break;
// case SCType.安全生产责任制:
// formCode = "SC052";
// break;
// case SCType.岗位安全操作规程和指导书:
// break;
// case SCType.应急预案修订记录:
// break;
// default: formCode = "SC052";
// break;
//}
entity.FILE_STATUS = SCSystemFileStatus.;
entity.STATUS = SCSystemEditStatus.;
entity.Nav_Files = null;
if (!string.IsNullOrEmpty(entity.FILE_CONTENT))
{
entity.FILE_CONTENT = entity.FILE_CONTENT.Replace("\x20", "&nbsp;").Replace("\x0A", "<br />&nbsp;&nbsp;&nbsp;&nbsp;");
}
//取审批流水码
var sysFilter = new SystemCodeFilter();
sysFilter.CodeType = (int)PFCodeRuleType.;
sysFilter.Count = 1;
sysFilter.OrgId = entity.ORG_ID;
var codes = CodeRuleService.NewGenSerial(sysFilter);
var serialCode = codes.Split(new char[] { ',' });
var param = Enum.GetName(typeof(SCDepartmentType), entity.DEPARTMENT_TYPE);
MFlowPermitService.InsertApprove(serialCode[0], "SC052", param, entity.ID, "SC052_SHOWPRINT", entity.TaskID, true, () =>
{
if (entity != null)
this.UpdateEntityNoCommit(entity);
if (files != null && files.Any())
this.BantchSaveEntityNoCommit(files);
}, null, null, null, null, null, "SC052_SHOWPRINT", null, entity.NAME+ "修订");
return true;
}
entity.Nav_Files = null;
UnifiedCommit(() =>
{
if (entity != null)
this.UpdateEntityNoCommit(entity);
if (oldEntity != null)
this.UpdateEntityNoCommit(oldEntity);
if (files != null && files.Any())
this.BantchSaveEntityNoCommit(files);
});
return true;
});
}
/// <summary>
/// 回调函数
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet, Route("BackUpdate")]
public JsonActionResult<bool> BackUpdate(string id)
{
return SafeExecute(() =>
{
return ApproveCallBackService.CallBack("SC/SCStandardCreate/BackUpdate", id);
});
}
/// <summary>
/// 自动生成CODE
/// </summary>
/// <param name="filter"></param>
[HttpPost, Route("GetFileCode")]
public JsonActionResult<string> GetFileCode([FromBody] KeywordFilter filter)
{
return SafeExecute<string>(() =>
{
var fileCode = "";
var nextCodeInfo = this.GetEntities<T_SC_STANDARD_CREATE>(t => !t.IS_DELETED && (int)t.TYPE == int.Parse(filter.Keyword), new BaseFilter(filter.OrgId)).OrderByDescending(t => t.CREATE_TIME).FirstOrDefault();
var year = DateTime.Now.Year;
var month = DateTime.Now.Month.PadLeft(2, '0');
var day = DateTime.Now.Day.PadLeft(2, '0');
var prefix = "ZD";
if (filter.Keyword == "1")
prefix = "ZRZ";
if (filter.Keyword == "2")
prefix = "GWGC";
if (filter.Keyword == "3")
prefix = "YJYA";
if (nextCodeInfo == null)
{
fileCode = prefix + year + month + day + "00001";
}
else
{
if (nextCodeInfo.CODE.Length <= 5)
{
fileCode = prefix + year + month + day + "00001";
}
//取最后五位序列号
var serial = nextCodeInfo.CODE.Substring(nextCodeInfo.CODE.Length - 5);
//序列号+1不足五位补0
var num = (int.Parse(serial) + 1).ToString().PadLeft(5, '0');
fileCode = prefix + year + month + day + num;
}
return fileCode;
});
}
/// <summary>
/// 排序分页查询数据
/// </summary>
/// <param name="pageFilter">分页过滤实体</param>
/// <returns></returns>
[HttpPost, Route("FullOrderPaged")]
public PagedActionResult<T_SC_STANDARD_CREATE> FullOrderPaged([FromBody] KeywordPageFilter pageFilter)
{
var result = new PagedActionResult<T_SC_STANDARD_CREATE>();
var id = pageFilter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "ID").Value.ToString();
if (string.IsNullOrEmpty(id))
this.ThrowError("030017");
var entity = this.GetEntity<T_SC_STANDARD_CREATE>(id);
FilterRule rule = new FilterRule();
rule.Field = "CODE";
rule.Value = entity.CODE;
FilterRule ruleOrg = new FilterRule();
ruleOrg.Field = "ORG_ID";
ruleOrg.Value = entity.ORG_ID;
FilterRule ruleType = new FilterRule();
ruleOrg.Field = "TYPE";
ruleOrg.Value = entity.TYPE;
pageFilter = new KeywordPageFilter();
pageFilter.FilterGroup.Rules.Add(rule);
pageFilter.FilterGroup.Rules.Add(ruleOrg);
pageFilter.Sort = "CREATE_TIME";
pageFilter.Order = 0;
pageFilter.Include.Add("Nav_User");
pageFilter.Include.Add("Nav_Department");
pageFilter.SelectField.Clear();
result = this.GetOrderPageEntities<T_SC_STANDARD_CREATE>(null, pageFilter);
if (result.Data != null && result.Data.Any())
{
result.Data.ForEach(t =>
{
if (string.IsNullOrEmpty(t.REASON))
t.REASON = "/";
if(string.IsNullOrEmpty(t.PROFILE))
t.PROFILE = "/";
t.VERSION_NAME = t.VERSION==null ? 0.ToString("#0.0") : t.VERSION.Value.ToString("#0.0");
});
}
return result;
}
/// <summary>
/// 排序分页查询数据
/// </summary>
/// <param name="pageFilter">分页过滤实体</param>
/// <returns></returns>
[HttpPost, Route("OrderPagedNew")]
public PagedActionResult<T_SC_STANDARD_CREATE> OrderPagedNew([FromBody] KeywordPageFilter pageFilter)
{
pageFilter.Include.Add("Nav_Department");
pageFilter.Include.Add("Nav_Files.Nav_ImgFile.Nav_File");
pageFilter.SelectField.Clear();
var result = this.GetOrderPageEntities<T_SC_STANDARD_CREATE>(null, pageFilter);
if (result.Data != null && result.Data.Any())
{
result.Data = result.Data.GroupBy(t => t.CODE).Select(y => y.OrderByDescending(x => x.CREATE_TIME).FirstOrDefault()).ToList();
result.Data.ForEach(t =>
{
if (!string.IsNullOrEmpty(t.FILE_CONTENT))
{
t.FILE_CONTENT = t.FILE_CONTENT.Replace("&nbsp;", "\x20").Replace("<br />", "\n");
}
});
//result.TotalCount = result.TotalCount;
}
return result;
}
/// <summary>
/// 获取导入数据
/// 参考 [Route("api/PF/Import")]
/// </summary>
/// <returns></returns>
[HttpPost, Route("GetImportData")]
public JsonActionResult<ImportDataModel> GetImportData()
{
return SafeExecute<ImportDataModel>(() =>
{
var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId;
var httpRequest = this.HttpContext.Request;
string orgIdStr = httpRequest.Form["OrgId"];// 获取 组织
ImportDataModel result = new ImportDataModel();
var dic = Path.Combine(System.AppContext.BaseDirectory, "tempImportFiles");
if (!Directory.Exists(dic))
Directory.CreateDirectory(dic);
foreach (var key in httpRequest.Form.Files) // 文件键
{
var postedFile = key; // 获取文件键对应的文件对象
string filePath = Path.Combine(dic, DateTime.Now.ToString("yyyy_MM_dd_hh_mm_ss") + "_" + postedFile.FileName);
Byte[] fileData = new Byte[postedFile.Length];
Stream sr = postedFile.OpenReadStream();//创建数据流对象
sr.Read(fileData, 0, (int)postedFile.Length);
using (FileStream fs = new FileStream(filePath, FileMode.CreateNew))
{
fs.Write(fileData, 0, fileData.Length);
fs.Flush();
fs.Close();
}
//获取数据
Dictionary<int, int> startRowIndexs = new Dictionary<int, int>();
startRowIndexs.Add(0, 1);//根据Excel格式数据赋值
var dataTables = FileUtils.ReadExcelByOledb(filePath, startRowIndexs);
string Msg = string.Empty;
bool isOK = InsertModel(dataTables.Tables[0], orgId, ref Msg);
try
{
System.IO.File.Delete(filePath);
}
catch { }
result.Data = Msg;
result.MessageList = new List<string> { Msg };
}
return result;
});
}
/// <summary>
/// 数据插入
/// </summary>
/// <param name="dtSource"></param>
/// <param name="OrgID"></param>
/// <param name="Msg"></param>
/// <param name="rowIndex"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public bool InsertModel(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1)
{
var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
if (dtSource == null || dtSource.Rows.Count < rowIndex)
{
Msg = "未获取到导入数据";
throw new Exception(Msg);
}
int rowAll = dtSource.Rows.Count;
if (!string.IsNullOrEmpty(Msg))
{
throw new Exception(Msg);
}
var newFilter = new BaseFilter(orgId);
newFilter.SelectField = new List<string> { "NAME" };
var standLaws = this.GetEntities<T_SC_STANDARD_CREATE>(t => !t.IS_DELETED, newFilter);
List<T_SC_STANDARD_CREATE> laws = new List<T_SC_STANDARD_CREATE>();
var lawTypess = GetEntities<T_SC_POST>(t => t.IS_DELETED == false, new BaseFilter(orgId));
var departments = GetEntities<T_FM_DEPARTMENT>(t => t.IS_DELETED == false, new BaseFilter(orgId));
DateTime dtNow = DateTime.Now;
KeywordFilter filter = new KeywordFilter();
filter.OrgId = orgId;
filter.Keyword = "0";
if (dtSource.Rows[1][0].ToString().Trim() != "制度" && dtSource.Rows[1][0].ToString().Trim() != "安全生产责任制" && dtSource.Rows[1][0].ToString().Trim() != "岗位安全操作规程和指导书" && dtSource.Rows[1][0].ToString().Trim() != "应急预案")
{
throw new Exception("体系类型未按规定填写(制度,安全生产责任制,岗位安全操作规程和指导书,应急预案)");
}
else
{
switch (dtSource.Rows[1][0].ToString().Trim())
{
case "制度":
filter.Keyword = "0";
break;
case "安全生产责任制":
filter.Keyword = "1";
break;
case "岗位安全操作规程和指导书":
filter.Keyword = "2";
break;
case "应急预案":
filter.Keyword = "3";
break;
default:
filter.Keyword = "0";
break;
}
}
var code = GetFileCode(filter).Data;
int j = 1;
for (int i = 0; i < rowAll; i++)
{
T_SC_STANDARD_CREATE law = new T_SC_STANDARD_CREATE();
law.ID = Guid.NewGuid();
law.VERSION = 1;
law.USER_ID = (Guid)userId;
law.STATUS = SCSystemEditStatus.稿;
law.FILE_STATUS = SCSystemFileStatus.;
law.IMPORT_TYPE = DisableStatusEnum.;
// 取最后五位序列号
var serial = code.Substring(code.Length - 5);
//序列号+1不足五位补0
var num = (int.Parse(serial) + i).ToString().PadLeft(5, '0');
var temp = code.Substring(0, code.Length - 5);
law.CODE = temp + num;
if (dtSource.Rows[i][0].ToString().Trim() == "制度")
{
law.TYPE = 0;
}
else if (dtSource.Rows[i][0].ToString().Trim() == "安全生产责任制")
{
law.TYPE = (SCType)1;
if (string.IsNullOrEmpty(dtSource.Rows[i][7].ToString().Trim()))
throw new Exception("责任制导入,必须填写责任制岗位");
else
{
var post = lawTypess.FirstOrDefault(t => t.NAME == dtSource.Rows[i][7].ToString().Trim());
if (post != null)
{
law.POST_ID = post.ID;
}
else
throw new Exception("责任制岗位:" + dtSource.Rows[i][7].ToString().Trim() + "未找到");
}
if (string.IsNullOrEmpty(dtSource.Rows[i][8].ToString().Trim()))
throw new Exception("责任制导入,必须填写责任制说明");
else
{
law.NOTE = dtSource.Rows[i][8].ToString().Trim();
}
if (string.IsNullOrEmpty(dtSource.Rows[i][9].ToString().Trim()))
throw new Exception("责任制导入,必须填写文件名称");
else
{
law.FILE_NAME = dtSource.Rows[i][9].ToString().Trim();
}
if (string.IsNullOrEmpty(dtSource.Rows[i][10].ToString().Trim()))
throw new Exception("责任制导入,必须填写文件内容");
else
{
law.FILE_CONTENT = dtSource.Rows[i][10].ToString().Trim().Replace("\x20", "&nbsp;").Replace("\x0A", "<br />&nbsp;&nbsp;&nbsp;&nbsp;");
}
}
else if (dtSource.Rows[i][0].ToString().Trim() == "岗位安全操作规程和指导书")
{
law.TYPE = (SCType)2;
}
else if (dtSource.Rows[i][0].ToString().Trim() == "应急预案")
{
law.TYPE = (SCType)3;
}
else
{
throw new Exception("体系类型未按规定填写(制度,安全生产责任制,岗位安全操作规程和指导书,应急预案)");
}
if (dtSource.Rows[i][1].ToString().Trim() != "全公司" && dtSource.Rows[i][1].ToString().Trim() != "选矿厂" && dtSource.Rows[i][1].ToString().Trim() != "尾矿库" && dtSource.Rows[i][1].ToString().Trim() != "露天矿")
{
throw new Exception("生产单元未按规定填写(全公司,露天矿,选矿厂,尾矿库)");
}
else
{
switch (dtSource.Rows[i][1].ToString().Trim())
{
case "全公司":
law.MineType = 0;
break;
case "露天矿":
law.MineType = (FMProductionUnit)30;
break;
case "选矿厂":
law.MineType = (FMProductionUnit)10;
break;
case "尾矿库":
law.MineType = (FMProductionUnit)20;
break;
default:
law.MineType = 0;
break;
}
//law.MineType = (FMProductionUnit)int.Parse(dtSource.Rows[i][1].ToString().Trim());
}
if (!string.IsNullOrEmpty(dtSource.Rows[i][2].ToString().Trim()))
{
var standLaw = standLaws.FirstOrDefault(t => t.NAME == dtSource.Rows[i][2].ToString().Trim() && t.MineType == (FMProductionUnit)law.MineType);
if (standLaw == null)
law.NAME = dtSource.Rows[i][2].ToString().Trim();
else
throw new Exception("当前生产单元制度名称" + dtSource.Rows[i][2].ToString().Trim() + "已存在,不能重复导入");
}
else
throw new Exception("制度名称必须填写");
if (departments.FirstOrDefault(t => t.NAME == dtSource.Rows[i][3].ToString().Trim()) != null)
{
law.DEPARTMENT_ID = departments.FirstOrDefault(t => t.NAME == dtSource.Rows[i][3].ToString().Trim()).ID;
law.UNIT = dtSource.Rows[i][3].ToString().Trim();
}
else
throw new Exception("编制单位:" + dtSource.Rows[i][3].ToString().Trim() + "未找到");
if (dtSource.Rows[i][4].ToString().Trim() != "部门级" && dtSource.Rows[i][4].ToString().Trim() != "车间级" && dtSource.Rows[i][4].ToString().Trim() != "班组级" && dtSource.Rows[i][4].ToString().Trim() != "公司级")
{
throw new Exception("部门类型未按规定填写(公司级,部门级,车间级,班组级)");
}
else
{
switch (dtSource.Rows[i][4].ToString().Trim())
{
case "公司级":
law.DEPARTMENT_TYPE = (SCDepartmentType)3;
break;
case "部门级":
law.DEPARTMENT_TYPE = (SCDepartmentType)0;
break;
case "车间级":
law.DEPARTMENT_TYPE = (SCDepartmentType)1;
break;
case "班组级":
law.DEPARTMENT_TYPE = (SCDepartmentType)2;
break;
default:
law.DEPARTMENT_TYPE = (SCDepartmentType)3;
break;
}
//law.DEPARTMENT_TYPE = (SCDepartmentType)int.Parse(dtSource.Rows[i][4].ToString().Trim());
}
if (!string.IsNullOrEmpty(dtSource.Rows[i][5].ToString().Trim()))
{
law.COMPILE_TIME = DateTime.Parse(dtSource.Rows[i][5].ToString().Trim());
}
if (!string.IsNullOrEmpty(dtSource.Rows[i][6].ToString().Trim()))
{
law.PUBLISH_TIME = DateTime.Parse(dtSource.Rows[i][6].ToString().Trim());
}
law.ORG_ID = orgId;
laws.Add(law);
}
UnifiedCommit(() =>
{
if (laws != null && laws.Any())
BantchAddEntityNoCommit(laws);
});
Msg = "导入成功!";
return true;
}
}
}