123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446 |
- using ComponentFactory.Krypton.Toolkit;
- using NXWMS.Client.Model.AppModels.Condition.Balance;
- using NXWMS.Client.Model.AppModels.Result.Balance;
- using NXWMS.Client.Model.CoreModels;
- using NXWMS.Client.String.Enums;
- using NXWMS.Commons;
- using NXWMS.Services;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- namespace NXWMS.Forms.Balance.frmBalanceChild
- {
- public partial class FrmInventoryOperate : KryptonForm
- {
- public FrmInventoryOperate()
- {
- InitializeComponent();
- var fieldList = new List<FieldValue>();
- cmbType.DataSource = fieldList.GetFieldValueIdList<InventoryType>();
- cmbType.DisplayMember = "Name";
- cmbType.ValueMember = "Id";
- cmbType.SelectedValue = ((int)InventoryType.WMS).ToString();
- fieldList = new List<FieldValue>();
- cmbInventoryMode.DataSource = fieldList.GetFieldValueIdList<InventoryMode>();
- cmbInventoryMode.DisplayMember = "Name";
- cmbInventoryMode.ValueMember = "Id";
- cmbInventoryMode.SelectedValue = ((int)InventoryMode.Select).ToString();
- }
- public string InventoryId { get; set; }
- public string InventoryModeMsg { get; set; }
- /// <summary>
- /// 盘点单主表
- /// </summary>
- public InventoryMainSearchResult _MainInfo;
- public List<WmsAwitInventoryPalletMd> awitInventoryPalletData = new List<WmsAwitInventoryPalletMd>();
- public List<InventoryDetailSearchResult> awitInventoryPalletDtlData = new List<InventoryDetailSearchResult>();
- #region 窗体按钮事件
- private void FrmInventoryOperate_Load(object sender, EventArgs e)
- {
- try
- {
- //获取对应盘点单数据
- var mainResult = BalanceServices.balanceSearchService.GetMainInventoryList(new InventoryMainSearchCondition
- {
- Id = Convert.ToInt32(InventoryId)
- });
- if (mainResult.Status == OperateStatus.Success)
- {
- _MainInfo = mainResult.Data.RowData.FirstOrDefault();
- txtInventoryNo.Text = _MainInfo.InventoryNo;
- cmbType.SelectedValue = _MainInfo.InventoryType.ToString();
- numPercentage.Value = Convert.ToDecimal(_MainInfo.InventoryPercentage);
- cmbInventoryMode.SelectedValue = _MainInfo.InventoryMode.ToString();
- if (_MainInfo.InventoryBeginTime != null)
- {
- dtpBeginTime.Checked = true;
- dtpBeginTime.Value = _MainInfo.InventoryBeginTime.Value;
- }
- if (_MainInfo.InventoryEndTime != null)
- {
- dtpEndTime.Checked = true;
- dtpEndTime.Value = _MainInfo.InventoryEndTime.Value;
- }
- txtInventoryNo.Enabled = false;
- cmbType.Enabled = false;
- numPercentage.Enabled = false;
- cmbInventoryMode.Enabled = false;
- dtpBeginTime.Enabled = false;
- dtpEndTime.Enabled = false;
- kryptonGroupBox3.Enabled = false;
- kbtn_CreateInventoryTask.Enabled = false;
- kbtn_Refresh.Enabled = false;
- kbtn_InventoryOperate.Enabled = false;
- if (_MainInfo.InventoryStatus >= 11 && InventoryModeMsg == "正常盘点")//盘点单的状态大于等于11(即开始盘点)时
- {
- kbtn_StartInventory.Enabled = false;
- kbtn_CreateInventoryTask.Enabled = true;
- kbtn_Refresh.Enabled = true;
- kbtn_InventoryOperate.Enabled = true;
- }
- if (_MainInfo.InventoryStatus == 88 && InventoryModeMsg == "差异盘点")
- {
- kbtn_StartInventory.Enabled = false;
- kbtn_CreateInventoryTask.Enabled = true;
- kbtn_Refresh.Enabled = true;
- kbtn_InventoryOperate.Enabled = true;
- }
- LoadAwitInventoryPalletData();
- }
- else
- {
- KryptonMessageBox.Show($"加载盘点单数据错误:【{mainResult.Message}】");
- }
- this.Text = $"盘点操作 --- {InventoryModeMsg}";
- }
- catch (Exception ex)
- {
- KryptonMessageBox.Show(ex.Message);
- }
- }
- private void kbtn_StartInventory_Click(object sender, EventArgs e)
- {
- try
- {
- if (KryptonMessageBox.Show($"确认将盘点单:【{_MainInfo.InventoryNo}】标记为开始盘点状态?如果点击确认,盘点单明细的所有托盘都将进行盘点出库,并且该部分托盘的库存将暂时锁定!!!请谨慎操作!!!", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
- {
- //修改盘点单状态为盘点中
- //修改盘点单托盘明细的库存状态为盘点出库占用。
- var editResult = BalanceServices.balanceOperateService.InventoryStatusChange(new InventoryStatusChangeCondition
- {
- OperationUserId = AppConfig.UserLoginResult.UserInfo.UserId,
- Ids = InventoryId,
- InventoryStatus = InventoryStatusEnum.BeginInventory,
- InventoryModeMsg = InventoryModeMsg
- });
- if (editResult.Status == OperateStatus.Success)
- {
- kbtn_CreateInventoryTask.Enabled = true;
- kbtn_Refresh.Enabled = true;
- kbtn_InventoryOperate.Enabled = true;
- kbtn_StartInventory.Enabled = false;
- KryptonMessageBox.Show($"开始盘点操作成功!");
- LoadAwitInventoryPalletData();
- }
- else
- {
- KryptonMessageBox.Show($"开始盘点操作失败!\r\n【{editResult.Message}】");
- }
- }
- }
- catch (Exception ex)
- {
- KryptonMessageBox.Show(ex.Message);
- }
- }
- private void kbtn_CreateInventoryTask_Click(object sender, EventArgs e)
- {
- try
- {
- int rowsSelectedNum = 0;
- List<string> trayCodeLst = new List<string>();
- int rowSelectIndex = 0;
- foreach (DataGridViewRow item in kdgv_WaitInventoryPalletLst.Rows)
- {
- DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)item.Cells[0];
- object obj = checkCell.EditedFormattedValue;
- if (Convert.ToBoolean(obj))
- {
- if (item.Cells[7].Value.ToString() != "未生成盘点任务")
- {
- KryptonMessageBox.Show($"托盘号:【{item.Cells[3].Value}】已经生成盘点任务,不允许重复生成!");
- return;
- }
- rowsSelectedNum++;
- trayCodeLst.Add(item.Cells[2].Value.ToString());
- rowSelectIndex = item.Index;
- }
- }
- if (rowsSelectedNum > 0)
- {
- string str = string.Empty;
- foreach (string item in trayCodeLst)
- {
- str += item + ",";
- }
- str = str.Substring(0, str.Length - 1);
- InventoryOperateCondition param = new InventoryOperateCondition
- {
- Describe = str,
- InventoryId = Convert.ToInt32(InventoryId),
- InventoryNo = _MainInfo.InventoryNo,
- OperationUserId = AppConfig.UserLoginResult.UserInfo.UserId,
- InventoryModeMsg = InventoryModeMsg
- };
- var editResult = BalanceServices.balanceOperateService.CreateInventoryTask(param);
- if (editResult.Status == OperateStatus.Success)
- {
- KryptonMessageBox.Show($"{editResult.Message}");
- }
- else
- {
- KryptonMessageBox.Show($"{editResult.Message}");
- }
- LoadAwitInventoryPalletData();
- }
- else
- {
- KryptonMessageBox.Show("请勾选待盘点托盘数据行!");
- }
- }
- catch (Exception ex)
- {
- KryptonMessageBox.Show(ex.Message);
- }
- }
- private void kbtn_Refresh_Click(object sender, EventArgs e)
- {
- LoadAwitInventoryPalletData();
- }
- private void kbtn_InventoryOperate_Click(object sender, EventArgs e)
- {
- try
- {
- int rowsSelectedNum = 0;
- string trayCode = string.Empty;
- string palletCode = string.Empty;
- int rowSelectIndex = 0;
- foreach (DataGridViewRow item in kdgv_WaitInventoryPalletLst.Rows)
- {
- DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)item.Cells[0];
- object obj = checkCell.EditedFormattedValue;
- if (Convert.ToBoolean(obj))
- {
- if (item.Cells[7].Value.ToString() == "未生成盘点任务")
- {
- KryptonMessageBox.Show($"托盘号:【{item.Cells[3].Value}】未生成盘点任务,不允许进行盘点操作!");
- return;
- }
- rowsSelectedNum++;
- trayCode = item.Cells[2].Value.ToString();
- palletCode = item.Cells[3].Value.ToString();
- rowSelectIndex = item.Index;
- }
- }
- if (rowsSelectedNum > 0)
- {
- if (rowsSelectedNum == 1)
- {
- //检测托盘是否到达盘点位置,
- //1、校验盘点下架是否完成
- //2、校验盘点下架的大任务是否到达目标位置。
- var editResult = BalanceServices.balanceOperateService.GetInventoryPallletOperateData(new WmsAwitInventoryPalletMd
- {
- INVENTORY_ID = Convert.ToInt32(InventoryId),
- TRAY_CODE = trayCode,
- PALLET_CODE = palletCode,
- BIN_NAME = InventoryModeMsg,//在这里使用BIN_NAME属性传入盘点方式的信息。
- });
- if (editResult.Status == OperateStatus.Success)
- {
- kryptonGroupBox3.Enabled = true;
- kryptonGroupBox2.Enabled = false;
- kdgv_InventoryingPalletDtlLst.Rows.Clear();
- awitInventoryPalletDtlData = editResult.Data;
- foreach (var item in editResult.Data)
- {
- int index = kdgv_InventoryingPalletDtlLst.Rows.Add();
- kdgv_InventoryingPalletDtlLst.Rows[index].Cells[0].Value = item.InventoryDtlId;
- kdgv_InventoryingPalletDtlLst.Rows[index].Cells[1].Value = item.MaterielTypeCode;
- kdgv_InventoryingPalletDtlLst.Rows[index].Cells[2].Value = item.MaterielTypeCode;
- kdgv_InventoryingPalletDtlLst.Rows[index].Cells[3].Value = item.MaterielCode;
- kdgv_InventoryingPalletDtlLst.Rows[index].Cells[4].Value = item.MaterielName;
- kdgv_InventoryingPalletDtlLst.Rows[index].Cells[5].Value = item.Qty;
- kdgv_InventoryingPalletDtlLst.Rows[index].Cells[6].Value = item.ActualInventoryQty;
- kdgv_InventoryingPalletDtlLst.Rows[index].Cells[7].Value = item.UnitName;
- kdgv_InventoryingPalletDtlLst.Rows[index].Cells[8].Value = item.TrayCode;
- kdgv_InventoryingPalletDtlLst.Rows[index].Cells[9].Value = item.PalletCode;
- kdgv_InventoryingPalletDtlLst.Rows[index].Cells[10].Value = item.SupplierName;
- kdgv_InventoryingPalletDtlLst.Rows[index].Cells[11].Value = item.BatchNo;
- }
- //加载正在盘点的托盘数据
- KryptonMessageBox.Show($"加载盘点操作托盘明细数据成功!");
- }
- else
- {
- KryptonMessageBox.Show($"{editResult.Message}");
- }
- }
- else
- {
- KryptonMessageBox.Show("每次只允许一个托盘进行盘点操作!");
- }
- }
- else
- {
- KryptonMessageBox.Show("请勾选盘点操作的托盘数据行!");
- }
- }
- catch (Exception ex)
- {
- KryptonMessageBox.Show(ex.Message);
- }
- }
- private void kbtn_ConfirmInventoryResult_Click(object sender, EventArgs e)
- {
- try
- {
- int rowIndex = 0;
- foreach (DataGridViewRow item in kdgv_InventoryingPalletDtlLst.Rows)
- {
- rowIndex++;
- if (Convert.ToDecimal(item.Cells[6].Value) == 0)
- {
- KryptonMessageBox.Show($"第:【{rowIndex}】托盘明细未录入盘点数量!");
- return;
- }
- else
- {
- InventoryDetailSearchResult retDtlMd = awitInventoryPalletDtlData.FirstOrDefault(x => x.InventoryDtlId == Convert.ToInt32(item.Cells[0].Value));
- retDtlMd.ActualInventoryQty = Convert.ToDecimal(item.Cells[6].Value);
- }
- }
- InventoryMainSearchResult retMd = new InventoryMainSearchResult
- {
- InventoryId = Convert.ToInt32(InventoryId),
- UpdateBy = AppConfig.UserLoginResult.UserInfo.UserId,
- InventoryNo = _MainInfo.InventoryNo,
- InventoryDtlLst = awitInventoryPalletDtlData,
- InventoryModeName = InventoryModeMsg,
- };
- var editResult = BalanceServices.balanceOperateService.ConfirmInventoryPalletData(retMd);
- if (editResult.Status == OperateStatus.Success)
- {
- KryptonMessageBox.Show($"{editResult.Message}");
- kryptonGroupBox3.Enabled = false;
- kryptonGroupBox2.Enabled = true;
- kdgv_InventoryingPalletDtlLst.Rows.Clear();
- LoadAwitInventoryPalletData();
- }
- else
- {
- KryptonMessageBox.Show($"{editResult.Message}");
- }
- }
- catch (Exception ex)
- {
- KryptonMessageBox.Show(ex.Message);
- }
- }
- private void kbtn_PalletReinventory_Click(object sender, EventArgs e)
- {
- kdgv_InventoryingPalletDtlLst.Rows.Clear();
- kryptonGroupBox3.Enabled = false;
- LoadAwitInventoryPalletData();
- }
- #endregion
- #region 事件方法
- private void LoadAwitInventoryPalletData()
- {
- try
- {
- var resultLst = BalanceServices.balanceOperateService.GetAwitInventoryPalletLstData(new WmsAwitInventoryPalletMdCondition
- {
- InventoryModeMsg = InventoryModeMsg
- });
- if (resultLst.Status == OperateStatus.Success)
- {
- kdgv_WaitInventoryPalletLst.Rows.Clear();
- awitInventoryPalletData = resultLst.Data;
- foreach (WmsAwitInventoryPalletMd item in resultLst.Data)
- {
- int index = kdgv_WaitInventoryPalletLst.Rows.Add();
- kdgv_WaitInventoryPalletLst.Rows[index].Cells[1].Value = item.INVENTORY_ID;
- kdgv_WaitInventoryPalletLst.Rows[index].Cells[2].Value = item.TRAY_CODE;
- kdgv_WaitInventoryPalletLst.Rows[index].Cells[3].Value = item.PALLET_CODE;
- kdgv_WaitInventoryPalletLst.Rows[index].Cells[4].Value = item.REGION_NAME;
- kdgv_WaitInventoryPalletLst.Rows[index].Cells[5].Value = item.BIN_NAME;
- if (item.INVENTORY_STATUS < 88)
- {
- if (item.BALANCE_STATUS == 55)
- {
- kdgv_WaitInventoryPalletLst.Rows[index].Cells[6].Value = "未开始盘点";
- }
- else if (item.BALANCE_STATUS > 55)
- {
- kdgv_WaitInventoryPalletLst.Rows[index].Cells[6].Value = "正常盘点出库中";
- }
- else
- {
- kdgv_WaitInventoryPalletLst.Rows[index].Cells[6].Value = "正常盘点入库中";
- }
- }
- else
- {
- if (item.BALANCE_STATUS == 55)
- {
- kdgv_WaitInventoryPalletLst.Rows[index].Cells[6].Value = "未开始盘点";
- }
- else if (item.BALANCE_STATUS > 55)
- {
- kdgv_WaitInventoryPalletLst.Rows[index].Cells[6].Value = "差异盘点出库中";
- }
- else
- {
- kdgv_WaitInventoryPalletLst.Rows[index].Cells[6].Value = "差异盘点入库中";
- }
- }
- if (item.PUTDOWN_STATUS < 99 && item.PUTDOWN_STATUS >= 0)
- {
- kdgv_WaitInventoryPalletLst.Rows[index].Cells[7].Value = "已生成盘点任务";
- }
- else
- {
- kdgv_WaitInventoryPalletLst.Rows[index].Cells[7].Value = "未生成盘点任务";
- }
- }
- }
- else
- {
- KryptonMessageBox.Show($"加载待盘点托盘数据错误:【{resultLst.Message}】");
- }
- }
- catch (Exception ex)
- {
- KryptonMessageBox.Show(ex.Message);
- }
- }
- #endregion
- private void kdgv_WaitInventoryPalletLst_CellContentClick(object sender, DataGridViewCellEventArgs e)
- {
- if (e.ColumnIndex == 0)
- {
- DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)kdgv_WaitInventoryPalletLst.CurrentRow.Cells[0];
- if (Convert.ToBoolean(checkCell.EditedFormattedValue))
- {
- kdgv_WaitInventoryPalletLst.CurrentCell.Style.BackColor = Color.FromArgb(51, 153, 255);
- }
- else
- {
- kdgv_WaitInventoryPalletLst.CurrentCell.Style.BackColor = Color.Transparent;
- }
- }
- }
- private void FrmInventoryOperate_FormClosing(object sender, FormClosingEventArgs e)
- {
- }
- }
- }
|