frmHotDeliveryScaleCar41.cs 30 KB

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