FrmStuffInventoryIn.cs 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using CoreFS.CA06;
  10. using Core.Mes.Client.Comm.Tool;
  11. using Core.StlMes.Client.YdmStuffManage.Entity;
  12. using Core.Mes.Client.Comm.Control;
  13. using System.Collections;
  14. using Core.Mes.Client.Comm.Server;
  15. using Core.Mes.Client.Comm.Format;
  16. namespace Core.StlMes.Client.YdmStuffManage
  17. {
  18. public partial class FrmStuffInventoryIn : FrmBase
  19. {
  20. public FrmStuffInventoryIn()
  21. {
  22. InitializeComponent();
  23. }
  24. private string strBand = "800702";//盘盈
  25. private string strBound = "800601";//调差类型(盘盈)
  26. private string[] arr = null;
  27. private void FrmStuffInventoryIn_Load(object sender, EventArgs e)
  28. {
  29. DateTime now = DateTime.Now;
  30. DateTime dt1 = new DateTime(now.Year, now.Month, 1);//当月第一天
  31. DateTime dt2 = dt1.AddMonths(1).AddDays(-1);//当月最后一天
  32. this.RegStartTime.Value = DateTime.Parse(dt1.ToString("yyyy-MM-dd") + " 00:00:00");
  33. this.RegEndTime.Value = DateTime.Parse(dt2.ToString("yyyy-MM-dd") + " 23:59:59");
  34. BaseMethod.InitCellPosition(ultraGrid2, new string[] { "ActWeight", "ActCount","Dimater", "ActLen", "FixNum", "FixLen" });
  35. EntityHelper.ShowGridCaption<YdmGpStocktakinglistEntity>(ultraGrid2.DisplayLayout.Bands[0]);
  36. ultraGrid2.DisplayLayout.Bands[0].Columns["StocktakingRsnName"].Header.Caption = "盘盈原因";
  37. //arr = this.ValidDataPurviewIds;
  38. arr = BaseMethod.WarehousePermissionsStore(this.ValidDataPurviewIds, this.ob);
  39. initBase();
  40. }
  41. private void initBase()
  42. {
  43. BaseMethod.InitProducFlagCom(cmbProductFlag,ob);
  44. //BaseMethod.InitMaterialCom(cmbMaterailS,ob);
  45. BaseMethod.InitGpStorage(cmbStorage, ob);
  46. BaseMethod.InitGpSource(cmbSourceName, ob);
  47. }
  48. /// <summary>
  49. /// 重写基类方法
  50. /// </summary>
  51. /// <param name="sender"></param>
  52. /// <param name="ToolbarKey"></param>
  53. public override void ToolBar_Click(object sender, string ToolbarKey)
  54. {
  55. switch (ToolbarKey)
  56. {
  57. case "Query":
  58. if (!CheckQuery()) return;
  59. doQueryData();
  60. break;
  61. case "Add":
  62. doAdd();
  63. break;
  64. case "Export":
  65. exportData();
  66. break;
  67. case "Close":
  68. this.Close();
  69. break;
  70. }
  71. }
  72. /// <summary>
  73. /// 查询
  74. /// </summary>
  75. private void doQueryData()
  76. {
  77. string strRegStart = "";
  78. string strRegEnd = "";
  79. string heatNo = "";
  80. ArrayList parm = new ArrayList();
  81. if (chkRegTime.Checked)
  82. {
  83. strRegStart = RegStartTime.Value.ToString();
  84. strRegEnd = RegEndTime.Value.ToString();
  85. }
  86. if (this.checkHeatNo.Checked)
  87. {
  88. heatNo = this.txt_heatNo.Text.Trim();
  89. }
  90. parm.Add(heatNo);
  91. List<YdmGpStocktakinglistEntity> listSource = EntityHelper.GetData<YdmGpStocktakinglistEntity>(
  92. "Core.LgMes.Server.Stuffmanage.FrmStuffInventoryIn.doQueryStock", new object[] { parm, strRegStart, strRegEnd, arr }, this.ob);
  93. YdmGpStocktakinglistEntitybindingSource.DataSource = listSource;
  94. }
  95. /// <summary>
  96. /// 盘盈
  97. /// </summary>
  98. private void doAdd()
  99. {
  100. YdmGpStocktakinglistEntity ydmStockTity = getData();
  101. string errMessage = checkAdd(ydmStockTity);
  102. if (errMessage.Length>0)
  103. {
  104. MessageUtil.ShowTips(errMessage);
  105. return;
  106. }
  107. string ydmGpStockTity = JSONFormat.Format(ydmStockTity);
  108. if (MessageUtil.ShowYesNoAndQuestion("是否新增盘盈信息?") == DialogResult.No)
  109. {
  110. return;
  111. }
  112. CoreClientParam ccp = new CoreClientParam();
  113. ccp.ServerName = "Core.LgMes.Server.Stuffmanage.FrmStuffInventoryIn";
  114. ccp.MethodName = "doAdd";
  115. ccp.ServerParams = new object[] { ydmGpStockTity };
  116. ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  117. if (ccp.ReturnCode != -1)
  118. {
  119. if (ccp.ReturnInfo.Equals("盘盈成功!"))
  120. {
  121. doQueryData();
  122. MessageUtil.ShowTips(ccp.ReturnInfo);
  123. }
  124. else
  125. {
  126. MessageUtil.ShowTips(ccp.ReturnInfo);
  127. }
  128. }
  129. }
  130. private string checkAdd(YdmGpStocktakinglistEntity ydmStockTity)
  131. {
  132. if (ydmStockTity.MaterialName.Equals(""))
  133. {
  134. return "请选择物料信息!";
  135. }
  136. if (ydmStockTity.Gradename.Equals(""))
  137. {
  138. return "请确认钢种是否还有效!";
  139. }
  140. if (ydmStockTity.Dimater.Equals(""))
  141. {
  142. return "请确认直径是否还有效!";
  143. }
  144. if (ydmStockTity.StoveNo.Equals(""))
  145. {
  146. return "请输入熔炼炉号!";
  147. }
  148. if(ydmStockTity.JudgeStoveNo.Equals(""))
  149. {
  150. return "请输入判定炉号!";
  151. }
  152. if (ydmStockTity.FixNum.Equals("") || !StringUtil.IsInt(ydmStockTity.FixNum.ToString3()))
  153. {
  154. return "输入的倍尺数只能为正整数!";
  155. }
  156. if (ydmStockTity.FixLen.Equals("") || !StringUtil.IsInt(ydmStockTity.FixLen.ToString3()))
  157. {
  158. return "输入的单倍长度,并且需为正数字!";
  159. }
  160. if (ydmStockTity.ActLen.Equals("") || !StringUtil.IsInt(ydmStockTity.ActLen.ToString3()))
  161. {
  162. return "输入的管坯长度,并且需为正整数!";
  163. }
  164. if (ydmStockTity.StorageNo.Equals(""))
  165. {
  166. return "请选择仓库!";
  167. }
  168. if (ydmStockTity.LocationNo.Equals(""))
  169. {
  170. return "请维护料架";
  171. }
  172. if (ydmStockTity.LaryNo.Equals(""))
  173. {
  174. return "请选择层号";
  175. }
  176. if (ydmStockTity.PlineName.Equals(""))
  177. {
  178. return "请选择产线!";
  179. }
  180. if(ydmStockTity.BelongName.Equals(""))
  181. {
  182. return "请选择所属单位!";
  183. }
  184. if (ydmStockTity.Gptype.Equals(""))
  185. {
  186. return "请选择管坯类型!";
  187. }
  188. if (ydmStockTity.ProductFlag.Equals(""))
  189. {
  190. return "请选择材料类别!";
  191. }
  192. if (ydmStockTity.MatStatus.Equals(""))
  193. {
  194. return"请选择材料状态";
  195. }
  196. if (ydmStockTity.StocktakingRsnName.Equals(""))
  197. {
  198. return "请选择盘盈原因!";
  199. }
  200. if (ydmStockTity.IsDealer.Equals(""))
  201. {
  202. return "请选择坯料用途!";
  203. }
  204. if (ydmStockTity.BackFlag.Equals(""))
  205. {
  206. return "请选择是否回炉坯标识!";
  207. }
  208. return "";
  209. }
  210. private YdmGpStocktakinglistEntity getData()
  211. {
  212. YdmGpStocktakinglistEntity entity = new YdmGpStocktakinglistEntity();
  213. entity.StocktakingTypeCode = "800601";
  214. entity.StocktakingTypeName = "盘盈";
  215. entity.StocktakingRsnCode = cmbReason.Value == null ? "" : cmbReason.Value.ToString();
  216. entity.StocktakingRsnName = cmbReason.Text.Trim();
  217. entity.StoveNo = this.txtStoveNo.Text.Trim();
  218. entity.JudgeStoveNo = this.txtJudgeNo.Text.Trim();
  219. entity.MaterialNo = this.cmbMaterail.Tag == null ? "" : cmbMaterail.Tag.ToString();
  220. entity.MaterialName = cmbMaterail.Text;
  221. entity.Gradecode = txtGrade.Tag == null ? "" : txtGrade.Tag.ToString();
  222. entity.Gradename = txtGrade.Text.Trim();
  223. entity.Dimater = decimal.Parse(txtDimater.Text.Trim());
  224. entity.FixNum = decimal.Parse(txtFixNum.Text.Trim());
  225. entity.FixLen = decimal.Parse(txtFixLen.Text.Trim());
  226. entity.PlineCode = cmbPline.Value == null ? "" : cmbPline.Value.ToString();
  227. entity.PlineName = cmbPline.Text;
  228. entity.ActCount = decimal.Parse(txtNum.Text.Trim());
  229. entity.ActWeight = decimal.Parse(txtActWgt.Value == null ? "0" : txtActWgt.Value.ToString());
  230. entity.ActLen = decimal.Parse(txtActLen.Value == null ? "0" : txtActLen.Value.ToString());
  231. entity.BelongCode = cmbBelong.Value == null ? "" : cmbBelong.Value.ToString();
  232. entity.BelongName = cmbBelong.Text;
  233. entity.StorageNo = cmbStorage.Value == null ? "" : cmbStorage.Value.ToString();
  234. entity.LocationNo = cmbLocationNo.Value == null ? "" : cmbLocationNo.Value.ToString();
  235. entity.LocationName = cmbLocationNo.Text;
  236. entity.LaryNo = decimal.Parse(cmbLaryNo.Text);
  237. entity.CreateName = UserInfo.GetUserName();
  238. entity.ProductFlag = cmbProductFlag.Value == null?"":cmbProductFlag.Value.ToString();
  239. entity.MatStatus = cmbMagstatus.Value == null ? "" : cmbMagstatus.Value.ToString();
  240. entity.JudgeResultCode = "40740701";
  241. entity.Memo = txtMemo.Text.Trim();
  242. entity.Gptype = cmbType.Value.ToString();
  243. entity.BalYearMonth = DateTime.Now.ToString("yyyyMM");
  244. entity.ManagementNo = this.UserInfo.GetDeptid();
  245. entity.ManagementName = this.UserInfo.GetDepartment();
  246. entity.DepartmentCode = ClsLoad.GetDepartIdBySectionId(this.UserInfo.GetDeptid(),ob);
  247. entity.DepartmentDesc = ClsLoad.GetDepartBySectionId(this.UserInfo.GetDeptid(), ob);
  248. entity.SoureCode = cmbSourceName.Value == null ? "" : cmbSourceName.Value.ToString2();
  249. entity.SoureName = cmbSourceName.Text;
  250. entity.BackFlag = cmbHlFlag.Value == null ? "" : cmbHlFlag.Value.ToString();
  251. entity.IsDealer = cmbDeal.Value == null ? "" : cmbDeal.Value.ToString();
  252. return entity;
  253. }
  254. private void exportData()
  255. {
  256. GridHelper.ulGridToExcel(ultraGrid2, "盘盈实绩汇总");
  257. }
  258. /// <summary>
  259. /// 数据验证
  260. /// </summary>
  261. /// <returns></returns>
  262. private bool CheckQuery()
  263. {
  264. if (DataTimeUtil.JudgeTime(DateTime.Parse(RegStartTime.Value.ToString()), DateTime.Parse(RegEndTime.Value.ToString())) == 0)
  265. {
  266. MessageUtil.ShowTips("开始时间不能大于结束时间!");
  267. return false;
  268. }
  269. if (checkHeatNo.Checked && string.IsNullOrEmpty(this.txt_heatNo.Text.Trim()))
  270. {
  271. MessageBox.Show("请输入判定炉号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  272. return false;
  273. }
  274. return true;
  275. }
  276. private void chkRegTime_CheckedChanged(object sender, EventArgs e)
  277. {
  278. RegStartTime.Enabled = this.chkRegTime.Checked;
  279. RegEndTime.Enabled = this.chkRegTime.Checked;
  280. }
  281. private void checkHeatNo_CheckedChanged(object sender, EventArgs e)
  282. {
  283. this.txt_heatNo.Enabled = this.checkHeatNo.Checked;
  284. }
  285. private void cmbMaterail_ValueChanged(object sender, EventArgs e)
  286. {
  287. string cmbMaterialCode = this.cmbMaterail.Tag.ToString();
  288. //获取G字母位置
  289. int len = cmbMaterialCode.IndexOf("G");
  290. //直径代码
  291. string dimaterCode = cmbMaterialCode.Substring(2, len-2);
  292. //钢种代码
  293. string gradeCode = cmbMaterialCode.Substring(len);
  294. this.txtDimater.Tag = dimaterCode;
  295. this.txtDimater.Text = doQueryDimter(dimaterCode).Substring(0, doQueryDimter(dimaterCode).IndexOf("."));
  296. this.txtGrade.Tag = gradeCode;
  297. this.txtGrade.Text = doQueryGrade(gradeCode);
  298. }
  299. private void cmbProductFlag_ValueChanged(object sender, EventArgs e)
  300. {
  301. string flag = "";
  302. string cmbProduct = this.cmbProductFlag.Value.ToString();
  303. if (cmbProduct == "801401")
  304. {
  305. flag = "801501";
  306. }
  307. else if (cmbProduct == "801402")
  308. {
  309. flag = "801502";
  310. }
  311. else if (cmbProduct == "801403")
  312. {
  313. flag = "801503";
  314. }
  315. BaseMethod.InitMapStatusCom(cmbMagstatus, ob, flag);
  316. }
  317. /// <summary>
  318. /// 获取直径
  319. /// </summary>
  320. /// <param name="code"></param>
  321. /// <returns></returns>
  322. private string doQueryDimter(string code)
  323. {
  324. string dimaterName = "";
  325. DataTable ds = ServerHelper.GetData("Core.LgMes.Server.Stuffmanage.FrmBaseInformation.doQueryDimater", new object[] { code }, ob);
  326. if (ds.Rows.Count > 0)
  327. {
  328. dimaterName = ds.Rows[0][0].ToString();
  329. }
  330. return dimaterName;
  331. }
  332. /// <summary>
  333. /// 获取钢种
  334. /// </summary>
  335. /// <param name="code"></param>
  336. /// <returns></returns>
  337. private string doQueryGrade(string code)
  338. {
  339. string gradeName = "";
  340. DataTable ds = ServerHelper.GetData("Core.LgMes.Server.Stuffmanage.FrmBaseInformation.doQueryGrade", new object[] { code }, ob);
  341. if (ds.Rows.Count > 0)
  342. {
  343. gradeName = ds.Rows[0][0].ToString();
  344. }
  345. return gradeName;
  346. }
  347. private void cmbStorage_ValueChanged(object sender, EventArgs e)
  348. {
  349. initLocation(this.cmbStorage.Value.ToString());
  350. }
  351. /// <summary>
  352. /// 绑定料位
  353. /// </summary>
  354. private void initLocation(string storageNo)
  355. {
  356. BaseMethod.InitComboEditorWithParmArr(cmbLocationNo, "Core.LgMes.Server.Stuffmanage.FrmBaseInformation.doQueryLocation", "LOCATION_NO", this.ob, false, storageNo);
  357. cmbLocationNo.SelectedIndex = 0;
  358. cmbLaryNo.SelectedIndex = 0;
  359. }
  360. private void cmbMaterail_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
  361. {
  362. //this.ultraGrid2.UpdateData();
  363. DataTable dt = ServerHelper.GetData("Core.LgMes.Server.Stuffmanage.FrmBaseInformation.doQueryMaterial",
  364. new object[] { }, ob);
  365. dt.Columns["BASENAME"].Caption = "物料名称";
  366. BaseInfoPopup baseInfo = new BaseInfoPopup(dt, "BASENAME", "BASECODE");
  367. baseInfo.Shown += new EventHandler((a, b) =>
  368. {
  369. var actRow = baseInfo.UltraGrid1.Rows.AsQueryable().Where(
  370. c => c.GetValue("BASECODE") == this.cmbMaterail.Tag.ToString2()).FirstOrDefault();
  371. if (actRow != null) actRow.Activate();
  372. });
  373. if (baseInfo.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  374. {
  375. cmbMaterail.Tag = baseInfo.ChoicedRow.GetValue("BASECODE");
  376. cmbMaterail.Text = baseInfo.ChoicedRow.GetValue("BASENAME");
  377. }
  378. }
  379. private void txtFixNum_ValueChanged(object sender, EventArgs e)
  380. {
  381. txtActLen.Text = (int.Parse(this.txtFixLen.Text.Trim().ToString3()) * int.Parse(this.txtFixNum.Text.Trim().ToString3())).ToString();
  382. }
  383. private void txtFixLen_ValueChanged(object sender, EventArgs e)
  384. {
  385. txtActLen.Text = (int.Parse(this.txtFixLen.Text.Trim().ToString3()) * int.Parse(this.txtFixNum.Text.Trim().ToString3())).ToString();
  386. }
  387. private void txt_heatNo_KeyDown(object sender, KeyEventArgs e)
  388. {
  389. if (e.KeyValue == 13)
  390. {
  391. if (!CheckQuery()) return;
  392. doQueryData();
  393. }
  394. }
  395. }
  396. }