MarkingNormalExcuteCX.cs 9.38 KB
using HHECS.BllModel;
using HHECS.Communication.PLC;
using HHECS.Model.Entities;
using System;

namespace HHECS.BLL.EquipmentExcute.Marking
{
    /// <summary>
    /// 激光打标机
    /// </summary>
    public class MarkingNormalExcuteCX : MarkingExcute
    {

        /// <summary>
        /// 激光打标机处理逻辑
        /// </summary>
        /// <param name="cars"></param>
        /// <param name="plc"></param>
        /// <returns></returns>
        public override BllResult Excute(Equipment marking, IPLC plc)
        {
            return BllResultFactory.Success();
        }
        /// <summary>
        /// 下料工单打标
        /// </summary>
        /// <param name="CutPlanDetail"></param>
        /// <returns></returns>
        public static BllResult PrintBarcode(CutPlanDetail cutPlanDetail, decimal? pipeDiameter, string lineCode)
        {
            try
            {
                //var list = GetPrintData(cutPlanDetail.BarCode, true);
                var sendResult = SendDataToMarking.SendData(cutPlanDetail.BarCode.ToString(), pipeDiameter, lineCode);
                if (!sendResult.Success)
                {
                    return BllResultFactory.Error($"发送打标机数据指令失败,失败原因:{sendResult.Msg}");
                }
                return BllResultFactory.Success($"发送打标指令以及数据,执行成功。");

            }
            catch (Exception ex)
            {
                return BllResultFactory.Error($"打标机程序处理出现异常,异常原因{ex.Message}");
            }
        }


        /// <summary>
        /// 下料工单打标
        /// </summary>
        /// <param name="CutPlanDetail"></param>
        /// <returns></returns>
        public static BllResult PrintBarcode(string BarCode, decimal? pipeDiameter, string lineCode)
        {
            try
            {
                //var list = GetPrintData(cutPlanDetail.BarCode, true);
                var sendResult = SendDataToMarking.SendData(BarCode, pipeDiameter, lineCode);
                if (!sendResult.Success)
                {
                    return BllResultFactory.Error($"发送打标机数据指令失败,失败原因:{sendResult.Msg}");
                }
                return BllResultFactory.Success($"发送打标指令以及数据,执行成功。");

            }
            catch (Exception ex)
            {
                return BllResultFactory.Error($"打标机程序处理出现异常,异常原因{ex.Message}");
            }
        }
       public static BllResult PrintBarcodeToDB(string TemplateInput, string QRCodeContent, string PlainText1, string PlainText2, string PlainText3)
        {
            var senResult = SendDataToMarking.SendData(TemplateInput,QRCodeContent,PlainText1,PlainText2,PlainText3);
            if (!senResult.Success)
            {
				return BllResultFactory.Error($"发送打标机数据指令失败,失败原因:{senResult.Msg}");
			}
			return BllResultFactory.Success($"发送打标指令以及数据,执行成功。");
		}

        /// <summary>
        /// 下料切割线工单打标
        /// </summary>
        /// <param name="CutPlanDetail"></param>
        /// <returns></returns>
        public static BllResult PrintCutBarcode(bool cutPlanTask)
        {
            try
            {
                var sendResult = SendDataToMarking.SendData(cutPlanTask);
                if (!sendResult.Success)
                {
                    return BllResultFactory.Error($"发送打标机数据指令失败,失败原因:{sendResult.Msg}");
                }
                return BllResultFactory.Success($"发送打标指令以及数据,执行成功。");

            }
            catch (Exception ex)
            {
                return BllResultFactory.Error($"打标机程序处理出现异常,异常原因{ex.Message}");
            }
        }

        /// <summary>
        /// 下料工单打标
        /// </summary>
        /// <param name="CutPlanDetail"></param>
        /// <returns></returns>
        public static BllResult PrintBarcode(string lineCode , string qgx)
        {
            try
            {
                var sendResult = SendDataToMarking.SendData(lineCode, qgx);
                if (!sendResult.Success)
                {
                    return BllResultFactory.Error($"发送打标机数据指令失败,失败原因:{sendResult.Msg}");
                }
                return BllResultFactory.Success($"发送打标指令以及数据,执行成功。");

            }
            catch (Exception ex)
            {
                return BllResultFactory.Error($"打标机程序处理出现异常,异常原因{ex.Message}");
            }
        }

        /// <summary>
        ///余料打标
        /// </summary>
        /// <param name="CutPlanHead"></param>
        /// <returns></returns>
        public static BllResult PrintBarcode(CutPlanHead cutPlanHead, decimal? pipeDiameter)
        {
            try
            {
                //var list = GetPrintData(cutPlanHead.OddmentsCode, false);
                var sendResult = SendDataToMarking.SendData(cutPlanHead.OddmentsCode, pipeDiameter, cutPlanHead.LineCode);
                if (!sendResult.Success)
                {
                    return BllResultFactory.Error($"发送打标机数据指令失败,失败原因:{sendResult.Msg}");
                }
                return BllResultFactory.Success($"发送打标指令以及数据,执行成功。");
            }
            catch (Exception ex)
            {
                return BllResultFactory.Error($"打标机程序处理出现异常,异常原因{ex.Message}");

            }
        }

        public static BllResult PrintDerusting()
        {
            try
            {
                //var sendResult = SendDataTo.SendData();
                //if (!sendResult.Success)
                //{
                //    return BllResultFactory.Error($"发送打标机除锈指令失败,失败原因:{sendResult.Msg}");
                //}
                return BllResultFactory.Success($"发送打标指令除锈,执行成功。");
            }
            catch (Exception ex)
            {
                return BllResultFactory.Error($"打标机程序处理出现异常,异常原因{ex.Message}");

            }
        }
        public static BllResult PrintDerustingToStop(string stop)
        {
            try
            {
                var sendResult = SendDataTo.SendData(stop);
                if (!sendResult.Success)
                {
                    return BllResultFactory.Error($"发送打标机停止除锈指令失败,失败原因:{sendResult.Msg}");
                }
                return BllResultFactory.Success($"发送打标停止指令除锈,执行成功。");
            }
            catch (Exception ex)
            {
                return BllResultFactory.Error($"打标机程序处理出现异常,异常原因{ex.Message}");

            }
        }

        /// <summary>
        /// 获取打码数据
        /// </summary>
        /// <param name="code">BarCode或者是OddmentsCode</param>
        /// <param name="isBarCode">是否为余料</param>
        /// <returns></returns>
        //public static List<string> GetPrintData(string code, bool isBarCode)
        //{
        //    var list = new List<string>();
        //    var cutPlanDetail = new CutPlanDetail();
        //    var cutPlanHead = new CutPlanHead();
        //    var cutterDetailWorkOrder = new CutterDetailWorkOrder();
        //    var cutterHeadWorkOrder = new CutterHeadWorkOrder();
        //    if (isBarCode)
        //    {
        //        //正常物料
        //        cutPlanDetail = DALHelper.GetFreeSql().Select<CutPlanDetail>().Where(u => u.BarCode == code).First();
        //        cutPlanHead = DALHelper.GetFreeSql().Select<CutPlanHead>().Where(u => u.Keys == cutPlanDetail.HeadKeys).First();
        //        cutterDetailWorkOrder = DALHelper.GetFreeSql().Select<CutterDetailWorkOrder>().Where(u => u.Id == cutPlanDetail.CuttingDetailId).First();
        //        cutterHeadWorkOrder = DALHelper.GetFreeSql().Select<CutterHeadWorkOrder>().Where(u => u.keys == cutterDetailWorkOrder.headKeys).First();
        //        list.Add(cutterHeadWorkOrder.ProjectName);
        //        list.Add(cutterHeadWorkOrder.LineCode);
        //        list.Add(cutterDetailWorkOrder.SpoolNo);
        //        list.Add(cutterDetailWorkOrder.PartCode);
        //    }
        //    else
        //    {
        //        //余料
        //        cutPlanHead = DALHelper.GetFreeSql().Select<CutPlanHead>().Where(u => u.OddmentsCode == code).First();
        //        list.Add(cutterHeadWorkOrder.ProjectName);
        //        list.Add(cutterHeadWorkOrder.LineCode);
        //        list.Add(cutPlanHead.OddmentsCode);
        //        list.Add(cutPlanHead.OddmentsLength.ToString());
        //    }

        //    var inventory = DALHelper.GetFreeSql().Select<Inventory>().Where(u => u.Id == cutPlanHead.InventoryId).First();
        //    var material = DALHelper.GetFreeSql().Select<Material>().Where(u => u.MaterialCode == inventory.materialCode).First();
        //    //余料匹配不到项目名称

        //    list.Add(material.Types);
        //    list.Add(material.Diameter.ToString());
        //    list.Add(material.Thickness.ToString());
        //    list.Add(inventory.batchNo);
        //    list.Add(code);
        //    return list;
        //}
    }
}