using ComponentFactory.Krypton.Toolkit; using NXWMS.Client.Code.Converter; using NXWMS.Client.Code.Extends; using NXWMS.Client.Model.AppModels.Condition.Balance; using NXWMS.Client.Model.AppModels.Condition.Base; using NXWMS.Client.Model.AppModels.Result; using NXWMS.Client.Model.AppModels.Result.Balance; using NXWMS.Client.Model.AppModels.Result.Base; 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; using static NXWMS.Client.FrmCustom.ColumnControl; namespace NXWMS.Forms.Balance { public partial class frmBalanceDetailSearch : KryptonForm { /// /// 客户端字段排序列表 /// private List _clientFieldOrderList; /// /// 库区 /// private List regionList; /// /// 物料类型列表 /// private List materielTypeList; /// /// 供应商列表 /// private List supplierList; /// /// 调用窗体类型 /// public ExecFormType _execFormType; /// /// 正在新增库存记录 /// public static List _alreadyAddIdList; /// /// 限制库存状态 /// public int? _limitBalanceStatus; public frmBalanceDetailSearch() { InitializeComponent(); } private void frmBalanceDetailSearch_Shown(object sender, EventArgs e) { InitData(); InitControl(); _pageIndex = 1; _pageSize = 20; } /// /// 控件初始化 /// private void InitControl() { CheckForIllegalCrossThreadCalls = false; dataGridView.CellClick += new DataGridViewCellEventHandler(dataGridView_CellClick); dataGridView.BuildDataGridView(CommonUtil.GetFieldOrderDic(_clientFieldOrderList), false); cmbSearchRegionCode.DataSource = regionList; cmbSearchRegionCode.DisplayMember = "REGION_NAME"; cmbSearchRegionCode.ValueMember = "REGION_CODE"; cmbSearchRegionCode.SelectedIndex = -1; cmbSearchMaterielType.DataSource = materielTypeList; cmbSearchMaterielType.DisplayMember = "MATERIEL_TYPE_NAME"; cmbSearchMaterielType.ValueMember = "MATERIEL_TYPE_CODE"; cmbSearchMaterielType.SelectedIndex = -1; var fieldList = new List().Add(new FieldValue { Id = "", Name = "全部" }); cmbSearchQualityStatus.DataSource = fieldList.GetFieldValueIdList(); cmbSearchQualityStatus.DisplayMember = "Name"; cmbSearchQualityStatus.ValueMember = "Id"; cmbSearchQualityStatus.SelectedIndex = -1; fieldList = new List().Add(new FieldValue { Id = "", Name = "全部" }); cmbSearchBalanceStatus.DataSource = fieldList.GetFieldValueIdList(); cmbSearchBalanceStatus.DisplayMember = "Name"; cmbSearchBalanceStatus.ValueMember = "Id"; cmbSearchBalanceStatus.SelectedIndex = -1; fieldList = new List().Add(new FieldValue { Id = "", Name = "全部" }); cmbSearchSupplier.DataSource = fieldList.GetFieldValueIdList(supplierList, "SUPPLIER_CODE", "SUPPLIER_NAME"); cmbSearchSupplier.DisplayMember = "Name"; cmbSearchSupplier.ValueMember = "Code"; cmbSearchSupplier.SelectedIndex = -1; _pageIndex = 1; _pageSize = 20; switch (_execFormType) { case ExecFormType.Default: kryptonButtonUnbund.Visible = true; kryptonButtonConfirm.Visible = false; panelBase.Visible = true; btnSearchExtend.Visible = false; break; case ExecFormType.Select: kryptonButtonConfirm.Visible = true; kryptonButtonUnbund.Visible = false; panelBase.Visible = false; panelExtend.Visible = true; cmbSearchBalanceStatus.Text = BalanceStatus.InStock.Description(); cmbSearchBalanceStatus.Enabled = false; _limitBalanceStatus = (int)BalanceStatus.InStock; break; } } /// /// 数据初始化 /// private void InitData() { var regionResult = BaseServices.regionService.GetList(new RegionSearchCondition { IsUsed = true, ItemSQL = "REGION_CODE,REGION_NAME" }); if (regionResult.Status == OperateStatus.Success) { regionList = regionResult.Data.RowData.ToList(); } var materielTypeResult = BaseServices.materielTypeService.GetList(new MaterielTypeSearchCondition { IsUsed = true, ItemSQL = "MATERIEL_TYPE_CODE,MATERIEL_TYPE_NAME" }); if (materielTypeResult.Status == OperateStatus.Success) { materielTypeList = materielTypeResult.Data.RowData.ToList(); } var supplierResult = BaseServices.supplierService.GetList(new SupplierSearchCondition { IsUsed = true, ItemSQL = "SUPPLIER_CODE,SUPPLIER_NAME" }); if (supplierResult.Status == OperateStatus.Success) { supplierList = supplierResult.Data.RowData.ToList(); } _clientFieldOrderList = new List(); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "MaterielTypeCode", FieldDesc = "物料类型编码" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "MaterielTypeName", FieldDesc = "物料类型名称" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "MaterielCode", FieldDesc = "物料编码" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "MaterielName", FieldDesc = "物料名称" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "UnitName", FieldDesc = "单位" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "QTY", FieldDesc = "数量" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "BatchNo", FieldDesc = "批次号" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "WAREHOUSE_NAME", FieldDesc = "所在仓库" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "REGION_NAME", FieldDesc = "所在库区" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "BinName", FieldDesc = "所在库位" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "TrayCode", FieldDesc = "所在组盘码" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "PalletCode", FieldDesc = "所在托盘" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "ProductDate", FieldDesc = "生产日期" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "ExpDate", FieldDesc = "失效日期" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "QualityStatusName", FieldDesc = "库品状态" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "BalanceStatusName", FieldDesc = "库存状态" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "CreateName", FieldDesc = "创建人" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "CREATE_TIME", FieldDesc = "创建时间" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "UpdateName", FieldDesc = "更新人" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "UPDATE_TIME", FieldDesc = "更新时间" }); } private void btnSearch_Click(object sender, EventArgs e) { _pageIndex = 1; var loadfrm = new frmLoading(); loadfrm.Show(); //pageTool.Initialize(LoadSearch, 0, _pageSize); var message = loadfrm.EventCalExec(LoadSearch, this.pageTool.PageIndex, this.pageTool.PageSize); pageTool.DataCount = _totalCount; if (!string.IsNullOrWhiteSpace(message)) { KryptonMessageBox.Show($"查询失败!\r\n{message}", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private int _pageSize; private int _pageIndex; private int _totalCount; private string LoadSearch(int pageIndex, int pageSize) { var result = BalanceServices.balanceSearchService.GetDetailList(new BalanceDetailSearchCondition { OperationUserId = AppConfig.UserLoginResult.UserInfo.UserId, ExpBeginDate = dtpSearchExpBeginDate.GetDateTimeValue(), ExpEndDate = dtpSearchExpEndDate.GetDateTimeValue(), ProductBeginDate = dtpSearchProductBeginDate.GetDateTimeValue(), ProductEndDate = dtpSearchProductEndDate.GetDateTimeValue(), BalanceStatus = _limitBalanceStatus == null ? cmbSearchBalanceStatus.SelectedValue.GetObjectToInt() : _limitBalanceStatus, BatchNo = txtSearchBatchNo.Text, BinInfo = txtSearchBinInfo.Text, MaterielInfo = txtSearchMaterielInfo.Text, MaterielType = cmbSearchMaterielType.SelectedValue.GetObjectToString(), PalletInfo = txtSearchPalletInfo.Text, QualityStatus = cmbSearchQualityStatus.SelectedValue.GetObjectToString(), RegionCode = cmbSearchRegionCode.SelectedValue.GetObjectToString(), SpecsModel = txtSearchSpecsModel.Text, WarehouseInfo = txtSearchWarehouseInfo.Text, PageIndex = pageIndex, PageSize = pageSize, SupplierCode = cmbSearchSupplier.SelectedValue.GetObjectToString(), }); if (result.Status == OperateStatus.Success) { _totalCount = result.Data.TotalCount; _pageIndex = pageIndex; _pageSize = pageSize; if (result.Data.RowData.Any()) { dataGridView.Columns.Clear(); dataGridView.DataSource = result.Data.RowData.ToList(); dataGridView.BuildDataGridView(CommonUtil.GetFieldOrderDic(_clientFieldOrderList)); } else { if (dataGridView.DataSource != null) { dataGridView.DataSource = new List(); } dataGridView.BuildDataGridView(CommonUtil.GetFieldOrderDic(_clientFieldOrderList), false); } return string.Empty; } else { return result.Message; } } private void btnSearchExport_Click(object sender, EventArgs e) { this.dataGridView.DataGridViewExport($"{AppConfig.CurrentMenu.FirstOrDefault().MenuName}列表" + DateTime.Now.ToString("yyyyMMddHH")); } private void kryptonButtonUnbund_Click(object sender, EventArgs e) { if (!_CheckRowIdList.Any()) { KryptonMessageBox.Show($"请选择数据进行操作!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } foreach (DataGridViewRow row in dataGridView.Rows) { if (row.Cells["BALANCE_STATUS"].Value.ToString() == ((int)BalanceStatus.Relieve).ToString()) { KryptonMessageBox.Show($"选中记录已存在状态等于解绑数据,请去除选择重新解绑!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } var selectIndex = dataGridView.CurrentRow.Index; if (selectIndex >= 0) { var data = dataGridView.Rows[selectIndex]; if (KryptonMessageBox.Show($"确认解绑选中的数据吗?", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { var editResult = BalanceServices.balanceOperateService.BalanceStatusChange(new BalanceStatusChangeCondition { OperationUserId = AppConfig.UserLoginResult.UserInfo.UserId, BalanceIds = string.Join(",", _CheckRowIdList), BalanceStatus = BalanceStatus.Relieve, }); if (editResult.Status == OperateStatus.Success) { KryptonMessageBox.Show($"操作成功!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); btnSearch_Click(null, null); } } } } /// /// 选择行主键列表 /// public List _CheckRowIdList = new List(); /// /// 当前页面操作的主键 /// private string _PrimaryKey = "BALANCE_ID"; private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0 && e.ColumnIndex == 0) { if (this.dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value == null) { if (!_CheckRowIdList.Where(s => s == dataGridView.Rows[e.RowIndex].Cells[_PrimaryKey].Value.ToString()).Any()) { _CheckRowIdList.Add(dataGridView.Rows[e.RowIndex].Cells[_PrimaryKey].Value.ToString()); } this.dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = 1; } else if (dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString() == "1") { if (_CheckRowIdList.Where(s => s == dataGridView.Rows[e.RowIndex].Cells[_PrimaryKey].Value.ToString()).Any()) { _CheckRowIdList.Remove(dataGridView.Rows[e.RowIndex].Cells[_PrimaryKey].Value.ToString()); } this.dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = 0; } else { if (!_CheckRowIdList.Where(s => s == dataGridView.Rows[e.RowIndex].Cells[_PrimaryKey].Value.ToString()).Any()) { _CheckRowIdList.Add(dataGridView.Rows[e.RowIndex].Cells[_PrimaryKey].Value.ToString()); } this.dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = 1; } } } private void kryptonButtonConfirm_Click(object sender, EventArgs e) { if (KryptonMessageBox.Show($"确认提交选中的记录至盘库明细中?", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { _alreadyAddIdList = _alreadyAddIdList.Union(_CheckRowIdList).ToList(); DialogResult = DialogResult.Yes; } } private void btnSearchExtend_Click(object sender, EventArgs e) { btnSearch_Click(null, null); } private void frmBalanceDetailSearch_Load(object sender, EventArgs e) { } } }