frmHotDeliveryScale.cs 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726
  1. using com.hnshituo.core.webapp.vo;
  2. using Common;
  3. using Infragistics.Win;
  4. using Infragistics.Win.UltraWinGrid;
  5. using JC_MeasuringSystem;
  6. using Microsoft.VisualBasic;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Data;
  10. using System.Drawing;
  11. using System.Windows.Forms;
  12. namespace StorageMeterSystem
  13. {
  14. public partial class frmHotDeliveryScale : Form
  15. {
  16. private PreStorageScaleService scaleService = new PreStorageScaleService(); //预报服务
  17. private ComBaseInfoService comBaseInfoService = new ComBaseInfoService(); //基础数服务
  18. private MeterBaseScalePointService scalePointService = new MeterBaseScalePointService(); //计量点信息服务
  19. private MeterWorkStorageSingleWgtService singleWgtService = new MeterWorkStorageSingleWgtService(); //理论重量表
  20. private MeterWorkStorageActualService actualService = new MeterWorkStorageActualService(); //实绩服务
  21. private PreStorageScale preTack = new PreStorageScale(); //预报实体类
  22. private Log l = Log.GetInstance(); //日志
  23. private string userId = "", userName = ""; //用户ID用户名
  24. private CoreAppUser appUser = null;//登陆信息
  25. private frmHotDeliveryBeltWarn fm = null;//预警界面
  26. public bool bMsgOpen = false; //是否打开了预警界面提醒
  27. public frmHotDeliveryScale()
  28. {
  29. InitializeComponent();
  30. }
  31. private void frmHotDeliveryScale_Load(object sender, EventArgs e)
  32. {
  33. ClsControlPack.SetNoEnable(ultraGridScale);
  34. userId = ((ST_MainForm)(this.MdiParent)).UserID;
  35. userName = ((ST_MainForm)(this.MdiParent)).UserName;
  36. appUser = ((ST_MainForm)(this.MdiParent)).AppUser;
  37. dtStartTime.Value = Convert.ToDateTime((DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00"));
  38. dtEndTime.Value = Convert.ToDateTime((DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59"));
  39. //用户可以点击抬头进行排序
  40. this.ultraGridScale.DisplayLayout.ViewStyleBand = ViewStyleBand.OutlookGroupBy;
  41. this.ultraGridScale.DisplayLayout.GroupByBox.Hidden = true;
  42. #region 载入基础信息
  43. /*
  44. string sql = @"SELECT base_code baseCode,base_name baseName,memo FROM Com_Base_Info where p_base_code='001025' and valid_Flag='1'";
  45. PbModelDbService<List<ComBaseInfo>> pb = new PbModelDbService<List<ComBaseInfo>>();
  46. RESTfulResult<List<ComBaseInfo>> rmType = pb.executeSqlDataWf(sql);
  47. if (rmType.Succeed && rmType.Data != null && rmType.Data.Count > 0)
  48. {
  49. ClsControlPack.SetUltraComboDataSource(cmbScaleState, rmType.Data.ListToDataTable<ComBaseInfo>(), "baseCode", "baseName");
  50. }
  51. else
  52. {
  53. MessageBox.Show("产品信息载入失败");
  54. return;
  55. }
  56. */
  57. //计量点信息载入cmbPoint;cmbPointUp
  58. RESTfulResult<List<MeterBaseScalePoint>> rr = scalePointService.doQueryWf(new MeterBaseScalePoint { validFlag = "1", spotTypeNo = "001002004" });
  59. if (rr.Succeed && rr.Data != null && rr.Data.Count > 0)
  60. {
  61. //ClsControlPack.SetUltraComboDataSource(cmbPoint, rr.Data.ListToDataTable<MeterBaseScalePoint>(), "baseSpotNo", "baseSpotName");
  62. //ClsControlPack.SetUltraComboDataSource(cmbPointUp, rr.Data.ListToDataTable<MeterBaseScalePoint>(), "baseSpotNo", "baseSpotName");
  63. ValueList vlist2 = new ValueList();
  64. foreach (var item in rr.Data)
  65. {
  66. vlist2.ValueListItems.Add(item.baseSpotNo, item.baseSpotName);
  67. }
  68. cmbPoint.ValueList = vlist2;
  69. cmbPoint.SelectedIndex = 0;
  70. cmbPointUp.ValueList = vlist2;
  71. cmbPointUp.SelectedIndex = 0;
  72. }
  73. else
  74. {
  75. MessageBox.Show("计量点载入失败!");
  76. return;
  77. }
  78. //热送磅规格信息载入cmbSpcNameUp
  79. RESTfulResult<List<ComBaseInfo>> rrComSpcName = comBaseInfoService.doQueryBaseList(new ComBaseInfo { validFlag = "1", pBaseCode = "001018" });
  80. if (rrComSpcName.Succeed && rrComSpcName.Data != null && rrComSpcName.Data.Count > 0)
  81. {
  82. rrComSpcName.Data.Sort((a, b) => a.baseName.CompareTo(b.baseName));
  83. ClsControlPack.SetUltraComboDataSource(cmbSpcNameUp, rrComSpcName.Data.ListToDataTable<ComBaseInfo>(), "baseCode", "baseName");
  84. }
  85. else
  86. {
  87. MessageBox.Show("热送磅规格信息载入失败!");
  88. return;
  89. }
  90. //热送磅钢种信息载入cmbGradeNameUp
  91. RESTfulResult<List<ComBaseInfo>> rrComGradeName = comBaseInfoService.doQueryBaseList(new ComBaseInfo { validFlag = "1", pBaseCode = "001017" });
  92. if (rrComGradeName.Succeed && rrComGradeName.Data != null && rrComGradeName.Data.Count > 0)
  93. {
  94. rrComGradeName.Data.Sort((a, b) => a.baseName.CompareTo(b.baseName));
  95. ClsControlPack.SetUltraComboDataSource(cmbGradeNameUp, rrComGradeName.Data.ListToDataTable<ComBaseInfo>(), "baseCode", "baseName");
  96. }
  97. else
  98. {
  99. MessageBox.Show("热送磅钢种信息载入失败!");
  100. return;
  101. }
  102. //热送磅班组信息载入cmbMeterGroupUp
  103. RESTfulResult<List<ComBaseInfo>> rrComMeterGroop = comBaseInfoService.doQueryBaseList(new ComBaseInfo { validFlag = "1", pBaseCode = "001044" });
  104. if (rrComMeterGroop.Succeed && rrComMeterGroop.Data != null && rrComMeterGroop.Data.Count > 0)
  105. {
  106. ClsControlPack.SetUltraComboDataSource(cmbMeterGroupUp, rrComMeterGroop.Data.ListToDataTable<ComBaseInfo>(), "baseCode", "baseName");
  107. ClsControlPack.SetUltraComboDataSource(cmbMeterGroup, rrComMeterGroop.Data.ListToDataTable<ComBaseInfo>(), "baseCode", "baseName");
  108. }
  109. else
  110. {
  111. MessageBox.Show("热送磅班组信息载入失败!");
  112. return;
  113. }
  114. //热送磅班次信息载入cmbMeterClassUp
  115. RESTfulResult<List<ComBaseInfo>> rrComMeterClass = comBaseInfoService.doQueryBaseList(new ComBaseInfo { validFlag = "1", pBaseCode = "001043" });
  116. if (rrComMeterClass.Succeed && rrComMeterClass.Data != null && rrComMeterClass.Data.Count > 0)
  117. {
  118. ClsControlPack.SetUltraComboDataSource(cmbMeterClassUp, rrComMeterClass.Data.ListToDataTable<ComBaseInfo>(), "baseCode", "baseName");
  119. ClsControlPack.SetUltraComboDataSource(cmbMeterClass, rrComMeterClass.Data.ListToDataTable<ComBaseInfo>(), "baseCode", "baseName");
  120. }
  121. else
  122. {
  123. MessageBox.Show("热送磅班次信息载入失败!");
  124. return;
  125. }
  126. //预报状态
  127. ValueList vlistScale = new ValueList();
  128. vlistScale.ValueListItems.Add("", "全部");
  129. vlistScale.ValueListItems.Add("0", "无效");
  130. vlistScale.ValueListItems.Add("1", "未使用");
  131. vlistScale.ValueListItems.Add("2", "使用中");
  132. vlistScale.ValueListItems.Add("3", "已完成");
  133. cmbScaleState.ValueList = vlistScale;
  134. cmbScaleState.SelectedIndex = 0;
  135. ValueList vlistFlag3 = new ValueList();
  136. vlistFlag3.ValueListItems.Add("", "全部");
  137. vlistFlag3.ValueListItems.Add("0", "无效");
  138. vlistFlag3.ValueListItems.Add("1", "未使用");
  139. vlistFlag3.ValueListItems.Add("2", "使用中");
  140. vlistFlag3.ValueListItems.Add("3", "已完成");
  141. this.ultraGridScale.DisplayLayout.Bands[0].Columns["valueFlag"].ValueList = vlistFlag3;
  142. //ClsControlPack.SetUltraGridRowFilter(ref ultraGridScale, true);
  143. #endregion 载入基础信息
  144. }
  145. #region 点击事件
  146. /// <summary>
  147. /// 点击事件
  148. /// </summary>
  149. /// <param name="sender"></param>
  150. /// <param name="e"></param>
  151. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  152. {
  153. switch (e.Tool.Key)
  154. {
  155. case "btnQuery": //btnInsert
  156. {
  157. btnQuery();
  158. break;
  159. }
  160. case "btnInsert": //新增
  161. {
  162. btnInsert();
  163. break;
  164. }
  165. case "btnCancel": //作废
  166. {
  167. btnUpdate("0");
  168. }
  169. break;
  170. case "btnUnCancel": //还原
  171. {
  172. btnUpdate("1");
  173. }
  174. break;
  175. case "btnUpdate": //还原
  176. {
  177. btnUpdate("");
  178. }
  179. break;
  180. case "btnExcelOut": //导出
  181. {
  182. string str = Interaction.InputBox("请输入要导出的文件名", "提示", "", 100, 100);
  183. string pqath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
  184. this.ultraGridExcelExporter1.Export(this.ultraGridScale, pqath + "\\" + str + ".xls");
  185. //MessageUtil.ShowTips("导出成功,请查看桌面!是否有[" + str + ".xls]表格");
  186. MessageBox.Show("导出成功,请查看桌面!是否有[" + str + ".xls]表格");
  187. }
  188. break;
  189. default: break;
  190. }
  191. }
  192. /// <summary>
  193. /// 行点击事件,给下面的区域赋值
  194. /// </summary>
  195. /// <param name="sender"></param>
  196. /// <param name="e"></param>
  197. private void ultraGridScale_ClickCell(object sender, ClickCellEventArgs e)
  198. {
  199. try
  200. {
  201. if (ultraGridScale.ActiveRow == null)
  202. {
  203. return;
  204. }
  205. UltraGridRow ugr = ultraGridScale.ActiveRow;
  206. if (ugr.Cells["UNCK"].Value.ToString().ToUpper().Equals("TRUE"))
  207. {
  208. ugr.Cells["UNCK"].Value = false;
  209. }
  210. else
  211. {
  212. ugr.Cells["UNCK"].Value = true;
  213. }
  214. //界面赋值
  215. if (ugr != null)
  216. {
  217. preTack.predictionNo = ugr.Cells["predictionNo"].Text.Trim(); //预报编号
  218. preTack.specName = ugr.Cells["specName"].Text.Trim(); //规格
  219. preTack.gradeName = ugr.Cells["gradeName"].Text.Trim(); //钢号
  220. preTack.batchNo = ugr.Cells["batchNo"].Text.Trim(); //批次号
  221. preTack.heatNo = ugr.Cells["heatNo"].Text.Trim(); //炉号
  222. preTack.packageNo = ugr.Cells["packageNo"].Text.Trim(); //顺序号
  223. preTack.blockNum = ugr.Cells["blockNum"].Text.Trim(); //总支数
  224. preTack.theoreticalWeight = Convert.ToDouble(string.IsNullOrEmpty(ugr.Cells["theoreticalWeight"].Text.Trim()) ? "0" : ugr.Cells["theoreticalWeight"].Text.Trim()); //理论重量
  225. preTack.weightDiff = Convert.ToDouble(string.IsNullOrEmpty(ugr.Cells["weightDiff"].Text.Trim()) ? "0" : ugr.Cells["weightDiff"].Text.Trim()); //理论重量差值
  226. preTack.meterClass = ugr.Cells["meterClass"].Text.Trim(); //班次
  227. preTack.meterGroup = ugr.Cells["meterGroup"].Text.Trim(); //班次
  228. preTack.baseSpotNo = ugr.Cells["baseSpotNo"].Text.Trim(); //计量点的编号
  229. preTack.baseSpotName = ugr.Cells["baseSpotName"].Text.Trim(); //计量点名称
  230. preTack.memo = ugr.Cells["memo"].Text.Trim(); //计量点名称
  231. if ("2".Equals(ugr.Cells["valueFlag"].Value + ""))
  232. {
  233. updateBoxUnEnable();
  234. }
  235. else
  236. {
  237. updateBoxEnable();
  238. }
  239. autoAutoFill(preTack); //点击行进行自动填充界面字段
  240. }
  241. }
  242. catch (Exception ex)
  243. {
  244. MessageBox.Show("ultraGridScale_ClickCell方法处理异常:" + ex);
  245. }
  246. }
  247. /// <summary>
  248. /// 全选点击事件
  249. /// </summary>
  250. /// <param name="sender"></param>
  251. /// <param name="e"></param>
  252. private void cbAll_CheckedChanged(object sender, EventArgs e)
  253. {
  254. foreach (UltraGridRow ugr in ultraGridScale.Rows)
  255. {
  256. if (!ugr.HiddenResolved)
  257. {
  258. ugr.Cells["UNCK"].Value = cbAll.Checked;
  259. }
  260. }
  261. }
  262. /// <summary>
  263. /// 钢种TextChange事件
  264. /// </summary>
  265. /// <param name="sender"></param>
  266. /// <param name="e"></param>
  267. private void cmbGradeNameUp_TextChanged(object sender, EventArgs e)
  268. {
  269. queryTheoryWgt();
  270. }
  271. /// <summary>
  272. /// 规格TextChange事件
  273. /// </summary>
  274. /// <param name="sender"></param>
  275. /// <param name="e"></param>
  276. private void cmbSpcNameUp_TextChanged(object sender, EventArgs e)
  277. {
  278. queryTheoryWgt();
  279. }
  280. private void cmbSpcNameUp_ValueChanged(object sender, EventArgs e)
  281. {
  282. queryTheoryWgt();
  283. }
  284. private void cmbGradeNameUp_KeyDown(object sender, KeyEventArgs e)
  285. {
  286. if (e.KeyValue == 13)
  287. {
  288. queryTheoryWgt();
  289. }
  290. }
  291. #endregion 点击事件
  292. #region 预报支数报警事件
  293. /// <summary>
  294. /// 定时器,用于做预报报警
  295. /// </summary>
  296. /// <param name="sender"></param>
  297. /// <param name="e"></param>
  298. private void timer1_Tick(object sender, EventArgs e)
  299. {
  300. CommonPage<PreStorageScale> cp = new CommonPage<PreStorageScale>();
  301. cp.param = new PreStorageScale(); //{ valueFlag = "1", baseSpotNo = cmbPoint.Value?.ToString() };
  302. cp.param.valueFlag = "9";//VALUE_FLAG in ('1','2')
  303. cp.param.baseSpotNo = cmbPoint.Value + "";
  304. RESTfulResult<List<PreStorageScale>> rms = scaleService.doQueryWf(cp.param);
  305. if (rms.Succeed)
  306. {
  307. if (rms.Data != null && rms.Data.Count == 1)
  308. {
  309. RESTfulResult<List<MeterWorkStorageActual>> rmsActual = actualService.doQuery(new MeterWorkStorageActual
  310. {
  311. predictionNo = rms.Data[0].predictionNo,
  312. valueFlag = "1"
  313. });
  314. if (rmsActual.Succeed && rmsActual.Data != null && rmsActual.Data.Count > 0)
  315. {
  316. if (!string.IsNullOrEmpty(rmsActual.Data[0].packageNo) && !string.IsNullOrEmpty(rmsActual.Data[0].blockNum))
  317. {
  318. if (Convert.ToInt32(rmsActual.Data[0].blockNum)- Convert.ToInt32(rmsActual.Data[0].packageNo) ==10)
  319. {
  320. OpenMsg("预报仅剩余 10 支,请及时做预报!");
  321. }
  322. if (Convert.ToInt32(rmsActual.Data[0].blockNum) - Convert.ToInt32(rmsActual.Data[0].packageNo) == 5)
  323. {
  324. OpenMsg("预报仅剩余 5 支,请及时做预报!");
  325. }
  326. }
  327. }
  328. }
  329. else
  330. {
  331. //直接报警
  332. }
  333. }
  334. }
  335. /// <summary>
  336. /// 预报支数报警信息,从用户控件中回调主界面方法
  337. /// </summary>
  338. /// <param name="strWarnInfo"></param>
  339. private void OpenMsg(string strWarnInfo)
  340. {
  341. try
  342. {
  343. if (!bMsgOpen)
  344. {
  345. if (PbCacheMonitor.frmMsgClosingTime == null)
  346. {
  347. bMsgOpen = true;
  348. fm = frmHotDeliveryBeltWarn.CreateInstrance(this);
  349. fm.TopMost = true;
  350. fm.setLbTxt(strWarnInfo);
  351. fm.Show();
  352. }
  353. else
  354. {
  355. TimeSpan secondSpan = new TimeSpan(DateTime.Now.Ticks - PbCacheMonitor.frmMsgClosingTime.Value.Ticks);
  356. if (secondSpan.TotalSeconds > 5)
  357. {
  358. bMsgOpen = true;
  359. fm = frmHotDeliveryBeltWarn.CreateInstrance(this);
  360. fm.TopMost = true;
  361. fm.setLbTxt(strWarnInfo);
  362. fm.Show();
  363. }
  364. }
  365. }
  366. /*
  367. if (!string.IsNullOrEmpty(openPointNo) && fm != null)
  368. {
  369. fm.CloseFrm();
  370. }
  371. */
  372. }
  373. catch { }
  374. }
  375. #endregion 预报支数报警事件
  376. /// <summary>
  377. /// 查询理论重量,并给界面赋值
  378. /// </summary>
  379. private void queryTheoryWgt()
  380. {
  381. if (!string.IsNullOrEmpty(cmbGradeNameUp.Text) && !string.IsNullOrEmpty(cmbSpcNameUp.Text))
  382. {
  383. MeterWorkStorageSingleWgt singleWgt = new MeterWorkStorageSingleWgt();
  384. singleWgt.gradeNo = cmbGradeNameUp.Value + "";
  385. singleWgt.specNo = cmbSpcNameUp.Value + "";
  386. singleWgt.valueFlag = "1";//状态(1=有效,0=无效)
  387. singleWgt.weightType = "1"; //重量类型(0 = 单只实际重量,1 = 预报理论重量,2 = 标准件重量)
  388. RESTfulResult<List<MeterWorkStorageSingleWgt>> rms = singleWgtService.doQuery(singleWgt);
  389. if (rms.Succeed && rms.Data != null && rms.Data.Count > 0)
  390. {
  391. tbTheoreticalWeightUp.Text = rms.Data[0].singleWeight + "";
  392. tbWeightDiff.Text = rms.Data[0].weightDiff + "";
  393. }
  394. else
  395. {
  396. tbTheoreticalWeightUp.Text = "";
  397. tbWeightDiff.Text = "";
  398. //MessageBox.Show("未查询到钢种【" + cmbGradeNameUp.Text + "】、规格【" + cmbSpcNameUp.Text + "】对应的理论重量,请先在【热送磅理论重量维护】界面维护理论重量!");
  399. }
  400. }
  401. }
  402. /// <summary>
  403. /// 除顺序号,界面不可编辑
  404. /// </summary>
  405. private void updateBoxUnEnable()
  406. {
  407. cmbPointUp.Enabled = false;
  408. tbHeatNoUp.Enabled = false;
  409. cmbSpcNameUp.Enabled = false;
  410. cmbGradeNameUp.Enabled = false;
  411. tbTheoreticalWeightUp.Enabled = false;
  412. cmbMeterClassUp.Enabled = false;
  413. cmbMeterGroupUp.Enabled = false;
  414. tbPackageNoUp.Enabled = true;
  415. tbBlockNumUp.Enabled = true;
  416. tbMemo.Enabled = false;
  417. }
  418. /// <summary>
  419. /// 界面可编辑
  420. /// </summary>
  421. private void updateBoxEnable()
  422. {
  423. cmbPointUp.Enabled = true;
  424. tbHeatNoUp.Enabled = true;
  425. cmbSpcNameUp.Enabled = true;
  426. cmbGradeNameUp.Enabled = true;
  427. tbTheoreticalWeightUp.Enabled = true;
  428. cmbMeterClassUp.Enabled = true;
  429. cmbMeterGroupUp.Enabled = true;
  430. tbPackageNoUp.Enabled = true;
  431. tbBlockNumUp.Enabled = true;
  432. tbMemo.Enabled = true;
  433. }
  434. /// <summary>
  435. /// 自动填充界面的数据
  436. /// </summary>
  437. private void autoAutoFill(PreStorageScale preTack)
  438. {
  439. if (preTack == null || string.IsNullOrEmpty(preTack.predictionNo))
  440. {
  441. return;
  442. }
  443. cmbPointUp.Text = preTack.baseSpotName; //计量点名称1
  444. tbHeatNoUp.Text = preTack.heatNo; //炉号2
  445. cmbSpcNameUp.Text = preTack.specName; //规格名称3
  446. cmbGradeNameUp.Text = preTack.gradeName; //钢号名称4
  447. tbPackageNoUp.Text = preTack.packageNo;//顺序号5
  448. tbBlockNumUp.Text = preTack.blockNum;//总支数6
  449. cmbMeterClassUp.Text = preTack.meterClass;//班次7
  450. tbTheoreticalWeightUp.Text = preTack.theoreticalWeight + "";//理论重量8
  451. tbMemo.Text = preTack.memo;//备注
  452. cmbMeterGroupUp.Text = preTack.meterGroup;//班次7
  453. }
  454. /// <summary>
  455. /// 界面的值给storageActual赋值;用于新增、修改
  456. /// </summary>
  457. /// <param name="storageActual"></param>
  458. private PreStorageScale setTableValue(PreStorageScale tbScale)
  459. {
  460. tbScale.baseSpotName = cmbPointUp.Text;
  461. tbScale.baseSpotNo = cmbPointUp.Value + "";
  462. tbScale.heatNo = tbHeatNoUp.Text;
  463. tbScale.specName = cmbSpcNameUp.Text;
  464. tbScale.specNo = cmbSpcNameUp.Value + "";
  465. tbScale.gradeName = cmbGradeNameUp.Text;
  466. tbScale.gradeNo = cmbGradeNameUp.Value + "";
  467. tbScale.theoreticalWeight = Convert.ToDouble(string.IsNullOrEmpty(tbTheoreticalWeightUp.Text) ? "0" : tbTheoreticalWeightUp.Text); //理论重量
  468. tbScale.weightDiff = Convert.ToDouble(string.IsNullOrEmpty(tbWeightDiff.Text) ? "0" : tbWeightDiff.Text); //理论重量偏差值
  469. tbScale.meterClass = cmbMeterClassUp.Text;
  470. tbScale.meterGroup = cmbMeterGroupUp.Text;
  471. tbScale.packageNo = tbPackageNoUp.Text;
  472. tbScale.blockNum = tbBlockNumUp.Text;
  473. tbScale.memo = tbMemo.Text;//备注
  474. return tbScale;
  475. }
  476. /// <summary>
  477. /// 新增数据
  478. /// </summary>
  479. /// <param name="vFlag"></param>
  480. private void btnInsert()
  481. {
  482. queryTheoryWgt();//新增前重复校验,避免停留过久影响
  483. List<PreStorageScale> scaleList = new List<PreStorageScale>();
  484. PreStorageScale preStorageScale = new PreStorageScale();
  485. preStorageScale.createManName = userName;
  486. preStorageScale.createManNo = userId;
  487. preStorageScale = setTableValue(preStorageScale);
  488. if (string.IsNullOrEmpty(tbTheoreticalWeightUp.Text) || string.IsNullOrEmpty(tbWeightDiff.Text))
  489. {
  490. MessageBox.Show("未查询到钢种【" + cmbGradeNameUp.Text + "】、规格【" + cmbSpcNameUp.Text + "】对应的理论重量,不允许进行新增,请先到【热送磅理论重量维护】界面维护!");
  491. return;
  492. }
  493. scaleList.Add(preStorageScale);
  494. RESTfulResult<string> rms = scaleService.doAddWf(scaleList);
  495. if (rms.Succeed)
  496. {
  497. MessageBox.Show("新增成功!");
  498. btnQuery();
  499. }
  500. else
  501. {
  502. MessageBox.Show("操作失败:" + rms.Data);
  503. l.WriteLog(19, "操作失败:" + rms.Data + rms.Message);
  504. }
  505. }
  506. /// <summary>
  507. /// 修改数据(作废还原)
  508. /// </summary>
  509. /// <param name="vFlag"></param>
  510. private void btnUpdate(string vFlag)
  511. {
  512. try
  513. {
  514. queryTheoryWgt();//修改前重复校验,避免停留过久影响
  515. int iCount = 0, updateValueNotUse = 0, updateValueUsed = 0;
  516. List<PreStorageScale> lt = new List<PreStorageScale>();
  517. ultraGridScale.UpdateData();
  518. foreach (UltraGridRow ugr in ultraGridScale.Rows)
  519. {
  520. if (ugr.Cells["UNCK"].Value.ToString().Trim().ToUpper() == "TRUE")
  521. {
  522. if ("1".Equals(ugr.Cells["valueFlag"].Value + ""))
  523. {
  524. updateValueNotUse = 1;
  525. }
  526. if ("2".Equals(ugr.Cells["valueFlag"].Value + ""))
  527. {
  528. updateValueUsed = 2;
  529. }
  530. if (updateValueNotUse == 1 && updateValueUsed == 2)
  531. {
  532. MessageBox.Show("[使用中]的预报与[未使用]的预报不允许同时修改,重新勾选数据!");
  533. return;
  534. }
  535. if (string.IsNullOrEmpty(vFlag) && "0".Equals(ugr.Cells["valueFlag"].Value + ""))
  536. {
  537. MessageBox.Show("已作废的数据,请先还原再进行修改!");
  538. return;
  539. }
  540. if ("3".Equals(ugr.Cells["valueFlag"].Value + ""))
  541. {
  542. MessageBox.Show("已使用完成的预报不允许进行修改,请重新做预报!");
  543. return;
  544. }
  545. if (string.IsNullOrEmpty(tbTheoreticalWeightUp.Text) || string.IsNullOrEmpty(tbWeightDiff.Text))
  546. {
  547. MessageBox.Show("未查询到钢种【" + cmbGradeNameUp.Text + "】、规格【" + cmbSpcNameUp.Text + "】对应的理论重量,不允许进行新增,请先到【热送磅理论重量维护】界面维护!");
  548. return;
  549. }
  550. PreStorageScale preStorageUpdate = new PreStorageScale();
  551. preStorageUpdate.predictionNo = ugr.Cells["predictionNo"].Text.Trim();
  552. preStorageUpdate.updateManNo = userId;
  553. preStorageUpdate.updateManName = userName;
  554. if (!string.IsNullOrEmpty(vFlag))
  555. {
  556. preStorageUpdate.valueFlag = vFlag;
  557. }
  558. else
  559. {
  560. preStorageUpdate = setTableValue(preStorageUpdate);
  561. }
  562. lt.Add(preStorageUpdate);
  563. iCount++;
  564. }
  565. }
  566. if (lt == null || lt.Count == 0)
  567. {
  568. MessageBox.Show("请至少勾选一条数据后再进行更新操作!");
  569. return;
  570. }
  571. DialogResult dr = MessageBox.Show("共更新[" + iCount + "]条数据,是否继续更新!", "提示", MessageBoxButtons.OKCancel);
  572. if (dr == DialogResult.Cancel)
  573. {
  574. return;
  575. }
  576. RESTfulResult<String> rms = scaleService.doUpdateWf(lt);
  577. if (rms.Succeed)
  578. {
  579. MessageBox.Show("修改成功!");
  580. btnQuery();
  581. }
  582. else
  583. {
  584. MessageBox.Show("操作失败:" + rms.Data);
  585. l.WriteLog(19, "操作失败:" + rms.Data + rms.Message);
  586. }
  587. }
  588. catch (Exception)
  589. {
  590. throw;
  591. }
  592. }
  593. /// <summary>
  594. /// 查询数据
  595. /// </summary>
  596. private void btnQuery()
  597. {
  598. DataTable dtScale = dataTable1.Clone();
  599. if (DateTime.Compare(dtStartTime.Value, dtEndTime.Value) > 0)
  600. {
  601. MessageBox.Show("开始时间不能大于结束时间");
  602. return;
  603. }
  604. if ((dtEndTime.Value - dtStartTime.Value).Days > 30)
  605. {
  606. MessageBox.Show("时间跨度不能大于30天");
  607. return;
  608. }
  609. if (string.IsNullOrEmpty(cmbPoint.Value?.ToString()))
  610. {
  611. MessageBox.Show("请选择计量点");
  612. return;
  613. }
  614. CommonPage<PreStorageScale> cp = new CommonPage<PreStorageScale>();
  615. cp.param = new PreStorageScale(); //{ valueFlag = "1", baseSpotNo = cmbPoint.Value?.ToString() };
  616. cp.param.valueFlag = cmbScaleState.Value + "";
  617. cp.param.baseSpotNo = cmbPoint.Value + "";
  618. cp.param.startTime = dtStartTime.Value.ToString("yyyy-MM-dd HH:mm:ss");
  619. cp.param.endTime = dtEndTime.Value.ToString("yyyy-MM-dd HH:mm:ss");
  620. cp.param.meterClass = cmbMeterClass.Text + "";
  621. cp.param.meterGroup = cmbMeterGroup.Text + "";
  622. RESTfulResult<List<PreStorageScale>> rms = scaleService.doQueryWf(cp.param);
  623. if (rms.Succeed)
  624. {
  625. if (rms.Data != null && rms.Data.Count > 0)
  626. {
  627. dtScale = rms.Data.ListToDataTable<PreStorageScale>();
  628. ClsControlPack.CopyDataToDatatable(ref dtScale, ref dataTable1, true);
  629. ClsControlPack.RefreshAndAutoSize(ultraGridScale);
  630. foreach (UltraGridRow ugr in ultraGridScale.Rows)
  631. {
  632. if (ugr.Cells["valueFlag"].Value.ToString() == "0")
  633. {
  634. ugr.Appearance.BackColor = Color.Red;
  635. }
  636. else
  637. {
  638. ugr.Appearance.BackColor = Color.White;
  639. }
  640. }
  641. }
  642. else
  643. {
  644. dtScale.Clear();
  645. ClsControlPack.CopyDataToDatatable(ref dtScale, ref dataTable1, true);
  646. ClsControlPack.RefreshAndAutoSize(ultraGridScale);
  647. }
  648. }
  649. }
  650. /// <summary>
  651. /// 是否开启过滤
  652. /// </summary>
  653. /// <param name="sender"></param>
  654. /// <param name="e"></param>
  655. private void ckFilter_CheckedChanged(object sender, EventArgs e)
  656. {
  657. if (ckFilter.Checked)
  658. {
  659. this.ultraGridScale.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.True;
  660. }
  661. else
  662. {
  663. this.ultraGridScale.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.False;
  664. }
  665. }
  666. }
  667. }