| | |
| | | { |
| | | foreach (var item in itemInfos) |
| | | { |
| | | // 将MES的物料状态转化成WMS可识别的物料状态 |
| | | if (item.jdge == "" || item.jdge == null) |
| | | { |
| | | item.jdge = "OK"; |
| | | } |
| | | else if(item.jdge != "OK") |
| | | { |
| | | item.jdge = "HOLD"; |
| | | } |
| | | |
| | | // 计算生效时间、失效时间 |
| | | var overage = WMSHelper.getOverage(item.bc_entried); |
| | | if (overage != null) |
| | | { |
| | |
| | | S_END_AREA = endLoc.S_AREA_CODE, |
| | | S_TYPE = model.taskType, |
| | | S_OP_DEF_CODE = model.taskNo, |
| | | S_OP_DEF_NAME = "半制品/余料/空托下发入库任务", |
| | | N_PRIORITY = model.priority, |
| | | T_START_TIME = DateTime.Now, |
| | | }; |
| | |
| | | S_END_AREA = endLoc.S_AREA_CODE, |
| | | S_TYPE = "空托出库任务", |
| | | S_OP_DEF_CODE = model.taskNo, |
| | | S_OP_DEF_NAME = "空托出库任务", |
| | | N_PRIORITY = model.priority, |
| | | T_START_TIME = DateTime.Now, |
| | | }; |
| | |
| | | else |
| | | { |
| | | result.ResultCode = 1; |
| | | result.ResultMsg = "库内没有查到此物料"; |
| | | result.ResultMsg = "库内没有满足条件的物料"; |
| | | return result; |
| | | } |
| | | |
| | |
| | | S_END_AREA = endLoc.S_AREA_CODE, |
| | | S_TYPE = "成型机叫料出库任务", |
| | | S_OP_DEF_CODE = model.taskNo, |
| | | S_OP_DEF_NAME = "成型机叫料出库任务", |
| | | N_PRIORITY = model.priority, |
| | | T_START_TIME = DateTime.Now, |
| | | }; |
| | |
| | | { |
| | | foreach (var item in model.itemInfo) |
| | | { |
| | | // 将MES的物料状态转化成WMS可识别的物料状态 |
| | | if (item.jdge == "" || item.jdge == null) |
| | | { |
| | | item.jdge = "OK"; |
| | | } |
| | | else if (item.jdge != "OK") |
| | | { |
| | | item.jdge = "HOLD"; |
| | | } |
| | | |
| | | var overage = WMSHelper.getOverage(item.bc_entried); |
| | | if (overage != null) |
| | | if (overage != null && overage.OVERAGE != 0) |
| | | { |
| | | DateTime txndate = DateTime.Parse(item.txndate); |
| | | DateTime minTime = txndate.AddHours(overage.MINHOUR); |
| | |
| | | S_END_AREA = endLoc.S_AREA_CODE, |
| | | S_TYPE = "人工入库任务", |
| | | S_OP_DEF_CODE = model.taskNo, |
| | | S_OP_DEF_NAME = "人工入库任务", |
| | | N_PRIORITY = model.priority, |
| | | T_START_TIME = DateTime.Now, |
| | | }; |
| | |
| | | S_END_AREA = endLoc.S_AREA_CODE, |
| | | S_TYPE = "人工出库任务", |
| | | S_OP_DEF_CODE = model.taskNo, |
| | | S_OP_DEF_NAME = "人工出库任务", |
| | | N_PRIORITY = model.priority, |
| | | T_START_TIME = DateTime.Now, |
| | | }; |
| | |
| | | else |
| | | { |
| | | result.ResultCode = 1; |
| | | result.ResultMsg = "库内没有此物料"; |
| | | result.ResultMsg = "库内没有满足条件的物料"; |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | |
| | | S_END_AREA = endLoc.S_AREA_CODE, |
| | | S_TYPE = "母拖入库任务", |
| | | S_OP_DEF_CODE = taskNo, |
| | | S_OP_DEF_NAME = "母拖入库任务", |
| | | N_PRIORITY = 1, |
| | | T_START_TIME = DateTime.Now, |
| | | }; |
| | |
| | | ReturnResult result = new ReturnResult(); |
| | | try |
| | | { |
| | | var mst = WMSHelper.GetWmsTask(wmsTaskNo); |
| | | if (mst != null && mst.N_B_STATE < 2) |
| | | var cst = WCSHelper.GetTaskByStart(loc); |
| | | if (cst == null) |
| | | { |
| | | Location startLoc = LocationHelper.GetLoc(loc); |
| | | Location endLoc = LocationHelper.GetLoc(Settings.baseTrayInBufferLoc); |
| | | if (!(endLoc != null && endLoc.N_CURRENT_NUM == 0)) |
| | | if (!(endLoc != null && endLoc.N_CURRENT_NUM == 0)) |
| | | { |
| | | endLoc = WMSHelper.GetInstockEndLoc(0, loc, 2); |
| | | } |
| | | } |
| | | |
| | | if (endLoc != null && startLoc != null) |
| | | { |
| | |
| | | // 创建一段入库任务 |
| | | WCSTask wcsTask = new WCSTask() |
| | | { |
| | | S_OP_NAME = mst.S_OP_DEF_NAME, |
| | | S_OP_CODE = mst.S_CODE, |
| | | S_OP_CODE = wmsTaskNo, |
| | | S_CODE = WCSHelper.GenerateTaskNo(), |
| | | S_CNTR_CODE = trayCode, |
| | | S_TYPE = "母拖入库任务", |
| | |
| | | /// <param name="loc"></param> |
| | | /// <param name="taskNo"></param> |
| | | /// <returns></returns> |
| | | public static ReturnResult baseTrayOutStock(string loc ,string taskNo) |
| | | public static ReturnResult baseTrayOutStock(string loc ,string taskNo ,int exclude = 1) |
| | | { |
| | | LogHelper.Info("【母拖出库任务】开始下发母拖出库任务", "WMS"); |
| | | ReturnResult result = new ReturnResult(); |
| | | try |
| | | { |
| | | Location startLoc = WMSHelper.GetEmptyTrayStartLoc(0, 1); |
| | | Location startLoc = WMSHelper.GetEmptyTrayStartLoc(0, exclude); |
| | | Location endLoc = LocationHelper.GetLoc(loc); |
| | | var agvJBLoc = Settings.getAgvJBLoc(loc); |
| | | |
| | |
| | | S_END_AREA = endLoc.S_AREA_CODE, |
| | | S_TYPE = "母拖出库任务", |
| | | S_OP_DEF_CODE = taskNo, |
| | | S_OP_DEF_NAME = "母拖出库任务", |
| | | N_PRIORITY = 1, |
| | | T_START_TIME = DateTime.Now, |
| | | }; |
| | |
| | | ReturnResult result = new ReturnResult(); |
| | | try |
| | | { |
| | | var mst = WMSHelper.GetWmsTask(wmsTaskNo); |
| | | if (mst != null && mst.N_B_STATE < 2) |
| | | var cst = WCSHelper.GetTaskByEnd(loc); |
| | | if (cst == null) |
| | | { |
| | | Location startLoc = WMSHelper.GetEmptyTrayStartLoc(0,0); |
| | | Location startLoc = WMSHelper.GetEmptyTrayStartLoc(0, 0); |
| | | Location endLoc = LocationHelper.GetLoc(loc); |
| | | |
| | | if (startLoc != null) |
| | |
| | | // 创建入库任务 |
| | | WCSTask wcsTask = new WCSTask() |
| | | { |
| | | S_OP_NAME = mst.S_OP_DEF_NAME, |
| | | S_OP_CODE = mst.S_CODE, |
| | | S_OP_CODE = wmsTaskNo, |
| | | S_CODE = WCSHelper.GenerateTaskNo(), |
| | | S_CNTR_CODE = trayCode, |
| | | S_TYPE = "母拖出库任务", |
| | |
| | | BOM3 = matl.bom3, |
| | | S_FOVRAGE = matl.fovrage, |
| | | S_JDGE = matl.jdge, |
| | | S_WMS_JDGE = matl.WMS_jdge, |
| | | EFFECTIVE_TIME = matl.effective_time, |
| | | EXPIRATION_TIME = matl.expiration_time, |
| | | LAST_MODIFY_TIME = matl.last_modify_time |
| | | }; |
| | | itemBarcodeInfos.Add(itemBarcodeInfo); |
| | |
| | | if (overages != null && overages.Count > 0) |
| | | { |
| | | List<Overage> overageList = new List<Overage>(); |
| | | |
| | | foreach (var item in overages) |
| | | { |
| | | Overage overage = new Overage |
| | |
| | | MCNGRP = item.mcngrp, |
| | | ITEMPATT = item.itempatt, |
| | | OVERAGE = item.overage, |
| | | MINHOUR = int.Parse(item.minhour.ToString()) , |
| | | MINHOUR = float.Parse(item.minhour.ToString()), |
| | | FLAG_STS = item.flag_sts, |
| | | RECID = item.recid, |
| | | }; |
| | | overageList.Add(overage); |
| | | } |
| | |
| | | if (!bo) |
| | | { |
| | | responseResult.ResultCode = 1; |
| | | responseResult.ResultMsg = "同步物料状态信息失败"; |
| | | responseResult.ResultMsg = "记录数据同步时间失败"; |
| | | } |
| | | return responseResult; |
| | | } |
| | |
| | | { |
| | | ReturnResult responseResult = new ReturnResult(); |
| | | var synDataTime = WMSHelper.getLastDataSynTime(recordTable); |
| | | responseResult.data = synDataTime; |
| | | if (synDataTime != null) |
| | | { |
| | | Dictionary<string, string> map = new Dictionary<string, string>(); |
| | | map.Add("S_SYN_TIME", synDataTime.S_SYN_TIME); |
| | | map.Add("RECORD_TABLE", synDataTime.RECORD_TABLE); |
| | | responseResult.data = map; |
| | | } |
| | | return responseResult; |
| | | } |
| | | |