ClassManualUpdateInfo.cs 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using CoreFS.CA06;
  6. using System.Windows.Forms;
  7. using Core.Mes.Client.Common;
  8. using System.Collections;
  9. using System.Data;
  10. /***文档注释***********************************************
  11. * 作者 : 刘现
  12. * 创建日期 : 2011.02.18
  13. * 描述 : 完成作业管理手动更新功能
  14. * 注意事项 : 所有作业管理手动更共用
  15. * 遗留BUG : 无
  16. * 修改日期 :
  17. * 修改人员 :
  18. * 修改内容 :
  19. ***********************************************************/
  20. namespace Core.LgMes.Client.LgJobMgt
  21. {
  22. public class ClassManualUpdateInfo
  23. {
  24. /// <summary>
  25. /// 跟据岗位获取数据库表名
  26. /// </summary>
  27. /// <param name="strPosCode">岗位编号</param>
  28. /// <param name="strType">表类型(MATERIEL:物料消耗表,JOB:作业表</param>
  29. /// <returns>表名</returns>
  30. public static string analysPosTableName(string strPosCode, string strType)
  31. {
  32. string strJobTableName = ""; //作业表名
  33. string strAddTableName = ""; //物料消耗
  34. string strReturnTable = ""; //返回表名
  35. switch (strPosCode)
  36. {
  37. case "B":
  38. strJobTableName = "STL_HMP_OPTINFO";
  39. strAddTableName = "STL_HMP_ADDITIVES";
  40. break;
  41. case "C":
  42. strJobTableName = "STL_BOF_OPTINFO";
  43. strAddTableName = "STL_BOF_ADDITIVES";
  44. break;
  45. case "D":
  46. strJobTableName = "STL_CAS_OPTINFO";
  47. strAddTableName = "STL_CAS_ADDITIVES";
  48. break;
  49. case "E":
  50. strJobTableName = "STL_LFS_OPTINFO";
  51. strAddTableName = "STL_LFS_ADDITIVES";
  52. break;
  53. case "F":
  54. strJobTableName = "STL_RHS_OPTINFO";
  55. strAddTableName = "STL_RHS_ADDITIVES";
  56. break;
  57. case "G":
  58. strJobTableName = "STL_CCM_OPTINFO";
  59. strAddTableName = "STL_CCM_ADDITIVES";
  60. break;
  61. case "I":
  62. strJobTableName = "STL_VDS_OPTINFO";
  63. strAddTableName = "STL_VDS_ADDITIVES";
  64. break;
  65. default:
  66. break;
  67. }
  68. //作业表
  69. if (strType == "JOB")
  70. strReturnTable = strJobTableName;
  71. //物料消耗表
  72. if (strType == "MATERIEL")
  73. strReturnTable = strAddTableName;
  74. return strReturnTable;
  75. }
  76. /// <summary>
  77. /// 时间显示框,在需要更改日期的时候弹出日期选择框
  78. /// </summary>
  79. /// <param name="cell"></param>
  80. /// <param name="strTableName"></param>
  81. /// <param name="strColumnName"></param>
  82. public static void SetCellDateTime(Infragistics.Win.UltraWinGrid.UltraGridCell cell, string _heatProcessNo, OpeBase ob)
  83. {
  84. string strTableName = ""; //表名
  85. frmSetTime frm = new frmSetTime(cell.Value);
  86. frm.Location = CStaticMethod.GetChildWindowLocation(frm.Size);
  87. frm.ShowDialog();
  88. if (_heatProcessNo.Length >= 11 && frm._returnTime > new DateTime(2000, 1, 1, 0, 0, 0, 0))
  89. {
  90. strTableName = analysPosTableName(_heatProcessNo.Substring(0, 1), "JOB");
  91. DateTime dt = frm._returnTime;
  92. cell.Value = dt;
  93. try
  94. {
  95. UpdateTableField(_heatProcessNo, strTableName, cell.Column.Key.ToString(), "DATE", dt, ob);
  96. }
  97. catch
  98. {
  99. MessageBox.Show("日期输入格式错误,请改正!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  100. }
  101. }
  102. }
  103. /// <summary>
  104. /// 更新作业表字段信息
  105. /// </summary>
  106. /// <param name="_heatProcessNo">加热处理号</param>
  107. /// <param name="strTableName">表名</param>
  108. /// <param name="strColumnName">更新字段</param>
  109. /// <param name="strDataType">数据类型</param>
  110. /// <param name="Upt_Value">目标值</param>
  111. /// <param name="ob">服务端URL</param>
  112. public static void UpdateTableField(string _heatProcessNo, string strTableName, string strColumnName,
  113. string strDataType, object Upt_Value, OpeBase ob)
  114. {
  115. string strHeatNo = ""; //炉号
  116. string strStationCode = ""; //岗位
  117. string strDisposalTime = ""; //处理次理
  118. string strSqlID = ""; //sqlId
  119. string strErr = ""; //错误信息
  120. if (_heatProcessNo.Length == 0) return;
  121. strHeatNo = (_heatProcessNo.Length > (int)OBJLEN.nHeatNo) ? CStaticMethod.getSmeltingID(_heatProcessNo) : "";
  122. strStationCode = (_heatProcessNo.Length > (int)OBJLEN.nHeatNo) ? _heatProcessNo.Substring(1, (int)OBJLEN.nDevCode) : "";
  123. strDisposalTime = (_heatProcessNo.Length > (int)OBJLEN.nHeatNo) ? _heatProcessNo.Substring(3, (int)OBJLEN.nDealTime) : "";
  124. strSqlID = "UpdateTableField.Update"; //SQLID
  125. Hashtable ht = new Hashtable();
  126. ht.Add("I1", strTableName); //表名
  127. ht.Add("I2", strHeatNo); //炉号
  128. ht.Add("I3", strStationCode); //岗位
  129. ht.Add("I4", strDisposalTime); //处理次数
  130. ht.Add("I5", strColumnName.ToUpper()); //列名
  131. ht.Add("I6", strDataType); //数据类型
  132. ht.Add("I7", Upt_Value.ToString()); //更新值
  133. CommonClientToServer ccTs = new CommonClientToServer();
  134. ccTs.ob = ob;
  135. string strRCode = ccTs.ExecuteProcedureFunctions("Core.LgMes.Server.LgJobMgt.ClassCommonModule",
  136. "UpdateTableField", strSqlID, ht, out strErr);
  137. if (strErr != "")
  138. MessageBox.Show("数据更新失败,重试!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  139. }
  140. /// <summary>
  141. /// 更新脱硫作业表字段信息
  142. /// </summary>
  143. /// <param name="_heatProcessNo">加热处理号</param>
  144. /// <param name="strTableName">表名</param>
  145. /// <param name="strColumnName">更新字段</param>
  146. /// <param name="strDataType">数据类型</param>
  147. /// <param name="Upt_Value">目标值</param>
  148. /// <param name="ob">服务端URL</param>
  149. public static void UpdateHmpTableField(string _heatProcessNo, string strTableName, string strColumnName,
  150. string strDataType, object Upt_Value, OpeBase ob)
  151. {
  152. string strSqlID = ""; //sqlId
  153. string strErr = ""; //错误信息
  154. if (_heatProcessNo.Length == 0) return;
  155. strSqlID = "UpdateHMPTableField.Update"; //SQLID
  156. Hashtable ht = new Hashtable();
  157. ht.Add("I1", strTableName); //表名
  158. ht.Add("I2", _heatProcessNo); //加热处理号
  159. ht.Add("I3", strColumnName.ToUpper()); //列名
  160. ht.Add("I4", strDataType); //数据类型
  161. ht.Add("I5", Upt_Value.ToString()); //更新值
  162. CommonClientToServer ccTs = new CommonClientToServer();
  163. ccTs.ob = ob;
  164. string strRCode = ccTs.ExecuteProcedureFunctions("Core.LgMes.Server.LgJobMgt.ClassCommonModule",
  165. "UpdateTableField", strSqlID, ht, out strErr);
  166. if (strErr != "")
  167. MessageBox.Show("数据更新失败,重试!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  168. }
  169. /// <summary>
  170. /// 添加物料消耗公共方法
  171. /// </summary>
  172. /// <param name="_heatProcessNo">加热处理号</param>
  173. /// <param name="strMaterielCode">物料编码</param>
  174. /// <param name="strMaterielType">物料类型</param>
  175. /// <param name="strDataValue">值</param>
  176. /// <param name="strHoppernumID">料仓编号</param>
  177. /// <param name="strAddMtrType">投料类型1:料仓投料,2:手投料</param>
  178. /// <param name="ob">服务端URL</param>
  179. public static void AddMaterialProc(string _heatProcessNo, string strMaterielCode, string strMaterielType,
  180. string strDataValue, string strHoppernumID,string strAddMtrType,OpeBase ob)
  181. {
  182. string strHeatNo = ""; //炉号
  183. string strStationCode = ""; //岗位
  184. string strDisposalTime = ""; //处理次理
  185. string strSqlID = ""; //sqlId
  186. string strErr = ""; //错误信息
  187. string strTableName = ""; //表名
  188. string strPurposeCode = ""; //用途编码
  189. if (_heatProcessNo.Length == 0) return;
  190. strHeatNo = (_heatProcessNo.Length > (int)OBJLEN.nHeatNo) ? CStaticMethod.getSmeltingID(_heatProcessNo) : "";
  191. strStationCode = (_heatProcessNo.Length > (int)OBJLEN.nHeatNo) ? _heatProcessNo.Substring(1, (int)OBJLEN.nDevCode) : "";
  192. strDisposalTime = (_heatProcessNo.Length > (int)OBJLEN.nHeatNo) ? _heatProcessNo.Substring(3, (int)OBJLEN.nDealTime) : "";
  193. strTableName = analysPosTableName(_heatProcessNo.Substring(0, 1), "MATERIEL");
  194. if (strAddMtrType == "1") strPurposeCode = "自动投料";
  195. if (strAddMtrType == "2") strPurposeCode = "手投料";
  196. strSqlID = "AddMaterialProc.INSERT"; //SQLID
  197. Hashtable ht = new Hashtable();
  198. ht.Add("I1", strTableName); //表名
  199. ht.Add("I2", _heatProcessNo); //加热处理号
  200. ht.Add("I3", strMaterielCode); //物料编码
  201. ht.Add("I4", strMaterielType); //物料类型
  202. ht.Add("I5", strHeatNo); //炉号
  203. ht.Add("I6", strDataValue); //物料消耗
  204. ht.Add("I7", strAddMtrType); //投料类型
  205. ht.Add("I8", strHoppernumID); //料仓编号
  206. ht.Add("I9", strPurposeCode); //用途编码
  207. ht.Add("I10", strStationCode); //岗位
  208. ht.Add("I11", strDisposalTime); //处理次数
  209. CommonClientToServer ccTs = new CommonClientToServer();
  210. ccTs.ob = ob;
  211. string strRCode = ccTs.ExecuteProcedureFunctions("Core.LgMes.Server.LgJobMgt.ClassCommonModule",
  212. "AddMaterialProc", strSqlID, ht, out strErr);
  213. if (strErr != "")
  214. MessageBox.Show("物料消耗数据录入失败,重试!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  215. }
  216. /// <summary>
  217. /// 手投料料仓对应物料配置
  218. /// </summary>
  219. /// <param name="ultraCell">激活Cell</param>
  220. /// <param name="e"></param>
  221. /// <param name="strStationCode">岗位</param>
  222. /// <param name="ob">服务端URL</param>
  223. public static void SetHatMaterial(Infragistics.Win.UltraWinGrid.UltraGridCell ultraCell,
  224. ref Infragistics.Win.UltraWinGrid.DoubleClickHeaderEventArgs e, string strStationCode, OpeBase ob)
  225. {
  226. string strErr = "";
  227. string strMaterielCode = ""; //物料编码
  228. string strOldMaterielCode = ""; //原始物料编码
  229. string strPurposeCode = ""; //用途编码
  230. string strOutValue = ""; //输出
  231. try
  232. {
  233. if (ultraCell != null)
  234. {
  235. string szBM = "";
  236. if (ultraCell.Column.Tag.ToString() != ultraCell.Column.Key)
  237. strOldMaterielCode = ultraCell.Column.Tag.ToString();
  238. string szMC = e.Header.Caption;
  239. frmSetMaterialName frm = new frmSetMaterialName(szMC, "1");
  240. frm.obMain = ob;
  241. frm.ShowDialog();
  242. if (frm.bChange)
  243. {
  244. strMaterielCode = frm.m_szWLBM;
  245. strPurposeCode = "手投料";
  246. string strSqlID = "SwapHatHopper.Procedure"; //SQLID
  247. Hashtable ht = new Hashtable();
  248. ht.Add("I1", strStationCode); //岗位
  249. ht.Add("I2", "STL"); //投料类型
  250. ht.Add("I3", strMaterielCode); //物料编码
  251. ht.Add("I4", strOldMaterielCode); //原始物料编码
  252. ht.Add("I5", strPurposeCode); //用途编码
  253. ht.Add("O1", strOutValue); //输出
  254. CommonClientToServer ccTs = new CommonClientToServer();
  255. ccTs.ob = ob;
  256. string strRCode = ccTs.ExecuteProcedureFunctions("Core.LgMes.Server.LgJobMgt.ClassCommonModule",
  257. "SwapHatHopper", strSqlID, ht, out strErr);
  258. if (strErr != "")
  259. {
  260. MessageBox.Show("手投料物料配置失败,请重试!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  261. return;
  262. }
  263. e.Header.Caption = frm.m_szWLMC;
  264. ultraCell.Column.Tag = frm.m_szWLBM;
  265. }
  266. }
  267. }
  268. catch { }
  269. }
  270. /// <summary>
  271. /// 设置冶炼过程手投料配置信息
  272. /// </summary>
  273. /// <param name="ultraGrid">手投料Grid</param>
  274. /// <param name="ultraDs">手投料数据源</param>
  275. /// <param name="strStationCode">岗位</param>
  276. /// <param name="_dtMaterial">手投料配置信息</param>
  277. /// <param name="ob">服务端URL</param>
  278. public static void SetProceThrowFace(Infragistics.Win.UltraWinGrid.UltraGrid ultraGrid, Infragistics.Win.UltraWinDataSource.UltraDataSource ultraDs,
  279. string strStationCode, ref DataTable _dtMaterial, OpeBase ob)
  280. {
  281. try
  282. {
  283. string strErr = "";
  284. ArrayList arry = new ArrayList();
  285. arry.Add("GetHndTrwMtr.Select");//此ID为XML文件ID
  286. arry.Add(strStationCode); //岗位
  287. CommonClientToServer ccTs = new CommonClientToServer();
  288. ccTs.ob = ob;
  289. //查询手投料物料配置信息
  290. DataSet ds = ccTs.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassCommonModule",
  291. "GetHndTrwMtr", arry, out strErr);
  292. if (strErr == "" && ds != null)
  293. {
  294. DataTable dt = ds.Tables[0];
  295. if (dt.Rows.Count > 0)
  296. {
  297. string szPZBM = dt.Rows[0]["CONFGCODE"].ToString();
  298. string[] arBM = szPZBM.Split('/');
  299. DataRow[] rows;
  300. int nCount = ultraGrid.DisplayLayout.Bands[0].Columns.Count;
  301. for (int i = 0; i < nCount; i++)
  302. {
  303. if (i < arBM.Length - 1)
  304. {
  305. rows = _dtMaterial.Select("MATERIELCODE='" + arBM[i] + "'");
  306. if (rows.Length > 0)
  307. {
  308. ultraGrid.DisplayLayout.Bands[0].Columns[i].Header.Caption = rows[0]["MATERIELFORSHORT"].ToString();
  309. ultraGrid.DisplayLayout.Bands[0].Columns[i].Tag = arBM[i];
  310. }
  311. }
  312. else
  313. {
  314. ultraGrid.DisplayLayout.Bands[0].Columns[i].Header.Caption = "";
  315. ultraGrid.DisplayLayout.Bands[0].Columns[i].Tag = ultraDs.Band.Columns[i].Key;
  316. }
  317. }
  318. }
  319. }
  320. }
  321. catch { }
  322. }
  323. /// <summary>
  324. /// 利用弹出计算器窗体增加手投料消耗
  325. /// </summary>
  326. /// <param name="_heatProcessNo"></param>
  327. /// <param name="ultraCell"></param>
  328. /// <param name="_dtMaterial"></param>
  329. /// <param name="ob"></param>
  330. public static void HndMtrFromAddMaterial(string _heatProcessNo, Infragistics.Win.UltraWinGrid.UltraGridCell ultraCell,
  331. DataTable _dtMaterial,OpeBase ob)
  332. {
  333. if (_heatProcessNo == "" || ultraCell.Column.Header.Caption == "")
  334. return;
  335. frmInputDecimal frm = new frmInputDecimal();
  336. frm.Location = CStaticMethod.GetChildWindowLocation(frm.Size);
  337. frm.ShowDialog();
  338. if (frm._defaultValue != "")
  339. {
  340. string szMC = ultraCell.Column.Header.Caption, szWLBM = ultraCell.Column.Tag.ToString(), szWLLX = "";
  341. string szBH = ultraCell.Column.Key;
  342. DataRow[] rows = _dtMaterial.Select(" MATERIELCODE = '" + szWLBM + "'");
  343. if (rows.Length > 0)
  344. {
  345. szWLLX = rows[0]["MATERIELTYPE"].ToString();
  346. //录入手投料消耗
  347. ClassManualUpdateInfo.AddMaterialProc(_heatProcessNo, szWLBM, szWLLX, frm._defaultValue,
  348. ultraCell.Column.Key.ToString(), "2", ob);
  349. }
  350. }
  351. }
  352. }
  353. }