|  |  |  | 
|---|
|  |  |  | using WIDESEA_Core.Const; | 
|---|
|  |  |  | using WIDESEA_DTO.MOM; | 
|---|
|  |  |  | using WIDESEA_DTO.WMS; | 
|---|
|  |  |  | using WIDESEAWCS_Model.Models; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //using WIDESEAWCS_Model.Models; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | namespace WIDESEA_StorageTaskServices; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | private async Task<WebResponseContent> ProcessOCVB(DtBoxingInfo boxing, Dt_AreaInfo area, RequestTaskDto input) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | WebResponseContent content = new WebResponseContent(); | 
|---|
|  |  |  | // 判断需不需要去包装,不需要就去常温三 | 
|---|
|  |  |  | var stationManagers = _stationManagerRepository.QueryData(x => x.stationPLC == "1018" && x.stationArea == "Cache" && x.productLine == input.ProductionLine); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | var STATION = _stationManagerRepository.QueryFirst(x => x.stationChildCode == input.Position); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //var station = stationManagers.Select(x => x.stationChildCode).ToList(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //// 获取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(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //如果当前库内存在比当前时间的对应产线的料 则入库至常温3 | 
|---|
|  |  |  | DtStockInfo stockInfo = _stockInfoRepository.QueryFirst(x => x.AreaCode == "CWSC3" && x.IsFull == true && x.ProductionLine == STATION.productLine && x.OutboundTime < DateTime.Now); | 
|---|
|  |  |  | if (stockInfo != null) | 
|---|
|  |  |  | try | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var config = _configService.GetByConfigKey("SYS_InStacker", "CW3InStacker"); | 
|---|
|  |  |  | var strings = config.ConfigValue.Split(',').ToList(); | 
|---|
|  |  |  | // 入库送至常温3 | 
|---|
|  |  |  | var resultContent = await CreateNewTask(input, input.ProductionLine, boxing.ProcessCode, strings); | 
|---|
|  |  |  | if (resultContent.Status) | 
|---|
|  |  |  | // 判断需不需要去包装,不需要就去常温三 | 
|---|
|  |  |  | var stationManagers = _stationManagerRepository.QueryData(x => x.stationPLC == "1018" && x.stationArea == "Cache" && x.productLine == input.ProductionLine); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | var STATION = _stationManagerRepository.QueryFirst(x => x.stationChildCode == input.Position); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //var station = stationManagers.Select(x => x.stationChildCode).ToList(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //// 获取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(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //如果当前库内存在比当前时间的对应产线的料 则入库至常温3 | 
|---|
|  |  |  | DtStockInfo stockInfo = _stockInfoRepository.QueryFirst(x => x.AreaCode == "CWSC3" && x.IsFull == true && x.ProductionLine == STATION.productLine && x.OutboundTime < DateTime.Now); | 
|---|
|  |  |  | if (stockInfo != null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | await _boxingInfoRepository.AddDataNavAsync(boxing); | 
|---|
|  |  |  | var config = _configService.GetByConfigKey("SYS_InStacker", "CW3InStacker"); | 
|---|
|  |  |  | var strings = config.ConfigValue.Split(',').ToList(); | 
|---|
|  |  |  | // 入库送至常温3 | 
|---|
|  |  |  | var resultContent = await CreateNewTask(input, input.ProductionLine, boxing.ProcessCode, strings); | 
|---|
|  |  |  | if (resultContent.Status) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | await _boxingInfoRepository.AddDataNavAsync(boxing); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return resultContent; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return resultContent; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // TODO 判断在途数量 | 
|---|
|  |  |  | // TODO 判断在途数量 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | var needBarcode = await SqlSugarHelper.DbWCS.Queryable<dt_needBarcode>().FirstAsync(x => x.productLine == STATION.productLine); | 
|---|
|  |  |  | var needCount = needBarcode.inLineNum; | 
|---|
|  |  |  | //var count = BaseDal.QueryData(x => x.TargetAddress == stationManagers[0].Roadway).Count; | 
|---|
|  |  |  | if (needCount < 2) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | // 送至包装 | 
|---|
|  |  |  | List<string> strings = stationManagers.Where(x => x.stationType == 0).Select(x => x.Roadway).ToList(); | 
|---|
|  |  |  | var x = await SqlSugarHelper.DbWCS.Updateable<dt_needBarcode>().SetColumns(x => x.inLineNum == x.inLineNum + 1).ExecuteCommandHasChangeAsync(); | 
|---|
|  |  |  | ConsoleHelper.WriteSuccessLine($"在途数量添加{(x ? "成功" : "失败")}数量+1"); | 
|---|
|  |  |  | return await CreateNewTask(input, input.ProductionLine, boxing.ProcessCode, strings, 3); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var config = _configService.GetByConfigKey("SYS_InStacker", "CW3InStacker"); | 
|---|
|  |  |  | var strings = config.ConfigValue.Split(',').ToList(); | 
|---|
|  |  |  | // 入库送至常温3 | 
|---|
|  |  |  | var resultContent = await CreateNewTask(input, input.ProductionLine, boxing.ProcessCode, strings); | 
|---|
|  |  |  | if (resultContent.Status) | 
|---|
|  |  |  | var needBarcode = await SqlSugarHelper.DbWCS.Queryable<dt_needBarcode>().FirstAsync(x => x.productLine == STATION.productLine); | 
|---|
|  |  |  | var needCount = needBarcode.inLineNum; | 
|---|
|  |  |  | //var count = BaseDal.QueryData(x => x.TargetAddress == stationManagers[0].Roadway).Count; | 
|---|
|  |  |  | if (needCount < needBarcode.cacheNum) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | await _boxingInfoRepository.AddDataNavAsync(boxing); | 
|---|
|  |  |  | // 送至包装 | 
|---|
|  |  |  | List<string> strings = stationManagers.Where(x => x.stationType == 0 && x.productLine == input.ProductionLine).Select(x => x.Roadway).ToList(); | 
|---|
|  |  |  | var x = await SqlSugarHelper.DbWCS.Updateable<dt_needBarcode>() | 
|---|
|  |  |  | .SetColumns(x => x.inLineNum == x.inLineNum + 1) | 
|---|
|  |  |  | .Where(x => x.id == needBarcode.id).ExecuteCommandHasChangeAsync(); | 
|---|
|  |  |  | ConsoleHelper.WriteSuccessLine($"在途数量添加{(x ? "成功" : "失败")}数量+1,当前工序{boxing.ProcessCode},产线{input.ProductionLine}"); | 
|---|
|  |  |  | LogFactory.GetLog("OCVB").InfoFormat(true, $"在途数量添加{(x ? "成功" : "失败")}数量+1,当前工序{boxing.ProcessCode},产线{input.ProductionLine}", "无参数"); | 
|---|
|  |  |  | return await CreateNewTask(input, input.ProductionLine, boxing.ProcessCode, strings, 3); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return resultContent; | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var config = _configService.GetByConfigKey("SYS_InStacker", "CW3InStacker"); | 
|---|
|  |  |  | var strings = config.ConfigValue.Split(',').ToList(); | 
|---|
|  |  |  | // 入库送至常温3 | 
|---|
|  |  |  | var resultContent = await CreateNewTask(input, input.ProductionLine, boxing.ProcessCode, strings); | 
|---|
|  |  |  | if (resultContent.Status) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | await _boxingInfoRepository.AddDataNavAsync(boxing); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return resultContent; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | catch (Exception ex) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | ConsoleHelper.WriteErrorLine(ex.Message); | 
|---|
|  |  |  | LogFactory.GetLog("OCVB").InfoFormat(true, $",异常信息:{ex.Message},{ex.StackTrace}", "无参数"); | 
|---|
|  |  |  | return content.Error(ex.Message); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | { | 
|---|
|  |  |  | throw new Exception("未找到入库站台配置"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //List<string> strings; | 
|---|
|  |  |  | //if (areaIn == "GWSC1") | 
|---|
|  |  |  | //{ | 
|---|
|  |  |  | //    strings = new List<string> | 
|---|
|  |  |  | //    { | 
|---|
|  |  |  | //        (boxing.ProductionLine != null && boxing.ProductionLine == "ZJ-7") ? "GWSC1" : "GWSC2" | 
|---|
|  |  |  | //    }; | 
|---|
|  |  |  | //} | 
|---|
|  |  |  | //else | 
|---|
|  |  |  | //{ | 
|---|
|  |  |  | //    strings = stationManagers.Roadway.Split(',').ToList(); | 
|---|
|  |  |  | //} | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<string> strings = stationManagers.Roadway.Split(',').ToList(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | var resultContent = await CreateNewTask(input, result.ProductionLine, boxing.ProcessCode, strings); | 
|---|