Make_PositionStock.cs 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466
  1. using DevComponents.DotNetBar.Controls;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using UAS_MES_NEW.DataOperate;
  9. using UAS_MES_NEW.Entity;
  10. using UAS_MES_NEW.PublicMethod;
  11. namespace UAS_MES_NEW.Make
  12. {
  13. public partial class Make_PositionStock : Form
  14. {
  15. AutoSizeFormClass asc = new AutoSizeFormClass();
  16. DataHelper dh;
  17. DataTable dt;
  18. LogStringBuilder sql = new LogStringBuilder();
  19. DataTable Dbfind;
  20. string ma_id;
  21. //上一次查询的工单号
  22. string last_macoe = "";
  23. string craftcode_condition = "";
  24. public Make_PositionStock()
  25. {
  26. InitializeComponent();
  27. }
  28. private void Make_PositionStock_Load(object sender, EventArgs e)
  29. {
  30. asc.controllInitializeSize(this);
  31. ma_code.TableName = "make left join product on ma_prodcode=pr_code ";
  32. ma_code.SelectField = "ma_code # 工单号,ma_prodcode # 产品编号,ma_craftcode # 工艺路线,pr_detail # 产品名称";
  33. ma_code.FormName = Name;
  34. ma_code.DBTitle = "工单查询";
  35. ma_code.SetValueField = new string[] { "ma_code", "ma_prodcode", "pr_detail", "ma_craftcode" };
  36. ma_code.Condition = "ma_statuscode='STARTED'";
  37. ma_code.DbChange += Ma_code_DbChange;
  38. sc_stepcode.Text = User.CurrentStepCode;
  39. ma_code.SetLockCheckBox(Lock);
  40. Lock.GetMakeCodeCtl(ma_code);
  41. dh = SystemInf.dh;
  42. }
  43. private void AddCumulativeColumn()
  44. {
  45. // 添加累计数列
  46. if (!BatchProductDGV.Columns.Contains("累计数量"))
  47. {
  48. DataGridViewTextBoxColumn cumulativeColumn = new DataGridViewTextBoxColumn();
  49. cumulativeColumn.Name = "累计数量";
  50. cumulativeColumn.HeaderText = "累计数量";
  51. BatchProductDGV.Columns.Add(cumulativeColumn);
  52. }
  53. CalculateCumulativeValues();
  54. }
  55. private void CalculateCumulativeValues()
  56. {
  57. if (BatchProductDGV.Rows.Count == 0) return;
  58. // 用于存储每个物料编号的累计数量
  59. Dictionary<string, decimal> cumulativeDict = new Dictionary<string, decimal>();
  60. // 第一次循环:计算每个物料的总数
  61. foreach (DataGridViewRow row in BatchProductDGV.Rows)
  62. {
  63. if (row.IsNewRow) continue;
  64. string materialNo = row.Cells["sp_soncode"].Value?.ToString();
  65. decimal quantity = Convert.ToDecimal(row.Cells["mss_remain"].Value);
  66. if (!string.IsNullOrEmpty(materialNo))
  67. {
  68. if (cumulativeDict.ContainsKey(materialNo))
  69. {
  70. cumulativeDict[materialNo] += quantity;
  71. }
  72. else
  73. {
  74. cumulativeDict[materialNo] = quantity;
  75. }
  76. }
  77. }
  78. // 第二次循环:为每行设置累计值
  79. foreach (DataGridViewRow row in BatchProductDGV.Rows)
  80. {
  81. if (row.IsNewRow) continue;
  82. string materialNo = row.Cells["sp_soncode"].Value?.ToString();
  83. if (!string.IsNullOrEmpty(materialNo) && cumulativeDict.ContainsKey(materialNo))
  84. {
  85. row.Cells["累计数量"].Value = cumulativeDict[materialNo];
  86. }
  87. }
  88. }
  89. private void Ma_code_DbChange(object sender, EventArgs e)
  90. {
  91. Dbfind = ma_code.ReturnData;
  92. BaseUtil.SetFormValue(this.Controls, Dbfind);
  93. FillDataGridView();
  94. }
  95. private void Make_PositionStock_SizeChanged(object sender, EventArgs e)
  96. {
  97. asc.controlAutoSize(this);
  98. }
  99. private void Clean_Click(object sender, EventArgs e)
  100. {
  101. OperateResult.Clear();
  102. }
  103. //物料批号Enter事件
  104. private void pr_batchnum_KeyDown(object sender, KeyEventArgs e)
  105. {
  106. if (e.KeyCode == Keys.Enter)
  107. {
  108. if (pr_batchnum.Text != "")
  109. {
  110. if (ma_code.Text != "")
  111. {
  112. sql.Clear();
  113. sql.Append("select cr_code from craft left join craftdetail on cd_crid=cr_id where cr_code in (" + craftcode_condition + ") ");
  114. sql.Append("and cr_prodcode='" + ma_prodcode.Text + "' and cr_statuscode='AUDITED' and cd_stepcode='" + User.CurrentStepCode + "'");
  115. dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  116. if (dt.Rows.Count > 0)
  117. {
  118. //输入的是条码号的时候
  119. dt = (DataTable)dh.ExecuteSql("select nvl(bar_remain,0) bar_remain,bar_prodcode from barcode inner join product on pr_code=bar_prodcode where bar_code ='" + pr_batchnum.Text + "'", "select");
  120. if (dt.Rows.Count > 0)
  121. {
  122. string bar_remain = dt.Rows[0]["bar_remain"].ToString();
  123. string bar_prodcode = dt.Rows[0]["bar_prodcode"].ToString();
  124. sql.Clear();
  125. sql.Append("select sp_id,sp_oneuseqty,sp_fsoncode,sp_soncode,sp_prefix from stepbom left join stepproduct on sp_sbid=sb_id ");
  126. sql.Append("where sb_craftcode='" + ma_craftcode.Text + "' and sb_prodcode='" + ma_prodcode.Text + "' and ");
  127. sql.Append("sb_bomversion='" + ma_bomversion.Text + "' and sp_stepcode='" + User.CurrentStepCode + "' and (sp_soncode ='" + bar_prodcode + "' or sp_fsoncode='" + bar_prodcode + "' or sp_repcode='" + bar_prodcode + "')and sp_tracekind=2 ");
  128. dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  129. if (dt.Rows.Count > 0)
  130. {
  131. sql.Clear();
  132. sql.Append("select mss_makecode,mss_linecode from makesourcestock where mss_barcode = '" + pr_batchnum.Text + "'");
  133. DataTable BARCODE = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  134. if (BARCODE.Rows.Count > 0)
  135. {
  136. OperateResult.AppendText(">>物料批号" + pr_batchnum.Text + "已经被工单:" + BARCODE.Rows[0]["mss_makecode"] + ",线别:" + BARCODE.Rows[0]["mss_linecode"] + "备料\n", Color.Red, pr_batchnum);
  137. return;
  138. }
  139. InsertMakeSourceStock(dt, int.Parse(bar_remain));
  140. }
  141. else OperateResult.AppendText(">>物料批号" + pr_batchnum.Text + "对应的物料不是当前工单当前工序需要备的物料\n", Color.Red, pr_batchnum);
  142. }
  143. else
  144. {
  145. //是否包含备料的批管控物料号
  146. sql.Clear();
  147. sql.Append("select sp_id,sp_oneuseqty,sp_fsoncode,sp_soncode,sp_prefix from stepbom left join stepproduct on sp_sbid=sb_id ");
  148. sql.Append("where sb_craftcode='" + ma_craftcode.Text + "' and sb_prodcode='" + ma_prodcode.Text + "' and ");
  149. sql.Append("sb_bomversion='" + ma_bomversion.Text + "' and sp_stepcode='" + User.CurrentStepCode + "' and sp_tracekind=2 ");
  150. sql.Append("and (instr('" + pr_batchnum.Text + "',SP_SONCODE) > 0 or instr('" + pr_batchnum.Text + "',SP_FSONCODE)>0)");
  151. dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  152. if (dt.Rows.Count > 0)
  153. {
  154. InsertMakeSourceStock(dt, 0);
  155. }
  156. else
  157. {
  158. //匹配批管控物料中的前缀和长度
  159. sql.Clear();
  160. sql.Append("select sp_id,sp_fsoncode,sp_oneuseqty,sp_soncode,sp_prefix from stepbom left join stepproduct on sp_sbid=sb_id ");
  161. sql.Append("where sb_craftcode='" + ma_craftcode.Text + "' and sb_prodcode='" + ma_prodcode.Text + "' and ");
  162. sql.Append("sb_bomversion='" + ma_bomversion.Text + "' and sp_stepcode='" + User.CurrentStepCode + "' and sp_tracekind=2 ");
  163. sql.Append("and instr('" + pr_batchnum.Text + "',sp_prefix) > 0 and ((nvl(SP_LENGTH,0)>0 and sp_length ");
  164. sql.Append("= length('" + pr_batchnum.Text + "')) or nvl(SP_LENGTH,0)=0)");
  165. dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  166. if (dt.Rows.Count > 0)
  167. {
  168. InsertMakeSourceStock(dt, 0);
  169. }
  170. else OperateResult.AppendText(">>物料批号" + pr_batchnum.Text + "对应的物料不是当前工单当前工序需要备的物料\n", Color.Red, pr_batchnum);
  171. }
  172. }
  173. }
  174. else OperateResult.AppendText(">>当前岗位资源工序不在工单对应的途程中\n", Color.Red);
  175. }
  176. else OperateResult.AppendText(">>工单号不能为空\n", Color.Red, pr_batchnum);
  177. }
  178. else OperateResult.AppendText(">>物料批号不允许为空\n", Color.Red);
  179. }
  180. }
  181. private void InsertMakeSourceStock(DataTable dt, int Barremain)
  182. {
  183. string sp_oneuseqty = dt.Rows[0]["sp_oneuseqty"].ToString();
  184. string sp_fsoncode = dt.Rows[0]["sp_fsoncode"].ToString();
  185. string sp_soncode = dt.Rows[0]["sp_soncode"].ToString();
  186. string sp_prefix = dt.Rows[0]["sp_prefix"].ToString();
  187. sql.Clear();
  188. sql.Append("insert into makesourcestock (mss_id,mss_makecode,mss_linecode ,mss_craftcode,");
  189. sql.Append("mss_stepcode,mss_barcode,mss_fprodcode,mss_indate,mss_inman,mss_qty,");
  190. sql.Append("mss_remain,mss_baseqty,mss_prodcode,mss_maid,mss_sourcecode) values(makesourcestock_seq.nextval,'" + ma_code.Text + "','" + User.UserLineCode + "',");
  191. sql.Append("'" + ma_craftcode.Text + "','" + sc_stepcode.Text + "','" + pr_batchnum.Text + "','" + sp_fsoncode + "',");
  192. sql.Append("sysdate,'" + User.UserCode + "','" + Barremain + "','" + Barremain + "','" + sp_oneuseqty + "','" + sp_soncode + "','" + ma_id + "','" + User.UserSourceCode + "')");
  193. dh.ExecuteSql(sql.GetString(), "insert");
  194. dh.UpdateByCondition("barcode", "bar_place='" + ma_code.Text + "'", "bar_code='" + pr_batchnum.Text + "'");
  195. LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ma_code.Text, User.UserLineCode, User.UserSourceCode, "岗位备料", "上料物料" + pr_batchnum.Text, "", "");
  196. //数据插入成功后加载Grid的数据
  197. FillDataGridView();
  198. OperateResult.AppendText(">>物料批号" + pr_batchnum.Text + "备料成功\n", Color.Green, pr_batchnum);
  199. }
  200. //加载Grid数据
  201. private void FillDataGridView()
  202. {
  203. if (!show_all_check.Checked)
  204. {
  205. sql.Clear();
  206. sql.Append("select nvl(mss_makecode,' ') mss_makecode,mss_linecode,sp_fsoncode,nvl(mss_id,0) mss_id,sp_soncode,mss_prodcode,sp_oneuseqty,mss_barcode,nvl(mss_qty,0) mss_qty ,nvl(mss_remain,0)mss_remain,");
  207. sql.Append("pr_detail,nvl(mss_useqty,0) mss_useqty from stepbom left join stepproduct on sp_sbid=sb_id left join product on ");
  208. sql.Append("pr_code=sp_fsoncode left join makesourcestock on mss_craftcode=sb_craftcode and mss_makecode='" + ma_code.Text + "' and mss_linecode = '" + User.UserLineCode + "' ");
  209. sql.Append("and mss_stepcode=sp_stepcode and sp_soncode=mss_prodcode and sp_fsoncode=mss_fprodcode left join make on ma_bomversion=sb_bomversion where sb_prodcode='" + ma_prodcode.Text + "' and sb_craftcode='" + ma_craftcode.Text + "' ");
  210. sql.Append("and sp_stepcode='" + User.CurrentStepCode + "' and sp_tracekind=2 and ma_code='" + ma_code.Text + "' order by sp_soncode");
  211. DataTable dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  212. BaseUtil.FillDgvWithDataTable(BatchProductDGV, dt);
  213. }
  214. else
  215. {
  216. sql.Clear();
  217. sql.Append("select nvl(mss_makecode,' ') mss_makecode,mss_linecode,sp_fsoncode,nvl(mss_id,0) mss_id,sp_soncode,mss_prodcode,sp_oneuseqty,mss_barcode,nvl(mss_qty,0) mss_qty ,nvl(mss_remain,0)mss_remain,");
  218. sql.Append("pr_detail,nvl(mss_useqty,0) mss_useqty from stepbom left join stepproduct on sp_sbid=sb_id left join product on ");
  219. sql.Append("pr_code=sp_fsoncode left join makesourcestock on mss_craftcode=sb_craftcode ");
  220. sql.Append("and mss_stepcode=sp_stepcode and sp_soncode=mss_prodcode and sp_fsoncode=mss_fprodcode where ");
  221. sql.Append(" sp_stepcode='" + User.CurrentStepCode + "' and sp_tracekind=2 and mss_linecode = '" + User.UserLineCode + "' order by sp_soncode");
  222. DataTable dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  223. BaseUtil.FillDgvWithDataTable(BatchProductDGV, dt);
  224. }
  225. AddCumulativeColumn();
  226. }
  227. private void Confirm_Click(object sender, EventArgs e)
  228. {
  229. pr_batchnum_KeyDown(sender, new KeyEventArgs(Keys.Enter));
  230. }
  231. private void Screen_Click(object sender, EventArgs e)
  232. {
  233. FillDataGridView();
  234. }
  235. private void ma_prodcode_TextChanged(object sender, EventArgs e)
  236. {
  237. if (ma_code.Text != "")
  238. {
  239. dt = (DataTable)dh.ExecuteSql("select ma_id,ma_craftcode,ma_statuscode,ma_code,ma_prodcode,pr_spec,pr_detail,ma_bomversion from make left join product on ma_prodcode=pr_code where ma_code='" + ma_code.Text + "'", "select");
  240. if (dt.Rows.Count > 0)
  241. {
  242. ma_id = dt.Rows[0]["ma_id"].ToString();
  243. string craftcode = dt.Rows[0]["ma_craftcode"].ToString();
  244. BaseUtil.SetFormValue(this.Controls, dt);
  245. }
  246. else OperateResult.AppendText(">>工单号不存在\n", Color.Red);
  247. }
  248. else OperateResult.AppendText(">>工单号不允许为空\n", Color.Red);
  249. }
  250. private void BatchProduct_CellContentClick(object sender, DataGridViewCellEventArgs e)
  251. {
  252. if (BatchProductDGV.Columns[e.ColumnIndex].Name == "DeleteRow")
  253. {
  254. if (e.RowIndex >= 0)
  255. {
  256. string id = BatchProductDGV.Rows[e.RowIndex].Cells["mss_id"].Value.ToString();
  257. string useqty = BatchProductDGV.Rows[e.RowIndex].Cells["mss_useqty"].Value.ToString();
  258. string soncode = BatchProductDGV.Rows[e.RowIndex].Cells["sp_soncode"].Value.ToString();
  259. if (id != "0")
  260. {
  261. dh.ExecuteSql("delete from makesourcestock where mss_id='" + id + "'", "delete");
  262. LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ma_code.Text, User.UserLineCode, User.UserSourceCode, "岗位备料", "删除物料" + soncode, "", "");
  263. OperateResult.AppendText(">>料号" + soncode + "删除成功\n");
  264. FillDataGridView();
  265. }
  266. }
  267. }
  268. }
  269. private void ma_code_UserControlTextChanged(object sender, EventArgs e)
  270. {
  271. if (ma_code.Text.Length > 4)
  272. {
  273. string ErrMessage = "";
  274. if (LogicHandler.CheckMakeStatus(ma_code.Text, out ErrMessage))
  275. {
  276. craftcode_condition = "";
  277. DataTable dt = (DataTable)dh.ExecuteSql("select ma_craftcode from make where ma_code='" + ma_code.Text + "'", "select");
  278. string craftcode = "";
  279. if (dt.Rows.Count > 0)
  280. {
  281. craftcode = dt.Rows[0]["ma_craftcode"].ToString();
  282. }
  283. sql.Clear();
  284. sql.Append("select distinct ms_craftcode ma_craftcode from makeserial left join craft on cr_code=ms_craftcode ");
  285. sql.Append("where ms_makecode='" + ma_code.Text + "' and ms_craftcode<>'" + craftcode + "'");
  286. dt.Merge((DataTable)dh.ExecuteSql(sql.GetString(), "select"));
  287. ma_craftcode.DisplayMember = "ma_craftcode";
  288. ma_craftcode.ValueMember = "ma_craftcode";
  289. ma_craftcode.DataSource = dt;
  290. for (int i = 0; i < dt.Rows.Count; i++)
  291. {
  292. if (dt.Rows.Count - 1 == i)
  293. craftcode_condition += "'" + dt.Rows[i]["ma_craftcode"].ToString() + "'";
  294. else
  295. craftcode_condition += "'" + dt.Rows[i]["ma_craftcode"].ToString() + "',";
  296. }
  297. }
  298. }
  299. }
  300. private void BatchProductDGV_CellEndEdit(object sender, DataGridViewCellEventArgs e)
  301. {
  302. if (BatchProductDGV.Columns[e.ColumnIndex].Name == "mss_qty")
  303. {
  304. string id = BatchProductDGV.Rows[e.RowIndex].Cells["mss_id"].Value.ToString();
  305. string qty = "0";
  306. if (id != "0")
  307. {
  308. try
  309. {
  310. if (int.Parse(BatchProductDGV.Rows[e.RowIndex].Cells["mss_qty"].Value.ToString()) > 0)
  311. {
  312. qty = BatchProductDGV.Rows[e.RowIndex].Cells["mss_qty"].Value.ToString();
  313. }
  314. else
  315. {
  316. OperateResult.AppendText(">>数量必须大于0\n", Color.Red);
  317. return;
  318. }
  319. }
  320. catch (Exception)
  321. {
  322. OperateResult.AppendText(">>数量必须大于0\n", Color.Red);
  323. return;
  324. }
  325. dh.UpdateByCondition("makesourcestock", "mss_qty='" + qty + "'", "mss_id='" + id + "'");
  326. BatchProductDGV.Rows[e.RowIndex].Cells["mss_remain"].Value = int.Parse(BatchProductDGV.Rows[e.RowIndex].Cells["mss_qty"].Value.ToString()) - int.Parse(BatchProductDGV.Rows[e.RowIndex].Cells["mss_useqty"].Value.ToString());
  327. dh.UpdateByCondition("makesourcestock", "mss_remain=mss_qty-nvl(mss_useqty,0)", "mss_id='" + id + "'");
  328. }
  329. }
  330. }
  331. private void BatchProductDGV_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
  332. {
  333. if (BatchProductDGV.Columns[e.ColumnIndex].Name == "DeleteRow")
  334. {
  335. if (BatchProductDGV.Rows[e.RowIndex].Cells["mss_id"].Value.ToString() == "0")
  336. e.Value = Properties.Resources.WhiteImage;
  337. else
  338. e.Value = Properties.Resources.bindingNavigatorDeleteItem_Image;
  339. }
  340. }
  341. private void ma_craftcode_SelectedIndexChanged(object sender, EventArgs e)
  342. {
  343. Screen.PerformClick();
  344. }
  345. private void BatchProductDGV_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
  346. {
  347. bool mouseOver = e.CellBounds.Contains(this.PointToClient(Cursor.Position));
  348. if (e.ColumnIndex > 0)
  349. {
  350. if (BatchProductDGV.Columns[e.ColumnIndex].Name == "mss_remain")
  351. {
  352. SolidBrush solidBrush = new SolidBrush(Color.FromArgb(51, 153, 255));
  353. e.Graphics.FillRectangle(mouseOver ? solidBrush : Brushes.LightSeaGreen, e.CellBounds);
  354. Rectangle border = e.CellBounds;
  355. border.Width -= 1;
  356. e.Graphics.DrawRectangle(Pens.White, border);
  357. e.PaintContent(e.CellBounds);
  358. e.Handled = true;
  359. }
  360. }
  361. }
  362. private void pi_type_check_CheckedChanged(object sender, EventArgs e)
  363. {
  364. if (show_all_check.Checked)
  365. {
  366. pr_batchnum.Enabled = false;
  367. FillDataGridView();
  368. }
  369. else
  370. {
  371. pr_batchnum.Enabled = true;
  372. FillDataGridView();
  373. }
  374. }
  375. private void normalButton1_Click(object sender, EventArgs e)
  376. {
  377. bool makesources = false;
  378. for (int i = 0; i < BatchProductDGV.Rows.Count; i++)
  379. {
  380. string id_1 = BatchProductDGV.Rows[i].Cells["mss_id"].Value.ToString();
  381. if (id_1 != "0")
  382. {
  383. makesources = true;
  384. }
  385. }
  386. if (makesources)
  387. {
  388. String dialog = MessageBox.Show("是否确认全部下料", "提示", MessageBoxButtons.OKCancel).ToString();
  389. if (dialog != "OK")
  390. {
  391. OperateResult.AppendText("取消全部下料\n", Color.Black);
  392. return;
  393. }
  394. else
  395. {
  396. List<string> idcol = new List<string>();
  397. List<string> makecodecol = new List<string>();
  398. List<string> soncodecol = new List<string>();
  399. for (int i = 0; i < BatchProductDGV.Rows.Count; i++)
  400. {
  401. string id = BatchProductDGV.Rows[i].Cells["mss_id"].Value.ToString();
  402. string useqty = BatchProductDGV.Rows[i].Cells["mss_useqty"].Value.ToString();
  403. string soncode = BatchProductDGV.Rows[i].Cells["sp_soncode"].Value.ToString();
  404. string makecode = BatchProductDGV.Rows[i].Cells["mss_makecode"].Value.ToString();
  405. if (id != "0")
  406. {
  407. idcol.Add(id);
  408. makecodecol.Add(makecode);
  409. soncodecol.Add("删除物料" + soncode);
  410. OperateResult.AppendText(">>料号" + soncode + "删除成功\n");
  411. }
  412. }
  413. sql.Clear();
  414. sql.Append("insert into commandlog(cl_id,cl_caller,cl_man,cl_date,cl_linecode,cl_sourcecode,cl_makecode,cl_operate,");
  415. sql.Append("cl_result,cl_sncode,cl_code) values( commandlog_seq.nextval,'" + Tag.ToString() + "','" + User.UserCode + "',sysdate,'" + User.UserLineCode + "' ,");
  416. sql.Append("'" + User.UserSourceCode + " ' ,:iMakeCode,'岗位备料',:iResult,' ',' ')");
  417. dh.BatchInsert(sql.GetString(), new String[] { "iMakeCode", "iResult" }, makecodecol.ToArray(), soncodecol.ToArray());
  418. dh.BatchInsert("delete from makesourcestock where mss_id=:id", new String[] { "id" }, idcol.ToArray());
  419. FillDataGridView();
  420. }
  421. }
  422. else
  423. {
  424. OperateResult.AppendText(">>没有上料记录,无需全部下料\n", Color.Red);
  425. }
  426. }
  427. }
  428. }