qinqi 7 месяцев назад
Родитель
Сommit
4e82e59419

Разница между файлами не показана из-за своего большого размера
+ 698 - 682
DK.Client/PMModule/F_PM_0101.Designer.cs


+ 15 - 0
DK.Client/PMModule/F_PM_0101.cs

@@ -458,5 +458,20 @@ namespace Dongke.IBOSS.PRD.Client.PMModule
                     MethodBase.GetCurrentMethod().Name, this.Text, ex);
             }
         }
+
+		private void tsbtnCancel_Click(object sender, EventArgs e)
+		{
+            try
+            {
+                F_PM_0108 f_PM_0108 = new F_PM_0108();
+                f_PM_0108.ShowDialog();
+            }
+            catch (Exception ex)
+            {
+                // 对异常进行共通处理
+                ExceptionManager.HandleEventException(this.ToString(),
+                    MethodBase.GetCurrentMethod().Name, this.Text, ex);
+            }
+        }
 	}
 }

+ 232 - 0
DK.Client/PMModule/F_PM_0108.Designer.cs

@@ -0,0 +1,232 @@
+
+namespace Dongke.IBOSS.PRD.Client.PMModule
+{
+    partial class F_PM_0108
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+			System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(F_PM_0108));
+			this.lblGroutingLineCode = new Dongke.IBOSS.PRD.Basics.BaseControls.C_Label();
+			this.txtGroutingLineCode = new Dongke.IBOSS.PRD.Basics.BaseControls.C_TextBox();
+			this.btnSearch = new Dongke.IBOSS.PRD.Basics.BaseControls.C_Button();
+			this.btnOK = new Dongke.IBOSS.PRD.Basics.BaseControls.C_Button();
+			this.btnCancel = new Dongke.IBOSS.PRD.Basics.BaseControls.C_Button();
+			this.txtTextBox1 = new Dongke.WinForm.Controls.TxtTextBox();
+			this.txtpici = new Dongke.IBOSS.PRD.Basics.BaseControls.C_TextBox();
+			this.c_Label1 = new Dongke.IBOSS.PRD.Basics.BaseControls.C_Label();
+			this.txtGroutingDateBegin = new Dongke.IBOSS.PRD.Basics.BaseControls.C_DateTimePicker();
+			this.lblGroutingDate = new Dongke.IBOSS.PRD.Basics.BaseControls.C_Label();
+			this.SuspendLayout();
+			// 
+			// lblGroutingLineCode
+			// 
+			this.lblGroutingLineCode.AutoSize = true;
+			this.lblGroutingLineCode.BackColor = System.Drawing.Color.Transparent;
+			this.lblGroutingLineCode.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+			this.lblGroutingLineCode.ForeColor = System.Drawing.SystemColors.ControlText;
+			this.lblGroutingLineCode.Image = ((System.Drawing.Image)(resources.GetObject("lblGroutingLineCode.Image")));
+			this.lblGroutingLineCode.Location = new System.Drawing.Point(173, 16);
+			this.lblGroutingLineCode.Name = "lblGroutingLineCode";
+			this.lblGroutingLineCode.Size = new System.Drawing.Size(65, 12);
+			this.lblGroutingLineCode.TabIndex = 0;
+			this.lblGroutingLineCode.Text = "成型线编码";
+			// 
+			// txtGroutingLineCode
+			// 
+			this.txtGroutingLineCode.BackColor = System.Drawing.SystemColors.Window;
+			this.txtGroutingLineCode.BackgroundColor = System.Drawing.SystemColors.Window;
+			this.txtGroutingLineCode.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper;
+			this.txtGroutingLineCode.ErrorMessage = "";
+			this.txtGroutingLineCode.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+			this.txtGroutingLineCode.ImeMode = System.Windows.Forms.ImeMode.Off;
+			this.txtGroutingLineCode.Location = new System.Drawing.Point(244, 12);
+			this.txtGroutingLineCode.MaxLength = 30;
+			this.txtGroutingLineCode.Name = "txtGroutingLineCode";
+			this.txtGroutingLineCode.Size = new System.Drawing.Size(98, 21);
+			this.txtGroutingLineCode.TabIndex = 1;
+			this.txtGroutingLineCode.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtGroutingLineCode_KeyPress);
+			// 
+			// btnSearch
+			// 
+			this.btnSearch.BackColor = System.Drawing.Color.Transparent;
+			this.btnSearch.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btnSearch.BackgroundImage")));
+			this.btnSearch.Font = new System.Drawing.Font("宋体", 9F);
+			this.btnSearch.ForeColor = System.Drawing.Color.White;
+			this.btnSearch.Location = new System.Drawing.Point(257, 40);
+			this.btnSearch.Name = "btnSearch";
+			this.btnSearch.Size = new System.Drawing.Size(85, 30);
+			this.btnSearch.TabIndex = 9;
+			this.btnSearch.Text = "查询(&Q)";
+			this.btnSearch.UseVisualStyleBackColor = true;
+			this.btnSearch.Click += new System.EventHandler(this.btnSearch_Click);
+			// 
+			// btnOK
+			// 
+			this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+			this.btnOK.BackColor = System.Drawing.Color.Transparent;
+			this.btnOK.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btnOK.BackgroundImage")));
+			this.btnOK.Enabled = false;
+			this.btnOK.Font = new System.Drawing.Font("宋体", 9F);
+			this.btnOK.ForeColor = System.Drawing.Color.White;
+			this.btnOK.Location = new System.Drawing.Point(168, 411);
+			this.btnOK.Name = "btnOK";
+			this.btnOK.Size = new System.Drawing.Size(85, 30);
+			this.btnOK.TabIndex = 3;
+			this.btnOK.Text = "确定";
+			this.btnOK.UseVisualStyleBackColor = true;
+			this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
+			// 
+			// btnCancel
+			// 
+			this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+			this.btnCancel.BackColor = System.Drawing.Color.Transparent;
+			this.btnCancel.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btnCancel.BackgroundImage")));
+			this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+			this.btnCancel.Font = new System.Drawing.Font("宋体", 9F);
+			this.btnCancel.ForeColor = System.Drawing.Color.White;
+			this.btnCancel.Location = new System.Drawing.Point(259, 411);
+			this.btnCancel.Name = "btnCancel";
+			this.btnCancel.Size = new System.Drawing.Size(85, 30);
+			this.btnCancel.TabIndex = 4;
+			this.btnCancel.Text = "取消";
+			this.btnCancel.UseVisualStyleBackColor = true;
+			this.btnCancel.Click += new System.EventHandler(this.btnClose_Click);
+			// 
+			// txtTextBox1
+			// 
+			this.txtTextBox1.Location = new System.Drawing.Point(14, 76);
+			this.txtTextBox1.Multiline = true;
+			this.txtTextBox1.Name = "txtTextBox1";
+			this.txtTextBox1.ReadOnly = true;
+			this.txtTextBox1.Size = new System.Drawing.Size(328, 329);
+			this.txtTextBox1.TabIndex = 10;
+			// 
+			// txtpici
+			// 
+			this.txtpici.BackColor = System.Drawing.SystemColors.Window;
+			this.txtpici.BackgroundColor = System.Drawing.SystemColors.Window;
+			this.txtpici.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper;
+			this.txtpici.ErrorMessage = "";
+			this.txtpici.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+			this.txtpici.ImeMode = System.Windows.Forms.ImeMode.Off;
+			this.txtpici.Location = new System.Drawing.Point(69, 46);
+			this.txtpici.MaxLength = 30;
+			this.txtpici.Name = "txtpici";
+			this.txtpici.Size = new System.Drawing.Size(98, 21);
+			this.txtpici.TabIndex = 11;
+			// 
+			// c_Label1
+			// 
+			this.c_Label1.AutoSize = true;
+			this.c_Label1.BackColor = System.Drawing.Color.Transparent;
+			this.c_Label1.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+			this.c_Label1.ForeColor = System.Drawing.SystemColors.ControlText;
+			this.c_Label1.Image = ((System.Drawing.Image)(resources.GetObject("c_Label1.Image")));
+			this.c_Label1.Location = new System.Drawing.Point(34, 49);
+			this.c_Label1.Name = "c_Label1";
+			this.c_Label1.Size = new System.Drawing.Size(29, 12);
+			this.c_Label1.TabIndex = 12;
+			this.c_Label1.Text = "批次";
+			// 
+			// txtGroutingDateBegin
+			// 
+			this.txtGroutingDateBegin.CustomFormat = "yyyy-MM-dd";
+			this.txtGroutingDateBegin.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+			this.txtGroutingDateBegin.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
+			this.txtGroutingDateBegin.Location = new System.Drawing.Point(69, 12);
+			this.txtGroutingDateBegin.Name = "txtGroutingDateBegin";
+			this.txtGroutingDateBegin.Size = new System.Drawing.Size(98, 21);
+			this.txtGroutingDateBegin.TabIndex = 14;
+			// 
+			// lblGroutingDate
+			// 
+			this.lblGroutingDate.AutoSize = true;
+			this.lblGroutingDate.BackColor = System.Drawing.Color.Transparent;
+			this.lblGroutingDate.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+			this.lblGroutingDate.ForeColor = System.Drawing.SystemColors.ControlText;
+			this.lblGroutingDate.Location = new System.Drawing.Point(10, 16);
+			this.lblGroutingDate.Name = "lblGroutingDate";
+			this.lblGroutingDate.Size = new System.Drawing.Size(53, 12);
+			this.lblGroutingDate.TabIndex = 13;
+			this.lblGroutingDate.Text = "注浆日期";
+			// 
+			// F_PM_0108
+			// 
+			this.AcceptButton = this.btnOK;
+			this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+			this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+			this.CancelButton = this.btnCancel;
+			this.ClientSize = new System.Drawing.Size(356, 466);
+			this.Controls.Add(this.txtGroutingDateBegin);
+			this.Controls.Add(this.lblGroutingDate);
+			this.Controls.Add(this.c_Label1);
+			this.Controls.Add(this.txtpici);
+			this.Controls.Add(this.txtTextBox1);
+			this.Controls.Add(this.btnSearch);
+			this.Controls.Add(this.lblGroutingLineCode);
+			this.Controls.Add(this.txtGroutingLineCode);
+			this.Controls.Add(this.btnCancel);
+			this.Controls.Add(this.btnOK);
+			this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
+			this.IsSaveFormLocation = false;
+			this.IsSaveFormSize = false;
+			this.MaximizeBox = false;
+			this.MinimizeBox = false;
+			this.Name = "F_PM_0108";
+			this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+			this.StatusSizingGrip = false;
+			this.Text = "撤销注浆登记";
+			this.Load += new System.EventHandler(this.F_PM_0108_Load);
+			this.Controls.SetChildIndex(this.btnOK, 0);
+			this.Controls.SetChildIndex(this.btnCancel, 0);
+			this.Controls.SetChildIndex(this.txtGroutingLineCode, 0);
+			this.Controls.SetChildIndex(this.lblGroutingLineCode, 0);
+			this.Controls.SetChildIndex(this.btnSearch, 0);
+			this.Controls.SetChildIndex(this.txtTextBox1, 0);
+			this.Controls.SetChildIndex(this.txtpici, 0);
+			this.Controls.SetChildIndex(this.c_Label1, 0);
+			this.Controls.SetChildIndex(this.lblGroutingDate, 0);
+			this.Controls.SetChildIndex(this.txtGroutingDateBegin, 0);
+			this.ResumeLayout(false);
+			this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private Basics.BaseControls.C_Label lblGroutingLineCode;
+        private Basics.BaseControls.C_TextBox txtGroutingLineCode;
+        private Basics.BaseControls.C_Button btnSearch;
+        private Basics.BaseControls.C_Button btnOK;
+        private Basics.BaseControls.C_Button btnCancel;
+        private WinForm.Controls.TxtTextBox txtTextBox1;
+		private Basics.BaseControls.C_TextBox txtpici;
+		private Basics.BaseControls.C_Label c_Label1;
+		private Basics.BaseControls.C_DateTimePicker txtGroutingDateBegin;
+		private Basics.BaseControls.C_Label lblGroutingDate;
+	}
+}

+ 224 - 0
DK.Client/PMModule/F_PM_0108.cs

@@ -0,0 +1,224 @@
+/*******************************************************************************
+ * Copyright(c) 2015 dongke All rights reserved. / Confidential
+ * 类的信息:
+ *      1.程序名称:F_PM_0108.cs
+ *      2.功能描述:取消某天某批次注浆登记
+ * 编辑履历:
+ *      作者            日期                版本            修改内容
+ *      秦祺          2025/07/28          1.00            新建
+ *******************************************************************************/
+using System;
+using System.Data;
+using System.Reflection;
+using System.Windows.Forms;
+
+using Dongke.IBOSS.PRD.Basics.BaseControls;
+using Dongke.IBOSS.PRD.Basics.BaseResources;
+using Dongke.IBOSS.PRD.Client.CommonModule;
+using Dongke.IBOSS.PRD.Client.Controls;
+using Dongke.IBOSS.PRD.WCF.DataModels;
+using Dongke.IBOSS.PRD.WCF.Proxys;
+
+namespace Dongke.IBOSS.PRD.Client.PMModule
+{
+    /// <summary>
+    /// 取消某天某批次注浆登记
+    /// </summary>
+    public partial class F_PM_0108 : DKFormBase
+    {
+        #region 成员变量
+        private DataSet _data = null;
+        #endregion
+
+        #region 构造函数
+        /// <summary>
+        /// 构造函数
+        /// </summary>
+        public F_PM_0108()
+        {
+            this.InitializeComponent();
+            // 为各个控件文本赋值
+            this.InitializeControls();
+        }
+        #endregion
+
+        #region 属性
+
+        /// <summary>
+        /// 注浆日报ID
+        /// </summary>
+        public string GroutingLineCode
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// 是否在开模报损中使用
+        /// </summary>
+        public bool IsBarCodeScrapReasonUseFlag
+        {
+            get;
+            set;
+        }
+        #endregion
+
+        #region 控件事件
+        /// <summary>
+        /// 页面Load事件
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void F_PM_0108_Load(object sender, EventArgs e)
+        {
+        }
+
+        /// <summary>
+        /// 查询按钮按下事件
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void btnSearch_Click(object sender, System.EventArgs e)
+        {
+            string glcode = this.txtGroutingLineCode.Text.Trim();
+            string pici = this.txtpici.Text.Trim(); 
+            if (string.IsNullOrWhiteSpace(glcode))
+            {
+                MessageBox.Show("请输入成型线编码",this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
+                this.txtGroutingLineCode.Focus();
+                return;
+            }
+            if (string.IsNullOrWhiteSpace(pici))
+            {
+                MessageBox.Show("请输入批次", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
+                this.txtpici.Focus();
+                return;
+            }
+            try
+            {
+                ClientRequestEntity cre = new ClientRequestEntity();
+                cre.NameSpace = "F_PM_0108";
+                cre.Name = "CheckFPM0108GLCode";
+                cre.Properties["glcode"] = glcode;
+                cre.Properties["pici"] = pici;
+                cre.Properties["txtGroutingDateBegin"] = this.txtGroutingDateBegin.Text;
+                // 根据注浆日期、成型线获取所有可注浆模具信息
+                ServiceResultEntity sre = this.DoAsync<ServiceResultEntity>(() =>
+                    {
+                        return PMModuleProxyNew.Service.HandleRequest(cre);
+                    }
+                );
+
+                // 异常情况处理
+                if (sre.Status == Constant.ServiceResultStatus.Success)
+                {
+                    _data = sre.Data;
+                    DataRow dataRow = _data.Tables[0].Rows[0];
+                    this.txtTextBox1.Text = 
+                        $"成型线编码  :{dataRow["GroutingLineCode"]} " + Environment.NewLine + Environment.NewLine +
+                        $"注浆日期:{(dataRow["GroutingDate"] as DateTime?)?.ToString("yyyy-MM-dd")?? dataRow["GroutingDate"]+""} " + Environment.NewLine + Environment.NewLine +
+                        $"注浆批次:{dataRow["GroutingBatchNo"]} " + Environment.NewLine + Environment.NewLine +
+                        $"成型工号    :{dataRow["usercode"]} "
+                        ;
+
+                    this.btnOK.Enabled = true;
+                    return;
+                }
+
+                _data = null;
+                this.btnOK.Enabled = false;
+                MessageBox.Show(sre.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
+            }
+            catch (Exception ex)
+            {
+                // 对异常进行共通处理
+                ExceptionManager.HandleEventException(this.ToString(),
+                    MethodBase.GetCurrentMethod().Name, this.Text, ex);
+            }
+        }
+
+        /// <summary>
+        /// 确定按钮按下事件
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void btnOK_Click(object sender, System.EventArgs e)
+        {
+            if (_data == null)
+            {
+                return;
+            }
+            try
+            {
+                ClientRequestEntity cre = new ClientRequestEntity();
+                cre.NameSpace = "F_PM_0108";
+                cre.Name = "SetFPM0108GLCode";
+                cre.Data = _data;
+
+                // 根据注浆日期、成型线获取所有可注浆模具信息
+                ServiceResultEntity sre = this.DoAsync<ServiceResultEntity>(() =>
+                    {
+                        return PMModuleProxyNew.Service.HandleRequest(cre);
+                    }
+                );
+
+                // 异常情况处理
+                if (sre.Status == Constant.ServiceResultStatus.Success)
+                {
+                    DialogResult dr = MessageBox.Show("撤销成功,是否关闭画面", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Information);
+                    if (dr == DialogResult.Yes)
+                    {
+                        this.Close();
+                    }
+                    _data = null;
+                    this.txtGroutingLineCode.Clear();
+                    this.txtTextBox1.Clear();
+
+                    this.btnOK.Enabled = false;
+                    return;
+                }
+
+                MessageBox.Show(sre.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
+
+            }
+            catch (Exception ex)
+            {
+                // 对异常进行共通处理
+                ExceptionManager.HandleEventException(this.ToString(),
+                    MethodBase.GetCurrentMethod().Name, this.Text, ex);
+            }
+        }
+
+        /// <summary>
+        /// 关闭按钮按下事件
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void btnClose_Click(object sender, System.EventArgs e)
+        {
+            this.DialogResult = DialogResult.Cancel;
+            this.Close();
+        }
+        #endregion
+
+        #region 私有方法/函数
+        /// <summary>
+        /// 初始化控件
+        /// </summary>
+        private void InitializeControls()
+        {
+            this.btnSearch.Text = ButtonText.BTN_SEARCH;
+            this.btnOK.Text = ButtonText.BTN_OK;
+            this.btnCancel.Text = ButtonText.BTN_CANCEL;
+        }
+        #endregion
+
+        private void txtGroutingLineCode_KeyPress(object sender, KeyPressEventArgs e)
+        {
+            if (e.KeyChar == Constant.SYSTEM_KEYBOARD_ENTER_VALUE)
+            {
+                btnSearch_Click(null, null);
+            }
+        }
+    }
+}

+ 177 - 0
DK.Client/PMModule/F_PM_0108.resx

@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="lblGroutingLineCode.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAPAAAAB4CAIAAABD1OhwAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
+        JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr/AAAK/wE0YpqCAAABeUlE
+        QVR4Xu3YQQ0AMAwDsfKnukkrhPE42RjyOGUOhMyFkHkQMgshGpoUgyZFcpBi0KRIDlL80KT4oUnR0KRo
+        aFIMmhTJQYpBkyI5SPFDk+KHJkVDk6KhSTFoUiQHKQZNiuQgxQ9Nih+aFA1NioYmxaBJkRykGDQpkoMU
+        PzQpfmhSNDQpGpoUgyZFcpBi0KRIDlL80KT4oUnR0KRoaFIMmhTJQYpBkyI5SPFDk+KHJkVDk6KhSTFo
+        UiQHKQZNiuQgxQ9Nih+aFA1NioYmxaBJkRykGDQpkoMUPzQpfmhSNDQpGpoUgyZFcpBi0KRIDlL80KT4
+        oUnR0KRoaFIMmhTJQYpBkyI5SPFDk+KHJkVDk6KhSTFoUiQHKQZNiuQgxQ9Nih+aFA1NioYmxaBJkRyk
+        GDQpkoMUPzQpfmhSNDQpGpoUgyZFcpBi0KRIDlL80KT4oUnR0KRoaFIMmhTJQYpBkyI5SPFDk+KHJkVD
+        k6KhSTFoUiQHKQZNyO4HCToumLCnZVwAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="btnSearch.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAFUAAAAeCAYAAABdalL1AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
+        JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAjklEQVRoQ+3QoRHEIBRAwWsQiY6jBSyK
+        glIBveBo4t+cuMlEw3NPbAP7KaWE9vXeY4wRa60w9RBTAaYCTAWYCjAVYCrAVICpAFMBpgJMBZgKeKVe
+        1xXa11oz9TRTAaYCaq1Pas45tO+fOuc09RRTAaYCTAWYCjAVYCrAVICpgF/qfd+mnvRKTSmF9j2pM748
+        hkQFBncKsAAAAABJRU5ErkJggg==
+</value>
+  </data>
+  <data name="btnOK.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAFUAAAAeCAYAAABdalL1AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
+        JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAjklEQVRoQ+3QoRHEIBRAwWsQiY6jBSyK
+        glIBveBo4t+cuMlEw3NPbAP7KaWE9vXeY4wRa60w9RBTAaYCTAWYCjAVYCrAVICpAFMBpgJMBZgKeKVe
+        1xXa11oz9TRTAaYCaq1Pas45tO+fOuc09RRTAaYCTAWYCjAVYCrAVICpgF/qfd+mnvRKTSmF9j2pM748
+        hkQFBncKsAAAAABJRU5ErkJggg==
+</value>
+  </data>
+  <data name="btnCancel.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAFUAAAAeCAYAAABdalL1AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
+        JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAjklEQVRoQ+3QoRHEIBRAwWsQiY6jBSyK
+        glIBveBo4t+cuMlEw3NPbAP7KaWE9vXeY4wRa60w9RBTAaYCTAWYCjAVYCrAVICpAFMBpgJMBZgKeKVe
+        1xXa11oz9TRTAaYCaq1Pas45tO+fOuc09RRTAaYCTAWYCjAVYCrAVICpgF/qfd+mnvRKTSmF9j2pM748
+        hkQFBncKsAAAAABJRU5ErkJggg==
+</value>
+  </data>
+  <data name="c_Label1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAPAAAAB4CAIAAABD1OhwAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
+        JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr/AAAK/wE0YpqCAAABeUlE
+        QVR4Xu3YQQ0AMAwDsfKnukkrhPE42RjyOGUOhMyFkHkQMgshGpoUgyZFcpBi0KRIDlL80KT4oUnR0KRo
+        aFIMmhTJQYpBkyI5SPFDk+KHJkVDk6KhSTFoUiQHKQZNiuQgxQ9Nih+aFA1NioYmxaBJkRykGDQpkoMU
+        PzQpfmhSNDQpGpoUgyZFcpBi0KRIDlL80KT4oUnR0KRoaFIMmhTJQYpBkyI5SPFDk+KHJkVDk6KhSTFo
+        UiQHKQZNiuQgxQ9Nih+aFA1NioYmxaBJkRykGDQpkoMUPzQpfmhSNDQpGpoUgyZFcpBi0KRIDlL80KT4
+        oUnR0KRoaFIMmhTJQYpBkyI5SPFDk+KHJkVDk6KhSTFoUiQHKQZNiuQgxQ9Nih+aFA1NioYmxaBJkRyk
+        GDQpkoMUPzQpfmhSNDQpGpoUgyZFcpBi0KRIDlL80KT4oUnR0KRoaFIMmhTJQYpBkyI5SPFDk+KHJkVD
+        k6KhSTFoUiQHKQZNyO4HCToumLCnZVwAAAAASUVORK5CYII=
+</value>
+  </data>
+  <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>25</value>
+  </metadata>
+</root>

+ 9 - 0
DK.Client/PMModule/PMModule.csproj

@@ -92,6 +92,12 @@
     </Reference>
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="F_PM_0108.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="F_PM_0108.Designer.cs">
+      <DependentUpon>F_PM_0108.cs</DependentUpon>
+    </Compile>
     <Compile Include="F_PM_0107.cs">
       <SubType>Form</SubType>
     </Compile>
@@ -820,6 +826,9 @@
     </ProjectReference>
   </ItemGroup>
   <ItemGroup>
+    <EmbeddedResource Include="F_PM_0108.resx">
+      <DependentUpon>F_PM_0108.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="F_PM_0107.resx">
       <DependentUpon>F_PM_0107.cs</DependentUpon>
     </EmbeddedResource>

+ 287 - 0
DK.Service/PMModuleService/PMModuleLogic.cs

@@ -3047,6 +3047,293 @@ namespace Dongke.IBOSS.PRD.Service.PMModuleService
             }
         }
         #endregion
+
+        #region 取消注浆(某一天某一批次)
+        /// <summary>
+        /// 验证注浆日期成型线编码是否能取消注浆
+        /// </summary>
+        /// <param name="user"></param>
+        /// <param name="glcode"></param>
+        /// <returns></returns>
+        public static ServiceResultEntity CheckFPM0108GLCode(SUserInfo user, ClientRequestEntity cre)
+        {
+            ServiceResultEntity sre = new ServiceResultEntity();
+
+            string glcode= cre.Properties["glcode"] + "";
+            string pici = cre.Properties["pici"] + "";
+            DateTime gdData = Convert.ToDateTime(cre.Properties["txtGroutingDateBegin"]);
+
+            if (string.IsNullOrWhiteSpace(glcode))
+            {
+                sre.Status = Constant.ServiceResultStatus.Other;
+                sre.OtherStatus = 1;
+                sre.Message = $"成型线【{glcode}】不存在";
+                return sre;
+            }
+            IDBConnection conn = null;
+            try
+            {
+                conn = ClsDbFactory.CreateDBConnection(Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
+                //输入成型线号,1.验证是否存在、2.最后注浆日期、批次是否存在,3.是否有报损、是否绑定条码。 返回【最后注浆日期、批次】。
+                  
+                string sqlString = "SELECT DISTINCT gl.GroutingLineID\n" +
+                "                ,gl.GroutingLineName\n" +
+                "                ,gl.GroutingLineCode\n" +
+                "                ,gdd.GroutingDate\n" +
+                "                ,gdd.GroutingBatchNo\n" +
+                "                ,gd.usercode\n" +
+                "                ,gd.GroutingDailyID\n" +
+                "   FROM tp_pm_groutingdailydetail gdd\n" +
+                "   LEFT JOIN tp_pc_groutingline gl\n" +
+                "     ON gl.groutinglineid = gdd.groutinglineid\n" +
+                "   LEFT JOIN tp_pm_groutingdaily gd\n" +
+                "     ON gd.groutingdailyid = gdd.groutingdailyid\n" +
+                "  WHERE gdd.groutinglinecode = :glcode\n" +
+                "   AND gdd.groutingdate = :gdate\n" +
+                "   AND gdd.valueflag = 1\n" +
+                "    AND gdd.groutingbatchno = :pici";
+
+                OracleParameter[] ps = new OracleParameter[]
+                {
+                    new OracleParameter(":glcode",OracleDbType.NVarchar2, glcode, ParameterDirection.Input),
+                    new OracleParameter(":pici",OracleDbType.NVarchar2, pici, ParameterDirection.Input), 
+                    new OracleParameter(":gdate", OracleDbType.Date,gdData, ParameterDirection.Input),
+                };
+                DataTable data = conn.GetSqlResultToDt(sqlString, ps);
+                if (data == null || data.Rows.Count == 0)
+                {
+                    sre.Status = Constant.ServiceResultStatus.Other;
+                    sre.OtherStatus = 1;
+                    sre.Message = $"成型线【{glcode}】该日期该批次不存在";
+                    return sre;
+                }
+                sre.Data = new DataSet();
+                sre.Data.Tables.Add(data);
+
+                object objgdid = data.Rows[0]["GroutingDailyID"];
+                if (objgdid == null || objgdid == DBNull.Value)
+                {
+                    sre.Status = Constant.ServiceResultStatus.Other;
+                    sre.OtherStatus = 2;
+                    sre.Message = $"成型线【{glcode}】未注浆";
+                    return sre;
+                }
+                int gdid = Convert.ToInt32(objgdid);
+
+                sqlString = "select count(gdd.GroutingDailyDetailID) dc\n" +
+                "  from TP_PM_GroutingDailyDetail gdd\n" +
+                " where gdd.valueflag = '1'\n" +
+                "   and gdd.GroutingDailyID = :gdid\n" +
+                "   and (gdd.ScrapFlag <> '0' or gdd.barcode is not null)";
+                ps = new OracleParameter[]
+                {
+                    new OracleParameter(":gdid", gdid),
+                };
+                int dcount = Convert.ToInt32(conn.GetSqlResultToObj(sqlString, ps));
+                if (dcount > 0)
+                {
+                    sre.Status = Constant.ServiceResultStatus.Other;
+                    sre.OtherStatus = 3;
+                    sre.Message = $"成型线【{glcode}】最后注浆登记中有已报损或绑定条码的注浆明细";
+                    return sre;
+                }
+
+                // 'S_PM_022', '注浆编辑限制天数' add by chenxy 2018-12-15 begin
+                sre.Result = 1;
+                string spm022 = conn.GetSqlResultToStr("select ss.SETTINGVALUE from tp_mst_systemsetting ss where ss.SETTINGCODE = 'S_PM_022' and ss.AccountID = " + user.AccountID);
+                int spm022Value = 0;
+                if (!string.IsNullOrWhiteSpace(spm022) && int.TryParse(spm022, out spm022Value) && spm022Value > 0)
+                {
+                    DateTime tDate = DateTime.Now.Date;
+                    DateTime lastDate = tDate.AddDays(1 - spm022Value);
+                    DateTime gData = (DateTime)data.Rows[0]["GroutingDate"];
+                    if (gData < lastDate || gData > tDate)
+                    {
+                        sre.Status = Constant.ServiceResultStatus.Other;
+                        sre.OtherStatus = 9;
+                        sre.Message = string.Format("允许注浆编辑的日期范围【{0:yyyy-MM-dd}】-【{1:yyyy-MM-dd}】", lastDate, tDate);
+                        return sre;
+                    }
+                }
+                // 'S_PM_022', '注浆编辑限制天数' add by chenxy 2018-12-15 end
+                return sre;
+            }
+            catch (Exception ex)
+            {
+                throw ex;
+            }
+            finally
+            {
+                if (conn != null &&
+                    conn.ConnState == ConnectionState.Open)
+                {
+                    conn.Close();
+                }
+            }
+        }
+
+        /// <summary>
+        /// 验证成型线编码是否能取消最后注浆
+        /// </summary>
+        /// <param name="user"></param>
+        /// <param name="glcode"></param>
+        /// <returns></returns>
+        public static ServiceResultEntity SetFPM0108GLCode(SUserInfo user, ClientRequestEntity cre)
+        {
+            string glcode = cre.Data.Tables[0].Rows[0]["GroutingLineCode"] + "";
+            string gbatchno = cre.Data.Tables[0].Rows[0]["GroutingBatchNo"] + "";
+            int glID = Convert.ToInt32(cre.Data.Tables[0].Rows[0]["GroutingLineID"]);
+            int gdID = Convert.ToInt32(cre.Data.Tables[0].Rows[0]["GroutingDailyID"]);
+            DateTime gdData = Convert.ToDateTime(cre.Data.Tables[0].Rows[0]["GroutingDate"]);
+
+            ServiceResultEntity sre = new ServiceResultEntity();
+            if (string.IsNullOrWhiteSpace(glcode))
+            {
+                sre.Status = Constant.ServiceResultStatus.Other;
+                sre.OtherStatus = 1;
+                sre.Message = $"成型线【{glcode}】不存在";
+                return sre;
+            }
+            IDBTransaction conn = null;
+            try
+            {
+                conn = ClsDbFactory.CreateDBTransaction(Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
+                //输入成型线号,1.验证是否存在、2.最后注浆日期、批次是否存在,3.是否有报损、是否绑定条码。 返回【最后注浆日期、批次】。
+                string sqlString = "SELECT DISTINCT gl.GroutingLineID\n" +
+                "                ,gl.GroutingLineName\n" +
+                "                ,gl.GroutingLineCode\n" +
+                "                ,gdd.GroutingDate\n" +
+                "                ,gdd.GroutingBatchNo\n" +
+                "                ,gd.usercode\n" +
+                "                ,gd.GroutingDailyID\n" +
+                "   FROM tp_pm_groutingdailydetail gdd\n" +
+                "   LEFT JOIN tp_pc_groutingline gl\n" +
+                "     ON gl.groutinglineid = gdd.groutinglineid\n" +
+                "   LEFT JOIN tp_pm_groutingdaily gd\n" +
+                "     ON gd.groutingdailyid = gdd.groutingdailyid\n" +
+                "  WHERE gdd.groutinglinecode = :glcode\n" +
+                "   AND gdd.groutingdate = :gdate\n" +
+                "    AND gdd.groutingbatchno = :gbatchno";
+                
+                OracleParameter[] ps = new OracleParameter[]
+                {
+                    new OracleParameter(":glcode", glcode),
+                    new OracleParameter(":gbatchno", gbatchno),
+                    new OracleParameter(":gdate", OracleDbType.Date,gdData, ParameterDirection.Input),
+                };
+                DataTable data = conn.GetSqlResultToDt(sqlString, ps);
+                if (data == null || data.Rows.Count == 0)
+                {
+                    sre.Status = Constant.ServiceResultStatus.Other;
+                    sre.OtherStatus = 1;
+                    sre.Message = $"成型线【{glcode}】不存在";
+                    return sre;
+                }
+
+                int lgdid = Convert.ToInt32(data.Rows[0]["GroutingDailyID"]);
+                 
+                sqlString = "select count(gdd.GroutingDailyDetailID) dc\n" +
+                "  from TP_PM_GroutingDailyDetail gdd\n" +
+                " where gdd.valueflag = '1'\n" +
+                "   and gdd.GroutingDailyID = :gdid\n" +
+                "   and (gdd.ScrapFlag <> '0' or gdd.barcode is not null)";
+                ps = new OracleParameter[]
+                {
+                    new OracleParameter(":gdid", gdID),
+                };
+                int dcount = Convert.ToInt32(conn.GetSqlResultToObj(sqlString, ps));
+                if (dcount > 0)
+                {
+                    sre.Status = Constant.ServiceResultStatus.Other;
+                    sre.OtherStatus = 3;
+                    sre.Message = $"成型线【{glcode}】该注浆登记中有已报损或绑定条码的注浆明细";
+                    return sre;
+                }
+
+                //2.然后取消注浆,3.并valueflag=0。4.修改成型线的最后注浆日期、批次。
+                int r = 0;
+                string sql = null;
+               
+
+                //sql = "UPDATE tp_pc_groutinglinedetail gld\n" +
+                //"   SET gld.groutingcount =\n" +
+                //"       (SELECT gdds.groutingcount\n" +
+                //"          FROM tp_pm_groutingdailydetail gdds\n" +
+                //"         WHERE gdds.groutingdailyid = :gdid\n" +
+                //"           AND gdds.groutinglinedetailid = gld.groutinglinedetailid\n" +
+                //"           AND gdds.valueflag = '1')\n" +
+                //"      ,gld.updateuserid  = :UpdateUserID\n" +
+                //" WHERE gld.groutinglinedetailid IN\n" +
+                //"       (SELECT gdd.groutinglinedetailid\n" +
+                //"          FROM tp_pm_groutingdailydetail gdd\n" +
+                //"         WHERE gdd.groutingdailyid = :gdid\n" +
+                //"           AND gdd.valueflag = '1')";
+                sql = "UPDATE tp_pc_groutinglinedetail gld\n" +
+                "   SET gld.groutingcount =  gld.groutingcount -\n" +
+                "       (SELECT CASE WHEN GroutingFlag = '1' then 1 else 0 end groutingcount\n" +
+                "          FROM ( SELECT groutinglinedetailid,groutingflag FROM tp_pm_groutingdailydetail WHERE GroutingDailyID = :gdid AND valueflag = '1') g\n" +
+                "         WHERE g.groutinglinedetailid = gld.groutinglinedetailid)\n" +
+                " WHERE gld.groutinglinedetailid IN ( SELECT gdd.groutinglinedetailid\n" +
+                "          FROM tp_pm_groutingdailydetail gdd\n" +
+                "         WHERE gdd.groutingdailyid = :gdid\n" +
+                "           AND gdd.valueflag = '1')";
+                r = conn.ExecuteNonQuery(sql, ps);
+
+                sql =
+               "UPDATE TP_PM_GroutingDailyDetail" +
+               "   SET GroutingCount = CASE" +
+               "                       WHEN GroutingFlag = '1'" +
+               "                       THEN GroutingCount - 1" +
+               "                       ELSE GroutingCount END," +
+               "       GroutingFlag = '0'," +
+               "       UpdateUserID = :UpdateUserID," +
+               "       valueflag = '0'" + 
+               " WHERE GroutingDailyID = :gdid";
+                ps = new OracleParameter[]
+                {
+                    new OracleParameter(":UpdateUserID", user.UserID),
+                    new OracleParameter(":gdid", gdID),
+                };
+                r = conn.ExecuteNonQuery(sql, ps);
+                 
+                sql = "update TP_PM_GroutingDaily gd set gd.valueflag='0', updateuserid = :UpdateUserID where gd.GroutingDailyID = :gdid";
+                r = conn.ExecuteNonQuery(sql, ps);
+
+                sql = "update TP_PC_GroutingLine gl\n" +
+                "   set (gl.LastGroutingDate, gl.LastGroutingBatchNo) =\n" +
+                "       (select gd.GroutingDate, gd.GroutingBatchNo\n" +
+                "          from TP_PM_GroutingDaily gd\n" +
+                "         where gd.GroutingDailyID =\n" +
+                "               (select max(gm.GroutingDailyID)\n" +
+                "                  from TP_PM_GroutingDaily gm\n" +
+                "                 where gm.GroutingLineID = :glid\n" +
+                "                   and gm.valueflag = '1'))\n" +
+                "      ,gl.UpdateUserID = :UpdateUserID\n" +
+                " where gl.GroutingLineID = :glid";
+                ps = new OracleParameter[]
+                {
+                    new OracleParameter(":UpdateUserID", user.UserID),
+                    new OracleParameter(":glid", glID),
+                };
+                r = conn.ExecuteNonQuery(sql, ps);
+
+                conn.Commit();
+                return sre;
+            }
+            catch (Exception ex)
+            {
+                throw ex;
+            }
+            finally
+            {
+                if (conn != null &&
+                    conn.ConnState == ConnectionState.Open)
+                {
+                    conn.Disconnect();
+                }
+            }
+        }
+        #endregion
         #endregion 注浆管理
 
         #region 条码管理

+ 15 - 1
WCF.Service/WCF.Services/PMModuleServiceNew.cs

@@ -759,7 +759,21 @@ namespace Dongke.IBOSS.PRD.WCF.Services
                     {
                         return ServiceInvoker.Invoke(this, () => Service.PMModuleLogic.PMModuleLogic.SaveFirstRegister(this.SUserInfo, cre));
                     } 
-                } 
+                }
+                #endregion
+
+                #region 取消最后注浆
+                if (cre.NameSpace == "F_PM_0108")
+                {
+                    if ("CheckFPM0108GLCode" == cre.Name)
+                    { 
+                        return ServiceInvoker.Invoke(this, () => PMModuleLogic.CheckFPM0108GLCode(this.SUserInfo, cre));
+                    }
+                    if ("SetFPM0108GLCode" == cre.Name)
+                    {
+                        return ServiceInvoker.Invoke(this, () => PMModuleLogic.SetFPM0108GLCode(this.SUserInfo, cre));
+                    }
+                }
                 #endregion
 
                 return null;

Некоторые файлы не были показаны из-за большого количества измененных файлов