Commit 196f1c67 by xin.yang
parents 252958ef 8dae8a1b
......@@ -355,12 +355,23 @@ namespace Siger.ApiACC.Controllers
/// <summary>
///
/// </summary>
/// <param name="productcode"></param>
/// <param name="fillsn">0:全部 1: 储位有SN</param>
/// <returns></returns>
[HttpGet]
public IActionResult GetLocationList(int fillsn=0)
public IActionResult GetLocationList(string productcode, int fillsn=0)
{
return new ObjectResult(_autoLocationRepository.GetDataList(ProjectId, fillsn).ToList());
var locations = _autoLocationRepository.GetFulllocation(ProjectId, fillsn);
return new ObjectResult(locations);
//if (fillsn == 1)
//{
// var locations = _autoLocationRepository.GetFulllocation(ProjectId,fillsn);
// return new ObjectResult(locations);
//}
//else
//{
// return new ObjectResult(_autoLocationRepository.GetDataList(ProjectId, fillsn, productcode).ToList());
//}
}
}
}
......@@ -535,21 +535,21 @@ namespace Siger.ApiACC.Controllers
// return new ObjectResult(CommonEnum.RecordNotFound);
//}
var location = _automationLocation.Get(f => f.locationid == unloading.locationid);
var location = _automationLocation.Get(f => f.id == unloading.locationid);
if (location==null)
{
return new ObjectResult(CommonEnum.RecordNotFound);
throw new BadRequestException(CommonEnum.RecordNotFound);
}
if (string.IsNullOrEmpty( location.sn))
{
return new ObjectResult(AccEnum.LocationNoSn);
throw new BadRequestException(AccEnum.LocationNoSn);
}
var levelSection = _sigerProjectLevelSection.Get(f => f.id == unloading.section);
var lineMode = _automationLine.Get(f => f.section ==levelSection.parentid);
if (lineMode==null)
{
return new ObjectResult(AccEnum.LineModeNotfound);
throw new BadRequestException(AccEnum.LineModeNotfound);
}
//TODO
......
......@@ -135,12 +135,12 @@ namespace Siger.ApiACC.Controllers
{
throw new BadRequestException(RequestEnum.ProductNotFound);
}
var data = _toolsProductRepository.Get(q => q.projectId == ProjectId && q.status == (int)RowState.Valid && (q.fixturetools == fixtureTool.guid ||
q.productid == req.productid.ToInt()));
if (data != null)
{
throw new BadRequestException(RequestEnum.DataExist);
}
//var data = _toolsProductRepository.Get(q => q.projectId == ProjectId && q.status == (int)RowState.Valid && (q.fixturetools == fixtureTool.guid ||
// q.productid == req.productid.ToInt()));
//if (data != null)
//{
// throw new BadRequestException(RequestEnum.DataExist);
//}
var entity = new siger_automation_fixture_tools_product
{
......
......@@ -37,6 +37,8 @@ namespace Siger.ApiACC.Tasks
var tasks = tasklist.OrderBy(s => s.actiontype);
var task = tasks.FirstOrDefault();
if (task.send == 1)
return;
var levelsction = dbhelper.GetLevelsection(task.sectionid);
if (levelsction == null)
return;
......@@ -56,6 +58,7 @@ namespace Siger.ApiACC.Tasks
Program = task.programnumber
};
Logger.WriteLineError($"TASK 开始下发 : {EnumHelper.GetEnumDesc(task.action)}");
var result = PushTask(hostDic,sendToPLC, out string message);
if (!result)
{
......
......@@ -95,17 +95,20 @@ namespace Siger.Middlelayer.AccRepository.Repositories
return _context.siger_wms_storage_location.Where(q => q.projectId == projectid && q.status == (int)RowState.Valid);
}
public IEnumerable<ResponseAutomationLocationList> GetDataList(int projectid,int hasMaterial)
public IEnumerable<ResponseAutomationLocationList> GetDataList(int projectid,int hasMaterial,string productcode)
{
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 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
select new ResponseAutomationLocationList
{
id = q.id,
typeid=t.id,
fixtureguid = t.guid,
locationid = l.locationid,
location = l.realname,
......@@ -117,14 +120,21 @@ namespace Siger.Middlelayer.AccRepository.Repositories
code = t.code,
name = t.name,
materialsn = q.sn ?? "",
categoryid = c == null ? 0 : c.id
categoryid = c == null ? 0 : c.id,
productcode=tp!=null?tp.productcode:""
};
Expression<Func<ResponseAutomationLocationList, bool>> locationidExpression = f => true;
if (hasMaterial != 0)
{
locationidExpression = q =>!string.IsNullOrEmpty(q.materialsn);
}
var entities = query.Where(locationidExpression).AsNoTracking().ToList();
Expression<Func<ResponseAutomationLocationList, bool>> producExpression = f => true;
if (!string.IsNullOrEmpty(productcode))
{
producExpression = q => q.productcode==productcode;
}
var expression = locationidExpression.And(producExpression);
var entities = query.Where(expression);
return entities;
}
......@@ -200,5 +210,33 @@ namespace Siger.Middlelayer.AccRepository.Repositories
throw;
}
}
public IEnumerable<ResponseAutomationLocationList> GetFulllocation(int projectId,int full)
{
var query = from q in _context.siger_automation_location
join t in _context.siger_automation_fixture_tools on q.fixturetools equals t.guid
where q.projectId==projectId && !string.IsNullOrEmpty(q.sn)
select new ResponseAutomationLocationList
{
id = q.id,
typeid = t.id,
fixtureguid = t.guid,
locationid = q.locationid,
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);
}else
{
locationidExpression = q => string.IsNullOrEmpty(q.materialsn);
}
return query.Where(locationidExpression);
}
}
}
......@@ -20,10 +20,12 @@ namespace Siger.Middlelayer.AccRepository.Repositories.Interface
/// <param name="projectid">项目ID</param>
/// <param name="hasMaterial">只查有SN</param>
/// <returns></returns>
IEnumerable<ResponseAutomationLocationList> GetDataList(int projectid, int hasMaterial);
IEnumerable<ResponseAutomationLocationList> GetDataList(int projectid, int hasMaterial, string productcode);
IEnumerable<siger_wms_storage_location> GetLocationList(int projectid);
CommonImportResult ImportData(IEnumerable<AutomationLocationTemplate> list, int projectid, int userid);
IEnumerable<ResponseAutomationLocationList> GetFulllocation(int projectId, int full);
}
}
......@@ -62,6 +62,10 @@ namespace Siger.Middlelayer.AccRepository.Response
{
public int id { get; set; }
/// <summary>
/// 工装ID
/// </summary>
public int typeid { get; set; }
/// <summary>
/// 储位位置
/// </summary>
public int locationid { get; set; }
......@@ -80,11 +84,16 @@ namespace Siger.Middlelayer.AccRepository.Response
/// 工装ID
/// </summary>
public int fixturetoolid { get; set; }
/// <summary>
/// 工装GUID
/// </summary>
public string fixtureguid { get; set; }
public string code { get; set; }
public string name { get; set; }
public string materialsn { get; set; }
public int categoryid { get; set; }
//产品CODE
public string productcode { 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