人工出库,人工入库,人工移库,PDA扫码确认外协物料已被取走接口
| | |
| | | let loadingInstance; |
| | | let loadingStatus = false; |
| | | if (process.env.NODE_ENV == 'development') { |
| | | axios.defaults.baseURL = 'http://192.168.12.101:8098/'; |
| | | axios.defaults.baseURL = 'http://127.0.0.1:8098/'; |
| | | } |
| | | else if (process.env.NODE_ENV == 'debug') { |
| | | axios.defaults.baseURL = 'http://192.168.12.101:8098/'; |
| | |
| | | // this.$Message.success('ç¹å»äºæé®'); |
| | | // } |
| | | // }); |
| | | |
| | | this.buttons.forEach(x => { |
| | | if(x.value == 'Add') |
| | | { |
| | | x.name = '人工å
¥åº' |
| | | } |
| | | }); |
| | | this.buttons.forEach(x => { |
| | | if(x.value == 'Update') |
| | | { |
| | | x.name = '人工移åº'; |
| | | } |
| | | }); |
| | | this.buttons.forEach(x => { |
| | | if(x.value == 'Delete') |
| | | { |
| | | x.name = '人工åºåº' |
| | | } |
| | | }); |
| | | //示ä¾ï¼è®¾ç½®ä¿®æ¹æ°å»ºãç¼è¾å¼¹åºæ¡å段æ ç¾çé¿åº¦ |
| | | // this.boxOptions.labelWidth = 150; |
| | | }, |
| | |
| | | sortName: "ID" |
| | | }); |
| | | const editFormFields = ref({"TypeId":"","Description":"","a":"","b":"","c":"","d":"","e":"","f":"","g":"","h":"","skip_01":"","skip_02":"","skip_03":"","skip_04":"","skip_05":"","skip_06":"","skip_07":"","skip_08":"","skip_09":"","skip_10":"","skip_11":"","skip_12":"","skip_13":"","skip_14":"","skip_15":""}); |
| | | const editFormOptions = ref([[{"title":"","required":true,"field":"TypeId","type":"text"}, |
| | | const editFormOptions = ref([[{"title":"TypeId","required":true,"field":"TypeId","type":"text"}, |
| | | {"title":"å¾å·","required":true,"field":"Description","type":"text"}], |
| | | [{"title":"","required":true,"field":"a","type":"text"}, |
| | | {"title":"","required":true,"field":"b","type":"text"}], |
| | | [{"title":"","required":true,"field":"c","type":"text"}, |
| | | {"title":"","required":true,"field":"d","type":"text"}], |
| | | [{"title":"","required":true,"field":"e","type":"text"}, |
| | | {"title":"","required":true,"field":"f","type":"text"}], |
| | | [{"title":"","required":true,"field":"g","type":"text"}, |
| | | {"title":"","required":true,"field":"h","type":"text"}], |
| | | [{"title":"","field":"skip_01","type":"text"}, |
| | | {"title":"","field":"skip_02","type":"text"}], |
| | | [{"title":"","field":"skip_03","type":"text"}, |
| | | {"title":"","field":"skip_04","type":"text"}], |
| | | [{"title":"","field":"skip_05","type":"text"}, |
| | | {"title":"","field":"skip_06","type":"text"}], |
| | | [{"title":"","field":"skip_07","type":"text"}, |
| | | {"title":"","field":"skip_08","type":"text"}], |
| | | [{"title":"","field":"skip_09","type":"text"}, |
| | | {"title":"","field":"skip_10","type":"text"}], |
| | | [{"title":"","field":"skip_11","type":"text"}, |
| | | {"title":"","field":"skip_12","type":"text"}], |
| | | [{"title":"","field":"skip_13","type":"text"}, |
| | | {"title":"","field":"skip_14","type":"text"}], |
| | | [{"title":"","field":"skip_15","type":"text"}]]); |
| | | [{"title":"a","required":true,"field":"a","type":"text"}, |
| | | {"title":"b","required":true,"field":"b","type":"text"}], |
| | | [{"title":"c","required":true,"field":"c","type":"text"}, |
| | | {"title":"d","required":true,"field":"d","type":"text"}], |
| | | [{"title":"e","required":true,"field":"e","type":"text"}, |
| | | {"title":"f","required":true,"field":"f","type":"text"}], |
| | | [{"title":"g","required":true,"field":"g","type":"text"}, |
| | | {"title":"h","required":true,"field":"h","type":"text"}], |
| | | [{"title":"skip_01","field":"skip_01","type":"text"}, |
| | | {"title":"skip_02","field":"skip_02","type":"text"}, |
| | | {"title":"skip_03","field":"skip_03","type":"text"}], |
| | | [{"title":"skip_04","field":"skip_04","type":"text"}, |
| | | {"title":"skip_05","field":"skip_05","type":"text"}, |
| | | {"title":"skip_06","field":"skip_06","type":"text"}], |
| | | [{"title":"skip_07","field":"skip_07","type":"text"}, |
| | | {"title":"skip_08","field":"skip_08","type":"text"}, |
| | | {"title":"skip_09","field":"skip_09","type":"text"}], |
| | | [{"title":"skip_10","field":"skip_10","type":"text"}, |
| | | {"title":"skip_11","field":"skip_11","type":"text"}, |
| | | {"title":"skip_12","field":"skip_12","type":"text"}], |
| | | [{"title":"skip_13","field":"skip_13","type":"text"}, |
| | | {"title":"skip_14","field":"skip_14","type":"text"}, |
| | | {"title":"skip_15","field":"skip_15","type":"text"}]]); |
| | | const searchFormFields = ref({"TypeId":"","Description":""}); |
| | | const searchFormOptions = ref([[{"title":"å¾å·","field":"Description","type":"like"},{"title":"","field":"TypeId","type":"like"}]]); |
| | | const columns = ref([{field:'ID',title:'ID',type:'int',width:110,hidden:true,readonly:true,require:true,align:'left'}, |
| | |
| | | url: "/dt_inventory/", |
| | | sortName: "ID" |
| | | }); |
| | | const editFormFields = ref({}); |
| | | const editFormOptions = ref([]); |
| | | const editFormFields = ref({"stationCode":"","SN":""}); |
| | | const editFormOptions = ref([ |
| | | [{"title":"ç¼åæ¶ç¼å·","required":true,"field":"stationCode"}],//,"disabled": true |
| | | [{"title":"车轮SNå·","required":true,"field":"SN"}], |
| | | ]); |
| | | const searchFormFields = ref({"SN":"","Name":"","HearthNumber":"","HeatNumber":"","BilletNumber":"","remark":""}); |
| | | const searchFormOptions = ref([ |
| | | [{"title":"车轮SNå·","field":"SN","type":"like"},{"title":"è´§ä½ç¼å·","field":"stationCode","type":"like"},{"title":"产ååç§°","field":"Name","type":"like"}], |
| | |
| | | using WIDESEA_Comm.LogInfo; |
| | | using WIDESEA_Core.ManageUser; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; |
| | | using WIDESEA_Core.EFDbContext; |
| | | using WIDESEA_WMS.Repositories; |
| | | using System.Collections.Generic; |
| | | using System.Threading.Tasks; |
| | | using static WIDESEA_Comm.MES_Info.BasicSN; |
| | | using System.Collections; |
| | | using static FreeSql.Internal.GlobalFilter; |
| | | using WIDESEA_Comm.MES_Info.Request; |
| | | using System.Xml.Linq; |
| | | using Newtonsoft.Json; |
| | | using Confluent.Kafka; |
| | | using WIDESEA_WMS.Common; |
| | | using WIDESEA_Comm.MES_Info; |
| | | using System.Reflection; |
| | | using static System.Collections.Specialized.BitVector32; |
| | | |
| | | namespace WIDESEA_WMS.Services |
| | | { |
| | |
| | | //base.Init(dbRepository); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// æ·»å åºå |
| | | /// </summary> |
| | | /// <param name="saveDataModel"></param> |
| | | /// <returns></returns> |
| | | public override WebResponseContent Add(SaveModel saveDataModel) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | VOLContext context = new VOLContext(); |
| | | IVV_Mes_WorkinfoRepository workinfoRepository = new VV_Mes_WorkinfoRepository(context); |
| | | Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(context); |
| | | var stationCode = saveDataModel.MainData["stationCode"].ToString(); |
| | | try |
| | | { |
| | | if (string.IsNullOrEmpty(stationCode)) throw new Exception($"ç¼åæ¶ç¼å·ä¸è½ä¸ºç©º!"); |
| | | if (!stationCode.Contains("B") && !stationCode.Contains("C") && !stationCode.Contains("D")) throw new Exception($"ç¼åæ¶ç±»åæè¯¯!"); |
| | | var station = stationinfoRepository.Find(x => x.stationCode == stationCode).FirstOrDefault(); |
| | | if (station == null) throw new Exception($"æªæ¾å°è´§ä½{stationCode}"); |
| | | var bindSNs = saveDataModel.MainData["SN"].ToString().Split(","); |
| | | var SNS = bindSNs.GroupBy(x => x).Where(x => x.Count() > 1).Select(x => x.Key); |
| | | foreach (var SN in SNS) |
| | | { |
| | | throw new Exception($"éå¤çSNå·{SN}"); |
| | | } |
| | | List<detail> list = new List<detail>(); |
| | | List<VV_Mes_Workinfo> workinfos = new List<VV_Mes_Workinfo>(); |
| | | foreach (var item in bindSNs) |
| | | { |
| | | var work = workinfoRepository.Find(x => x.SN == item && x.processCode == "17").FirstOrDefault(); |
| | | if (work == null) throw new Exception($"æªæ¾å°è½¦è½®SNå·ï¼{item}çå·¥åä¿¡æ¯ï¼"); |
| | | workinfos.Add(work); |
| | | detail detail = new detail(); |
| | | detail.sn = item; |
| | | list.Add(detail); |
| | | } |
| | | agvInWarehousePara outWarehousePara = new agvInWarehousePara() |
| | | { |
| | | //WorkOrder = task.jobID, |
| | | zoneID = stationCode, |
| | | //processCode = task.agv_worktype.ToString(), |
| | | details = list, |
| | | layerNo = 1, |
| | | stackID = "1", |
| | | warehouseName = "Agvåº", |
| | | Operator = UserContext.Current.UserName, |
| | | }; |
| | | var postJson = JsonConvert.SerializeObject(outWarehousePara); |
| | | var mesData = Request.RequestData(postJson, MESAPIAddress.IPAddress_MES + "agvInWarehouse"); |
| | | if (mesData.Contains("è¿æ¥å°è¯å¤±è´¥")) throw new Exception(mesData); |
| | | MES_Response requestMes = JsonConvert.DeserializeObject<MES_Response>(mesData); |
| | | |
| | | if (requestMes.code == "200" && requestMes.Type == "success") |
| | | { |
| | | //æ¥å¿è®°å½ä¸ä¼ æ°æ®æå |
| | | WriteWMSLog.LogAdd("", "æå", "MES", "WMS", postJson, mesData, "äººå·¥åæ¥MES车轮å
¥åº", "agvInWarehouse", requestMes.message); |
| | | foreach (var workinfo in workinfos) |
| | | { |
| | | dt_inventory inventory = new dt_inventory() |
| | | { |
| | | SN = workinfo.SN, |
| | | Name = workinfo.productName, |
| | | FigureNumber = workinfo.drawingNo, |
| | | materialCode = workinfo.materialCode, |
| | | HeatNumber = workinfo.heatID, |
| | | drawingNoVer = workinfo.drawingNoVer, |
| | | BilletNumber = workinfo.billetID, |
| | | OnlineTime = DateTime.Now, |
| | | Operator = "admin", |
| | | stationCode = stationCode, |
| | | area = station.area, |
| | | jobID = workinfo.jobID, |
| | | workOrder = workinfo.workOrder, |
| | | ID = Guid.NewGuid() |
| | | }; |
| | | _repository.Add(inventory, true); |
| | | } |
| | | WriteDBLog.Write($"æå¨æ·»å åºå ", $"è´§ä½ç¼å·ï¼{stationCode}ï¼SNå·ï¼{saveDataModel.MainData["SN"]}", LogState.Sucess, "WMS", UserContext.Current.UserName); |
| | | } |
| | | else |
| | | { |
| | | WriteWMSLog.LogAdd("", "失败", "MES", "WMS", postJson, mesData, "äººå·¥åæ¥MES车轮å
¥åº", "agvInWarehouse", requestMes.message); |
| | | throw new Exception("äººå·¥åæ¥MES车轮å
¥åºå¤±è´¥ï¼" + requestMes.message); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content.Message = ex.Message; |
| | | WriteDBLog.Write($"æå¨æ·»å åºå ", new { éè¯¯ä¿¡æ¯ = ex.Message, æ°æ® = $"è´§ä½ç¼å·ï¼{stationCode}ï¼SNå·ï¼{saveDataModel.MainData["SN"]}" }, LogState.Error, "WMS", UserContext.Current.UserName); |
| | | } |
| | | return content; |
| | | //return base.Add(saveDataModel); |
| | | } |
| | | /// <summary> |
| | | /// ä¿®æ¹åºå |
| | | /// </summary> |
| | | /// <param name="saveModel"></param> |
| | | /// <returns></returns> |
| | | public override WebResponseContent Update(SaveModel saveModel) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | string str = ""; |
| | | try |
| | | { |
| | | VOLContext context = new VOLContext(); |
| | | Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(context); |
| | | var stationCode = saveModel.MainData["stationCode"].ToString(); |
| | | if (string.IsNullOrEmpty(stationCode)) throw new Exception($"ç¼åæ¶ç¼å·ä¸è½ä¸ºç©º!"); |
| | | if (!stationCode.Contains("B") && !stationCode.Contains("C") && !stationCode.Contains("D")) throw new Exception($"ç¼åæ¶ç±»åæè¯¯!"); |
| | | if (!stationinfoRepository.Find(x => x.stationCode == stationCode).Any()) throw new Exception($"æªæ¾å°è´§ä½{stationCode}"); |
| | | var inventory = _repository.Find(x => x.ID.ToString() == saveModel.MainData["ID"].ToString()).FirstOrDefault(); |
| | | str = $"åè´§ä½ç¼å·ï¼{inventory.stationCode}ï¼ç°è´§ä½ç¼å·ï¼{stationCode}ï¼SNå·ï¼{inventory.SN}"; |
| | | List<detail1> list1 = new List<detail1>(); |
| | | detail1 detail = new detail1(); |
| | | detail.sn = inventory.SN; |
| | | list1.Add(detail); |
| | | agvMoveWarehousePara moveWarehousePara = new agvMoveWarehousePara() |
| | | { |
| | | fromZoneID = inventory.stationCode, |
| | | toZoneID = stationCode, |
| | | details = list1, |
| | | fromLayerNo = "1", |
| | | fromStackID = "1", |
| | | fromWarehouseName = "Agvåº", |
| | | toLayerNo = "1", |
| | | toStackID = "1", |
| | | toWarehouseName = "Agvåº", |
| | | Operator = UserContext.Current.UserName, |
| | | }; |
| | | var postJson = JsonConvert.SerializeObject(moveWarehousePara); |
| | | var mesData = Request.RequestData(postJson, MESAPIAddress.IPAddress_MES + "agvMoveWarehouse"); |
| | | if (mesData.Contains("è¿æ¥å°è¯å¤±è´¥")) |
| | | throw new Exception(mesData); |
| | | MES_Response requestMes = JsonConvert.DeserializeObject<MES_Response>(mesData); |
| | | if (requestMes.code == "200" && requestMes.Type == "success") |
| | | { |
| | | //æ¥å¿è®°å½ä¸ä¼ æ°æ®æå |
| | | WriteWMSLog.LogAdd("", "æå", "MES", "WMS", postJson, mesData, "äººå·¥åæ¥MES车轮移åº", "agvMoveWarehouse", requestMes.message); |
| | | inventory.stationCode = stationCode; |
| | | _repository.Update(inventory, true); |
| | | WriteDBLog.Write($"æå¨ç§»åºåºå ", str, LogState.Sucess, "WMS", UserContext.Current.UserName); |
| | | } |
| | | else |
| | | { |
| | | WriteWMSLog.LogAdd("", "失败", "MES", "WMS", postJson, mesData, "äººå·¥åæ¥MES车轮移åº", "agvMoveWarehouse", requestMes.message); |
| | | throw new Exception("äººå·¥åæ¥MES车轮移åºå¤±è´¥ï¼" + requestMes.message); |
| | | } |
| | | |
| | | content.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content.Message = ex.Message; |
| | | WriteDBLog.Write($"æå¨ç§»åºåºå ", new { éè¯¯ä¿¡æ¯ = ex.Message, æ°æ® = str }, LogState.Error, "WMS", UserContext.Current.UserName); |
| | | } |
| | | return content; |
| | | //return base.Update(saveModel); |
| | | } |
| | | /// <summary> |
| | | /// å é¤åºå |
| | | /// </summary> |
| | | /// <param name="keys"></param> |
| | | /// <param name="delList"></param> |
| | | /// <returns></returns> |
| | | public override WebResponseContent Del(object[] keys, bool delList = true) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | |
| | | KeyList.Add(key); |
| | | } |
| | | var inventoryList= _repository.Find(x=>KeyList.Contains(x.ID.ToString())).ToList(); |
| | | str = $"{string.Join('ã', inventoryList.Select(t => t.SN).ToArray())}"; |
| | | content = base.Del(keys, delList); |
| | | WriteDBLog.Write($"æå¨å é¤åºå ", str, LogState.Sucess, "WMS", UserContext.Current.UserName); |
| | | //str = $"{string.Join('ã', inventoryList.Select(t => t.SN).ToArray())}"; |
| | | foreach (var inventorys in inventoryList.GroupBy(x => x.stationCode)) |
| | | { |
| | | try |
| | | { |
| | | List<detail> lists = new List<detail>(); |
| | | foreach (var inventory in inventorys) |
| | | { |
| | | detail detail = new detail(); |
| | | detail.sn = inventory.SN; |
| | | lists.Add(detail); |
| | | str = str == "" ? inventory.SN : "," + inventory.SN; |
| | | } |
| | | agvInWarehousePara outWarehousePara = new agvInWarehousePara() |
| | | { |
| | | //WorkOrder = task.jobID, |
| | | zoneID = inventorys.Key, |
| | | //processCode = task.agv_worktype.ToString(), |
| | | details = lists, |
| | | layerNo = 1, |
| | | stackID = "1", |
| | | warehouseName = "Agvåº", |
| | | Operator = UserContext.Current.UserName, |
| | | }; |
| | | var postJson = JsonConvert.SerializeObject(outWarehousePara); |
| | | var mesData = Request.RequestData(postJson, MESAPIAddress.IPAddress_MES + "agvOutWarehouse"); |
| | | if (mesData.Contains("è¿æ¥å°è¯å¤±è´¥")) throw new Exception(mesData); |
| | | MES_Response requestMes = JsonConvert.DeserializeObject<MES_Response>(mesData); |
| | | if (requestMes.code == "200" && requestMes.Type == "success") |
| | | { |
| | | //æ¥å¿è®°å½ä¸ä¼ æ°æ®æå |
| | | WriteWMSLog.LogAdd("", "æå", "MES", "WMS", postJson, mesData, "äººå·¥åæ¥MES车轮åºåº", "agvOutWarehouse", requestMes.message); |
| | | |
| | | foreach (var inventory in inventorys) |
| | | { |
| | | _repository.Delete(inventory, true); |
| | | } |
| | | WriteDBLog.Write($"æå¨å é¤åºå ", $"è´§ä½ç¼å·ï¼{inventorys.Key}ï¼SNå·ï¼{str}", LogState.Sucess, "WMS", UserContext.Current.UserName); |
| | | } |
| | | else |
| | | { |
| | | WriteWMSLog.LogAdd("", "失败", "MES", "WMS", postJson, mesData, "äººå·¥åæ¥MES车轮åºåº", "agvOutWarehouse", requestMes.message); |
| | | throw new Exception("äººå·¥åæ¥MES车轮åºåºå¤±è´¥ï¼" + requestMes.message); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content.Message = ex.Message; |
| | | WriteDBLog.Write($"æå¨å é¤åºå ", new { éè¯¯ä¿¡æ¯ = ex.Message, æ°æ® = str }, LogState.Error, "WMS", UserContext.Current.UserName); |
| | | } |
| | | |
| | | } |
| | | content.OK(); |
| | | //content = base.Del(keys, delList); |
| | | //WriteDBLog.Write($"æå¨å é¤åºå ", str, LogState.Sucess, "WMS", UserContext.Current.UserName); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content.Message = ex.Message; |
| | | WriteDBLog.Write($"æå¨å é¤åºå ", new { éè¯¯ä¿¡æ¯ = ex.Message, æ°æ® = str }, LogState.Error, "WMS", UserContext.Current.UserName); |
| | | } |
| | | |
| | |
| | | using WIDESEA_Comm; |
| | | using WIDESEA_Comm.LogInfo; |
| | | using WIDESEA_Common; |
| | | using WIDESEA_Core.EFDbContext; |
| | | using WIDESEA_Core.ManageUser; |
| | | using WIDESEA_Core.Utilities; |
| | | using WIDESEA_Entity.DomainModels; |
| | | using WIDESEA_Entity.DomainModels.Mes; |
| | | using WIDESEA_WMS.IRepositories; |
| | | using WIDESEA_WMS.Repositories; |
| | | |
| | | namespace WIDESEA_WMS |
| | | { |
| | |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å¤åè´§ä½æ«ç ç¡®è®¤ç©æå·²è¢«åèµ° |
| | | /// </summary> |
| | | /// <param name="saveModel"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent Confirmedcut(SaveModel saveModel) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | VOLContext context = new VOLContext(); |
| | | Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(context); |
| | | string sn = saveModel.MainData["from_address"].ToString(); |
| | | var station = stationinfoRepository.Find(x => x.bindSN.Contains(sn) && (x.stationCode.Contains("W01001001") || x.stationCode.Contains("W01001002") || x.stationCode.Contains("W01001003"))).FirstOrDefault(); |
| | | if (station == null) throw new Exception($"æªæ¾å°è½¦è½®SNå·:{sn}çå¤åè´§ä½ä¿¡æ¯ï¼"); |
| | | station.Number = string.Empty; |
| | | station.billetID = string.Empty; |
| | | station.heatNumber = string.Empty; |
| | | station.stationType = string.Empty; |
| | | station.tray_status = "EmptyTray"; |
| | | station.lastUpdateTime = DateTime.Now; |
| | | stationinfoRepository.Update(station, true); |
| | | content.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content.Message = ex.Message; |
| | | } |
| | | return content; |
| | | } |
| | | } |
| | | } |