frmHotDeliveryScaleCar44.cs 30 KB

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