Commit ecfc0698 by jiawei.su

someupdate

parent 8fe9c53b
......@@ -40,10 +40,11 @@ namespace Siger.ApiACC.Controllers
private readonly IProductionBeatSetRepository _productionBeatSet;
private readonly IAutomationFixtureToolsProductRepository _automationFixtureToolsProduct;
private readonly IAutomationFixtureToolsRepository _automationFixtureTools;
private readonly IProductRouteRepository _productRoute;
public AutomationController(IUnitOfWork unitOfWork,ISigerProjectLevelSectionRepository sigerProjectLevelSection,IAutomationLineMode automationLineMode,IAutomationMachineStatus automationMachineStatus,ISigerDict sigerDict,IAutomationTaskListRepository automationTaskList,
ISigerProjectMachineAttributionRepository sigerProjectMachineAttribution, IAutomationFixtureMonitor automationFixtureMonitor, IAutomationLocationRepository automationLocation, IProductionBeatSetRepository productionBeatSet, IAutomationFixtureToolsProductRepository automationFixtureToolsProduct,
IAutomationFixtureToolsRepository automationFixtureTools)
IAutomationFixtureToolsRepository automationFixtureTools, IProductRouteRepository productRoute)
{
_unitOfWork = unitOfWork;
_sigerProjectLevelSection = sigerProjectLevelSection;
......@@ -57,6 +58,7 @@ namespace Siger.ApiACC.Controllers
_productionBeatSet = productionBeatSet;
_automationFixtureToolsProduct = automationFixtureToolsProduct;
_automationFixtureTools = automationFixtureTools;
_productRoute = productRoute;
}
/// <summary>
......@@ -383,7 +385,7 @@ namespace Siger.ApiACC.Controllers
{
if (cleanMachine.status == (int)Automation.MachineStatus.Complated)
{
Logger.WriteLineInfo($"AutoProcess 有清洗机完成,创建清洗机Task");
Logger.WriteLineError($"AutoProcess 有清洗机完成,创建清洗机Task");
var monitor = _automationFixtureMonitor.Get(f => f.section == cleanMachine.section);
if (monitor != null)
{
......@@ -436,8 +438,30 @@ namespace Siger.ApiACC.Controllers
monitor.route = location.route;
_automationFixtureMonitor.Update(monitor);
}
CreateTask(location.section, TaskActionType.Load, TaskAction.Step_LK_JGZX, location.fixture, location.ordernumber, location.sn, location.pn,location.productId, location.productCode, location.location);
return; //完成当前任务 退出
// * 更新下一个工序到储位
var locationObj = _automationLocation.Get(f => f.locationid == location.lid);
if (locationObj != null)
{
var doneRoute = _productRoute.Get(f => f.id == location.route);
if (doneRoute == null)
return;
var productRoutes = _productRoute.GetList(f => f.projectId == PID && f.productId == location.productId && f.status == (int)RowState.Valid && f.serialNumber > doneRoute.serialNumber);
if (!productRoutes.Any())
{
locationObj.route = string.Empty;
}
else
{
var nextRoute = productRoutes.OrderBy(d => d.serialNumber).FirstOrDefault();
locationObj.route = nextRoute != null ? nextRoute.id.ToString() : "";
}
_automationLocation.Update(locationObj);
CreateTask(location.section, TaskActionType.Load, TaskAction.Step_LK_JGZX, location.fixture, location.ordernumber, location.sn, location.pn, location.productId, location.productCode, location.location);
return; //完成当前任务 退出
}
}
}
//优先级3:其他设备下料 (加工中心 ->清洗机)
......@@ -446,12 +470,12 @@ namespace Siger.ApiACC.Controllers
var fullMachine = machineStatusList.FirstOrDefault(f => f.status == (int)Automation.MachineStatus.Complated);
if (fullMachine != null && cleanMachine.status==(int)Automation.MachineStatus.Waiting)
{
Logger.WriteLineInfo($"AutoProcess 普通空闲,创建普通设备下料Task ");
Logger.WriteLineError($"AutoProcess 普通空闲,创建普通设备下料Task ");
var monitor = _automationFixtureMonitor.Get(f => f.section == fullMachine.section);
if (monitor == null)
{
Logger.WriteLineInfo($"AutoProcess 找不到CNC监控信息");
Logger.WriteLineError($"AutoProcess 找不到CNC监控信息");
return;
}
CreateTask(fullMachine.section,TaskActionType.Unload, TaskAction.Step_JGZX_QXJ, monitor.fixtureguid, monitor.ordernumber, monitor.sn,"无程序",monitor.productId, monitor.productCode, monitor.locationId);
......@@ -504,9 +528,9 @@ namespace Siger.ApiACC.Controllers
if (_unitOfWork.Commit() > 0)
Logger.WriteLineInfo($"CreateTask 工站 完成");
Logger.WriteLineInfo($"CreateTask sectionId:{section}工站 {EnumHelper.GetEnumDesc(taskAction)} 完成");
else
Logger.WriteLineInfo($"CreateTask 工站 失败");
Logger.WriteLineInfo($"CreateTask sectionId:{section}工站 {EnumHelper.GetEnumDesc(taskAction)}失败");
}
/// <summary>
/// 自动匹配储位 储位 ->CNC
......@@ -534,7 +558,8 @@ namespace Siger.ApiACC.Controllers
Route=b.route_number.ToInt(),
RouteName=b.route_name,
OrderNo=autoLocation.ordernumber,
Sn=autoLocation.sn
Sn=autoLocation.sn,
LId=autoLocation.id
});
}
......@@ -565,7 +590,8 @@ namespace Siger.ApiACC.Controllers
productName = result.ProductName,
sn =result.Sn,
pn= result.Pn,
route=result.Route
route=result.Route,
lid=result.LId
};
}
......
......@@ -369,7 +369,8 @@ namespace Siger.ApiACC.Controllers
var taskNo = _automationTaskList.CrateTaskNumber(Automation.TaskTrigerType.Manual);
var sn = _automationTaskList.CreateRandonSn(plan.product_code);
var route = _productRoute.GetList(f => f.productId == plan.product_id, "serialNumber",false).FirstOrDefault();
//上料 指定的第一道工序
var route = _productRoute.GetList(f => f.productId == plan.product_id && f.status==(int)RowState.Valid, "serialNumber",false).FirstOrDefault();
if (route==null)
{
throw new BadRequestException(AccEnum.ProductRouteMissing);
......
......@@ -33,7 +33,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories
join w in _context.siger_wms_storage on l.storageid equals w.id
join u in _context.siger_project_user on q.updator equals u.mid into uu
from u in uu.DefaultIfEmpty()
join r in _context.siger_project_beat_set on q.routeid equals r.id into rr
join r in _context.siger_project_product_route on q.routeid equals r.id into rr
from r in rr.DefaultIfEmpty()
where q.projectId == projectid && q.status == (int)RowState.Valid
select new ResponseAutomationLocation
......@@ -56,8 +56,9 @@ namespace Siger.Middlelayer.AccRepository.Repositories
status = q.status,
updatetime = q.updatetime.HasValue && q.updatetime > DateTime.MinValue ? q.updatetime.Value.ToString(ParameterConstant.DateTimeFormat) : "",
sn = q.sn ?? "",
route = r.route_name ?? "",
routenumber = r == null ? "" : r.route_number.ToString(),
route = r.name ?? "",
routenumber = r == null ? "" : r.serialNumber.ToString(),
routeid=q.routeid,
cate_guid = c.guid ?? "",
categoryId = c == null ? 0 : c.id
};
......
......@@ -43,6 +43,10 @@ namespace Siger.Middlelayer.AccRepository.Response
public string productName { get; set; }
public int route { get; set; }
public string pn { get; set; }
/// <summary>
/// location.id主键
/// </summary>
public int lid { get; set; }
}
......@@ -59,6 +63,13 @@ namespace Siger.Middlelayer.AccRepository.Response
public string FixtureGuid { get; set; }
public string FixtureName { get; set; }
public string Sn { get; set; }
/// <summary>
/// 储位编号
/// </summary>
public int Location { get; set; }
/// <summary>
/// location.id
/// </summary>
public int LId { get; set; }
}
}
......@@ -31,9 +31,19 @@ namespace Siger.Middlelayer.AccRepository.Response
/// 工件
/// </summary>
public string sn { get; set; }
/// <summary>
/// 工序顺序
/// </summary>
public string routenumber { get; set; }
/// <summary>
/// 工序萌宠
/// </summary>
public string route { get; set; }
/// <summary>
/// 工序id
/// </summary>
public int routeid { get; set; }
/// <summary>
/// 物料状态
/// </summary>
public int materialstate { 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