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