年度变更建库软件5.0版本
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

202 lines
8.2 KiB

using KGIS.Framework.Maps;
using KGIS.Framework.Utils;
using KGIS.Framework.Utils.Helper;
using Kingo.Plugin.General.Helper;
using Kingo.PluginServiceInterface;
using Kingo.PluginServiceInterface.Helper;
using Kingo.PluginServiceInterface.Model;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
namespace Kingo.Plugin.DTBJK_XJ.View
{
/// <summary>
/// UCUploadTask.xaml 的交互逻辑
/// </summary>
public partial class UCUploadTask : BaseWindow
{
List<TaskPackage> taskPackages = new List<TaskPackage>();
ProjectInfo projectInfo = null;
public UCUploadTask()
{
InitializeComponent();
this.Height = 520;
this.Width = 1000;
BindData();
}
private void BindData()
{
try
{
projectInfo = MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo;
string taskPath = projectInfo.TaskPath + "\\临时";
if (string.IsNullOrEmpty(taskPath) || !Directory.Exists(taskPath))
{
MessageBox.Show("未检测到任务目录,请先设置任务目录。", "提示信息", MessageBoxButton.OK);
return;
}
if (projectInfo != null && projectInfo.ListTaskPackage != null && projectInfo.ListTaskPackage.Count != 0)
{
taskPackages = projectInfo.ListTaskPackage;
}
else
{
string[] filePaths = Directory.GetDirectories(taskPath);
string fileName = "";
foreach (string filePath in filePaths)
{
fileName = System.IO.Path.GetFileName(filePath);
taskPackages.Add(new TaskPackage() { Ischeck = false, State = "未上传", PackageName = fileName, PackagePath = filePath });
}
}
dgTableMapping.ItemsSource = taskPackages;
}
catch (Exception ex)
{
LogAPI.Debug("任务包数据上传获取包数据失败!" + ex);
}
}
/// <summary>
/// 上传数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnSubmitJKTB_Click(object sender, RoutedEventArgs e)
{
try
{
if (taskPackages == null || taskPackages.Count == 0)
{
MessageHelper.ShowTips("未找到可上传的任务包数据!");
return;
}
IJKTBTask taskHelper = new JKTBTaskHelper();
List<TaskPackage> chooseTaskPackages = taskPackages.FindAll(a => a.Ischeck == true);
if (chooseTaskPackages == null || chooseTaskPackages.Count == 0)
{
MessageHelper.ShowTips("未选中任务包数据!");
return;
}
string ywlx = UserLoginHelper.GetAppsetingValueByKey("JkTaskDBYWLX");
if (string.IsNullOrEmpty(ywlx))
{
MessageHelper.ShowTips("获取业务类型失败!");
LogAPI.Debug("获取业务类型失败!");
return;
}
string userid = UserLoginHelper.GetAppsetingValueByKey("UserId");
if (string.IsNullOrEmpty(userid))
{
MessageHelper.ShowTips("获取用户ID失败!");
LogAPI.Debug("获取用户ID失败!");
return;
}
foreach (TaskPackage item in chooseTaskPackages)
{
var result = taskHelper.SaveJTTBData(item.PackageTempPath, ywlx, userid, out int ZT);
if (result != null && result.Code == 200)
{
LogAPI.Debug(item.PackageName + "数据上报成功," + result.Message);
//MessageBox.Show(result.Message, "提示信息", MessageBoxButton.OK);
//修改包状态 是否上传状态
if (projectInfo != null)
{
if (projectInfo.ListTaskPackage.Contains(item))
{
projectInfo.ListTaskPackage.FirstOrDefault(a => a.PackageName == item.PackageName).State = ZT == 0 ? "已上传" : "部分成功";
}
else
{
item.State = ZT == 0 ? "已上传" : "部分成功";
projectInfo.ListTaskPackage.Add(item);
}
}
else
item.State = ZT == 0 ? "已上传" : "部分成功";
}
else
{
LogAPI.Debug("数据上报失败," + result.Error);
//MessageBox.Show("数据上报失败," + result.Error, "提示信息", MessageBoxButton.OK);
if (projectInfo != null)
{
if (projectInfo.ListTaskPackage.Contains(item))
{
projectInfo.ListTaskPackage.FirstOrDefault(a => a.PackageName == item.PackageName).State = ZT == 2 ? "上传失败" : "未完成";
}
else
{
item.State = ZT == 2 ? "上传失败" : "未完成";
projectInfo.ListTaskPackage.Add(item);
}
}
else
item.State = ZT == 2 ? "上传失败" : "未完成";
}
LogAPI.Debug("任务包" + item.PackageName + ":" + result.Message);
MessageHelper.ShowTips("任务包" + item.PackageName + ":" + result.Message);
}
if (projectInfo != null)
projectInfo.Save();
//刷新页面
dgTableMapping.ItemsSource = null;
dgTableMapping.ItemsSource = taskPackages;
}
catch (Exception ex)
{
LogAPI.Debug("数据上报失败" + ex.Message);
LogAPI.Debug("数据上报失败" + ex.StackTrace);
MessageBox.Show("数据上报失败。", "提示信息", MessageBoxButton.OK);
}
}
private void AllCheckEidt_EditValueChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e)
{
try
{
if (this.dgTableMapping == null || (dgTableMapping.ItemsSource as List<TaskPackage>) == null)
{
return;
}
List<TaskPackage> listTableMapping = dgTableMapping.ItemsSource as List<TaskPackage>;
bool check = (sender as DevExpress.Xpf.Editors.CheckEdit).IsChecked == null ? false : bool.Parse((sender as DevExpress.Xpf.Editors.CheckEdit).IsChecked.Value.ToString());
if (check)
{
listTableMapping.ForEach(a => a.Ischeck = true);
}
else
{
listTableMapping.ForEach(a => a.Ischeck = false);
}
dgTableMapping.RefreshData();
dgTableMapping.ItemsSource = null;
dgTableMapping.ItemsSource = listTableMapping;
}
catch (Exception ex)
{
MessageHelper.ShowTips("全选发生异常:" + ex.Message);
}
}
private void checkBox_Click(object sender, RoutedEventArgs e)
{
TaskPackage tbm = dgTableMapping.SelectedItem as TaskPackage;
if (tbm != null)
{
tbm.Ischeck = (bool)(sender as CheckBox).IsChecked;
}
}
}
}