Commit 226cc8ac by yiyu.li
parents 586b378c 07ecb922
...@@ -20,6 +20,7 @@ using static Siger.Middlelayer.Share.Enum.ModuleEnum.Automation; ...@@ -20,6 +20,7 @@ using static Siger.Middlelayer.Share.Enum.ModuleEnum.Automation;
using Siger.Middlelayer.Repository.Entities; using Siger.Middlelayer.Repository.Entities;
using NPOI.SS.Formula.Functions; using NPOI.SS.Formula.Functions;
using Siger.Middlelayer.AccRepository.Response; using Siger.Middlelayer.AccRepository.Response;
using Siger.Middlelayer.Common.Helpers;
namespace Siger.ApiACC.Controllers namespace Siger.ApiACC.Controllers
{ {
...@@ -37,9 +38,11 @@ namespace Siger.ApiACC.Controllers ...@@ -37,9 +38,11 @@ namespace Siger.ApiACC.Controllers
private readonly IAutomationLocationRepository _automationLocation; private readonly IAutomationLocationRepository _automationLocation;
private readonly IProductionBeatSetRepository _productionBeatSet; private readonly IProductionBeatSetRepository _productionBeatSet;
private readonly IAutomationFixtureToolsProductRepository _automationFixtureToolsProduct; private readonly IAutomationFixtureToolsProductRepository _automationFixtureToolsProduct;
private readonly IAutomationFixtureToolsRepository _automationFixtureTools;
public AutomationController(IUnitOfWork unitOfWork,ISigerProjectLevelSectionRepository sigerProjectLevelSection,IAutomationLineMode automationLineMode,IAutomationMachineStatus automationMachineStatus,ISigerDict sigerDict,IAutomationTaskListRepository automationTaskList, public AutomationController(IUnitOfWork unitOfWork,ISigerProjectLevelSectionRepository sigerProjectLevelSection,IAutomationLineMode automationLineMode,IAutomationMachineStatus automationMachineStatus,ISigerDict sigerDict,IAutomationTaskListRepository automationTaskList,
ISigerProjectMachineAttributionRepository sigerProjectMachineAttribution, IAutomationFixtureMonitor automationFixtureMonitor, IAutomationLocationRepository automationLocation, IProductionBeatSetRepository productionBeatSet, IAutomationFixtureToolsProductRepository automationFixtureToolsProduct ) ISigerProjectMachineAttributionRepository sigerProjectMachineAttribution, IAutomationFixtureMonitor automationFixtureMonitor, IAutomationLocationRepository automationLocation, IProductionBeatSetRepository productionBeatSet, IAutomationFixtureToolsProductRepository automationFixtureToolsProduct,
IAutomationFixtureToolsRepository automationFixtureTools)
{ {
_unitOfWork = unitOfWork; _unitOfWork = unitOfWork;
_sigerProjectLevelSection = sigerProjectLevelSection; _sigerProjectLevelSection = sigerProjectLevelSection;
...@@ -52,6 +55,7 @@ namespace Siger.ApiACC.Controllers ...@@ -52,6 +55,7 @@ namespace Siger.ApiACC.Controllers
_automationLocation = automationLocation; _automationLocation = automationLocation;
_productionBeatSet = productionBeatSet; _productionBeatSet = productionBeatSet;
_automationFixtureToolsProduct = automationFixtureToolsProduct; _automationFixtureToolsProduct = automationFixtureToolsProduct;
_automationFixtureTools = automationFixtureTools;
} }
/// <summary> /// <summary>
...@@ -114,7 +118,7 @@ namespace Siger.ApiACC.Controllers ...@@ -114,7 +118,7 @@ namespace Siger.ApiACC.Controllers
var section = _sigerProjectLevelSection.Get(f => f.id == machineAttr.station); var section = _sigerProjectLevelSection.Get(f => f.id == machineAttr.station);
if (section != null) if (section != null)
{ {
Logger.WriteLineInfo($"MachineStatus 设备状态 触发自动任务检查"); Logger.WriteLineInfo($"MachineStatus 设备 {section.title}状态 触发自动任务检查");
AutoProcess(section.parentid, stationDicts); AutoProcess(section.parentid, stationDicts);
} }
} }
...@@ -287,22 +291,12 @@ namespace Siger.ApiACC.Controllers ...@@ -287,22 +291,12 @@ namespace Siger.ApiACC.Controllers
taskObj.status = status; taskObj.status = status;
_automationTaskList.Update(taskObj); _automationTaskList.Update(taskObj);
var machineStatus = _automationMachineStatus.Get(f => f.section == taskObj.sectionid); //PLC 反馈结束.
if (machineStatus == null)
{
throw new BadRequestException(AccEnum.MachineDisable);
}
machineStatus.status = status;
_automationMachineStatus.Update(machineStatus);
//PLC 反馈结束. 工装监控 解除设备绑定
if (status == (int)TaskResultStatus.Complated) if (status == (int)TaskResultStatus.Complated)
{ {
var uploadStation = stationDicts.Where(f => f.dkey == DictKeyValConst.UploadloadStation); var uploadStation = stationDicts.Where(f => f.dkey == DictKeyValConst.UploadloadStation);
var uploadStations = uploadStation.Select(f => f.dval).ToList(); var uploadStations = uploadStation.Select(f => f.dval).ToList();
if (taskObj.action == TaskAction.Step_SXLW_LK) if (taskObj.action == TaskAction.Step_SXLW_LK)
{ {
// 业务入口: 上料位-》 入库 如果是上料工装 安装完成 ,绑定 储位与装配 // 业务入口: 上料位-》 入库 如果是上料工装 安装完成 ,绑定 储位与装配
...@@ -314,47 +308,55 @@ namespace Siger.ApiACC.Controllers ...@@ -314,47 +308,55 @@ namespace Siger.ApiACC.Controllers
Logger.WriteLineInfo($"PlCfeeback 未找到该工装储位信息"); Logger.WriteLineInfo($"PlCfeeback 未找到该工装储位信息");
throw new BadRequestException(AccEnum.MachineDisable); throw new BadRequestException(AccEnum.MachineDisable);
} }
location.fixturetools = taskObj.fixtureguid;
location.fixturename = taskObj.fixturename;
location.ordernumber = taskObj.ordercode; location.ordernumber = taskObj.ordercode;
location.productcode = taskObj.productcode; location.productcode = taskObj.productcode;
location.productid = taskObj.productid; location.productid = taskObj.productid;
location.sn = taskObj.sn; location.sn = taskObj.sn;
_automationLocation.Update(location); _automationLocation.Update(location);
var monitor = _automationFixtureMonitor.Get(f => f.section == taskObj.sectionid);
monitor.section = 0;
_automationFixtureMonitor.Update(monitor);
} }
} }
else if (taskObj.action == TaskAction.Step_LK_CJT || taskObj.action == TaskAction.Step_LK_JGZX || taskObj.action == TaskAction.Step_LK_SXLW) else if (taskObj.action == TaskAction.Step_LK_CJT || taskObj.action == TaskAction.Step_LK_JGZX || taskObj.action == TaskAction.Step_LK_SXLW)
{ {
//出库 //出库
var location = _automationLocation.Get(f => f.fixturetools == taskObj.fixtureguid); var location = _automationLocation.Get(f => f.fixturetools == taskObj.fixtureguid);
if (location == null) if (location != null)
{ {
location.ordernumber = ""; location.ordernumber = "";
location.productcode = ""; location.productcode = "";
location.productid =0; location.productid =0;
location.sn = ""; location.sn = "";
} }
}else
{
//更新 CNC 状态 //更新 CNC 状态
var monitor = _automationFixtureMonitor.Get(f => f.section==taskObj.sectionid); var monitor = _automationFixtureMonitor.Get(f => f.section == taskObj.sectionid);
if(monitor==null) if (monitor == null)
{ {
_automationFixtureMonitor.Insert(new siger_automation_fixture_tools_monitor _automationFixtureMonitor.Insert(new siger_automation_fixture_tools_monitor
{ {
ordernumber=taskObj.ordercode, ordernumber = taskObj.ordercode,
productCode=taskObj.productcode, productCode = taskObj.productcode,
//productNam //productNam
section=taskObj.sectionid, section = taskObj.sectionid,
status=status, status = status,
sn=taskObj.sn, sn = taskObj.sn,
fixtureguid=taskObj.fixtureguid, fixtureguid = taskObj.fixtureguid,
//fixturename=, //fixturename=,
locationId=taskObj.locationid, locationId = taskObj.locationid,
createtime=DateTime.Now, createtime = DateTime.Now,
projectId=PID, projectId = PID,
route=0, route = 0,
updatetime=DateTime.Now, updatetime = DateTime.Now,
}); });
}else }
else
{ {
monitor.ordernumber = taskObj.ordercode; monitor.ordernumber = taskObj.ordercode;
monitor.productCode = taskObj.productcode; monitor.productCode = taskObj.productcode;
...@@ -373,6 +375,7 @@ namespace Siger.ApiACC.Controllers ...@@ -373,6 +375,7 @@ namespace Siger.ApiACC.Controllers
/// 创建自动 Task任务 /// 创建自动 Task任务
/// </summary> /// </summary>
/// <param name="line"></param> /// <param name="line"></param>
/// <param name="fixture"></param>
/// <param name="stationDicts"></param> /// <param name="stationDicts"></param>
void AutoProcess(int line,IEnumerable<SigerTrDict> stationDicts) void AutoProcess(int line,IEnumerable<SigerTrDict> stationDicts)
{ {
...@@ -418,24 +421,23 @@ namespace Siger.ApiACC.Controllers ...@@ -418,24 +421,23 @@ namespace Siger.ApiACC.Controllers
return; return;
} }
//优先级1 :清洗机完成 。待下料 //优先级1 :清洗机完成 。待下料
var cleanMachine = machineStatusList.FirstOrDefault(f => f.machineid == dictClean.dval.ToInt()); var cleanMachine = machineStatusList.FirstOrDefault(f => f.section == dictClean.dval.ToInt());
if (cleanMachine!=null) if (cleanMachine!=null)
{ {
if (cleanMachine.status == (int)Automation.MachineStatus.Complated) if (cleanMachine.status == (int)Automation.MachineStatus.Complated)
{ {
Logger.WriteLineInfo($"AutoProcess 有清洗机完成,创建清洗机Task"); Logger.WriteLineInfo($"AutoProcess 有清洗机完成,创建清洗机Task");
// var fixtureToolsObj = _automationFixtureTools.GetProductFixtureLocation(PID,);
var monitor = _automationFixtureMonitor.Get(f => f.section == cleanMachine.section); var monitor = _automationFixtureMonitor.Get(f => f.section == cleanMachine.section);
if (monitor==null) if (monitor != null)
{ {
Logger.WriteLineInfo($"AutoProcess 找不到CNC监控信息"); CreateTask(cleanMachine, TaskActionType.Unload, TaskAction.Step_QXJ_LK, monitor.fixtureguid, monitor.ordernumber, monitor.sn, "无程序",monitor.productId, monitor.productCode, monitor.locationId);
return;
}
CreateTask(cleanMachine,TaskActionType.Unload, TaskAction.Step_QXJ_LK,monitor.fixtureguid,monitor.ordernumber,monitor.sn,"无程序",monitor.productCode,monitor.locationId);
return; //完成当前任务 退出 return; //完成当前任务 退出
} }
} }
}
//优先级2 :其他设备待上料 (立库->加工中心) //优先级2 :其他设备待上料 (立库->加工中心)
...@@ -443,17 +445,27 @@ namespace Siger.ApiACC.Controllers ...@@ -443,17 +445,27 @@ namespace Siger.ApiACC.Controllers
if (freeMachine != null) if (freeMachine != null)
{ {
Logger.WriteLineInfo($"AutoProcess 普通空闲,创建普通设备上料Task"); Logger.WriteLineInfo($"AutoProcess 普通空闲,创建普通设备上料Task");
var location = SelectLocation(freeMachine.machineid); var location = SelectLocation(freeMachine.machineid);
if (location==null) if (location != null)
{ {
Logger.WriteLineInfo($"AutoProcess 找不到储位信息"); _automationFixtureMonitor.Insert(new siger_automation_fixture_tools_monitor
return; {
} productId = PID,
CreateTask(freeMachine,TaskActionType.Load ,TaskAction.Step_LK_JGZX,location.fixture,location.ordernumber,location.sn,location.pn,location.productCode,location.location); productCode = location.productCode,
//productName=location.productCode
fixtureguid = location.fixture,
fixturename = location.fixturename,
ordernumber = location.ordernumber,
locationId = location.location,
section = freeMachine.section,
sn = location.sn,
createtime = DateTime.Now,
updatetime = DateTime.Now
});
CreateTask(freeMachine, TaskActionType.Load, TaskAction.Step_LK_JGZX, location.fixture, location.ordernumber, location.sn, location.pn,location.productId, location.productCode, location.location);
return; //完成当前任务 退出 return; //完成当前任务 退出
} }
}
//优先级3:其他设备下料 (加工中心 ->立库) //优先级3:其他设备下料 (加工中心 ->立库)
if (cleanMachine != null) if (cleanMachine != null)
{ {
...@@ -462,14 +474,13 @@ namespace Siger.ApiACC.Controllers ...@@ -462,14 +474,13 @@ namespace Siger.ApiACC.Controllers
{ {
Logger.WriteLineInfo($"AutoProcess 普通空闲,创建普通设备下料Task "); Logger.WriteLineInfo($"AutoProcess 普通空闲,创建普通设备下料Task ");
var monitor = _automationFixtureMonitor.Get(f => f.section == fullMachine.section);
var monitor = _automationFixtureMonitor.Get(f => f.section == cleanMachine.section);
if (monitor == null) if (monitor == null)
{ {
Logger.WriteLineInfo($"AutoProcess 找不到CNC监控信息"); Logger.WriteLineInfo($"AutoProcess 找不到CNC监控信息");
return; return;
} }
CreateTask(fullMachine,TaskActionType.Unload, TaskAction.Step_JGZX_QXJ, monitor.fixtureguid, monitor.ordernumber, monitor.sn,"无程序", monitor.productCode, monitor.locationId); CreateTask(fullMachine,TaskActionType.Unload, TaskAction.Step_JGZX_QXJ, monitor.fixtureguid, monitor.ordernumber, monitor.sn,"无程序",monitor.productId, monitor.productCode, monitor.locationId);
return; //完成当前任务 退出 return; //完成当前任务 退出
} }
...@@ -489,7 +500,7 @@ namespace Siger.ApiACC.Controllers ...@@ -489,7 +500,7 @@ namespace Siger.ApiACC.Controllers
/// <param name="sn">工件</param> /// <param name="sn">工件</param>
/// <param name="productCode">产品CODE</param> /// <param name="productCode">产品CODE</param>
/// <param name="locationid">储位ID</param> /// <param name="locationid">储位ID</param>
void CreateTask(siger_automation_machine_status machineStatus,TaskActionType actionType, TaskAction taskAction,string guid,string orderno,string sn,string program,string productCode,int locationid) void CreateTask(siger_automation_machine_status machineStatus,TaskActionType actionType, TaskAction taskAction,string guid,string orderno,string sn,string program,int productId,string productCode,int locationid)
{ {
var taskNo = _automationTaskList.CrateTaskNumber(Automation.TaskTrigerType.Auto); var taskNo = _automationTaskList.CrateTaskNumber(Automation.TaskTrigerType.Auto);
_automationTaskList.Insert(new siger_automation_task_list _automationTaskList.Insert(new siger_automation_task_list
...@@ -508,12 +519,13 @@ namespace Siger.ApiACC.Controllers ...@@ -508,12 +519,13 @@ namespace Siger.ApiACC.Controllers
operater = 0, operater = 0,
status = 1, status = 1,
fixtureguid= guid, fixtureguid= guid,
productcode= productCode, productid = productId,
productcode = productCode,
programnumber=program, programnumber=program,
locationid= locationid, locationid= locationid,
ordercode= orderno, ordercode= orderno,
sn= sn, sn= sn,
remark="自动任务" remark= EnumHelper.GetEnumDesc(taskAction)
}); });
...@@ -569,9 +581,13 @@ namespace Siger.ApiACC.Controllers ...@@ -569,9 +581,13 @@ namespace Siger.ApiACC.Controllers
return new ResponseAutomationLocationRouteInfo return new ResponseAutomationLocationRouteInfo
{ {
fixture = result.fixturetools, fixture = result.fixturetools,
//fixturename=result.n
ordernumber=result.ordernumber, ordernumber=result.ordernumber,
location=result.locationid, location=result.locationid,
productId=result.productid,
productCode=result.productcode, productCode=result.productcode,
//productName=result.pr
sn=result.sn, sn=result.sn,
pn= valiateBeat.process_number, pn= valiateBeat.process_number,
route=valiateBeat.route_name route=valiateBeat.route_name
......
...@@ -71,7 +71,7 @@ namespace Siger.ApiACC.Controllers ...@@ -71,7 +71,7 @@ namespace Siger.ApiACC.Controllers
item.materialstate = 4;//无工装有工件 item.materialstate = 4;//无工装有工件
} }
var loca = locations.FirstOrDefault(q => q.locationid == item.locaid); var loca = locations.FirstOrDefault(q => q.id == item.locationid);
if(loca != null) if(loca != null)
{ {
var locas = GetParentLocations(loca.id, locations); var locas = GetParentLocations(loca.id, locations);
...@@ -211,7 +211,8 @@ namespace Siger.ApiACC.Controllers ...@@ -211,7 +211,8 @@ namespace Siger.ApiACC.Controllers
var entity = new siger_automation_location var entity = new siger_automation_location
{ {
guid = Guid.NewGuid().ToString(), guid = Guid.NewGuid().ToString(),
locationid = location.id, locationid = location.locationid,
location_cid = location.id,
fixturetools = fixturetool.guid, fixturetools = fixturetool.guid,
productid= fixturetoolProduct != null ? fixturetoolProduct.productid : 0, productid= fixturetoolProduct != null ? fixturetoolProduct.productid : 0,
productcode = fixturetoolProduct!=null? fixturetoolProduct.productcode:"", productcode = fixturetoolProduct!=null? fixturetoolProduct.productcode:"",
...@@ -263,7 +264,8 @@ namespace Siger.ApiACC.Controllers ...@@ -263,7 +264,8 @@ namespace Siger.ApiACC.Controllers
throw new BadRequestException(RequestEnum.DataExist); throw new BadRequestException(RequestEnum.DataExist);
} }
entity.locationid = location.id; entity.locationid = location.locationid;
entity.location_cid = location.id;
entity.fixturetools = fixturetool.guid; entity.fixturetools = fixturetool.guid;
entity.attachment = req.fileurl; entity.attachment = req.fileurl;
entity.filename = req.filename; entity.filename = req.filename;
......
...@@ -357,9 +357,6 @@ namespace Siger.ApiACC.Controllers ...@@ -357,9 +357,6 @@ namespace Siger.ApiACC.Controllers
} }
//移出 上料位 //移出 上料位
monitor.status = (int)Automation.MachineStatus.Waiting; monitor.status = (int)Automation.MachineStatus.Waiting;
var taskNo = _automationTaskList.CrateTaskNumber(Automation.TaskTrigerType.Manual); var taskNo = _automationTaskList.CrateTaskNumber(Automation.TaskTrigerType.Manual);
_automationTaskList.Insert(new siger_automation_task_list _automationTaskList.Insert(new siger_automation_task_list
{ {
......
...@@ -940,7 +940,7 @@ namespace Siger.ApiWMS.Controllers ...@@ -940,7 +940,7 @@ namespace Siger.ApiWMS.Controllers
if (Location.id == locationTypeId) if (Location.id == locationTypeId)
{ {
var locationIdExist = location.Get(q => q.projectid == ProjectId && q.status == (int)RowState.Valid && q.typeid == locationTypeId && var locationIdExist = location.Get(q => q.projectid == ProjectId && q.status == (int)RowState.Valid && q.typeid == locationTypeId &&
q.locationid == req.storeID.ToInt()); q.locationid == req.storeID.ToInt() && q.storageid == req.warehouseid);
if (locationIdExist != null) if (locationIdExist != null)
{ {
throw new BadRequestException(RequestEnum.IDExist); throw new BadRequestException(RequestEnum.IDExist);
...@@ -1074,7 +1074,7 @@ namespace Siger.ApiWMS.Controllers ...@@ -1074,7 +1074,7 @@ namespace Siger.ApiWMS.Controllers
if(Location.id == locationTypeId) if(Location.id == locationTypeId)
{ {
var locationIdExist = location.Get(q => q.projectid == ProjectId && q.status == (int)RowState.Valid && q.typeid == locationTypeId && var locationIdExist = location.Get(q => q.projectid == ProjectId && q.status == (int)RowState.Valid && q.typeid == locationTypeId &&
q.locationid == req.storeID.ToInt() && q.id != Location.locationid.ToInt()); q.locationid == req.storeID.ToInt() && q.id != Location.locationid.ToInt() && q.storageid == req.warehouseid);
if (locationIdExist != null) if (locationIdExist != null)
{ {
throw new BadRequestException(RequestEnum.IDExist); throw new BadRequestException(RequestEnum.IDExist);
......
...@@ -190,6 +190,8 @@ namespace Siger.Middlelayer.Utility.ImportEntities ...@@ -190,6 +190,8 @@ namespace Siger.Middlelayer.Utility.ImportEntities
public class AutomationLocationTemplate : ImportBase public class AutomationLocationTemplate : ImportBase
{ {
[ExcelColumn("*仓库名称")]
public string Warehouse { get; set; }
[ExcelColumn("*储位ID")] [ExcelColumn("*储位ID")]
public string LocationId { get; set; } public string LocationId { get; set; }
......
...@@ -11,6 +11,10 @@ namespace Siger.Middlelayer.AccRepository.Entities ...@@ -11,6 +11,10 @@ namespace Siger.Middlelayer.AccRepository.Entities
{ {
public string guid { get; set; } public string guid { get; set; }
/// <summary> /// <summary>
/// 储位自增ID
/// </summary>
public int location_cid { get; set; }
/// <summary>
/// 储位位置 /// 储位位置
/// </summary> /// </summary>
public int locationid { get; set; } public int locationid { get; set; }
...@@ -18,9 +22,11 @@ namespace Siger.Middlelayer.AccRepository.Entities ...@@ -18,9 +22,11 @@ namespace Siger.Middlelayer.AccRepository.Entities
/// 工装GUID /// 工装GUID
/// </summary> /// </summary>
public string fixturetools { get; set; } public string fixturetools { get; set; }
public string fixturename { get; set; }
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; }
/// <summary> /// <summary>
/// 工件对应的工单号 /// 工件对应的工单号
/// </summary> /// </summary>
......
...@@ -20,6 +20,10 @@ namespace Siger.Middlelayer.AccRepository.Entities ...@@ -20,6 +20,10 @@ namespace Siger.Middlelayer.AccRepository.Entities
/// </summary> /// </summary>
public string fixtureguid { get; set; } public string fixtureguid { get; set; }
/// <summary> /// <summary>
/// 工装Name
/// </summary>
public string fixturename { get; set; }
/// <summary>
/// 工位ID /// 工位ID
/// </summary> /// </summary>
public int sectionid { get; set; } public int sectionid { get; set; }
...@@ -47,6 +51,7 @@ namespace Siger.Middlelayer.AccRepository.Entities ...@@ -47,6 +51,7 @@ namespace Siger.Middlelayer.AccRepository.Entities
/// 产品code /// 产品code
/// </summary> /// </summary>
public string productcode { get; set; } public string productcode { get; set; }
public string productname { get; set; }
/// <summary> /// <summary>
/// 工序ID /// 工序ID
/// </summary> /// </summary>
......
...@@ -29,7 +29,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories ...@@ -29,7 +29,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories
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
join c in _context.siger_automation_fixture_tools_category on t.category equals c.guid join c in _context.siger_automation_fixture_tools_category on t.category equals c.guid
join l in _context.siger_wms_storage_location on q.locationid equals l.id 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 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 join u in _context.siger_project_user on q.updator equals u.mid into uu
from u in uu.DefaultIfEmpty() from u in uu.DefaultIfEmpty()
...@@ -100,14 +100,14 @@ namespace Siger.Middlelayer.AccRepository.Repositories ...@@ -100,14 +100,14 @@ namespace Siger.Middlelayer.AccRepository.Repositories
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
join c in _context.siger_automation_fixture_tools_category on t.category equals c.guid join c in _context.siger_automation_fixture_tools_category on t.category equals c.guid
join l in _context.siger_wms_storage_location on q.locationid equals l.id 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 join w in _context.siger_wms_storage on l.storageid equals w.id
where q.projectId == projectid && q.status == (int)RowState.Valid where q.projectId == projectid && q.status == (int)RowState.Valid
select new ResponseAutomationLocationList select new ResponseAutomationLocationList
{ {
id = q.id, id = q.id,
fixtureguid = t.guid, fixtureguid = t.guid,
locationid = l.id, locationid = l.locationid,
location = l.realname, location = l.realname,
locationcode = l.serial_number, locationcode = l.serial_number,
wavehouseid = w.id, wavehouseid = w.id,
...@@ -142,7 +142,12 @@ namespace Siger.Middlelayer.AccRepository.Repositories ...@@ -142,7 +142,12 @@ namespace Siger.Middlelayer.AccRepository.Repositories
{ {
errors.Add($"{rowIndex},{(int)RequestEnum.FixtureToolNotFound}"); 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); var warehouse = _context.siger_wms_storage.FirstOrDefault(q => q.status == (int)RowState.Valid && q.projectId == projectid && q.name == item.Warehouse);
if(warehouse == null)
{
errors.Add($"{rowIndex},{(int)RequestEnum.WaveHouseIDNotExist}");
}
var location = _context.siger_wms_storage_location.FirstOrDefault(q => q.locationid == item.LocationId.ToInt() && q.storageid == warehouse.id && q.projectId == projectid && q.status == (int)RowState.Valid);
if (location == null || item.LocationId.ToInt() <= 0) if (location == null || item.LocationId.ToInt() <= 0)
{ {
errors.Add($"{rowIndex},{(int)RequestEnum.LocationNull}"); errors.Add($"{rowIndex},{(int)RequestEnum.LocationNull}");
...@@ -166,7 +171,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories ...@@ -166,7 +171,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories
var entity = new siger_automation_location var entity = new siger_automation_location
{ {
guid = Guid.NewGuid().ToString(), guid = Guid.NewGuid().ToString(),
locationid = item.LocationId.ToInt(), locationid = location.id,
fixturetools = fixturetool.guid, fixturetools = fixturetool.guid,
attachment = "", attachment = "",
filename = "", filename = "",
......
...@@ -32,10 +32,13 @@ namespace Siger.Middlelayer.AccRepository.Response ...@@ -32,10 +32,13 @@ namespace Siger.Middlelayer.AccRepository.Response
public class ResponseAutomationLocationRouteInfo public class ResponseAutomationLocationRouteInfo
{ {
public string fixture { get; set; } public string fixture { get; set; }
public string fixturename { get; set; }
public string ordernumber { get; set; } public string ordernumber { get; set; }
public string sn { get; set; } public string sn { get; set; }
public int location { get; set; } public int location { get; set; }
public int productId { get; set; }
public string productCode { get; set; } public string productCode { get; set; }
public string productName { get; set; }
public string route { get; set; } public string route { get; set; }
public string pn { get; set; } public string pn { get; set; }
......
...@@ -8,9 +8,12 @@ namespace Siger.Middlelayer.AccRepository.Response ...@@ -8,9 +8,12 @@ namespace Siger.Middlelayer.AccRepository.Response
{ {
public int id { get; set; } public int id { get; set; }
/// <summary> /// <summary>
/// 储位位置 /// 储位自增ID
/// </summary> /// </summary>
public int locationid { get; set; } public int locationid { get; set; }
/// <summary>
/// 储位填写ID
/// </summary>
public int locaid { get; set; } public int locaid { get; set; }
public string location { get; set; } public string location { get; set; }
public int wavehouseid { get; set; } public int wavehouseid { get; set; }
......
...@@ -270,8 +270,11 @@ CREATE TABLE IF NOT EXISTS `siger_automation_location` ( ...@@ -270,8 +270,11 @@ CREATE TABLE IF NOT EXISTS `siger_automation_location` (
`guid` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `guid` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`locationid` int(11) NOT NULL DEFAULT 0 COMMENT '储位位置', `locationid` int(11) NOT NULL DEFAULT 0 COMMENT '储位位置',
`fixturetools` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '工装GUID', `fixturetools` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '工装GUID',
`fixturename` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '工装GUID',
`productid` int(11) NULL DEFAULT 0 COMMENT '产品ID',
`productid` int(11) NULL DEFAULT 0 COMMENT '产品ID', `productid` int(11) NULL DEFAULT 0 COMMENT '产品ID',
`productcode` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '产品CODE', `productcode` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '产品CODE',
`productname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '产品name',
`ordernumber` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '工件对应工单号', `ordernumber` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '工件对应工单号',
`sn` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '工件', `sn` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '工件',
`routeid` int(11) NULL DEFAULT 0, `routeid` int(11) NULL DEFAULT 0,
...@@ -333,6 +336,7 @@ CREATE TABLE IF NOT EXISTS `siger_automation_task_list` ( ...@@ -333,6 +336,7 @@ CREATE TABLE IF NOT EXISTS `siger_automation_task_list` (
`id` int(11) NOT NULL AUTO_INCREMENT, `id` int(11) NOT NULL AUTO_INCREMENT,
`no` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `no` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`fixtureguid` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '工装GUID', `fixtureguid` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '工装GUID',
`fixturename` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '工装name',
`sectionid` int(11) NOT NULL DEFAULT 0 COMMENT '工位ID', `sectionid` int(11) NOT NULL DEFAULT 0 COMMENT '工位ID',
`trigger` int(1) NOT NULL DEFAULT 0 COMMENT '触发方', `trigger` int(1) NOT NULL DEFAULT 0 COMMENT '触发方',
`tasktype` int(1) NOT NULL DEFAULT 0 COMMENT '任务类型', `tasktype` int(1) NOT NULL DEFAULT 0 COMMENT '任务类型',
...@@ -340,6 +344,7 @@ CREATE TABLE IF NOT EXISTS `siger_automation_task_list` ( ...@@ -340,6 +344,7 @@ CREATE TABLE IF NOT EXISTS `siger_automation_task_list` (
`ordercode` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '工单号', `ordercode` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '工单号',
`productid` int(11) NOT NULL DEFAULT 0 COMMENT '产品ID', `productid` int(11) NOT NULL DEFAULT 0 COMMENT '产品ID',
`productcode` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '产品CODE', `productcode` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '产品CODE',
`productname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '产品NAME',
`processid` int(11) NOT NULL DEFAULT 0 COMMENT '工序ID', `processid` int(11) NOT NULL DEFAULT 0 COMMENT '工序ID',
`programnumber` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '程序号', `programnumber` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '程序号',
`locationid` int(11) NOT NULL COMMENT '储位位置', `locationid` int(11) NOT NULL COMMENT '储位位置',
......
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