Commit cd96e080 by xin.yang

some update

parent 5f585d28
......@@ -14,6 +14,11 @@ using Siger.Middlelayer.Repository;
using Siger.Middlelayer.Repository.Extensions;
using System.Linq;
using Siger.Middlelayer.Repository.Entities;
using Siger.Middlelayer.Common.Helpers;
using Siger.Middlelayer.Utility.Helpers;
using System.IO;
using Siger.Middlelayer.Utility.ImportEntities;
using Siger.Middlelayer.Log;
namespace Siger.ApiACC.Controllers
{
......@@ -34,9 +39,9 @@ namespace Siger.ApiACC.Controllers
}
[HttpGet]
public IActionResult GetPageList(string category, string code, string name, int page, int pagesize)
public IActionResult GetPageList(string category, string code, string name, int page, int pagesize, string toexcel = "")
{
var data = _toolsAssemblyRepository.GetPagedList(category.ToInt(), code, name, ProjectId, page, pagesize);
var data = _toolsAssemblyRepository.GetPagedList(category.ToInt(), code, name, ProjectId, page, pagesize, toexcel);
var categorys = _toolsCategoryRepository.GetList(q => q.projectId == ProjectId && q.status == (int)RowState.Valid).ToList();
var list = new List<ResponseAumationFixtureToolsAssembly>();
foreach(var item in data.Data)
......@@ -70,9 +75,87 @@ namespace Siger.ApiACC.Controllers
list.Add(item);
}
if(toexcel.ToInt() == 1)
{
return ExportExcel(data.Data);
}
return new PagedObjectResult(list, data.Total, page, pagesize);
}
private IActionResult ExportExcel(IEnumerable<ResponseAumationFixtureToolsAssembly> data)
{
var rootDir = FileSystemHelper.GetPhysicalFolders(FileSystemHelper.CommonFileSetting.PhysicalFolder, FileSystemHelper.ExportFileName);
if (!data.Any())
{
throw new BadRequestException(CommonEnum.RecordNotFound);
}
var dataList = new List<FixtureToolsAssmeblyList>();
foreach (var item in data)
{
dataList.Add(new FixtureToolsAssmeblyList
{
ParentCategory = item.parentcategory,
ParentPartNumber = item.parentpartnumber,
ParentFixtureTool = item.parentname,
ParentSpecfication = item.parentspecfication,
Category = item.category,
FixtureTool = item.name,
PartNumber = item.partnumber,
Specfication = item.specfication,
Status = item.status == (int)RowState.Valid ? "可用" : "停用",
Remark = item.remark,
Updator = item.updator,
UpdateTime = item.updatetime
});
if (item.childrens.Any())
{
foreach(var son in item.childrens)
{
dataList.Add(new FixtureToolsAssmeblyList
{
ParentCategory = son.parentcategory,
ParentPartNumber = son.parentpartnumber,
ParentFixtureTool = son.parentname,
ParentSpecfication = son.parentspecfication,
Category = son.category,
FixtureTool = son.name,
PartNumber = son.partnumber,
Specfication = son.specfication,
Status = son.status == (int)RowState.Valid ? "可用" : "停用",
Remark = son.remark,
Updator = son.updator,
UpdateTime = son.updatetime
});
}
}
}
if (dataList.Any())
{
EpPlusExcelHelper<FixtureToolsAssmeblyList> helper = null;
try
{
helper = new EpPlusExcelHelper<FixtureToolsAssmeblyList>();
var temporaryFileName = $"工装装配_FixtureToolsAssemblyData_{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 Assembly 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)
{
var query = from c in sections where c.guid == parentId select c;
......@@ -144,7 +227,7 @@ namespace Siger.ApiACC.Controllers
var entity = new siger_automation_fixture_tools_assembly
{
guid = Guid.NewGuid().ToString(),
parent = parent?.guid ?? "",
parent = parentGuid,
son = son.guid,
creator = UserId,
createtime = DateTime.Now,
......@@ -226,7 +309,7 @@ namespace Siger.ApiACC.Controllers
_toolsAssemblyRepository.Insert(parentEntity);
}
entity.parent = parent?.guid ?? "";
entity.parent = parentGuid;
entity.son = son.guid;
entity.attachment = req.fileurl;
entity.filename = req.filename;
......
......@@ -66,11 +66,11 @@ namespace Siger.ApiACC.Controllers
{
throw new BadRequestException(CommonEnum.RecordNotFound);
}
var dataList = new List<FixtureToolsTemplate>();
var dataList = new List<FixtureToolsList>();
foreach (var item in data)
{
dataList.Add(new FixtureToolsTemplate
dataList.Add(new FixtureToolsList
{
Catgeory = item.category,
Name = item.name,
......@@ -80,15 +80,17 @@ namespace Siger.ApiACC.Controllers
Specfication = item.specification,
Number = item.number.ToString(),
Status = item.status == 1 ? "可用" : "停用",
Remark = item.remark
Remark = item.remark,
Updator = item.updator,
UpdateTime = item.updatetime
});
}
if (dataList.Any())
{
EpPlusExcelHelper<FixtureToolsTemplate> helper = null;
EpPlusExcelHelper<FixtureToolsList> helper = null;
try
{
helper = new EpPlusExcelHelper<FixtureToolsTemplate>();
helper = new EpPlusExcelHelper<FixtureToolsList>();
var temporaryFileName = $"工装台账_FixtureToolsData_{DateTime.Now:yyyyMMddHHmmss}.xlsx";
helper.GenerateExcel(dataList, Path.Combine(rootDir, temporaryFileName));
return new ObjectResult($"{FileSystemHelper.CommonFileSetting.RequestPath}/{FileSystemHelper.ExportFileName}/{temporaryFileName}");
......@@ -118,7 +120,7 @@ namespace Siger.ApiACC.Controllers
public IActionResult Add([FromBody]RequestAddFixtureTools req)
{
if(string.IsNullOrEmpty(req.partnumber) || string.IsNullOrEmpty(req.code) || string.IsNullOrEmpty(req.name) || string.IsNullOrEmpty(req.categoryid) ||
string.IsNullOrEmpty(req.managetype) || string.IsNullOrEmpty(req.managetype))
string.IsNullOrEmpty(req.managetype))
{
throw new BadRequestException(RequestEnum.ParameterMiss);
}
......@@ -169,7 +171,7 @@ namespace Siger.ApiACC.Controllers
public IActionResult Update([FromBody]RequestUpdateFixtureTools req)
{
if (string.IsNullOrEmpty(req.partnumber) || string.IsNullOrEmpty(req.code) || string.IsNullOrEmpty(req.name) || string.IsNullOrEmpty(req.categoryid) ||
string.IsNullOrEmpty(req.managetype) || string.IsNullOrEmpty(req.managetype) || req.id <= 0)
string.IsNullOrEmpty(req.managetype) || req.id <= 0)
{
throw new BadRequestException(RequestEnum.ParameterMiss);
}
......
......@@ -14,6 +14,11 @@ using Siger.Middlelayer.Repository;
using Siger.Middlelayer.Repository.Extensions;
using System.Linq;
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
{
......@@ -37,9 +42,9 @@ namespace Siger.ApiACC.Controllers
}
[HttpGet]
public IActionResult GetPageList(string category, string tool, string product, int page, int pagesize)
public IActionResult GetPageList(string category, string tool, string product, int page, int pagesize, string toexcel)
{
var data = _toolsProductRepository.GetPagedList(category.ToInt(), tool.ToInt(), product.ToInt(), ProjectId, page, pagesize);
var data = _toolsProductRepository.GetPagedList(category.ToInt(), tool.ToInt(), product.ToInt(), ProjectId, page, pagesize, toexcel);
var categorys = _toolsCategoryRepository.GetList(q => q.projectId == ProjectId && q.status == (int)RowState.Valid).ToList();
var list = new List<ResponseAumationFixtureToolsProduct>();
foreach(var item in data.Data)
......@@ -50,9 +55,62 @@ namespace Siger.ApiACC.Controllers
item.categoryids = cateIds;
list.Add(item);
}
if(toexcel.ToInt() == 1)
{
return ExportExcel(data.Data);
}
return new PagedObjectResult(list, data.Total, page, pagesize);
}
private IActionResult ExportExcel(IEnumerable<ResponseAumationFixtureToolsProduct> data)
{
var rootDir = FileSystemHelper.GetPhysicalFolders(FileSystemHelper.CommonFileSetting.PhysicalFolder, FileSystemHelper.ExportFileName);
if (!data.Any())
{
throw new BadRequestException(CommonEnum.RecordNotFound);
}
var dataList = new List<FixtureToolsProductList>();
foreach (var item in data)
{
dataList.Add(new FixtureToolsProductList
{
Category = item.categoryname,
PartNumber = item.partnumber,
FixtureTool = item.fixturetool,
Specfication = item.specfication,
Product = item.productname,
ProductCode = item.productcode,
Remark = item.remark,
Updator = item.updator,
UpdateTime = item.updatetime
});
}
if (dataList.Any())
{
EpPlusExcelHelper<FixtureToolsProductList> helper = null;
try
{
helper = new EpPlusExcelHelper<FixtureToolsProductList>();
var temporaryFileName = $"工装对应产品_FixtureToolsProductData_{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 Product 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)
{
var query = from c in sections where c.guid == parentId select c;
......
......@@ -41,12 +41,17 @@ namespace Siger.ApiACC.Controllers
private readonly IBasketSettingRepository _basketSetting;
private readonly ITrParameterConfigRepository _parameterConfigRepository;
private readonly ISeriNumCfg _serinumCfgRepository;
private readonly IAutomationFixtureToolsCategoryRepository _fixtureToolsCategoryRepository;
private readonly IAutomationFixtureToolsRepository _fixtureToolsRepository;
private readonly IAutomationFixtureToolsProductRepository _fixtureToolsProductRepository;
private readonly IAutomationFixtureToolsAssemblyRepository _fixtureToolsAssemblyRepository;
public UploadController(IUnitOfWork unitOfWork,ISigerTrMaterialsRepository materialsRepository, ISigerTrMaterialTypeRepository materialTypeRepository,
ISigerTrAssemblyMaintenanceRepository assemblyMaintenanceRepository, ISigerTrProductStructureRepository productStructureRepository
, ISigerDict sigerDict, ISigerEquipment sigerEquipment, ISigerEquipmentPosition sigerEquipmentPosition, ISigerRoutingEventNo routingEvenNo
, ISigerRoutingOutStation sigerRoutingOutStation, ISigerRoutingInStation sigerRoutingIn, ISigerPackingFullQty sigerPackingFull
, ISigerCheckItem checkItem, ISigerWOBookingItem sigerWOBooking, IBasketSettingRepository basketSetting, ITrParameterConfigRepository parameterConfigRepository,
ISeriNumCfg serinumCfgRepository)
ISeriNumCfg serinumCfgRepository, IAutomationFixtureToolsCategoryRepository fixtureToolsCategoryRepository, IAutomationFixtureToolsRepository fixtureToolsRepository,
IAutomationFixtureToolsProductRepository fixtureToolsProductRepository, IAutomationFixtureToolsAssemblyRepository fixtureToolsAssemblyRepository)
{
_unitOfWork = unitOfWork;
_materialsRepository = materialsRepository;
......@@ -65,6 +70,10 @@ namespace Siger.ApiACC.Controllers
_basketSetting = basketSetting;
_parameterConfigRepository = parameterConfigRepository;
_serinumCfgRepository = serinumCfgRepository;
_fixtureToolsCategoryRepository = fixtureToolsCategoryRepository;
_fixtureToolsRepository = fixtureToolsRepository;
_fixtureToolsProductRepository = fixtureToolsProductRepository;
_fixtureToolsAssemblyRepository = fixtureToolsAssemblyRepository;
}
[HttpPost]
......@@ -208,6 +217,18 @@ namespace Siger.ApiACC.Controllers
case TemplateNameEnums.SnRule:
result = ImportSnRule(temporaryFilePath);
break;
case TemplateNameEnums.FixtureToolsCategoryTemplate:
result = ImportFixtureToolsCategory(temporaryFilePath);
break;
case TemplateNameEnums.FixtureToolsTemplate:
result = ImportFixtureTools(temporaryFilePath);
break;
case TemplateNameEnums.FixtureToolsProductTemplate:
result = ImportFixtureToolsProduct(temporaryFilePath);
break;
case TemplateNameEnums.FixtureToolsAssmeblyTemplate:
result = ImportFixtureToolsAssembly(temporaryFilePath);
break;
default:
throw new ArgumentOutOfRangeException();
}
......@@ -803,5 +824,110 @@ namespace Siger.ApiACC.Controllers
excelHelper?.Dispose();
}
}
private CommonImportResult ImportFixtureToolsCategory(string temporaryFilePath)
{
EpPlusExcelHelper<FixtureToolsCategoryTemplate> excelHelper = null;
try
{
excelHelper = new EpPlusExcelHelper<FixtureToolsCategoryTemplate>(temporaryFilePath);
var checkResult = excelHelper.CheckExcel();
if (checkResult.Any())
{
return new CommonImportResult(0, string.Join(';', checkResult));
}
var data = excelHelper.ConvertSheetToList();
var result = _fixtureToolsCategoryRepository.ImportData(data, ProjectId);
return result;
}
catch (Exception e)
{
Logger.WriteLineError("ImportFixtureToolsCategory failed,error: " + e.Message);
throw;
}
finally
{
excelHelper?.Dispose();
}
}
private CommonImportResult ImportFixtureTools(string temporaryFilePath)
{
EpPlusExcelHelper<FixtureToolsTemplate> excelHelper = null;
try
{
excelHelper = new EpPlusExcelHelper<FixtureToolsTemplate>(temporaryFilePath);
var checkResult = excelHelper.CheckExcel();
if (checkResult.Any())
{
return new CommonImportResult(0, string.Join(';', checkResult));
}
var data = excelHelper.ConvertSheetToList();
var result = _fixtureToolsRepository.ImportData(data, ProjectId, UserId);
return result;
}
catch (Exception e)
{
Logger.WriteLineError("ImportFixtureTools failed,error: " + e.Message);
throw;
}
finally
{
excelHelper?.Dispose();
}
}
private CommonImportResult ImportFixtureToolsProduct(string temporaryFilePath)
{
EpPlusExcelHelper<FixtureToolsProductTemplate> excelHelper = null;
try
{
excelHelper = new EpPlusExcelHelper<FixtureToolsProductTemplate>(temporaryFilePath);
var checkResult = excelHelper.CheckExcel();
if (checkResult.Any())
{
return new CommonImportResult(0, string.Join(';', checkResult));
}
var data = excelHelper.ConvertSheetToList();
var result = _fixtureToolsProductRepository.ImportData(data, ProjectId, UserId);
return result;
}
catch (Exception e)
{
Logger.WriteLineError("ImportFixtureToolsProduct failed,error: " + e.Message);
throw;
}
finally
{
excelHelper?.Dispose();
}
}
private CommonImportResult ImportFixtureToolsAssembly(string temporaryFilePath)
{
EpPlusExcelHelper<FixtureToolsAssmeblyTemplate> excelHelper = null;
try
{
excelHelper = new EpPlusExcelHelper<FixtureToolsAssmeblyTemplate>(temporaryFilePath);
var checkResult = excelHelper.CheckExcel();
if (checkResult.Any())
{
return new CommonImportResult(0, string.Join(';', checkResult));
}
var data = excelHelper.ConvertSheetToList();
var result = _fixtureToolsAssemblyRepository.ImportData(data, ProjectId, UserId);
return result;
}
catch (Exception e)
{
Logger.WriteLineError("ImportFixtureToolsAssembly failed,error: " + e.Message);
throw;
}
finally
{
excelHelper?.Dispose();
}
}
}
}
......@@ -39,6 +39,36 @@ namespace Siger.Middlelayer.Utility.ImportEntities
[ExcelColumn("备注")]
public string Remark { get; set; }
}
public class FixtureToolsList : ImportBase
{
[ExcelColumn("工装类型")]
public string Catgeory { get; set; }
[ExcelColumn("管理类型*")]
public string Manage { get; set; }
[ExcelColumn("工装名称*")]
public string Name { get; set; }
[ExcelColumn("工装料号*")]
public string PartNumber { get; set; }
[ExcelColumn("工装编号*")]
public string Code { get; set; }
[ExcelColumn("规格型号*")]
public string Specfication { get; set; }
[ExcelColumn("数量*")]
public string Number { get; set; }
[ExcelColumn("状态*")]
public string Status { get; set; }
[ExcelColumn("备注")]
public string Remark { get; set; }
[ExcelColumn("维护人")]
public string Updator { get; set; }
......@@ -49,7 +79,7 @@ namespace Siger.Middlelayer.Utility.ImportEntities
public class FixtureToolsProductTemplate : ImportBase
{
[ExcelColumn("工装编号*")]
[ExcelColumn("工装名称*")]
public string FixtureTool { get; set; }
[ExcelColumn("产品名称*")]
......@@ -59,15 +89,87 @@ namespace Siger.Middlelayer.Utility.ImportEntities
public string Remark { get; set; }
}
public class FixtureToolsProductList : ImportBase
{
[ExcelColumn("工装类型")]
public string Category { get; set; }
[ExcelColumn("工装料号")]
public string PartNumber { get; set; }
[ExcelColumn("工装名称")]
public string FixtureTool { get; set; }
[ExcelColumn("规格型号")]
public string Specfication { get; set; }
[ExcelColumn("产品编号")]
public string ProductCode { get; set; }
[ExcelColumn("产品名称")]
public string Product { get; set; }
[ExcelColumn("备注")]
public string Remark { get; set; }
[ExcelColumn("维护人")]
public string Updator { get; set; }
[ExcelColumn("维护时间")]
public string UpdateTime { get; set; }
}
public class FixtureToolsAssmeblyTemplate : ImportBase
{
[ExcelColumn("父工装编号*")]
[ExcelColumn("父工装名称*")]
public string ParentFixtureTool { get; set; }
[ExcelColumn("子工装编号*")]
[ExcelColumn("子工装名称*")]
public string FixtureTool { get; set; }
[ExcelColumn("备注")]
public string Remark { get; set; }
[ExcelColumn("状态*")]
public string Status { get; set; }
}
public class FixtureToolsAssmeblyList : ImportBase
{
[ExcelColumn("父工装类型")]
public string ParentCategory { get; set; }
[ExcelColumn("父工装料号")]
public string ParentPartNumber { get; set; }
[ExcelColumn("父工装名称")]
public string ParentFixtureTool { get; set; }
[ExcelColumn("父工装规格")]
public string ParentSpecfication { get; set; }
[ExcelColumn("子工装类型")]
public string Category { get; set; }
[ExcelColumn("子工装料号")]
public string PartNumber { get; set; }
[ExcelColumn("子工装名称")]
public string FixtureTool { get; set; }
[ExcelColumn("子工装规格")]
public string Specfication { get; set; }
[ExcelColumn("状态")]
public string Status { get; set; }
[ExcelColumn("备注")]
public string Remark { get; set; }
[ExcelColumn("维护人")]
public string Updator { get; set; }
[ExcelColumn("维护时间")]
public string UpdateTime { get; set; }
}
}
......@@ -7,9 +7,12 @@ using Siger.Middlelayer.AccRepository.Entities;
using Siger.Middlelayer.AccRepository.Repositories.Interface;
using Siger.Middlelayer.AccRepository.Response;
using Siger.Middlelayer.Common;
using Siger.Middlelayer.Common.Extensions;
using Siger.Middlelayer.Log;
using Siger.Middlelayer.Repository.Data.Acc;
using Siger.Middlelayer.Repository.Extensions;
using Siger.Middlelayer.Repository.Paged;
using Siger.Middlelayer.Utility.ImportEntities;
namespace Siger.Middlelayer.AccRepository.Repositories
{
......@@ -21,7 +24,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories
_context = context;
}
public IPagedCollectionResult<ResponseAumationFixtureToolsAssembly> GetPagedList(int category, string code, string name, int projectid, int page, int pagesize)
public IPagedCollectionResult<ResponseAumationFixtureToolsAssembly> GetPagedList(int category, string code, string name, int projectid, int page, int pagesize, string toexcel = "")
{
var query = from q in _context.siger_automation_fixture_tools_assembly
join t1 in _context.siger_automation_fixture_tools on q.parent equals t1.guid into tt1
......@@ -55,7 +58,10 @@ namespace Siger.Middlelayer.AccRepository.Repositories
parentguid = q.parent,
fixtureguid = q.son,
remark = q.remark,
parentcategoryid = c1 == null ? 0 : c1.id
parentcategoryid = c1 == null ? 0 : c1.id,
parentcategory = c1.name ?? "",
parentpartnumber = t1.partnumber ?? "",
parentspecfication = t1.specification ?? ""
};
Expression<Func<ResponseAumationFixtureToolsAssembly, bool>> categoryExpression = f => true;
if (category > 0)
......@@ -73,9 +79,17 @@ namespace Siger.Middlelayer.AccRepository.Repositories
nameExpression = q => q.name.Contains(name);
}
var expression = categoryExpression.And(codeExpression).And(nameExpression);
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<ResponseAumationFixtureToolsAssembly>(entities, totalCount);
if (toexcel.ToInt() == 1)
{
var entities = query.Where(expression).OrderByDescending(q => q.id).AsNoTracking().ToList();
return new PagedCollectionResult<ResponseAumationFixtureToolsAssembly>(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<ResponseAumationFixtureToolsAssembly>(entities, totalCount);
}
}
public IEnumerable<ResponseAumationFixtureToolsAssembly> GetDetailList(string parent, int projectid)
......@@ -111,10 +125,115 @@ namespace Siger.Middlelayer.AccRepository.Repositories
parentguid = q.parent,
fixtureguid = q.son,
remark = q.remark,
parentcategoryid = c1 == null ? 0 : c1.id
parentcategoryid = c1 == null ? 0 : c1.id,
parentcategory = c1.name ?? "",
parentpartnumber = t1.partnumber ?? "",
parentspecfication = t1.specification ?? ""
};
var entities = query.OrderByDescending(q => q.id).AsNoTracking().ToList();
return entities;
}
public CommonImportResult ImportData(IEnumerable<FixtureToolsAssmeblyTemplate> list, int projectid, int userid)
{
var errors = new List<string>();
var rowIndex = 1;
foreach (var item in list)
{
rowIndex++;
var entities = new List<siger_automation_fixture_tools_assembly>();
if (string.IsNullOrEmpty(item.FixtureTool) || string.IsNullOrEmpty(item.ParentFixtureTool))
{
throw new BadRequestException(RequestEnum.ParameterMiss);
}
if (item.ParentFixtureTool == item.FixtureTool)
{
throw new BadRequestException(RequestEnum.ParentSonSame);
}
var parent = _context.siger_automation_fixture_tools.FirstOrDefault(q => q.name == item.ParentFixtureTool && q.projectId == projectid);
if (parent == null)
{
throw new BadRequestException(RequestEnum.FixtureToolNotFound);
}
var son = _context.siger_automation_fixture_tools.FirstOrDefault(q => q.name == item.FixtureTool && q.projectId == projectid);
if (son == null)
{
throw new BadRequestException(RequestEnum.FixtureToolNotFound);
}
var parentGuid = parent.guid;
var exsit = _context.siger_automation_fixture_tools_assembly.FirstOrDefault(q => q.projectId == projectid && q.son == son.guid && q.parent == parentGuid);
if (exsit != null)
{
throw new BadRequestException(RequestEnum.DataExist);
}
if (list.Count(q => q.FixtureTool == item.FixtureTool && q.ParentFixtureTool == item.ParentFixtureTool) > 1)
{
throw new BadRequestException(RequestEnum.DataExist);
}
var parentExsit = _context.siger_automation_fixture_tools_assembly.FirstOrDefault(q => q.projectId == projectid && q.son == parentGuid);
if (parentExsit != null && !string.IsNullOrEmpty(parentExsit.parent))
{
throw new BadRequestException(RequestEnum.LevelCountError);
}
if (errors.Any())
{
return new CommonImportResult(0, string.Join(";", errors));
}
if (_context.siger_automation_fixture_tools_assembly.FirstOrDefault(q => q.projectId == projectid && q.son == parentGuid) == null)
{
var parentEntity = new siger_automation_fixture_tools_assembly
{
guid = Guid.NewGuid().ToString(),
parent = "",
son = parent.guid,
creator = userid,
createtime = DateTime.Now,
attachment = "",
filename = "",
projectId = projectid,
updatetime = DateTime.Now,
updator = userid,
status = item.Status == "可用" ? (int)RowState.Valid : (int)RowState.Invalid,
remark = item.Remark
};
_context.siger_automation_fixture_tools_assembly.Add(parentEntity);
}
var entity = new siger_automation_fixture_tools_assembly
{
guid = Guid.NewGuid().ToString(),
parent = parentGuid,
son = son.guid,
creator = userid,
createtime = DateTime.Now,
attachment = "",
filename = "",
projectId = projectid,
updatetime = DateTime.Now,
updator = userid,
status = item.Status == "可用" ? (int)RowState.Valid : (int)RowState.Invalid,
remark = item.Remark
};
entities.Add(entity);
try
{
_context.siger_automation_fixture_tools_assembly.AddRange(entities);
_context.SaveChanges();
}
catch (Exception e)
{
Logger.WriteLineError(e.Message);
throw;
}
}
return new CommonImportResult(1, "1");
}
}
}
......@@ -60,34 +60,60 @@ namespace Siger.Middlelayer.AccRepository.Repositories
public CommonImportResult ImportData(IEnumerable<FixtureToolsCategoryTemplate> list, int projectid)
{
var entities = new List<siger_automation_fixture_tools_category>();
var errors = new List<string>();
var rowIndex = 1;
foreach (var item in list)
{
rowIndex++;
//errors.Add($"{rowIndex},{(int)RequestEnum.ManageCatOnlyBySuperAdministrator}");
if (string.IsNullOrEmpty(item.Fixture))
{
errors.Add($"{rowIndex}, {(int)RequestEnum.ParameterMiss}");
}
}
var data = _context.siger_automation_fixture_tools_category.FirstOrDefault(q => q.projectId == projectid && q.status == (int)RowState.Valid && q.name == item.Fixture);
if (data != null)
{
errors.Add($"{rowIndex},{(int)RequestEnum.DataExist}");
}
var parent = "";
if (!string.IsNullOrEmpty(item.Parent))
{
var exsit = _context.siger_automation_fixture_tools_category.FirstOrDefault(q => q.projectId == projectid && q.status == (int)RowState.Valid && q.name == item.Parent);
if (exsit == null)
{
errors.Add($"{rowIndex},{(int)RequestEnum.ParentTypeError}");
}
else
{
parent = exsit.guid;
}
}
if (errors.Any())
{
return new CommonImportResult(0, string.Join(";", errors));
}
if (errors.Any())
{
return new CommonImportResult(0, string.Join(";", errors));
}
try
{
_context.siger_automation_fixture_tools_category.AddRange(entities);
_context.SaveChanges();
return new CommonImportResult(1, "1");
}
catch(Exception e)
{
Logger.WriteLineError(e.Message);
throw;
try
{
var entity = new siger_automation_fixture_tools_category
{
guid = Guid.NewGuid().ToString(),
name = item.Fixture,
parent = parent,
createtime = DateTime.Now,
};
_context.siger_automation_fixture_tools_category.Add(entity);
_context.SaveChanges();
}
catch (Exception e)
{
Logger.WriteLineError(e.Message);
throw;
}
}
return new CommonImportResult(1, "1");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using Microsoft.EntityFrameworkCore;
......@@ -6,9 +7,12 @@ using Siger.Middlelayer.AccRepository.Entities;
using Siger.Middlelayer.AccRepository.Repositories.Interface;
using Siger.Middlelayer.AccRepository.Response;
using Siger.Middlelayer.Common;
using Siger.Middlelayer.Common.Extensions;
using Siger.Middlelayer.Log;
using Siger.Middlelayer.Repository.Data.Acc;
using Siger.Middlelayer.Repository.Extensions;
using Siger.Middlelayer.Repository.Paged;
using Siger.Middlelayer.Utility.ImportEntities;
namespace Siger.Middlelayer.AccRepository.Repositories
{
......@@ -36,7 +40,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories
return query.FirstOrDefault();
}
public IPagedCollectionResult<ResponseAumationFixtureToolsProduct> GetPagedList(int category, int tool, int product, int projectid, int page, int pagesize)
public IPagedCollectionResult<ResponseAumationFixtureToolsProduct> GetPagedList(int category, int tool, int product, int projectid, int page, int pagesize, string toexcel)
{
var query = from q in _context.siger_automation_fixture_tools_product
join t in _context.siger_automation_fixture_tools on q.fixturetools equals t.guid
......@@ -80,9 +84,17 @@ namespace Siger.Middlelayer.AccRepository.Repositories
productExpression = q => q.productid == product;
}
var expression = categoryExpression.And(toolExpression).And(productExpression);
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<ResponseAumationFixtureToolsProduct>(entities, totalCount);
if (toexcel.ToInt() == 1)
{
var entities = query.Where(expression).OrderByDescending(q => q.id).AsNoTracking().ToList();
return new PagedCollectionResult<ResponseAumationFixtureToolsProduct>(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<ResponseAumationFixtureToolsProduct>(entities, totalCount);
}
}
public ResponsePlanlFixtureInfo GetPlanFixtureInfo(int projectId, string ordernumber)
......@@ -105,5 +117,81 @@ namespace Siger.Middlelayer.AccRepository.Repositories
};
return query.FirstOrDefault();
}
public CommonImportResult ImportData(IEnumerable<FixtureToolsProductTemplate> list, int projectid, int userid)
{
var entities = new List<siger_automation_fixture_tools_product>();
var errors = new List<string>();
var rowIndex = 1;
foreach (var item in list)
{
rowIndex++;
if (string.IsNullOrEmpty(item.FixtureTool) || string.IsNullOrEmpty(item.Product) || string.IsNullOrEmpty(item.Product))
{
errors.Add($"{rowIndex},{(int)RequestEnum.ParameterMiss}");
}
var fixtureTool = _context.siger_automation_fixture_tools.FirstOrDefault(q => q.projectId == projectid && q.name == item.FixtureTool);
if (fixtureTool == null)
{
errors.Add($"{rowIndex},{(int)RequestEnum.FixtureToolNotFound}");
}
var product = _context.siger_project_product.FirstOrDefault(q => q.projectid == projectid && q.status == (int)RowState.Valid && q.code == item.Product);
if (product == null)
{
errors.Add($"{rowIndex},{(int)RequestEnum.ProductNotFound}");
}
if(fixtureTool != null && product != null)
{
var data = _context.siger_automation_fixture_tools_product.FirstOrDefault(q => q.projectId == projectid && q.status == (int)RowState.Valid && (q.fixturetools == fixtureTool.guid ||
q.productid == product.id));
if (data != null)
{
errors.Add($"{rowIndex},{(int)RequestEnum.DataExist}");
}
}
if(list.Count(q => q.FixtureTool == item.FixtureTool || q.Product == item.Product) > 1)
{
errors.Add($"{rowIndex},{(int)RequestEnum.DataExist}");
}
if (errors.Any())
{
return new CommonImportResult(0, string.Join(";", errors));
}
var entity = new siger_automation_fixture_tools_product
{
guid = Guid.NewGuid().ToString(),
fixturetools = fixtureTool.guid,
remark = item.Remark,
productid = product.id,
productcode = product.code,
projectId = projectid,
createtime = DateTime.Now,
updatetime = DateTime.Now,
creator = userid,
updator = userid,
attachment = "",
filename = ""
};
entities.Add(entity);
}
try
{
_context.siger_automation_fixture_tools_product.AddRange(entities);
_context.SaveChanges();
return new CommonImportResult(1, "1");
}
catch (Exception e)
{
Logger.WriteLineError(e.Message);
throw;
}
}
}
}
......@@ -8,9 +8,11 @@ using Siger.Middlelayer.AccRepository.Repositories.Interface;
using Siger.Middlelayer.AccRepository.Response;
using Siger.Middlelayer.Common;
using Siger.Middlelayer.Common.Extensions;
using Siger.Middlelayer.Log;
using Siger.Middlelayer.Repository.Data.Acc;
using Siger.Middlelayer.Repository.Extensions;
using Siger.Middlelayer.Repository.Paged;
using Siger.Middlelayer.Utility.ImportEntities;
namespace Siger.Middlelayer.AccRepository.Repositories
{
......@@ -128,5 +130,78 @@ namespace Siger.Middlelayer.AccRepository.Repositories
};
return query.FirstOrDefault();
}
public CommonImportResult ImportData(IEnumerable<FixtureToolsTemplate> list, int projectid, int userid)
{
var entities = new List<siger_automation_fixture_tools>();
var errors = new List<string>();
var rowIndex = 1;
foreach (var item in list)
{
rowIndex++;
if (string.IsNullOrEmpty(item.PartNumber) || string.IsNullOrEmpty(item.Code) || string.IsNullOrEmpty(item.Name) || string.IsNullOrEmpty(item.Catgeory) ||
string.IsNullOrEmpty(item.Manage) || string.IsNullOrEmpty(item.Number) || string.IsNullOrEmpty(item.Status) || string.IsNullOrEmpty(item.Specfication))
{
errors.Add($"{rowIndex},{(int)RequestEnum.ParameterMiss}");
}
var data = _context.siger_automation_fixture_tools.FirstOrDefault(q => q.projectId == projectid && (q.name == item.Name || q.code == item.Code || q.partnumber == item.PartNumber));
if (data != null)
{
errors.Add($"{rowIndex},{(int)RequestEnum.DataExist}");
}
if (list.Count(q => q.Name == item.Name || q.Code == item.Code || q.PartNumber == item.PartNumber) > 1)
{
errors.Add($"{rowIndex},{(int)RequestEnum.DataExist}");
}
var category = _context.siger_automation_fixture_tools.FirstOrDefault(q => q.name == item.Catgeory && q.projectId == projectid && q.status == (int)RowState.Valid);
if (category == null)
{
errors.Add($"{rowIndex},{(int)RequestEnum.FixtureToolCatgeoryNotFound}");
}
if (errors.Any())
{
return new CommonImportResult(0, string.Join(";", errors));
}
var entity = new siger_automation_fixture_tools
{
guid = Guid.NewGuid().ToString(),
category = category.guid,
managetype = item.Manage == "单件" ? 1 : 2,
partnumber = item.PartNumber,
name = item.Name,
specification = item.Specfication,
number = item.Number.ToInt(),
remark = item.Remark,
attachment = "",
filename = "",
code = item.Code,
projectId = projectid,
status = item.Status == "可用" ? (int)RowState.Valid : (int)RowState.Invalid,
createtime = DateTime.Now,
updatetime = DateTime.Now,
creator = userid,
updator = userid,
};
entities.Add(entity);
}
try
{
_context.siger_automation_fixture_tools.AddRange(entities);
_context.SaveChanges();
return new CommonImportResult(1, "1");
}
catch (Exception e)
{
Logger.WriteLineError(e.Message);
throw;
}
}
}
}
......@@ -2,14 +2,17 @@
using Siger.Middlelayer.AccRepository.Response;
using Siger.Middlelayer.Repository.Data.Acc;
using Siger.Middlelayer.Repository.Paged;
using Siger.Middlelayer.Utility.ImportEntities;
using System.Collections.Generic;
namespace Siger.Middlelayer.AccRepository.Repositories.Interface
{
public interface IAutomationFixtureToolsAssemblyRepository : IAccRepositoryBase<siger_automation_fixture_tools_assembly>
{
IPagedCollectionResult<ResponseAumationFixtureToolsAssembly> GetPagedList(int category, string code, string name, int projectid, int page, int pagesize);
IPagedCollectionResult<ResponseAumationFixtureToolsAssembly> GetPagedList(int category, string code, string name, int projectid, int page, int pagesize, string toexcel = "");
IEnumerable<ResponseAumationFixtureToolsAssembly> GetDetailList(string parent, int projectid);
CommonImportResult ImportData(IEnumerable<FixtureToolsAssmeblyTemplate> list, int projectid, int userid);
}
}
......@@ -2,11 +2,15 @@
using Siger.Middlelayer.AccRepository.Response;
using Siger.Middlelayer.Repository.Data.Acc;
using Siger.Middlelayer.Repository.Paged;
using Siger.Middlelayer.Utility.ImportEntities;
using System.Collections.Generic;
namespace Siger.Middlelayer.AccRepository.Repositories.Interface
{
public interface IAutomationFixtureToolsCategoryRepository : IAccRepositoryBase<siger_automation_fixture_tools_category>
{
IPagedCollectionResult<ResponseFixtureToolsCategory> GetPagedList(int id, int projectid, int page, int pagesize, string toexcel = "");
CommonImportResult ImportData(IEnumerable<FixtureToolsCategoryTemplate> list, int projectid);
}
}
......@@ -2,12 +2,14 @@
using Siger.Middlelayer.AccRepository.Response;
using Siger.Middlelayer.Repository.Data.Acc;
using Siger.Middlelayer.Repository.Paged;
using Siger.Middlelayer.Utility.ImportEntities;
using System.Collections.Generic;
namespace Siger.Middlelayer.AccRepository.Repositories.Interface
{
public interface IAutomationFixtureToolsProductRepository : IAccRepositoryBase<siger_automation_fixture_tools_product>
{
IPagedCollectionResult<ResponseAumationFixtureToolsProduct> GetPagedList(int category, int tool, int product, int projectid, int page, int pagesize);
IPagedCollectionResult<ResponseAumationFixtureToolsProduct> GetPagedList(int category, int tool, int product, int projectid, int page, int pagesize, string toexcel);
ResponseProductFixtureInfo GetFixtureInfoByProductCode(int projectId, string productCode);
......@@ -19,5 +21,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories.Interface
/// <returns></returns>
ResponsePlanlFixtureInfo GetPlanFixtureInfo(int projectId, string ordernumber);
CommonImportResult ImportData(IEnumerable<FixtureToolsProductTemplate> list, int projectid, int userid);
}
}
......@@ -2,6 +2,7 @@
using Siger.Middlelayer.AccRepository.Response;
using Siger.Middlelayer.Repository.Data.Acc;
using Siger.Middlelayer.Repository.Paged;
using Siger.Middlelayer.Utility.ImportEntities;
using System.Collections.Generic;
namespace Siger.Middlelayer.AccRepository.Repositories.Interface
......@@ -14,5 +15,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories.Interface
IEnumerable<ResponseFixtureTools> GetDataList(int categoryid, int projectid);
ResponseProductFixtureInfo GetProductFixtureLocation(int projectId, string guid);
CommonImportResult ImportData(IEnumerable<FixtureToolsTemplate> list, int projectid, int userid);
}
}
......@@ -148,5 +148,9 @@ namespace Siger.Middlelayer.AccRepository.Response
public List<ResponseAumationFixtureToolsAssembly> childrens { get; set; }
public string remark { get; set; }
public string parentcategory { get; set; }
public string parentpartnumber { get; set; }
public string parentspecfication { get; set; }
}
}
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