|
|
@@ -125,53 +125,37 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
{
|
|
|
//读取报表数据
|
|
|
string sqlStr = @"
|
|
|
+ WITH
|
|
|
+ month
|
|
|
+ AS
|
|
|
+ (
|
|
|
+ SELECT SUBSTR(TO_CHAR(T.TIME),0,2) m FROM (SELECT TRUNC(SYSDATE,'MM')+ROWNUM-1 TIME FROM dual connect by ROWNUM<=to_char(last_day(SYSDATE),'dd')) T
|
|
|
+ ),
|
|
|
+
|
|
|
+ count AS(
|
|
|
SELECT
|
|
|
- TT.TIME,
|
|
|
- CASE WHEN T.NUM = 0 THEN '0'
|
|
|
- ELSE TO_CHAR( TRUNC(T.NUM/T.PLAN, 4 ) * 100, '990.00' )
|
|
|
- END RATE
|
|
|
- FROM(
|
|
|
+ T.TIME TIME,
|
|
|
+ CASE
|
|
|
+ WHEN T.bz_plan_qty = 0 THEN
|
|
|
+ NULL ELSE to_char( round( T.make_qty / T.bz_plan_qty, 4 ) * 100, 'fm9999999990.00' )
|
|
|
+ END AS RATE
|
|
|
+ FROM(
|
|
|
SELECT
|
|
|
- TO_NUMBER(TO_CHAR( F.CREATETIME, 'DD' )) AS TIME,
|
|
|
- COUNT( DISTINCT F.BARCODE ) AS NUM,
|
|
|
- (
|
|
|
- SELECT
|
|
|
- ROUND( DP.PLANNUM / 30, 0 )
|
|
|
- FROM
|
|
|
- TP_MST_DASHBOARD_PLAN DP
|
|
|
- INNER JOIN TP_MST_DASHBOARD D ON DP.DASHBOARDID = D.DASHBOARDID
|
|
|
- WHERE
|
|
|
- DP.PLANTYPE = 3
|
|
|
- AND DP.PLANYEAR = TO_NUMBER( TO_CHAR( SYSDATE, 'YYYY' ) )
|
|
|
- AND DP.PLANMONTH = TO_NUMBER( TO_CHAR( SYSDATE, 'MM' ) )
|
|
|
- AND D.DASHBOARDNAME = '包装'
|
|
|
- ) AS PLAN
|
|
|
+ TO_CHAR( dp.plandate, 'DD' ) TIME,
|
|
|
+ SUM(dp.make_qty) make_qty,
|
|
|
+ SUM(dp.bz_plan_qty) bz_plan_qty
|
|
|
FROM
|
|
|
- TP_PM_FINISHEDPRODUCT F
|
|
|
- INNER JOIN
|
|
|
- TP_MST_GOODS G
|
|
|
- ON F.GOODSID = G.GOODSID
|
|
|
- INNER JOIN
|
|
|
- TP_MST_GOODSTYPE GT
|
|
|
- ON GT.GOODSTYPEID = G.GOODSTYPEID
|
|
|
+ tp_pack_dailyplan dp
|
|
|
+ INNER JOIN tp_mst_user mu ON mu.userid = dp.createuserid
|
|
|
WHERE
|
|
|
- F.CREATETIME >= TRUNC( SYSDATE, 'MM' )
|
|
|
- AND F.VALUEFLAG = 1
|
|
|
- AND INSTR(GT.GOODSTYPECODE,'001001') = 1
|
|
|
- GROUP BY
|
|
|
- TO_CHAR( F.CREATETIME, 'DD' )
|
|
|
- ORDER BY
|
|
|
- TO_CHAR( F.CREATETIME, 'DD' )
|
|
|
- )T
|
|
|
- FULL JOIN (SELECT
|
|
|
- substr(TM.TIME,9) time,
|
|
|
- 0 NUM
|
|
|
- FROM(
|
|
|
- SELECT
|
|
|
- CASE WHEN ROWNUM < 10 THEN
|
|
|
- concat( to_char( SYSDATE, 'yyyy-mm-' ), '0' || ROWNUM ) ELSE concat( to_char( SYSDATE, 'yyyy-mm-' ), ROWNUM ) END AS time
|
|
|
- FROM
|
|
|
- dual CONNECT BY ROWNUM <= to_char( last_day( SYSDATE ), 'dd' ))TM) TT ON T.TIME = TT.TIME ORDER BY TT.TIME ASC
|
|
|
+ dp.valueflag = 1
|
|
|
+ AND dp.accountid = 1
|
|
|
+ AND dp.WORKSHOP = 3
|
|
|
+ AND TO_CHAR(dp.plandate,'mm')=TO_CHAR( SYSDATE, 'mm' )
|
|
|
+ GROUP BY TO_CHAR( dp.plandate, 'DD' )
|
|
|
+ ORDER BY TO_CHAR( dp.plandate, 'DD' ) ASC ) T)
|
|
|
+
|
|
|
+ SELECT m.m TIME,c.RATE FROM month m LEFT JOIN count c ON m.m = c.TIME ORDER BY m.m ASC
|
|
|
";
|
|
|
//直接获取不分页数据
|
|
|
DataTable dt = conn.ExecuteDatatable(sqlStr);
|