/// <summary>
        /// 点击datagrid checkbox时判断是否存在
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public dynamic PostCurrentProductList(dynamic data)
        {
            var    result                       = new { status = 0 };
            string ProductRate                  = data.ProductRate;
            string ContractCode                 = data.ContractCode;
            int    ProductID                    = data.ProductID;
            string PlanCode                     = data.PlanCode;
            string ProcessType                  = data.ProcessType;
            string PartCode                     = data.PartCode;
            var    PRS_Process_BOMList          = new PRS_Process_BOMService().GetModelList();
            var    PartQuantity                 = PRS_Process_BOMList.Where(a => a.PartCode == PartCode && a.ContractCode == ContractCode && a.ProductID == ProductID).FirstOrDefault().PartQuantity ?? 0;//单台数量
            var    APS_ProjectProduceDetialList = new APS_ProjectProduceDetialService().GetModelList();
            var    ProcuctList                  = APS_ProjectProduceDetialList
                                                  .Where(a =>
                                                         a.ContractCode == ContractCode &&
                                                         a.ProjectDetailID == ProductID &&
                                                         a.PartCode == PartCode &&
                                                         a.ProcessModelType == ProcessType &&
                                                         a.MonthPlanCode == PlanCode).Count();

            if (ProcuctList > 0)
            {
                result = new { status = 0 };
            }
            else
            {
                result = new { status = 1 };
            }
            return(result);
        }
        public dynamic GetProductTreeList([FromUri] TreeNodeModel model)
        {
            var PMS_BN_ProjectDetailList     = new PMS_BN_ProjectDetailService().GetModelList();
            var PRS_Process_BOMList          = new PRS_Process_BOMService().GetModelList();
            var APS_ProjectProduceDetialList = new APS_ProjectProduceDetialService().GetModelList();

            var list = TreeNodeManage.GetTreeNodeList <dynamic>(
                TreeNodeManage.Instance()
                .SetNode(model.NodeField)
                .SetParentNode(model.ParentNodeField, model.ParentNodeValue)
                .SetTableName(model.TableName)
                .SetNodeLevel(model.IsLevel)
                .SetTreeSetting(model.TreeSetting)
                .SetWhereSql(model.WhereSql));

            var new_list = new List <dynamic>();

            list.ForEach(item =>
            {
                dynamic item_old = item;

                string ContractCode = item_old.ContractCode;
                int ProductID       = item_old.ProductID;
                string PartCode     = item_old.PartCode;
                var Quantity        = PMS_BN_ProjectDetailList.Where(a => a.ID == ProductID).FirstOrDefault().Quantity ?? 0;                                                                   //合同台数
                var PartQuantity    = PRS_Process_BOMList.Where(a => a.PartCode == PartCode && a.ContractCode == ContractCode && a.ProductID == ProductID).FirstOrDefault().PartQuantity ?? 0; //单台数量
                int ProductTotal    = Quantity * PartQuantity;                                                                                                                                 //生产总数=合同台数*单台数量
                //已生产数量
                //var ProcuctList = APS_ProjectProduceDetialList
                //.Where(a => a.ContractCode == ContractCode && a.ProjectDetailID == ProductID && a.PartCode == PartCode)
                //.GroupBy(a => new { a.ProcessModelType, a.MonthPlanCode })
                //.Select(a => new { ProcessType = a.Key.ProcessModelType, a.Key.MonthPlanCode, Quantity = a.Max(b => b.Quantity) });
                var ProcuctList = APS_ProjectProduceDetialList
                                  .Where(a => a.ContractCode == ContractCode && a.ProjectDetailID == ProductID && a.PartCode == PartCode)
                                  .GroupBy(a => new { a.ProcessModelType, a.ProcessCode })
                                  .Select(a => new { ProcessType = a.Key.ProcessModelType, ProcessCode = a.Key.ProcessCode, Quantity = a.Sum(b => b.Quantity) });

                int BlankingTotal   = ProcuctList.Where(a => a.ProcessType == "1").FirstOrDefault() == null ? 0 : ProcuctList.Where(a => a.ProcessType == "1").FirstOrDefault().Quantity ?? 0;
                int WeldingTotal    = ProcuctList.Where(a => a.ProcessType == "2").FirstOrDefault() == null ? 0 : ProcuctList.Where(a => a.ProcessType == "2").FirstOrDefault().Quantity ?? 0;
                int MachiningTotal  = ProcuctList.Where(a => a.ProcessType == "3").FirstOrDefault() == null ? 0 : ProcuctList.Where(a => a.ProcessType == "3").FirstOrDefault().Quantity ?? 0;
                int AssemblingTotal = ProcuctList.Where(a => a.ProcessType == "4").FirstOrDefault() == null ? 0 : ProcuctList.Where(a => a.ProcessType == "4").FirstOrDefault().Quantity ?? 0;

                item_old.BlankingTotal   = BlankingTotal.ToString() + "/" + ProductTotal.ToString();
                item_old.WeldingTotal    = WeldingTotal.ToString() + "/" + ProductTotal.ToString();
                item_old.MachiningTotal  = MachiningTotal.ToString() + "/" + ProductTotal.ToString();
                item_old.AssemblingTotal = AssemblingTotal.ToString() + "/" + ProductTotal.ToString();

                new_list.Add(item_old);
            });
            return(new_list);
        }