public void ProcessRequest(HttpContext context)
        {
            var orderId    = int.Parse(context.Request["orderId"]);
            int oldOrderId = 0;

            using (JDJS_WMS_DB_USEREntities wms = new JDJS_WMS_DB_USEREntities())
            {
                var order = wms.JDJS_WMS_Order_Entry_Table.Where(r => r.Order_ID == orderId).FirstOrDefault();
                if (order == null)
                {
                    context.Response.Write("该订单不存在,请确认后再试!");
                    return;
                }
                if (order.ParentId == null)
                {
                    context.Response.Write("该订单无关联订单,请确认后再试!");
                    return;
                }
                using (System.Data.Entity.DbContextTransaction mytran = wms.Database.BeginTransaction())
                {
                    try
                    {
                        oldOrderId = int.Parse(order.ParentId.ToString());
                        var blankInfo = wms.JDJS_WMS_Order_Blank_Table.Where(r => r.OrderID == oldOrderId).FirstOrDefault();
                        if (blankInfo != null)
                        {
                            JDJS_WMS_Order_Blank_Table jdBlank = new JDJS_WMS_Order_Blank_Table()
                            {
                                OrderID                  = orderId,
                                BlackNumber              = order.Product_Output,
                                BlankAddition            = 0,
                                BlankSpecification       = blankInfo.BlankSpecification.Contains("#1#")? blankInfo.BlankSpecification.Replace("#1#", "") : blankInfo.BlankSpecification,
                                BlankState               = "待备料",
                                BlanktotalPreparedNumber = 0,
                                BlankType                = blankInfo.BlankType,
                                Expected_Completion_Time = DateTime.Now
                            };
                            wms.JDJS_WMS_Order_Blank_Table.Add(jdBlank);
                        }

                        JDJS_WMS_Quality_Confirmation_Table jdQuality = new JDJS_WMS_Quality_Confirmation_Table()
                        {
                            OrderID                   = orderId,
                            DetectionNumber           = 0,
                            CurrFinishedProductNumber = 0,
                            PassRate                  = 0,
                            PefectiveProductNumber    = 0,
                            PendingNumber             = 0,
                            QualifiedProductNumber    = 0
                        };
                        wms.JDJS_WMS_Quality_Confirmation_Table.Add(jdQuality);
                        wms.SaveChanges();
                        JDJS_WMS_Finished_Product_Manager jdFinish = new JDJS_WMS_Finished_Product_Manager()
                        {
                            outputNumber           = 0,
                            DefectiveProductNumber = 0,
                            OrderID            = orderId,
                            stock              = 0,
                            waitForWarehousing = 0,
                            warehousingNumber  = 0,
                        };
                        wms.JDJS_WMS_Finished_Product_Manager.Add(jdFinish);
                        wms.SaveChanges();
                        var guide = wms.JDJS_WMS_Order_Guide_Schedu_Table.Where(r => r.OrderID == orderId).FirstOrDefault();
                        if (guide != null)
                        {
                            guide.ExpectEndTime = DateTime.Now;
                            guide.EndTime       = DateTime.Now;
                            wms.SaveChanges();
                        }
                        var processes = wms.JDJS_WMS_Order_Process_Info_Table.Where(r => r.OrderID == oldOrderId && r.sign != 0);
                        JDJS_WMS_Order_DelayTime_Table jdDelay = new JDJS_WMS_Order_DelayTime_Table()
                        {
                            OrderID = orderId,
                        };
                        wms.JDJS_WMS_Order_DelayTime_Table.Add(jdDelay);
                        foreach (var item in processes)
                        {
                            JDJS_WMS_Order_Process_Info_Table jd = new JDJS_WMS_Order_Process_Info_Table()
                            {
                                DeviceType                   = item.DeviceType,
                                ProcessID                    = item.ProcessID,
                                JigSpecification             = item.JigSpecification.Contains("#1#")? item.JigSpecification.Replace("#1#", ""): item.JigSpecification,
                                JigType                      = item.JigType,
                                Jig_Expected_Completion_Time = DateTime.Now,
                                BlankNumber                  = order.Product_Output,
                                sign = 1,
                                program_audit_sign = 1,
                                programName        = order.Order_Number + "-" + item.programName.Split('-')[1],
                                ProcessTime        = item.ProcessTime,
                                BlankSpecification = item.BlankSpecification.Contains("#1#")?item.BlankSpecification.Replace("#1#", ""):item.BlankSpecification,
                                BlankType          = item.BlankType,
                                MachNumber         = item.MachNumber,
                                Modulus            = item.Modulus,
                                NonCuttingTime     = item.NonCuttingTime,
                                toolChartName      = "T-" + order.Order_Number + "-" + item.toolChartName.Split('-')[2],
                                toolPreparation    = 0,
                                ProgramePassTime   = DateTime.Now,
                                OrderID            = orderId
                            };
                            wms.JDJS_WMS_Order_Process_Info_Table.Add(jd);
                            order.audit_Result         = "。" + DateTime.Now.ToString() + ":审核通过";
                            order.program_audit_result = "。" + DateTime.Now.ToString() + ":审核通过";
                            wms.SaveChanges();
                            int processId   = jd.ID;
                            var processInfo = wms.JDJS_WMS_Order_Process_Information_Table.Where(r => r.ProcessID == item.ID).FirstOrDefault();
                            if (processInfo != null)
                            {
                                JDJS_WMS_Order_Process_Information_Table jdInfo = new JDJS_WMS_Order_Process_Information_Table()
                                {
                                    Note         = processInfo.Note,
                                    ProcessID    = processId,
                                    WorkMaterial = processInfo.WorkMaterial,
                                    XPoint       = processInfo.XPoint,
                                    YPoint       = processInfo.YPoint,
                                    ZPoint       = processInfo.ZPoint
                                };
                                wms.JDJS_WMS_Order_Process_Information_Table.Add(jdInfo);
                                wms.SaveChanges();
                            }

                            var tools = wms.JDJS_WMS_Order_Process_Tool_Info_Table.Where(r => r.ProcessID == item.ID);
                            foreach (var tool in tools)
                            {
                                JDJS_WMS_Order_Process_Tool_Info_Table jdTool = new JDJS_WMS_Order_Process_Tool_Info_Table()
                                {
                                    BladeLenth      = tool.BladeLenth,
                                    EffectiveLength = tool.EffectiveLength,
                                    ProcessID       = processId,
                                    ToolDiameter    = tool.ToolDiameter,
                                    isFine          = tool.isFine,
                                    Shank           = tool.Shank,
                                    PathName        = tool.PathName,
                                    ToolAroidance   = tool.ToolAroidance,
                                    ToolLength      = tool.ToolLength,
                                    ToolName        = tool.ToolName,
                                    ToolNO          = tool.ToolNO
                                };
                                wms.JDJS_WMS_Order_Process_Tool_Info_Table.Add(jdTool);
                            }
                            wms.SaveChanges();
                            JDJS_WMS_Order_Fixture_Manager_Table jdFix = new JDJS_WMS_Order_Fixture_Manager_Table()
                            {
                                ProcessID                  = processId,
                                FixtureAdditionNumber      = 0,
                                FixtureFinishPerpareNumber = 0,
                                FixtureNumber              = 0
                            };
                            wms.JDJS_WMS_Order_Fixture_Manager_Table.Add(jdFix);
                            JDJS_WMS_Warehouse_InOut_History_Table jdInout = new JDJS_WMS_Warehouse_InOut_History_Table()
                            {
                                InNum     = 0,
                                OutNum    = 0,
                                ProcessId = processId
                            };
                            wms.JDJS_WMS_Warehouse_InOut_History_Table.Add(jdInout);
                        }
                        order.Intention = 3;
                        wms.SaveChanges();
                        mytran.Commit();
                        context.Response.Write("ok");
                        return;
                    }
                    catch (Exception ex)
                    {
                        mytran.Rollback();
                        context.Response.Write(ex.Message);
                        return;
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public void ProcessRequest(HttpContext context)
        {
            var    form        = context.Request.Form;
            var    file        = context.Request.Files;
            var    projectName = form["projectName"];
            var    remark      = form["remark"]; //备注
            var    loginID     = Convert.ToInt32(context.Session["id"]);
            int    priority    = 1;              //优先级
            string year        = DateTime.Now.Year.ToString().Substring(2, 2);
            string month       = DateTime.Now.Month.ToString();

            while (month.Length < 2)
            {
                month = month.Insert(0, "0");
            }
            string day = DateTime.Now.Day.ToString();

            while (day.Length < 2)
            {
                day = day.Insert(0, "0");
            }
            string strOrderNum = year + month + day;
            int    flag        = 1;
            string flagStr     = "";

            // var folder = @"D:\服务器文件勿动\" + form[0];
            using (JDJS_WMS_DB_USEREntities entities = new JDJS_WMS_DB_USEREntities())
            {
                using (System.Data.Entity.DbContextTransaction date = entities.Database.BeginTransaction())
                {
                    try
                    {
                        while (true)
                        {
                            flagStr = flag.ToString();
                            while (flagStr.Length < 5)
                            {
                                flagStr = flagStr.Insert(0, "0");
                            }

                            var order = entities.JDJS_WMS_Order_Entry_Table.Where(r => r.Order_Number == strOrderNum + flagStr);
                            if (order.Count() < 1)
                            {
                                break;
                            }
                            flag++;
                        }
                        if (form[0] == "0")
                        {
                            var Order_Number          = strOrderNum + flagStr;
                            var Order_Leader          = form[2];
                            var Product_Name          = form[3];
                            var Product_Material      = form[4];
                            var Product_Output        = int.Parse(form[5]);
                            var Order_Plan_End_Time   = DateTime.Parse(form[6]);
                            var Order_State           = form[7];
                            var Order_Plan_Start_Time = DateTime.Now;
                            var Customer = form[8];
                            var pattern  = int.Parse(form["pattern"]);


                            var judge = entities.JDJS_WMS_Order_Entry_Table.Where(r => r.Order_Number == Order_Number);
                            if (judge.Count() > 0)
                            {
                                context.Response.Write("该订单已存在");
                                return;
                            }
                            var row = new JDJS_WMS_Order_Entry_Table
                            {
                                Order_Number          = Order_Number,
                                Order_Leader          = Order_Leader,
                                Product_Name          = Product_Name,
                                Product_Material      = Product_Material,
                                Product_Output        = Product_Output,
                                Order_Plan_End_Time   = Order_Plan_End_Time,
                                Order_State           = Order_State,
                                Order_Plan_Start_Time = DateTime.Now,
                                Intention             = 3,
                                ProjectName           = projectName,
                                ProofingORProduct     = pattern,
                                CtratPersonID         = loginID,
                                Priority       = priority,
                                CreateTime     = DateTime.Now,
                                CreatePersonID = loginID,
                                AuditResult    = "待审核",
                                Remark         = remark
                            };
                            entities.JDJS_WMS_Order_Entry_Table.Add(row);
                            entities.SaveChanges();
                            var orderId = entities.JDJS_WMS_Order_Entry_Table.Where(r => r.Order_Number == Order_Number).FirstOrDefault().Order_ID;
                            JDJS_WMS_Order_Guide_Schedu_Table guide = new JDJS_WMS_Order_Guide_Schedu_Table()
                            {
                                OrderID    = orderId,
                                ClientName = Customer
                            };
                            entities.JDJS_WMS_Order_Guide_Schedu_Table.Add(guide);
                            entities.SaveChanges();
                            var queue = new JDJS_WMS_Order_Queue_Table {
                                OrderID = orderId, isFlag = 3
                            };
                            entities.JDJS_WMS_Order_Queue_Table.Add(queue);
                            entities.SaveChanges();
                            PathInfo pathInfo = new PathInfo();
                            var      folder   = Path.Combine(pathInfo.upLoadPath(), Order_Number, form[1], @"客供图纸");
                            if (!Directory.Exists(folder))
                            {
                                Directory.CreateDirectory(folder);
                            }
                            ;

                            for (int i = 0; i < file.Count; i++)
                            {
                                var    name = file[i].FileName;
                                var    size = file[i].ContentLength;
                                string path = Path.Combine(folder, name);
                                file[i].SaveAs(path);
                            }
                            entities.SaveChanges();
                            context.Response.Write("ok");
                            date.Commit();
                        }
                        else
                        {
                            var Order_Number          = strOrderNum + flagStr;
                            var Order_Leader          = form[2];
                            var oldOrderNumber        = form[3];
                            var Product_Name          = form[4];
                            var Product_Material      = form[5];
                            var Product_Output        = int.Parse(form[6]);
                            var Order_Plan_End_Time   = DateTime.Parse(form[7]);
                            var Order_State           = form[8];
                            var Order_Plan_Start_Time = DateTime.Now;
                            var Customer = form[9];


                            {
                                string   OrderNum       = Order_Number;
                                string   OrderOwener    = Order_Leader;
                                string   OldOrderNum    = oldOrderNumber;
                                string   ProductName    = Product_Name;
                                string   ProductMertial = Product_Material;
                                int      ProductOutPut  = Product_Output;
                                string   OrderState     = Order_State;
                                DateTime OverTime       = DateTime.Now;
                                using (JDJS_WMS_DB_USEREntities wms = new JDJS_WMS_DB_USEREntities())
                                {
                                    var orders = wms.JDJS_WMS_Order_Entry_Table.Where(r => r.Order_Number == OrderNum);
                                    if (orders.Count() > 0)
                                    {
                                        Console.WriteLine("该订单号已存在");
                                        return;
                                    }
                                    else
                                    {
                                        using (System.Data.Entity.DbContextTransaction mytran = wms.Database.BeginTransaction())
                                        {
                                            try
                                            {
                                                var OldOrderInfo = wms.JDJS_WMS_Order_Entry_Table.Where(r => r.Order_Number == OldOrderNum);
                                                if (OldOrderInfo.Count() > 0)
                                                {
                                                    JDJS_WMS_Order_Entry_Table orderentry = new JDJS_WMS_Order_Entry_Table()
                                                    {
                                                        Order_Number                = OrderNum,
                                                        Order_Leader                = OrderOwener,
                                                        Product_Name                = ProductName,
                                                        Product_Material            = ProductMertial,
                                                        Product_Output              = ProductOutPut,
                                                        Order_Plan_Start_Time       = null,
                                                        Order_Actual_Start_Time     = null,
                                                        Order_Actual_End_Time       = null,
                                                        Order_Plan_End_Time         = Order_Plan_End_Time,
                                                        Engine_Program_Manager      = OldOrderInfo.FirstOrDefault().Engine_Program_Manager,
                                                        Engine_Technology_Manager   = OldOrderInfo.FirstOrDefault().Engine_Technology_Manager,
                                                        Engine_Program_ManagerId    = OldOrderInfo.FirstOrDefault().Engine_Program_ManagerId,
                                                        Engine_Technology_ManagerId = OldOrderInfo.FirstOrDefault().Engine_Technology_ManagerId,
                                                        Engine_Status               = "未进行",
                                                        Intention         = 3,
                                                        ProjectName       = projectName,
                                                        CreateTime        = DateTime.Now,
                                                        CreatePersonID    = loginID,
                                                        Order_State       = OrderState,
                                                        virtualProgPersId = OldOrderInfo.FirstOrDefault().virtualProgPersId,
                                                        virtualReturnTime = OldOrderInfo.FirstOrDefault().virtualReturnTime,
                                                        // audit_Result = "待审核",
                                                        AuditResult = "待审核",
                                                        Remark      = remark
                                                    };
                                                    wms.JDJS_WMS_Order_Entry_Table.Add(orderentry);
                                                    wms.SaveChanges();
                                                    mytran.Commit();
                                                }
                                            }
                                            catch (Exception ex)
                                            {
                                                mytran.Rollback();
                                                context.Response.Write(ex.Message);
                                                return;
                                            }
                                        }

                                        using (System.Data.Entity.DbContextTransaction mytran = wms.Database.BeginTransaction())
                                        {
                                            try
                                            {
                                                var newOlder = wms.JDJS_WMS_Order_Entry_Table.Where(r => r.Order_Number == OrderNum).FirstOrDefault();
                                                JDJS_WMS_Order_Blank_Table blank = new JDJS_WMS_Order_Blank_Table()
                                                {
                                                    OrderID                  = newOlder.Order_ID,
                                                    BlackNumber              = newOlder.Product_Output,
                                                    BlankAddition            = 0,
                                                    BlankSpecification       = null,
                                                    BlankState               = null,
                                                    BlanktotalPreparedNumber = 0,
                                                    BlankType                = null,
                                                };
                                                wms.JDJS_WMS_Order_Blank_Table.Add(blank);
                                                wms.SaveChanges();

                                                JDJS_WMS_Order_Guide_Schedu_Table guide = new JDJS_WMS_Order_Guide_Schedu_Table()
                                                {
                                                    OrderID    = newOlder.Order_ID,
                                                    ClientName = Customer
                                                };
                                                entities.JDJS_WMS_Order_Guide_Schedu_Table.Add(guide);
                                                entities.SaveChanges();

                                                var oldOlder       = wms.JDJS_WMS_Order_Entry_Table.Where(r => r.Order_Number == OldOrderNum).FirstOrDefault();
                                                var oldProcessInfo = wms.JDJS_WMS_Order_Process_Info_Table.Where(r => r.OrderID == oldOlder.Order_ID && r.sign == 1);
                                                foreach (var item in oldProcessInfo)
                                                {
                                                    string   oldprocessName = item.programName;
                                                    string[] str            = oldprocessName.Split('-');
                                                    string   NewProcessNum  = "";
                                                    if (str.Length == 2)
                                                    {
                                                        NewProcessNum = OrderNum + "-" + str[1];
                                                    }
                                                    string   oldToolName = item.toolChartName;
                                                    string[] toolStr     = oldToolName.Split('-');
                                                    string   NewToolNum  = "";
                                                    if (toolStr.Length == 3)
                                                    {
                                                        NewToolNum = "T" + "-" + OrderNum + "-" + toolStr[2];
                                                    }

                                                    JDJS_WMS_Order_Process_Info_Table process = new JDJS_WMS_Order_Process_Info_Table()
                                                    {
                                                        OrderID            = newOlder.Order_ID,
                                                        ProcessID          = item.ProcessID,
                                                        BlankNumber        = ProductOutPut,
                                                        BlankSpecification = item.BlankSpecification,
                                                        BlankType          = item.BlankType,
                                                        DeviceType         = item.DeviceType,
                                                        JigSpecification   = item.JigSpecification,
                                                        ProcessTime        = item.ProcessTime,
                                                        programName        = NewProcessNum,
                                                        sign            = item.sign,
                                                        toolChartName   = NewToolNum,
                                                        toolPreparation = item.toolPreparation,
                                                    };
                                                    wms.JDJS_WMS_Order_Process_Info_Table.Add(process);
                                                }
                                                wms.SaveChanges();
                                                mytran.Commit();
                                            }
                                            catch (Exception ex)
                                            {
                                                mytran.Rollback();
                                                context.Response.Write(ex.Message);
                                                return;
                                            }
                                        }


                                        using (System.Data.Entity.DbContextTransaction mytran = wms.Database.BeginTransaction())
                                        {
                                            try
                                            {
                                                var newOlder  = wms.JDJS_WMS_Order_Entry_Table.Where(r => r.Order_Number == OrderNum).FirstOrDefault();
                                                var processes = wms.JDJS_WMS_Order_Process_Info_Table.Where(r => r.OrderID == newOlder.Order_ID && r.sign == 1);
                                                foreach (var item in processes)
                                                {
                                                    JDJS_WMS_Order_Fixture_Manager_Table fix = new JDJS_WMS_Order_Fixture_Manager_Table()
                                                    {
                                                        ProcessID                  = item.ID,
                                                        FixtureAdditionNumber      = 0,
                                                        FixtureNumber              = 0,
                                                        FixtureFinishPerpareNumber = 0,
                                                    };
                                                    wms.JDJS_WMS_Order_Fixture_Manager_Table.Add(fix);
                                                }
                                                //给每个工序添加治具一行
                                                wms.SaveChanges();
                                                mytran.Commit();
                                            }
                                            catch (Exception ex)
                                            {
                                                mytran.Rollback();
                                                context.Response.Write(ex.Message);
                                                return;
                                            }
                                        }

                                        using (System.Data.Entity.DbContextTransaction mytran = wms.Database.BeginTransaction())
                                        {
                                            try
                                            {
                                                var newOlder  = wms.JDJS_WMS_Order_Entry_Table.Where(r => r.Order_Number == OrderNum).FirstOrDefault();
                                                var oldOlder  = wms.JDJS_WMS_Order_Entry_Table.Where(r => r.Order_Number == OldOrderNum).FirstOrDefault();
                                                var processes = wms.JDJS_WMS_Order_Process_Info_Table.Where(r => r.OrderID == newOlder.Order_ID && r.sign == 1);
                                                foreach (var item in processes)
                                                {
                                                    var oldProcess = wms.JDJS_WMS_Order_Process_Info_Table.Where(r => r.OrderID == oldOlder.Order_ID && r.ProcessID == item.ProcessID && r.sign == 1).FirstOrDefault();
                                                    var OldTool    = wms.JDJS_WMS_Order_Process_Tool_Info_Table.Where(r => r.ProcessID == oldProcess.ID);
                                                    foreach (var real in OldTool)
                                                    {
                                                        JDJS_WMS_Order_Process_Tool_Info_Table tool = new JDJS_WMS_Order_Process_Tool_Info_Table()
                                                        {
                                                            ProcessID     = item.ID,
                                                            PathName      = real.PathName,
                                                            Shank         = real.Shank,
                                                            ToolAroidance = real.ToolAroidance,
                                                            ToolDiameter  = real.ToolDiameter,
                                                            ToolLength    = real.ToolLength,
                                                            ToolName      = real.ToolName,
                                                            ToolNO        = real.ToolNO
                                                        };
                                                        wms.JDJS_WMS_Order_Process_Tool_Info_Table.Add(tool);
                                                    }
                                                    wms.SaveChanges();
                                                }
                                                wms.SaveChanges();
                                                mytran.Commit();
                                            }
                                            catch (Exception ex)
                                            {
                                                mytran.Rollback();
                                                context.Response.Write(ex.Message);
                                                return;
                                            }
                                        }

                                        {
                                            PathInfo pathInfo  = new PathInfo();
                                            var      NewFolder = Path.Combine(pathInfo.upLoadPath(), OrderNum);
                                            var      OldFolder = Path.Combine(pathInfo.upLoadPath(), OldOrderNum);


                                            List <string> srcPath = new List <string>();

                                            string[] src = Directory.GetFileSystemEntries(OldFolder);
                                            foreach (var item in src)
                                            {
                                                copyDir(item, NewFolder, OrderNum);
                                            }

                                            context.Response.Write("ok");
                                            return;
                                        }
                                    }
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        date.Rollback();
                        context.Response.Write(ex.Message);
                    }
                }
            }
        }
        public void ProcessRequest(HttpContext context)
        {
            var form          = context.Request.Form;
            var files         = context.Request.Files;
            var orderNumberId = int.Parse(form["orderId"]);    //订单id
            var workNumber    = int.Parse(form["workNumber"]); //工序号
            var time          = double.Parse(form[2]);         //探测点个数



            double   ToolTime    = 0.1666666666;   //换刀时间
            double   ProcessTime = 0;              //工序时间
            double   OnMachMea   = 0.033333333333; //探测时间
            int      toolNum     = 0;              //换刀次数
            int      toolFlag    = 1;
            string   ToolNo      = "0";
            PathInfo pathInfo    = new PathInfo();

            using (JDJS_WMS_DB_USEREntities entities = new JDJS_WMS_DB_USEREntities())
            {
                using (System.Data.Entity.DbContextTransaction mytran = entities.Database.BeginTransaction())
                {
                    try
                    {
                        if (entities.JDJS_WMS_Order_Process_Info_Table.Where(r => r.OrderID == orderNumberId & r.ProcessID == workNumber & r.sign == 1).Count() < 1)
                        {
                            context.Response.Write("该订单下工序不存在");
                            return;
                        }
                        var orderNumber = entities.JDJS_WMS_Order_Entry_Table.Where(r => r.Order_ID == orderNumberId).First().Order_Number;


                        var    name0         = files[0].FileName;
                        var    name1         = files[1].FileName;
                        string last0         = Path.GetExtension(name0);
                        string last1         = Path.GetExtension(name1);
                        var    program       = orderNumber + "-P" + workNumber + last0;
                        var    toolChartName = "T-" + orderNumber + "-P" + workNumber + last1;


                        var           path0      = Path.Combine(pathInfo.upLoadPath(), orderNumber, "加工文件", program);
                        DirectoryInfo directoryP = new DirectoryInfo(Path.Combine(pathInfo.upLoadPath(), orderNumber, "加工文件"));
                        if (!directoryP.Exists)
                        {
                            directoryP.Create();
                        }
                        files[0].SaveAs(path0);
                        var           path1      = Path.Combine(pathInfo.upLoadPath(), orderNumber, "刀具表", toolChartName);
                        DirectoryInfo directoryT = new DirectoryInfo(Path.Combine(pathInfo.upLoadPath(), orderNumber, "刀具表"));
                        if (!directoryT.Exists)
                        {
                            directoryT.Create();
                        }
                        files[1].SaveAs(path1);


                        {
                            string          FilePath   = path1;
                            string          path       = Path.GetFileNameWithoutExtension(FilePath);
                            int             ProcessID  = 0;
                            string[]        str        = path.Split('-');
                            string          OrderNum   = orderNumber;
                            string          Process    = workNumber.ToString();
                            List <int>      ToolNum    = new List <int>();
                            List <ToolInfo> toolInfos  = new List <ToolInfo>();
                            string          fileSuffix = System.IO.Path.GetExtension(FilePath);

                            if (fileSuffix == ".xls")
                            {
                                #region
                                {
                                    DataTable dt = getData(FilePath).Tables[0];
                                    dt.Columns[0].ColumnName = "序号";
                                    dt.Columns[1].ColumnName = "路径名";
                                    dt.Columns[2].ColumnName = "刀号";
                                    dt.Columns[3].ColumnName = "刀具";
                                    dt.Columns[4].ColumnName = "刀柄";
                                    dt.Columns[5].ColumnName = "刀具伸出长度";
                                    dt.Columns[6].ColumnName = "刃长";
                                    dt.Columns[7].ColumnName = "粗中光";
                                    dt.Columns[8].ColumnName = "加工时间";
                                    for (int i = 0; i < dt.Rows.Count; i++)
                                    {
                                        if (i == 0 || i == 1 || i == 2 || i == 3 || i == 4 || i == 5 || i == 6 || i == 8)
                                        {
                                            //dt.Rows.Remove(dt.Rows[0]);
                                        }
                                        else if (i == 7)
                                        {
                                            ProcessTime = 0;
                                        }
                                        else
                                        {
                                            string toolnum  = dt.Rows[i]["刀号"].ToString();
                                            double _toolnum = 0;
                                            if (isNumberic(toolnum, out _toolnum))
                                            {
                                                if (toolnum != ToolNo)
                                                {
                                                    toolNum++;
                                                    ToolNo = toolnum;
                                                }

                                                if (dt.Rows[i]["加工时间"].ToString() != "" && dt.Rows[i]["加工时间"] != null)
                                                {
                                                    if (dt.Rows[i]["加工时间"].ToString().Contains(':'))
                                                    {
                                                        var timeInfo = dt.Rows[i]["加工时间"].ToString().Split(':');
                                                        int hT       = Convert.ToInt32(timeInfo[0]);
                                                        int minT     = Convert.ToInt32(timeInfo[1]);
                                                        int secT     = Convert.ToInt32(timeInfo[2]);
                                                        ProcessTime += (hT * 60 + minT + ((float)secT / 60));
                                                    }
                                                    else if (dt.Rows[i]["加工时间"].ToString() == "---")
                                                    {
                                                        ProcessTime += 0;
                                                    }
                                                    else
                                                    {
                                                        ProcessTime += (Convert.ToDouble(dt.Rows[i]["加工时间"].ToString()) * 1440);
                                                    }
                                                }

                                                if (!ToolNum.Contains(Convert.ToInt32(dt.Rows[i]["刀号"].ToString())))
                                                {
                                                    ToolNum.Add(Convert.ToInt32(dt.Rows[i]["刀号"].ToString()));
                                                    ToolInfo tool = new ToolInfo();
                                                    tool.PathName = dt.Rows[i]["路径名"].ToString();
                                                    string toolno  = dt.Rows[i]["刀号"].ToString();
                                                    double _toolno = 0;
                                                    if (isNumberic(toolno, out _toolno))
                                                    {
                                                        tool.ToolNO = Convert.ToInt32(dt.Rows[i]["刀号"].ToString());
                                                    }
                                                    tool.ToolName = dt.Rows[i]["刀具"].ToString();
                                                    string tooll  = dt.Rows[i]["刀具伸出长度"].ToString();
                                                    double _tooll = 0;
                                                    if (isNumberic(tooll, out _tooll))
                                                    {
                                                        tool.ToolLength = Convert.ToDouble(dt.Rows[i]["刀具伸出长度"].ToString());
                                                    }
                                                    string ToolD  = dt.Rows[i]["刃长"].ToString();
                                                    double _ToolD = 0;
                                                    if (isNumberic(ToolD, out _ToolD))
                                                    {
                                                        tool.ToolAroidance = Convert.ToDouble(dt.Rows[i]["刃长"].ToString());
                                                    }

                                                    tool.Shank = dt.Rows[i]["刀柄"].ToString();
                                                    toolInfos.Add(tool);
                                                }
                                            }
                                        }
                                    }
                                }
                                #endregion
                            }
                            else
                            {
                                mytran.Rollback();
                                context.Response.Write("刀具表请输入xls格式文件");
                                return;
                            }
                            int DeviceTypeID = 0;
                            var process      = entities.JDJS_WMS_Order_Process_Info_Table.Where(r => r.OrderID == orderNumberId && r.ProcessID == workNumber && r.sign != 0).FirstOrDefault();
                            if (process != null)
                            {
                                DeviceTypeID = Convert.ToInt32(process.DeviceType);
                            }
                            //此处在查询特殊刀具时需要按照机床类型来找
                            var toolStand = entities.JDJS_WMS_Tool_Standard_Table.Where(r => r.MachTypeID == DeviceTypeID).ToList();
                            var CETOU     = toolStand.Where(r => r.Name == "测头" || r.Name == "探针");
                            int cetouID   = -1;
                            if (CETOU.Count() > 0)
                            {
                                cetouID = Convert.ToInt32(CETOU.First().ToolID.Substring(1));
                            }
                            List <string> toolStandNo = new List <string>();
                            foreach (var real in toolStand)
                            {
                                string strT = real.ToolID;
                                toolStandNo.Add(strT);
                            }
                            foreach (var item in toolInfos)
                            {
                                //判断是否有特殊刀具,判断刀具是否在刀具标准表是否存在

                                if (!toolStandNo.Contains("T" + item.ToolNO.ToString()))
                                {
                                    toolFlag = 0;
                                    break;
                                }
                            }
                            double times = Math.Ceiling(OnMachMea * time + ToolTime * toolNum + ProcessTime);
                            foreach (var item in entities.JDJS_WMS_Order_Process_Info_Table.Where(r => r.OrderID == orderNumberId & r.ProcessID == workNumber & r.sign == 1))
                            {
                                item.ProcessTime = times;

                                item.programName   = program;
                                item.toolChartName = toolChartName;
                            }
                            entities.SaveChanges();

                            var order = entities.JDJS_WMS_Order_Entry_Table.Where(r => r.Order_Number == OrderNum);
                            if (order.Count() > 0)
                            {
                                int    orderid = order.First().Order_ID;
                                double pros    = 0;
                                if (isNumberic(Process, out pros))
                                {
                                    int prose = Convert.ToInt32(Process);
                                    var pro   = entities.JDJS_WMS_Order_Process_Info_Table.Where(r => r.OrderID == orderid && r.ProcessID == prose & r.sign == 1);
                                    if (pro.Count() > 0)
                                    {
                                        ProcessID = pro.First().ID;
                                    }
                                }
                            }
                            foreach (var item in toolInfos)
                            {
                                if (item.ToolNO != cetouID)
                                {
                                    JDJS_WMS_Order_Process_Tool_Info_Table tool = new JDJS_WMS_Order_Process_Tool_Info_Table()
                                    {
                                        ProcessID  = ProcessID,
                                        PathName   = item.PathName,
                                        ToolNO     = item.ToolNO,
                                        ToolName   = item.ToolName,
                                        ToolLength = item.ToolLength,
                                        //ToolDiameter = item.ToolDiameter,
                                        ToolAroidance = item.ToolAroidance,
                                        Shank         = item.Shank
                                    };
                                    entities.JDJS_WMS_Order_Process_Tool_Info_Table.Add(tool);
                                }
                            }

                            entities.SaveChanges();
                        }



                        entities.SaveChanges();
                        mytran.Commit();
                    }
                    catch (Exception ex)
                    {
                        mytran.Rollback();
                        context.Response.Write(ex.Message);
                        return;
                    }

                    context.Response.ContentType = "text/plain";
                    context.Response.Write("Hello World");
                }
            }
        }