/// <summary> /// 删除q其他车型参数 /// </summary> /// <param name="deleteType">修改类型:“CTNY”表示修改车型参数对应的油耗数据;“CPOS”表示修改轮胎规格对应的油耗数据</param> protected void DeleteOtherMain(string deleteType) { // 记录修改后的CPOS或者车型参数编号 PorscheUtils porscheUtil = new PorscheUtils(false); try { List <string> mainIdList = new List <string>(); // 冲界面获取修改后的车型参数或者cpos信息 if (deleteType == "LTGG") { mainIdList = porscheUtil.GetMainParamIdFromControl(this.gvLtgg, (DataTable)this.gcLtgg.DataSource, "LTGG_ID"); } else if (deleteType == "LJ") { mainIdList = porscheUtil.GetMainParamIdFromControl(this.gvLj, (DataTable)this.gcLj.DataSource, "LJ_ID"); } else if (deleteType == "ZCZBZL") { mainIdList = porscheUtil.GetMainParamIdFromControl(this.gvZb, (DataTable)this.gcZb.DataSource, "ZCZBZL_ID"); } if (mainIdList.Count < 1) { MessageBox.Show("请选择要删除的数据", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } string delMsg = string.Empty; if (MessageBox.Show("确定要删除吗?", "删除确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK) { delMsg = porscheUtil.DeleteOtherMain(deleteType, mainIdList); if (deleteType == "LTGG") { this.ShowOtherMainData("LTGG"); } else if (deleteType == "LJ") { this.ShowOtherMainData("LJ"); } else if (deleteType == "ZCZBZL") { this.ShowOtherMainData("ZCZBZL"); } } } catch (Exception ex) { MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// 修改车型参数表关联数据 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnUpdateRelData_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { // 获取车型参数编号 string mainIds = string.Empty; PorscheUtils porscheUtils = new PorscheUtils(true); try { List <string> ctnyList = porscheUtils.GetMainIdFromControl(this.gvCtny, (DataTable)this.dgvCtny.DataSource); List <string> fcdsList = porscheUtils.GetMainIdFromControl(this.gvFcds, (DataTable)this.dgvFcds.DataSource); if (ctnyList.Count + fcdsList.Count < 1) { MessageBox.Show("请选择车型参数信息!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } foreach (string ctnyId in ctnyList) { mainIds += string.Format(",'{0}'", ctnyId); } foreach (string fcdsId in fcdsList) { mainIds += string.Format(",'{0}'", fcdsId); } if (!string.IsNullOrEmpty(mainIds)) { mainIds = mainIds.Substring(1); } ReviewUpdateVinForm reviewVinForm = new ReviewUpdateVinForm(mainIds); reviewVinForm.ShowDialog(); } catch (Exception ex) { MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
// 保时捷——导出Excel private void extractDataAndExport() { ProcessForm pf = new ProcessForm(); pf.Show(); //获取显示的车辆型号和日期信息 CafcService.StatisticsData[] dataSource = (CafcService.StatisticsData[]) this.gcStatistic.DataSource; int total = 0; foreach (CafcService.StatisticsData sd in dataSource) { total += sd.Sl; } pf.TotalMax = total; pf.ShowProcessBar(); //根据型号和日期(需要把开始日期和结束日期设为月份的第一天和最后一天)从服务器获取车型详细参数 List <FuelDataService.VehicleBasicInfo> listVB = new List <FuelDataService.VehicleBasicInfo>(); string startTime = this.dtStartTime.Text.Trim(); string endTime = this.dtEndTime.Text.Trim(); int pageCount = 1; while (true) { try { FuelDataService.VehicleBasicInfo[] fuelData = Utils.service.QueryUploadedFuelData(Utils.userId, Utils.password, pageCount, 500, string.Empty, String.Empty, string.Empty, string.Empty, startTime, endTime, "MANUFACTURE_TIME"); if (fuelData != null) { if (fuelData.Length == 0) { break; } listVB.AddRange(fuelData); pageCount++; pf.progressBarControl1.Properties.Step = fuelData.Length; pf.progressBarControl1.PerformStep(); Application.DoEvents(); } else { break; } } catch (WebException ex) { MessageBox.Show("请本地检测网络"); return; } } pf.Close(); //} if (listVB.Count == 0) { return; } //转换成为本地结构 List <VehicleBasicInfo> listConvertedVB = Utils.FuelInfoS2C(listVB.ToArray()); //将信息转化成datatable然后导出到excel当中 DataTable dtOutput = new DataTable(); String[] header = new String[] { "VIN", "CLXH", "TYMC", "RLLX", "EDZK", "ZWPS", "BSQXS", "ZCZBZL", "CLZZRQ", "ZHGKRLXHL", "LJ", "LTGG", "UPDATETIME" }; foreach (String s in header) { dtOutput.Columns.Add(s); } foreach (VehicleBasicInfo vb in listConvertedVB) { DataRow dr = dtOutput.NewRow(); foreach (DataColumn dc in dtOutput.Columns) { String columnName = dc.ColumnName; bool found = false; PropertyInfo[] properties = new VehicleBasicInfo().GetType().GetProperties(); foreach (PropertyInfo pi in properties) { if (pi.Name.Equals(columnName, StringComparison.OrdinalIgnoreCase)) { object result = pi.GetValue(vb, null); if (result is DateTime) { DateTime dt = (DateTime)result; dr[columnName] = dt.ToString("yyyy-MM-dd"); } else { dr[columnName] = pi.GetValue(vb, null); } found = true; break; } } if (!found) { RllxParamEntity[] rllxParams = vb.EntityList; if (rllxParams == null || rllxParams.Length == 0) { continue; } foreach (RllxParamEntity rpe in rllxParams) { if (rpe.Param_Code.Contains(columnName)) { dr[columnName] = rpe.Param_Value; break; } } } } dtOutput.Rows.Add(dr); } PorscheUtils utils = new PorscheUtils(true); utils.ExportExcel(dtOutput, this, PorscheUtils.CLMXExport); }
//保时捷汇总导出线程方法 public void porscheExport() { try { ProcessForm pf = new ProcessForm(); pf.Show(); //获取显示的产品型号和日期信息 CafcService.FuelCAFCDetails[] dataSource = (CafcService.FuelCAFCDetails[]) this.gcDetail.DataSource; int total = 0; foreach (CafcService.FuelCAFCDetails sd in dataSource) { total += sd.Sl_hs; } pf.TotalMax = total; pf.ShowProcessBar(); //根据型号和日期(需要把开始日期和结束日期设为月份的第一天和最后一天)从服务器获取车型详细参数 List <FuelDataService.VehicleBasicInfo> listVB = new List <FuelDataService.VehicleBasicInfo>(); string startTime = this.dtStartTime.Text.Trim(); string endTime = this.dtEndTime.Text.Trim(); int pageCount = 1; while (true) { try { FuelDataService.VehicleBasicInfo[] fuelData = Utils.service.QueryUploadedFuelData(Utils.userId, Utils.password, pageCount, 500, string.Empty, String.Empty, string.Empty, string.Empty, startTime, endTime, "MANUFACTURE_TIME"); if (fuelData != null) { if (fuelData.Length == 0) { break; } listVB.AddRange(fuelData); pageCount++; pf.progressBarControl1.Properties.Step = fuelData.Length; pf.progressBarControl1.PerformStep(); Application.DoEvents(); } else { break; } } catch (WebException ex) { MessageBox.Show("请本地检测网络"); return; } } pf.Close(); if (listVB.Count == 0) { return; } //转换成为本地结构 List <HZDCModule> listHzdc = Utils.VehicleBasicInfoTo <HZDCModule>(listVB.ToArray()); PorscheUtils porscheUtils = new PorscheUtils(true, startTime); List <exportModel> getMBZResult = new List <exportModel>(); //对vin信息进行分组 var vehicleBasicInfoGroupResult = (from t in listHzdc group t by new { t.ClXH, t.TYMC, t.ZHGKRLXHL, t.RLLX, t.ZCZBZL, t.BSQXS, t.ZWPS, t.EDZK } into g select new { g.Key.ClXH, g.Key.BSQXS, g.Key.EDZK, g.Key.RLLX, g.Key.TYMC, g.Key.ZCZBZL, g.Key.ZHGKRLXHL, g.Key.ZWPS, SL = g.Count() }).ToList(); if (Convert.ToDateTime(startTime).Year < 2016) { getMBZResult = (from s in vehicleBasicInfoGroupResult select new exportModel { bsqxs = s.BSQXS, clxh = s.ClXH, edzk = s.EDZK, rllx = s.RLLX, tymc = s.TYMC, zczbzl = Convert.ToInt32(s.ZCZBZL), zhgkrlxhlmbz = Convert.ToDecimal((from t in porscheUtils.dtTargetFuel.AsEnumerable() where (s.BSQXS.Equals("MT") ? "MT" : "OT").Equals(t.Field <string>("BSQXS")) && (Convert.ToInt32(s.ZWPS) < 3 ? "2" : "3").Equals(t.Field <string>("ZWPS")) && Convert.ToDouble(s.ZCZBZL) > t.Field <double>("MIN_ZCZBZL") && Convert.ToDouble(s.ZCZBZL) <= t.Field <double>("MAX_ZCZBZL") select t.Field <string>("TGT_ZHGKRLXHL")).FirstOrDefault()), zhgkrlxhl = Convert.ToDecimal(s.ZHGKRLXHL), zwps = s.ZWPS, sl = s.SL, }).ToList(); } else { getMBZResult = (from s in vehicleBasicInfoGroupResult select new exportModel { bsqxs = s.BSQXS, clxh = s.ClXH, edzk = s.EDZK, rllx = s.RLLX, tymc = s.TYMC, zczbzl = Convert.ToInt32(s.ZCZBZL), zhgkrlxhlmbz = Convert.ToDecimal((from t in porscheUtils.dtTargetFuel.AsEnumerable() where (Convert.ToInt32(s.ZWPS) < 3 ? "2" : "3").Equals(t.Field <string>("ZWPS")) && Convert.ToDouble(s.ZCZBZL) > t.Field <double>("MIN_ZCZBZL") && Convert.ToDouble(s.ZCZBZL) <= t.Field <double>("MAX_ZCZBZL") select t.Field <string>("TGT_ZHGKRLXHL")).FirstOrDefault()), zhgkrlxhl = Convert.ToDecimal(s.ZHGKRLXHL), zwps = s.ZWPS, sl = s.SL, }).ToList(); } var vinGroupResult = (from s in getMBZResult group s by s.clxh into result select new { clxh = result.First().clxh, rdzhgkrlxhl = result.Max(s => s.zhgkrlxhl), rdzhgkrlxhlmbz = result.Min(s => s.zhgkrlxhlmbz) }).ToList(); var allInfoReadyResult = (from s1 in getMBZResult join s2 in vinGroupResult on s1.clxh equals s2.clxh select new { bsqxs = s1.bsqxs.ToString(), clxh = s1.clxh.ToString(), edzk = s1.edzk.ToString(), rllx = s1.rllx.ToString(), tymc = s1.tymc.ToString(), zczbzl = Convert.ToInt16(s1.zczbzl), zhgkrlxhlmbz = Convert.ToDecimal(s1.zhgkrlxhlmbz), zhgkrlxhl = Convert.ToDecimal(s1.zhgkrlxhl), zwps = s1.zwps.ToString(), rdzhgkrlxhl = s2.rdzhgkrlxhl, rdzhgkrlxhlmbz = s2.rdzhgkrlxhlmbz, sl = s1.sl, }).ToList(); //将信息转化成datatable然后导出到excel当中 DataTable dtOutput = new DataTable(); String[] header = new String[] { "CLXH", "TYMC", "SL;int", "ZHGKRLXHL;decimal", "RDZHGKRLXHL;decimal", "SL*ZHGKRLXHL;decimal", "SL*RDZHGKRLXHL;decimal", "RLLX", "ZCZBZL;int", "BSQXS", "ZWPS", "EDZK", "ZHGKRLXHLMBZ;decimal", "RDZHGKRLXHLMBZ;decimal", "SL*ZHGKRLXHLMBZ;decimal", "SL*RDZHGKRLXHLMBZ;decimal" }; foreach (String s in header) { String type = "string", expression = ""; String[] expGroup = s.Split(new String[] { ";" }, StringSplitOptions.RemoveEmptyEntries); if (expGroup.First().Contains("*")) { expression = expGroup.First().Replace("*", " * "); } if (expGroup.Length > 1) { type = expGroup.Last(); } dtOutput.Columns.Add(expGroup.First(), Utils.GetTypeByString(type), expression); } foreach (var vb in allInfoReadyResult) { DataRow dr = dtOutput.NewRow(); foreach (DataColumn dc in dtOutput.Columns) { String columnName = dc.ColumnName; bool found = false; PropertyInfo[] properties = vb.GetType().GetProperties(); foreach (PropertyInfo pi in properties) { if (pi.Name.Equals(columnName, StringComparison.OrdinalIgnoreCase)) { object result = pi.GetValue(vb, null); if (result is DateTime) { DateTime dt = (DateTime)result; dr[columnName] = dt.ToString("yyyy-MM-dd"); } else { dr[columnName] = pi.GetValue(vb, null); } found = true; break; } } } dtOutput.Rows.Add(dr); } if (Convert.ToDateTime(startTime).Year < 2016) { porscheUtils.ExportExcel(dtOutput, this, PorscheUtils.HZBGExport); } else { porscheUtils.ExportExcel(dtOutput, this, PorscheUtils.HZBGExport_New); } } catch (Exception ex) { MessageBox.Show("导出失败:" + ex.Message + "\r\n" + ex.StackTrace, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// 删除车型参数 /// </summary> /// <param name="deleteType">修改类型:“CTNY”表示修改传统能源车型参数对应的油耗数据;“FCDS”表示修改非插电式车型参数对应的油耗数据</param> protected void DeleteMain(string deleteFuel) { // 记录修改后的CPOS或者车型参数编号 string mainIds = string.Empty; PorscheUtils porscheUtil = new PorscheUtils(false); try { List <string> mainIdList = new List <string>(); // 冲界面获取修改后的车型参数或者cpos信息 if (deleteFuel == "CTNY") { mainIdList = porscheUtil.GetMainIdFromControl(this.gvCtny, (DataTable)this.dgvCtny.DataSource); } else if (deleteFuel == "FCDS") { mainIdList = porscheUtil.GetMainIdFromControl(this.gvFcds, (DataTable)this.dgvFcds.DataSource); } else if (deleteFuel == "CDS") { mainIdList = porscheUtil.GetMainIdFromControl(this.gvCds, (DataTable)this.dgvCds.DataSource); } else if (deleteFuel == "CDD") { mainIdList = porscheUtil.GetMainIdFromControl(this.gvCdd, (DataTable)this.gvCdd.DataSource); } else if (deleteFuel == "RLDC") { mainIdList = porscheUtil.GetMainIdFromControl(this.gvRldc, (DataTable)this.gvRldc.DataSource); } if (mainIdList.Count < 1) { MessageBox.Show("请选择要删除的数据", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } foreach (string mainId in mainIdList) { mainIds += string.Format(",'{0}'", mainId); } if (!string.IsNullOrEmpty(mainIds)) { mainIds = mainIds.Substring(1); } string delMsg = string.Empty; if (MessageBox.Show("确定要删除吗?", "删除确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK) { delMsg = porscheUtil.DeleteMain(deleteFuel, mainIds); if (deleteFuel == "CTNY") { this.SearchMainData("CTNY"); } else if (deleteFuel == "FCDS") { this.SearchMainData("FCDS"); } else if (deleteFuel == "CDS") { this.SearchMainData("CDS"); } else if (deleteFuel == "CDD") { this.SearchMainData("CDD"); } else if (deleteFuel == "RLDC") { this.SearchMainData("RLDC"); } } } catch (Exception ex) { MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// 导入VIN /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnImportVin_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { PorscheUtils utils = new PorscheUtils(true); FolderDialog openFolder = new FolderDialog(); try { if (openFolder.DisplayDialog() == DialogResult.OK) { // 获取用户选择的文件夹路径 string folderPath = openFolder.Path.ToString(); // 获取folderPath下以格式为utils.CocFileName的所有文件 List <string> fileNameList = utils.GetFileName(folderPath, utils.VinFileName); if (fileNameList.Count > 0) { string fileNameMsg = string.Empty; string returnMsg = string.Empty; // 获取全部车型参数数据,用作合并VIN数据 bool IsMainDataExist = utils.GetMainData(); bool IsLtggExist = utils.GetOtherMainData("LTGG"); bool IsLjExist = utils.GetOtherMainData("LJ"); bool IsZczbzlExist = utils.GetOtherMainData("ZCZBZL"); StringBuilder sbMsg = new StringBuilder("系统中不存在"); bool flag = false; if (!IsMainDataExist) { flag = true; sbMsg.Append("\r\n \t车型参数数据"); } if (!IsLtggExist) { flag = true; sbMsg.Append("\r\n \t轮胎规格数据"); } if (!IsLjExist) { flag = true; sbMsg.Append("\r\n \t轮距数据"); } if (!IsZczbzlExist) { flag = true; sbMsg.Append("\r\n \t整车整备质量数据"); } if (flag) { MessageBox.Show(sbMsg.ToString(), "Warning", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } // 遍历读所有文件fileNameList foreach (string fileName in fileNameList) { // fileNameMsg += Path.GetFileName(fileName) + "\r\n"; // 导入filename文件信息 returnMsg += utils.ImportVinData(fileName, folderPath); } MessageForm mf = new MessageForm(returnMsg); Utils.SetFormMid(mf); mf.Text = "导入结果"; mf.ShowDialog(); } else { MessageBox.Show("目录" + folderPath + "下没有文件" + utils.VinFileName); } } } catch (Exception ex) { MessageBox.Show("导入失败:" + ex.Message); } }
/// <summary> /// /// </summary> /// <param name="importType"></param> /// <param name="paramName"></param> /// <param name="fileType">文件类别,如轮胎规格文件</param> protected void ImportOtherMainData(string importType, string paramName, string fileType) { string operateType = string.Empty; if (importType == "IMPORT") { operateType = "导入"; } else if (importType == "UPDATE") { operateType = "修改"; } PorscheUtils utils = new PorscheUtils(true); FolderDialog openFolder = new FolderDialog(); //openFolder. try { if (openFolder.DisplayDialog() == DialogResult.OK) { // 获取用户选择的文件夹路径 string folderPath = openFolder.Path.ToString(); // 获取folderPath下以格式为utils.CocFileName的所有文件 List <string> fileNameList = utils.GetFileName(folderPath, utils.GetMainFileName(fileType)); if (fileNameList.Count > 0) { string fileNameMsg = string.Empty; string returnMsg = string.Empty; List <string> mainUpdateList = new List <string>(); // 遍历读所有文件fileNameList foreach (string fileName in fileNameList) { fileNameMsg += Path.GetFileName(fileName) + "\r\n"; // 导入filename文件信息 returnMsg += utils.ImportOtherMainData(fileName, folderPath, paramName, importType, mainUpdateList); } if (string.IsNullOrEmpty(returnMsg)) { MessageForm mf = new MessageForm("以下文件" + operateType + "成功:\r\n" + fileNameMsg); Utils.SetFormMid(mf); mf.Text = operateType + "成功"; mf.ShowDialog(); } else { MessageForm mf = new MessageForm(returnMsg); Utils.SetFormMid(mf); mf.Text = operateType + "结果"; mf.ShowDialog(); } if (importType == "IMPORT") { switch (paramName) { case "LTGG": this.ShowOtherMainData("LTGG"); break; case "LJ": this.ShowOtherMainData("LJ"); break; case "ZCZBZL": this.ShowOtherMainData("ZCZBZL"); break; default: break; } } else if (importType == "UPDATE") { this.ShowUpdatedMainData(mainUpdateList); } } else { MessageBox.Show("目录" + folderPath + "下没有文件" + utils.MainFileName); } } } catch (Exception ex) { MessageBox.Show(operateType + "失败:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public ImportForm() { InitializeComponent(); pu = new PorscheUtils(true); }
/// <summary> /// 生成燃料消耗量数据 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void barBtnGenerate_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { string message = string.Empty; PorscheUtils porscheUtils = new PorscheUtils(false); try { DataSet dsVin = porscheUtils.GetImportedVinData(""); if (dsVin.Tables[0].Rows.Count > 0) { // 获取全部车型参数数据,用作合并VIN数据 bool IsMainDataExist = porscheUtils.GetMainData(); bool IsLtggExist = porscheUtils.GetOtherMainData("LTGG"); bool IsLjExist = porscheUtils.GetOtherMainData("LJ"); bool IsZczbzlExist = porscheUtils.GetOtherMainData("ZCZBZL"); StringBuilder sbMsg = new StringBuilder("系统中不存在"); bool flag = false; if (!IsMainDataExist) { flag = true; sbMsg.Append("\r\n \t车型参数数据"); } if (!IsLtggExist) { flag = true; sbMsg.Append("\r\n \t轮胎规格数据"); } if (!IsLjExist) { flag = true; sbMsg.Append("\r\n \t轮距数据"); } if (!IsZczbzlExist) { flag = true; sbMsg.Append("\r\n \t整车整备质量数据"); } if (flag) { MessageBox.Show(sbMsg.ToString(), "Warning", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } message = porscheUtils.SaveVinInfo(dsVin); } else { MessageBox.Show("系统中不存在VIN数据"); return; } } catch (Exception ex) { message += ex.Message; } MessageForm mf = new MessageForm(message); Utils.SetFormMid(mf); mf.Text = "生成结果"; mf.ShowDialog(); }