更改gooflow的导出数据格式,方便后端读取

This commit is contained in:
yubaolee
2018-03-20 17:40:50 +08:00
parent 37789838fa
commit 1a880c0daf
9 changed files with 76 additions and 362 deletions

View File

@@ -1,64 +0,0 @@
using System.Collections.Generic;
namespace OpenAuth.App.Extention
{
public interface IWF_Runtime
{
#region API
/// <summary>
/// 工作流实例运行信息
/// </summary>
/// <returns></returns>
WF_RuntimeModel runtimeModel{get;}
/// <summary>
/// 获取实例接下来运行的状态
/// </summary>
/// <returns>-1无法运行,0会签开始,1会签结束,2一般节点,4流程运行结束</returns>
int GetStatus();
/// <summary>
/// 获取节点类型 0会签开始,1会签结束,2一般节点,开始节点,4流程运行结束
/// </summary>
/// <param name="nodeId"></param>
/// <returns></returns>
int GetNodeStatus(string nodeId);
/// <summary>
/// 获取会签下面需要审核的ID列表
/// </summary>
/// <param name="shuntnodeId"></param>
/// <returns></returns>
List<string> GetCountersigningNodeIdList(string shuntnodeId);
/// <summary>
/// 通过节点Id获取下一个节点Id
/// </summary>
/// <param name="nodeId"></param>
/// <returns></returns>
string GetNextNodeByNodeId(string nodeId);
/// <summary>
/// 节点会签审核
/// </summary>
/// <param name="nodeId"></param>
/// <param name="flag"></param>
/// <returns>-1不通过,1等待,其它通过</returns>
string NodeConfluence(string nodeId, bool flag,string userId, string description = "");
/// <summary>
/// 驳回节点0"前一步"1"第一步"2"某一步" 3"不处理"
/// </summary>
/// <returns></returns>
string RejectNode();
/// <summary>
/// 驳回节点0"前一步"1"第一步"2"某一步" 3"不处理"
/// </summary>
/// <param name="nodeId"></param>
/// <returns></returns>
string RejectNode(string nodeId);
/// <summary>
/// 标记节点1通过-1不通过0驳回
/// </summary>
/// <param name="nodeId"></param>
/// <param name="flag"></param>
/// <param name="userId"></param>
/// <param name="description"></param>
void MakeTagNode(string nodeId, int flag,string userId, string description = "");
#endregion
}
}

View File

@@ -5,7 +5,7 @@ using Infrastructure;
namespace OpenAuth.App.Extention
{
public class WF_Runtime : IWF_Runtime
public class WF_Runtime
{
private WF_RuntimeModel _runtimeModel = null;

View File

@@ -182,100 +182,6 @@ namespace OpenAuth.App
}
}
/// <summary>
/// ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><C9BE><EFBFBD>ݸ<EFBFBD>ʹ<EFBFBD><CAB9>)
/// </summary>
/// <param name="keyValue"><3E><><EFBFBD><EFBFBD></param>
/// <returns></returns>
public int DeleteProcess(string keyValue)
{
try
{
FlowInstance entity = UnitWork.FindSingle<FlowInstance>(u =>u.Id ==keyValue);
UnitWork.Delete<FlowInstance>(u =>u.Id == keyValue);
UnitWork.Save();
return 1;
}
catch {
throw;
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>
/// </summary>
/// <param name="keyValue"></param>
/// <param name="state">0<><30>ͣ,1<><31><EFBFBD><EFBFBD>,2ȡ<32><C8A1><EFBFBD><EFBFBD><EFBFBD>ٻأ<D9BB></param>
/// <returns></returns>
public int OperateVirtualProcess(string keyValue,int state)
{
try
{
FlowInstance entity = UnitWork.FindSingle<FlowInstance>(u =>u.Id ==keyValue);
if (entity.IsFinish == 1)
{
throw new Exception(<><CAB5><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>");
}
else if (entity.IsFinish == 2)
{
throw new Exception(<><CAB5><EFBFBD>Ѿ<EFBFBD>ȡ<EFBFBD><C8A1>,<2C><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>");
}
/// <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>(0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,1<><31><EFBFBD>н<EFBFBD><D0BD><EFBFBD>,2<><32><EFBFBD>ٻ<EFBFBD>,3<><33>ͬ<EFBFBD><CDAC>,4<><34>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
string content = "";
switch (state)
{
case 0:
if (entity.Disabled == 0)
{
return 1;
}
entity.Disabled = 0;
content = "<22><><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD><CCBD>̡<EFBFBD>" + entity.Code + "/" + entity.CustomName + "<22><>";
break;
case 1:
if (entity.Disabled == 1)
{
return 1;
}
entity.Disabled = 1;
content = "<22><><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD><C3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD><CCBD>̡<EFBFBD>" + entity.Code + "/" + entity.CustomName + "<22><>";
break;
case 2:
entity.IsFinish = 2;
content = "<22><><EFBFBD>ٻء<D9BB><D8A1>ٻ<EFBFBD><D9BB><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD><CCBD>̡<EFBFBD>" + entity.Code + "/" + entity.CustomName + "<22><>";
break;
}
UnitWork.Update(entity);
FlowInstanceOperationHistory processOperationHistoryEntity = new FlowInstanceOperationHistory();
processOperationHistoryEntity.InstanceId = entity.Id;
processOperationHistoryEntity.Content = content;
UnitWork.Add(processOperationHistoryEntity);
UnitWork.Save();
return 1;
}
catch
{
throw;
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
/// </summary>
/// <param name="processId"></param>
/// <param name="makeLists"></param>
public void DesignateProcess(string processId, string makeLists)
{
try
{
FlowInstance entity = new FlowInstance();
entity.Id = processId;
entity.MakerList = makeLists;
UnitWork.Update(entity);
}
catch {
throw;
}
}
#endregion
@@ -306,7 +212,7 @@ namespace OpenAuth.App
frmData = frmData,
processId = processId
};
IWF_Runtime wfruntime = null;
WF_Runtime wfruntime = null;
if (frmData == null)
{
@@ -390,7 +296,7 @@ namespace OpenAuth.App
previousId = FlowInstance.PreviousId,
processId = processId
};
IWF_Runtime wfruntime = new WF_Runtime(wfRuntimeInitModel);
WF_Runtime wfruntime = new WF_Runtime(wfRuntimeInitModel);
#region <EFBFBD><EFBFBD>ǩ
@@ -560,7 +466,7 @@ namespace OpenAuth.App
previousId = FlowInstance.PreviousId,
processId = processId
};
IWF_Runtime wfruntime = new WF_Runtime(wfRuntimeInitModel);
WF_Runtime wfruntime = new WF_Runtime(wfRuntimeInitModel);
string resnode = "";
@@ -608,138 +514,6 @@ namespace OpenAuth.App
throw;
}
}
/// <summary>
/// <20>ٻ<EFBFBD><D9BB><EFBFBD><EFBFBD>̽<EFBFBD><CCBD><EFBFBD>
/// </summary>
/// <param name="processId"></param>
public void CallingBackProcess(string processId)
{
try
{
OperateVirtualProcess(processId, 2);
}
catch
{
throw;
}
}
/// <summary>
/// <20><>ֹһ<D6B9><D2BB>ʵ<EFBFBD><CAB5>(<28><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>)
/// </summary>
/// <param name="processId"></param>
/// <returns></returns>
public void KillProcess(string processId)
{
try
{
UnitWork.Delete<FlowInstance>(u => u.Id == processId);
}
catch
{
throw;
}
}
/// <summary>
/// <20><>ȡij<C8A1><C4B3><EFBFBD>ڵ㣨<DAB5><E3A3A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD><DCBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1BDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD>ޣ<EFBFBD>
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public string GetProcessSchemeContentByNodeId(string data, string nodeId)
{
try
{
List<dynamic> list = new List<dynamic>();
dynamic schemeContentJson = data.ToJson();//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>json<6F><6E><EFBFBD><EFBFBD>;
string schemeContent1 = schemeContentJson.SchemeContent.Value;
dynamic schemeContentJson1 = schemeContent1.ToJson();
string FrmContent = schemeContentJson1.Frm.FrmContent.Value;
dynamic FrmContentJson = FrmContent.ToJson();
foreach (var item in schemeContentJson1.Flow.nodes)
{
if (item.id.Value == nodeId && item.setInfo != null)
{
foreach (var item1 in item.setInfo.frmPermissionInfo)
{
foreach (var item2 in FrmContentJson)
{
if (item2.control_field.Value == item1.fieldid.Value)
{
if (item1.look.Value == true)
{
if (item1.down != null)
{
item2.down = item1.down.Value;
}
list.Add(item2);
}
break;
}
}
}
break;
}
}
schemeContentJson1.Frm.FrmContent = list.ToJson().ToString();
schemeContentJson.SchemeContent = schemeContentJson1.ToString();
return schemeContentJson.ToString();
}
catch
{
throw;
}
}
/// <summary>
/// <20><>ȡij<C8A1><C4B3><EFBFBD>ڵ㣨<DAB5><E3A3A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD><DCBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1BDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD>ޣ<EFBFBD>
/// </summary>
/// <param name="data"></param>
/// <param name="userId"></param>
/// <returns></returns>
public string GetProcessSchemeContentByUserId(string data, string userId)
{
try
{
List<dynamic> list = new List<dynamic>();
dynamic schemeContentJson = data.ToJson();//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>json<6F><6E><EFBFBD><EFBFBD>;
string schemeContent1 = schemeContentJson.SchemeContent.Value;
dynamic schemeContentJson1 = schemeContent1.ToJson();
string FrmContent = schemeContentJson1.Frm.FrmContent.Value;
dynamic FrmContentJson = FrmContent.ToJson();
foreach (var item in schemeContentJson1.Flow.nodes)
{
if (item.setInfo != null && item.setInfo.UserId != null && item.setInfo.UserId.Value == userId)
{
foreach (var item1 in item.setInfo.frmPermissionInfo)
{
foreach (var item2 in FrmContentJson)
{
if (item2.control_field.Value == item1.fieldid.Value)
{
if (item1.look.Value == true)
{
if (item1.down != null)
{
item2.down = item1.down.Value;
}
list.Add(item2);
}
break;
}
}
}
break;
}
}
schemeContentJson1.Frm.FrmContent = list.ToJson().ToString();
schemeContentJson.SchemeContent = schemeContentJson1.ToString();
return schemeContentJson.ToString();
}
catch
{
throw;
}
}
#endregion
/// <summary>
@@ -747,7 +521,7 @@ namespace OpenAuth.App
/// </summary>
/// <param name="wfruntime"></param>
/// <returns></returns>
private string GetMakerList(IWF_Runtime wfruntime)
private string GetMakerList(WF_Runtime wfruntime)
{
try
{
@@ -912,11 +686,6 @@ namespace OpenAuth.App
}
public FlowInstance GetProcessInstanceEntity(string keyValue)
{
return UnitWork.FindSingle<FlowInstance>(u => u.Id == keyValue);
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// <para><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2017-01-20 15:44:45</para>
@@ -955,9 +724,9 @@ namespace OpenAuth.App
}
public void Add(FlowInstance flowScheme)
public void Add(FlowInstance instance)
{
Repository.Add(flowScheme);
Repository.Add(instance);
}
public void Update(FlowInstance flowScheme)

View File

@@ -13,22 +13,15 @@ namespace OpenAuth.App
* view
*/
private static string temp_view = "<div style=\"{0}\"/>{1}</div>";
/**
*
* 功能: html
*/
public static string GetHtml(Form form, string action){
//action=action!=null && !""==(action)?action:"view";
var tableData =new Dictionary<string, Object>();//表单数据
string html = form.ContentParse;
foreach (var json in form.ContentData.ToList<JObject>())
{
public static string GetHtml(string contentData, string contentParse, string action)
{
var tableData = new Dictionary<string, Object>();//表单数据
string html = contentParse;
foreach (var json in contentData.ToList<JObject>())
{
string name = "";
string leipiplugins = json.GetValue("leipiplugins").ToString();
if ("checkboxs" == (leipiplugins))
@@ -54,11 +47,11 @@ namespace OpenAuth.App
case "checkboxs":
temp_html = GetCheckboxs(json, tableData, action);
break;
case "qrcode"://二维码
temp_html = GetQrcode(json, tableData, action);
break;
case "progressbar"://进度条 (未做处理)
/*temp_html = GetProgressbar(json, tableData, action);*/
break;
@@ -69,11 +62,22 @@ namespace OpenAuth.App
html = html.Replace("{" + name + "}", temp_html);
}
return html;
}
/**
*
* 功能: html
*/
public static string GetHtml(Form form, string action){
//action=action!=null && !""==(action)?action:"view";
return GetHtml(form.ContentData, form.ContentParse, action);
}
//text
private static string GetTextBox(JObject item, Dictionary<string,Object> formData,string action)
{

View File

@@ -107,7 +107,6 @@
<Compile Include="AuthorizeApp.cs" />
<Compile Include="CategoryApp.cs" />
<Compile Include="Define.cs" />
<Compile Include="Extention\IWF_Runtime.cs" />
<Compile Include="Extention\WF_Runtime.cs" />
<Compile Include="Extention\WF_RuntimeInitModel.cs" />
<Compile Include="Extention\WF_RuntimeModel.cs" />

View File

@@ -1605,13 +1605,22 @@ GooFlow.prototype={
var t=this.$editable;
this.$editable=false;
if(data.title) this.setTitle(data.title);
if(data.initNum) this.$max=data.initNum;
for(var i in data.nodes)
this.addNode(i,data.nodes[i]);
for(var j in data.lines)
this.addLine(j,data.lines[j]);
for(var k in data.areas)
this.addArea(k,data.areas[k]);
if (data.initNum) this.$max = data.initNum;
if (data != "") {
var length,k;
for (k = 0, length = data.nodes.length; k < length; k++) {
this.addNode(data.nodes[k].id, data.nodes[k]);
}
for (k = 0, length = data.lines.length; k < length; k++) {
this.addLine(data.lines[k].id, data.lines[k]);
}
for (k = 0,length = data.areas.length; k < length; k++) {
this.addArea(data.areas[k].id, data.areas[k]);
}
}
this.$editable=t;
this.$deletedItem={};
//自行重构工作区,使之大小自适应
@@ -1657,27 +1666,31 @@ GooFlow.prototype={
exportData:function(){
var ret={};
ret.title=this.$title;
ret.nodes={};
ret.lines={};
ret.areas={};
ret.nodes=[];
ret.lines=[];
ret.areas=[];
ret.initNum=this.$max;
for(var k1 in this.$nodeData){
if(!this.$nodeData[k1].marked){
delete this.$nodeData[k1]["marked"];
}
ret.nodes[k1]=JSON.parse(JSON.stringify(this.$nodeData[k1]));
ret.nodes.push(JSON.parse(JSON.stringify(this.$nodeData[k1])));
//ret.nodes[k1]=JSON.parse(JSON.stringify(this.$nodeData[k1]));
}
for(var k2 in this.$lineData){
if(!this.$lineData[k2].marked){
delete this.$lineData[k2]["marked"];
}
ret.lines[k2]=JSON.parse(JSON.stringify(this.$lineData[k2]));
ret.lines.push(JSON.parse(JSON.stringify(this.$lineData[k2])));
// ret.lines[k2]=JSON.parse(JSON.stringify(this.$lineData[k2]));
}
for(var k3 in this.$areaData){
if(!this.$areaData[k3].marked){
delete this.$areaData[k3]["marked"];
}
ret.areas[k3]=JSON.parse(JSON.stringify(this.$areaData[k3]));
ret.areas.push(JSON.parse(JSON.stringify(this.$areaData[k3])));
// ret.areas[k3]=JSON.parse(JSON.stringify(this.$areaData[k3]));
}
return ret;
},
@@ -1953,7 +1966,10 @@ GooFlow.prototype={
}
},
//增加一条线
addLine:function(id,json){
addLine: function (id, json) {
if (json.id == undefined) {
$.extend(json, { id: id });
}
if(typeof this.onItemAdd==='function' && this.onItemAdd(id,"line",json)===false)return;
if(this.$undoStack&&this.$editable){
this.pushOper("delLine",[id]);

View File

@@ -103,16 +103,15 @@
}
};
var load = function () {
var url = '/flowschemes/load';
$.getJSON(url, function (json) {
zTreeObj = $.fn.zTree.init($("#frmTree"), setting);
zTreeObj.addNodes(null, json.data);
$("#menutree").html("点击预览表单效果");
zTreeObj.expandAll(true);
});
};
var url = '/flowschemes/load';
$.getJSON(url, function (json) {
zTreeObj = $.fn.zTree.init($("#frmTree"), setting);
zTreeObj.addNodes(null, json.data);
$("#menutree").html("点击预览表单效果");
zTreeObj.expandAll(true);
});
var setCheck = function (id) { //设置已经选中的表单
if (id == null | id == '') return;
@@ -125,13 +124,10 @@
}
return {
load: load,
setCheck: setCheck
}
}();
frmTree.load();
if (update) {
$.getJSON('/FlowInstances/get?id=' + id,
function (data) {

View File

@@ -56,16 +56,14 @@
}
};
var load = function () {
var url = '/forms/load';
$.getJSON(url, function (json) {
zTreeObj = $.fn.zTree.init($("#frmTree"), setting);
zTreeObj.addNodes(null, json.data);
var url = '/forms/load';
$.getJSON(url, function (json) { //todo这个地方要用同步方式不然后面的setCheck会出问题
zTreeObj = $.fn.zTree.init($("#frmTree"), setting);
zTreeObj.addNodes(null, json.data);
$("#menutree").html("点击预览表单效果");
zTreeObj.expandAll(true);
});
};
$("#menutree").html("点击预览表单效果");
zTreeObj.expandAll(true);
});
var setCheck = function (id) { //设置已经选中的表单
if (id == null | id == '') return;
@@ -78,7 +76,6 @@
}
return {
load: load,
setCheck: setCheck
}
}();
@@ -121,9 +118,6 @@
});
/*=========流程设计end=====================*/
frmTree.load();
if (update) {
$.getJSON('/flowschemes/get?id=' + id,
function (data) {

View File

@@ -80,7 +80,7 @@
var iframeWin = window[layero.find('iframe')[0]['name']]; //得到iframe页的窗口对象执行iframe页的方法iframeWin.method();
iframeWin.submit();
},
cancel: function (index) {
no: function (index) {
layer.close(index);
mainList();
}