|
|
@@ -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();
|