Commit 043d65cf by yiyu.li
parents 297004b3 edc534b6
......@@ -412,7 +412,7 @@ export default {
loadexcel() {
axios
.request({
url: "/config/Download/GetTemplate?name=StorageLocation",
url: "/wms/Location/DownloadTemplate",
method: "get",
})
.then((res) => {
......
......@@ -428,7 +428,7 @@ namespace Siger.ApiACC.Controllers
return; //完成当前任务 退出
}
}
//优先级3:其他设备下料 (加工中心 ->立库)
//优先级3:其他设备下料 (加工中心 ->清洗机)
if (cleanMachine != null)
{
var fullMachine = machineStatusList.FirstOrDefault(f => f.status == (int)Automation.MachineStatus.Complated);
......
......@@ -21,6 +21,7 @@ using Siger.Middlelayer.Share.Enum.ModuleEnum;
using Siger.Middlelayer.Common.Configuration;
using Siger.Middlelayer.Common.Helpers;
using Newtonsoft.Json;
using NPOI.SS.Formula;
namespace Siger.ApiACC.Controllers
{
......@@ -452,7 +453,7 @@ namespace Siger.ApiACC.Controllers
throw new BadRequestException(AccEnum.MonitorNotfound);
}
//移出 上料位
monitor.status = (int)Automation.MachineStatus.Waiting;
monitor.section = 0;
var taskNo = _automationTaskList.CrateTaskNumber(Automation.TaskTrigerType.Manual);
_automationTaskList.Insert(new siger_automation_task_list
{
......@@ -500,8 +501,109 @@ namespace Siger.ApiACC.Controllers
[HttpPost]
public IActionResult Unloading([FromBody]requestAutomationUnloading unloading)
{
//var monitor = _automationFixtureMonitor.Get(f => f.section == unloading.section);
//if (monitor == null)
//{
// Logger.WriteLineInfo($"AutoProcess 找不到CNC监控信息");
// return new ObjectResult(CommonEnum.RecordNotFound);
//}
//if (string.IsNullOrEmpty( monitor.sn))
//{
// Logger.WriteLineInfo($"AutoProcess 找不到CNC监控SN信息");
// return new ObjectResult(CommonEnum.RecordNotFound);
//}
var location = _automationLocation.Get(f => f.locationid == unloading.locationid);
if (location==null)
{
return new ObjectResult(CommonEnum.RecordNotFound);
}
if (string.IsNullOrEmpty( location.sn))
{
return new ObjectResult(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);
}
//TODO
//1. 有检验状态 (立库-》检验工位)
//2. 无检验状态 (立库-》上下料工位)
var taskNo = _automationTaskList.CrateTaskNumber(Automation.TaskTrigerType.Manual);
_automationTaskList.Insert(new siger_automation_task_list
{
no = taskNo,
action = lineMode.inspect==1?Automation.TaskAction.Step_LK_CJT: Automation.TaskAction.Step_LK_SXLW,
actiontype = Automation.ExcueType.None,
triggertime = DateTime.Now,
tasktype = Automation.TaskActionType.Load,
operater = UserId,
operatetime = DateTime.MinValue,
sectionid = unloading.section,
send = 0,
status = 1,
completetime = DateTime.MinValue,
trigger = Automation.TaskTrigerType.Manual,
projectId = ProjectId,
productid = location.productid,
sn = location.sn,
ordercode = location.ordernumber,
fixtureguid = location.fixturetools,
locationid = location.locationid,
productcode = location.productcode,
processid = 0,
programnumber = "",
remark = "手动任务-准备上料",
});
var monitor = _automationFixtureMonitor.Get(f => f.section == unloading.section);
if (monitor == null)
{
_automationFixtureMonitor.Insert(new siger_automation_fixture_tools_monitor
{
fixtureguid = location.fixturetools,
fixturename = location.fixturename,
projectId = ProjectId,
section = unloading.section,
sn = location.sn,
createtime = DateTime.Now,
updatetime = DateTime.Now,
status = (int)Automation.MachineStatus.Produce,
productId = location.productid,
productCode = location.productcode,
productName = location.productname,
ordernumber = location.ordernumber,
locationId = location.locationid
});
}
else
{
monitor.sn = location.sn;
monitor.updatetime = DateTime.Now;
monitor.status = (int)Automation.MachineStatus.Produce;
monitor.productId = location.productid;
monitor.productName = location.productname;
monitor.productCode = location.productcode;
monitor.ordernumber = location.ordernumber;
monitor.locationId = location.locationid;
_automationFixtureMonitor.Update(monitor);
}
return new ObjectResult(1);
if (_unitOfWork.Commit() > 0)
{
return new ObjectResult(CommonEnum.Succefull);
}
else
{
throw new BadRequestException(CommonEnum.Fail);
}
}
/// <summary>
......@@ -513,7 +615,64 @@ namespace Siger.ApiACC.Controllers
public IActionResult Disassemble([FromBody]Requestdisassemble disassemble)
{
return new ObjectResult(1);
var machineStatus = _automationMachineStatus.Get(f => f.section == disassemble.section);
if (machineStatus == null)
{
throw new BadRequestException(CommonEnum.RecordNotFound);
}
if (machineStatus.enable == 0)
{
throw new BadRequestException(AccEnum.MachineDisable);
}
if (!_automationTaskList.CanTask(ProjectId, disassemble.section))
{
throw new BadRequestException(AccEnum.TaskProcessing);
}
//创建 安装完成动作
var monitor = _automationFixtureMonitor.Get(f => f.projectId == ProjectId && f.section == disassemble.section);
if (monitor == null)
{
throw new BadRequestException(AccEnum.MonitorNotfound);
}
//移出 上料位
monitor.section = 0;
var taskNo = _automationTaskList.CrateTaskNumber(Automation.TaskTrigerType.Manual);
_automationTaskList.Insert(new siger_automation_task_list
{
no = taskNo,
action = Automation.TaskAction.Step_SXLW_LK,
actiontype = Automation.ExcueType.None,
triggertime = DateTime.Now,
tasktype = Automation.TaskActionType.Load,
operater = UserId,
operatetime = DateTime.Now,
sectionid = disassemble.section,
send = 0,
status = 1,
completetime = DateTime.MinValue,
trigger = Automation.TaskTrigerType.Manual,
projectId = ProjectId,
productid = monitor.productId,
sn = monitor.sn,
ordercode = monitor.ordernumber,
fixtureguid = monitor.fixtureguid,
locationid = monitor.locationId,
productcode = monitor.productCode,
processid = 0,
programnumber = "",
remark = "手动任务-拆卸完成",
});
if (_unitOfWork.Commit() > 0)
{
Logger.WriteLineError($"手动任务-拆卸完成-{Siger.Middlelayer.Common.Helpers.EnumHelper.GetEnumDesc(Automation.TaskAction.Step_SXLW_LK)}");
return new ObjectResult(CommonEnum.Succefull);
}
else
{
throw new BadRequestException(CommonEnum.Fail);
}
}
}
}
......@@ -546,7 +546,14 @@ namespace Siger.ApiWMS.Controllers
[HttpGet]
public IActionResult DownloadTemplate()
{
var list = new List<List<string>>() { GetExcelTitle() };
var data = new List<string>(){
"*ID",
"*仓库名称"
};
var range = locationtype.GetList(f => f.status == (int)RowState.Valid && f.projectid == ProjectId).OrderBy(f => f.id).Select(f => "*" + f.name).ToList();
data.AddRange(range);
var list = new List<List<string>>() { data };
var fileName = Utility.GetExcelFileName("Location");
CommonExcelHelper.Generate(list, fileName);
......
......@@ -43,5 +43,10 @@ namespace Siger.Middlelayer.Share.Constant
/// </summary>
public const string WarehouseStation = "WarehouseStation";
/// <summary>
/// 检验
/// </summary>
public const string InspectStation = "InspectStation";
}
}
......@@ -341,7 +341,9 @@ namespace Siger.Middlelayer.Common.ModuleEnum
[Description("产线当前为自动模式")]
LineIsAutoMode,
[Description("该任务已经下发")]
TaskIsSend
TaskIsSend,
[Description("该储位无工件")]
LocationNoSn,
}
public enum SeriNumCfg
......
......@@ -127,12 +127,14 @@ namespace Siger.Middlelayer.AccRepository.Repositories
join q in _context.siger_automation_fixture_tools_product on p.product_code equals q.productcode
join t in _context.siger_automation_fixture_tools on q.fixturetools equals t.guid
join l in _context.siger_automation_location on t.guid equals l.fixturetools
join pd in _context.siger_project_product on p.product_id equals pd.id
where q.projectId == projectId && d.OrderNumber == ordernumber
&& q.status == (int)RowState.Valid && t.status == (int)RowState.Valid && l.status==(int)RowState.Valid
select new ResponsePlanlFixtureInfo
{
OrderNumber = ordernumber,
ProductName = p.product_name,
Url=pd.image,
FixtureName=t.name,
FixtureGuid=t.guid,
ProductCode =q!=null? q.productcode:"",
......
......@@ -31,6 +31,8 @@ namespace Siger.Middlelayer.AccRepository.Request
{
public int section { get; set; }
public int locationid { get; set; }
}
/// <summary>
......
......@@ -34,6 +34,7 @@ namespace Siger.Middlelayer.AccRepository.Response
public string OrderNumber { get; set; }
public string ProductCode { get; set; }
public string ProductName { get; set; }
public string Url { get; set; }
public int status { get; set; }
public string FixtureName { get; set; }
public string FixtureGuid { 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