刘磊
2024-12-21 a6ea79849f0142b5280f0c5d4b15ecc83f0d015a
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/RequestInTaskAsync.cs
@@ -1,21 +1,9 @@
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
{
@@ -51,19 +39,25 @@
    {
        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();
@@ -109,7 +103,7 @@
        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)
@@ -140,14 +134,19 @@
        {
            case "CH01":
                return "CH001";
            case "JZ01":
                return "JZ001";
            case "GW01":
                return "GWSC1";
            case "CW01":
                return "CWSC1";
            case "CW02":
                return "CWSC2";
            default:
                return string.Empty;
        }
@@ -168,20 +167,21 @@
    /// <summary>
    /// 电芯NG送至NG口
    /// </summary>
    private async Task<WebResponseContent> HandleErrorCells(RequestTaskDto input, Dt_AreaInfo area, List<SerialNoDto> serialNosError)
    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("存在异常电芯");
    }
@@ -240,4 +240,4 @@
    {
        return await _areaInfoRepository.QueryFirstAsync(x => x.Spare1.Contains(position));
    }
}
}