frmHotDeliveryTheoryWgt.cs 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402
  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 System;
  7. using System.Collections.Generic;
  8. using System.Data;
  9. using System.Drawing;
  10. using System.Windows.Forms;
  11. namespace StorageMeterSystem
  12. {
  13. public partial class frmHotDeliveryTheoryWgt : Form
  14. {
  15. private MeterWorkStorageSingleWgtService singleWgtService = new MeterWorkStorageSingleWgtService(); //理论重量表
  16. private ComBaseInfoService comBaseInfoService = new ComBaseInfoService(); //基础数服务
  17. private MeterBaseScalePointService scalePointService = new MeterBaseScalePointService(); //计量点信息服务
  18. private MeterWorkStorageSingleWgt singleWgt = new MeterWorkStorageSingleWgt(); //预报实体类
  19. private Log l = Log.GetInstance(); //日志
  20. private string userId = "", userName = ""; //用户ID用户名
  21. private CoreAppUser appUser = null;//登陆信息
  22. public frmHotDeliveryTheoryWgt()
  23. {
  24. InitializeComponent();
  25. }
  26. private void frmHotDeliveryTheoryWgt_Load(object sender, EventArgs e)
  27. {
  28. userId = ((ST_MainForm)(this.MdiParent)).UserID;
  29. userName = ((ST_MainForm)(this.MdiParent)).UserName;
  30. appUser = ((ST_MainForm)(this.MdiParent)).AppUser;
  31. dtStartTime.Value = Convert.ToDateTime((DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00"));
  32. dtEndTime.Value = Convert.ToDateTime((DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59"));
  33. #region 载入基础信息
  34. /*
  35. string sql = @"SELECT base_code baseCode,base_name baseName,memo FROM Com_Base_Info where p_base_code='001025' and valid_Flag='1'";
  36. PbModelDbService<List<ComBaseInfo>> pb = new PbModelDbService<List<ComBaseInfo>>();
  37. RESTfulResult<List<ComBaseInfo>> rmType = pb.executeSqlDataWf(sql);
  38. if (rmType.Succeed && rmType.Data != null && rmType.Data.Count > 0)
  39. {
  40. ClsControlPack.SetUltraComboDataSource(cmbScaleState, rmType.Data.ListToDataTable<ComBaseInfo>(), "baseCode", "baseName");
  41. }
  42. else
  43. {
  44. MessageBox.Show("产品信息载入失败");
  45. return;
  46. }
  47. */
  48. //热送磅规格信息载入cmbSpcNameUp
  49. RESTfulResult<List<ComBaseInfo>> rrComSpcName = comBaseInfoService.doQueryBaseList(new ComBaseInfo { validFlag = "1", pBaseCode = "001018" });
  50. if (rrComSpcName.Succeed && rrComSpcName.Data != null && rrComSpcName.Data.Count > 0)
  51. {
  52. rrComSpcName.Data.Sort((a, b) => a.baseName.CompareTo(b.baseName));
  53. ClsControlPack.SetUltraComboDataSource(cmbSpcNameUp, rrComSpcName.Data.ListToDataTable<ComBaseInfo>(), "baseCode", "baseName");
  54. ClsControlPack.SetUltraComboDataSource(cmbSpcName, rrComSpcName.Data.ListToDataTable<ComBaseInfo>(), "baseCode", "baseName");
  55. }
  56. else
  57. {
  58. MessageBox.Show("热送磅规格信息载入失败!");
  59. return;
  60. }
  61. //热送磅钢种信息载入cmbGradeNameUp
  62. RESTfulResult<List<ComBaseInfo>> rrComGradeName = comBaseInfoService.doQueryBaseList(new ComBaseInfo { validFlag = "1", pBaseCode = "001017" });
  63. if (rrComGradeName.Succeed && rrComGradeName.Data != null && rrComGradeName.Data.Count > 0)
  64. {
  65. rrComGradeName.Data.Sort((a, b) => a.baseName.CompareTo(b.baseName));
  66. ClsControlPack.SetUltraComboDataSource(cmbGradeNameUp, rrComGradeName.Data.ListToDataTable<ComBaseInfo>(), "baseCode", "baseName");
  67. ClsControlPack.SetUltraComboDataSource(cmbGradeName, rrComGradeName.Data.ListToDataTable<ComBaseInfo>(), "baseCode", "baseName");
  68. }
  69. else
  70. {
  71. MessageBox.Show("热送磅钢种信息载入失败!");
  72. return;
  73. }
  74. ValueList vlistFlag1 = new ValueList();
  75. vlistFlag1.ValueListItems.Add("", "全部");
  76. vlistFlag1.ValueListItems.Add("0", "无效");
  77. vlistFlag1.ValueListItems.Add("1", "有效");
  78. cmbValueFlag.ValueList = vlistFlag1;
  79. cmbValueFlag.SelectedIndex = 0;
  80. ValueList vlistFlag3 = new ValueList();
  81. vlistFlag3.ValueListItems.Add("", "全部");
  82. vlistFlag3.ValueListItems.Add("0", "无效");
  83. vlistFlag3.ValueListItems.Add("1", "有效");
  84. this.ultraGridSingleWgt.DisplayLayout.Bands[0].Columns["valueFlag"].ValueList = vlistFlag3;
  85. //ClsControlPack.SetUltraGridRowFilter(ref ultraGridSingleWgt, true);
  86. #endregion 载入基础信息
  87. btnQuery();
  88. }
  89. #region 点击事件
  90. /// <summary>
  91. /// 点击事件
  92. /// </summary>
  93. /// <param name="sender"></param>
  94. /// <param name="e"></param>
  95. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  96. {
  97. switch (e.Tool.Key)
  98. {
  99. case "btnQuery": //btnInsert
  100. {
  101. btnQuery();
  102. break;
  103. }
  104. case "btnInsert": //新增
  105. {
  106. btnInsert();
  107. break;
  108. }
  109. case "btnCancel": //作废
  110. {
  111. btnUpdate("0");
  112. }
  113. break;
  114. case "btnUnCancel": //还原
  115. {
  116. btnUpdate("1");
  117. }
  118. break;
  119. case "btnUpdate": //还原
  120. {
  121. btnUpdate("");
  122. }
  123. break;
  124. default: break;
  125. }
  126. }
  127. /// <summary>
  128. /// 行点击事件,给下面的区域赋值
  129. /// </summary>
  130. /// <param name="sender"></param>
  131. /// <param name="e"></param>
  132. private void ultraGridSingleWgt_ClickCell(object sender, ClickCellEventArgs e)
  133. {
  134. try
  135. {
  136. if (ultraGridSingleWgt.ActiveRow == null)
  137. {
  138. return;
  139. }
  140. UltraGridRow ugr = ultraGridSingleWgt.ActiveRow;
  141. if (ugr.Cells["UNCK"].Value.ToString().ToUpper().Equals("TRUE"))
  142. {
  143. ugr.Cells["UNCK"].Value = false;
  144. }
  145. else
  146. {
  147. ugr.Cells["UNCK"].Value = true;
  148. }
  149. //界面赋值
  150. if (ugr != null)
  151. {
  152. singleWgt.singleWgtNo = ugr.Cells["singleWgtNo"].Text.Trim(); //重量编号
  153. singleWgt.specName = ugr.Cells["specName"].Text.Trim(); //规格
  154. singleWgt.specNo = ugr.Cells["specNo"].Text.Trim(); //规格编号
  155. singleWgt.gradeName = ugr.Cells["gradeName"].Text.Trim(); //钢号
  156. singleWgt.gradeNo = ugr.Cells["gradeNo"].Text.Trim(); //钢号编号
  157. singleWgt.singleWeight = Convert.ToDouble(ugr.Cells["singleWeight"].Text.Trim()); //理论重量
  158. singleWgt.weightDiff = Convert.ToDouble(ugr.Cells["weightDiff"].Text.Trim()); //理论重量偏差值
  159. autoAutoFill(singleWgt); //点击行进行自动填充界面字段
  160. }
  161. }
  162. catch (Exception ex)
  163. {
  164. MessageBox.Show("ultraGridSingleWgt_ClickCell方法处理异常:" + ex);
  165. }
  166. }
  167. /// <summary>
  168. /// 除顺序号,界面不可编辑
  169. /// </summary>
  170. private void updateBoxUnEnable()
  171. {
  172. cmbSpcNameUp.Enabled = false;
  173. cmbGradeNameUp.Enabled = false;
  174. numSingleWeightUp.Enabled = false;
  175. }
  176. /// <summary>
  177. /// 界面可编辑
  178. /// </summary>
  179. private void updateBoxEnable()
  180. {
  181. cmbSpcNameUp.Enabled = true;
  182. cmbGradeNameUp.Enabled = true;
  183. numSingleWeightUp.Enabled = true;
  184. }
  185. /// <summary>
  186. /// 全选点击事件
  187. /// </summary>
  188. /// <param name="sender"></param>
  189. /// <param name="e"></param>
  190. private void cbAll_CheckedChanged(object sender, EventArgs e)
  191. {
  192. foreach (UltraGridRow ugr in ultraGridSingleWgt.Rows)
  193. {
  194. if (!ugr.HiddenResolved)
  195. {
  196. ugr.Cells["UNCK"].Value = cbAll.Checked;
  197. }
  198. }
  199. }
  200. #endregion 点击事件
  201. /// <summary>
  202. /// 自动填充界面的数据
  203. /// </summary>
  204. private void autoAutoFill(MeterWorkStorageSingleWgt singleWgt)
  205. {
  206. if (singleWgt == null || string.IsNullOrEmpty(singleWgt.singleWgtNo))
  207. {
  208. return;
  209. }
  210. cmbSpcNameUp.Text = singleWgt.specName; //规格名称3
  211. cmbGradeNameUp.Text = singleWgt.gradeName; //钢号名称4
  212. numSingleWeightUp.Value = (decimal)singleWgt.singleWeight;//理论重量8
  213. numWeightDiff.Value = (decimal)singleWgt.weightDiff;//理论重量偏差值
  214. }
  215. /// <summary>
  216. /// 新增数据
  217. /// </summary>
  218. /// <param name="vFlag"></param>
  219. private void btnInsert()
  220. {
  221. List<MeterWorkStorageSingleWgt> scaleList = new List<MeterWorkStorageSingleWgt>();
  222. MeterWorkStorageSingleWgt preStorageScale = new MeterWorkStorageSingleWgt();
  223. if (string.IsNullOrEmpty(numSingleWeightUp.Text))
  224. {
  225. MessageBox.Show("理论重量的值不允许为空!");
  226. return;
  227. }
  228. preStorageScale.createManName = userName;
  229. preStorageScale.createManNo = userId;
  230. preStorageScale.specName = cmbSpcNameUp.Text;
  231. preStorageScale.specNo = cmbSpcNameUp.Value + "";
  232. preStorageScale.gradeName = cmbGradeNameUp.Text;
  233. preStorageScale.gradeNo = cmbGradeNameUp.Value + "";
  234. preStorageScale.singleWeight = Convert.ToDouble(numSingleWeightUp.Value);
  235. preStorageScale.weightDiff = Convert.ToDouble(numWeightDiff.Value);
  236. preStorageScale.weightType = "1";//重量类型(0=单只实际重量,1=预报理论重量,2=标准件重量)
  237. scaleList.Add(preStorageScale);
  238. RESTfulResult<string> rms = singleWgtService.doAddWf(scaleList);
  239. if (rms.Succeed)
  240. {
  241. MessageBox.Show("新增成功!");
  242. btnQuery();
  243. }
  244. else
  245. {
  246. MessageBox.Show("操作失败:" + rms.Data);
  247. l.WriteLog(19, "操作失败:" + rms.Data + rms.Message);
  248. }
  249. }
  250. /// <summary>
  251. /// 修改数据(作废还原)
  252. /// </summary>
  253. /// <param name="vFlag"></param>
  254. private void btnUpdate(string vFlag)
  255. {
  256. try
  257. {
  258. int iCount = 0;
  259. List<MeterWorkStorageSingleWgt> lt = new List<MeterWorkStorageSingleWgt>();
  260. ultraGridSingleWgt.UpdateData();
  261. foreach (UltraGridRow ugr in ultraGridSingleWgt.Rows)
  262. {
  263. if (ugr.Cells["UNCK"].Value.ToString().Trim().ToUpper() == "TRUE")
  264. {
  265. if (string.IsNullOrEmpty(vFlag) && "0".Equals(ugr.Cells["valueFlag"].Value + ""))
  266. {
  267. MessageBox.Show("已作废的数据,请先还原再进行修改!");
  268. return;
  269. }
  270. if (string.IsNullOrEmpty(numSingleWeightUp.Text))
  271. {
  272. MessageBox.Show("理论重量的值不允许为空!");
  273. return;
  274. }
  275. MeterWorkStorageSingleWgt preStorageUpdate = new MeterWorkStorageSingleWgt();
  276. preStorageUpdate.singleWgtNo = ugr.Cells["singleWgtNo"].Text.Trim();
  277. preStorageUpdate.updateManNo = userId;
  278. preStorageUpdate.updateManName = userName;
  279. if (!string.IsNullOrEmpty(vFlag))
  280. {
  281. preStorageUpdate.valueFlag = vFlag;
  282. }
  283. else
  284. {
  285. preStorageUpdate.specName = cmbSpcNameUp.Text;
  286. preStorageUpdate.specNo = cmbSpcNameUp.Value + "";
  287. preStorageUpdate.gradeName = cmbGradeNameUp.Text;
  288. preStorageUpdate.gradeNo = cmbGradeNameUp.Value + "";
  289. preStorageUpdate.singleWeight = Convert.ToDouble(numSingleWeightUp.Value);
  290. preStorageUpdate.weightDiff = Convert.ToDouble(numWeightDiff.Value);
  291. }
  292. lt.Add(preStorageUpdate);
  293. iCount++;
  294. }
  295. }
  296. if (lt == null || lt.Count == 0)
  297. {
  298. MessageBox.Show("请至少勾选一条数据后再进行更新操作!");
  299. return;
  300. }
  301. DialogResult dr = MessageBox.Show("共更新[" + iCount + "]条数据,是否继续更新!", "提示", MessageBoxButtons.OKCancel);
  302. if (dr == DialogResult.Cancel)
  303. {
  304. return;
  305. }
  306. RESTfulResult<String> rms = singleWgtService.doUpdateWf(lt);
  307. if (rms.Succeed)
  308. {
  309. MessageBox.Show("修改成功!");
  310. btnQuery();
  311. }
  312. else
  313. {
  314. MessageBox.Show("操作失败:" + rms.Data);
  315. l.WriteLog(19, "操作失败:" + rms.Data + rms.Message);
  316. }
  317. }
  318. catch (Exception)
  319. {
  320. throw;
  321. }
  322. }
  323. /// <summary>
  324. /// 查询数据
  325. /// </summary>
  326. private void btnQuery()
  327. {
  328. DataTable dtScale = dataTable1.Clone();
  329. CommonPage<MeterWorkStorageSingleWgt> cp = new CommonPage<MeterWorkStorageSingleWgt>();
  330. cp.param = new MeterWorkStorageSingleWgt(); //{ valueFlag = "1", baseSpotNo = cmbPoint.Value?.ToString() };
  331. cp.param.valueFlag = cmbValueFlag.Value + "";
  332. cp.param.specNo = cmbSpcName.Value + "";//规格名称
  333. cp.param.gradeNo = cmbGradeName.Value + ""; //牌号名称(钢号名称)
  334. cp.param.weightType = "1";//重量类型(0=单只实际重量,1=理论重量)
  335. cp.param.createTime1 = dtStartTime.Value.ToString("yyyy-MM-dd HH:mm:ss");
  336. cp.param.createTime2 = dtEndTime.Value.ToString("yyyy-MM-dd HH:mm:ss");
  337. RESTfulResult<List<MeterWorkStorageSingleWgt>> rms = singleWgtService.doQuery(cp.param);
  338. if (rms.Succeed)
  339. {
  340. if (rms.Data != null && rms.Data.Count > 0)
  341. {
  342. dtScale = rms.Data.ListToDataTable<MeterWorkStorageSingleWgt>();
  343. ClsControlPack.CopyDataToDatatable(ref dtScale, ref dataTable1, true);
  344. ClsControlPack.RefreshAndAutoSize(ultraGridSingleWgt);
  345. foreach (UltraGridRow ugr in ultraGridSingleWgt.Rows)
  346. {
  347. if (ugr.Cells["valueFlag"].Value.ToString() == "0")
  348. {
  349. ugr.Appearance.BackColor = Color.Red;
  350. }
  351. else
  352. {
  353. ugr.Appearance.BackColor = Color.White;
  354. }
  355. }
  356. }
  357. else
  358. {
  359. dtScale.Clear();
  360. ClsControlPack.CopyDataToDatatable(ref dtScale, ref dataTable1, true);
  361. ClsControlPack.RefreshAndAutoSize(ultraGridSingleWgt);
  362. }
  363. }
  364. }
  365. }
  366. }