import _ from "lodash"; import type { IDictResponse } from "../core/IDictResponse"; import type { IPartResponse } from "../core/IPartResponse"; export interface pathTypeControl { /** 指定的附件类型 */ pathType: number; /** 是否可以上传修改 */ update: boolean; /** 是否可以删除附件 */ delete: boolean; /** 是否可以拍摄上传附件 */ camera: boolean; } export interface IFlowNodeResponseNodeParaWithMYOA { flowMain: number; nodeIndx: number; set4CardWhenReal: number; userIndx: number; whoBuild: number; } export class TFlowNodeResponseNodeParaWithMYOA implements IFlowNodeResponseNodeParaWithMYOA { flowMain: number = 0; nodeIndx: number = 0; set4CardWhenReal: number = 0; userIndx: number = 0; whoBuild: number = 0; } export interface IFlowNodeResponseNodePara { /** 到达该审核节点时,是否必须签章完成 */ requiredSign: boolean; /** 到达该审核节点时,如配置参数则对应的附件类型是否可进行操作的配置 */ pathType: pathTypeControl[]; /** 默认审核用户 */ defaultAuditUser: number; /** 招聘计划是否可修改,true:本次招聘数可修改,招聘结果确认不可确认。false:本次招聘数不可修改,招聘结果确认可确认 */ recruitPlanUpdate: boolean; /** 招聘计划审核时是否可选择招聘结果用户 */ recruitPlanChooseUser: boolean; } export class TFlowNodeResponseNodePara implements IFlowNodeResponseNodePara { /** 到达该审核节点时,是否必须签章完成 */ requiredSign: boolean = false; pathType: pathTypeControl[] = []; /** 默认审核用户 */ defaultAuditUser: number = 0; recruitPlanUpdate: boolean = false; recruitPlanChooseUser: boolean = false; } export interface IFlowNodeResponse { whoBuild: number; userIndx: number; nodeIndx: number; flowMain: number; flowNode: number; //#value = nodeindx dataStat: number; dataHide: number; dataOrdr: number; dataFrom: number; dataDate: number; dataTime: number; mastName: string; mastGUID: string; createBy: string; createAt: number; updateBy: string; updateAt: number; deleteBy: string; deleteAt: number; queuesBy: number; entityID: string; /** 节点名称 */ nodeName: string; /** 初始节点 */ startOne: number; /** 等待提示 */ waitText: string; /** 通过提示 */ doneText: string; /** 指定角色 */ partText: string; /** 下游节点 */ fromText: string; /** 终审条件 */ voidText: string; /** 等待取色 */ bkColour: string; unColour: string; verifyDW: number; verifyBM: number; forkSize: number; /** 分支条件 */ forkText: string; /** 作为主线节点 */ asMainly: number; /** 节点备注 */ nodeMemo: string; /** 作为虚拟节点 */ dataType: number; /** 通过拦截 */ hookText: string; /** 可选节点.计数 */ nextSize: number; /** 可选节点.文本 */ nextText: string; /** 抄告内容 */ userNoti: string; /** 退回类型 */ undoType: number; /** 参数约定 */ nodePara: string; /** 启用并行会签 */ parallel: number; /** 投票通过比例 */ ratioVal: number; /** 单位类型.文本 */ unitTypeText: string; /** 部门类型.文本 */ deptTypeText: string; /** 通过跳转 */ view4URLWhenNext: string; /** 退回跳转 */ view4URLWhenUndo: string; notiTextWhenNext: string; notiTextWhenUndo: string; /** 初审时,单位取值 */ unitMainWhenReal: string; /** 初审时,部门取值 */ deptMainWhenReal: string; /** 初审时,用户取值 */ userMainWhenReal: string; /** 初审时,JS脚本取值*/ jsScriptWhenReal: string; /** 通过时,单位取值 */ unitMainWhenNext: string; /** 通过时,部门取值 */ deptMainWhenNext: string; /** 通过时,用户取值 */ userMainWhenNext: string; /** 通过时,JS脚本取值*/ jsScriptWhenNext: string; /** 待办跳转 */ todo4URLWhenNext: string; todo4URLWhenUndo: string; /** 待办名称 */ todoNameWhenNext: string; todoNameWhenUndo: string; allowUntWhenReal: number; allowUntWhenNext: number; allowDptWhenReal: number; /** 通过时,允许指定部门 */ allowDptWhenNext: number; allowUsrWhenReal: number; /** 通过时,允许指定用户 */ allowUsrWhenNext: number; /** 通过模板 */ cronNameWhenNext: string; /** 退回模板 */ cronNameWhenUndo: string; /** 终审模板 */ cronNameWhenDone: string; /** 初审时,SQL用户取值 */ sql4userWhenReal: string; /** 初审时,SQL部门取值 */ sql4deptWhenReal: string; /** 通过时,SQL用户取值 */ sql4userWhenNext: string; /** 通过时,SQL部门取值 */ sql4deptWhenNext: string; dingNotiWhenNext: number; dingNotiWhenUndo: number; dingTodoWhenNext: number; dingTodoWhenUndo: number; usesNotiWhenNext: number; usesNotiWhenUndo: number; /** 指定角色.列表 */ listPart: IPartResponse[]; listDWLX: IDictResponse[]; // 单位类型 listBMLX: IDictResponse[]; // 部门类型 /** 下游节点.列表 */ listFrom: IFlowNodeResponse[]; /** 可选节点.列表 */ listNext: IFlowNodeResponse[]; nodeParaConv: IFlowNodeResponseNodePara; withMYOA: TFlowNodeResponseNodeParaWithMYOA; // 下一节点是否跳岗 autoNextText: string; } // export interface IFlowNodeResponse { // whoBuild: number; // userIndx: number; // nodeIndx: number; // flowMain: number; // flowNode: number; // dataStat: number; // dataHide: number; // dataOrdr: number; // dataFrom: number; // dataDate: number; // dataTime: number; // mastName: string; // mastGUID: string; // createBy: string; // createAt: number; // updateBy: string; // updateAt: number; // deleteBy: string; // deleteAt: number; // startOne: number; // queuesBy: number; // nodeName: string; // nodeMemo: string; // nodePara: string; // // entityID: string; // waitText: string; // doneText: string; // partText: string; // fromText: string; // parallel: number; // voidText: string; // bkColour: string; // unColour: string; // verifyDw: number; // verifyBm: number; // nextSize: number; // nextText: string; // forkSize: number; // #分支个数 // forkText: string; // #分支文本 // asMainly: number; // #是否主线节点 // dataType: number; // #节点类型{0,1:正常节点;2:流转节点} // todo4URL: string; // undoFlow: number; // undoType: number; // directAt: number; // parentID: number; // unitTypeText: string; // deptTypeText: string; // usesNotiWhenNext: number; // usesNotiWhenUndo: number; // dingNotiWhenNext: number; // dingNotiWhenUndo: number; // dingTodoWhenNext: number; // dingTodoWhenUndo: number; // unitMainWhenReal: string; // #初审时,单位取值; // deptMainWhenReal: string; // #初审时,部门取值; // userMainWhenReal: string; // #初审时,用户取值; // unitMainWhenNext: string; // #通过时,单位取值 // deptMainWhenNext: string; // #通过时,部门取值 // userMainWhenNext: string; // #通过时,用户取值 // allowUsrWhenReal: number; // allowUsrWhenNext: number; // #通过时,允许指定用户 // allowDptWhenNext: number; // #通过时,允许指定部门 // view4URLWhenNext: string; // #通过时.跳转约定 // view4URLWhenUndo: string; // #退回时.跳转约定 // notiTextWhenNext: string; // #通过时.抄告模板 // notiTextWhenUndo: string; // #退回时.抄告模板 // cronNameWhenNext: string; // cronNameWhenUndo: string; // // #虚拟字段 // editP5pzWhenReal: number; // voidP5pzWhenNext: number; // bkColourWhenWait: string; // usesZbhdWhenReal: number; // usesZnksWhenReal: number; // mustZbhdWhenReal: number; // mustZnksWhenReal: number; // usesExpdWhenReal: number; // mustExpdWhenReal: number; // finalOutWhenReal: number; // set4dialWhenReal: number; // listPart: IPartResponse[]; // listFrom: IFlowNodeResponse[]; // listDWLX: IDictResponse[]; // 单位类型 // listBMLX: IDictResponse[]; // 部门类型 // listNext: IFlowNodeResponse[]; // } // export class TFlowNodeResponse implements IFlowNodeResponse { // cronNameWhenUndo: string = ""; // cronNameWhenNext: string = ""; // nextText: string = ""; // undoFlow: number = 0; // undoType: number = -1; // whoBuild: number = 0; // userIndx: number = 0; // nodeIndx: number = 0; // flowMain: number = 0; // dataStat: number = 0; // dataHide: number = 0; // dataOrdr: number = 0; // dataFrom: number = 0; // dataDate: number = 0; // dataTime: number = 0; // mastName: string = ""; // mastGUID: string = ""; // createBy: string = ""; // createAt: number = 0; // updateBy: string = ""; // updateAt: number = 0; // deleteBy: string = ""; // deleteAt: number = 0; // startOne: number = 0; // queuesBy: number = 0; // nodeName: string = ""; // nodeMemo: string = ""; // nodePara: string = ""; // nodeParaConv: IFlowNodeResponseNodePara = new TFlowNodeResponseNodePara(); // entityID: string = ""; // waitText: string = ""; // doneText: string = ""; // partText: string = ""; // fromText: string = ""; // parallel: number = 0; // voidText: string = ""; // bkColour: string = ""; // unColour: string = ""; // verifyDw: number = 0; // verifyBm: number = 0; // nextSize: number = 0; // forkSize: number = 0; // #分支个数 // forkText: string = ""; // #分支文本 // asMainly: number = 0; // #是否主线节点 // dataType: number = 0; // #节点类型{0,1:正常节点;2:流转节点} // todo4URL: string = ""; // directAt: number = 0; // parentID: number = 0; // unitTypeText: string = ""; // deptTypeText: string = ""; // usesNotiWhenNext: number = 0; // usesNotiWhenUndo: number = 0; // dingNotiWhenNext: number = 0; // dingNotiWhenUndo: number = 0; // dingTodoWhenNext: number = 0; // dingTodoWhenUndo: number = 0; // unitMainWhenReal: string = ""; // #初审时,单位取值; // deptMainWhenReal: string = ""; // #初审时,部门取值; // userMainWhenReal: string = ""; // #初审时,用户取值; // unitMainWhenNext: string = ""; // #通过时,单位取值 // deptMainWhenNext: string = ""; // #通过时,部门取值 // userMainWhenNext: string = ""; // #通过时,用户取值 // allowUsrWhenReal: number = 0; // allowUsrWhenNext: number = 0; // allowDptWhenNext: number = 0; // view4URLWhenNext: string = ""; // #通过时.跳转约定 // view4URLWhenUndo: string = ""; // #退回时.跳转约定 // notiTextWhenNext: string = ""; // #通过时.抄告模板 // notiTextWhenUndo: string = ""; // #退回时.抄告模板 // // #虚拟字段 // editP5pzWhenReal: number = 0; // voidP5pzWhenNext: number = 0; // bkColourWhenWait: string = ""; // usesZbhdWhenReal: number = 0; // usesZnksWhenReal: number = 0; // usesExpdWhenReal: number = 0; // mustExpdWhenReal: number = 0; // mustZbhdWhenReal: number = 0; // mustZnksWhenReal: number = 0; // finalOutWhenReal: number = 0; // set4dialWhenReal: number = 0; // listPart: IPartResponse[] = []; // listFrom: IFlowNodeResponse[] = []; // listDWLX: IDictResponse[] = []; // listBMLX: IDictResponse[] = []; // listNext: IFlowNodeResponse[] = []; // } export class TFlowNodeResponse implements IFlowNodeResponse { whoBuild: number = 0; userIndx: number = 0; nodeIndx: number = 0; flowMain: number = 0; flowNode: number = 0; dataStat: number = 0; dataHide: number = 0; dataOrdr: number = 0; dataFrom: number = 0; dataDate: number = 0; dataTime: number = 0; mastName: string = ""; mastGUID: string = ""; createBy: string = ""; createAt: number = 0; updateBy: string = ""; updateAt: number = 0; deleteBy: string = ""; deleteAt: number = 0; startOne: number = 0; nodeName: string = ""; entityID: string = ""; waitText: string = ""; doneText: string = ""; partText: string = ""; fromText: string = ""; voidText: string = ""; bkColour: string = ""; unColour: string = ""; verifyDW: number = 0; verifyBM: number = 0; queuesBy: number = 0; forkSize: number = 0; forkText: string = ""; asMainly: number = 0; nodeMemo: string = ""; dataType: number = 0; hookText: string = ""; userNoti: string = ""; nextSize: number = 0; nextText: string = ""; undoType: number = 0; nodePara: string = ""; parallel: number = 0; ratioVal: number = 0; unitTypeText: string = ""; deptTypeText: string = ""; usesNotiWhenNext: number = 0; usesNotiWhenUndo: number = 0; dingNotiWhenNext: number = 0; dingNotiWhenUndo: number = 0; dingTodoWhenNext: number = 0; dingTodoWhenUndo: number = 0; view4URLWhenNext: string = ""; view4URLWhenUndo: string = ""; notiTextWhenNext: string = ""; notiTextWhenUndo: string = ""; unitMainWhenReal: string = ""; deptMainWhenReal: string = ""; userMainWhenReal: string = ""; unitMainWhenNext: string = ""; deptMainWhenNext: string = ""; userMainWhenNext: string = ""; jsScriptWhenReal: string = ""; jsScriptWhenNext: string = ""; allowUntWhenReal: number = 0; allowUntWhenNext: number = 0; allowDptWhenReal: number = 0; allowDptWhenNext: number = 0; allowUsrWhenReal: number = 0; allowUsrWhenNext: number = 0; todo4URLWhenNext: string = ""; todo4URLWhenUndo: string = ""; todoNameWhenNext: string = ""; todoNameWhenUndo: string = ""; cronNameWhenNext: string = ""; cronNameWhenUndo: string = ""; cronNameWhenDone: string = ""; sql4userWhenReal: string = ""; sql4userWhenNext: string = ""; sql4deptWhenReal: string = ""; sql4deptWhenNext: string = ""; autoNextText: string = ""; listPart: IPartResponse[] = []; listDWLX: IDictResponse[] = []; listBMLX: IDictResponse[] = []; listFrom: IFlowNodeResponse[] = []; listNext: IFlowNodeResponse[] = []; nodeParaConv: IFlowNodeResponseNodePara = new TFlowNodeResponseNodePara(); withMYOA: TFlowNodeResponseNodeParaWithMYOA = new TFlowNodeResponseNodeParaWithMYOA(); static parseJson(nodePara: string) { const result = new TFlowNodeResponseNodePara(); if (_.isEmpty(nodePara)) { return result; } try { const temp = JSON.parse(nodePara) as TFlowNodeResponseNodePara; return _.merge(result, temp); } catch (e: any) {} return result; } }