Răsfoiți Sursa

新增成型线模具使用明细表下拉框选择合计方式

张忠帅 2 ani în urmă
părinte
comite
57c126c691

+ 37 - 0
DK.Client/ReportModule/R01/M01/F_RPT_010105.Designer.cs

@@ -79,6 +79,8 @@
 			this.maxGroutingCount = new System.Windows.Forms.DataGridViewTextBoxColumn();
 			this.leftcount = new System.Windows.Forms.DataGridViewTextBoxColumn();
 			this.financecount = new System.Windows.Forms.DataGridViewTextBoxColumn();
+			this.dropTotalMethod = new Dongke.IBOSS.PRD.Basics.BaseControls.C_ComboBox();
+			this.lblKilnCode = new Dongke.IBOSS.PRD.Basics.BaseControls.C_Label();
 			this.tsrOperate.SuspendLayout();
 			this.gbxCondition.SuspendLayout();
 			((System.ComponentModel.ISupportInitialize)(this.dgvRptProcedure)).BeginInit();
@@ -128,6 +130,8 @@
             | System.Windows.Forms.AnchorStyles.Right)));
 			this.gbxCondition.BackColor = System.Drawing.Color.Transparent;
 			this.gbxCondition.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("gbxCondition.BackgroundImage")));
+			this.gbxCondition.Controls.Add(this.dropTotalMethod);
+			this.gbxCondition.Controls.Add(this.lblKilnCode);
 			this.gbxCondition.Controls.Add(this.lblGoodsType);
 			this.gbxCondition.Controls.Add(this.scbGoodsType);
 			this.gbxCondition.Controls.Add(this.txtGroutingUserCode);
@@ -591,6 +595,37 @@
 			this.financecount.ReadOnly = true;
 			this.financecount.Width = 130;
 			// 
+			// dropTotalMethod
+			// 
+			this.dropTotalMethod.BackColor = System.Drawing.SystemColors.Window;
+			this.dropTotalMethod.BackgroundColor = System.Drawing.SystemColors.Window;
+			this.dropTotalMethod.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+			this.dropTotalMethod.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+			this.dropTotalMethod.FormattingEnabled = true;
+			this.dropTotalMethod.Items.AddRange(new object[] {
+            "楼号",
+            "楼层",
+            "线号",
+            "成型工号",
+            "产品编码",
+            "成型线编码"});
+			this.dropTotalMethod.Location = new System.Drawing.Point(645, 21);
+			this.dropTotalMethod.Name = "dropTotalMethod";
+			this.dropTotalMethod.Size = new System.Drawing.Size(133, 20);
+			this.dropTotalMethod.TabIndex = 25;
+			// 
+			// lblKilnCode
+			// 
+			this.lblKilnCode.AutoSize = true;
+			this.lblKilnCode.BackColor = System.Drawing.SystemColors.Control;
+			this.lblKilnCode.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+			this.lblKilnCode.ForeColor = System.Drawing.SystemColors.ControlText;
+			this.lblKilnCode.Location = new System.Drawing.Point(587, 25);
+			this.lblKilnCode.Name = "lblKilnCode";
+			this.lblKilnCode.Size = new System.Drawing.Size(53, 12);
+			this.lblKilnCode.TabIndex = 24;
+			this.lblKilnCode.Text = "合计方式";
+			// 
 			// F_RPT_010105
 			// 
 			this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
@@ -656,5 +691,7 @@
 		private System.Windows.Forms.DataGridViewTextBoxColumn maxGroutingCount;
 		private System.Windows.Forms.DataGridViewTextBoxColumn leftcount;
 		private System.Windows.Forms.DataGridViewTextBoxColumn financecount;
+		private Basics.BaseControls.C_ComboBox dropTotalMethod;
+		private Basics.BaseControls.C_Label lblKilnCode;
 	}
 }

+ 22 - 1
DK.Client/ReportModule/R01/M01/F_RPT_010105.cs

@@ -184,11 +184,32 @@ namespace Dongke.IBOSS.PRD.Client.ReportModule
 			//this._rptse.GDateEnd = this._rptse.GDateBegin.AddMonths(1).AddMilliseconds(-1);
 			this._rptse.GDateBegin = this.dtpGDateStart.Value;
 			this._rptse.GDateEnd = this.dtpGDateEnd.Value;
-
 			this._rptse.GroutingLineCode = this.txtGroutingLineCode.Text.Trim();
 			this._rptse.GroutingUserCode = this.txtGroutingUserCode.Text.Trim();
 			this._rptse.GoodsCode = this.txtGoodCode.Text.Trim();
 			this._rptse.GoodsTypeCode = scbGoodsType.SearchedValue + "";
+			if (this.dropTotalMethod.Text.ToString() == "楼号") {
+				this._rptse.TotalMethod = "BuildingNo";
+			} else if (this.dropTotalMethod.Text.ToString() == "成型线编码")
+			{
+				this._rptse.TotalMethod = "groutinglinecode";
+			}
+			else if (this.dropTotalMethod.Text.ToString() == "楼层")
+			{
+				this._rptse.TotalMethod = "FloorNo";
+			}
+			else if (this.dropTotalMethod.Text.ToString() == "线号")
+			{
+				this._rptse.TotalMethod = "GroutingLineNo";
+			}
+			else if (this.dropTotalMethod.Text.ToString() == "成型工号")
+			{
+				this._rptse.TotalMethod = "usercode";
+			}
+			else if (this.dropTotalMethod.Text.ToString() == "产品编码")
+			{
+				this._rptse.TotalMethod = "goodscode";
+			}
 		}
 
 		/// <summary>

+ 161 - 3
DK.Service/ReportModuleLogic/ReportModuleLogic.cs

@@ -685,6 +685,7 @@ namespace Dongke.IBOSS.PRD.Service.ReportModuleLogic
 			IDBConnection conn = null;
 			try
 			{
+				string sqlString = "";
 				conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
 				//string sqlString =
 				//	"SELECT t.groutinglinecode\n" +
@@ -756,8 +757,165 @@ namespace Dongke.IBOSS.PRD.Service.ReportModuleLogic
 				//	"         ,gld.ENDUSEDDATE\n" +
 				//	"         ,t.groutinglinedetailid\n" +
 				//	" ORDER BY t.groutinglinecode, gld.groutingmouldcode, t.groutinglinedetailid";
-
-				string sqlString = @"SELECT
+				if (se.TotalMethod!= null && se.TotalMethod != "")
+				{
+					sqlString = @"SELECT							
+														CASE WHEN  BuildingNo is NULL AND goodscode IS NULL AND GroutingLineNo IS NULL AND FloorNo IS NULL AND usercode IS NULL THEN '总计'
+																 WHEN groutinglinecode is NULL THEN'合计' 
+																 WHEN BuildingNo is NULL THEN '合计'
+																 WHEN goodscode IS NULL THEN '合计'
+																 WHEN GroutingLineNo IS NULL THEN '合计'
+																 WHEN FloorNo IS NULL THEN '合计'
+																 WHEN usercode IS NULL THEN '合计' 
+
+																 ELSE TO_CHAR(BuildingNo) END as BuildingNo,
+														groutinglinecode,
+														FloorNo,
+														GroutingLineNo,
+														usercode,
+														goodscode,
+														GOODSSPECIFICATION,
+														goodstypename,
+														COUNT(1) AS MouldQuantity,
+														groutingmouldcode,
+														gmouldstatusname,
+														beginuseddate,
+														groutingdate,
+														mingroutingcount,
+														sumgroutingcount,
+														maxGroutingCount,
+														groutingcount,
+														standardgroutingcount,
+														ENDUSEDDATE,
+														standardgroutingcount - mingroutingcount - sumgroutingcount leftcount,
+																 --期初剩余注浆次数为正数模具剩余注浆次数为正数:取期初剩余注浆次数
+														CASE WHEN gmouldstatusname = '变产' AND standardgroutingcount - mingroutingcount >= 0 AND standardgroutingcount - mingroutingcount - sumgroutingcount > 0 THEN standardgroutingcount - mingroutingcount
+																 --期初剩余注浆次数为正数模具剩余注浆次数为负数:取期初剩余注浆次类
+																 WHEN gmouldstatusname = '变产' AND standardgroutingcount - mingroutingcount >= 0 AND standardgroutingcount - mingroutingcount - sumgroutingcount < 0 THEN standardgroutingcount - mingroutingcount
+																 --期初剩余注浆次数为负数模具剩余注浆次数为负数:取0
+																 WHEN gmouldstatusname = '变产' AND standardgroutingcount - mingroutingcount < 0 AND standardgroutingcount - mingroutingcount - sumgroutingcount < 0 THEN 0
+																 --期初剩余注浆次数为正数模具剩余注浆次数为正数:取期初剩余注浆次数
+																 WHEN gmouldstatusname = '卸模' AND standardgroutingcount - mingroutingcount >= 0 AND standardgroutingcount - mingroutingcount - sumgroutingcount > 0 THEN standardgroutingcount - mingroutingcount
+																 --期初剩余注浆次数为正数模具剩余注浆次数为负数:取期初剩余注浆次类
+																 WHEN gmouldstatusname = '卸模' AND standardgroutingcount - mingroutingcount >= 0 AND standardgroutingcount - mingroutingcount - sumgroutingcount < 0 THEN standardgroutingcount - mingroutingcount
+																 --期初剩余注浆次数为负数模具剩余注浆次数为负数:取0
+																 WHEN gmouldstatusname = '卸模' AND standardgroutingcount - mingroutingcount < 0 AND standardgroutingcount - mingroutingcount - sumgroutingcount < 0 THEN 0
+																 --期初剩余注浆次数为正数模具剩余注浆次数为正数:取本期注浆次数
+																 WHEN gmouldstatusname = '正常' AND standardgroutingcount - mingroutingcount >= 0 AND standardgroutingcount - mingroutingcount - sumgroutingcount > 0 THEN sumgroutingcount
+																--期初剩余注浆次数为正数模具剩余注浆次数为负数:取期初剩余注浆次数
+																 WHEN gmouldstatusname = '正常' AND standardgroutingcount - mingroutingcount >= 0 AND standardgroutingcount - mingroutingcount - sumgroutingcount < 0 THEN standardgroutingcount - mingroutingcount
+																 --期初剩余注浆次数为负数模具剩余注浆次数为负数:取0
+																 WHEN gmouldstatusname = '正常' AND standardgroutingcount - mingroutingcount < 0 AND standardgroutingcount - mingroutingcount - sumgroutingcount < 0 THEN 0 
+														ELSE sumgroutingcount 
+														END financecount,
+														standardgroutingcount - mingroutingcount mingresidue,
+														mouldGoodsCode,
+														mouldName
+													FROM
+														(
+														SELECT
+															t.groutinglinecode,
+															gl.BuildingNo,
+															gl.FloorNo,
+															gl.GroutingLineNo,
+															t.usercode,
+															t.goodscode,
+															t.GOODSSPECIFICATION,
+															t.goodstypename,
+															t.MouldQuantity,
+															gld.groutingmouldcode,
+															gms.gmouldstatusname,
+															gld.beginuseddate,
+															( SELECT MIN( ggg.groutingdate ) FROM tp_pm_groutingdailydetail ggg WHERE ggg.groutinglinedetailid = t.groutinglinedetailid ) groutingdate,
+															MAX( t.GroutingCount ) - SUM( t.groutingflag ) mingroutingcount,
+															SUM( t.groutingflag ) sumgroutingcount,
+															MAX( t.GroutingCount ) maxGroutingCount,
+															gld.groutingcount,
+															MAX( gld.standardgroutingcount ) standardgroutingcount,
+															gld.ENDUSEDDATE,
+															mg.mouldGoodsCode,
+															mg.mouldName
+														FROM
+															(
+															SELECT
+																gd.groutinglinecode,
+																gd.usercode,
+																gdd.goodsid,
+																gd.MouldQuantity,
+																gdd.groutinglinedetailid,
+																decode( gdd.groutingflag, '1', 1, 0 ) groutingflag,
+																gdd.GroutingCount,
+																gt.goodstypename,
+																g.goodscode,
+																g.GOODSSPECIFICATION 
+															FROM
+																TP_PM_GroutingDaily gd
+																INNER JOIN TP_PM_GroutingDailyDetail gdd ON gdd.groutingdailyid = gd.groutingdailyid
+																INNER JOIN TP_MST_Goods g ON g.goodsid = gdd.goodsid
+																INNER JOIN TP_MST_GOODSTYPE gt ON gt.goodstypeid = g.goodstypeid 
+															WHERE
+																gd.accountid = 1 
+																AND gd.groutingdate >= :GDateBegin
+																AND gd.groutingdate <= :GDateEnd
+ 																AND ( : groutinglinecode IS NULL OR instr( gd.groutinglinecode, : groutinglinecode ) > 0 ) 
+ 																AND ( : groutingusercode IS NULL OR instr( gdd.usercode, : groutingusercode ) > 0 ) 
+ 																AND ( : goodscode IS NULL OR instr( gdd.goodscode, : goodscode ) > 0 ) 
+ 																AND ( : goodstypecode IS NULL OR instr( gt.goodstypecode, : goodstypecode ) = 1 ) 
+															) t
+															INNER JOIN tp_pc_groutinglinedetail gld ON gld.groutinglinedetailid = t.groutinglinedetailid
+															INNER JOIN tp_pc_groutingline gl ON gld.groutinglineid = gl.groutinglineid
+															INNER JOIN TP_SYS_GMouldStatus gms ON gms.gmouldstatusid = gld.gmouldstatus 
+															INNER  JOIN TP_MST_MOULDGOODSCODE mg ON t.goodscode = mg.goodsCode
+														GROUP BY
+															t.groutinglinecode,
+															gl.BuildingNo,
+															gl.FloorNo,
+															gl.GroutingLineNo,
+															t.usercode,
+															t.goodscode,
+															t.GOODSSPECIFICATION,
+															t.goodstypename,
+															t.MouldQuantity,
+															gld.groutingmouldcode,
+															gms.gmouldstatusname,
+															gld.beginuseddate,
+															gld.groutingcount,
+															gld.ENDUSEDDATE,
+															t.groutinglinedetailid,
+															mg.mouldGoodsCode,
+															mg.mouldName 
+														ORDER BY
+															BuildingNo,
+															GroutingLineNo,
+															groutinglinecode,
+															groutingmouldcode 
+														)
+															GROUP BY grouping sets((
+														groutinglinecode,
+														BuildingNo,
+														FloorNo,
+														GroutingLineNo,
+														usercode,
+														goodscode,
+														GOODSSPECIFICATION,
+														goodstypename,
+														groutingmouldcode,
+														gmouldstatusname,
+														beginuseddate,
+														groutingdate,
+														mingroutingcount,
+														sumgroutingcount,
+														maxGroutingCount,
+														groutingcount,
+														standardgroutingcount,
+														ENDUSEDDATE,
+														mouldGoodsCode,
+														mouldName	
+															),(" + se.TotalMethod+"),())";
+				}
+				else { 
+		
+				 sqlString = @"SELECT
 														groutinglinecode,
 														BuildingNo,
 														FloorNo,
@@ -882,6 +1040,7 @@ namespace Dongke.IBOSS.PRD.Service.ReportModuleLogic
 														)
 														";
 
+				}
 				List <OracleParameter> parameters = new List<OracleParameter>();
 				parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
 				parameters.Add(new OracleParameter(":GDateBegin", OracleDbType.Date, se.GDateBegin, ParameterDirection.Input));
@@ -890,7 +1049,6 @@ namespace Dongke.IBOSS.PRD.Service.ReportModuleLogic
 				parameters.Add(new OracleParameter(":groutingusercode", OracleDbType.Varchar2, se.GroutingUserCode, ParameterDirection.Input));
 				parameters.Add(new OracleParameter(":goodscode", OracleDbType.Varchar2, se.GoodsCode, ParameterDirection.Input));
 				parameters.Add(new OracleParameter(":goodstypecode", OracleDbType.Varchar2, se.GoodsTypeCode, ParameterDirection.Input));
-
 				DataTable data = conn.GetSqlResultToDt(sqlString.ToString(), parameters.ToArray());
 
 				ServiceResultEntity sre = new ServiceResultEntity();

+ 9 - 0
WCF.Service/WCF.DataModels/SearchEntity/RPT/RPT010105_SE.cs

@@ -78,5 +78,14 @@ namespace Dongke.IBOSS.PRD.WCF.DataModels
             get;
             set;
         }
+        /// <summary>
+        /// 合计方式
+        /// </summary>
+        [DataMember]
+        public string TotalMethod
+        {
+            get;
+            set;
+        }
     }
 }