| | |
| | | NDCApi.ChangeOrderParam(mst.S_CODE, 1, startSite); |
| | | NDCApi.ChangeOrderParam(mst.S_CODE, 2, endSite); |
| | | NDCApi.ChangeOrderParam(mst.S_CODE, 4, "0"); |
| | | Thread.Sleep(1000); |
| | | NDCApi.ChangeOrderParam(mst.S_CODE, 6, "2"); |
| | | } |
| | | } |
| | |
| | | /// <param name="state"></param> |
| | | internal static void OperateStatus(WMSTask mst, int state) |
| | | { |
| | | if (state == 4) |
| | | if (state == 4)//取货完成 |
| | | { |
| | | CacheBitUpdate(mst, true); |
| | | } |
| | | if (state == 6)//卸货完成 |
| | | { |
| | | //退库任务不绑定 |
| | | if (!LocationHelper.GetErroArea(mst.S_END_AREA)) { |
| | | CacheBitUpdate(mst, false); |
| | | } |
| | | } |
| | | if (state == 7) |
| | | { |
| | |
| | | //改一段任务终点 |
| | | task.S_END_LOC = end.S_CODE; |
| | | task.S_END_AREA = end.S_AREA_CODE; |
| | | db.Updateable(task).UpdateColumns(it => new { it.S_END_LOC, it.S_END_AREA }).ExecuteCommand(); |
| | | task.S_END_AREA_NAME = end.S_AREA_Name; |
| | | |
| | | db.Updateable(task).UpdateColumns(it => new { it.S_END_LOC, it.S_END_AREA ,it.S_END_AREA_NAME}).ExecuteCommand(); |
| | | kt.Status = "Y"; |
| | | db.Updateable(kt).UpdateColumns(it => new { it.Status }).ExecuteCommand(); |
| | | db.CommitTran(); |
| | |
| | | LogHelper.Info($"任务{task.S_CODE}改道成功,改参数2为{site},参数6为2,4为0", "改道安全交互"); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 2, site); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 4, "0"); |
| | | Thread.Sleep(1000); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 6, "2"); |
| | | return; |
| | | } |
| | |
| | | db.Updateable(wcsTask).UpdateColumns(it => new { it.S_END_LOC }).ExecuteCommand(); |
| | | db.CommitTran(); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | LocationHelper.LockLoc(connection.S_CODE, "入库锁", 1); |
| | | var endLoc1 = LocationHelper.GetLocOne(task.S_END_LOC); |
| | | endLoc1.N_LOCK_STATE = 0; |
| | |
| | | //改一段任务终点 |
| | | task.S_END_LOC = connection.S_CODE; |
| | | task.S_END_AREA = connection.S_AREA_CODE; |
| | | db.Updateable(task).UpdateColumns(it => new { it.S_END_LOC, it.S_END_AREA }).ExecuteCommand(); |
| | | |
| | | task.S_END_AREA_NAME = connection.S_AREA_Name; |
| | | db.Updateable(task).UpdateColumns(it => new { it.S_END_LOC, it.S_END_AREA,it.S_END_AREA_NAME }).ExecuteCommand(); |
| | | |
| | | |
| | | //改二段任务起点 |
| | | wcsTask.S_START_LOC = connection.S_CODE; |
| | | wcsTask.S_START_AREA = connection.S_AREA_CODE; |
| | | db.Updateable(wcsTask).UpdateColumns(it => new { it.S_START_LOC, it.S_START_AREA }).ExecuteCommand(); |
| | | |
| | | wcsTask.S_START_AREA_NAME = connection.S_AREA_Name; |
| | | db.Updateable(wcsTask).UpdateColumns(it => new { it.S_START_LOC, it.S_START_AREA,it.S_START_AREA_NAME}).ExecuteCommand(); |
| | | db.CommitTran(); |
| | | |
| | | var site = LocationHelper.GetAgvSiteZc(connection.S_CODE); |
| | | LogHelper.Info($"任务{task.S_CODE}改道成功,改参数2为{site},参数6为2,4为1024", "改道安全交互"); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 2, site); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 4, "1024"); |
| | | Thread.Sleep(1000); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 6, "2"); |
| | | |
| | | //} else if (workFlow.FLOWNAME.Contains("出库")) { |
| | |
| | | else { |
| | | LogHelper.Info($"当前任务{task.S_CODE}接驳位{task.S_END_LOC}可用,当前库区{wcsTask.S_END_AREA}当前巷道{loc1.N_ROADWAY}可用,不需要改道,直接修改参数6为2,4为1024", "改道安全交互"); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 4, "1024"); |
| | | Thread.Sleep(1000); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 6, "2"); |
| | | } |
| | | } |
| | |
| | | var TrayLocation = db.Queryable<LocCntrRel>().Where(e => e.S_CNTR_CODE == model.TOOLS_NO).ToList(); |
| | | if (TrayLocation.Count() > 0) |
| | | { |
| | | LogHelper.Info("查询到该工装已经绑定了货位信息", "物料绑定解绑"); |
| | | throw new Exception("查询到该工装已经绑定了货位信息"); |
| | | LogHelper.Info("查询到该工装托盘码已经绑定了货位信息", "物料绑定解绑"); |
| | | throw new Exception("查询到该工装托盘码已经绑定了货位信息"); |
| | | } |
| | | var TrayItems = db.Queryable<CntrItemRel>().Where(e => e.S_CNTR_CODE == model.TOOLS_NO).ToList(); |
| | | if (TrayItems.Count() > 0) |
| | | { |
| | | LogHelper.Info("查询到该工装已经绑定了物料信息", "物料绑定解绑"); |
| | | throw new Exception("查询到该工装已经绑定了物料信息"); |
| | | LogHelper.Info("查询到该工装托盘码已经绑定了物料信息", "物料绑定解绑"); |
| | | throw new Exception("查询到该工装托盘码已经绑定了物料信息"); |
| | | } |
| | | var Locations = db.Queryable<Location>().Where(e => e.S_CODE == model.LOCATION_CODE)?.First(); |
| | | if (Locations == null) |
| | |
| | | ContainerHelper.delCntr(task.S_CNTR_CODE); |
| | | ContainerHelper.delCntrItem(task.S_CNTR_CODE); |
| | | } |
| | | else { |
| | | WcsTask.WcsCancellTask(wcsTask); |
| | | } |
| | | |
| | | |
| | | TaskHelper.Fail(wcsTask); |
| | |
| | | { |
| | | ContainerHelper.delCntr(task.S_CNTR_CODE); |
| | | ContainerHelper.delCntrItem(task.S_CNTR_CODE); |
| | | } |
| | | else { |
| | | WcsTask.WcsCancellTask(wcsTask); |
| | | } |
| | | TaskHelper.Fail(wcsTask); |
| | | TaskProcess.OperateStatus(wcsTask, 7); |
| | |
| | | { |
| | | //满托入 |
| | | balanceLocList = LocationHelper.FindBalanceEndLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY); |
| | | |
| | | if (TOOLSTYPE == "25" || TOOLSTYPE == "35") { |
| | | LogHelper.Info($"ZCSendTask入库任务工装是二合一库,需要物料均衡", "Mes任务下发"); |
| | | balanceLocList = LocationHelper.RoadWayBalance1ByItem(balanceLocList, model.PROD_NO); |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | else if (workFlow.FLOWCODE == "3") |
| | | { |
| | |
| | | break; |
| | | } |
| | | } |
| | | if (connection == "") |
| | | { |
| | | LogHelper.Info($"ZCSendTask入库任务下发没找到接驳位", "Mes任务下发"); |
| | | throw new Exception($"ZCSendTask入库任务下发没找到接驳位"); |
| | | } |
| | | |
| | | if (end!=null) |
| | | { |
| | | LogHelper.Info($"ZCSendTask入库任务下发寻找到终点{end.S_CODE}", "Mes任务下发"); |
| | |
| | | } |
| | | } |
| | | } |
| | | if (connection == "") |
| | | { |
| | | LogHelper.Info($"ZCSendTask入库任务下发没找到接驳位", "Mes任务下发"); |
| | | throw new Exception($"ZCSendTask入库任务下发没找到接驳位"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"ZCSendTask入库任务下发寻找接驳位失败", "Mes任务下发"); |
| | | throw new Exception($"ZCSendTask入库任务下发寻找接驳位失败"); |
| | | LogHelper.Info($"ZCSendTask入库任务下发寻找接驳位接口失败", "Mes任务下发"); |
| | | throw new Exception($"ZCSendTask入库任务下发寻找接驳位接口失败"); |
| | | } |
| | | |
| | | |
| | |
| | | var EXPIRED_TIME = model.EXPIRED_TIME.ToString(); |
| | | if (EXPIRED_TIME == "0001/1/1 0:00:00") |
| | | { |
| | | rel.expireTime = model.SHELF_LIFE_TIME.AddHours(model.EXPIRED_REP); |
| | | rel.expireTime = model.PRODUCE_TIME.AddHours(model.EXPIRED_REP); |
| | | LogHelper.Info($"失效时间为0001/1/1 0:00:00,修改为:{rel.expireTime}", "Mes任务下发"); |
| | | } |
| | | else |
| | |
| | | var SHELF_LIFE_TIME = model.SHELF_LIFE_TIME.ToString(); |
| | | if (SHELF_LIFE_TIME == "0001/1/1 0:00:00") |
| | | { |
| | | rel.takeEffectTime = model.SHELF_LIFE_TIME.AddHours(-model.SHELF_REP); |
| | | rel.takeEffectTime = model.PRODUCE_TIME.AddHours(-model.SHELF_REP); |
| | | LogHelper.Info($"生效时间为0001/1/1 0:00:00,修改为:{rel.takeEffectTime}", "Mes任务下发"); |
| | | } |
| | | else |
| | |
| | | |
| | | |
| | | |
| | | if (workFlow.FLOWCODE == "9") |
| | | if (workFlow.FLOWCODE == "9" || workFlow.FLOWCODE == "4") |
| | | { |
| | | if (TOOLSTYPE == "85" || TOOLSTYPE == "95") |
| | | { |
| | |
| | | else |
| | | { |
| | | //根据制品编号寻找立库区对应物料托盘 |
| | | start = LocationHelper.FindStartcolByLoclistAndItem(strrtList, model.PROD_NO, workFlow.STARTAREA, workFlow.ROADWAY); |
| | | start = LocationHelper.FindStartcolByLoclistAndItem(strrtList, model.PROD_NO, workFlow.STARTAREA, workFlow.ROADWAY,workFlow.CONNECTION); |
| | | if (start == null) |
| | | { |
| | | strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA); |