Просмотр исходного кода

成型模具使用明细表改善

fenglinyong 2 лет назад
Родитель
Сommit
288328cfe8

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

@@ -61,10 +61,13 @@
 			this.GroutingLineNo = new System.Windows.Forms.DataGridViewTextBoxColumn();
 			this.groutinglinecode = new System.Windows.Forms.DataGridViewTextBoxColumn();
 			this.usercode = new System.Windows.Forms.DataGridViewTextBoxColumn();
+			this.mouldName = new System.Windows.Forms.DataGridViewTextBoxColumn();
+			this.mouldGoodsCode = new System.Windows.Forms.DataGridViewTextBoxColumn();
 			this.goodscode = new System.Windows.Forms.DataGridViewTextBoxColumn();
 			this.GOODSSPECIFICATION = new System.Windows.Forms.DataGridViewTextBoxColumn();
 			this.goodstypename = new System.Windows.Forms.DataGridViewTextBoxColumn();
 			this.groutingmouldcode = new System.Windows.Forms.DataGridViewTextBoxColumn();
+			this.MouldQuantity = new System.Windows.Forms.DataGridViewTextBoxColumn();
 			this.gmouldstatusname = new System.Windows.Forms.DataGridViewTextBoxColumn();
 			this.beginuseddate = new System.Windows.Forms.DataGridViewTextBoxColumn();
 			this.ENDUSEDDATE = new System.Windows.Forms.DataGridViewTextBoxColumn();
@@ -357,10 +360,13 @@
             this.GroutingLineNo,
             this.groutinglinecode,
             this.usercode,
+            this.mouldName,
+            this.mouldGoodsCode,
             this.goodscode,
             this.GOODSSPECIFICATION,
             this.goodstypename,
             this.groutingmouldcode,
+            this.MouldQuantity,
             this.gmouldstatusname,
             this.beginuseddate,
             this.ENDUSEDDATE,
@@ -443,6 +449,20 @@
 			this.usercode.Name = "usercode";
 			this.usercode.ReadOnly = true;
 			// 
+			// mouldName
+			// 
+			this.mouldName.DataPropertyName = "mouldName";
+			this.mouldName.HeaderText = "模具名称";
+			this.mouldName.Name = "mouldName";
+			this.mouldName.ReadOnly = true;
+			// 
+			// mouldGoodsCode
+			// 
+			this.mouldGoodsCode.DataPropertyName = "mouldGoodsCode";
+			this.mouldGoodsCode.HeaderText = "模具代码";
+			this.mouldGoodsCode.Name = "mouldGoodsCode";
+			this.mouldGoodsCode.ReadOnly = true;
+			// 
 			// goodscode
 			// 
 			this.goodscode.DataPropertyName = "goodscode";
@@ -471,6 +491,13 @@
 			this.groutingmouldcode.Name = "groutingmouldcode";
 			this.groutingmouldcode.ReadOnly = true;
 			// 
+			// MouldQuantity
+			// 
+			this.MouldQuantity.DataPropertyName = "MouldQuantity";
+			this.MouldQuantity.HeaderText = "模具个数";
+			this.MouldQuantity.Name = "MouldQuantity";
+			this.MouldQuantity.ReadOnly = true;
+			// 
 			// gmouldstatusname
 			// 
 			this.gmouldstatusname.DataPropertyName = "gmouldstatusname";
@@ -543,7 +570,7 @@
 			this.maxGroutingCount.DataPropertyName = "maxGroutingCount";
 			dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
 			this.maxGroutingCount.DefaultCellStyle = dataGridViewCellStyle7;
-			this.maxGroutingCount.HeaderText = "期末剩余注浆次数";
+			this.maxGroutingCount.HeaderText = "期末累积注浆次数";
 			this.maxGroutingCount.Name = "maxGroutingCount";
 			this.maxGroutingCount.ReadOnly = true;
 			this.maxGroutingCount.Width = 120;
@@ -611,10 +638,13 @@
 		private System.Windows.Forms.DataGridViewTextBoxColumn GroutingLineNo;
 		private System.Windows.Forms.DataGridViewTextBoxColumn groutinglinecode;
 		private System.Windows.Forms.DataGridViewTextBoxColumn usercode;
+		private System.Windows.Forms.DataGridViewTextBoxColumn mouldName;
+		private System.Windows.Forms.DataGridViewTextBoxColumn mouldGoodsCode;
 		private System.Windows.Forms.DataGridViewTextBoxColumn goodscode;
 		private System.Windows.Forms.DataGridViewTextBoxColumn GOODSSPECIFICATION;
 		private System.Windows.Forms.DataGridViewTextBoxColumn goodstypename;
 		private System.Windows.Forms.DataGridViewTextBoxColumn groutingmouldcode;
+		private System.Windows.Forms.DataGridViewTextBoxColumn MouldQuantity;
 		private System.Windows.Forms.DataGridViewTextBoxColumn gmouldstatusname;
 		private System.Windows.Forms.DataGridViewTextBoxColumn beginuseddate;
 		private System.Windows.Forms.DataGridViewTextBoxColumn ENDUSEDDATE;

+ 9 - 0
DK.Client/ReportModule/R01/M01/F_RPT_010105.resx

@@ -209,6 +209,12 @@
   <metadata name="usercode.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
+  <metadata name="mouldName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="mouldGoodsCode.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
   <metadata name="goodscode.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
@@ -218,6 +224,9 @@
   <metadata name="goodstypename.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
+  <metadata name="MouldQuantity.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
   <metadata name="ENDUSEDDATE.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>

+ 119 - 98
DK.Service/ReportModuleLogic/ReportModuleLogic.cs

@@ -758,108 +758,129 @@ namespace Dongke.IBOSS.PRD.Service.ReportModuleLogic
 				//	" ORDER BY t.groutinglinecode, gld.groutingmouldcode, t.groutinglinedetailid";
 
 				string sqlString = @"SELECT
-													groutinglinecode,
-													BuildingNo,
-													FloorNo,
-													GroutingLineNo,
-													usercode,
-													goodscode,
-													GOODSSPECIFICATION,
-													goodstypename,
-													MouldQuantity,
-													groutingmouldcode,
-													gmouldstatusname,
-													beginuseddate,
-													groutingdate,
-													mingroutingcount,
-													sumgroutingcount,
-													maxGroutingCount,
-													groutingcount,
-													standardgroutingcount,
-													ENDUSEDDATE,
-													standardgroutingcount - mingroutingcount - sumgroutingcount leftcount,
-													CASE WHEN gmouldstatusname = '变产' AND standardgroutingcount-(sumgroutingcount+mingroutingcount) > standardgroutingcount THEN 0 
-															 WHEN gmouldstatusname = '变产' AND standardgroutingcount-(sumgroutingcount+mingroutingcount) < standardgroutingcount THEN standardgroutingcount-sumgroutingcount+mingroutingcount 
-															 WHEN gmouldstatusname = '卸模' AND standardgroutingcount - mingroutingcount < 0 THEN 0
-															 WHEN gmouldstatusname = '卸模' AND standardgroutingcount - mingroutingcount > 0 THEN standardgroutingcount - mingroutingcount
-															 WHEN gmouldstatusname = '正常' AND standardgroutingcount - mingroutingcount > 0 AND standardgroutingcount - mingroutingcount - sumgroutingcount < 0 THEN standardgroutingcount - mingroutingcount
-															 WHEN gmouldstatusname = '正常' AND standardgroutingcount - mingroutingcount < 0 THEN 0
-															 ELSE sumgroutingcount END financecount,
-													standardgroutingcount - mingroutingcount mingresidue 
-												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 
+														groutinglinecode,
+														BuildingNo,
+														FloorNo,
+														GroutingLineNo,
+														usercode,
+														goodscode,
+														GOODSSPECIFICATION,
+														goodstypename,
+														1 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
-															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 
+															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
-															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 
-													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 
-													ORDER BY
-														BuildingNo,
-														GroutingLineNo,
-														groutinglinecode,
-													groutingmouldcode 
-													)";
+															(
+															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 
+														)
+														";
 
 				List <OracleParameter> parameters = new List<OracleParameter>();
 				parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));