Commit 1ed21e65 by xin.yang
parents 8127a445 73e7b9f0
......@@ -3,7 +3,7 @@
<div class="divborder newSearchDiv" style="margin:0px;">
<div class="filter">
<label>{{$t('100088')}}</label>
<!-- <Select v-model="productname" label-in-value filterable clearable remote
<!-- <Select v-model="productname " label-in-value filterable clearable remote
:remote-method="remoteMethod"
:loading="loading1" class="searchSelect" >
<Option v-for="item in products" :value="item.id" :key="item.id">{{ item.name }}({{item.code}})</Option>
......
......@@ -59,7 +59,7 @@
:key="index"
:style="{
background: item.bgc,
color: item.status != 0 ? fontColor : '',
color: item.machineStatus != 0 ? fontColor : '',
}"
>
<p class="flex">
......@@ -176,11 +176,11 @@ export default {
let str = "";
str =
params.row.status == 1
? "待上料"
? "待执行"
: params.row.status == 2
? "生产中"
? "执行中"
: params.row.status == 3
? "待下料"
? "执行完成"
: "";
return h("div", str);
},
......@@ -362,17 +362,17 @@ export default {
arr.forEach((ele) => {
let bgc = "";
if (ele.status == 1) {
if (ele.machineStatus == 1) {
bgc = "#ff9900";
}
if (ele.status == 2) {
if (ele.machineStatus == 2) {
bgc = "#19be6b";
}
if (ele.status == 3) {
if (ele.machineStatus == 3) {
bgc = "#2db7f5";
}
if (ele.enable == 0) {
bgc = "red";
bgc = "#ed4014";
}
ele.bgc = bgc;
});
......
......@@ -98,8 +98,7 @@
<div class="filter">
<label>触发时间:</label>
<DatePicker
type="datetime"
placeholder="Select date"
type="datetimerange"
style="width: 200px"
v-model="startTime"
@on-change="getTime"
......@@ -108,8 +107,7 @@
<div class="filter">
<label>完成时间:</label>
<DatePicker
type="datetime"
placeholder="Select date"
type="datetimerange"
style="width: 200px"
v-model="endTime"
@on-change="getTime2"
......@@ -124,13 +122,13 @@
>{{ $t("1001") }}</Button
>
<!-- -->
<!-- <Button
<Button
type="warning"
class="twoWord"
icon="ios-search"
@click="cancel()"
>取消</Button
> -->
>
<!--只有状态是待执行的可以改成取消-->
<Button
type="primary"
......@@ -199,11 +197,12 @@ export default {
{
title: "任务编号",
key: "taskno",
width: 300,
width: 150,
},
{
title: "产线层级",
key: "section",
width: 150,
},
{
title: "触发方",
......@@ -216,6 +215,7 @@ export default {
{
title: "工件编号",
key: "sn",
width: 150,
},
{
title: "工单编号",
......@@ -230,7 +230,7 @@ export default {
key: "routeNo",
},
{
title: "工序",
title: "工序名称",
key: "route",
},
{
......@@ -248,6 +248,7 @@ export default {
{
title: "动作",
key: "action",
width: 150,
},
{
title: "执行类型",
......@@ -296,8 +297,8 @@ export default {
sn: "",
state: 0,
performType: 0,
startTime: "",
endTime: "",
startTime: [],
endTime: [],
detailobj: {},
};
},
......@@ -316,8 +317,11 @@ export default {
sn: this.sn,
status: this.status,
actionType: this.performType,
triggertime: this.startTime,
complatetime: this.endTime,
triggerbegin:
this.startTime.length > 0 ? this.startTime[0] : "",
triggerend: this.startTime.length > 0 ? this.startTime[1] : "",
complatebegin: this.endTime.length > 0 ? this.endTime[0] : "",
complatend: this.endTime.length > 0 ? this.endTime[1] : "",
page: page,
pageSize: pagesize,
};
......@@ -337,23 +341,30 @@ export default {
});
},
cancel() {
if (this.detailobj.status != 1) {
console.log(this.detailobj);
if (!this.detailobj.id) {
this.$Message.error(this.$t(1043));
return false;
}
if (this.detailobj.send != 0) {
this.$Message.error("该任务清单状态不能取消");
return false;
}
return;
let data = {
section: this.sectionid,
};
// return;
// let data = {
// section: this.sectionid,
// };
this.request(
// "/acc/AutomationOperate/CompalateAssemble",
data,
"post"
"/acc/AutomationState/DeleteTask?id=" + this.detailobj.id,
"",
"get"
).then((res) => {
if (res.data.ret == 1) {
this.$Message.success(this.$t(res.data.msg));
this.search(1, 10);
} else {
this.$Message.error(this.$t(res.data.msg));
this.search(1, 10);
}
});
},
......
......@@ -361,6 +361,9 @@ namespace Siger.ApiACC.Controllers
[HttpGet]
public IActionResult GetLocationList(string productcode, int fillsn=0)
{
var productFix = _automationFixtureToolsProduct.Get(f => f.productcode == productcode);
var locations = _autoLocationRepository.GetFulllocation(ProjectId, fillsn);
return new ObjectResult(locations);
//if (fillsn == 1)
......
......@@ -10,19 +10,23 @@ using Siger.Middlelayer.AccRepository.Response;
using Siger.ApiCommon.Result;
using Siger.Middlelayer.Common;
using Siger.Middlelayer.Share.Enum.ModuleEnum;
using Siger.Middlelayer.Repository;
using Siger.Middlelayer.Log;
// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
namespace Siger.ApiACC.Controllers
{
public class AutomationStateController : BaseController
{
private readonly IUnitOfWork _unitOfWork;
private readonly ISigerProjectLevelSectionRepository _sigerProjectLevelSection;
private readonly IAutomationMachineStatus _automationMachineStatus;
private readonly IAutomationTaskListRepository _automationTaskList;
private readonly IAutomationFixtureMonitor _automationFixtureMonitor;
public AutomationStateController(ISigerProjectLevelSectionRepository sigerProjectLevelSection, IAutomationMachineStatus automationMachineStatus, IAutomationTaskListRepository automationTaskList, IAutomationFixtureMonitor automationFixtureMonitor)
public AutomationStateController(IUnitOfWork unitOfWork, ISigerProjectLevelSectionRepository sigerProjectLevelSection, IAutomationMachineStatus automationMachineStatus, IAutomationTaskListRepository automationTaskList, IAutomationFixtureMonitor automationFixtureMonitor)
{
_unitOfWork = unitOfWork;
_sigerProjectLevelSection = sigerProjectLevelSection;
_automationMachineStatus = automationMachineStatus;
_automationTaskList = automationTaskList;
......@@ -58,7 +62,7 @@ namespace Siger.ApiACC.Controllers
fixtureCode="",
fixtureName="",
lastupdate="",
status=(int)Automation.MachineStatus.Waiting,
machineStatus=d.status,
linemode=d.linemode
};
......@@ -71,6 +75,7 @@ namespace Siger.ApiACC.Controllers
item.fixtureCode = fixture.fixtureguid;
item.fixtureName = fixture.fixturename;
item.machineStatus = d.status;
item.status = fixture.status;
}
result.Add(item);
......@@ -80,9 +85,9 @@ namespace Siger.ApiACC.Controllers
{
sum=new ResponseAutomationMachineStatusTotal {
waittingTotal =result.Where(f=>f.status==(int)Automation.MachineStatus.Waiting).Count(),
produceTotal= result.Where(f => f.status == (int)Automation.MachineStatus.Produce).Count(),
complateTotal= result.Where(f => f.status == (int)Automation.MachineStatus.Complated).Count(),
waittingTotal =result.Where(f=>f.machineStatus == (int)Automation.MachineStatus.Waiting).Count(),
produceTotal= result.Where(f => f.machineStatus == (int)Automation.MachineStatus.Produce).Count(),
complateTotal= result.Where(f => f.machineStatus == (int)Automation.MachineStatus.Complated).Count(),
disableTotal= result.Where(f => f.enable ==0).Count(),
},
dts=result
......@@ -90,16 +95,35 @@ namespace Siger.ApiACC.Controllers
return new ObjectResult(output);
}
[HttpGet]
public IActionResult GetTasklist(int section, int tasktype, string productCode, string taskno, string sn, int status, int actionType, string triggertime, string complatetime,int page,int pageSize)
public IActionResult GetTasklist(int section, int tasktype, string productCode, string taskno, string sn, int status, int actionType, string triggerbegin,string triggerend, string complatebegin,string complatend,int page,int pageSize)
{
var ids = new List<int>();
if (section != 0)
{
ids = _sigerProjectLevelSection.GetLevelSectionIds(section, ProjectId).ToList();
}
var resulst = _automationTaskList.GetTasklistPagedList(ids, tasktype, productCode, taskno, sn, status, actionType, triggertime, complatetime,ProjectId,page,pageSize);
var resulst = _automationTaskList.GetTasklistPagedList(ids, tasktype, productCode, taskno, sn, status, actionType, triggerbegin, triggerend, complatebegin, complatend, ProjectId,page,pageSize);
return new PagedObjectResult(resulst, resulst.Total, page, pageSize);
}
public IActionResult DeleteTask(int id)
{
var record = _automationTaskList.Get(f => f.id == id);
if (record == null)
{
throw new BadRequestException(CommonEnum.RecordNotFound);
}
_automationTaskList.Delete(record);
if (_unitOfWork.Commit() > 0)
{
Logger.WriteLineError($"手动任务创建成功-{Siger.Middlelayer.Common.Helpers.EnumHelper.GetEnumDesc(Automation.TaskAction.Step_LK_SXLW)}");
return new ObjectResult(CommonEnum.Succefull);
}
else
{
throw new BadRequestException(CommonEnum.Fail);
}
}
}
}
......@@ -320,16 +320,11 @@ namespace Siger.ApiACC.Controllers
private void CreateTaskList(int section, int productid, string productcode, string sn, int routeid)
{
if (section <= 0 || string.IsNullOrEmpty(sn) || string.IsNullOrEmpty(productcode) || productid <= 0)
var monitor = _fixtureMonitor.Get(f => f.section == section);
if (monitor==null)
{
return;
Logger.WriteLineInfo($"检验工站{section} monitor 为空");
}
var monitor = _fixtureMonitor.GetList(q => q.section == section && q.sn == sn).OrderByDescending(q => q.updatetime).FirstOrDefault();
if (monitor == null)
{
return;
}
var taskNo = _automationTaskList.CrateTaskNumber(Automation.TaskTrigerType.Manual);
_automationTaskList.Insert(new siger_automation_task_list
......@@ -357,6 +352,7 @@ namespace Siger.ApiACC.Controllers
programnumber = "",
remark = "质量检验",
});
monitor.taskno = taskNo;
_unitOfWork.Commit();
}
......
......@@ -64,8 +64,7 @@ namespace Siger.ApiACC.Controllers
[HttpGet]
public IActionResult GetSn(int sectionid)
{
var monitor = _fixtureMonitor.GetList(q => q.projectId == ProjectId && q.status == (int)RowState.Valid && q.section == sectionid).OrderByDescending(q => q.updatetime).
FirstOrDefault();
var monitor = _fixtureMonitor.Get(sectionid);
return new ObjectResult(monitor?.sn ?? "");
}
}
......
......@@ -50,11 +50,18 @@ namespace Siger.ApiACC.Tasks
if (attr == null)
return;
var fixtrue = dbhelper.GetFixture(task.fixtureguid);
if (fixtrue==null)
{
Logger.WriteLineError($"自动工装未找到");
return;
}
var sendToPLC = new RequestPLC
{
ProductCode=task.productcode,
LineID= levelsction.parentid,
RStation = attr.machine,
Fixture = task.fixtureguid,
Fixture = fixtrue.code,
RequestForm = task.no,
RobotStep = (int)task.action,
StorageNo = task.locationid,
......
......@@ -70,6 +70,10 @@ namespace Siger.ApiACC.Tasks
{
return AccDbContext.siger_project_machine_attribution.FirstOrDefault(f => f.station==section && f.status==1);
}
public siger_automation_fixture_tools GetFixture(string guid)
{
return AccDbContext.siger_automation_fixture_tools.FirstOrDefault(f => f.guid==guid && f.status == 1);
}
public void Dispose()
{
CncDbContext?.Dispose();
......
......@@ -23,14 +23,16 @@ namespace Siger.ApiCNC.Controllers
private readonly IProductionBeatSetRepository _beatSetRepository;
private readonly ISigerProjectMachineRepository _machineRepository;
private readonly ISigerProjectProductRepository _productRepository;
private readonly IProductRouteRepository _productRoute;
public BeatAllocationController(IUnitOfWork unitOfWork, IProductionBeatSetRepository beatSetRepository, ISigerProjectMachineRepository machineRepository,
ISigerProjectProductRepository productRepository)
ISigerProjectProductRepository productRepository, IProductRouteRepository productRoute)
{
_unitOfWork = unitOfWork;
_beatSetRepository = beatSetRepository;
_machineRepository = machineRepository;
_productRepository = productRepository;
_productRoute = productRoute;
}
[HttpGet]
......@@ -43,6 +45,7 @@ namespace Siger.ApiCNC.Controllers
var validMachines = _machineRepository.GetLevelSectionNames(sectionID, ProjectId);
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 section = validMachines.FirstOrDefault(q => q.machine_id == time.machineID);
if (section != null)
......@@ -50,6 +53,10 @@ namespace Siger.ApiCNC.Controllers
entity.sectionName = section.machine_name;
entity.stationName = section.lastSecondSectionTitle + "-" + section.lastSectionTitle;
}
if (route!=null)
{
entity.routeName = route.name;
}
list.Add(entity);
}
return new PagedObjectResult(list, data.Total, page, pagesize);
......@@ -104,6 +111,11 @@ namespace Siger.ApiCNC.Controllers
{
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
{
daily_standard_output = request.daily_standard_output,
......@@ -117,8 +129,8 @@ namespace Siger.ApiCNC.Controllers
standard_besat = request.standard_besat,
projectID = ProjectId,
changemodeltime = request.time_num.ToInt(),
route_number = request.route_number.ToStr(),
route_name = request.route_name,
route_number = request.route_id.ToStr(),
route_name = route.name,
updown_besat = request.updown_besat.ToDouble(),
yieldrate = request.yieldratio,
start_time = timSet ? start : DateTime.MinValue,
......
......@@ -167,5 +167,7 @@ namespace Siger.Middlelayer.AccRepository
public DbSet<siger_automation_produce_history> siger_automation_produce_history { get; set; }
public DbSet<siger_automation_fixture_tools_monitor> siger_automation_fixture_tools_moniter { get; set; }
public DbSet<siger_check_sn_trace_inspection> siger_check_sn_trace_inspection { get; set; }
}
}
......@@ -11,7 +11,7 @@ namespace Siger.Middlelayer.AccRepository.Entities
/// </summary>
public string fixtureguid { get; set; }
/// <summary>
/// 工装名称
/// 工装编号
/// </summary>
public string fixturename { get; set; }
/// <summary>
......@@ -50,5 +50,9 @@ namespace Siger.Middlelayer.AccRepository.Entities
public string productName { get; set; }
public int locationId { get; set; }
public int unixtime { get; set; }
/// <summary>
/// 当前任务
/// </summary>
public string taskno { get; set; }
}
}
......@@ -30,5 +30,10 @@ namespace Siger.Middlelayer.AccRepository.Entities
/// </summary>
public string program { get; set; }
/// <summary>
/// 1: 自动设备 0:上下料设备
/// </summary>
public int auto { get; set; }
}
}
......@@ -103,5 +103,7 @@ namespace Siger.Middlelayer.AccRepository.Entities
public string remark { get; set; }
public string extend1 { get; set; }
public int route { get; set; }
}
}
......@@ -67,8 +67,8 @@ namespace Siger.Middlelayer.AccRepository.Entities
public int changemodeltime { get; set; }
/// <summary>
/// 工序顺序
/// </summary>
/// 工序ID Route.Id
/// </summary>
public string route_number { get; set; } = "";
/// <summary>
......
......@@ -103,11 +103,11 @@ namespace Siger.Middlelayer.AccRepository.Repositories
/// <param name="productIds"></param>
/// <param name="projectId"></param>
/// <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
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
{
productId=p.product_id,
......@@ -136,7 +136,8 @@ namespace Siger.Middlelayer.AccRepository.Repositories
ProductName = p.product_name,
Url=pd.image,
FixtureName=t.name,
FixtureGuid=t.code,
FixtureGuid=t.guid,
FixtureCode=t.code,
ProductCode =q!=null? q.productcode:"",
Location =l!=null? l.locationid:0,
};
......
......@@ -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
};
......@@ -238,42 +239,64 @@ namespace Siger.Middlelayer.AccRepository.Repositories
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
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)
//获取有SN 的储位
if (full==1)
{
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
{
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);
}
}
}
......@@ -29,7 +29,6 @@ namespace Siger.Middlelayer.AccRepository.Repositories
{
//已经下发,并且任务完成
var taskObjs = _context.siger_automation_task_list.Where(f => f.projectId == projectId && f.send==0 );
if (taskObjs.Any())
{
return false;
......@@ -90,10 +89,12 @@ namespace Siger.Middlelayer.AccRepository.Repositories
}
public IPagedCollectionResult<ResponseAutomationTasklist> GetTasklistPagedList(List<int> sections, int taskType, string productCode, string TaskNo, string sn, int status, int actionType, string tiggertime, string comptime, int projectid, int page, int pagesize)
public IPagedCollectionResult<ResponseAutomationTasklist> GetTasklistPagedList(List<int> sections, int taskType, string productCode, string TaskNo, string sn, int status, int actionType, string tirbeigin, string triend, string compbegin, string compend, int projectid, int page, int pagesize)
{
var query = from q in _context.siger_automation_task_list
join t in _context.siger_automation_fixture_tools on q.fixtureguid equals t.guid
join r in _context.siger_project_product_route on q.route equals r.id into rtemp
from r in rtemp.DefaultIfEmpty()
join s in _context.siger_project_level_section on q.sectionid equals s.id
join lv in _context.siger_project_level_section on s.parentid equals lv.id
where q.projectId == projectid
......@@ -117,7 +118,8 @@ namespace Siger.Middlelayer.AccRepository.Repositories
ordernumber=q.ordercode,
productCode=q.productcode,
program=q.programnumber,
route=q.remark,
route=r!=null?$"{r.serialNumber}-{r.name}":"",
send=q.send,
tasktype=EnumHelper.GetEnumDesc(q.tasktype),
status=q.status,
......@@ -153,15 +155,15 @@ namespace Siger.Middlelayer.AccRepository.Repositories
actionTypeExpression = q => q.actionTypeid==actionType;
}
Expression<Func<ResponseAutomationTasklist, bool>> triggerTimeTypeExpression = f => true;
if (!string.IsNullOrEmpty(tiggertime))
if (!string.IsNullOrEmpty(triend) && !string.IsNullOrEmpty(tirbeigin))
{
triggerTimeTypeExpression = q => q.triggervalue == tiggertime.ToDateTime();
triggerTimeTypeExpression = q => q.triggervalue >= tirbeigin.ToDateTime() && q.triggervalue<=triend.ToDateTime();
}
Expression<Func<ResponseAutomationTasklist, bool>> comptimeExpression = f => true;
if (!string.IsNullOrEmpty(comptime))
if (!string.IsNullOrEmpty(compbegin) && !string.IsNullOrEmpty(compend))
{
comptimeExpression = q => q.complatevalue == comptime.ToDateTime();
comptimeExpression = q => q.complatevalue >= compbegin.ToDateTime() && q.complatevalue <= compend.ToDateTime();
}
var expression = sectonsExpression.And(taskTypeExpression).And(productCodeExpression).And(tasknoExpression).And(snExpression)
......
......@@ -37,7 +37,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories.Interface
/// <param name="productIds"></param>
/// <param name="projectId"></param>
/// <returns></returns>
IEnumerable<ResponseAutomationPlanOrder> GetDeliveryOrder(List<int> productIds, int projectId);
IEnumerable<ResponseAutomationPlanOrder> GetDeliveryOrder(List<string> Ordernums, int projectId);
}
}
......@@ -26,6 +26,6 @@ namespace Siger.Middlelayer.AccRepository.Repositories.Interface
string CreateRandonSn(string productCode);
IPagedCollectionResult<ResponseAutomationTasklist> GetTasklistPagedList(List<int> sections, int taskType, string productCode, string TaskNo, string sn, int status, int actionType, string tiggertime, string comptime, int projectid, int page, int pagesize);
IPagedCollectionResult<ResponseAutomationTasklist> GetTasklistPagedList(List<int> sections, int taskType, string productCode, string TaskNo, string sn, int status, int actionType, string tirbeigin,string triend,string compbegin, string compend, int projectid, int page, int pagesize);
}
}
......@@ -9,7 +9,7 @@ namespace Siger.Middlelayer.AccRepository.Request
{
[Required(ErrorMessage = "guidNotNull")]
/// <summary>
/// 任务列表GUID
/// 任务列表taskNo
/// </summary>
public string guid { get; set; }
[Required(ErrorMessage = "status")]
......
......@@ -6,6 +6,7 @@ namespace Siger.Middlelayer.AccRepository.Request
{
public class RequestPLC
{
public string ProductCode { get; set; }
/// <summary>
/// 工件唯一识别SN
/// </summary>
......
......@@ -31,6 +31,8 @@ namespace Siger.Middlelayer.AccRepository.Response
public class ResponseAutomationLocationRouteInfo
{
public int section { get; set; }
public int machine { get; set; }
public string fixture { get; set; }
public string fixturename { get; set; }
public string ordernumber { get; set; }
......@@ -39,8 +41,35 @@ namespace Siger.Middlelayer.AccRepository.Response
public int productId { get; set; }
public string productCode { get; set; }
public string productName { get; set; }
public string route { get; set; }
public int route { get; set; }
public string pn { get; set; }
/// <summary>
/// location.id主键
/// </summary>
public int lid { 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; }
/// <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; }
......
......@@ -15,6 +15,13 @@ namespace Siger.Middlelayer.AccRepository.Response
public int location { get; set; }
public string sn { get; set; }
public int enable { get; set; }
/// <summary>
/// 设备状态
/// </summary>
public int machineStatus { get; set; }
/// <summary>
/// 任务状态
/// </summary>
public int status { get; set; }
public string lastupdate { get; set; }
public string linemode { get; set; }
......
......@@ -46,5 +46,6 @@ namespace Siger.Middlelayer.AccRepository.Response
public string triggerTime { get; set; }
public DateTime? complatevalue { get; set; }
public string complatetime { get; set; }
public int send { get; set; }
}
}
......@@ -101,6 +101,8 @@ namespace Siger.Middlelayer.CncRepository.Repositories
var sectionIds = new List<int>();
var productIds = new List<string>();
var machineIds = new List<int>();
var validates = new List<BeatSetEntity>();
foreach (var beatSetEntity in beatSetEntities)
{
var sectionId = 0;
......@@ -180,14 +182,26 @@ namespace Siger.Middlelayer.CncRepository.Repositories
{
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())
{
return new CommonImportResult(0, string.Join(";", errors));
}
beatSetEntity.RouteNumber = route.id.ToString();
validates.Add(beatSetEntity);
}
var index = 0;
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
{
......@@ -201,12 +215,14 @@ namespace Siger.Middlelayer.CncRepository.Repositories
product_name = productIds[index],
section_id = sectionIds[index],
standard_besat = entity.CycleTime.ToInt(),
route_name = entity.RouteName,
machineID = machineIds.Count>index?machineIds[index]:0,
changemodeltime = entity.ChangeModelTime.ToInt(),
updown_besat = entity.UpDownBesat.ToDouble(),
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(),
end_time = string.IsNullOrEmpty(entity.EndTime) ? maxTime : entity.EndTime.ToDateTime().AddDays(1).AddSeconds(-1)
};
......
......@@ -13,6 +13,10 @@ namespace Siger.Middlelayer.CncRepository.Request
public string product_name_text { get; set; }
/// <summary>
/// productId
/// </summary>
[Required(ErrorMessage = "ProductNameIsEmpty")]
public string product_name { get; set; }
......@@ -24,6 +28,11 @@ namespace Siger.Middlelayer.CncRepository.Request
public string time_num { get; set; }
/// <summary>
/// 产品工序表ID
/// </summary>
public int route_id { get; set; }
public string route_number { get; set; }
public string route_name { get; set; }
......
......@@ -375,6 +375,7 @@ CREATE TABLE `siger_automation_machine_status` (
`machineid` int NOT NULL DEFAULT '0' COMMENT '工位对应设备ID',
`projectid` int NOT NULL DEFAULT '0',
`enable` int NOT NULL DEFAULT '1' COMMENT '设备可用状态 0:不可用 1:可用',
`auto` int NOT NULL DEFAULT '1' COMMENT '设备可用状态 0:上下料设备 1:自动设备',
`status` int NOT NULL DEFAULT '1' COMMENT '完工状态 0:取消 1:待生产 2:生产中 3:生产完成 ',
`updatetime` datetime DEFAULT NULL COMMENT '操作时间',
`program` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '程序号',
......@@ -445,6 +446,8 @@ CREATE TABLE `siger_automation_fixture_tools_moniter` (
`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 '产品名称',
`locationId` int(11) NOT NULL DEFAULT 0,
`unixtime` int(1) NOT NULL DEFAULT 1 COMMENT 'task时间',
`taskno` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '当前任务单',
`status` int(1) NOT NULL DEFAULT 1 COMMENT '',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
......
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