|
|
@@ -757,28 +757,49 @@ namespace Dongke.IBOSS.PRD.Service.ReportModuleLogic
|
|
|
// " ,gld.ENDUSEDDATE\n" +
|
|
|
// " ,t.groutinglinedetailid\n" +
|
|
|
// " ORDER BY t.groutinglinecode, gld.groutingmouldcode, t.groutinglinedetailid";
|
|
|
- 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,
|
|
|
+ if (se.TotalMethod != null && se.TotalMethod != "" && se.TotalMethod != "goodscode")
|
|
|
+ {
|
|
|
+ sqlString = @"SELECT
|
|
|
+ GROUPING_ID(gmouldstatusname,goodscode) GID,
|
|
|
+ CASE WHEN GROUPING_ID(gmouldstatusname,goodscode)=1 THEN '[小计]'
|
|
|
+ WHEN GROUPING_ID(gmouldstatusname,goodscode)=3 AND " + se.TotalMethod + " is NOT null THEN '【合 计】'";
|
|
|
+ sqlString += @"WHEN GROUPING_ID(gmouldstatusname,goodscode)=3 AND " + se.TotalMethod + " is null THEN '【总 计】' ELSE TO_CHAR(BuildingNo) END AS BuildingNo,";
|
|
|
+ sqlString += @"groutinglinecode,
|
|
|
FloorNo,
|
|
|
GroutingLineNo,
|
|
|
+ gmouldstatusname,
|
|
|
usercode,
|
|
|
goodscode,
|
|
|
GOODSSPECIFICATION,
|
|
|
goodstypename,
|
|
|
- COUNT(1) AS MouldQuantity,
|
|
|
groutingmouldcode,
|
|
|
+ beginuseddate,
|
|
|
+ groutingdate,
|
|
|
+ ENDUSEDDATE,
|
|
|
+ mingresidue,
|
|
|
+ mouldGoodsCode,
|
|
|
+ mouldName,
|
|
|
+ SUM(MouldQuantity) AS MouldQuantity,
|
|
|
+ SUM(mingroutingcount)AS mingroutingcount,
|
|
|
+ SUM(sumgroutingcount)AS sumgroutingcount,
|
|
|
+ SUM(maxGroutingCount)AS maxGroutingCount,
|
|
|
+ SUM(groutingcount)AS groutingcount,
|
|
|
+ SUM(standardgroutingcount) AS standardgroutingcount,
|
|
|
+ SUM(leftcount)AS leftcount,
|
|
|
+ SUM(financecount) AS financecount
|
|
|
+ FROM(
|
|
|
+ SELECT
|
|
|
+ BuildingNo as BuildingNo,
|
|
|
+ groutinglinecode,
|
|
|
+ FloorNo,
|
|
|
+ GroutingLineNo,
|
|
|
gmouldstatusname,
|
|
|
+ usercode,
|
|
|
+ goodscode,
|
|
|
+ GOODSSPECIFICATION,
|
|
|
+ goodstypename,
|
|
|
+ 1 AS MouldQuantity,
|
|
|
+ groutingmouldcode,
|
|
|
beginuseddate,
|
|
|
groutingdate,
|
|
|
mingroutingcount,
|
|
|
@@ -889,18 +910,67 @@ namespace Dongke.IBOSS.PRD.Service.ReportModuleLogic
|
|
|
GroutingLineNo,
|
|
|
groutinglinecode,
|
|
|
groutingmouldcode
|
|
|
- )
|
|
|
- GROUP BY grouping sets((
|
|
|
+ ) )
|
|
|
+ GROUP BY GROUPING SETS((
|
|
|
+ TO_CHAR(BuildingNo),
|
|
|
groutinglinecode,
|
|
|
- BuildingNo,
|
|
|
FloorNo,
|
|
|
GroutingLineNo,
|
|
|
+ gmouldstatusname,
|
|
|
usercode,
|
|
|
goodscode,
|
|
|
GOODSSPECIFICATION,
|
|
|
goodstypename,
|
|
|
groutingmouldcode,
|
|
|
+ beginuseddate,
|
|
|
+ groutingdate,
|
|
|
+ ENDUSEDDATE,
|
|
|
+ mingresidue,
|
|
|
+ mouldGoodsCode,
|
|
|
+ mouldName),";
|
|
|
+ sqlString += @"(gmouldstatusname," + se.TotalMethod + "),(" + se.TotalMethod + "),()) ORDER BY " + se.TotalMethod + ",GROUPING_ID(gmouldstatusname,goodscode)";
|
|
|
+ } else if (se.TotalMethod != null && se.TotalMethod != "" && se.TotalMethod == "goodscode") {
|
|
|
+ sqlString = @"SELECT
|
|
|
+ GROUPING_ID(gmouldstatusname,GroutingLineNo) GID,
|
|
|
+ CASE WHEN GROUPING_ID(gmouldstatusname,GroutingLineNo)=1 THEN '[小计]'
|
|
|
+ WHEN GROUPING_ID(gmouldstatusname,GroutingLineNo)=3 AND " + se.TotalMethod + " is NOT null THEN '【合计】'";
|
|
|
+ sqlString += @"WHEN GROUPING_ID(gmouldstatusname,GroutingLineNo)=3 AND " + se.TotalMethod + " is null THEN '【总计】' ELSE TO_CHAR(BuildingNo) END AS BuildingNo,";
|
|
|
+ sqlString += @"groutinglinecode,
|
|
|
+ FloorNo,
|
|
|
+ GroutingLineNo,
|
|
|
+ gmouldstatusname,
|
|
|
+ usercode,
|
|
|
+ goodscode,
|
|
|
+ GOODSSPECIFICATION,
|
|
|
+ goodstypename,
|
|
|
+ groutingmouldcode,
|
|
|
+ beginuseddate,
|
|
|
+ groutingdate,
|
|
|
+ ENDUSEDDATE,
|
|
|
+ mingresidue,
|
|
|
+ mouldGoodsCode,
|
|
|
+ mouldName,
|
|
|
+ SUM(MouldQuantity) AS MouldQuantity,
|
|
|
+ SUM(mingroutingcount)AS mingroutingcount,
|
|
|
+ SUM(sumgroutingcount)AS sumgroutingcount,
|
|
|
+ SUM(maxGroutingCount)AS maxGroutingCount,
|
|
|
+ SUM(groutingcount)AS groutingcount,
|
|
|
+ SUM(standardgroutingcount) AS standardgroutingcount,
|
|
|
+ SUM(leftcount)AS leftcount,
|
|
|
+ SUM(financecount) AS financecount
|
|
|
+ FROM(
|
|
|
+ SELECT
|
|
|
+ BuildingNo as BuildingNo,
|
|
|
+ groutinglinecode,
|
|
|
+ FloorNo,
|
|
|
+ GroutingLineNo,
|
|
|
gmouldstatusname,
|
|
|
+ usercode,
|
|
|
+ goodscode,
|
|
|
+ GOODSSPECIFICATION,
|
|
|
+ goodstypename,
|
|
|
+ 1 AS MouldQuantity,
|
|
|
+ groutingmouldcode,
|
|
|
beginuseddate,
|
|
|
groutingdate,
|
|
|
mingroutingcount,
|
|
|
@@ -909,13 +979,132 @@ namespace Dongke.IBOSS.PRD.Service.ReportModuleLogic
|
|
|
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((
|
|
|
+ TO_CHAR(BuildingNo),
|
|
|
+ groutinglinecode,
|
|
|
+ FloorNo,
|
|
|
+ GroutingLineNo,
|
|
|
+ gmouldstatusname,
|
|
|
+ usercode,
|
|
|
+ goodscode,
|
|
|
+ GOODSSPECIFICATION,
|
|
|
+ goodstypename,
|
|
|
+ groutingmouldcode,
|
|
|
+ beginuseddate,
|
|
|
+ groutingdate,
|
|
|
+ ENDUSEDDATE,
|
|
|
+ mingresidue,
|
|
|
mouldGoodsCode,
|
|
|
- mouldName
|
|
|
- ),(" + se.TotalMethod+"),())";
|
|
|
+ mouldName),";
|
|
|
+ sqlString += @"(gmouldstatusname," + se.TotalMethod + "),(" + se.TotalMethod + "),()) ORDER BY " + se.TotalMethod + ",GROUPING_ID(gmouldstatusname,GroutingLineNo)";
|
|
|
+
|
|
|
}
|
|
|
- else {
|
|
|
-
|
|
|
- sqlString = @"SELECT
|
|
|
+ else {
|
|
|
+
|
|
|
+ sqlString = @"SELECT
|
|
|
groutinglinecode,
|
|
|
BuildingNo,
|
|
|
FloorNo,
|
|
|
@@ -1049,16 +1238,22 @@ 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());
|
|
|
-
|
|
|
+ DataSet ds = conn.GetSqlResultToDs(sqlString.ToString(), parameters.ToArray());
|
|
|
ServiceResultEntity sre = new ServiceResultEntity();
|
|
|
- if (data == null || data.Rows.Count == 0)
|
|
|
+ //if (data == null || data.Rows.Count == 0)
|
|
|
+ //{
|
|
|
+ // sre.Status = Constant.ServiceResultStatus.NoSearchResults;
|
|
|
+ // return sre;
|
|
|
+ //}
|
|
|
+ //sre.Data = new DataSet();
|
|
|
+ //sre.Data.Tables.Add(data);
|
|
|
+ //return sre;
|
|
|
+ if (ds.Tables == null || ds.Tables[0].Rows.Count == 0)
|
|
|
{
|
|
|
sre.Status = Constant.ServiceResultStatus.NoSearchResults;
|
|
|
return sre;
|
|
|
}
|
|
|
- sre.Data = new DataSet();
|
|
|
- sre.Data.Tables.Add(data);
|
|
|
+ sre.Data = ds;
|
|
|
return sre;
|
|
|
}
|
|
|
catch (Exception ex)
|