using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using DK.XuWei.WebMes;
using Curtain.DataAccess;
using Curtain.Log;
using System.Data;
///
/// 发送LED看板数据到PLC xuwei add 2023-05-12
///
public static class Led
{
public static void SendData()
{
//一线产量明细
DataTable oneDt = new DataTable();
//二线产量明细
DataTable twoDt = new DataTable();
//总计产量
DataTable infoDt = new DataTable();
//读取看板数据
using (IDataAccess conn = DataAccess.Create())
{
//一线明细
oneDt = conn.ExecuteDatatable(@"
SELECT
'07-09' AS sj,
SUM( ct )
FROM
(
SELECT
TO_CHAR( pd.CREATETIME, 'hh24' ) sj,
COUNT( pd.BARCODE ) ct
FROM
TP_PM_PRODUCTIONDATA pd
WHERE
pd.USERCODE = 'Z26'
AND TRUNC( pd.CREATETIME ) = trunc( SYSDATE )
AND pd.VALUEFLAG = 1
AND pd.PROCEDUREID = 2
GROUP BY
TO_CHAR( pd.CREATETIME, 'hh24' )
ORDER BY
TO_CHAR( pd.CREATETIME, 'hh24' )
)
WHERE
sj IN ( '07', '08' ) UNION ALL
SELECT
sj,
ct
FROM
(
SELECT
TO_CHAR( pd.CREATETIME, 'hh24' ) sj,
COUNT( pd.BARCODE ) ct
FROM
TP_PM_PRODUCTIONDATA pd
WHERE
pd.USERCODE = 'Z26'
AND TRUNC( pd.CREATETIME ) = trunc( SYSDATE )
AND pd.VALUEFLAG = 1
AND pd.PROCEDUREID = 2
GROUP BY
TO_CHAR( pd.CREATETIME, 'hh24' )
ORDER BY
TO_CHAR( pd.CREATETIME, 'hh24' )
)
WHERE
sj NOT IN ( '07', '08', '12', '13' ) UNION ALL
SELECT
'12-14' AS sj,
SUM( ct )
FROM
(
SELECT
TO_CHAR( pd.CREATETIME, 'hh24' ) sj,
COUNT( pd.BARCODE ) ct
FROM
TP_PM_PRODUCTIONDATA pd
WHERE
pd.USERCODE = 'Z26'
AND TRUNC( pd.CREATETIME ) = trunc( SYSDATE )
AND pd.VALUEFLAG = 1
AND pd.PROCEDUREID = 2
GROUP BY
TO_CHAR( pd.CREATETIME, 'hh24' )
ORDER BY
TO_CHAR( pd.CREATETIME, 'hh24' )
)
WHERE
sj IN ( '12', '13' )
",
new CDAParameter("USERID", "")
);
//二线明细
twoDt = conn.ExecuteDatatable(@"
SELECT
'07-09' AS sj,
SUM( ct )
FROM
(
SELECT
TO_CHAR( pd.CREATETIME, 'hh24' ) sj,
COUNT( pd.BARCODE ) ct
FROM
TP_PM_PRODUCTIONDATA pd
WHERE
pd.USERCODE = 'Z26'
AND TRUNC( pd.CREATETIME ) = trunc( SYSDATE )
AND pd.VALUEFLAG = 1
AND pd.PROCEDUREID = 2
GROUP BY
TO_CHAR( pd.CREATETIME, 'hh24' )
ORDER BY
TO_CHAR( pd.CREATETIME, 'hh24' )
)
WHERE
sj IN ( '07', '08' ) UNION ALL
SELECT
sj,
ct
FROM
(
SELECT
TO_CHAR( pd.CREATETIME, 'hh24' ) sj,
COUNT( pd.BARCODE ) ct
FROM
TP_PM_PRODUCTIONDATA pd
WHERE
pd.USERCODE = 'Z26'
AND TRUNC( pd.CREATETIME ) = trunc( SYSDATE )
AND pd.VALUEFLAG = 1
AND pd.PROCEDUREID = 2
GROUP BY
TO_CHAR( pd.CREATETIME, 'hh24' )
ORDER BY
TO_CHAR( pd.CREATETIME, 'hh24' )
)
WHERE
sj NOT IN ( '07', '08', '12', '13' ) UNION ALL
SELECT
'12-14' AS sj,
SUM( ct )
FROM
(
SELECT
TO_CHAR( pd.CREATETIME, 'hh24' ) sj,
COUNT( pd.BARCODE ) ct
FROM
TP_PM_PRODUCTIONDATA pd
WHERE
pd.USERCODE = 'Z26'
AND TRUNC( pd.CREATETIME ) = trunc( SYSDATE )
AND pd.VALUEFLAG = 1
AND pd.PROCEDUREID = 2
GROUP BY
TO_CHAR( pd.CREATETIME, 'hh24' )
ORDER BY
TO_CHAR( pd.CREATETIME, 'hh24' )
)
WHERE
sj IN ( '12', '13' )
",
new CDAParameter("USERID", "")
);
//总计
infoDt = conn.ExecuteDatatable(@"
WITH 一线 AS (
SELECT
COUNT( DISTINCT pd.BARCODE ) 一线产量
FROM
TP_PM_PRODUCTIONDATA pd
WHERE
pd.VALUEFLAG = 1
AND pd.PROCEDUREID = 2
AND pd.USERCODE = 'Z26'
AND TRUNC( pd.CREATETIME ) = trunc( SYSDATE )
),
二线 AS (
SELECT
COUNT( DISTINCT pd.BARCODE ) 二线产量
FROM
TP_PM_PRODUCTIONDATA pd
WHERE
pd.VALUEFLAG = 1
AND pd.PROCEDUREID = 2
AND pd.USERCODE = 'Z28'
AND TRUNC( pd.CREATETIME ) = trunc( SYSDATE )
) SELECT
一线.一线产量,
二线.二线产量,
( 一线.一线产量 +二线.二线产量 ) 总计
FROM
一线
LEFT JOIN 二线 ON 1 =1
",
new CDAParameter("USERID", "")
);
}
Logger.Debug("读取看板数据完成!");
//发送数据到LED
//SiemensS7.Open("172.19.2.71", 102);
SiemensS7.Open("172.19.26.82", 102);
SiemensS7.Write("0.0", (Int16)infoDt.Rows[0]["总计"]);//包装总量
SiemensS7.Write("2.0", (Int16)infoDt.Rows[0]["一线产量"]);//一线包装产量
SiemensS7.Write("4.0", (Int16)infoDt.Rows[0]["二线产量"]);//二线包装产量
SiemensS7.Write("6.0", (Int16)oneDt.Rows[0]["SUM( ct )"]);//一线7:00-9:00产量
SiemensS7.Write("8.0", (Int16)oneDt.Rows[1]["SUM( ct )"]);//一线9:00-10:00产量
SiemensS7.Write("10.0", (Int16)oneDt.Rows[2]["SUM( ct )"]);//一线10:00-11:00产量
SiemensS7.Write("12.0", (Int16)oneDt.Rows[3]["SUM( ct )"]);//一线12:00-14:00产量
SiemensS7.Write("14.0", (Int16)oneDt.Rows[4]["SUM( ct )"]);//一线14:00-15:00产量
SiemensS7.Write("16.0", (Int16)oneDt.Rows[5]["SUM( ct )"]);//一线15:00-16:00产量
SiemensS7.Write("18.0", (Int16)oneDt.Rows[6]["SUM( ct )"]);//一线16:00-17:00产量
SiemensS7.Write("20.0", (Int16)oneDt.Rows[7]["SUM( ct )"]);//一线17:00-18:00产量
SiemensS7.Write("22.0", (Int16)twoDt.Rows[0]["SUM( ct )"]);//二线7:00-9:00产量
SiemensS7.Write("24.0", (Int16)twoDt.Rows[1]["SUM( ct )"]);//二线9:00-10:00产量
SiemensS7.Write("26.0", (Int16)twoDt.Rows[2]["SUM( ct )"]);//二线10:00-11:00产量
SiemensS7.Write("28.0", (Int16)twoDt.Rows[3]["SUM( ct )"]);//二线12:00-14:00产量
SiemensS7.Write("30.0", (Int16)twoDt.Rows[4]["SUM( ct )"]);//二线14:00-15:00产量
SiemensS7.Write("32.0", (Int16)twoDt.Rows[5]["SUM( ct )"]);//二线15:00-16:00产量
SiemensS7.Write("34.0", (Int16)twoDt.Rows[6]["SUM( ct )"]);//二线16:00-17:00产量
SiemensS7.Write("36.0", (Int16)twoDt.Rows[7]["SUM( ct )"]);//二线17:00-18:00产量
SiemensS7.Close();
Logger.Debug("发送LED数据完成!");
}
}