package service import ( "cu-helper/cus-eng-con-sys/config" "cu-helper/cus-eng-con-sys/cryptokit" "cu-helper/cus-eng-con-sys/model" "strings" "github.com/mizuki1412/go-core-kit/class/exception" "github.com/mizuki1412/go-core-kit/service/logkit" ) // ReqFinishAct 完工确认请求 /* 完工确认分3个步骤进行 1、获取下一步办理人员Assignee(零星,扩容是资源录入需要手动指定) 2、上传完工报告 3、提交完工确认请求 */ func ReqFinishAct(ctx *model.Ctx) { //这里YSSQ指的是下一个步骤,获取下一个步骤办理人员 processDefinitionKey := ctx.Data.Get("processDefinitionKey").String() docUploadWGQR(ctx) switch processDefinitionKey { case config.ProcessHouse: //小区要先资源录入 reqFinishActProcess(ctx, "") case config.ProcessLX: //零星直接验收申请 id := getAssigneeId(ctx, "YSSQ") reqFinishActProcess(ctx, id) } } func docUploadWGQR(ctx *model.Ctx) { businessKey := getRemandId(ctx) taskId := ctx.Data.Get("id").String() h := model.NewHeader("multipart/form-data") header := h.GenReqParam() f := model.NewDocUpload(businessKey, "WGQR", "ACT", taskId) form := f.GenReqParam() crypt := cryptokit.NewDocEncrypt() params := crypt.GenReqParam() client := ctx.RestyClient resp, err := client.R(). SetHeaders(header).SetFormData(form).SetQueryParams(params).SetFile("myfile", config.DocUploadWGQRFilePath).Post(config.UrlPrefix + "/zjgd/frm/docInfoController/goUpload.action") if err != nil { panic(exception.New(err.Error())) } dataOri := strings.Trim(resp.String(), `"`) data := cryptokit.Decrypt(dataOri) logkit.Info("docUploadWGQR:" + data) } func reqFinishActProcess(ctx *model.Ctx, assigneeId string) { processInsId := ctx.Data.Get("processInstanceId").String() taskId := ctx.Data.Get("id").String() processDefinitionKey := ctx.Data.Get("processDefinitionKey").String() h := model.NewHeader("application/x-www-form-urlencoded; charset=UTF-8") header := h.GenReqParam() f := model.NewFinishActProcess(processInsId, taskId, assigneeId, processDefinitionKey) form := f.GenReqParam() client := ctx.RestyClient resp, err := client.R(). SetHeaders(header).SetFormData(form).Post(config.UrlPrefix + "/zjgd/frm/actInfoController/startActFinishProcess") if err != nil { panic(exception.New(err.Error())) } dataOri := strings.Trim(resp.String(), `"`) data := cryptokit.Decrypt(dataOri) logkit.Info("finishActProcess:" + data) }