226 lines
		
	
	
		
			9.7 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			226 lines
		
	
	
		
			9.7 KiB
		
	
	
	
		
			C#
		
	
	
	
using BLL;
 | 
						|
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Data;
 | 
						|
using System.Linq;
 | 
						|
 | 
						|
namespace FineUIPro.Web.Transfer
 | 
						|
{
 | 
						|
    public partial class PipingEdit : PageBase
 | 
						|
    {
 | 
						|
        #region 定义项
 | 
						|
        /// <summary>
 | 
						|
        /// 主键
 | 
						|
        /// </summary>
 | 
						|
        private string Id
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                return (string)ViewState["Id"];
 | 
						|
            }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                ViewState["Id"] = value;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// 项目主键
 | 
						|
        /// </summary>
 | 
						|
        public string ProjectId
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                return (string)ViewState["ProjectId"];
 | 
						|
            }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                ViewState["ProjectId"] = value;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
 | 
						|
        protected void Page_Load(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            if (!IsPostBack)
 | 
						|
            {
 | 
						|
                Id = Request.Params["Id"];
 | 
						|
                ProjectId = this.CurrUser.LoginProjectId;
 | 
						|
                if (!string.IsNullOrEmpty(Id))
 | 
						|
                {
 | 
						|
                    var model = Funs.DB.Transfer_Piping.FirstOrDefault(x => x.Id == Id);
 | 
						|
                    if (model != null)
 | 
						|
                    {
 | 
						|
                        txtSN.Text = model.SN.ToString();
 | 
						|
                        txtPIPINGLINENUMBER.Text = model.PIPINGLINENUMBER;
 | 
						|
                        txtSYSTEM.Text = model.SYSTEM;
 | 
						|
                        txtSubsystem.Text = model.Subsystem;
 | 
						|
                        txtTestPackage.Text = model.TestPackage;
 | 
						|
                        txtDescriptions.Text = model.Descriptions;
 | 
						|
                        //ddlPWD.SelectedValue = model.PWD;
 | 
						|
                        //ddlApunchclosed.SelectedValue = model.Apunchclosed;
 | 
						|
                        //ddlNDTReport.SelectedValue = model.NDTReport;
 | 
						|
                        //ddlTemperaryMeasurement.SelectedValue = model.TemperaryMeasurement;
 | 
						|
                        //ddlHydrostaticTest.SelectedValue = model.HydrostaticTest;
 | 
						|
                        //ddlReport.SelectedValue = model.Report;
 | 
						|
                        //ddlBlowingflushing.SelectedValue = model.Blowingflushing;
 | 
						|
                        //ddlFWDfinished.SelectedValue = model.FWDfinished;
 | 
						|
                        //ddlSystemreinstalled.SelectedValue = model.Systemreinstalled;
 | 
						|
                        //txtBlowingReport.Text = model.BlowingReport;
 | 
						|
 | 
						|
                        txtTotalFactor.Text = model.TotalFactor.ToString();
 | 
						|
                        txtCompleteFactor.Text = model.CompleteFactor.ToString();
 | 
						|
                        txtCompleteProportion.Text = model.CompleteProportion.ToString();
 | 
						|
                        ddlPressureTestCompleted.SelectedValue = model.PressureTestCompleted;
 | 
						|
                        ddlRinseAndBlowClean.SelectedValue = model.RinseAndBlowClean;
 | 
						|
                        ddlReduction.SelectedValue = model.Reduction;
 | 
						|
                        ddlElectricHeatTracing.SelectedValue = model.ElectricHeatTracing;
 | 
						|
                        ddlInsulation.SelectedValue = model.Insulation;
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    var model = Funs.DB.Transfer_Piping.OrderByDescending(x => x.SN).FirstOrDefault(x => x.ProjectId == CurrUser.LoginProjectId);
 | 
						|
                    if (model == null)
 | 
						|
                        txtSN.Text = "1001";
 | 
						|
                    else
 | 
						|
                        txtSN.Text = (model.SN + 1).ToString();
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        protected void btnSave_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            var model = new Model.Transfer_Piping()
 | 
						|
            {
 | 
						|
                SN = Convert.ToInt32(txtSN.Text),
 | 
						|
                ProjectId = ProjectId,
 | 
						|
                PIPINGLINENUMBER = txtPIPINGLINENUMBER.Text,
 | 
						|
                SYSTEM = txtSYSTEM.Text,
 | 
						|
                Subsystem = txtSubsystem.Text,
 | 
						|
                TestPackage = txtTestPackage.Text,
 | 
						|
                //PWD = ddlPWD.SelectedValue,
 | 
						|
                //Apunchclosed = ddlApunchclosed.SelectedValue,
 | 
						|
                //NDTReport= ddlNDTReport.SelectedValue,
 | 
						|
                //TemperaryMeasurement= ddlTemperaryMeasurement.SelectedValue,
 | 
						|
                //HydrostaticTest=ddlHydrostaticTest.SelectedValue,
 | 
						|
                //Report= ddlReport.SelectedValue,
 | 
						|
                //Blowingflushing= ddlBlowingflushing.SelectedValue,
 | 
						|
                //FWDfinished= ddlFWDfinished.SelectedValue,
 | 
						|
                //Systemreinstalled= ddlSystemreinstalled.SelectedValue,
 | 
						|
                //BlowingReport= txtBlowingReport.Text,
 | 
						|
 | 
						|
                TotalFactor = Convert.ToDecimal(txtTotalFactor.Text.Trim()),
 | 
						|
                CompleteFactor = Convert.ToDecimal(txtCompleteFactor.Text.Trim()),
 | 
						|
                CompleteProportion = Convert.ToDecimal(txtCompleteProportion.Text.Trim()),
 | 
						|
                PressureTestCompleted = ddlPressureTestCompleted.SelectedValue,
 | 
						|
                RinseAndBlowClean = ddlRinseAndBlowClean.SelectedValue,
 | 
						|
                Reduction = ddlReduction.SelectedValue,
 | 
						|
                ElectricHeatTracing = ddlElectricHeatTracing.SelectedValue,
 | 
						|
                Insulation = ddlInsulation.SelectedValue,
 | 
						|
 | 
						|
                Descriptions = txtDescriptions.Text
 | 
						|
            };
 | 
						|
            #region 判断状态
 | 
						|
            var listObj = new List<string>();
 | 
						|
            //listObj.Add(model.PWD);
 | 
						|
            //listObj.Add(model.Apunchclosed);
 | 
						|
            //listObj.Add(model.NDTReport);
 | 
						|
            //listObj.Add(model.TemperaryMeasurement);
 | 
						|
            //listObj.Add(model.HydrostaticTest);
 | 
						|
            //listObj.Add(model.Report);
 | 
						|
            //listObj.Add(model.Blowingflushing);
 | 
						|
            //listObj.Add(model.FWDfinished);
 | 
						|
            //listObj.Add(model.Systemreinstalled);
 | 
						|
            //listObj.Add(model.BlowingReport);
 | 
						|
 | 
						|
            //listObj.Add(model.TotalFactor);
 | 
						|
            //listObj.Add(model.CompleteFactor);
 | 
						|
            //listObj.Add(model.CompleteProportion);
 | 
						|
            listObj.Add(model.PressureTestCompleted);
 | 
						|
            listObj.Add(model.RinseAndBlowClean);
 | 
						|
            listObj.Add(model.Reduction);
 | 
						|
 | 
						|
            model.FINALStatus = "Not Start";
 | 
						|
            //全是NA或Completed 状态是Completed
 | 
						|
            if (listObj.Where(x => x == "NA" || x == "Completed").ToList().Count == 3)
 | 
						|
            {
 | 
						|
                model.FINALStatus = "Completed";
 | 
						|
 | 
						|
            }
 | 
						|
            //如果全是NA或Not Start、空 就是 Not Start
 | 
						|
            else if (listObj.Where(x => string.IsNullOrWhiteSpace(x) || x == "NA" || x == "Not Start").ToList().Count == 3)
 | 
						|
            {
 | 
						|
                model.FINALStatus = "Not Start";
 | 
						|
 | 
						|
            }
 | 
						|
            //如果其中有一项是In progress 或Not Start、空 是 In progress
 | 
						|
            else if (listObj.Where(x => string.IsNullOrWhiteSpace(x) || x == "In progress" || x == "Not Start").ToList().Count >= 1)
 | 
						|
            {
 | 
						|
                model.FINALStatus = "In progress";
 | 
						|
            }
 | 
						|
 | 
						|
 | 
						|
            #endregion
 | 
						|
 | 
						|
            if (!string.IsNullOrEmpty(Id))
 | 
						|
            {
 | 
						|
                var newModel = Funs.DB.Transfer_Piping.FirstOrDefault(x => x.Id == Id);
 | 
						|
                newModel.SN = model.SN;
 | 
						|
                newModel.PIPINGLINENUMBER = model.PIPINGLINENUMBER;
 | 
						|
                newModel.SYSTEM = model.SYSTEM;
 | 
						|
                newModel.Subsystem = model.Subsystem;
 | 
						|
                newModel.TestPackage = txtTestPackage.Text;
 | 
						|
                //newModel.PWD = ddlPWD.SelectedValue;
 | 
						|
                //newModel.Apunchclosed = ddlApunchclosed.SelectedValue;
 | 
						|
                //newModel.NDTReport = ddlNDTReport.SelectedValue;
 | 
						|
                //newModel.TemperaryMeasurement = ddlTemperaryMeasurement.SelectedValue;
 | 
						|
                //newModel.HydrostaticTest = ddlHydrostaticTest.SelectedValue;
 | 
						|
                //newModel.Report = ddlReport.SelectedValue;
 | 
						|
                //newModel.Blowingflushing = ddlBlowingflushing.SelectedValue;
 | 
						|
                //newModel.FWDfinished = ddlFWDfinished.SelectedValue;
 | 
						|
                //newModel.Systemreinstalled = ddlSystemreinstalled.SelectedValue;
 | 
						|
                //newModel.BlowingReport = txtBlowingReport.Text;
 | 
						|
 | 
						|
                newModel.TotalFactor = Convert.ToDecimal(txtTotalFactor.Text.Trim());
 | 
						|
                newModel.CompleteFactor = Convert.ToDecimal(txtCompleteFactor.Text.Trim());
 | 
						|
                newModel.CompleteProportion = Convert.ToDecimal(txtCompleteProportion.Text.Trim());
 | 
						|
                newModel.PressureTestCompleted = ddlPressureTestCompleted.SelectedValue;
 | 
						|
                newModel.RinseAndBlowClean = ddlRinseAndBlowClean.SelectedValue;
 | 
						|
                newModel.Reduction = ddlReduction.SelectedValue;
 | 
						|
                newModel.ElectricHeatTracing = ddlElectricHeatTracing.SelectedValue;
 | 
						|
                newModel.Insulation = ddlInsulation.SelectedValue;
 | 
						|
 | 
						|
                newModel.FINALStatus = model.FINALStatus;
 | 
						|
                newModel.Descriptions = txtDescriptions.Text;
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                model.Id = Id = Guid.NewGuid().ToString();
 | 
						|
                Funs.DB.Transfer_Piping.InsertOnSubmit(model);
 | 
						|
            }
 | 
						|
            Funs.DB.SubmitChanges();
 | 
						|
            ShowNotify("保存成功", MessageBoxIcon.Success);
 | 
						|
            PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
        protected void TextBox_OnTextChanged(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            decimal num1 = 0, num2 = 0;
 | 
						|
            if (!string.IsNullOrEmpty(this.txtTotalFactor.Text.Trim()))
 | 
						|
            {
 | 
						|
                num1 = Convert.ToDecimal(this.txtTotalFactor.Text.Trim());
 | 
						|
            }
 | 
						|
            if (!string.IsNullOrEmpty(this.txtCompleteFactor.Text.Trim()))
 | 
						|
            {
 | 
						|
                num2 = Convert.ToDecimal(this.txtCompleteFactor.Text.Trim());
 | 
						|
            }
 | 
						|
            if (num1 > 0 && num2 > 0)
 | 
						|
            {
 | 
						|
                var dCompleteProportion = Math.Round(((num2 / num1) * 100), 2);
 | 
						|
                this.txtCompleteProportion.Text = dCompleteProportion.ToString();
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
    }
 | 
						|
} |