WebApiService.cs 7.79 KB
using Hh.Mes.Pojo.System;
using HHECS.Application.Enums;
using HHECS.BLL.Services;
using HHECS.BllModel;
using HHECS.DAL;
using HHECS.Model.Entities;
using NPOI.HPSF;
using System;
using System.Threading.Tasks;

namespace HHECS.Application.Service
{
    public class WebApiService : BaseService
    {
        /// <summary>
        /// WebApi的接口前缀
        /// </summary>
        //public static string urlPrefix = string.Empty;

        public static string urlPrefix = "http://10.5.200.15:107";
        public static string urlPrefix1 = "http://10.92.3.110:9000";

        /// <summary>
        /// 发送Post请求的客户端处理类
        /// </summary>
        private static CommonService commonService = new CommonService();

        /// <summary>
        /// 按单管计算进度(主要包括 管线下料工序,热处理工序,单管预制释放工序等三个工序都是按单管来计算进度)
        /// </summary>
        /// <param name="workNo">工单号</param>
        /// <param name="oprSequenceNo">工序编码</param>
        /// <param name="spoolNo">单管号</param>
        /// <param name="oprSequenceName">工序名称</param>
        /// <returns></returns>
        public static Task<BllResult<object>> GetWorkOrderProgressBySingleTube(string workNo, string spoolNo, string lineCode)
        {
            var url = urlPrefix + "CutWeld/GetWorkOrderProgressBySingleTube";
            var sendData = new { workNo = workNo, spoolNo = spoolNo, lineCode = lineCode };
            return commonService.PostJson<object>("GetWorkOrderProgressBySingleTube:按单管计算进度", url, sendData);
        }

        /// <summary>
        /// 切割的开工、完工反馈
        /// </summary>
        /// <param name="taskNo"></param>
        /// <returns></returns>
        public static Task<BllResult<object>> SendIWPTechnologylineProcess(string WorkOrderNo, string SpoolNo, int processesState)
        {
            var url = urlPrefix + "/api/Upstream/Mes/V1/ProcedureEndBack";
            var sendData = new { barCode = SpoolNo, EnumCutHeadState = processesState };
            return commonService.PostJson<object>("SendIWPTechnologylineProcess:工序开工完工", url, sendData);
        }

        /// <summary>
        /// 切割完工工序报工
        /// </summary>
        /// <param name="WorkOrderNo"></param>
        /// <param name="SpoolNo"></param>
        /// <param name="processesState"></param>
        /// <returns></returns>
        public static Task<BllResult<object>> SendCutProcess(string barcode, string enumCutHeadState)
        {
            var url = urlPrefix + "/api/Upstream/Mes/V1/ProcedureEndBack";
            var sendData = new { barCode = barcode, EnumCutHeadState = enumCutHeadState };
            return commonService.PostJson<object>("SendCut:工序开工完工", url, sendData);
        }

        /// <summary>
        /// 管段的材料跟踪
        /// </summary>
        /// <param name="taskNo"></param>
        /// <returns></returns>
        public static Task<BllResult<object>> MaterialTrackingReturnDims()
        {
            var url = urlPrefix + "Quality/MaterialTrackingReturnDims";
            return commonService.PostJson<object>("MaterialTrackingReturnDims:管段的材料跟踪报检", url, null);
        }

        /// <summary>
        /// 余料反馈接口
        /// </summary>
        /// <param name="taskNo"></param>
        /// <returns></returns>
        public static Task<BllResult<object>> Layingoff(string barCode,string equipmentNo)
        {
            var url = urlPrefix + "/api/Upstream/Mes/V1/Layingoff";
            var sendData = new { barCode = barCode ,equipmentNo = equipmentNo };
            return commonService.PostJson<object>("SurpplusRecord:余料反馈数据给mes", url, sendData);
        }

        public static Response ChekEnd(string weldUrl = "http://10.92.3.110:9000")
        {
            var url = weldUrl + "/SmartCutAPI/CheckMachineCanReceiveJob";
            var result = commonService.HttpMan2(url, null, "ChekEnd:检查地址请求", "get");
            //var ss= commonService.GetJson<object>("ChekEnd:检查地址请求", url, null);
            return result;
        }
        public static Response EquipmentStutas(string weldUrl = "http://10.92.3.110:9000")
        {
            var url = weldUrl + "/SmartCutAPI/MachineData";
            var result = commonService.HttpMan2(url, null, "ChekEnd:检查地址请求", "get");
            //var ss= commonService.GetJson<object>("ChekEnd:检查地址请求", url, null);
            return result;
        }
        /// <summary>
        /// 余料反馈接口
        /// </summary>
        /// <param name="taskNo"></param>
        /// <returns></returns>
        public static Task<BllResult<object>> SurpplusRecord(string headID)
        {
            var url = urlPrefix + $"/api/Upstream/Mes/V1/SurplusRecord?headId={headID}";
            var sendData = new { headID = headID };
            return commonService.PostJson<object>("SurpplusRecord:余料反馈数据给mes", url, sendData);
        }
        /// <summary>
        /// 激光切割任务下发接口
        /// </summary>
        /// <param name="taskNo"></param>
        /// <returns></returns>
        public static Task<BllResult<object>> CutRecord(string grid,string taskNo,
        string filePath,
        string material,
        decimal sheetLength,
        decimal sheetWidth,
        decimal thickness)
        {
            var url = urlPrefix1 + $"/SmartCutAPI/CabeierNCFileAPI";
            var sendData = new { requestCode = grid, requestName = "ncDownLoad" , requestTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") ,
                requestData = new NcDownloadRequestData
                {
                    taskNo = taskNo,
                    filePath = filePath,
                    material = material,
                    sheetLength = sheetLength,
                    sheetWidth = sheetWidth,
                    thickness = thickness
                }
            };
            return commonService.PostJsonToCut<object>("CutRecord:激光切割下发任务", url, sendData);
        }


        /// <summary>
        /// 任务号设备完工报工
        /// </summary>
        /// <param name="taskNo"></param>
        /// <returns></returns>
        public static Task<BllResult<object>> SendEndTask(string taskCode, string equipmentCode)
        {
            var url = urlPrefix + "/api/CutWeld/Mes/V1/SendIWPTechnologylineProcess";
            var sendData = new { taskCode = taskCode, equipmentCode = equipmentCode };
            return commonService.PostJson<object>("SendEndTask:任务号完工", url, sendData);
        } 
        /// <summary>
        /// 测长设备接口完工
        /// </summary>
        /// <param name="taskNo"></param>
        /// <returns></returns>
        public static Task<BllResult<object>> SendMeasure(string taskCode, string taskLength,string taskOrder)
        {
            var url = urlPrefix + "/api/Upstream/Mes/V1/taskMeasuring";
            var sendData = new { taskCode = taskCode, taskLength = taskLength, taskOrder = taskOrder };
            return commonService.PostJson<object>("SendEndTask:测长任务号完工", url, sendData);
        }
        public class NcDownloadRequest
        {
            public string requestCode { get; set; }
            public string requestName { get; set; }
            public string requestTime { get; set; }
            public NcDownloadRequestData requestData { get; set; }
        }

        public class NcDownloadRequestData
        {
            public string taskNo { get; set; }
            public string filePath { get; set; }
            public string material { get; set; }
            public decimal sheetLength { get; set; }
            public decimal sheetWidth { get; set; }
            public decimal thickness { get; set; }
        }
    }
}