| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Reflection.Metadata; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using Masuit.Tools; |
| | | using WIDESEA_Core.Const; |
| | | using WIDESEA_Core.DB.Models; |
| | | using WIDESEA_DTO.MOM; |
| | | using WIDESEA_DTO.WMS; |
| | | using WIDESEA_DTO; |
| | | using WIDESEA_Model.Models; |
| | | using WIDESEA_Repository; |
| | | using WIDESEAWCS_BasicInfoRepository; |
| | | using Masuit.Tools; |
| | | |
| | | namespace WIDESEA_StorageTaskServices; |
| | | |
| | | |
| | | public partial class Dt_TaskService : ServiceBase<Dt_Task, IDt_TaskRepository>, IDt_TaskService |
| | | { |
| | | /// <summary> |
| | | /// 根据当前工序判断下一工序,送至对应工序 |
| | | /// </summary> |
| | | /// <param name="boxing">组盘</param> |
| | | /// <param name="area">区域</param> |
| | | /// <param name="input">请求参数</param> |
| | | /// <param name="resultTray">托盘电芯</param> |
| | | /// <returns></returns> |
| | | private async Task<WebResponseContent> ProcessBasedOnProcessCode(DtBoxingInfo boxing, Dt_AreaInfo area, RequestTaskDto input, ResultTrayCellsStatus resultTray) |
| | | { |
| | | if (boxing.ProcessCode == "OCVB") |
| | |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | // 判断需不需要去包装,不需要就去常温三 |
| | | var stationManagers = _stationManagerRepository.QueryData(x => x.stationPLC == "1018" && x.stationArea == "Cache"); |
| | | var station = stationManagers.Select(x => x.stationChildCode).ToList(); |
| | | var stationManagers = _stationManagerRepository.QueryData(x => x.stationPLC == "1018" && x.stationArea == "Cache" && x.productLine == input.ProductionLine); |
| | | |
| | | // 获取WCSip地址相关配置 |
| | | var wcsIpAddrss = GetWCSIpAddress(); |
| | | if (wcsIpAddrss == null) |
| | | { |
| | | throw new InvalidOperationException("WCS IP 未配置"); |
| | | } |
| | | //var station = stationManagers.Select(x => x.stationChildCode).ToList(); |
| | | |
| | | var abc = HttpHelper.PostAsync(wcsIpAddrss, station.ToJsonString()).Result; |
| | | content = JsonConvert.DeserializeObject<WebResponseContent>(abc); |
| | | if (content.Data.ObjToInt() > 0) |
| | | //// 获取WCSip地址相关配置 |
| | | //var wcsIpAddrss = GetWCSIpAddress(); |
| | | //if (wcsIpAddrss == null) |
| | | //{ |
| | | // throw new InvalidOperationException("WCS IP 未配置"); |
| | | //} |
| | | |
| | | //var abc = HttpHelper.PostAsync(wcsIpAddrss, station.ToJsonString()).Result; |
| | | //content = JsonConvert.DeserializeObject<WebResponseContent>(abc); |
| | | //var num = content.Data.ObjToInt(); |
| | | |
| | | |
| | | // TODO 判断在途数量 |
| | | var count = BaseDal.QueryData(x => x.TargetAddress == stationManagers[0].Roadway).Count; |
| | | if (count <= 10) |
| | | { |
| | | // 送至包装 |
| | | List<string> strings = stationManagers.Where(x => x.stationType == 0).Select(x => x.Roadway).ToList(); |
| | |
| | | var resultProcessApply = JsonConvert.DeserializeObject<ResultProcessApply>(content.Data.ToString()); |
| | | if (!resultProcessApply.Success) return content.Error("工艺申请失败"); |
| | | |
| | | var number = resultProcessApply.ProcessInfo.Where(x => x.ProcessCode == boxing.ProcessCode).FirstOrDefault().Number.ToInt32(); |
| | | var number = resultProcessApply.ProcessInfo.Where(x => x.ProcessCode.Contains(boxing.ProcessCode)).FirstOrDefault().Number.ToInt32(); |
| | | foreach (var item in resultProcessApply.ProcessInfo) |
| | | { |
| | | if (item.Number.ToInt32() == number + 1) |
| | |
| | | { |
| | | case "CH01": |
| | | return "CH001"; |
| | | |
| | | case "JZ01": |
| | | return "JZ001"; |
| | | |
| | | case "GW01": |
| | | return "GWSC1"; |
| | | |
| | | case "CW01": |
| | | return "CWSC1"; |
| | | |
| | | case "CW02": |
| | | return "CWSC2"; |
| | | |
| | | default: |
| | | return string.Empty; |
| | | } |
| | |
| | | return wcsBasez + address; |
| | | } |
| | | |
| | | private async Task<WebResponseContent> HandleErrorCells(RequestTaskDto input, Dt_AreaInfo area, List<SerialNoDto> serialNosError) |
| | | /// <summary> |
| | | /// 电芯NG送至NG口 |
| | | /// </summary> |
| | | private async Task<WebResponseContent> HandleErrorCells(RequestTaskDto input, Dt_AreaInfo area, List<SerialNoDto> serialNosError = null) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | // TODO 创建任务送至NG排出口 |
| | | var stationManagers = _stationManagerRepository.QueryData(x => x.stationType == 1 && x.stationChildCode == input.Position && x.stationArea == area.AreaCode).ToList(); |
| | | if (stationManagers.Count <= 0) |
| | | var stationManagers = _stationManagerRepository.QueryData(x => x.stationType == 1 && x.stationChildCode == input.Position && x.stationArea == area.AreaCode).FirstOrDefault(); |
| | | if (stationManagers == null) |
| | | { |
| | | throw new Exception("未找到NG入库站台配置"); |
| | | } |
| | | List<string> NGStation = stationManagers.Select(x => x.stationNGLocation).ToList(); |
| | | if (NGStation.Count <= 0) |
| | | { |
| | | NGStation = stationManagers.Select(x => x.stationNGChildCode).ToList(); |
| | | } |
| | | //List<string> NGStation = stationManagers.Roadway.Split(',').ToList(); |
| | | //if (NGStation.Count <= 0) |
| | | //{ |
| | | // NGStation = stationManagers.stationNGChildCode.Split(',').ToList(); |
| | | //} |
| | | List<string> NGStation = stationManagers.stationNGChildCode.Split(',').ToList(); |
| | | content = await CreateNewTask(input, NGStation, 2); |
| | | return content.Error("存在异常电芯"); |
| | | } |
| | |
| | | { |
| | | return await _areaInfoRepository.QueryFirstAsync(x => x.Spare1.Contains(position)); |
| | | } |
| | | } |
| | | } |