You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.5 KiB
Go

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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指的是下一个步骤获取下一个步骤办理人员
//todo 目前只能用于零星,小区的下一步是资源录入
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)
}