|
|
@@ -0,0 +1,287 @@
|
|
|
+
|
|
|
+package partial
|
|
|
+
|
|
|
+import (
|
|
|
+ "git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys"
|
|
|
+ //sysmodel "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
|
|
|
+ //sysutils "git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
|
|
|
+ "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
|
|
|
+ sysmodel "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
|
|
|
+ "git.qianqiusoft.com/qianqiusoft/light-apiengine/wfclient"
|
|
|
+ "strconv"
|
|
|
+ "fmt"
|
|
|
+//__import_packages__
|
|
|
+)
|
|
|
+
|
|
|
+// _WfInstanceList
|
|
|
+// @Title _WfInstanceList
|
|
|
+// @Description 分页获取流程实例
|
|
|
+// @Param false ""
|
|
|
+// @Success 200 {object} models.Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func SysWf_WfInstanceList(c *entitys.CtrlContext) {
|
|
|
+ page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
|
|
|
+ rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
|
|
|
+ //page :=c.Ctx.GetInt("page")
|
|
|
+ //rows :=c.Ctx.GetInt("rows")
|
|
|
+ sidx := c.Ctx.DefaultQuery("sidx", "")
|
|
|
+ sord := c.Ctx.DefaultQuery("sord", "")
|
|
|
+ filter := c.Ctx.Query("filters")
|
|
|
+
|
|
|
+ bytess, err := wfclient.Instance().FetchWFINstances(page, rows, filter, sidx, sord)
|
|
|
+
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
|
|
|
+ //c.Ctx.String(200,"",string(bytess))
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _InstanceStepCurrent
|
|
|
+// @Title _InstanceStepCurrent
|
|
|
+// @Description 实例当前状态
|
|
|
+// @Param instance_id false ""
|
|
|
+// @Success 200 {object} models.Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func SysWf_InstanceStepCurrent(c *entitys.CtrlContext) {
|
|
|
+ instanceId := c.Ctx.Query("instance_id")
|
|
|
+
|
|
|
+ bytess, err := wfclient.Instance().FetchCurrentStepByLoginUser(instanceId)
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _Prerun
|
|
|
+// @Title _Prerun
|
|
|
+// @Description 运行实例前奏
|
|
|
+// @Param choice false ""
|
|
|
+// @Param instance_id false ""
|
|
|
+// @Success 200 {object} models.Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func SysWf_Prerun(c *entitys.CtrlContext) {
|
|
|
+ obj := models.WfRunData{}
|
|
|
+ err := c.Ctx.Bind(&obj)
|
|
|
+ if err != nil {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ bytess, err := wfclient.Instance().PreRun(obj.InstanceId, obj.Choice)
|
|
|
+
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _Run
|
|
|
+// @Title _Run
|
|
|
+// @Description 运行实例
|
|
|
+// @Param choice false ""
|
|
|
+// @Param instance_id false ""
|
|
|
+// @Param nextStep false ""
|
|
|
+// @Param option false ""
|
|
|
+// @Param users false ""
|
|
|
+// @Success 200 {object} models.Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func SysWf_Run(c *entitys.CtrlContext) {
|
|
|
+ obj := models.WfRunData{}
|
|
|
+ err := c.Ctx.Bind(&obj)
|
|
|
+ if err != nil {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ bytess, err := wfclient.Instance().Run(obj.InstanceId, obj.Users, obj.Choice, obj.Opinion, obj.NextStep, c)
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _WfDefinesTag
|
|
|
+// @Title _WfDefinesTag
|
|
|
+// @Description 根据tag获取工作流事项
|
|
|
+// @Param tag false ""
|
|
|
+// @Success 200 {object} models.Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func SysWf_WfDefinesTag(c *entitys.CtrlContext) {
|
|
|
+ tag := c.Ctx.Query("tag")
|
|
|
+
|
|
|
+ bytess, err := wfclient.Instance().FetchDefinesByTag(tag)
|
|
|
+
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _WfDefineForm
|
|
|
+// @Title _WfDefineForm
|
|
|
+// @Description 根据表单名称获取表单
|
|
|
+// @Param form false ""
|
|
|
+// @Success 200 {object} models.Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func SysWf_WfDefineForm(c *entitys.CtrlContext) {
|
|
|
+ form := c.Ctx.Query("form")
|
|
|
+
|
|
|
+ ret := __none_func_sys_wf__(form)
|
|
|
+ if ret {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _Recall
|
|
|
+// @Title _Recall
|
|
|
+// @Description 撤回
|
|
|
+// @Param instance_id false ""
|
|
|
+// @Success 200 {object} models.Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func SysWf_Recall(c *entitys.CtrlContext) {
|
|
|
+ obj := models.WfRunData{}
|
|
|
+ err := c.Ctx.Bind(&obj)
|
|
|
+ if err != nil {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ bytess, err := wfclient.Instance().Recall(obj.InstanceId)
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _Designer
|
|
|
+// @Title _Designer
|
|
|
+// @Description 修改流程定义
|
|
|
+// @Param define_id false ""
|
|
|
+// @Success 200 {object} models.Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func SysWf_Designer(c *entitys.CtrlContext) {
|
|
|
+ define_id := c.Ctx.Query("define_id")
|
|
|
+
|
|
|
+ bytess, err := wfclient.Instance().FetchDesignDiagram(define_id)
|
|
|
+
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _DefineSave
|
|
|
+// @Title _DefineSave
|
|
|
+// @Description 保存流程定义
|
|
|
+// @Param define_id false ""
|
|
|
+// @Success 200 {object} models.Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func SysWf_DefineSave(c *entitys.CtrlContext) {
|
|
|
+ PostData := models.WfDefine{}
|
|
|
+ err := c.Ctx.Bind(&PostData)
|
|
|
+
|
|
|
+ bytess, err := wfclient.Instance().CreateOrUpdateDefine(PostData.DefineId, PostData.Name, PostData.Descript, PostData.Data, PostData.Form, PostData.Tag, PostData.Code)
|
|
|
+
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _DefineCreate
|
|
|
+// @Title _DefineCreate
|
|
|
+// @Description 创建流程定义
|
|
|
+// @Param false ""
|
|
|
+// @Success 200 {object} models.Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func SysWf_DefineCreate(c *entitys.CtrlContext) {
|
|
|
+ PostData := models.WfDefine{}
|
|
|
+ err := c.Ctx.Bind(&PostData)
|
|
|
+
|
|
|
+ bytess, err := wfclient.Instance().CreateOrUpdateDefine(PostData.DefineId, PostData.Name, PostData.Descript, PostData.Data, PostData.Form, PostData.Tag, PostData.Code)
|
|
|
+
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _CreateInstance
|
|
|
+// @Title _CreateInstance
|
|
|
+// @Description 创建流程实例
|
|
|
+// @Param false ""
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func SysWf_CreateInstance(c *entitys.CtrlContext) {
|
|
|
+ var InstanceInfo struct {
|
|
|
+ DefineId string `json:"define_id"`
|
|
|
+ Name string `json:"name"`
|
|
|
+ FormData string `json:"form_data"`
|
|
|
+ }
|
|
|
+
|
|
|
+ err := c.Ctx.BindJSON(&InstanceInfo)
|
|
|
+ if err != nil {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ bytess, err := wfclient.Instance().CreateInstance(InstanceInfo.DefineId, InstanceInfo.Name, InstanceInfo.FormData)
|
|
|
+
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _Define
|
|
|
+// @Title _Define
|
|
|
+// @Description 获取流程定义
|
|
|
+// @Param define_id string false ""
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func SysWf_Define(c *entitys.CtrlContext) {
|
|
|
+ define_id := c.Ctx.Query("define_id")
|
|
|
+
|
|
|
+ bytess, err := wfclient.Instance().FetchDefine(define_id)
|
|
|
+ fmt.Println(string(bytess))
|
|
|
+
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _AllDefine
|
|
|
+// @Title _AllDefine
|
|
|
+// @Description 获取所有流程定义
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func SysWf_AllDefine(c *entitys.CtrlContext) {
|
|
|
+
|
|
|
+ bytess, err := wfclient.Instance().FetchAllDefines()
|
|
|
+
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+func __none_func_sys_wf__(params ... interface{}) bool{
|
|
|
+ return true
|
|
|
+}
|