gyhlw_dotnet/网站项目/VRS/Management/VSAT/FlowManage.aspx.cs

194 lines
7.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Web.UI;
namespace VRS.Management.VSAT
{
public partial class FlowManage : BasePage
{
DataService.BLL.pro_flow bll = new DataService.BLL.pro_flow();
DataService.BLL.admin_log log = new DataService.BLL.admin_log();
DataService.BLL.pro_scene bll_pro_scene = new DataService.BLL.pro_scene();
DataService.BLL.pro_subject bll_pro_subject = new DataService.BLL.pro_subject();
DataService.BLL.pro_subject_proc bll_pro_subject_proc = new DataService.BLL.pro_subject_proc();
protected override void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataLoad();
}
}
protected void DataLoad()
{
//科目id
//RadListBoxSource.Items[0].Index
string Id = Request.Params["Id"];
var query = new StringBuilder(" 1 = 1 ");
if (!string.IsNullOrWhiteSpace(Id.Trim()))
{
var pro_scene = bll_pro_scene.GetModelBySubject(Id);
if (null == pro_scene)
{
RadAjaxManager1.ResponseScripts.Add("alert('场景为空,不能操作!');CloseAndRebind();");
return;
}
query.AppendFormat(" and subject_id = '{0}' ", Id.Trim());
var list_dest = bll.GetModelListByStep(query.ToString());
var list_source = bll_pro_subject_proc.GetModelList(" subject_id='" + Id.Trim() + "' ");
var flow_tips = list_dest.Select(s => s.tip).ToArray();
var flow_score = list_source.Where(s => flow_tips.Contains(s.tip)).Select(s => s.score).DefaultIfEmpty().Sum();
System.Web.UI.HtmlControls.HtmlGenericControl span_name = RadListBoxDestination.Header.FindControl("span_name") as System.Web.UI.HtmlControls.HtmlGenericControl;
if (null != span_name)
{
span_name.InnerHtml = " 总分-" + flow_score + "分";
}
/*
* var json = pro_scene.json_name;
var json_file = Server.MapPath("~/Upload/Scenes/" + json);
var list_source = get_json_flow(json_file, "Procedure");
if (!string.IsNullOrWhiteSpace(Id.Trim()))
{
var list = bll_pro_subject_proc.GetModelList(" subject_id='" + Id.Trim() + "' ");
if (list.Count <= 0)
{
for (var i = 0; i < list_source.Count; i++)
{
var item = list_source[i];
var proc = new DataService.Model.pro_subject_proc();
proc.proc_id = bll_pro_subject_proc.GetNewId();
proc.subject_id = Id.Trim();
proc.name = item.desc;
proc.step = item.step.ToString();
proc.tip = item.tip;
bll_pro_subject_proc.Add(proc);
}
}
}*/
for (var i = list_source.Count - 1; i >= 0; i--)
{
var item = list_source[i];
var exists = list_dest.FirstOrDefault(s => s.tip == item.tip);
if (null != exists)
{
list_source.RemoveAt(i);
}
}
RadListBoxSource.DataSource = list_source;
//RadListBoxSource.DataValueField = "desc";
RadListBoxSource.DataValueField = "name";
RadListBoxSource.DataTextField = "tip";
RadListBoxSource.DataSortField = "step";
RadListBoxSource.DataBind();
RadListBoxDestination.DataSource = list_dest;
RadListBoxDestination.DataValueField = "desc";
RadListBoxDestination.DataTextField = "tip";
RadListBoxDestination.DataSortField = "step";
RadListBoxDestination.DataBind();
}
else
{
OnError(null);
}
}
protected void btnSure_Click(object sender, EventArgs e)
{
string Id = Request.Params["Id"];
var items = RadListBoxDestination.Items;
/*
if (items.Count <= 0)
{
RadAjaxManager1.ResponseScripts.Add("alert('流程不能为空!');");
return;
}
*/
var array = new List<string>();
var name_array = new List<string>();
foreach (var item in items)
{
var obj = item as Telerik.Web.UI.ControlItem;
array.Add(obj.Text);
name_array.Add(obj.Value);
}
var tips = string.Join(",", array);
var names = string.Join(",", name_array);
var model = bll_pro_subject.GetModel(Id);
var flag = bll.DeleteAndBatchAdd(tips, names, Id, model.r1);
if (flag)
{
log.write_log("保存流程成功。" + "科目名称:" + model.subject_name + "科目ID" + Id);
RadAjaxManager1.ResponseScripts.Add("alert('保存成功!');CloseAndRebind();");
}
else
{
RadAjaxManager1.ResponseScripts.Add("alert('保存失败!');");
}
}
public string read_json(string json_file, string key)
{
using (System.IO.StreamReader file = System.IO.File.OpenText(json_file))
{
using (JsonTextReader reader = new JsonTextReader(file))
{
JObject o = (JObject)JToken.ReadFrom(reader);
var value = o[key].ToString();
return value;
}
}
}
public List<DataService.Model.pro_flow> get_json_flow(string json_file, string key)
{
List<DataService.Model.pro_flow> list = new List<DataService.Model.pro_flow>();
using (System.IO.StreamReader file = System.IO.File.OpenText(json_file))
{
using (JsonTextReader reader = new JsonTextReader(file))
{
JObject o = (JObject)JToken.ReadFrom(reader);
var value = o[key].ToString();
JArray array = JArray.Parse(value);
for (int i = 0; i < array.Count; i++)
{
var item = new DataService.Model.pro_flow();
JObject jb = JObject.Parse(array[i].ToString());
item.tip = jb["tip"].ToString();
item.step = int.Parse(jb["step"].ToString());
item.desc = jb["name"].ToString();
list.Add(item);
}
return list;
}
}
}
protected void RadListBoxSource_Transferred(object sender, Telerik.Web.UI.RadListBoxTransferredEventArgs e)
{
RadListBoxSource.DataBind();
RadListBoxDestination.DataBind();
}
protected void RadListBoxDestination_Reordered(object sender, RadListBoxEventArgs e)
{
RadListBoxDestination.DataBind();
}
}
}