| | |
| | | { |
| | | public ObjectId _id { get; set; } |
| | | public string trayCode { get; set; } |
| | | public string isUse { get; set; } = "0"; |
| | | public DateTime createTime { get; set; } |
| | | } |
| | | |
| | |
| | | { |
| | | //通过托盘号调用wms接口获取物料信息 |
| | | |
| | | CMMLog.Info("SendErpTaskInfoTableDG 表 开始:" + startBit); |
| | | CMMLog.Info("SendErpTaskInfoTableDG 表查询 开始:" + startBit); |
| | | var url = hao.WebUrl + "GlmTrayItemSet"; |
| | | var erpInfo = MongoDBSingleton.Instance.FindOne<SendErpTaskInfoTableDG>(Query.EQ("Bit", startBit), "SendErpTaskInfoTableDG"); |
| | | if (erpInfo == null) |
| | |
| | | var wmsResponse = JsonConvert.DeserializeObject<LKInfoResModel>(feedback); |
| | | if (wmsResponse.Success == true) |
| | | { |
| | | materiCode = wmsResponse.Data.CN_S_MATERI_CODE; |
| | | materiCode = wmsResponse.Data.CN_S_ITEM_CODE; |
| | | lotCode = wmsResponse.Data.CN_S_LOT_NO; |
| | | totalWeight = wmsResponse.Data.CN_N_WEIGHT; |
| | | productTime = wmsResponse.Data.CN_S_Data; |
| | | totalWeight = (int)wmsResponse.Data.CN_F_QUANTITY * wmsResponse.Data.CN_N_CONUT; |
| | | productTime = wmsResponse.Data.CN_T_PRODUCTION_S; |
| | | } |
| | | } |
| | | |
| | | CMMLog.Info("SendErpTaskInfoTableDG 表 1"); |
| | | if (!string.IsNullOrEmpty(materiCode) && !string.IsNullOrEmpty(lotCode) && totalWeight != 0 && !string.IsNullOrEmpty(productTime)) |
| | | { |
| | | MongoDBSingleton.Instance.Insert<SendErpTaskInfoTableDG>(new SendErpTaskInfoTableDG |
| | | { |
| | | Bit = startBit, |
| | |
| | | dateTime = DateTime.Now.AddHours(8), |
| | | //变更注释 |
| | | mesSucess = "0" |
| | | }, "SendErpTaskInfoTable"); |
| | | }, "SendErpTaskInfoTableDG"); |
| | | } |
| | | else |
| | | { |
| | | CMMLog.Info($"SendErpTaskInfoTableDG:获取数据错误,materiCode:{materiCode},lotCode:{lotCode},totalWeight:{totalWeight},productTime:{productTime}"); |
| | | } |
| | | |
| | | CMMLog.Info("插入SendErpTaskInfoTable 表 结束"); |
| | | } |
| | | |
| | | CMMLog.Info("插入SendErpTaskInfoTableDG表 结束"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | CMMLog.Info("插入SendErpTaskInfoTable 表 err:" + ex.Message); |
| | | CMMLog.Info("插入SendErpTaskInfoTableDG表 err:" + ex.Message); |
| | | } |
| | | } |
| | | |
| | |
| | | if (timeReq.ProductionDate1.Length == 8) productTime = productTime.Substring(0, 4) + "-" + productTime.Substring(4, 2) + "-" + productTime.Substring(6, 2); |
| | | |
| | | CMMLog.Info("time 05"); |
| | | var timeCuo = MongoDBSingleton.Instance.FindOne<TimeCuoInfoCom>(Query.EQ("packingMachineNumber", timeReq.packingMachineNumber_1), "TimeCuoInfoCom"); |
| | | var timeCuo = MongoDBSingleton.Instance.FindOne<TimeCuoInfoCom>(Query.EQ("timeReq", timeReq.timeStamp), "TimeCuoInfoCom"); |
| | | if (timeCuo == null) |
| | | { |
| | | MongoDBSingleton.Instance.Insert<TimeCuoInfoCom>(new TimeCuoInfoCom |
| | |
| | | } |
| | | else |
| | | { |
| | | var query = Query.EQ("packingMachineNumber", timeReq.packingMachineNumber_1); |
| | | var query = Query.EQ("timeReq", timeReq.timeStamp); |
| | | //UpdateBuilder update = Update.Set("isFold", timeReq.isFold).Set("realWeight", timeReq.realWeight_1 / 100).Set("totalWeight", timeReq.totalWeight) |
| | | // .Set("batchNumber", timeReq.batchNumber).Set("productModel", timeReq.productModel).Set("needWeight", timeReq.needWeight_1).Set("bagNumber", timeReq.bagNumber_1).Set("isNeedTray", timeReq.isNeedTray) |
| | | // .Set("totalCount", timeReq.totalCount).Set("timeStamp", timeReq.timeStamp).Set("photoURL", timeReq.photoURL).Set("ProductionDate", productTime) |
| | |
| | | UpdateBuilder update = Update.Set("isFold", timeReq.isFold).Set("realWeight", timeReq.realWeight_1 / 100).Set("totalWeight", timeReq.totalWeight) |
| | | .Set("batchNumber", timeReq.batchNumber).Set("productModel", timeReq.productModel).Set("needWeight", timeReq.needWeight_1 / 100) |
| | | .Set("bagNumber_1", timeReq.bagNumber_1).Set("bagNumber_2", timeReq.bagNumber_2).Set("bagNumber_3", timeReq.bagNumber_3).Set("bagNumber_4", timeReq.bagNumber_4) |
| | | .Set("isNeedTray", timeReq.isNeedTray) |
| | | .Set("isNeedTray", timeReq.isNeedTray).Set("packingMachineNumber", timeReq.packingMachineNumber_1) |
| | | .Set("totalCount", timeReq.totalCount).Set("timeStamp", timeReq.timeStamp).Set("photoURL", timeReq.photoURL).Set("ProductionDate", productTime) |
| | | .Set("materialCode", timeReq.materialCode).Set("materialName", timeReq.materialName).Set("measurementUnit", timeReq.measurementUnit) |
| | | .Set("createOrganization", timeReq.createOrganization).Set("count", timeReq.count).Set("WarehouseCode", timeReq.WarehouseCode) |
| | |
| | | { |
| | | CMMLog.Info("DGInWarehouse:" + JsonConvert.SerializeObject(locInfo)); |
| | | string wmstaskno = ""; |
| | | string trayCode = ""; |
| | | bool req = WMSHelper.WMSIn(locCode, "电钴打包下线", ref wmstaskno, ref trayCode, "", "CKHJ"); |
| | | string trayCode = locInfo.trayCode; |
| | | bool req = WMSHelper.WMSIn(locCode, "电钴打包下线", ref wmstaskno, ref trayCode, "", "DGCK"); |
| | | if (req) |
| | | { |
| | | CMMLog.Info($"电钴接驳位入立库流程:WMS生成任务成功!"); |
| | |
| | | host = plc.ip, |
| | | port = plc.port |
| | | }); |
| | | CMMLog.Debug($"包装机满托下线:读取通道号为:{plc.readAddr},ip:{plc.ip},端口:{plc.port}"); |
| | | CMMLog.Debug($"包装机满托下线值为:{result.result[0]}"); |
| | | if (result != null && result.errCode == 0) |
| | | { |
| | | if (result.result[0] == 1) |
| | | { |
| | | //成品下线任务生成到接驳平台 |
| | | string traycode = DateTime.Now.ToString("yyyy-MM-dd").Replace("-", ""); |
| | | string traycode = ""; |
| | | var DGinfoList = MongoDBSingleton.Instance.FindAll<DGPackingLineFullModel>("DGPackingLineFullModel"); |
| | | if (DGinfoList.Count > 0) |
| | | { |
| | | var DGinfo = DGinfoList.Where(a => a.isUse == "0").OrderBy(a => a.createTime).First(); |
| | | //将数据插入中间表 |
| | | traycode = DGinfo.trayCode; |
| | | } |
| | | //可生成任务 |
| | | CMMLog.Debug($"包装机满托下线:获取托盘号:{traycode}"); |
| | | if (!string.IsNullOrEmpty(traycode)) |
| | | { |
| | | var CBInfo = Settings.GetDGConnectingbitsList().Where(a => a.enable == 1).ToList(); |
| | | if (CBInfo != null) |
| | | { |
| | | //string timeStamp = timecuo.data.First().timeStamp.ToString(); |
| | | string timeStamp = ""; |
| | | foreach (var a in CBInfo) |
| | | { |
| | | if (!string.IsNullOrEmpty(a.locCode)) |
| | |
| | | if (amsResult.success) |
| | | { |
| | | CMMLog.Debug($"包装机满托下线:AMS调用API成功!"); |
| | | MongoDBSingleton.Instance.Update<DGConnectingBits>(Query.EQ("Bit", a.locCode), Update.Set("trayCode", traycode).Set("timeCuo", timeStamp), UpdateFlags.None); |
| | | |
| | | MongoDBSingleton.Instance.Update<DGConnectingBits>(Query.EQ("Bit", a.locCode), Update.Set("trayCode", traycode), UpdateFlags.None); |
| | | MongoDBSingleton.Instance.Update<DGPackingLineFullModel>(Query.EQ("trayCode", traycode), Update.Set("isUse", "1"), UpdateFlags.None); |
| | | break; |
| | | } |
| | | else CMMLog.Debug($"包装机满托下线:AMS调用API失败,开始重新调用!"); |
| | |
| | | CMMLog.Debug($"包装机满托下线:AMS调用API成功!"); |
| | | //打包下线任务生成成功,向中间表插入数据 |
| | | |
| | | MongoDBSingleton.Instance.Insert<DGConnectingBits>(new DGConnectingBits { Bit = a.locCode, trayCode = traycode, state = "0", timeCuo = timeStamp }); |
| | | MongoDBSingleton.Instance.Insert<DGConnectingBits>(new DGConnectingBits { Bit = a.locCode, trayCode = traycode, state = "0" }); |
| | | MongoDBSingleton.Instance.Update<DGPackingLineFullModel>(Query.EQ("trayCode", traycode), Update.Set("isUse", "1"), UpdateFlags.None); |
| | | break; |
| | | } |
| | | else CMMLog.Debug($"包装机满托下线:AMS调用API失败,开始重新调用!"); |
| | |
| | | } |
| | | } |
| | | else CMMLog.Debug("打包下线口接驳位未配置"); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | /// <summary> |
| | | /// 物料编码 |
| | | /// </summary> |
| | | public string CN_S_MATERI_CODE { get; set; } |
| | | public string CN_S_ITEM_CODE { get; set; } |
| | | /// <summary> |
| | | /// 桶重量(单个桶重量*桶数量) |
| | | /// 桶重量 |
| | | /// </summary> |
| | | public int CN_N_WEIGHT { get; set; } |
| | | public float CN_F_QUANTITY { get; set; } |
| | | /// <summary> |
| | | /// 桶数量 |
| | | /// </summary> |
| | | public int CN_N_CONUT { get; set; } |
| | | /// <summary> |
| | | /// 生产日期 |
| | | /// </summary> |
| | | public string CN_S_Data { get; set; } |
| | | public string CN_T_PRODUCTION_S { get; set; } |
| | | |
| | | public int CN_S_EXT8 { get; set; } |
| | | } |
| | |
| | | { |
| | | MongoDBSingleton.Instance.Update<ConnectingBits>(Query.EQ("Bit", mst.CN_S_START_BIT), Update.Set("trayCode", "").Set("state", "0"), UpdateFlags.None); |
| | | } |
| | | if (mst.CN_S_BUSS_TYPE == "电钴缓存架入立库") |
| | | { |
| | | MongoDBSingleton.Instance.Update<DGConnectingBits>(Query.EQ("Bit", mst.CN_S_START_BIT), Update.Set("trayCode", "").Set("state", "0"), UpdateFlags.None); |
| | | MongoDBSingleton.Instance.Remove<DGPackingLineFullModel>(Query.EQ("trayCode", mst.CN_S_BATCH_NO), RemoveFlags.None); |
| | | } |
| | | //if (mst.CN_S_BUSS_TYPE == "3楼缓存架入叠托") WMSHelper.ExecuteState(mst.CN_S_SOURCE_NO, action.CN_N_ACTION_CODE); |
| | | if (mst.CN_S_BUSS_TYPE == "3楼打包下线") |
| | | { |
| | | //打包下线取货完成,将数据写入中间表 |
| | | } |
| | | if (mst.CN_S_BUSS_TYPE == "电钴缓存架入立库") |
| | | { |
| | | MongoDBSingleton.Instance.Remove<DGPackingLineFullModel>(Query.EQ("trayCode", mst.CN_S_BATCH_NO),RemoveFlags.None); |
| | | } |
| | | } |
| | | if (action.CN_N_ACTION_CODE == 6) |
| | |
| | | MongoDBSingleton.Instance.Update<ConnectingBits>(Query.EQ("Bit", mst.CN_S_END_BIT), Update.Set("state", "1"), UpdateFlags.None); |
| | | |
| | | } |
| | | if (mst.CN_S_BUSS_TYPE == "包装机满托下线") |
| | | { |
| | | MongoDBSingleton.Instance.Update<DGConnectingBits>(Query.EQ("Bit", mst.CN_S_END_BIT), Update.Set("state", "1"), UpdateFlags.None); |
| | | |
| | | } |
| | | |
| | | if (mst.CN_S_BUSS_TYPE == "3楼成品出库") |
| | | { |
| | | //3楼成品出库收到6之后,终点货位数量减1,(注:6信号会发多次) |
| | |
| | | /// 货位状态 0 无货 1 有货 |
| | | /// </summary> |
| | | public string state { get; set; } |
| | | /// <summary> |
| | | /// 时间戳 |
| | | /// </summary> |
| | | public string timeCuo { get; set; } |
| | | /// <summary> |
| | | /// 二段任务的终点货位 |
| | | /// </summary> |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region SGConnectingbits |
| | | private static string _SGConnectingbits = ""; |
| | | private static string SGConnectingbitsList |
| | | #region DGConnectingbits |
| | | private static string _DGConnectingbits = ""; |
| | | private static string DGConnectingbitsList |
| | | { |
| | | get |
| | | { |
| | | if (_SGConnectingbits == "") |
| | | if (_DGConnectingbits == "") |
| | | { |
| | | _SGConnectingbits = XmlHelper.GetElementValue("SGConnectingbits"); |
| | | _DGConnectingbits = XmlHelper.GetElementValue("DGConnectingbits"); |
| | | } |
| | | return _SGConnectingbits; |
| | | return _DGConnectingbits; |
| | | } |
| | | } |
| | | |
| | | private static List<SGConnectingbitsModel> SGconnectingbits = new List<SGConnectingbitsModel>(); |
| | | public static List<SGConnectingbitsModel> GetDGConnectingbitsList() |
| | | private static List<DGConnectingbitsModel> DGconnectingbits = new List<DGConnectingbitsModel>(); |
| | | public static List<DGConnectingbitsModel> GetDGConnectingbitsList() |
| | | { |
| | | if (SGconnectingbits.Count == 0 && SGConnectingbitsList != "") |
| | | if (DGconnectingbits.Count == 0 && DGConnectingbitsList != "") |
| | | { |
| | | SGconnectingbits = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SGConnectingbitsModel>>(SGConnectingbitsList); |
| | | DGconnectingbits = Newtonsoft.Json.JsonConvert.DeserializeObject<List<DGConnectingbitsModel>>(DGConnectingbitsList); |
| | | } |
| | | return SGconnectingbits; |
| | | return DGconnectingbits; |
| | | } |
| | | |
| | | public class SGConnectingbitsModel |
| | | public class DGConnectingbitsModel |
| | | { |
| | | public string locCode { get; set; } |
| | | public int[] agvSite { get; set; } |
| | |
| | | CMMLog.Info($"WMSIn-{startBit}:ItemCode不为空,获取信息!111!"); |
| | | CMMLog.Info($"{ItemCode}"); |
| | | |
| | | if (ItemCode == "time" || ItemCode == "拆盘变更" || ItemCode == "打包下线") |
| | | if (ItemCode == "电钴打包下线") |
| | | { |
| | | model.trayCode = trayCode; |
| | | model.endArea = endArea; |
| | | //将数据插入中间表 |
| | | ERPService.senderpTaskDG(startBit, trayCode); |
| | | } |
| | | else if (ItemCode == "time" || ItemCode == "拆盘变更" || ItemCode == "打包下线") |
| | | { |
| | | CMMLog.Info($"{trayCode}"); |
| | | var time = MongoDBSingleton.Instance.FindOne<TimeCuoInfoCom>(Query.EQ("timeStamp", int.Parse(trayCode)), "TimeCuoInfoCom"); |
| | |
| | | }); |
| | | //将数据插入中间表 |
| | | ERPService.senderpTask(time, startBit); |
| | | } |
| | | else if (ItemCode == "电钴打包下线") |
| | | { |
| | | var DGinfoList = MongoDBSingleton.Instance.FindAll<DGPackingLineFullModel>("DGPackingLineFullModel"); |
| | | if(DGinfoList.Count > 0){ |
| | | var DGinfo = DGinfoList.OrderBy(a => a.createTime).First(); |
| | | model.trayCode = DGinfo.trayCode; |
| | | //将数据插入中间表 |
| | | ERPService.senderpTaskDG(startBit, DGinfo.trayCode); |
| | | } |
| | | } |
| | | } |
| | | else |
| | |
| | | 参数说明: |
| | | locCode:货位编码 |
| | | --> |
| | | <SGConnectingbits> |
| | | <DGConnectingbits> |
| | | <![CDATA[ |
| | | [ |
| | | {"locCode":"1","agvSite":[],"enable":1}, |
| | | {"locCode":"2","agvSite":[],"enable":1} |
| | | ]]]> |
| | | </SGConnectingbits> |
| | | </DGConnectingbits> |
| | | |
| | | <!-- |
| | | 第三方接口URL配置项 |