Commit ee54ef29 by jiawei.su

someupdate

parent a92a6190
......@@ -2107,6 +2107,8 @@ export default {
'3000172': '该工站正在上料中',
'3000173': '该工站正在下料中',
'3000174': '储位不存在',
'3000175': '工序加工未完成',
'3000176': '工序未开始加工',
'400000': '设备状态',
'400002': '更改状态',
......
......@@ -361,10 +361,10 @@ namespace Siger.ApiACC.Controllers
[HttpGet]
public IActionResult GetLocationList(string productcode, int fillsn=0)
{
var productFix = _automationFixtureToolsProduct.Get(f => f.productcode == productcode);
// var productFix = _automationFixtureToolsProduct.Get(f => f.productcode == productcode);
var locations = _autoLocationRepository.GetFulllocation(ProjectId, fillsn);
var locations = _autoLocationRepository.GetFulllocation(ProjectId, fillsn,productcode);
return new ObjectResult(locations);
//if (fillsn == 1)
//{
......
......@@ -45,10 +45,11 @@ namespace Siger.ApiACC.Controllers
private readonly IAutomationLineMode _automationLine;
private readonly IProductRouteRepository _productRoute;
private readonly IAutomationSectionPropertyRepository _sectionPropertyRepository;
private readonly IAutomationProduceHistoryRepository _automationProduceHistory;
public AutomationOperateController(IUnitOfWork unitOfWork,ISigerProjectLevelSectionRepository sigerProjectLevelSection , ISigerDict sigerDict,IAutomationMachineStatus automationMachineStatus,ISigerProjectMachineAttributionRepository sigerProjectMachineAttribution,IAutomationTaskListRepository automationTaskList,
IProductPlanDetails planDetails,IProductPlanRepository productPlan,IAutomationFixtureMonitor automationFixtureMonitor ,IAutomationFixtureToolsProductRepository automationFixtureToolsProduct,IAutomationFixtureToolsRepository automationFixtureTools, IAutomationLocationRepository automationLocation,
IAutomationLineMode automationLine, IProductRouteRepository productRoute, IAutomationSectionPropertyRepository sectionPropertyRepository)
IAutomationLineMode automationLine, IProductRouteRepository productRoute, IAutomationSectionPropertyRepository sectionPropertyRepository,IAutomationProduceHistoryRepository automationProduceHistory)
{
_unitOfWork = unitOfWork;
_sigerProjectLevelSection = sigerProjectLevelSection;
......@@ -65,6 +66,7 @@ namespace Siger.ApiACC.Controllers
_automationLine = automationLine;
_productRoute = productRoute;
_sectionPropertyRepository = sectionPropertyRepository;
_automationProduceHistory = automationProduceHistory;
}
/// <summary>
......@@ -325,7 +327,7 @@ namespace Siger.ApiACC.Controllers
{
throw new BadRequestException(AccEnum.LocationNoExits);
}
if (string.IsNullOrEmpty(location.sn))
if (!string.IsNullOrEmpty(location.sn))
{
throw new BadRequestException(AccEnum.LocationSnExits);
}
......@@ -551,6 +553,17 @@ namespace Siger.ApiACC.Controllers
{
throw new BadRequestException(AccEnum.LocationNoSn);
}
if (location.routeid!=0)
{
throw new BadRequestException(AccEnum.RouteProcessing);
}else
{
var historys = _automationProduceHistory.GetList(f => f.sn == location.sn);
if (!historys.Any())
{
throw new BadRequestException(AccEnum.RouteNotStart);
}
}
var levelSection = _sigerProjectLevelSection.Get(f => f.id == unloading.section);
var lineMode = _automationLine.Get(f => f.section ==levelSection.parentid);
if (lineMode==null)
......
......@@ -353,7 +353,11 @@ namespace Siger.Middlelayer.Common.ModuleEnum
[Description("该工站正在下料中")]
Downloading,
[Description("储位不存在")]
LocationNoExits
LocationNoExits,
[Description("工序加工未完成")]
RouteProcessing,
[Description("工序未开始加工")]
RouteNotStart
}
public enum SeriNumCfg
......
......@@ -101,8 +101,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories
var query = from q in _context.siger_automation_location
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 tp in _context.siger_automation_fixture_tools_product on t.guid equals tp.fixturetools into tptemp
from tp in tptemp.DefaultIfEmpty()
join tp in _context.siger_automation_fixture_tools_product on t.guid equals tp.fixturetools
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
......@@ -122,7 +121,9 @@ namespace Siger.Middlelayer.AccRepository.Repositories
name = t.name,
materialsn = q.sn ?? "",
categoryid = c == null ? 0 : c.id,
productcode=tp!=null?tp.productcode:""
productcode=tp.productcode,
routeid=q.routeid,
route=q.route
};
Expression<Func<ResponseAutomationLocationList, bool>> locationidExpression = f => true;
if (hasMaterial != 0)
......@@ -238,67 +239,57 @@ namespace Siger.Middlelayer.AccRepository.Repositories
}
}
public IEnumerable<ResponseAutomationLocationList> GetFulllocation(int projectId,int full)
public IEnumerable<ResponseAutomationLocationList> GetFulllocation(int projectId, int full, string productCode)
{
//获取有SN 的储位
if (full==1)
var query = from q in _context.siger_automation_location
join t in _context.siger_automation_fixture_tools on q.fixturetools equals t.guid
join tp in _context.siger_automation_fixture_tools_product on t.guid equals tp.fixturetools
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 r in _context.siger_project_product_route on q.routeid equals r.id into rtemp
from r in rtemp.DefaultIfEmpty()
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,
productcode = tp.productcode,
routeid = q.routeid,
route = r!=null?r.name:""
};
Expression<Func<ResponseAutomationLocationList, bool>> locationidFullExpression = f => true;
if (full == 1)
{
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
&& q.routeid==0
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);
locationidFullExpression = f => !string.IsNullOrEmpty(f.materialsn);
}else
{
//选择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);
locationidFullExpression = f => string.IsNullOrEmpty(f.materialsn);
}
Expression<Func<ResponseAutomationLocationList, bool>> productExpression = f => true;
if (!string.IsNullOrEmpty(productCode))
{
productExpression = f => f.productcode.Contains(productCode);
}
var expression = locationidFullExpression.And(productExpression);
return query.Where(expression);
}
}
}
......@@ -26,6 +26,6 @@ namespace Siger.Middlelayer.AccRepository.Repositories.Interface
CommonImportResult ImportData(IEnumerable<AutomationLocationTemplate> list, int projectid, int userid);
IEnumerable<ResponseAutomationLocationList> GetFulllocation(int projectId, int full);
IEnumerable<ResponseAutomationLocationList> GetFulllocation(int projectId, int full,string productcode);
}
}
......@@ -105,5 +105,7 @@ namespace Siger.Middlelayer.AccRepository.Response
public int categoryid { get; set; }
//产品CODE
public string productcode { get; set; }
public int routeid { get; set; }
public string route { 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