d_sms_service/APT.MicroApi/APT.PF.WebApi/Controllers/Api/ImportController.cs
2024-10-28 13:45:58 +08:00

1329 lines
64 KiB
C#

using APT.BaseData.Domain.ApiModel;
using APT.BaseData.Domain.ApiModel.Platform;
using APT.BaseData.Domain.Entities;
using APT.BaseData.Domain.Entities.BD;
using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Domain.Enums;
using APT.BaseData.Domain.IServices;
using APT.BaseData.Domain.IServices.FM;
using APT.Infrastructure.Api;
using APT.Infrastructure.Core;
using APT.Utility;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Data;
using System.Dynamic;
using System.IO;
using System.Linq;
using System.Text;
namespace APT.PF.WebApiControllers.Api.PF
{
[Route("api/PF/Import")]
public class ImportController : APTApiController<T_PF_FILE>
{
/// <summary>
/// 获取导入数据
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("GetImportData")]
public JsonActionResult<ImportDataModel> GetImportData()
{
return SafeExecute<ImportDataModel>(() =>
{
return Import(false);
});
}
[HttpPost, Route("DownLoadFile")]
public JsonActionResult<dynamic> DownLoadFile([FromBody] dynamic config)
{
return SafeExecute<dynamic>(() =>
{
var importService = APT.Infrastructure.Api.ServiceLocator.Instance.GetService<IFMImportService>();
var importData = importService.DownLoadFile(config);
return importData;
});
}
private ImportDataModel Import(bool isUpdate)
{
var httpRequest = this.HttpContext.Request;
string orgIdStr = httpRequest.Form["OrgId"];// 获取 组织
string importConfigCode = httpRequest.Form["ImportConfigCode"];//导入配置代码
var delFlag = false;
if (!string.IsNullOrEmpty(httpRequest.Form["delFlag"]))
{
delFlag = bool.Parse(httpRequest.Form["delFlag"]);
}
Guid? orgId = null;
if (!string.IsNullOrEmpty(orgIdStr))
orgId = new Guid(orgIdStr);
else
return null;
ImportDataModel result = null;
var importService = APT.Infrastructure.Api.ServiceLocator.Instance.GetService<IFMImportService>();
foreach (var key in httpRequest.Form.Files) // 文件键
{
var postedFile = key; // 获取文件键对应的文件对象
var dic = Path.Combine(System.AppContext.BaseDirectory, "tempImportFiles");
if (!Directory.Exists(dic))
Directory.CreateDirectory(dic);
string fileName = 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(fileName, FileMode.CreateNew))
{
fs.Write(fileData, 0, fileData.Length);
fs.Flush();
fs.Close();
}
result = importService.GetImortData(orgId.Value, importConfigCode, fileName, isUpdate, delFlag);
try
{
System.IO.File.Delete(fileName);
}
catch { }
}
return result;
}
[HttpPost, Route("ImportAndUpdate")]
public JsonActionResult<ImportDataModel> ImportAndUpdate()
{
return SafeExecute<ImportDataModel>(() =>
{
return Import(true);
});
}
[HttpPost, Route("ImportUpdateTest")]
public JsonActionResult<bool> ImportUpdateTest(IFormCollection files)
{
return SafeExecute<bool>(() =>
{
var httpRequest = this.HttpContext.Request;
string orgIdStr = httpRequest.Form["OrgId"];
string fileName = string.Empty;//文件名称
#region
foreach (var key in httpRequest.Form.Files) // 文件键
{
var postedFile = key; // 获取文件键对应的文件对象
var dic = Path.Combine(System.AppContext.BaseDirectory, "tempImportFiles");
if (!Directory.Exists(dic))
Directory.CreateDirectory(dic);
fileName = 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(fileName, FileMode.CreateNew))
{
fs.Write(fileData, 0, fileData.Length);
fs.Flush();
fs.Close();
}
}
#endregion
////List<T_ED_PROD_RECORD> prodRecodes = new List<T_ED_PROD_RECORD>();//产品生产记录表
//List<T_ED_PROD_RECORD> addRecords = new List<T_ED_PROD_RECORD>();
//List<T_ED_PROD_RECORD> updateRecords = new List<T_ED_PROD_RECORD>();
//#region excel读取
//var importTempDatas = FileUtils.ReadExcelByImport(fileName.Contains(".xlsx") ? fileName : fileName + ".xlsx");
//#endregion
//DateTime date = Convert.ToDateTime(importTempDatas[0].START_TIME);
//var timeMin = new DateTime(date.Year, date.Month, 1);//月份第一天
//var timeEnd = timeMin.AddMonths(1).AddDays(-1);//月份最后一天
//#region 获取生产单元信息
//var baseFilter = new BaseFilter(new Guid(orgIdStr));
//baseFilter.SelectField = new string[] { "ID", "NAME" };
//var nodes = this.GetEntities<T_BD_METER_NODE>(t => t.IS_PLAN, baseFilter);
//#endregion
//#region 获取产品生产记录表旧数据
//var baseFilterold = new BaseFilter();
//baseFilterold.SelectField = new string[] { "ID", "QTY", "METER_NODE_ID", "START_TIME" };
//var oldRecords = this.GetEntities<T_ED_PROD_RECORD>(t => t.START_TIME >= timeMin && t.START_TIME <= timeEnd, baseFilterold, true).ToList();
//#endregion
//#region 生产ID
//var baseFilterPud = new BaseFilter();
//baseFilterPud.SelectField = new string[] { "ID" };
//var product = this.GetEntity<T_FM_PRODUCT>(i => i.ORG_ID == new Guid(orgIdStr), baseFilterPud);
//#endregion
//foreach (var item in importTempDatas)
//{
// item.METER_NODE_ID = nodes.Single(x => x.NAME == item.Name).ID;
// if (oldRecords.Any(x => x.METER_NODE_ID == item.METER_NODE_ID && x.START_TIME == Convert.ToDateTime(item.START_TIME)))//旧表已存在数据
// {
// var nodeRecords = oldRecords.Where(x => x.METER_NODE_ID == item.METER_NODE_ID
// && x.START_TIME >= Convert.ToDateTime(item.START_TIME) && x.START_TIME < Convert.ToDateTime(item.START_TIME).AddDays(1));
// var dbQty = nodeRecords.Sum(i => i.QTY);
// if (dbQty < Convert.ToDecimal(item.QTY))//新修改的数据值大
// {
// var record = nodeRecords.FirstOrDefault();
// record.QTY += (Convert.ToDecimal(item.QTY) - dbQty);
// updateRecords.Add(record);
// }
// else if (dbQty > Convert.ToDecimal(item.QTY))//新修改的值变小
// {
// var deQty = dbQty - Convert.ToDecimal(item.QTY);
// foreach (var x in nodeRecords)
// {
// var minQty = Math.Min(x.QTY, deQty);
// x.QTY -= minQty;
// updateRecords.Add(x);
// deQty -= minQty;
// if (deQty <= 0)
// break;
// }
// }
// }
// else//不存在
// {
// var record = new T_ED_PROD_RECORD()
// {
// ID = Guid.NewGuid(),
// PRODUCT_ID = product.ID,
// QTY = Convert.ToDecimal(item.QTY),
// START_TIME = Convert.ToDateTime(item.START_TIME),
// END_TIME = Convert.ToDateTime(item.START_TIME).AddDays(1),
// METER_NODE_ID = item.METER_NODE_ID,
// ORG_ID = new Guid(orgIdStr)
// };
// addRecords.Add(record);
// }
//}
//#region 更新数据
//this.UnifiedCommit(() =>
//{
// this.BantchUpdateEntityNoCommit(updateRecords, new string[] { "QTY" });
// this.BantchAddEntityNoCommit(addRecords);
//});
//#endregion
return true;
});
}
//#region 导入历史数据
///// <summary>
///// 导入历史用量数据
///// </summary>
///// <param name="files">导入的Excel</param>
///// <returns></returns>
//[HttpPost, Route("ImportHistData")]
//public JsonActionResult<dynamic> ImportHistData(IFormCollection files)
//{
// return SafeExecute<dynamic>(() =>
// {
// dynamic result = new ExpandoObject();
// var httpRequest = this.HttpContext.Request;
// string orgIdStr = httpRequest.Form["OrgId"];
// string fileName = string.Empty;//文件名称
// #region 文件先保存
// foreach (var key in httpRequest.Form.Files) // 文件键
// {
// var postedFile = key; // 获取文件键对应的文件对象
// var dic = Path.Combine(System.AppContext.BaseDirectory, "histImportFiles");
// if (!Directory.Exists(dic))
// Directory.CreateDirectory(dic);
// fileName = 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(fileName, FileMode.CreateNew))
// {
// fs.Write(fileData, 0, fileData.Length);
// fs.Flush();
// fs.Close();
// }
// }
// #endregion
// List<T_EM_HIST_ENERGY_DOSAGE_MONTH> addDosage = new List<T_EM_HIST_ENERGY_DOSAGE_MONTH>();
// List<T_EM_HIST_ENERGY_DOSAGE_MONTH> updateDosage = new List<T_EM_HIST_ENERGY_DOSAGE_MONTH>();
// #region excel读取
// var importHistDatas = FileUtils.ReadExcelByImportHistData(fileName);
// if (importHistDatas.Count == 0)
// return null;
// var stime = importHistDatas.Min(x => x.Time);
// var etime = importHistDatas.Max(x => x.Time);
// #endregion
// #region 获取器具信息和节点信息
// var baseFilter = new BaseFilter(new Guid(orgIdStr))
// {
// IgnoreDataRule = true,
// SelectField = new string[] {
// "NAME", "Nav_ApplianceAttrs", "ENERGY_CLASS_ID", "APPLIANCE_GRADE",
// "Nav_EnergyClass.Nav_EnergyType.Nav_UnitEnumItem.POINTNUM",
// "Nav_EnergyClass.Nav_EnergyType.Nav_UnitEnumItem.NAME" }
// };
// var apps = this.GetEntities<T_BD_APPLIANCE>(x => x.ENABLE_STATUS == (int)FMEnableStatusEnum.启用, baseFilter)?.ToList();
// baseFilter.SelectField = new string[]
// {
// "PARENT_ID", "APPLIANCE_ID", "NAME", "Nav_Appliance.NAME", "Nav_Appliance.APPLIANCE_GRADE"
// };
// var node = GetEntities<T_BD_METER_NODE>(x => x.Nav_Appliance != null, baseFilter);
// #endregion
// #region 获取历史用量表数据
// baseFilter.SelectField = new string[] {
// "APPLIANCE_ID", "TIME", "DOSAGE", "ORG_ID"
// };
// updateDosage = GetEntities<T_EM_HIST_ENERGY_DOSAGE_MONTH>(x => x.TIME >= stime && x.TIME <= etime, baseFilter)?.ToList();
// #endregion
// var head = new List<TableHeadModel>
// {
// new TableHeadModel { Title = $"器具", DataIndex = "app" },
// new TableHeadModel { Title = "节点名称", DataIndex = "node" },
// new TableHeadModel { Title = "器具等级", DataIndex = "grade" },
// new TableHeadModel { Title = "单位", DataIndex = "unit" }
// };
// var startTime = new DateTime(stime.Year, 1, 1);
// var endTime = stime.AddYears(1);
// while (startTime < endTime)
// {
// head.Add(new TableHeadModel { Title = startTime.ToString("yyyy-MM"), DataIndex = startTime.ToString("yyyy-MM") });
// startTime = startTime.AddMonths(1);
// }
// var dataList = new List<Dictionary<string, object>>();
// if (importHistDatas.Any())
// {
// var appArry = importHistDatas.Select(x => x.Name);
// var app = new List<string>();
// foreach (var item in appArry)
// {
// var appName = apps.Where(x => x.NAME.Contains(item)).FirstOrDefault();
// if (appName != null && !app.Contains(appName.NAME))
// {
// app.Add(appName.NAME);
// }
// }
// foreach (var item in app)
// {
// var meterNode = node.FirstOrDefault(x => x.Nav_Appliance?.NAME == item);
// var read = apps.FirstOrDefault(x => x.NAME == item);
// var dicData = new Dictionary<string, object>
// {
// { "app", item },
// { "node", meterNode?.NAME },
// { "grade", Enum.GetName(typeof(FMApplianceGrade), read.APPLIANCE_GRADE) },
// { "unit", read.Nav_EnergyClass.Nav_EnergyType.Nav_UnitEnumItem.NAME }
// };
// dataList.Add(dicData);
// }
// foreach (var item in importHistDatas)
// {
// var appAttr = apps.Where(x => x.NAME.Contains(item.Name)).FirstOrDefault();
// if (appAttr != null)
// {
// var pointNum = appAttr.Nav_EnergyClass.Nav_EnergyType.Nav_UnitEnumItem.POINTNUM;
// var month = updateDosage.FirstOrDefault(x => x.APPLIANCE_ID == appAttr.ID && x.TIME.ToIMonth() == item.Time.ToIMonth());
// if (month == null)
// {
// var energyDosage = new T_EM_HIST_ENERGY_DOSAGE_MONTH()
// {
// ID = new Guid(),
// DOSAGE = item.Data,
// APPLIANCE_ID = appAttr.ID,
// TIME = item.Time,
// ORG_ID = new Guid(orgIdStr),
// };
// addDosage.Add(energyDosage);
// }
// else
// {
// month.DOSAGE = item.Data;
// }
// foreach (var dic in dataList)
// {
// if (dic.First().Value.ToString() == appAttr.NAME)
// {
// dic[item.Time.ToString("yyyy-MM")] = item.Data.ChangeDoubleToNum(pointNum);
// }
// }
// }
// }
// }
// result.Head = head;
// result.DataSource = dataList;
// #region 更新数据
// this.UnifiedCommit(() =>
// {
// this.BantchUpdateEntityNoCommit(updateDosage);
// this.BantchAddEntityNoCommit(addDosage);
// });
// #endregion
// result.message = true;
// return result;
// });
//}
///// <summary>
///// 导入历史用量数据
///// </summary>
///// <param name="files">导入的Excel</param>
///// <returns></returns>
//[HttpPost, Route("ImportHistValData")]
//public JsonActionResult<dynamic> ImportHistValData(IFormCollection files)
//{
// return SafeExecute<dynamic>(() =>
// {
// dynamic result = new ExpandoObject();
// var httpRequest = this.HttpContext.Request;
// string orgIdStr = httpRequest.Form["OrgId"];
// string fileName = string.Empty;//文件名称
// #region 文件先保存
// foreach (var key in httpRequest.Form.Files) // 文件键
// {
// var postedFile = key; // 获取文件键对应的文件对象
// var dic = Path.Combine(System.AppContext.BaseDirectory, "histImportFiles");
// if (!Directory.Exists(dic))
// Directory.CreateDirectory(dic);
// fileName = 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(fileName, FileMode.CreateNew))
// {
// fs.Write(fileData, 0, fileData.Length);
// fs.Flush();
// fs.Close();
// }
// }
// #endregion
// List<T_EM_HIST_ENERGY_VAL_MONTH> addVal = new List<T_EM_HIST_ENERGY_VAL_MONTH>();
// List<T_EM_HIST_ENERGY_VAL_MONTH> updateVal = new List<T_EM_HIST_ENERGY_VAL_MONTH>();
// #region excel读取
// var importHistDatas = FileUtils.ReadExcelByImportHistData(fileName);
// if (importHistDatas.Count == 0)
// return null;
// var stime = importHistDatas.Min(x => x.Time);
// var etime = importHistDatas.Max(x => x.Time);
// #endregion
// #region 获取器具信息和节点信息
// var baseFilter = new BaseFilter(new Guid(orgIdStr))
// {
// IgnoreDataRule = true,
// SelectField = new string[] {
// "NAME", "Nav_ApplianceAttrs", "ENERGY_CLASS_ID", "APPLIANCE_GRADE",
// "Nav_EnergyClass.Nav_EnergyType.Nav_UnitEnumItem.POINTNUM",
// "Nav_EnergyClass.Nav_EnergyType.Nav_UnitEnumItem.NAME" }
// };
// var apps = this.GetEntities<T_BD_APPLIANCE>(x => x.ENABLE_STATUS == (int)FMEnableStatusEnum.启用, baseFilter)?.ToList();
// baseFilter.SelectField = new string[]
// {
// "PARENT_ID", "APPLIANCE_ID", "NAME", "Nav_Appliance.NAME", "Nav_Appliance.APPLIANCE_GRADE"
// };
// var node = GetEntities<T_BD_METER_NODE>(x => x.Nav_Appliance != null, baseFilter);
// #endregion
// #region 获取历史用量表数据
// baseFilter.SelectField = new string[] {
// "APPLIANCE_ID", "TIME", "VAL", "ORG_ID"
// };
// updateVal = GetEntities<T_EM_HIST_ENERGY_VAL_MONTH>(x => x.TIME >= stime && x.TIME <= etime, baseFilter)?.ToList();
// #endregion
// var head = new List<TableHeadModel>
// {
// new TableHeadModel { Title = $"器具", DataIndex = "app" },
// new TableHeadModel { Title = "节点名称", DataIndex = "node" },
// new TableHeadModel { Title = "器具等级", DataIndex = "grade" },
// new TableHeadModel { Title = "单位", DataIndex = "unit" }
// };
// var startTime = new DateTime(stime.Year, 1, 1);
// var endTime = stime.AddYears(1);
// while (startTime < endTime)
// {
// head.Add(new TableHeadModel { Title = startTime.ToString("yyyy-MM"), DataIndex = startTime.ToString("yyyy-MM") });
// startTime = startTime.AddMonths(1);
// }
// var dataList = new List<Dictionary<string, object>>();
// if (importHistDatas.Any())
// {
// var appArry = importHistDatas.Select(x => x.Name);
// var app = new List<string>();
// foreach (var item in appArry)
// {
// var appName = apps.Where(x => x.NAME.Contains(item)).FirstOrDefault();
// if (appName != null && !app.Contains(appName.NAME))
// {
// app.Add(appName.NAME);
// }
// }
// foreach (var item in app)
// {
// var meterNode = node.FirstOrDefault(x => x.Nav_Appliance?.NAME == item);
// var read = apps.FirstOrDefault(x => x.NAME == item);
// var dicData = new Dictionary<string, object>
// {
// { "app", item },
// { "node", meterNode?.NAME },
// { "grade", Enum.GetName(typeof(FMApplianceGrade), read.APPLIANCE_GRADE) },
// { "unit", read.Nav_EnergyClass.Nav_EnergyType.Nav_UnitEnumItem.NAME }
// };
// dataList.Add(dicData);
// }
// foreach (var item in importHistDatas)
// {
// var appAttr = apps.Where(x => x.NAME.Contains(item.Name)).FirstOrDefault();
// if (appAttr != null)
// {
// var pointNum = appAttr.Nav_EnergyClass.Nav_EnergyType.Nav_UnitEnumItem.POINTNUM;
// var month = updateVal.FirstOrDefault(x => x.APPLIANCE_ID == appAttr.ID && x.TIME.ToIMonth() == item.Time.ToIMonth());
// if (month == null)
// {
// var energyVal = new T_EM_HIST_ENERGY_VAL_MONTH()
// {
// ID = new Guid(),
// VAL = item.Data,
// APPLIANCE_ID = appAttr.ID,
// TIME = item.Time,
// ORG_ID = new Guid(orgIdStr),
// };
// addVal.Add(energyVal);
// }
// else
// {
// month.VAL = item.Data;
// }
// foreach (var dic in dataList)
// {
// if (dic.First().Value.ToString() == appAttr.NAME)
// {
// dic[item.Time.ToString("yyyy-MM")] = item.Data.ChangeDoubleToNum(pointNum);
// }
// }
// }
// }
// }
// result.Head = head;
// result.DataSource = dataList;
// #region 更新数据
// this.UnifiedCommit(() =>
// {
// this.BantchUpdateEntityNoCommit(updateVal);
// this.BantchAddEntityNoCommit(addVal);
// });
// #endregion
// result.message = true;
// return result;
// });
//}
//#endregion
//#region 导入抄表卡数据
///// <summary>
///// 导入年抄表卡数据
///// </summary>
///// <param name="files"></param>
///// <returns></returns>
//[HttpPost, Route("ImportYearMeterReadData")]
//public JsonActionResult<dynamic> ImportYearMeterReadData(IFormCollection files)
//{
// return SafeExecute<dynamic>(() =>
// {
// dynamic result = new ExpandoObject();
// var httpRequest = this.HttpContext.Request;
// string orgIdStr = httpRequest.Form["OrgId"];
// string fileName = string.Empty;//文件名称
// #region 文件先保存
// foreach (var key in httpRequest.Form.Files) // 文件键
// {
// var postedFile = key; // 获取文件键对应的文件对象
// var dic = Path.Combine(System.AppContext.BaseDirectory, "meterImportFiles");
// if (!Directory.Exists(dic))
// Directory.CreateDirectory(dic);
// fileName = 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(fileName, FileMode.CreateNew))
// {
// fs.Write(fileData, 0, fileData.Length);
// fs.Flush();
// fs.Close();
// }
// }
// #endregion
// List<T_EM_METER_READING_YEAR> addMeterRead = new List<T_EM_METER_READING_YEAR>();
// List<T_EM_METER_READING_YEAR> updateMeterRead = new List<T_EM_METER_READING_YEAR>();
// #region excel读取
// var importMeterReadDatas = FileUtils.ReadExcelByImportYearMeterReadData(fileName);
// var sTime = importMeterReadDatas.Min(x => x.Time);
// var eTime = importMeterReadDatas.Max(x => x.Time);
// #endregion
// #region 获取器具信息
// var baseFilter = new BaseFilter(new Guid(orgIdStr))
// {
// IgnoreDataRule = true,
// SelectField = new string[] { "NAME", "Nav_ApplianceAttrs" }
// };
// var apps = this.GetEntities<T_BD_APPLIANCE>(x => x.ENABLE_STATUS == (int)FMEnableStatusEnum.启用, baseFilter);
// #endregion
// #region 获取历史数据
// baseFilter.SelectField = new string[] {
// "APPLIANCE_ID", "TIME", "SRC_DATA", "ORG_ID"
// };
// updateMeterRead = GetEntities<T_EM_METER_READING_YEAR>(x => x.TIME >= sTime && x.TIME <= eTime, baseFilter)?.ToList();
// #endregion
// //var head = new List<TableHeadModel>();
// //head.Add(new TableHeadModel { Title = "器具", DataIndex = "app" });
// //head.Add(new TableHeadModel { Title = "时间", DataIndex = "time" });
// //head.Add(new TableHeadModel { Title = "用量", DataIndex = "dosage" });
// //var dataList = new List<Dictionary<string, object>>();
// if (importMeterReadDatas.Any())
// {
// foreach (var item in importMeterReadDatas)
// {
// var appAttr = apps.Where(x => x.NAME.Contains(item.Name)).FirstOrDefault();
// if (appAttr != null)
// {
// var histRead = updateMeterRead.
// FirstOrDefault(x => x.APPLIANCE_ID == appAttr.ID && x.TIME.ToIMonth() == item.Time.ToIMonth());
// if (histRead == null)
// {
// var meterRead = new T_EM_METER_READING_YEAR()
// {
// ID = new Guid(),
// SRC_DATA = item.Data,
// APPLIANCE_ID = appAttr.ID,
// TIME = item.Time,
// ORG_ID = new Guid(orgIdStr),
// };
// addMeterRead.Add(meterRead);
// }
// else
// histRead.SRC_DATA = item.Data;
// }
// }
// }
// #region 更新数据
// this.UnifiedCommit(() =>
// {
// this.BantchUpdateEntityNoCommit(updateMeterRead);
// this.BantchAddEntityNoCommit(addMeterRead);
// });
// #endregion
// result.message = true;
// //result.Head = head;
// //result.DataSource = dataList;
// return result;
// });
//}
///// <summary>
///// 导入月抄表卡数据
///// </summary>
///// <param name="files"></param>
///// <returns></returns>
//[HttpPost, Route("ImportMonthMeterReadData")]
//public JsonActionResult<dynamic> ImportMonthMeterReadData(IFormCollection files)
//{
// return SafeExecute<dynamic>(() =>
// {
// dynamic result = new ExpandoObject();
// var httpRequest = this.HttpContext.Request;
// string orgIdStr = httpRequest.Form["OrgId"];
// string fileName = string.Empty;//文件名称
// #region 文件先保存
// foreach (var key in httpRequest.Form.Files) // 文件键
// {
// var postedFile = key; // 获取文件键对应的文件对象
// var dic = Path.Combine(System.AppContext.BaseDirectory, "meterImportFiles");
// if (!Directory.Exists(dic))
// Directory.CreateDirectory(dic);
// fileName = 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(fileName, FileMode.CreateNew))
// {
// fs.Write(fileData, 0, fileData.Length);
// fs.Flush();
// fs.Close();
// }
// }
// #endregion
// List<T_EM_METER_READING_MONTH> addMeterRead = new List<T_EM_METER_READING_MONTH>();
// List<T_EM_METER_READING_MONTH> updateMeterRead = new List<T_EM_METER_READING_MONTH>();
// #region excel读取
// var importMeterReadDatas = FileUtils.ReadExcelByImportMonthMeterReadData(fileName);
// var sTime = importMeterReadDatas.Min(x => x.Time);
// var eTime = importMeterReadDatas.Max(x => x.Time);
// #endregion
// #region 获取器具信息
// var baseFilter = new BaseFilter(new Guid(orgIdStr))
// {
// IgnoreDataRule = true,
// SelectField = new string[] { "NAME", "Nav_ApplianceAttrs" }
// };
// var apps = this.GetEntities<T_BD_APPLIANCE>(x => x.ENABLE_STATUS == (int)FMEnableStatusEnum.启用, baseFilter);
// #endregion
// #region 获取历史数据
// baseFilter.SelectField = new string[] {
// "APPLIANCE_ID", "TIME", "SRC_DATA", "ORG_ID"
// };
// updateMeterRead = GetEntities<T_EM_METER_READING_MONTH>(x => x.TIME >= sTime && x.TIME <= eTime, baseFilter)?.ToList();
// #endregion
// //var head = new List<TableHeadModel>();
// //head.Add(new TableHeadModel { Title = "器具", DataIndex = "app" });
// //head.Add(new TableHeadModel { Title = "时间", DataIndex = "time" });
// //head.Add(new TableHeadModel { Title = "用量", DataIndex = "dosage" });
// //var dataList = new List<Dictionary<string, object>>();
// if (importMeterReadDatas.Any())
// {
// foreach (var item in importMeterReadDatas)
// {
// var appAttr = apps.Where(x => x.NAME.Contains(item.Name)).FirstOrDefault();
// if (appAttr != null)
// {
// var histRead = updateMeterRead.
// FirstOrDefault(x => x.APPLIANCE_ID == appAttr.ID && x.TIME.ToIMonth() == item.Time.ToIMonth());
// if (histRead == null)
// {
// var meterRead = new T_EM_METER_READING_MONTH()
// {
// ID = new Guid(),
// SRC_DATA = item.Data,
// APPLIANCE_ID = appAttr.ID,
// TIME = item.Time,
// ORG_ID = new Guid(orgIdStr),
// };
// addMeterRead.Add(meterRead);
// }
// else
// histRead.SRC_DATA = item.Data;
// }
// }
// }
// #region 更新数据
// this.UnifiedCommit(() =>
// {
// this.BantchUpdateEntityNoCommit(updateMeterRead);
// this.BantchAddEntityNoCommit(addMeterRead);
// });
// #endregion
// result.message = true;
// //result.Head = head;
// //result.DataSource = dataList;
// return result;
// });
//}
///// <summary>
///// 导入日抄表卡数据
///// </summary>
///// <param name="files"></param>
///// <returns></returns>
//[HttpPost, Route("ImportDayMeterReadData")]
//public JsonActionResult<dynamic> ImportDayMeterReadData(IFormCollection files)
//{
// return SafeExecute<dynamic>(() =>
// {
// dynamic result = new ExpandoObject();
// var httpRequest = this.HttpContext.Request;
// string orgIdStr = httpRequest.Form["OrgId"];
// string fileName = string.Empty;//文件名称
// #region 文件先保存
// foreach (var key in httpRequest.Form.Files) // 文件键
// {
// var postedFile = key; // 获取文件键对应的文件对象
// var dic = Path.Combine(System.AppContext.BaseDirectory, "meterImportFiles");
// if (!Directory.Exists(dic))
// Directory.CreateDirectory(dic);
// fileName = 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(fileName, FileMode.CreateNew))
// {
// fs.Write(fileData, 0, fileData.Length);
// fs.Flush();
// fs.Close();
// }
// }
// #endregion
// List<T_EM_METER_READING_DAY> addMeterRead = new List<T_EM_METER_READING_DAY>();
// List<T_EM_METER_READING_DAY> updateMeterRead = new List<T_EM_METER_READING_DAY>();
// #region excel读取
// var importMeterReadDatas = FileUtils.ReadExcelByImportDayMeterReadData(fileName);
// var sTime = importMeterReadDatas.Min(x => x.Time);
// var eTime = importMeterReadDatas.Max(x => x.Time);
// #endregion
// #region 获取器具信息
// var baseFilter = new BaseFilter(new Guid(orgIdStr))
// {
// IgnoreDataRule = true,
// SelectField = new string[] { "NAME", "Nav_ApplianceAttrs" }
// };
// var apps = this.GetEntities<T_BD_APPLIANCE>(x => x.ENABLE_STATUS == (int)FMEnableStatusEnum.启用, baseFilter);
// #endregion
// #region 获取历史数据
// baseFilter.SelectField = new string[] {
// "APPLIANCE_ID", "TIME", "SRC_DATA", "ORG_ID"
// };
// updateMeterRead = GetEntities<T_EM_METER_READING_DAY>(x => x.TIME >= sTime && x.TIME <= eTime, baseFilter)?.ToList();
// #endregion
// //var head = new List<TableHeadModel>();
// //head.Add(new TableHeadModel { Title = "器具", DataIndex = "app" });
// //head.Add(new TableHeadModel { Title = "时间", DataIndex = "time" });
// //head.Add(new TableHeadModel { Title = "用量", DataIndex = "dosage" });
// //var dataList = new List<Dictionary<string, object>>();
// if (importMeterReadDatas.Any())
// {
// foreach (var item in importMeterReadDatas)
// {
// var appAttr = apps.Where(x => x.NAME.Contains(item.Name)).FirstOrDefault();
// if (appAttr != null)
// {
// var histRead = updateMeterRead.
// FirstOrDefault(x => x.APPLIANCE_ID == appAttr.ID && x.TIME.ToIMonth() == item.Time.ToIMonth());
// if (histRead == null)
// {
// var meterRead = new T_EM_METER_READING_DAY()
// {
// ID = new Guid(),
// SRC_DATA = item.Data,
// APPLIANCE_ID = appAttr.ID,
// TIME = item.Time,
// ORG_ID = new Guid(orgIdStr),
// };
// addMeterRead.Add(meterRead);
// }
// else
// histRead.SRC_DATA = item.Data;
// }
// }
// }
// #region 更新数据
// this.UnifiedCommit(() =>
// {
// this.BantchUpdateEntityNoCommit(updateMeterRead);
// this.BantchAddEntityNoCommit(addMeterRead);
// });
// #endregion
// result.message = true;
// //result.Head = head;
// //result.DataSource = dataList;
// return result;
// });
//}
//#endregion
//#region 导入生产记录信息
///// <summary>
///// 导入生产记录数据
///// </summary>
///// <param name="files">导入的Excel</param>
///// <returns></returns>
//[HttpPost, Route("ImportProductRecordData")]
//public JsonActionResult<dynamic> ImportProductRecordData(IFormCollection files)
//{
// return SafeExecute<dynamic>(() =>
// {
// dynamic result = new ExpandoObject();
// var httpRequest = this.HttpContext.Request;
// string orgIdStr = httpRequest.Form["OrgId"];
// string fileName = string.Empty;//文件名称
// #region 文件先保存
// foreach (var key in httpRequest.Form.Files) // 文件键
// {
// var postedFile = key; // 获取文件键对应的文件对象
// var dic = Path.Combine(System.AppContext.BaseDirectory, "histImportFiles");
// if (!Directory.Exists(dic))
// Directory.CreateDirectory(dic);
// fileName = 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(fileName, FileMode.CreateNew))
// {
// fs.Write(fileData, 0, fileData.Length);
// fs.Flush();
// fs.Close();
// }
// }
// #endregion
// List<T_ED_PROD_RECORD> addRecord = new List<T_ED_PROD_RECORD>();
// #region excel读取
// var importHistDatas = FileUtils.ReadExcelByImportProductRecordData(fileName);
// #endregion
// #region 获取获取产品,生产记录,班组,班别信息
// var baseFilter = new BaseFilter(new Guid(orgIdStr))
// {
// IgnoreDataRule = true,
// SelectField = new string[] { "CODE", "NAME" }
// };
// var product = this.GetEntities<T_FM_PRODUCT>(null, baseFilter)?.ToList();
// baseFilter.SelectField = new string[] { "NAME" };
// var node = this.GetEntities<T_BD_METER_NODE>(null, baseFilter)?.ToList();
// var team = this.GetEntities<T_FM_TEAM>(null, baseFilter)?.ToList();
// var clas = this.GetEntities<T_FM_CLASS>(null, baseFilter)?.ToList();
// #endregion
// var dataList = new List<Dictionary<string, object>>();
// if (importHistDatas.Any())
// {
// foreach (var item in importHistDatas)
// {
// var products = product.FirstOrDefault(x => x.CODE == item.Product_Code);
// var nodes = node.FirstOrDefault(x => x.NAME.Contains(item.MeterNode_Name));
// var teams = team.FirstOrDefault(x => x.NAME.Contains(item.Team_Name));
// var cla = clas.FirstOrDefault(x => x.NAME.Contains(item.Class_Name));
// var status = (int)Enum.Parse(typeof(FMOrderStatusEnum), item.Order_Status);
// if (products != null)
// {
// var proRecord = new T_ED_PROD_RECORD()
// {
// ORG_ID = new Guid(orgIdStr),
// PRODUCT_ID = products.ID,
// METER_NODE_ID = (Guid)(nodes?.ID),
// TEAM_ID = teams?.ID,
// CLASS_ID = cla?.ID,
// QTY = item.Qty,
// START_TIME = item.Start_Time,
// END_TIME = item.End_Time,
// MODIFY_TIME = DateTime.Now,
// ORDER_STATUS = status,
// REMARK = item.Remark,
// };
// addRecord.Add(proRecord);
// }
// }
// }
// #region 更新数据
// this.UnifiedCommit(() =>
// {
// this.BantchAddEntityNoCommit(addRecord);
// });
// #endregion
// result.message = true;
// return result;
// });
//}
//#endregion
//#region 导入能源采购记录
///// <summary>
///// 导入能源采购记录
///// </summary>
///// <param name="files">导入的Excel</param>
///// <returns></returns>
//[HttpPost, Route("ImportEnergyPurchaseData")]
//public JsonActionResult<bool> ImportEnergyPurchaseData(IFormCollection files)
//{
// return SafeExecute<bool>(() =>
// {
// dynamic result = new ExpandoObject();
// var httpRequest = this.HttpContext.Request;
// string orgIdStr = httpRequest.Form["OrgId"];
// string fileName = string.Empty;//文件名称
// #region 文件先保存
// foreach (var key in httpRequest.Form.Files) // 文件键
// {
// var postedFile = key; // 获取文件键对应的文件对象
// var dic = Path.Combine(System.AppContext.BaseDirectory, "histImportFiles");
// if (!Directory.Exists(dic))
// Directory.CreateDirectory(dic);
// fileName = 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(fileName, FileMode.CreateNew))
// {
// fs.Write(fileData, 0, fileData.Length);
// fs.Flush();
// fs.Close();
// }
// }
// #endregion
// List<T_ED_ENERGY_PURCHASE> addPurchase = new List<T_ED_ENERGY_PURCHASE>();
// #region excel读取
// var importEnergyPurchaseDatas = FileUtils.ReadExcelByImportEnergyPurchaseData(fileName);
// #endregion
// #region 获取能源分类分项数据和能源库存
// var baseFilter = new BaseFilter()
// {
// OrgId = new Guid(orgIdStr),
// IgnoreDataRule = true,
// SelectField = new string[] { "NAME" },
// };
// var energy = GetEntities<T_BD_ENERGY_CLASS>(null, baseFilter);
// baseFilter.SelectField = new string[]
// {
// "ENGERY_ID", "QTY", "RESERVE_QTY", "AVAILA_QTY"
// };
// var energyStore = GetEntities<T_ED_ENGERY_STORE>(null, baseFilter);
// #endregion
// if (importEnergyPurchaseDatas.Any())
// {
// foreach (var item in importEnergyPurchaseDatas)
// {
// var energys = energy.FirstOrDefault(x => x.NAME.Contains(item.Energy_Name));
// var store = energyStore.FirstOrDefault(x => x.ENGERY_ID == energys.ID);
// var energyPurchase = new T_ED_ENERGY_PURCHASE()
// {
// ORG_ID = new Guid(orgIdStr),
// ENGERY_ID = energys.ID,
// QTY = item.Qty,
// PLAN_DATE = item.Plan_Date,
// BATCH = item.Batch,
// };
// if (store != null)
// {
// energyPurchase.CURRENT_QTY = store.QTY;
// energyPurchase.AVAILA_QTY = store.AVAILA_QTY;
// energyPurchase.RESERVE_QTY = store.RESERVE_QTY;
// }
// addPurchase.Add(energyPurchase);
// }
// }
// #region 更新数据
// this.UnifiedCommit(() =>
// {
// this.BantchAddEntityNoCommit(addPurchase);
// });
// #endregion
// return true;
// });
//}
//#endregion
//#region 导入生产记录
///// <summary>
///// 导入生产记录(表单ED052)
///// </summary>
///// <param name="files"></param>
///// <returns></returns>
//[HttpPost, Route("ImportProductionRecords")]
//public JsonActionResult<bool> ImportProductionRecords(IFormCollection files)
//{
// return SafeExecute<bool>(() =>
// {
// var httpRequest = this.HttpContext.Request;
// var orgId = new Guid(httpRequest.Form["OrgId"]);
// string fileName = string.Empty;//文件名称
// #region 文件先保存
// foreach (var key in httpRequest.Form.Files) // 文件键
// {
// var postedFile = key; // 获取文件键对应的文件对象
// var dic = Path.Combine(System.AppContext.BaseDirectory, "histImportFiles");
// if (!Directory.Exists(dic))
// Directory.CreateDirectory(dic);
// fileName = 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(fileName, FileMode.CreateNew))
// {
// fs.Write(fileData, 0, fileData.Length);
// fs.Flush();
// fs.Close();
// }
// }
// #endregion
// var datas = FileUtils.ReadExcelByImportProductionRecords(fileName);
// var productFilter = new BaseFilter(orgId)
// {
// IgnoreDataRule = true,
// SelectField = new string[] { "ID", "CODE" }
// };
// var products = this.GetEntities<T_FM_PRODUCT>(null, productFilter);
// var baseFilter = new BaseFilter(orgId)
// {
// IgnoreDataRule = true,
// SelectField = new string[] { "ID", "NAME" }
// };
// var nodes = this.GetEntities<T_BD_METER_NODE>(null, baseFilter);
// var teams = this.GetEntities<T_FM_TEAM>(null, baseFilter);
// var classList = this.GetEntities<T_FM_CLASS>(null, baseFilter);
// var list = new List<T_ED_PROD_RECORD>();
// foreach (var item in datas)
// {
// var model = new T_ED_PROD_RECORD
// {
// ORG_ID = orgId,
// START_TIME = item.Start_Time,
// END_TIME = item.End_Time,
// WORKHOUR = item.WorkHour,
// QTY = item.Qty
// };
// var node = nodes.FirstOrDefault(x => x.NAME == item.MeterNode_Name);
// if (node == null)
// throw new Exception("导入的生产单元不存在!");
// model.METER_NODE_ID = node.ID;
// var classItem = classList.FirstOrDefault(x => x.NAME == item.Class_Name);
// if (classItem == null && item.Class_Name != "全天")
// throw new Exception("导入的班别不存在!");
// model.CLASS_ID = classItem?.ID;
// var team = teams.FirstOrDefault(x => x.NAME == item.Team_Name);
// if (team == null && !string.IsNullOrEmpty(item.Team_Name))
// throw new Exception("导入的班组不存在!");
// model.TEAM_ID = team?.ID;
// var product = products.FirstOrDefault(x => x.CODE == item.Product_Name);
// if (product == null && item.Product_Name != "产品")
// throw new Exception("导入的产品不存在!");
// model.PRODUCT_ID = product?.ID;
// list.Add(model);
// }
// if (list.Any())
// {
// var model = list.First();
// var time = model.START_TIME.ToIMonth().FromIMonth();
// this.UnifiedCommit(() =>
// {
// this.DeleteEntityNoCommit<T_ED_PROD_RECORD>(x=>x.METER_NODE_ID==model.METER_NODE_ID && x.START_TIME>=time && x.START_TIME<time.AddMonths(1));
// this.BantchAddEntityNoCommit(list);
// });
// }
// return true;
// });
//}
///// <summary>
///// 导入产量按部门
///// </summary>
///// <param name="files"></param>
///// <returns></returns>
//[HttpPost, Route("ImportProductionRecordsByDept")]
//public JsonActionResult<bool> ImportProductionRecordsByDept(IFormCollection files)
//{
// return SafeExecute<bool>(() =>
// {
// var httpRequest = this.HttpContext.Request;
// var orgId = new Guid(httpRequest.Form["OrgId"]);
// string fileName = string.Empty;//文件名称
// #region 文件先保存
// foreach (var key in httpRequest.Form.Files) // 文件键
// {
// var postedFile = key; // 获取文件键对应的文件对象
// var dic = Path.Combine(System.AppContext.BaseDirectory, "histImportFiles");
// if (!Directory.Exists(dic))
// Directory.CreateDirectory(dic);
// fileName = 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(fileName, FileMode.CreateNew))
// {
// fs.Write(fileData, 0, fileData.Length);
// fs.Flush();
// fs.Close();
// }
// }
// #endregion
// var datas = FileUtils.ReadExcelByImportDeptRecords(fileName);
// var baseFilter = new BaseFilter(orgId)
// {
// IgnoreDataRule = true,
// SelectField = new string[] { "ID", "NAME" }
// };
// var nodes = this.GetEntities<T_FM_DEPARTMENT>(null, baseFilter);
// var equips = this.GetEntities<T_BD_EQUIPMENT>(null, baseFilter);
// var list = new List<T_ED_DEPT_RECORD>();
// foreach (var item in datas)
// {
// var model = new T_ED_DEPT_RECORD
// {
// ORG_ID = orgId,
// TIME = item.Time,
// QTY = item.Qty
// };
// var node = nodes.FirstOrDefault(x => x.NAME == item.Dept_Name);
// if (node == null)
// throw new Exception("导入的部门不存在!");
// model.DEPARTMENT_ID = node.ID;
// var equip = equips.FirstOrDefault(x => x.NAME == item.Equip_Name);
// if (equip == null)
// throw new Exception("导入的设备不存在!");
// model.EQUIPMENT_ID = equip.ID;
// list.Add(model);
// }
// if (list.Any())
// {
// var model = list.First();
// this.UnifiedCommit(() =>
// {
// this.DeleteEntityNoCommit<T_ED_DEPT_RECORD>(x => x.DEPARTMENT_ID == model.DEPARTMENT_ID && x.TIME.Year == model.TIME.Year);
// this.BantchAddEntityNoCommit(list);
// });
// }
// return true;
// });
//}
//#endregion
//#region 导入生产计划
///// <summary>
///// 导入生产记录(表单PM038)
///// </summary>
///// <param name="files"></param>
///// <returns></returns>
//[HttpPost, Route("ImportProductionPlan")]
//public JsonActionResult<bool> ImportProductionPlan(IFormCollection files)
//{
// return SafeExecute<bool>(() =>
// {
// var httpRequest = this.HttpContext.Request;
// var orgId = new Guid(httpRequest.Form["OrgId"]);
// string fileName = string.Empty;//文件名称
// #region 文件先保存
// foreach (var key in httpRequest.Form.Files) // 文件键
// {
// var postedFile = key; // 获取文件键对应的文件对象
// var dic = Path.Combine(System.AppContext.BaseDirectory, "histImportFiles");
// if (!Directory.Exists(dic))
// Directory.CreateDirectory(dic);
// fileName = 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(fileName, FileMode.CreateNew))
// {
// fs.Write(fileData, 0, fileData.Length);
// fs.Flush();
// fs.Close();
// }
// }
// #endregion
// var datas = FileUtils.ReadExcelByImportProductionPlans(fileName);
// var productFilter = new BaseFilter(orgId)
// {
// IgnoreDataRule = true,
// SelectField = new string[] { "ID", "CODE" }
// };
// var products = this.GetEntities<T_FM_PRODUCT>(null, productFilter);
// var baseFilter = new BaseFilter(orgId)
// {
// IgnoreDataRule = true,
// SelectField = new string[] { "ID", "NAME" }
// };
// var nodes = this.GetEntities<T_BD_METER_NODE>(null, baseFilter);
// var list = new List<T_PM_PRODUCT_PLAN>();
// foreach (var item in datas)
// {
// var model = new T_PM_PRODUCT_PLAN
// {
// ORG_ID = orgId,
// START_TIME = item.Start_Time,
// END_TIME = item.End_Time,
// QTY = item.Qty,
// AVG_QTY = item.Qty
// };
// var node = nodes.FirstOrDefault(x => x.NAME == item.MeterNode_Name);
// if (node == null)
// throw new Exception("导入的生产单元不存在!");
// model.NODE_ID = node.ID;
// var product = products.FirstOrDefault(x => x.CODE == item.Product_Name);
// if (product == null && item.Product_Name != "产品")
// throw new Exception("导入的产品不存在!");
// model.PRODUCT_ID = product?.ID;
// list.Add(model);
// }
// var creat = new List<T_PM_PRODUCT_PLAN>();
// var update = new List<T_PM_PRODUCT_PLAN>();
// if (list.Any())
// {
// var codeRuleService = APT.Infrastructure.Api.ServiceLocator.Instance.GetService<IPFCodeRuleService>();
// SystemCodeFilter filter = new SystemCodeFilter();
// filter.CodeType = (int)PFCodeRuleType.计划单号;
// filter.Count = 1;
// filter.OrgId = orgId;
// //var code = codeRuleService.NewGenSerial(filter);
// var nodeId = list.First().NODE_ID;
// var records = this.GetEntities<T_PM_PRODUCT_PLAN>(x => x.NODE_ID == nodeId, new BaseFilter(orgId));
// foreach (var item in list)
// {
// var record = records.FirstOrDefault(x =>
// x.PRODUCT_ID == item.PRODUCT_ID && x.START_TIME == item.START_TIME &&
// x.END_TIME == item.END_TIME);
// if (record != null)
// {
// record.CODE = codeRuleService.NewGenSerial(filter);
// record.QTY = item.QTY;
// record.AVG_QTY = item.QTY;
// update.Add(record);
// }
// else
// {
// item.CODE = codeRuleService.NewGenSerial(filter);
// creat.Add(item);
// }
// }
// }
// this.UnifiedCommit(() =>
// {
// if (creat.Any())
// this.BantchAddEntityNoCommit(creat);
// if (update.Any())
// this.BantchUpdateEntityNoCommit(update);
// });
// return true;
// });
//}
//#endregion
}
}