frmGraphInfo.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275
  1. using com.hnshituo.core.webapp.vo;
  2. using Common;
  3. using Common.vo.pb;
  4. using Infragistics.Win;
  5. using Infragistics.Win.UltraWinEditors;
  6. using Infragistics.Win.UltraWinGrid;
  7. using JC_MeasuringSystem;
  8. using MeterModuleLibrary;
  9. using MeterPlugInLibrary;
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Data;
  13. using System.Drawing;
  14. using System.Linq;
  15. using System.Net;
  16. using System.Threading;
  17. using System.Windows.Forms;
  18. namespace BeltScaleSystem
  19. {
  20. public partial class frmGraphInfo : Form
  21. {
  22. private MeterWorkBeltTimingService meterWorkBeltTimingService = new MeterWorkBeltTimingService();
  23. private StrapSeries _series1 = new StrapSeries();
  24. private StrapSeries _series2 = new StrapSeries();
  25. private const int _maxPointCount = 300;
  26. private DataTable dtTmingTable;//实时量数据源
  27. private DataTable dtTmingTable2;//实时量数据源
  28. private DataTable dtPoint;//计量点数据源
  29. private Log l = Log.GetInstance(); //日志
  30. public frmGraphInfo()
  31. {
  32. InitializeComponent();
  33. }
  34. //菜单栏事件
  35. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  36. {
  37. switch (e.Tool.Key)
  38. {
  39. case "查询":
  40. QueryScalePrediction();
  41. break;
  42. }
  43. }
  44. private void frmGraphInfo_Load(object sender, EventArgs e)
  45. {
  46. dtStartTime.Value = Convert.ToDateTime((DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00"));
  47. dtEndTime.Value = Convert.ToDateTime((DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59"));
  48. MeterBaseSpotInfoService meterBaseSpotInfoService = new MeterBaseSpotInfoService();//计量点信息
  49. RESTfulResult<List<MeterBaseSpotInfo>> spo = meterBaseSpotInfoService.doQueryWf(new MeterBaseSpotInfo { validFlag = "1", spotTypeNo = "001002005" });
  50. if (spo.Succeed && spo.Data != null && spo.Data.Count > 0)
  51. {
  52. dtPoint = spo.Data.ListToDataTable<MeterBaseSpotInfo>();
  53. }
  54. if (dtPoint != null)
  55. {
  56. cbPntName_1.DataSource = dtPoint;
  57. cbPntName_1.DisplayMember = "baseSpotName";
  58. cbPntName_1.ValueMember = "baseSpotNo";
  59. }
  60. cbPntName_1.SelectedIndex = -1;
  61. DataTable dt3 = new DataTable();
  62. dt3.Columns.Add("TEXT");
  63. dt3.Columns.Add("VALUE");
  64. dt3.Rows.Add("0", "全部");
  65. dt3.Rows.Add("1", "A秤");
  66. dt3.Rows.Add("2", "B秤");
  67. valueToCombo(dt3, cmbStateName);
  68. this.cmbStateName.SelectedIndex = 0;
  69. ultraChart1.Series.Clear();
  70. ultraChart2.Series.Clear();
  71. ultraChart1.Series.Add(_series1);
  72. ultraChart2.Series.Add(_series2);
  73. StrapDataPoint point = new StrapDataPoint();
  74. point.NumericValue = 0;
  75. point.TimeValue = DateTime.Now.AddSeconds(-_maxPointCount);
  76. _series1.Points.Add(point);
  77. _series2.Points.Add(point);
  78. ultraChart1.Tooltips.Format = Infragistics.UltraChart.Shared.Styles.TooltipStyle.LabelPlusDataValue;
  79. ultraChart2.Tooltips.Format = Infragistics.UltraChart.Shared.Styles.TooltipStyle.LabelPlusDataValue;
  80. }
  81. //下拉框控件自定义option
  82. public static void valueToCombo(DataTable source, UltraComboEditor cbb)
  83. {
  84. cbb.DataSource = source;
  85. cbb.DisplayMember = "VALUE";
  86. cbb.ValueMember = "TEXT";
  87. }
  88. //实绩查询
  89. private void QueryScalePrediction() {
  90. try
  91. {
  92. if (string.IsNullOrEmpty(this.cbPntName_1.Text.Trim().ToString()))
  93. {
  94. MessageBox.Show("请选择计量点!");
  95. this.cbPntName_1.Focus();
  96. return;
  97. }
  98. if (string.IsNullOrEmpty(this.cmbStateName.Text.Trim().ToString()))
  99. {
  100. MessageBox.Show("请选择AB秤!");
  101. this.cmbStateName.Focus();
  102. return;
  103. }
  104. string substract = (dtStartTime.Value.Date.Day - dtEndTime.Value.Date.Day).ToString();
  105. if (Convert.ToInt32(substract) > 1)
  106. {
  107. MessageBox.Show("查询天数不能超过1天!");
  108. return;
  109. }
  110. string scaleName = "";
  111. if (cmbStateName.Text != "全部" && cmbStateName.Text != "")
  112. {
  113. scaleName = cmbStateName.Text.ToString().Substring(0, 1);
  114. RESTfulResult<List<MeterWorkBeltTiminginfo>> rms = findRealTiming(scaleName);
  115. if (rms.Succeed)
  116. {
  117. if (rms.Data != null && rms.Data.Count > 0)
  118. {
  119. dtTmingTable = rms.Data.ListToDataTable<MeterWorkBeltTiminginfo>();
  120. if (dtTmingTable == null || dtTmingTable.Rows.Count <= 0)
  121. {
  122. MessageBox.Show("没有数据!");
  123. return;
  124. }
  125. if (scaleName == "A")
  126. {
  127. ultraChart1.Series.Clear();
  128. _series1.Points.Clear();
  129. }
  130. else
  131. {
  132. ultraChart2.Series.Clear();
  133. _series2.Points.Clear();
  134. }
  135. for (int i = 0; i < dtTmingTable.Rows.Count; i++)
  136. {
  137. StrapDataPoint point = new StrapDataPoint();
  138. point.TimeValue = Convert.ToDateTime(dtTmingTable.Rows[i]["createTime"]);
  139. point.NumericValue = Convert.ToDouble(dtTmingTable.Rows[i]["realtimeAmount"]);
  140. point.Label = "时间:" + point.TimeValue.ToString("MM-dd HH:mm:ss") + "\r\n流量";
  141. if (scaleName == "A")
  142. {
  143. _series1.Points.Add(point);
  144. }
  145. else if (scaleName == "B")
  146. {
  147. _series2.Points.Add(point);
  148. }
  149. }
  150. if (scaleName == "A")
  151. {
  152. ultraChart1.Series.Add(_series1);
  153. if (_series1.Points.Count > _maxPointCount)
  154. {
  155. _series1.Points.RemoveAt(0);
  156. }
  157. }
  158. else if (scaleName == "B")
  159. {
  160. ultraChart2.Series.Add(_series2);
  161. if (_series2.Points.Count > _maxPointCount)
  162. {
  163. _series2.Points.RemoveAt(0);
  164. }
  165. }
  166. }
  167. else
  168. {
  169. MessageBox.Show(rms.Message);
  170. if (dtTmingTable != null)
  171. dtTmingTable.Clear();
  172. return;
  173. }
  174. }
  175. }
  176. else if(cmbStateName.Text == "全部")
  177. {
  178. RESTfulResult<List<MeterWorkBeltTiminginfo>> rms = findRealTiming("A");
  179. RESTfulResult<List<MeterWorkBeltTiminginfo>> rms2 = findRealTiming("B");
  180. if (rms.Succeed&&rms2.Succeed)
  181. {
  182. if (rms.Data != null && rms.Data.Count > 0&& rms2.Data != null && rms2.Data.Count > 0)
  183. {
  184. dtTmingTable = rms.Data.ListToDataTable<MeterWorkBeltTiminginfo>();
  185. dtTmingTable2 = rms.Data.ListToDataTable<MeterWorkBeltTiminginfo>();
  186. if (dtTmingTable == null || dtTmingTable.Rows.Count <= 0&& dtTmingTable2 == null || dtTmingTable2.Rows.Count <= 0)
  187. {
  188. MessageBox.Show("没有数据!");
  189. return;
  190. }
  191. ultraChart1.Series.Clear();
  192. _series1.Points.Clear();
  193. ultraChart2.Series.Clear();
  194. _series2.Points.Clear();
  195. for (int i = 0; i < dtTmingTable.Rows.Count; i++)
  196. {
  197. StrapDataPoint point = new StrapDataPoint();
  198. point.TimeValue = Convert.ToDateTime(dtTmingTable.Rows[i]["createTime"]);
  199. point.NumericValue = Convert.ToDouble(dtTmingTable.Rows[i]["realtimeAmount"]);
  200. point.Label = "时间:" + point.TimeValue.ToString("MM-dd HH:mm:ss") + "\r\n流量";
  201. _series1.Points.Add(point);
  202. }
  203. for (int i = 0; i < dtTmingTable2.Rows.Count; i++)
  204. {
  205. StrapDataPoint point = new StrapDataPoint();
  206. point.TimeValue = Convert.ToDateTime(dtTmingTable.Rows[i]["createTime"]);
  207. point.NumericValue = Convert.ToDouble(dtTmingTable.Rows[i]["realtimeAmount"]);
  208. point.Label = "时间:" + point.TimeValue.ToString("MM-dd HH:mm:ss") + "\r\n流量";
  209. _series2.Points.Add(point);
  210. }
  211. ultraChart1.Series.Add(_series1);
  212. if (_series1.Points.Count > _maxPointCount)
  213. {
  214. _series1.Points.RemoveAt(0);
  215. }
  216. ultraChart2.Series.Add(_series2);
  217. if (_series2.Points.Count > _maxPointCount)
  218. {
  219. _series2.Points.RemoveAt(0);
  220. }
  221. }
  222. else
  223. {
  224. MessageBox.Show("没有数据");
  225. if(dtTmingTable!=null)dtTmingTable.Clear();
  226. if(dtTmingTable2!=null)dtTmingTable2.Clear();
  227. return;
  228. }
  229. }
  230. }
  231. }
  232. catch (Exception ex )
  233. {
  234. l.WriteLog("皮带秤计量异常_", "查询错误" + ex.Message);
  235. MessageBox.Show("查询错误"+ex.Message);
  236. return;
  237. }
  238. }
  239. private RESTfulResult<List<MeterWorkBeltTiminginfo>> findRealTiming(string ScaleName) {
  240. CommonPage<MeterWorkBeltTiminginfo> cp = new CommonPage<MeterWorkBeltTiminginfo>();
  241. MeterWorkBeltTiminginfo timinginfo = new MeterWorkBeltTiminginfo();
  242. cp.startTime = dtStartTime.Text.ToString();
  243. cp.endTime = dtEndTime.Text.ToString();
  244. timinginfo.scaleName = ScaleName;
  245. if (cbPntName_1.Text.ToString() != "")
  246. {
  247. timinginfo.baseSpotNo = cbPntName_1.Value.ToString();
  248. }
  249. timinginfo.valueFlag = "1";
  250. timinginfo.weightType = "1";
  251. cp.param = timinginfo;
  252. return meterWorkBeltTimingService.doQueryWf(cp);
  253. }
  254. }
  255. }