Exemplo n.º 1
0
        /// <summary>
        /// 防跳序
        /// </summary>
        /// <param name="batchNumber">生产批次号</param>
        /// <param name="productID">产品主键</param>
        /// <param name="startProcessID">当前工序</param>
        /// <returns>校验结果</returns>
        public string CheckSkipProcess(string batchNumber, string productID, string startProcessID)
        {
            string result = "";

            //获取所有工序信息
            List <ProcessInfo> allProcess = this.GetProductProcess(productID);

            //获取已完成工序信息
            List <TraceProcess> finishedProcess = new QualityTraceQueryBLL().GetTraceProcess(new TraceGood {
                BatchNumber = batchNumber
            });

            //定位当前工序
            int startProcessIndex = allProcess.FindIndex(p => p.PID == startProcessID);

            if (startProcessIndex == 0)
            {
                return(result);
            }

            if (startProcessIndex == -1)
            {
                result = "无此工序";
                return(result);
            }

            //获取当前开始工序的上一个工序编号
            ProcessInfo prevProcess = allProcess[startProcessIndex - 1];

            //判断上一工序是否完成
            bool isFinished = finishedProcess.Exists(p => p.ProcessCode == prevProcess.PCODE);

            //如完成返回空串,如未完成,提示应完成工序
            return(isFinished == true ? "" : "请先完成" + prevProcess.PNAME + "工序");
        }
Exemplo n.º 2
0
        /// <summary>
        /// 获取未完成生产计划
        /// </summary>
        /// <param name="condition">条件</param>
        /// <returns>仓库列表</returns>
        public List <ProducePlan> GetUnFinishedPlans(ProducePlan condition)
        {
            List <ProducePlan> list = new ProducePlanDAL().GetUnFinishedPlans(condition);

            foreach (ProducePlan plan in list)
            {
                //获取物料组成
                List <TraceMaterial> materials = new QualityTraceQueryBLL().GetTraceMaterial(new TraceGood {
                    BatchNumber = plan.BATCHNUMBER
                });
                plan.Materials = "";

                foreach (TraceMaterial m in materials)
                {
                    plan.Materials += "," + m.MatName;
                }

                if (string.IsNullOrEmpty(plan.Materials) == false)
                {
                    plan.Materials = plan.Materials.Substring(1);
                }

                //获取工序信息

                //获取已完成工序信息
                List <TraceProcess> processList = new QualityTraceQueryBLL().GetTraceProcess(new TraceGood {
                    BatchNumber = plan.BATCHNUMBER
                });
                foreach (TraceProcess p in processList)
                {
                    plan.FinishedProcess += "," + p.ProcessName;
                }

                if (string.IsNullOrEmpty(plan.FinishedProcess) == false)
                {
                    plan.FinishedProcess = plan.FinishedProcess.Substring(1);
                }

                if (processList.Count > 0)
                {
                    plan.StartTime = processList[0].WorkingStartTime;
                }

                //生成未完成工序信息
            }

            return(list);
        }
Exemplo n.º 3
0
        private void BindData()
        {
            QualityTraceQueryBLL  bll       = null;
            DataPage              dp        = new DataPage();
            QualityTraceCondition condition = new QualityTraceCondition();

            try
            {
                bll = BLLFactory.CreateBLL <QualityTraceQueryBLL>();
                condition.StartDate          = this.StartDate.Text;
                condition.EndDate            = this.EndDate.Text;
                condition.Factory            = this.Factory.SelectedValue;
                condition.ProductLine        = this.ProductLine.SelectedValue;
                condition.Product            = this.Product.SelectedValue;
                condition.ProductBatchNumber = this.ProductBatchNumber.Text;
                condition.MatIDCode          = this.MatIDCode.Text;
                condition.ProductIDCode      = this.ProductIDCode.Text;
                PagerHelper.InitPageControl(this.AspNetPager1, dp, true);
                dp = bll.GetList(condition, dp);

                List <QualityTraceInfo> list = dp.Result as List <QualityTraceInfo>;
                this.GvList.DataSource = list;
                this.GvList.DataBind();

                for (int i = 0; i < this.GvList.Rows.Count; i++)
                {
                    LinkButton lbtQualityTrace = this.GvList.Rows[i].Cells[7].FindControl("lbtQualityTrace") as LinkButton;

                    lbtQualityTrace.OnClientClick = "viewTraceDetail('" + this.GvList.DataKeys[i]["PID"].ToString() + "');return false;";
                }

                PagerHelper.SetPageControl(AspNetPager1, dp, true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// 防漏序
        /// </summary>
        /// <param name="batchNumber">生产批次号</param>
        /// <param name="productID">产品主键</param>
        /// <returns>校验结果</returns>
        public string CheckMissingProcess(string batchNumber, string productID)
        {
            string result = "";
            //获取所有工序信息
            List <ProcessInfo> allProcess = this.GetProductProcess(productID);

            //获取已完成工序信息
            List <TraceProcess> finishedProcess = new QualityTraceQueryBLL().GetTraceProcess(new TraceGood {
                BatchNumber = batchNumber
            });

            //判断工序所有是否全部完成
            foreach (ProcessInfo pi in allProcess)
            {
                bool f = finishedProcess.Exists(p => p.ProcessCode == pi.PCODE);
                if (f == false)
                {
                    result = pi.PNAME + "工序" + "未完成";
                    break;
                }
            }
            return(result);
        }
Exemplo n.º 5
0
        private void BindData()
        {
            TraceGood good = null;
            string    pid  = Request.QueryString["pid"];

            //绑定产品基本信息
            good = new QualityTraceQueryBLL().GetTraceGood(pid);
            UIBindHelper.BindForm(this.Page, good);

            //绑定物料组成信息
            List <TraceMaterial> materialList = new QualityTraceQueryBLL().GetTraceMaterial(new TraceGood {
                BatchNumber = good.BatchNumber
            });

            this.HiMaterial.Value = LAF.Common.Serialization.JsonConvertHelper.GetSerializes(materialList);

            //绑定加工工序信息
            List <TraceProcess> processList = new QualityTraceQueryBLL().GetTraceProcess(new TraceGood {
                BatchNumber = good.BatchNumber
            });

            this.HiProcess.Value = LAF.Common.Serialization.JsonConvertHelper.GetSerializes(processList);
        }
Exemplo n.º 6
0
        private void BindData()
        {
            string batchNumber = "2017111401";
            string barCode     = Request.QueryString["BarCode"];

            TraceGood good = null;

            batchNumber = new GoodPackingBLL().GetBatchNumberByBarCode(barCode);

            if (string.IsNullOrEmpty(batchNumber) == true)
            {
                this.ProduceName.Text = "追溯码无效";
                return;
            }

            //绑定产品基本信息
            good = new QualityTraceQueryBLL().GetTraceGoodByBN(batchNumber);

            if (good == null)
            {
                this.ProduceName.Text = "追溯码无效";
                return;
            }

            this.ProduceName.Text        = good.ProductName;
            this.SPECIFICATION.Text      = good.SPECIFICATION;
            this.ProductionAddress.Text  = good.ProductionAddress;
            this.Manufacturer.Text       = good.Manufacturer;
            this.QualityPeriod.Text      = good.QualityPeriod;
            this.ProduceDate.Text        = good.ProduceDate.ToString("yyyy年MM月dd日");
            this.ProduceBatchNumber.Text = good.BatchNumber;
            this.ProductionLicense.Text  = good.ProductionLicense;
            this.ProductStandard.Text    = good.ProductStandard;

            //绑定物料组成信息
            List <TraceMaterial> materialList = new QualityTraceQueryBLL().GetTraceMaterial(new TraceGood {
                BatchNumber = good.BatchNumber
            });

            materialList = materialList.GroupBy(x => new
            {
                x.MatName,
                x.ProductPlace
            }).Select(g => new TraceMaterial
            {
                MatName      = g.Key.MatName,
                ProductPlace = g.Key.ProductPlace
            })
                           .ToList();

            int seq1 = 1;

            foreach (TraceMaterial tm in materialList)
            {
                this.lblMaterials.Text += string.Format("<tr><td align=center>{0}</td><td align=center>{1}</td><td align=center><a href=\"#\">{2}</a></td></tr>", seq1.ToString(), tm.MatName, tm.ProductPlace);
                seq1++;
            }

            //绑定加工工序信息
            List <TraceProcess> processList = new QualityTraceQueryBLL().GetTraceProcess(new TraceGood {
                BatchNumber = good.BatchNumber
            });

            int seq2 = 1;

            foreach (TraceProcess tp in processList)
            {
                this.tblProcess.Text += string.Format("<tr><td align=center>{0}</td><td align=center>{1}</td><td align=center>{2}</td></tr>", seq2.ToString(), tp.ProcessName, tp.EquName);
                seq2++;
            }
        }