| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390 |
- 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;
- /// <summary>
- /// 发送LED看板数据到PLC xuwei add 2023-05-12
- /// </summary>
- 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
- sj,
- CL
- FROM
- (
- SELECT
- '07-09' AS sj,
- SUM( ct ) CL
- 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' )
- )
- ORDER BY
- sj
- ",
- new CDAParameter("USERID", "")
- );
- //二线明细
- twoDt = conn.ExecuteDatatable(@"
- SELECT
- sj,
- CL
- FROM
- (
- SELECT
- '07-09' AS sj,
- SUM( ct ) CL
- FROM
- (
- SELECT
- TO_CHAR( pd.CREATETIME, 'hh24' ) sj,
- COUNT( pd.BARCODE ) ct
- FROM
- TP_PM_PRODUCTIONDATA pd
- WHERE
- pd.USERCODE = 'Z28'
- 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 = 'Z28'
- 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 = 'Z28'
- 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' )
- )
- ORDER BY
- sj
- ",
- 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);
- #region 总产量
- if (infoDt != null && infoDt.Rows.Count > 0 && infoDt.Rows[0] != null && infoDt.Rows[0]["总计"] != null)
- {
- SiemensS7.Write<short>("30.0", Convert.ToInt16(infoDt.Rows[0]["总计"]));//包装总量
- }
- else
- {
- SiemensS7.Write<short>("30.0", Convert.ToInt16(0));//包装总量
- }
- if (infoDt != null && infoDt.Rows.Count > 0 && infoDt.Rows[0] != null && infoDt.Rows[0]["一线产量"].ToString() != "")
- {
- SiemensS7.Write<short>("30.2", Convert.ToInt16(infoDt.Rows[0]["一线产量"]));//一线包装产量
- }
- else
- {
- SiemensS7.Write<short>("30.2", Convert.ToInt16(0));//一线包装产量
- }
- if (infoDt != null && infoDt.Rows.Count > 0 && infoDt.Rows[0] != null && infoDt.Rows[0]["二线产量"].ToString() != "")
- {
- SiemensS7.Write<short>("30.4", Convert.ToInt16(infoDt.Rows[0]["二线产量"]));//二线包装产量
- }
- else
- {
- SiemensS7.Write<short>("30.4", Convert.ToInt16(0));//二线包装产量
- }
- #endregion
- #region 一线产量
- if (oneDt != null && oneDt.Rows.Count > 0 && oneDt.Rows[0] != null && oneDt.Rows[0]["CL"].ToString() != "")
- {
- SiemensS7.Write<short>("30.6", Convert.ToInt16(oneDt.Rows[0]["CL"]));//一线7:00-9:00产量
- }
- else
- {
- SiemensS7.Write<short>("30.6", Convert.ToInt16(0));//一线7:00-9:00产量
- }
- if (oneDt != null && oneDt.Rows.Count > 0 && oneDt.Rows[1] != null && oneDt.Rows[1]["CL"].ToString() != "")
- {
- SiemensS7.Write<short>("30.8", Convert.ToInt16(oneDt.Rows[1]["CL"]));//一线9:00-10:00产量
- }
- else
- {
- SiemensS7.Write<short>("30.8", Convert.ToInt16(0));//一线9:00-10:00产量
- }
- if (oneDt != null && oneDt.Rows.Count > 2 && oneDt.Rows[2] != null && oneDt.Rows[2]["CL"].ToString() != "")
- {
- SiemensS7.Write<short>("30.10", Convert.ToInt16(oneDt.Rows[2]["CL"]));//一线10:00-11:00产量
- }
- else
- {
- SiemensS7.Write<short>("30.10", Convert.ToInt16(0));//一线10:00-11:00产量
- }
- if (oneDt != null && oneDt.Rows.Count > 3 && oneDt.Rows[3] != null && oneDt.Rows[3]["CL"].ToString() != "")
- {
- SiemensS7.Write<short>("30.12", Convert.ToInt16(oneDt.Rows[3]["CL"]));//一线12:00-14:00产量
- }
- else
- {
- SiemensS7.Write<short>("30.12", Convert.ToInt16(0));//一线12:00-14:00产量
- }
- if (oneDt != null && oneDt.Rows.Count > 4 && oneDt.Rows[4] != null && oneDt.Rows[4]["CL"].ToString() != "")
- {
- SiemensS7.Write<short>("30.14", Convert.ToInt16(oneDt.Rows[4]["CL"]));//一线14:00-15:00产量
- }
- else
- {
- SiemensS7.Write<short>("30.14", Convert.ToInt16(0));//一线14:00-15:00产量
- }
- if (oneDt != null && oneDt.Rows.Count > 5 && oneDt.Rows[5] != null && oneDt.Rows[5]["CL"].ToString() != "")
- {
- SiemensS7.Write<short>("30.16", Convert.ToInt16(oneDt.Rows[5]["CL"]));//一线15:00-16:00产量
- }
- else
- {
- SiemensS7.Write<short>("30.16", Convert.ToInt16(0));//一线15:00-16:00产量
- }
- if (oneDt != null && oneDt.Rows.Count > 6 && oneDt.Rows[6] != null && oneDt.Rows[6]["CL"].ToString() != "")
- {
- SiemensS7.Write<short>("30.18", Convert.ToInt16(oneDt.Rows[6]["CL"]));//一线16:00-17:00产量
- }
- else
- {
- SiemensS7.Write<short>("30.18", Convert.ToInt16(0));//一线16:00-17:00产量
- }
- if (oneDt != null && oneDt.Rows.Count > 7 && oneDt.Rows[7] != null && oneDt.Rows[7]["CL"].ToString() != "")
- {
- SiemensS7.Write<short>("30.20", Convert.ToInt16(oneDt.Rows[7]["CL"]));//一线17:00-18:00产量
- }
- else
- {
- SiemensS7.Write<short>("30.20", Convert.ToInt16(0));//一线17:00-18:00产量
- }
- #endregion
- #region 二线产量
- if (twoDt != null && twoDt.Rows.Count > 0 && twoDt.Rows[0] != null && twoDt.Rows[0]["CL"].ToString() != "")
- {
- SiemensS7.Write<short>("30.22", Convert.ToInt16(twoDt.Rows[0]["CL"]));//二线7:00-9:00产量
- }
- else
- {
- SiemensS7.Write<short>("30.22", Convert.ToInt16(0));//二线17:00-18:00产量
- }
- if (twoDt != null && twoDt.Rows.Count > 1 && twoDt.Rows[1] != null && twoDt.Rows[1]["CL"].ToString() != "")
- {
- SiemensS7.Write<short>("30.24", Convert.ToInt16(twoDt.Rows[1]["CL"]));//二线9:00-10:00产量
- }
- else
- {
- SiemensS7.Write<short>("30.24", Convert.ToInt16(0));//二线9:00-10:00产量
- }
- if (twoDt != null && twoDt.Rows.Count > 2 && twoDt.Rows[2] != null && twoDt.Rows[2]["CL"].ToString() != "")
- {
- SiemensS7.Write<short>("30.26", Convert.ToInt16(twoDt.Rows[2]["CL"]));//二线10:00-11:00产量
- }
- else
- {
- SiemensS7.Write<short>("30.26", Convert.ToInt16(0));//二线10:00-11:00产量
- }
- if (twoDt != null && twoDt.Rows.Count > 3 && twoDt.Rows[3] != null && twoDt.Rows[3]["CL"].ToString() != "")
- {
- SiemensS7.Write<short>("30.28", Convert.ToInt16(twoDt.Rows[3]["CL"]));//二线12:00-14:00产量
- }
- else
- {
- SiemensS7.Write<short>("30.28", Convert.ToInt16(0));//二线12:00-14:00产量
- }
- if (twoDt != null && twoDt.Rows.Count > 4 && twoDt.Rows[4] != null && twoDt.Rows[4]["CL"].ToString() != "")
- {
- SiemensS7.Write<short>("30.30", Convert.ToInt16(twoDt.Rows[4]["CL"]));//二线14:00-15:00产量
- }
- else
- {
- SiemensS7.Write<short>("30.30", Convert.ToInt16(0));//二线14:00-15:00产量
- }
- if (twoDt != null && twoDt.Rows.Count > 5 && twoDt.Rows[5] != null && twoDt.Rows[5]["CL"].ToString() != "")
- {
- SiemensS7.Write<short>("30.32", Convert.ToInt16(twoDt.Rows[5]["CL"]));//二线15:00-16:00产量
- }
- else
- {
- SiemensS7.Write<short>("30.32", Convert.ToInt16(0));//二线15:00-16:00产量
- }
- if (twoDt != null && twoDt.Rows.Count > 6 && twoDt.Rows[6] != null && twoDt.Rows[6]["CL"].ToString() != "")
- {
- SiemensS7.Write<short>("30.34", Convert.ToInt16(twoDt.Rows[6]["CL"]));//二线16:00-17:00产量
- }
- else
- {
- SiemensS7.Write<short>("30.34", Convert.ToInt16(0));//二线16:00-17:00产量
- }
- if (twoDt != null && twoDt.Rows.Count > 7 && twoDt.Rows[7] != null && twoDt.Rows[7]["CL"].ToString() != "")
- {
- SiemensS7.Write<short>("30.36", Convert.ToInt16(twoDt.Rows[7]["CL"]));//二线17:00-18:00产量
- }
- else
- {
- SiemensS7.Write<short>("30.36", Convert.ToInt16(0));//二线17:00-18:00产量
- }
- #endregion
- SiemensS7.Close();
- Logger.Debug("发送LED数据完成!");
- }
- }
|