Commit 3b969146 by xin.yang

some update

parent 46b709eb
...@@ -176,7 +176,7 @@ export default { ...@@ -176,7 +176,7 @@ export default {
}, },
{ {
title:'储位ID', title:'储位ID',
key:'locationid' key:'locaid'
}, },
{ {
title:'工装类别', title:'工装类别',
......
...@@ -14,6 +14,11 @@ using Siger.Middlelayer.Repository; ...@@ -14,6 +14,11 @@ using Siger.Middlelayer.Repository;
using Siger.Middlelayer.Repository.Extensions; using Siger.Middlelayer.Repository.Extensions;
using System.Linq; using System.Linq;
using Siger.Middlelayer.Repository.Entities; using Siger.Middlelayer.Repository.Entities;
using Siger.Middlelayer.Common.Helpers;
using Siger.Middlelayer.Utility.ImportEntities;
using Siger.Middlelayer.Utility.Helpers;
using System.IO;
using Siger.Middlelayer.Log;
namespace Siger.ApiACC.Controllers namespace Siger.ApiACC.Controllers
{ {
...@@ -39,9 +44,9 @@ namespace Siger.ApiACC.Controllers ...@@ -39,9 +44,9 @@ namespace Siger.ApiACC.Controllers
} }
[HttpGet] [HttpGet]
public IActionResult GetPageList(string wavehouseid, string locationid, int page, int pagesize) public IActionResult GetPageList(string wavehouseid, string locationid, int page, int pagesize, string toexcel)
{ {
var data = _autoLocationRepository.GetPagedList(wavehouseid.ToInt(), locationid.ToInt(), ProjectId, page, pagesize); var data = _autoLocationRepository.GetPagedList(wavehouseid.ToInt(), locationid.ToInt(), ProjectId, page, pagesize, toexcel);
var list = new List<ResponseAutomationLocation>(); var list = new List<ResponseAutomationLocation>();
var locations = _autoLocationRepository.GetLocationList(ProjectId); var locations = _autoLocationRepository.GetLocationList(ProjectId);
var categorys = _toolsCategoryRepository.GetList(q => q.projectId == ProjectId && q.status == (int)RowState.Valid).ToList(); var categorys = _toolsCategoryRepository.GetList(q => q.projectId == ProjectId && q.status == (int)RowState.Valid).ToList();
...@@ -81,7 +86,84 @@ namespace Siger.ApiACC.Controllers ...@@ -81,7 +86,84 @@ namespace Siger.ApiACC.Controllers
list.Add(item); list.Add(item);
} }
return new PagedObjectResult(list, data.Total, page, pagesize); if (toexcel.ToInt() == 1)
{
return ExportExcel(data.Data);
}
else
{
return new PagedObjectResult(list, data.Total, page, pagesize);
}
}
private IActionResult ExportExcel(IEnumerable<ResponseAutomationLocation> data)
{
var rootDir = FileSystemHelper.GetPhysicalFolders(FileSystemHelper.CommonFileSetting.PhysicalFolder, FileSystemHelper.ExportFileName);
if (!data.Any())
{
throw new BadRequestException(CommonEnum.RecordNotFound);
}
var dataList = new List<AutomationLocationList>();
foreach (var item in data)
{
var state = "";
switch (item.materialstate)
{
case 1:
state = "有工装无工件";
break;
case 2:
state = "有工装有工件";
break;
case 3:
state = "无工装无工件";
break;
case 4:
state = "无工装有工件";
break;
}
dataList.Add(new AutomationLocationList
{
Warehouse = item.wavehouse,
Location = item.location,
LocationId = item.locaid.ToString(),
Catgeory = item.category,
Code = item.code,
Name = item.fixturetool,
Specfication = item.specfication,
SN = item.sn,
RouteNumber = item.routenumber,
RouteName = item.route,
State = state,
Remark = item.remark,
Updator = item.updator,
UpdateTime = item.updatetime
});
}
if (dataList.Any())
{
EpPlusExcelHelper<AutomationLocationList> helper = null;
try
{
helper = new EpPlusExcelHelper<AutomationLocationList>();
var temporaryFileName = $"储位信息查询_FixtureToolsLocationData_{DateTime.Now:yyyyMMddHHmmss}.xlsx";
helper.GenerateExcel(dataList, Path.Combine(rootDir, temporaryFileName));
return new ObjectResult($"{FileSystemHelper.CommonFileSetting.RequestPath}/{FileSystemHelper.ExportFileName}/{temporaryFileName}");
}
catch (Exception e)
{
Logger.WriteLineError("Export Fixture Tools Location Data failed, error:" + e);
throw new BadRequestException(RequestEnum.ExportFailed);
}
finally
{
helper?.Dispose();
}
}
throw new BadRequestException(CommonEnum.Fail);
} }
private IEnumerable<siger_automation_fixture_tools_category> GetParentCategoryList(string parentId, List<siger_automation_fixture_tools_category> sections) private IEnumerable<siger_automation_fixture_tools_category> GetParentCategoryList(string parentId, List<siger_automation_fixture_tools_category> sections)
......
...@@ -45,13 +45,15 @@ namespace Siger.ApiACC.Controllers ...@@ -45,13 +45,15 @@ namespace Siger.ApiACC.Controllers
private readonly IAutomationFixtureToolsRepository _fixtureToolsRepository; private readonly IAutomationFixtureToolsRepository _fixtureToolsRepository;
private readonly IAutomationFixtureToolsProductRepository _fixtureToolsProductRepository; private readonly IAutomationFixtureToolsProductRepository _fixtureToolsProductRepository;
private readonly IAutomationFixtureToolsAssemblyRepository _fixtureToolsAssemblyRepository; private readonly IAutomationFixtureToolsAssemblyRepository _fixtureToolsAssemblyRepository;
private readonly IAutomationLocationRepository _autoLocationRepository;
public UploadController(IUnitOfWork unitOfWork,ISigerTrMaterialsRepository materialsRepository, ISigerTrMaterialTypeRepository materialTypeRepository, public UploadController(IUnitOfWork unitOfWork,ISigerTrMaterialsRepository materialsRepository, ISigerTrMaterialTypeRepository materialTypeRepository,
ISigerTrAssemblyMaintenanceRepository assemblyMaintenanceRepository, ISigerTrProductStructureRepository productStructureRepository ISigerTrAssemblyMaintenanceRepository assemblyMaintenanceRepository, ISigerTrProductStructureRepository productStructureRepository
, ISigerDict sigerDict, ISigerEquipment sigerEquipment, ISigerEquipmentPosition sigerEquipmentPosition, ISigerRoutingEventNo routingEvenNo , ISigerDict sigerDict, ISigerEquipment sigerEquipment, ISigerEquipmentPosition sigerEquipmentPosition, ISigerRoutingEventNo routingEvenNo
, ISigerRoutingOutStation sigerRoutingOutStation, ISigerRoutingInStation sigerRoutingIn, ISigerPackingFullQty sigerPackingFull , ISigerRoutingOutStation sigerRoutingOutStation, ISigerRoutingInStation sigerRoutingIn, ISigerPackingFullQty sigerPackingFull
, ISigerCheckItem checkItem, ISigerWOBookingItem sigerWOBooking, IBasketSettingRepository basketSetting, ITrParameterConfigRepository parameterConfigRepository, , ISigerCheckItem checkItem, ISigerWOBookingItem sigerWOBooking, IBasketSettingRepository basketSetting, ITrParameterConfigRepository parameterConfigRepository,
ISeriNumCfg serinumCfgRepository, IAutomationFixtureToolsCategoryRepository fixtureToolsCategoryRepository, IAutomationFixtureToolsRepository fixtureToolsRepository, ISeriNumCfg serinumCfgRepository, IAutomationFixtureToolsCategoryRepository fixtureToolsCategoryRepository, IAutomationFixtureToolsRepository fixtureToolsRepository,
IAutomationFixtureToolsProductRepository fixtureToolsProductRepository, IAutomationFixtureToolsAssemblyRepository fixtureToolsAssemblyRepository) IAutomationFixtureToolsProductRepository fixtureToolsProductRepository, IAutomationFixtureToolsAssemblyRepository fixtureToolsAssemblyRepository,
IAutomationLocationRepository autoLocationRepository)
{ {
_unitOfWork = unitOfWork; _unitOfWork = unitOfWork;
_materialsRepository = materialsRepository; _materialsRepository = materialsRepository;
...@@ -74,6 +76,7 @@ namespace Siger.ApiACC.Controllers ...@@ -74,6 +76,7 @@ namespace Siger.ApiACC.Controllers
_fixtureToolsRepository = fixtureToolsRepository; _fixtureToolsRepository = fixtureToolsRepository;
_fixtureToolsProductRepository = fixtureToolsProductRepository; _fixtureToolsProductRepository = fixtureToolsProductRepository;
_fixtureToolsAssemblyRepository = fixtureToolsAssemblyRepository; _fixtureToolsAssemblyRepository = fixtureToolsAssemblyRepository;
_autoLocationRepository = autoLocationRepository;
} }
[HttpPost] [HttpPost]
...@@ -229,6 +232,9 @@ namespace Siger.ApiACC.Controllers ...@@ -229,6 +232,9 @@ namespace Siger.ApiACC.Controllers
case TemplateNameEnums.FixtureToolsAssmeblyTemplate: case TemplateNameEnums.FixtureToolsAssmeblyTemplate:
result = ImportFixtureToolsAssembly(temporaryFilePath); result = ImportFixtureToolsAssembly(temporaryFilePath);
break; break;
case TemplateNameEnums.AutomationLocationTemplate:
result = ImportAutomationLocation(temporaryFilePath);
break;
default: default:
throw new ArgumentOutOfRangeException(); throw new ArgumentOutOfRangeException();
} }
...@@ -929,5 +935,31 @@ namespace Siger.ApiACC.Controllers ...@@ -929,5 +935,31 @@ namespace Siger.ApiACC.Controllers
excelHelper?.Dispose(); excelHelper?.Dispose();
} }
} }
private CommonImportResult ImportAutomationLocation(string temporaryFilePath)
{
EpPlusExcelHelper<AutomationLocationTemplate> excelHelper = null;
try
{
excelHelper = new EpPlusExcelHelper<AutomationLocationTemplate>(temporaryFilePath);
var checkResult = excelHelper.CheckExcel();
if (checkResult.Any())
{
return new CommonImportResult(0, string.Join(';', checkResult));
}
var data = excelHelper.ConvertSheetToList();
var result = _autoLocationRepository.ImportData(data, ProjectId, UserId);
return result;
}
catch (Exception e)
{
Logger.WriteLineError("ImportAutomationLocation failed,error: " + e.Message);
throw;
}
finally
{
excelHelper?.Dispose();
}
}
} }
} }
...@@ -236,6 +236,7 @@ namespace Siger.Middlelayer.Common ...@@ -236,6 +236,7 @@ namespace Siger.Middlelayer.Common
FixtureToolsTemplate, FixtureToolsTemplate,
FixtureToolsProductTemplate, FixtureToolsProductTemplate,
FixtureToolsAssmeblyTemplate, FixtureToolsAssmeblyTemplate,
AutomationLocationTemplate,
} }
public enum LogLevel public enum LogLevel
......
...@@ -4,7 +4,7 @@ namespace Siger.Middlelayer.Utility.ImportEntities ...@@ -4,7 +4,7 @@ namespace Siger.Middlelayer.Utility.ImportEntities
{ {
public class FixtureToolsCategoryTemplate : ImportBase public class FixtureToolsCategoryTemplate : ImportBase
{ {
[ExcelColumn("工装类型*")] [ExcelColumn("*工装类型")]
public string Fixture { get; set; } public string Fixture { get; set; }
[ExcelColumn("上级类型")] [ExcelColumn("上级类型")]
...@@ -13,28 +13,28 @@ namespace Siger.Middlelayer.Utility.ImportEntities ...@@ -13,28 +13,28 @@ namespace Siger.Middlelayer.Utility.ImportEntities
public class FixtureToolsTemplate : ImportBase public class FixtureToolsTemplate : ImportBase
{ {
[ExcelColumn("工装类型*")] [ExcelColumn("*工装类型")]
public string Catgeory { get; set; } public string Catgeory { get; set; }
[ExcelColumn("管理类型*")] [ExcelColumn("*管理类型")]
public string Manage { get; set; } public string Manage { get; set; }
[ExcelColumn("工装名称*")] [ExcelColumn("*工装名称")]
public string Name { get; set; } public string Name { get; set; }
[ExcelColumn("工装料号*")] [ExcelColumn("*工装料号")]
public string PartNumber { get; set; } public string PartNumber { get; set; }
[ExcelColumn("工装编号*")] [ExcelColumn("*工装编号")]
public string Code { get; set; } public string Code { get; set; }
[ExcelColumn("规格型号*")] [ExcelColumn("*规格型号")]
public string Specfication { get; set; } public string Specfication { get; set; }
[ExcelColumn("数量*")] [ExcelColumn("*数量")]
public string Number { get; set; } public string Number { get; set; }
[ExcelColumn("状态*")] [ExcelColumn("*状态")]
public string Status { get; set; } public string Status { get; set; }
[ExcelColumn("备注")] [ExcelColumn("备注")]
...@@ -46,25 +46,25 @@ namespace Siger.Middlelayer.Utility.ImportEntities ...@@ -46,25 +46,25 @@ namespace Siger.Middlelayer.Utility.ImportEntities
[ExcelColumn("工装类型")] [ExcelColumn("工装类型")]
public string Catgeory { get; set; } public string Catgeory { get; set; }
[ExcelColumn("管理类型*")] [ExcelColumn("管理类型")]
public string Manage { get; set; } public string Manage { get; set; }
[ExcelColumn("工装名称*")] [ExcelColumn("工装名称")]
public string Name { get; set; } public string Name { get; set; }
[ExcelColumn("工装料号*")] [ExcelColumn("工装料号")]
public string PartNumber { get; set; } public string PartNumber { get; set; }
[ExcelColumn("工装编号*")] [ExcelColumn("工装编号")]
public string Code { get; set; } public string Code { get; set; }
[ExcelColumn("规格型号*")] [ExcelColumn("规格型号")]
public string Specfication { get; set; } public string Specfication { get; set; }
[ExcelColumn("数量*")] [ExcelColumn("数量")]
public string Number { get; set; } public string Number { get; set; }
[ExcelColumn("状态*")] [ExcelColumn("状态")]
public string Status { get; set; } public string Status { get; set; }
[ExcelColumn("备注")] [ExcelColumn("备注")]
...@@ -79,10 +79,10 @@ namespace Siger.Middlelayer.Utility.ImportEntities ...@@ -79,10 +79,10 @@ namespace Siger.Middlelayer.Utility.ImportEntities
public class FixtureToolsProductTemplate : ImportBase public class FixtureToolsProductTemplate : ImportBase
{ {
[ExcelColumn("工装名称*")] [ExcelColumn("*工装名称")]
public string FixtureTool { get; set; } public string FixtureTool { get; set; }
[ExcelColumn("产品名称*")] [ExcelColumn("*产品名称")]
public string Product { get; set; } public string Product { get; set; }
[ExcelColumn("备注")] [ExcelColumn("备注")]
...@@ -121,16 +121,16 @@ namespace Siger.Middlelayer.Utility.ImportEntities ...@@ -121,16 +121,16 @@ namespace Siger.Middlelayer.Utility.ImportEntities
public class FixtureToolsAssmeblyTemplate : ImportBase public class FixtureToolsAssmeblyTemplate : ImportBase
{ {
[ExcelColumn("父工装名称*")] [ExcelColumn("*父工装名称")]
public string ParentFixtureTool { get; set; } public string ParentFixtureTool { get; set; }
[ExcelColumn("子工装名称*")] [ExcelColumn("*子工装名称")]
public string FixtureTool { get; set; } public string FixtureTool { get; set; }
[ExcelColumn("备注")] [ExcelColumn("备注")]
public string Remark { get; set; } public string Remark { get; set; }
[ExcelColumn("状态*")] [ExcelColumn("*状态")]
public string Status { get; set; } public string Status { get; set; }
} }
...@@ -172,4 +172,61 @@ namespace Siger.Middlelayer.Utility.ImportEntities ...@@ -172,4 +172,61 @@ namespace Siger.Middlelayer.Utility.ImportEntities
[ExcelColumn("维护时间")] [ExcelColumn("维护时间")]
public string UpdateTime { get; set; } public string UpdateTime { get; set; }
} }
public class AutomationLocationTemplate : ImportBase
{
[ExcelColumn("*储位ID")]
public string LocationId { get; set; }
[ExcelColumn("*工装名称")]
public string FixtureTool { get; set; }
[ExcelColumn("备注")]
public string Remark { get; set; }
}
public class AutomationLocationList : ImportBase
{
[ExcelColumn("仓库名称")]
public string Warehouse { get; set; }
[ExcelColumn("储位信息")]
public string Location { get; set; }
[ExcelColumn("储位ID")]
public string LocationId { get; set; }
[ExcelColumn("工装类别")]
public string Catgeory { get; set; }
[ExcelColumn("工装编号")]
public string Code { get; set; }
[ExcelColumn("工装名称")]
public string Name { get; set; }
[ExcelColumn("工装规格")]
public string Specfication { get; set; }
[ExcelColumn("工件编号")]
public string SN { get; set; }
[ExcelColumn("工序顺序")]
public string RouteNumber { get; set; }
[ExcelColumn("工序名称")]
public string RouteName { get; set; }
[ExcelColumn("物料状态")]
public string State { get; set; }
[ExcelColumn("备注")]
public string Remark { get; set; }
[ExcelColumn("维护人")]
public string Updator { get; set; }
[ExcelColumn("维护时间")]
public string UpdateTime { get; set; }
}
} }
...@@ -136,7 +136,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories ...@@ -136,7 +136,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories
public CommonImportResult ImportData(IEnumerable<FixtureToolsAssmeblyTemplate> list, int projectid, int userid) public CommonImportResult ImportData(IEnumerable<FixtureToolsAssmeblyTemplate> list, int projectid, int userid)
{ {
var errors = new List<string>(); var errors = new List<string>();
var rowIndex = 1; var rowIndex = 1;
foreach (var item in list) foreach (var item in list)
...@@ -147,36 +147,36 @@ namespace Siger.Middlelayer.AccRepository.Repositories ...@@ -147,36 +147,36 @@ namespace Siger.Middlelayer.AccRepository.Repositories
if (string.IsNullOrEmpty(item.FixtureTool) || string.IsNullOrEmpty(item.ParentFixtureTool)) if (string.IsNullOrEmpty(item.FixtureTool) || string.IsNullOrEmpty(item.ParentFixtureTool))
{ {
throw new BadRequestException(RequestEnum.ParameterMiss); errors.Add($"{rowIndex},{(int)RequestEnum.ParameterMiss}");
} }
if (item.ParentFixtureTool == item.FixtureTool) if (item.ParentFixtureTool == item.FixtureTool)
{ {
throw new BadRequestException(RequestEnum.ParentSonSame); errors.Add($"{rowIndex},{(int)RequestEnum.ParentSonSame}");
} }
var parent = _context.siger_automation_fixture_tools.FirstOrDefault(q => q.name == item.ParentFixtureTool && q.projectId == projectid); var parent = _context.siger_automation_fixture_tools.FirstOrDefault(q => q.name == item.ParentFixtureTool && q.projectId == projectid);
if (parent == null) if (parent == null)
{ {
throw new BadRequestException(RequestEnum.FixtureToolNotFound); errors.Add($"{rowIndex},{(int)RequestEnum.FixtureToolNotFound}");
} }
var son = _context.siger_automation_fixture_tools.FirstOrDefault(q => q.name == item.FixtureTool && q.projectId == projectid); var son = _context.siger_automation_fixture_tools.FirstOrDefault(q => q.name == item.FixtureTool && q.projectId == projectid);
if (son == null) if (son == null)
{ {
throw new BadRequestException(RequestEnum.FixtureToolNotFound); errors.Add($"{rowIndex},{(int)RequestEnum.FixtureToolNotFound}");
} }
var parentGuid = parent.guid; var parentGuid = parent.guid;
var exsit = _context.siger_automation_fixture_tools_assembly.FirstOrDefault(q => q.projectId == projectid && q.son == son.guid && q.parent == parentGuid); var exsit = _context.siger_automation_fixture_tools_assembly.FirstOrDefault(q => q.projectId == projectid && q.son == son.guid && q.parent == parentGuid);
if (exsit != null) if (exsit != null)
{ {
throw new BadRequestException(RequestEnum.DataExist); errors.Add($"{rowIndex},{(int)RequestEnum.DataExist}");
} }
if (list.Count(q => q.FixtureTool == item.FixtureTool && q.ParentFixtureTool == item.ParentFixtureTool) > 1) if (list.Count(q => q.FixtureTool == item.FixtureTool && q.ParentFixtureTool == item.ParentFixtureTool) > 1)
{ {
throw new BadRequestException(RequestEnum.DataExist); errors.Add($"{rowIndex},{(int)RequestEnum.DataExist}");
} }
var parentExsit = _context.siger_automation_fixture_tools_assembly.FirstOrDefault(q => q.projectId == projectid && q.son == parentGuid); var parentExsit = _context.siger_automation_fixture_tools_assembly.FirstOrDefault(q => q.projectId == projectid && q.son == parentGuid);
if (parentExsit != null && !string.IsNullOrEmpty(parentExsit.parent)) if (parentExsit != null && !string.IsNullOrEmpty(parentExsit.parent))
{ {
throw new BadRequestException(RequestEnum.LevelCountError); errors.Add($"{rowIndex},{(int)RequestEnum.LevelCountError}");
} }
if (errors.Any()) if (errors.Any())
......
...@@ -7,9 +7,12 @@ using Siger.Middlelayer.AccRepository.Entities; ...@@ -7,9 +7,12 @@ using Siger.Middlelayer.AccRepository.Entities;
using Siger.Middlelayer.AccRepository.Repositories.Interface; using Siger.Middlelayer.AccRepository.Repositories.Interface;
using Siger.Middlelayer.AccRepository.Response; using Siger.Middlelayer.AccRepository.Response;
using Siger.Middlelayer.Common; using Siger.Middlelayer.Common;
using Siger.Middlelayer.Common.Extensions;
using Siger.Middlelayer.Log;
using Siger.Middlelayer.Repository.Data.Acc; using Siger.Middlelayer.Repository.Data.Acc;
using Siger.Middlelayer.Repository.Extensions; using Siger.Middlelayer.Repository.Extensions;
using Siger.Middlelayer.Repository.Paged; using Siger.Middlelayer.Repository.Paged;
using Siger.Middlelayer.Utility.ImportEntities;
namespace Siger.Middlelayer.AccRepository.Repositories namespace Siger.Middlelayer.AccRepository.Repositories
{ {
...@@ -21,7 +24,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories ...@@ -21,7 +24,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories
_context = context; _context = context;
} }
public IPagedCollectionResult<ResponseAutomationLocation> GetPagedList(int wavehouseid, int locationid, int projectid, int page, int pagesize) public IPagedCollectionResult<ResponseAutomationLocation> GetPagedList(int wavehouseid, int locationid, int projectid, int page, int pagesize, string toexcel)
{ {
var query = from q in _context.siger_automation_location var query = from q in _context.siger_automation_location
join t in _context.siger_automation_fixture_tools on q.fixturetools equals t.guid join t in _context.siger_automation_fixture_tools on q.fixturetools equals t.guid
...@@ -71,9 +74,17 @@ namespace Siger.Middlelayer.AccRepository.Repositories ...@@ -71,9 +74,17 @@ namespace Siger.Middlelayer.AccRepository.Repositories
locationidExpression = q => q.locationid == locationid; locationidExpression = q => q.locationid == locationid;
} }
var expression = wavehouseidExpression.And(locationidExpression); var expression = wavehouseidExpression.And(locationidExpression);
var entities = query.Where(expression).OrderByDescending(q => q.id).Skip((page - 1) * pagesize).Take(pagesize).AsNoTracking().ToList(); if(toexcel.ToInt() == 1)
var totalCount = query.Where(expression).Count(); {
return new PagedCollectionResult<ResponseAutomationLocation>(entities, totalCount); var entities = query.Where(expression).OrderByDescending(q => q.id).AsNoTracking().ToList();
return new PagedCollectionResult<ResponseAutomationLocation>(entities, entities.Count);
}
else
{
var entities = query.Where(expression).OrderByDescending(q => q.id).Skip((page - 1) * pagesize).Take(pagesize).AsNoTracking().ToList();
var totalCount = query.Where(expression).Count();
return new PagedCollectionResult<ResponseAutomationLocation>(entities, totalCount);
}
} }
public siger_wms_storage_location GetLocation(int id, int projectid) public siger_wms_storage_location GetLocation(int id, int projectid)
...@@ -115,5 +126,73 @@ namespace Siger.Middlelayer.AccRepository.Repositories ...@@ -115,5 +126,73 @@ namespace Siger.Middlelayer.AccRepository.Repositories
var entities = query.AsNoTracking().ToList(); var entities = query.AsNoTracking().ToList();
return entities; return entities;
} }
public CommonImportResult ImportData(IEnumerable<AutomationLocationTemplate> list, int projectid, int userid)
{
var errors = new List<string>();
var rowIndex = 1;
var entities = new List<siger_automation_location>();
foreach (var item in list)
{
rowIndex++;
if (string.IsNullOrEmpty(item.LocationId) || string.IsNullOrEmpty(item.FixtureTool))
{
errors.Add($"{rowIndex},{(int)RequestEnum.ParameterMiss}");
}
var fixturetool = _context.siger_automation_fixture_tools.FirstOrDefault(q => q.name == item.FixtureTool && q.projectId == projectid);
if (fixturetool == null)
{
errors.Add($"{rowIndex},{(int)RequestEnum.FixtureToolNotFound}");
}
var location = _context.siger_wms_storage_location.FirstOrDefault(q => q.locationid == item.LocationId.ToInt() && q.projectId == projectid && q.status == (int)RowState.Valid);
if (location == null || item.LocationId.ToInt() <= 0)
{
errors.Add($"{rowIndex},{(int)RequestEnum.LocationNull}");
}
var exsit = _context.siger_automation_location.FirstOrDefault(q => q.projectId == projectid && q.status == (int)RowState.Valid &&
(q.fixturetools == fixturetool.guid || q.locationid == item.LocationId.ToInt()));
if (exsit != null)
{
errors.Add($"{rowIndex},{(int)RequestEnum.DataExist}");
}
if (list.Count(q => q.FixtureTool == item.FixtureTool || q.LocationId == item.LocationId) > 1)
{
errors.Add($"{rowIndex},{(int)RequestEnum.DataExist}");
}
if (errors.Any())
{
return new CommonImportResult(0, string.Join(";", errors));
}
var entity = new siger_automation_location
{
guid = Guid.NewGuid().ToString(),
locationid = item.LocationId.ToInt(),
fixturetools = fixturetool.guid,
attachment = "",
filename = "",
remark = item.Remark,
projectId = projectid,
updatetime = DateTime.Now,
updator = userid,
};
entities.Add(entity);
}
try
{
_context.siger_automation_location.AddRange(entities);
_context.SaveChanges();
return new CommonImportResult(1, "1");
}
catch (Exception e)
{
Logger.WriteLineError(e.Message);
throw;
}
}
} }
} }
...@@ -2,13 +2,14 @@ ...@@ -2,13 +2,14 @@
using Siger.Middlelayer.AccRepository.Response; using Siger.Middlelayer.AccRepository.Response;
using Siger.Middlelayer.Repository.Data.Acc; using Siger.Middlelayer.Repository.Data.Acc;
using Siger.Middlelayer.Repository.Paged; using Siger.Middlelayer.Repository.Paged;
using Siger.Middlelayer.Utility.ImportEntities;
using System.Collections.Generic; using System.Collections.Generic;
namespace Siger.Middlelayer.AccRepository.Repositories.Interface namespace Siger.Middlelayer.AccRepository.Repositories.Interface
{ {
public interface IAutomationLocationRepository : IAccRepositoryBase<siger_automation_location> public interface IAutomationLocationRepository : IAccRepositoryBase<siger_automation_location>
{ {
IPagedCollectionResult<ResponseAutomationLocation> GetPagedList(int wavehouseid, int locationid, int projectid, int page, int pagesize); IPagedCollectionResult<ResponseAutomationLocation> GetPagedList(int wavehouseid, int locationid, int projectid, int page, int pagesize, string toexcel);
siger_wms_storage_location GetLocation(int id, int projectid); siger_wms_storage_location GetLocation(int id, int projectid);
...@@ -16,5 +17,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories.Interface ...@@ -16,5 +17,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories.Interface
IEnumerable<ResponseAutomationLocationList> GetDataList(int projectid); IEnumerable<ResponseAutomationLocationList> GetDataList(int projectid);
IEnumerable<siger_wms_storage_location> GetLocationList(int projectid); IEnumerable<siger_wms_storage_location> GetLocationList(int projectid);
CommonImportResult ImportData(IEnumerable<AutomationLocationTemplate> list, int projectid, int userid);
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment