Commit be0071e4 by jiawei.su

someupdate

parent 0b6df559
...@@ -361,6 +361,9 @@ namespace Siger.ApiACC.Controllers ...@@ -361,6 +361,9 @@ namespace Siger.ApiACC.Controllers
[HttpGet] [HttpGet]
public IActionResult GetLocationList(string productcode, int fillsn=0) public IActionResult GetLocationList(string productcode, int fillsn=0)
{ {
var productFix = _automationFixtureToolsProduct.Get(f => f.productcode == productcode);
var locations = _autoLocationRepository.GetFulllocation(ProjectId, fillsn); var locations = _autoLocationRepository.GetFulllocation(ProjectId, fillsn);
return new ObjectResult(locations); return new ObjectResult(locations);
//if (fillsn == 1) //if (fillsn == 1)
......
...@@ -23,14 +23,16 @@ namespace Siger.ApiCNC.Controllers ...@@ -23,14 +23,16 @@ namespace Siger.ApiCNC.Controllers
private readonly IProductionBeatSetRepository _beatSetRepository; private readonly IProductionBeatSetRepository _beatSetRepository;
private readonly ISigerProjectMachineRepository _machineRepository; private readonly ISigerProjectMachineRepository _machineRepository;
private readonly ISigerProjectProductRepository _productRepository; private readonly ISigerProjectProductRepository _productRepository;
private readonly IProductRouteRepository _productRoute;
public BeatAllocationController(IUnitOfWork unitOfWork, IProductionBeatSetRepository beatSetRepository, ISigerProjectMachineRepository machineRepository, public BeatAllocationController(IUnitOfWork unitOfWork, IProductionBeatSetRepository beatSetRepository, ISigerProjectMachineRepository machineRepository,
ISigerProjectProductRepository productRepository) ISigerProjectProductRepository productRepository, IProductRouteRepository productRoute)
{ {
_unitOfWork = unitOfWork; _unitOfWork = unitOfWork;
_beatSetRepository = beatSetRepository; _beatSetRepository = beatSetRepository;
_machineRepository = machineRepository; _machineRepository = machineRepository;
_productRepository = productRepository; _productRepository = productRepository;
_productRoute = productRoute;
} }
[HttpGet] [HttpGet]
...@@ -43,6 +45,7 @@ namespace Siger.ApiCNC.Controllers ...@@ -43,6 +45,7 @@ namespace Siger.ApiCNC.Controllers
var validMachines = _machineRepository.GetLevelSectionNames(sectionID, ProjectId); var validMachines = _machineRepository.GetLevelSectionNames(sectionID, ProjectId);
foreach (var time in data.Data) foreach (var time in data.Data)
{ {
var route = _productRoute.Get(f => f.id == time.route_number.ToInt());
var entity = Mapper<ResponseBeatSet, ResponseBeatSet>.Map(time); var entity = Mapper<ResponseBeatSet, ResponseBeatSet>.Map(time);
var section = validMachines.FirstOrDefault(q => q.machine_id == time.machineID); var section = validMachines.FirstOrDefault(q => q.machine_id == time.machineID);
if (section != null) if (section != null)
...@@ -50,6 +53,10 @@ namespace Siger.ApiCNC.Controllers ...@@ -50,6 +53,10 @@ namespace Siger.ApiCNC.Controllers
entity.sectionName = section.machine_name; entity.sectionName = section.machine_name;
entity.stationName = section.lastSecondSectionTitle + "-" + section.lastSectionTitle; entity.stationName = section.lastSecondSectionTitle + "-" + section.lastSectionTitle;
} }
if (route!=null)
{
entity.routeName = route.name;
}
list.Add(entity); list.Add(entity);
} }
return new PagedObjectResult(list, data.Total, page, pagesize); return new PagedObjectResult(list, data.Total, page, pagesize);
...@@ -104,6 +111,11 @@ namespace Siger.ApiCNC.Controllers ...@@ -104,6 +111,11 @@ namespace Siger.ApiCNC.Controllers
{ {
throw new BadRequestException(RequestEnum.ProductNotFound); throw new BadRequestException(RequestEnum.ProductNotFound);
} }
var route = _productRoute.Get(f =>f.id==request.route_id);
if (route==null)
{
throw new BadRequestException(RequestEnum.RouteNotFound);
}
var beatSet = new siger_project_beat_set var beatSet = new siger_project_beat_set
{ {
daily_standard_output = request.daily_standard_output, daily_standard_output = request.daily_standard_output,
...@@ -117,8 +129,8 @@ namespace Siger.ApiCNC.Controllers ...@@ -117,8 +129,8 @@ namespace Siger.ApiCNC.Controllers
standard_besat = request.standard_besat, standard_besat = request.standard_besat,
projectID = ProjectId, projectID = ProjectId,
changemodeltime = request.time_num.ToInt(), changemodeltime = request.time_num.ToInt(),
route_number = request.route_number.ToStr(), route_number = request.route_id.ToStr(),
route_name = request.route_name, route_name = route.name,
updown_besat = request.updown_besat.ToDouble(), updown_besat = request.updown_besat.ToDouble(),
yieldrate = request.yieldratio, yieldrate = request.yieldratio,
start_time = timSet ? start : DateTime.MinValue, start_time = timSet ? start : DateTime.MinValue,
......
...@@ -103,11 +103,11 @@ namespace Siger.Middlelayer.AccRepository.Repositories ...@@ -103,11 +103,11 @@ namespace Siger.Middlelayer.AccRepository.Repositories
/// <param name="productIds"></param> /// <param name="productIds"></param>
/// <param name="projectId"></param> /// <param name="projectId"></param>
/// <returns></returns> /// <returns></returns>
public IEnumerable<ResponseAutomationPlanOrder> GetDeliveryOrder(List<int>productIds,int projectId) public IEnumerable<ResponseAutomationPlanOrder> GetDeliveryOrder(List<string>Ordernums,int projectId)
{ {
var query = from d in _context.siger_project_product_plan_detail var query = from d in _context.siger_project_product_plan_detail
join p in _context.siger_project_product_plan on d.PlanId equals p.id join p in _context.siger_project_product_plan on d.PlanId equals p.id
where d.projectId == projectId && productIds.Contains(p.product_id) && d.status != (int)RowState.Invalid && p.status != (int)RowState.Invalid where d.projectId == projectId && Ordernums.Contains(d.OrderNumber) && d.status != (int)RowState.Invalid && p.status != (int)RowState.Invalid
select new ResponseAutomationPlanOrder select new ResponseAutomationPlanOrder
{ {
productId=p.product_id, productId=p.product_id,
...@@ -136,7 +136,8 @@ namespace Siger.Middlelayer.AccRepository.Repositories ...@@ -136,7 +136,8 @@ namespace Siger.Middlelayer.AccRepository.Repositories
ProductName = p.product_name, ProductName = p.product_name,
Url=pd.image, Url=pd.image,
FixtureName=t.name, FixtureName=t.name,
FixtureGuid=t.code, FixtureGuid=t.guid,
FixtureCode=t.code,
ProductCode =q!=null? q.productcode:"", ProductCode =q!=null? q.productcode:"",
Location =l!=null? l.locationid:0, Location =l!=null? l.locationid:0,
}; };
......
...@@ -238,42 +238,64 @@ namespace Siger.Middlelayer.AccRepository.Repositories ...@@ -238,42 +238,64 @@ namespace Siger.Middlelayer.AccRepository.Repositories
public IEnumerable<ResponseAutomationLocationList> GetFulllocation(int projectId,int full) public IEnumerable<ResponseAutomationLocationList> GetFulllocation(int projectId,int full)
{ {
var query = from q in _context.siger_automation_location //获取有SN 的储位
join t in _context.siger_automation_fixture_tools on q.fixturetools equals t.guid if (full==1)
join l in _context.siger_wms_storage_location on q.location_cid equals l.id
join w in _context.siger_wms_storage on l.storageid equals w.id
where q.projectId==projectId
&& q.status==(int)RowState.Valid
&& t.status==(int)RowState.Valid
&& l.status==(int)RowState.Valid
&& w.status==(int)RowState.Valid
select new ResponseAutomationLocationList
{
id = q.id,
typeid = t.id,
fixtureguid = t.guid,
locationid = l.locationid,
location = l.realname,
locationcode = l.serial_number,
wavehouseid = w.id,
wavehouse = w.name,
wavehousecode = w.serial_number,
fixturetoolid = t.id,
code = t.code,
name = t.name,
materialsn = q.sn ?? ""
};
Expression<Func<ResponseAutomationLocationList, bool>> locationidExpression = f => true;
if (full != 0)
{ {
locationidExpression = q => !string.IsNullOrEmpty(q.materialsn); var query = from q in _context.siger_automation_location
join t in _context.siger_automation_fixture_tools on q.fixturetools equals t.guid
join l in _context.siger_wms_storage_location on q.location_cid equals l.id
join w in _context.siger_wms_storage on l.storageid equals w.id
where q.projectId == projectId && !string.IsNullOrEmpty(q.sn)
&& q.status == (int)RowState.Valid&& t.status == (int)RowState.Valid
&& l.status == (int)RowState.Valid && w.status == (int)RowState.Valid
select new ResponseAutomationLocationList
{
id = q.id,
typeid = t.id,
fixtureguid = t.guid,
locationid = l.locationid,
location = l.realname,
locationcode = l.serial_number,
wavehouseid = w.id,
wavehouse = w.name,
wavehousecode = w.serial_number,
fixturetoolid = t.id,
code = t.code,
name = t.name,
materialsn = q.sn
};
Expression<Func<ResponseAutomationLocationList, bool>> locationidExpression = f => true;
return query.Where(locationidExpression);
}else }else
{ {
locationidExpression = q => string.IsNullOrEmpty(q.materialsn); //选择SN为空的储位
var query = from q in _context.siger_automation_location
join t in _context.siger_automation_fixture_tools on q.fixturetools equals t.guid
join l in _context.siger_wms_storage_location on q.location_cid equals l.id
join w in _context.siger_wms_storage on l.storageid equals w.id
where q.projectId == projectId && string.IsNullOrEmpty(q.sn)
&& q.status == (int)RowState.Valid && t.status == (int)RowState.Valid
&& l.status == (int)RowState.Valid&& w.status == (int)RowState.Valid
select new ResponseAutomationLocationList
{
id = q.id,
typeid = t.id,
fixtureguid = t.guid,
locationid = l.locationid,
location = l.realname,
locationcode = l.serial_number,
wavehouseid = w.id,
wavehouse = w.name,
wavehousecode = w.serial_number,
fixturetoolid = t.id,
code = t.code,
name = t.name,
materialsn = q.sn
};
Expression<Func<ResponseAutomationLocationList, bool>> locationidExpression = f => true;
return query.Where(locationidExpression);
} }
return query.Where(locationidExpression);
} }
} }
} }
...@@ -37,7 +37,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories.Interface ...@@ -37,7 +37,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories.Interface
/// <param name="productIds"></param> /// <param name="productIds"></param>
/// <param name="projectId"></param> /// <param name="projectId"></param>
/// <returns></returns> /// <returns></returns>
IEnumerable<ResponseAutomationPlanOrder> GetDeliveryOrder(List<int> productIds, int projectId); IEnumerable<ResponseAutomationPlanOrder> GetDeliveryOrder(List<string> Ordernums, int projectId);
} }
} }
...@@ -31,6 +31,8 @@ namespace Siger.Middlelayer.AccRepository.Response ...@@ -31,6 +31,8 @@ namespace Siger.Middlelayer.AccRepository.Response
public class ResponseAutomationLocationRouteInfo public class ResponseAutomationLocationRouteInfo
{ {
public int section { get; set; }
public int machine { get; set; }
public string fixture { get; set; } public string fixture { get; set; }
public string fixturename { get; set; } public string fixturename { get; set; }
public string ordernumber { get; set; } public string ordernumber { get; set; }
...@@ -39,8 +41,24 @@ namespace Siger.Middlelayer.AccRepository.Response ...@@ -39,8 +41,24 @@ namespace Siger.Middlelayer.AccRepository.Response
public int productId { get; set; } public int productId { get; set; }
public string productCode { get; set; } public string productCode { get; set; }
public string productName { get; set; } public string productName { get; set; }
public string route { get; set; } public int route { get; set; }
public string pn { get; set; } public string pn { get; set; }
} }
public class ResponseAutoRouteInfo
{
public int Section { get; set; }
public int Machine { get; set; }
public string Pn { get; set; }
public int ProductId { get; set; }
public string ProductName { get; set; }
public int Route { get; set; }
public string RouteName { get; set; }
public string OrderNo { get; set; }
public string FixtureGuid { get; set; }
public string FixtureName { get; set; }
public string Sn { get; set; }
public int Location { get; set; }
}
} }
...@@ -101,6 +101,8 @@ namespace Siger.Middlelayer.CncRepository.Repositories ...@@ -101,6 +101,8 @@ namespace Siger.Middlelayer.CncRepository.Repositories
var sectionIds = new List<int>(); var sectionIds = new List<int>();
var productIds = new List<string>(); var productIds = new List<string>();
var machineIds = new List<int>(); var machineIds = new List<int>();
var validates = new List<BeatSetEntity>();
foreach (var beatSetEntity in beatSetEntities) foreach (var beatSetEntity in beatSetEntities)
{ {
var sectionId = 0; var sectionId = 0;
...@@ -180,14 +182,26 @@ namespace Siger.Middlelayer.CncRepository.Repositories ...@@ -180,14 +182,26 @@ namespace Siger.Middlelayer.CncRepository.Repositories
{ {
errors.Add($"{rowIndex},{(int)RequestEnum.UpDownBesatNotInteger}"); errors.Add($"{rowIndex},{(int)RequestEnum.UpDownBesatNotInteger}");
} }
var route = _context.siger_project_product_route.FirstOrDefault(f =>f.projectId==projectid && f.productId == product.id && f.name == beatSetEntity.RouteName);
if (route == null)
{
errors.Add($"{rowIndex},{(int)RequestEnum.RouteNotFound}");
}
if (errors.Any()) if (errors.Any())
{ {
return new CommonImportResult(0, string.Join(";", errors)); return new CommonImportResult(0, string.Join(";", errors));
} }
beatSetEntity.RouteNumber = route.id.ToString();
validates.Add(beatSetEntity);
} }
var index = 0; var index = 0;
var maxTime = "2199-01-01 00:00:00".ToDateTime(); var maxTime = "2199-01-01 00:00:00".ToDateTime();
foreach (var entity in beatSetEntities) foreach (var entity in validates)
{ {
var beat = new siger_project_beat_set var beat = new siger_project_beat_set
{ {
...@@ -201,12 +215,14 @@ namespace Siger.Middlelayer.CncRepository.Repositories ...@@ -201,12 +215,14 @@ namespace Siger.Middlelayer.CncRepository.Repositories
product_name = productIds[index], product_name = productIds[index],
section_id = sectionIds[index], section_id = sectionIds[index],
standard_besat = entity.CycleTime.ToInt(), standard_besat = entity.CycleTime.ToInt(),
route_name = entity.RouteName, route_name = entity.RouteName,
machineID = machineIds.Count>index?machineIds[index]:0, machineID = machineIds.Count>index?machineIds[index]:0,
changemodeltime = entity.ChangeModelTime.ToInt(), changemodeltime = entity.ChangeModelTime.ToInt(),
updown_besat = entity.UpDownBesat.ToDouble(), updown_besat = entity.UpDownBesat.ToDouble(),
yieldrate = entity.YieldRate.ToInt(), yieldrate = entity.YieldRate.ToInt(),
route_number = entity.RouteNumber, //route_number = entity.RouteNumber,
route_number=entity.RouteNumber,
start_time = string.IsNullOrEmpty(entity.StartTime) ? DateTime.MinValue : entity.StartTime.ToDateTime(), start_time = string.IsNullOrEmpty(entity.StartTime) ? DateTime.MinValue : entity.StartTime.ToDateTime(),
end_time = string.IsNullOrEmpty(entity.EndTime) ? maxTime : entity.EndTime.ToDateTime().AddDays(1).AddSeconds(-1) end_time = string.IsNullOrEmpty(entity.EndTime) ? maxTime : entity.EndTime.ToDateTime().AddDays(1).AddSeconds(-1)
}; };
......
...@@ -13,6 +13,10 @@ namespace Siger.Middlelayer.CncRepository.Request ...@@ -13,6 +13,10 @@ namespace Siger.Middlelayer.CncRepository.Request
public string product_name_text { get; set; } public string product_name_text { get; set; }
/// <summary>
/// productId
/// </summary>
[Required(ErrorMessage = "ProductNameIsEmpty")] [Required(ErrorMessage = "ProductNameIsEmpty")]
public string product_name { get; set; } public string product_name { get; set; }
...@@ -24,6 +28,11 @@ namespace Siger.Middlelayer.CncRepository.Request ...@@ -24,6 +28,11 @@ namespace Siger.Middlelayer.CncRepository.Request
public string time_num { get; set; } public string time_num { get; set; }
/// <summary>
/// 产品工序表ID
/// </summary>
public int route_id { get; set; }
public string route_number { get; set; } public string route_number { get; set; }
public string route_name { get; set; } public string route_name { 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