123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433 |
- using ComponentFactory.Krypton.Navigator;
- using ComponentFactory.Krypton.Toolkit;
- using ComponentFactory.Krypton.Workspace;
- using NXWMS.Client.Code.Excel;
- using NXWMS.Client.Code.Extends;
- using NXWMS.Client.Code.Serialize;
- using NXWMS.Client.Model.AppModels.Condition.Common;
- using NXWMS.Client.Model.AppModels.Condition.Rule;
- using NXWMS.Client.Model.AppModels.Result;
- using NXWMS.Client.Model.AppModels.Result.Common;
- using NXWMS.Client.Model.AppModels.Result.Rule;
- 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.IO;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using System.Threading;
- namespace NXWMS.Forms.Rule
- {
- public partial class frmTempImportData : Form
- {
- private string _TemplateCode;
- private string _BatchNo;
- private int _selectIndex;
- private int _selectId;
- private string _selectNo;
- private int _pageSize;
- private int _pageIndex;
- private int _totalCount;
- private bool _IsCheck;
- /// <summary>
- /// 模版列表
- /// </summary>
- private List<ClientFieldOrderResult> _clientFieldOrderTemplateList;
- /// <summary>
- /// 临时数据列表
- /// </summary>
- private List<ClientFieldOrderResult> _clientFieldOrderBatchList;
- /// <summary>
- /// 导入数据列表
- /// </summary>
- private List<ClientFieldOrderResult> _clientFieldOrderDataList;
- /// <summary>
- /// 导入模版选择列表
- /// </summary>
- private List<ImportTemplateResult> _importTemplateSelectList;
- /// <summary>
- /// 导入模版列表
- /// </summary>
- private List<ImportTemplateDetailResult> _importTemplateList;
- /// <summary>
- /// 界面功能类型
- /// </summary>
- public EnumFunctionType _FunctionType;
- /// <summary>
- /// 功能类型
- /// </summary>
- public enum EnumFunctionType
- {
- Import,
- Search,
- }
- public frmTempImportData(string templateCode = "", string batchNo = "")
- {
- InitializeComponent();
- _TemplateCode = templateCode;
- _BatchNo = batchNo;
- InitData();
- InitControl();
- }
- /// <summary>
- /// 控件初始化
- /// </summary>
- private void InitControl()
- {
- CheckForIllegalCrossThreadCalls = false;
- dataGridViewBatch.BuildDataGridView(CommonUtil.GetFieldOrderDic(_clientFieldOrderBatchList), false);
- dataGridViewFile.BuildDataGridView(CommonUtil.GetFieldOrderDic(_clientFieldOrderDataList), false, false);
- dataGridViewTemplate.BuildDataGridView(CommonUtil.GetFieldOrderDic(_clientFieldOrderTemplateList), false, false);
- this.SetFormSizeLocation();
- //功能类型
- switch (_FunctionType)
- {
- case EnumFunctionType.Import:
- txtSearchBatchNo.Text = _BatchNo;
- cmbSearchImport.SelectedValue = _TemplateCode;
- cmbSearchImport.Enabled = false;
- cmbSearchStatus.SelectedValue = (int)TempImportStatus.Init;
- txtSearchBatchNo.Text = _TemplateCode.ToUpper().Replace("FRM", "").First()
- + DateTime.Now.ToString("yyyyMMDDHHmmss");
- var loadfrm = new frmLoading();
- loadfrm.Show();
- var message = loadfrm.EventCalExec(LoadSearchTemplate, _pageIndex, _pageSize);
- if (!string.IsNullOrWhiteSpace(message))
- {
- KryptonMessageBox.Show($"查询失败!\r\n{message}", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- break;
- case EnumFunctionType.Search:
- break;
- }
- _pageIndex = 1;
- _pageSize = 20;
- }
- /// <summary>
- /// 数据初始化
- /// </summary>
- private void InitData()
- {
- //批次组
- _clientFieldOrderBatchList = new List<ClientFieldOrderResult>();
- _clientFieldOrderBatchList.Add(new ClientFieldOrderResult { FieldName = "BATCH_NO", FieldDesc = "批次单号" });
- _clientFieldOrderBatchList.Add(new ClientFieldOrderResult { FieldName = "IMPORT_DATA_NUMBER", FieldDesc = "导入行数" });
- _clientFieldOrderBatchList.Add(new ClientFieldOrderResult { FieldName = "ImportStatusName", FieldDesc = "导入状态" });
- _clientFieldOrderBatchList.Add(new ClientFieldOrderResult { FieldName = "LAST_CHECK_TIME", FieldDesc = "最后检查时间" });
- _clientFieldOrderBatchList.Add(new ClientFieldOrderResult { FieldName = "LAST_CHECK_MESSAGE", FieldDesc = "最后检查消息" });
- _clientFieldOrderBatchList.Add(new ClientFieldOrderResult { FieldName = "LAST_IMPORT_TIME", FieldDesc = "最后导入时间" });
- _clientFieldOrderBatchList.Add(new ClientFieldOrderResult { FieldName = "LAST_IMPORT_MESSAGE", FieldDesc = "最后导入消息" });
- _clientFieldOrderBatchList.Add(new ClientFieldOrderResult { FieldName = "ImportTemplateCode", FieldDesc = "导入模版编码" });
- _clientFieldOrderBatchList.Add(new ClientFieldOrderResult { FieldName = "ImportTemplateName", FieldDesc = "导入模版名称" });
- _clientFieldOrderBatchList.Add(new ClientFieldOrderResult { FieldName = "ImportModeName", FieldDesc = "导入方式" });
- _clientFieldOrderBatchList.Add(new ClientFieldOrderResult { FieldName = "TargetObjectTypeName", FieldDesc = "目标对象编码" });
- _clientFieldOrderBatchList.Add(new ClientFieldOrderResult { FieldName = "TargetObjectCode", FieldDesc = "目标对象名称" });
- _clientFieldOrderBatchList.Add(new ClientFieldOrderResult { FieldName = "TargetObjectName", FieldDesc = "目标对象类型" });
- _clientFieldOrderBatchList.Add(new ClientFieldOrderResult { FieldName = "IMPORT_DATA_JSON", FieldDesc = "导入数据JSON" });
- _clientFieldOrderBatchList.Add(new ClientFieldOrderResult { FieldName = "DESCRIBE", FieldDesc = "描述" });
- _clientFieldOrderBatchList.Add(new ClientFieldOrderResult { FieldName = "CreateName", FieldDesc = "创建人" });
- _clientFieldOrderBatchList.Add(new ClientFieldOrderResult { FieldName = "CREATE_TIME", FieldDesc = "创建时间" });
- _clientFieldOrderBatchList.Add(new ClientFieldOrderResult { FieldName = "UpdateName", FieldDesc = "更新人" });
- _clientFieldOrderBatchList.Add(new ClientFieldOrderResult { FieldName = "UPDATE_TIME", FieldDesc = "更新时间" });
- //Excel数据
- _clientFieldOrderDataList = new List<ClientFieldOrderResult>();
- _clientFieldOrderDataList.Add(new ClientFieldOrderResult { FieldName = "Data", FieldDesc = "Excel数据" });
- //模版数据
- _clientFieldOrderTemplateList = new List<ClientFieldOrderResult>();
- _clientFieldOrderTemplateList.Add(new ClientFieldOrderResult { FieldName = "IMPORT_TEMPLATE_CODE", FieldDesc = "导入模版编号" });
- _clientFieldOrderTemplateList.Add(new ClientFieldOrderResult { FieldName = "IMPORT_TEMPLATE_NAME", FieldDesc = "导入模版名称" });
- _clientFieldOrderTemplateList.Add(new ClientFieldOrderResult { FieldName = "ImportModeName", FieldDesc = "导入方式" });
- _clientFieldOrderTemplateList.Add(new ClientFieldOrderResult { FieldName = "TARGET_OBJECT_CODE", FieldDesc = "源对象编码" });
- _clientFieldOrderTemplateList.Add(new ClientFieldOrderResult { FieldName = "TARGET_OBJECT_NAME", FieldDesc = "源对象名称" });
- _clientFieldOrderTemplateList.Add(new ClientFieldOrderResult { FieldName = "TargetObjectType", FieldDesc = "源对象类型" });
- _clientFieldOrderTemplateList.Add(new ClientFieldOrderResult { FieldName = "SOURCE_CODE", FieldDesc = "源结构编码" });
- _clientFieldOrderTemplateList.Add(new ClientFieldOrderResult { FieldName = "SOURCE_NAME", FieldDesc = "源结构名称" });
- _clientFieldOrderTemplateList.Add(new ClientFieldOrderResult { FieldName = "SourceTypeName", FieldDesc = "源结构类型" });
- _clientFieldOrderTemplateList.Add(new ClientFieldOrderResult { FieldName = "SourceLength", FieldDesc = "源结构长度" });
- _clientFieldOrderTemplateList.Add(new ClientFieldOrderResult { FieldName = "SourceRequiredFlagName", FieldDesc = "源结构必填标识" });
- _clientFieldOrderTemplateList.Add(new ClientFieldOrderResult { FieldName = "TARGET_CODE", FieldDesc = "目标结构编码" });
- _clientFieldOrderTemplateList.Add(new ClientFieldOrderResult { FieldName = "TARGET_NAME", FieldDesc = "目标结构名称" });
- _clientFieldOrderTemplateList.Add(new ClientFieldOrderResult { FieldName = "TargetTypeName", FieldDesc = "目标结构类型" });
- _clientFieldOrderTemplateList.Add(new ClientFieldOrderResult { FieldName = "TargetLength", FieldDesc = "目标结构长度" });
- _clientFieldOrderTemplateList.Add(new ClientFieldOrderResult { FieldName = "TargetRequiredFlagName", FieldDesc = "目标结构必填标识" });
- _clientFieldOrderTemplateList.Add(new ClientFieldOrderResult { FieldName = "TargetRelationTypeName", FieldDesc = "目标关联类型编码" });
- _clientFieldOrderTemplateList.Add(new ClientFieldOrderResult { FieldName = "TargetRelationContent", FieldDesc = "目标关联类型内容" });
- var importTemplateResult = RuleServices.importTemplateService.GetList(new ImportTemplateSearchCondition { IsUsed = true, ItemSQL = "IMPORT_TEMPLATE_CODE,IMPORT_TEMPLATE_NAME" });
- if (importTemplateResult.Status == OperateStatus.Success)
- {
- _importTemplateSelectList = importTemplateResult.Data.RowData.ToList();
- }
- var fieldList = new List<FieldValue>().Add<FieldValue>(new FieldValue { Code = "", Name = "全部" });
- cmbSearchImport.DataSource = fieldList.GetFieldValueIdList(_importTemplateSelectList, "IMPORT_TEMPLATE_CODE", "IMPORT_TEMPLATE_NAME");
- cmbSearchImport.DisplayMember = "Name";
- cmbSearchImport.ValueMember = "Id";
- cmbSearchImport.SelectedIndex = -1;
- fieldList = new List<FieldValue>().Add<FieldValue>(new FieldValue { Id = "", Name = "全部" });
- cmbSearchStatus.DataSource = new List<FieldValue>().GetFieldValueIdList<TempImportStatus>();
- cmbSearchStatus.DisplayMember = "Name";
- cmbSearchStatus.ValueMember = "Id";
- cmbSearchStatus.SelectedIndex = -1;
- }
- private void btnSelect_Click(object sender, EventArgs e)
- {
- OpenFileDialog openFileDialog = new OpenFileDialog();
- openFileDialog.Filter = "Files|*.xls;*.xlsx";
- openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
- if (openFileDialog.ShowDialog() == DialogResult.OK)
- {
- var filePath = openFileDialog.FileName;
- var loadfrm = new frmLoading();
- loadfrm._message = "正在加载文件数据,请耐心等待......";
- loadfrm.Show();
- Thread.Sleep(500);
- Application.DoEvents();
- var message = loadfrm.EventCalExec(LoadFileData, dataGridViewFile, filePath);
- if (!string.IsNullOrWhiteSpace(message))
- {
- KryptonMessageBox.Show($"加载失败!\r\n{message}", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- txtFilePath.Text = filePath;
- dataGridViewFile.Columns.Add("$INFO", "执行结果");
- dataGridViewFile.Columns["$INFO"].ReadOnly = true;
- dataGridViewFile.Columns["$INFO"].DisplayIndex = 0;
- navigatorTool.SelectedPage = pagImportFile;
- }
- }
- /// <summary>
- /// 加载文件数据
- /// </summary>
- /// <param name="dataGridView"></param>
- /// <param name="filePath"></param>
- /// <returns></returns>
- private string LoadFileData(DataGridView dataGridView, string filePath)
- {
- dataGridView.Columns.Clear();
- dataGridView.DataSource = SDExcelHelper.GetDataTable(filePath);
- return string.Empty;
- }
- private void btnSearch_Click(object sender, EventArgs e)
- {
- _pageIndex = 1;
- var loadfrm = new frmLoading();
- loadfrm.Show();
-
- var message = loadfrm.EventCalExec(LoadSearchBatch, this.pageTool.PageIndex, this.pageTool.PageSize);
-
- pageTool.DataCount = _totalCount;
- if (!string.IsNullOrWhiteSpace(message))
- {
- KryptonMessageBox.Show($"查询失败!\r\n{message}", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- }
- private string LoadSearchBatch(int pageIndex, int pageSize)
- {
- var result = TempServices.tempImportService.GetList(new TempImportSearchCondition
- {
- OperationUserId = AppConfig.UserLoginResult.UserInfo.UserId,
- BatchNo = txtSearchBatchNo.Text,
- ImportStatus = cmbSearchImport.SelectedValue.GetObjectToInt(),
- PageIndex = pageIndex,
- PageSize = pageSize
- });
- if (result.Status == OperateStatus.Success)
- {
- _totalCount = result.Data.TotalCount;
- _pageIndex = pageIndex;
- _pageSize = pageSize;
- if (result.Data.RowData.Any())
- {
- dataGridViewBatch.Columns.Clear();
- dataGridViewBatch.DataSource = result.Data.RowData.ToList();
- dataGridViewBatch.BuildDataGridView(CommonUtil.GetFieldOrderDic(_clientFieldOrderBatchList));
- }
- else
- {
- if (dataGridViewBatch.DataSource != null)
- {
- dataGridViewBatch.DataSource = new List<TempImportResult>();
- }
- dataGridViewBatch.BuildDataGridView(CommonUtil.GetFieldOrderDic(_clientFieldOrderBatchList), false);
- }
- return string.Empty;
- }
- else
- {
- return result.Message;
- }
- }
- private string LoadSearchTemplate(int pageIndex, int pageSize)
- {
- var result = RuleServices.importTemplateService.GetDetailList(new ImportTemplateDetailSearchCondition { IsUsed = true, TemplateCode = _TemplateCode });
- if (result.Status == OperateStatus.Success)
- {
- _importTemplateList = result.Data.ToList();
- if (result.Data.Any())
- {
- dataGridViewTemplate.Columns.Clear();
- dataGridViewTemplate.DataSource = result.Data;
- dataGridViewTemplate.BuildDataGridView(CommonUtil.GetFieldOrderDic(_clientFieldOrderTemplateList));
- }
- else
- {
- if (dataGridViewTemplate.DataSource != null)
- {
- dataGridViewTemplate.DataSource = new List<ImportTemplateResult>();
- }
- dataGridViewTemplate.BuildDataGridView(CommonUtil.GetFieldOrderDic(_clientFieldOrderTemplateList), false);
- }
- navigatorTool.SelectedPage = pagTemplate;
- return string.Empty;
- }
- else
- {
- return result.Message;
- }
- }
- private void btnCheck_Click(object sender, EventArgs e)
- {
- if (dataGridViewFile.Rows.Count > 0)
- {
- txtSearchBatchNo.Enabled = false;
- var data = (DataTable)dataGridViewFile.DataSource;
- int index = 0;
- foreach (DataRow dr in data.Rows)
- {
- DataRow[] dataTemp = { dr };
- var detail = new TempImportDetailCondition
- {
- DataJson = dataTemp.CopyToDataTable(),
- BatchNo = txtSearchBatchNo.Text,
- ImportTemplateId = _importTemplateList.FirstOrDefault().IMPORT_TEMPLATE_ID,
- TempImportExecType = TempImportExecType.Check,
- };
- //添入临时表
- var addResult = TempServices.tempImportService.Add(new TempImportCondition
- {
- OperationUserId = AppConfig.UserLoginResult.UserInfo.UserId,
- DetailList = new List<TempImportDetailCondition>().Add<TempImportDetailCondition>(detail),
- });
- if (addResult.Status == OperateStatus.Success)
- {
- dataGridViewFile.Rows[index].Cells["$INFO"].Value = "导入成功!开始执行检查...";
- //检查数据
- var checkResult = TempServices.tempImportService.Exec(new TempImportExecCondition
- {
- OperationUserId = AppConfig.UserLoginResult.UserInfo.UserId,
- BatchNo = txtSearchBatchNo.Text,
- TempImportExecType = TempImportExecType.Check,
- });
- Application.DoEvents();
- //检查成功
- if (checkResult.Status == OperateStatus.Success)
- {
- dataGridViewFile.Rows[index].Cells["$INFO"].Value = "检查成功!可进行导入!";
- dataGridViewFile.Rows[index].Cells["$INFO"].Style.ForeColor = Color.Green;
- }
- else
- {
- dataGridViewFile.Rows[index].Cells["$INFO"].Value = "检查失败!" + checkResult.Message;
- dataGridViewFile.Rows[index].Cells["$INFO"].Style.ForeColor = Color.Red;
- }
- }
- else
- {
- dataGridViewFile.Rows[index].Cells["$INFO"].Value = "出现位置错误!"+addResult.Message;
- dataGridViewFile.Rows[index].Cells["$INFO"].Style.ForeColor = Color.Violet;
- }
- index++;
- }
- _IsCheck = true;
- }
- else
- {
- _IsCheck = false;
- KryptonMessageBox.Show($"请选择导入文件!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- }
- private void btnImport_Click(object sender, EventArgs e)
- {
- if (!_IsCheck)
- {
- KryptonMessageBox.Show($"请先执行检查数据!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- if (dataGridViewFile.Rows.Count > 0)
- {
- //导入
- var checkResult = TempServices.tempImportService.Exec(new TempImportExecCondition
- {
- OperationUserId = AppConfig.UserLoginResult.UserInfo.UserId,
- BatchNo = txtSearchBatchNo.Text,
- TempImportExecType = TempImportExecType.Import,
- });
- Application.DoEvents();
- int index = 0;
- //检查成功
- if (checkResult.Status == OperateStatus.Success)
- {
- foreach(DataRow item in dataGridViewFile.Rows)
- {
- dataGridViewFile.Rows[index].Cells["$INFO"].Value = "导入成功!";
- dataGridViewFile.Rows[index].Cells["$INFO"].Style.ForeColor = Color.Green;
- }
- }
- else
- {
- dataGridViewFile.Rows[index].Cells["$INFO"].Value = "导入失败!" + checkResult.Message;
- dataGridViewFile.Rows[index].Cells["$INFO"].Style.ForeColor = Color.Red;
- }
- index++;
- _IsCheck = false;
- txtSearchBatchNo.Enabled = true;
- txtSearchBatchNo.Text = "";
- txtFilePath.Text = "";
- dataGridViewFile.DataSource = new DataTable();
- }
- else
- {
- KryptonMessageBox.Show($"请选择导入文件!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- }
- }
- }
|