|
|
@@ -3,6 +3,8 @@ package proj
|
|
|
import (
|
|
|
"context"
|
|
|
platDao "dashoo.cn/micro/app/dao/plat"
|
|
|
+ "dashoo.cn/micro/app/dao/work"
|
|
|
+ "encoding/json"
|
|
|
"github.com/gogf/gf/container/garray"
|
|
|
"os"
|
|
|
|
|
|
@@ -11,6 +13,7 @@ import (
|
|
|
projDao "dashoo.cn/micro/app/dao/proj"
|
|
|
contractModel "dashoo.cn/micro/app/model/contract"
|
|
|
model "dashoo.cn/micro/app/model/proj"
|
|
|
+ workmodel "dashoo.cn/micro/app/model/work"
|
|
|
workflowModel "dashoo.cn/micro/app/model/workflow"
|
|
|
workflowService "dashoo.cn/micro/app/service/workflow"
|
|
|
"dashoo.cn/opms_libary/plugin/dingtalk"
|
|
|
@@ -34,10 +37,11 @@ import (
|
|
|
|
|
|
type businessService struct {
|
|
|
*service.ContextService
|
|
|
- Dao *projDao.ProjBusinessDao
|
|
|
- ContactDao *projDao.ProjBusinessContactDao
|
|
|
- FollowDao *platDao.PlatFollowupDao
|
|
|
- fileDao *projDao.ProjBusinessFileDao
|
|
|
+ Dao *projDao.ProjBusinessDao
|
|
|
+ ContactDao *projDao.ProjBusinessContactDao
|
|
|
+ FollowDao *platDao.PlatFollowupDao
|
|
|
+ fileDao *projDao.ProjBusinessFileDao
|
|
|
+ WorkTypeDao *work.WorkOrderTypeDao
|
|
|
}
|
|
|
|
|
|
func NewBusinessService(ctx context.Context) (svc *businessService, err error) {
|
|
|
@@ -49,6 +53,7 @@ func NewBusinessService(ctx context.Context) (svc *businessService, err error) {
|
|
|
svc.ContactDao = projDao.NewProjBusinessContactDao(svc.Tenant)
|
|
|
svc.FollowDao = platDao.NewPlatFollowupDao(svc.Tenant)
|
|
|
svc.fileDao = projDao.NewProjBusinessFileDao(svc.Tenant)
|
|
|
+ svc.WorkTypeDao = work.NewWorkOrderTypeDao(svc.Tenant)
|
|
|
return svc, nil
|
|
|
}
|
|
|
|
|
|
@@ -852,329 +857,330 @@ func (p *businessService) getBusDingUpgradeType(dbNboType, reqNboType string) st
|
|
|
return upgradeType
|
|
|
}
|
|
|
|
|
|
-// BusUpgradeDingEvent 项目升级钉钉审批流调用
|
|
|
-func (p *businessService) BusUpgradeDingEvent(business *model.ProjBusiness, req *model.BusinessUpgradeReq, fileMap map[string]*multipart.FileHeader) (instanceId string, err error) {
|
|
|
- upgradeType := p.getBusDingUpgradeType(business.NboType, req.NboType)
|
|
|
- if upgradeType == "" {
|
|
|
- return "", myerrors.TipsError("错误的升级类型")
|
|
|
- }
|
|
|
- productLineMap, err := service.GetDictDataTreeByType(p.Ctx, "sys_product_line")
|
|
|
- if err != nil {
|
|
|
- return "", err
|
|
|
- }
|
|
|
- productLine := gconv.String(productLineMap.Get(business.ProductLine))
|
|
|
-
|
|
|
- dingProductList := make([][]*workflow.StartProcessInstanceRequestFormComponentValues, 0)
|
|
|
- for _, item := range req.Products {
|
|
|
- pInfo := make([]*workflow.StartProcessInstanceRequestFormComponentValues, 0)
|
|
|
- pInfo = append(pInfo, &workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
- Id: utils.String("TextField_8P2W917Q5I40"),
|
|
|
- Name: utils.String("产品编码"),
|
|
|
- Value: utils.String(item.ProdCode),
|
|
|
- })
|
|
|
- pInfo = append(pInfo, &workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
- Id: utils.String("TextField_1W2HGNQFLLA80"),
|
|
|
- Name: utils.String("产品名称"),
|
|
|
- Value: utils.String(item.ProdName),
|
|
|
- })
|
|
|
- pInfo = append(pInfo, &workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
- Id: utils.String("TextField_1OPT3MZL76GW0"),
|
|
|
- Name: utils.String("产品类别"),
|
|
|
- Value: utils.String(gconv.String(productLineMap.Get(item.ProdClass))),
|
|
|
- })
|
|
|
- pInfo = append(pInfo, &workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
- Id: utils.String("TextField_O405QBZMPW00"),
|
|
|
- Name: utils.String("产品单价"),
|
|
|
- Value: utils.String(gconv.String(item.ProdPrice)),
|
|
|
- })
|
|
|
- pInfo = append(pInfo, &workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
- Id: utils.String("TextField_23P54AZUW4SG0"),
|
|
|
- Name: utils.String("数量"),
|
|
|
- Value: utils.String(gconv.String(item.ProdNum)),
|
|
|
- })
|
|
|
- dingProductList = append(dingProductList, pInfo)
|
|
|
- }
|
|
|
-
|
|
|
- // 审批流
|
|
|
- workflowSrv, _ := workflowService.NewFlowService(p.Ctx)
|
|
|
- // OMS项目升级 审批
|
|
|
- var dingReq *workflow.StartProcessInstanceRequest
|
|
|
- bizCode := business.NboCode + ":" + strconv.Itoa(business.Id)
|
|
|
- switch req.NboType {
|
|
|
- case StatusC:
|
|
|
- business.ApproType = BusinessUpgradeCRequestProcessCode
|
|
|
- dingReq = &workflow.StartProcessInstanceRequest{
|
|
|
- ProcessCode: &business.ApproType,
|
|
|
- FormComponentValues: []*workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
- {
|
|
|
- Id: utils.String("TextField-K2AD4O5B"),
|
|
|
- Name: utils.String("项目编码"),
|
|
|
- Value: utils.String(business.NboCode),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("TextField_BDLSECETVSG0"),
|
|
|
- Name: utils.String("项目名称"),
|
|
|
- Value: utils.String(business.NboName),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("DDSelectField_1MJU37HGJX4W0"),
|
|
|
- Name: utils.String("产品线"),
|
|
|
- Value: utils.String(productLine),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("DDSelectField_VSA3U380ZK00"),
|
|
|
- Name: utils.String("升级类型"),
|
|
|
- Value: utils.String(upgradeType),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("TextField_1J9BJMOZ18F40"),
|
|
|
- Name: utils.String("客户名称"),
|
|
|
- Value: utils.String(business.CustName),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("TextField_AEUWH63LJ0O0"),
|
|
|
- Name: utils.String("销售工程师"),
|
|
|
- Value: utils.String(business.SaleName),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("TextareaField_1LO81IKHH91C0"),
|
|
|
- Name: utils.String("转化原因"),
|
|
|
- Value: utils.String(req.ProjConversionReason),
|
|
|
- },
|
|
|
- },
|
|
|
- }
|
|
|
-
|
|
|
- case StatusB:
|
|
|
- quotationFile := make([]contractModel.DingFileInfo, 0)
|
|
|
- if len(fileMap) > 0 {
|
|
|
- for k, files := range fileMap {
|
|
|
- // 报价单
|
|
|
- if k == "quotationFile" {
|
|
|
- if quotationFile, err = p.txCreateBusinessDingTalkFile(business.Id, upgradeType, k, files); err != nil {
|
|
|
- return "", err
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if len(quotationFile) == 0 {
|
|
|
- return "", myerrors.TipsError("请上传报价单文件")
|
|
|
- }
|
|
|
- business.ApproType = BusinessUpgradeBRequestProcessCode
|
|
|
- dingReq = &workflow.StartProcessInstanceRequest{
|
|
|
- ProcessCode: &business.ApproType,
|
|
|
- FormComponentValues: []*workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
- {
|
|
|
- Id: utils.String("TextField-K2AD4O5B"),
|
|
|
- Name: utils.String("项目编码"),
|
|
|
- Value: utils.String(business.NboCode),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("TextField_BDLSECETVSG0"),
|
|
|
- Name: utils.String("项目名称"),
|
|
|
- Value: utils.String(business.NboName),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("DDSelectField_213JKZA1OUO00"),
|
|
|
- Name: utils.String("产品线"),
|
|
|
- Value: utils.String(productLine),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("DDSelectField_VSA3U380ZK00"),
|
|
|
- Name: utils.String("升级类型"),
|
|
|
- Value: utils.String(upgradeType),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("TextField_1J9BJMOZ18F40"),
|
|
|
- Name: utils.String("客户名称"),
|
|
|
- Value: utils.String(business.CustName),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("NumberField_1F88MCD0W8KG0"),
|
|
|
- Name: utils.String("项目预算"),
|
|
|
- Value: utils.String(gconv.String(req.NboBudget)),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("TextField_1PWK6WHMGITC0"),
|
|
|
- Name: utils.String("渠道销售人员"),
|
|
|
- Value: utils.String(req.DealerSalesName),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("TextField_M06MZK20POG0"),
|
|
|
- Name: utils.String("渠道销售电话/微信"),
|
|
|
- Value: utils.String(req.DealerSalesContact),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("TextField_GL59OGH2Z1S0"),
|
|
|
- Name: utils.String("预计出货金额"),
|
|
|
- Value: utils.String(gconv.String(business.EstTransPrice)),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("TableField_1CGSRAWT8YG0"),
|
|
|
- Name: utils.String("产品列表"),
|
|
|
- Value: utils.String(gconv.String(dingProductList)),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("TextField_AEUWH63LJ0O0"),
|
|
|
- Name: utils.String("销售工程师"),
|
|
|
- Value: utils.String(business.SaleName),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("DDAttachment_KZPWZJS9GHO0"),
|
|
|
- Name: utils.String("上传报价单"),
|
|
|
- Value: utils.String(gconv.String(quotationFile)),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("TextareaField_1GEL8JJL3H5S0"),
|
|
|
- Name: utils.String("备注"),
|
|
|
- Value: utils.String(req.Remark),
|
|
|
- },
|
|
|
- },
|
|
|
- }
|
|
|
-
|
|
|
- case StatusA:
|
|
|
- var dashooParamFile []contractModel.DingFileInfo
|
|
|
- var quotationFile []contractModel.DingFileInfo
|
|
|
- if len(fileMap) > 0 {
|
|
|
- for k, files := range fileMap {
|
|
|
- // 报价单
|
|
|
- if k == "quotationFile" {
|
|
|
- if quotationFile, err = p.txCreateBusinessDingTalkFile(business.Id, upgradeType, k, files); err != nil {
|
|
|
- return "", err
|
|
|
- }
|
|
|
- }
|
|
|
- // 大数参数文件
|
|
|
- if k == "dashooParamFile" {
|
|
|
- if dashooParamFile, err = p.txCreateBusinessDingTalkFile(business.Id, upgradeType, k, files); err != nil {
|
|
|
- return "", err
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if strings.HasPrefix(req.QuotationFile, "dingtalk") {
|
|
|
- arr := strings.Split(req.QuotationFile, ":")
|
|
|
- quotationFile = append(quotationFile, contractModel.DingFileInfo{
|
|
|
- SpaceId: arr[1],
|
|
|
- FileId: arr[2],
|
|
|
- FileName: fmt.Sprintf("%v报价单", business.NboName),
|
|
|
- FileSize: 10,
|
|
|
- FileType: "",
|
|
|
- })
|
|
|
- }
|
|
|
- if len(quotationFile) == 0 {
|
|
|
- return "", myerrors.TipsError("请上传报价单文件")
|
|
|
- }
|
|
|
- business.ApproType = BusinessUpgradeARequestProcessCode
|
|
|
- dingReq = &workflow.StartProcessInstanceRequest{
|
|
|
- ProcessCode: &business.ApproType,
|
|
|
- FormComponentValues: []*workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
- {
|
|
|
- Id: utils.String("TextField-K2AD4O5B"),
|
|
|
- Name: utils.String("项目编码"),
|
|
|
- Value: utils.String(business.NboCode),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("TextField_BDLSECETVSG0"),
|
|
|
- Name: utils.String("项目名称"),
|
|
|
- Value: utils.String(business.NboName),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("DDSelectField_L4CSUVLU1NK"),
|
|
|
- Name: utils.String("产品线"),
|
|
|
- Value: utils.String(productLine),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("DDSelectField_VSA3U380ZK00"),
|
|
|
- Name: utils.String("升级类型"),
|
|
|
- Value: utils.String(upgradeType),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("TextField_1J9BJMOZ18F40"),
|
|
|
- Name: utils.String("客户名称"),
|
|
|
- Value: utils.String(business.CustName),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("DDSelectField_21ASEWDIB3MO0"),
|
|
|
- Name: utils.String("采购方式"),
|
|
|
- Value: utils.String(gconv.String(purchasingWayType[req.PurchasingWay])),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("TextField_3AIYCSEQLQC0"),
|
|
|
- Name: utils.String("资金来源"),
|
|
|
- Value: utils.String(req.CapitalSource),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("DDDateField_1FW1QZQYBZVK0"),
|
|
|
- Name: utils.String("计划采购时间"),
|
|
|
- Value: utils.String(gconv.String(req.PlanPurchaseTime.Format("Y-m-d"))),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("TextField_1PWK6WHMGITC0"),
|
|
|
- Name: utils.String("客户决策人"),
|
|
|
- Value: utils.String(req.MakerName),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("TextField_16RIJRRF8B340"),
|
|
|
- Name: utils.String("客户决策部门"),
|
|
|
- Value: utils.String(req.MakerDept),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("TextField_7EE0LTUVUSK0"),
|
|
|
- Name: utils.String("客户联系人"),
|
|
|
- Value: utils.String(req.ContactName),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("TextField_E8TFCZUBV940"),
|
|
|
- Name: utils.String("客户联系人电话/微信"),
|
|
|
- Value: utils.String(req.ContactTelephone),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("DDSelectField_5R11VVM6GI00"),
|
|
|
- Name: utils.String("是否我司参数"),
|
|
|
- Value: utils.String(gconv.String(yesOrNoType[req.IsAdoptDashoo])),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("DDAttachment_11Q7DBRKE6HC0"),
|
|
|
- Name: utils.String("附件"),
|
|
|
- Value: utils.String(gconv.String(dashooParamFile)),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("TextField_FJI7GL9E8W80"),
|
|
|
- Name: utils.String("竞争公司"),
|
|
|
- Value: utils.String(req.Competitor),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("TextField_1NC9MEUBDBR40"),
|
|
|
- Name: utils.String("客户倾向厂家"),
|
|
|
- Value: utils.String(req.CustomerIntentionFactory),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("TextField_AEUWH63LJ0O0"),
|
|
|
- Name: utils.String("销售工程师"),
|
|
|
- Value: utils.String(business.SaleName),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("DDAttachment_19Y01ZRBFWXS0"),
|
|
|
- Name: utils.String("上传报价单"),
|
|
|
- Value: utils.String(gconv.String(quotationFile)),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("TextareaField_1GEL8JJL3H5S0"),
|
|
|
- Name: utils.String("备注"),
|
|
|
- Value: utils.String(req.Remark),
|
|
|
- },
|
|
|
- },
|
|
|
- }
|
|
|
-
|
|
|
- default:
|
|
|
- return "", nil
|
|
|
- }
|
|
|
- instanceId, err = workflowSrv.StartProcessInstance(bizCode, workflowModel.ProjectUpGrade, "", dingReq)
|
|
|
- if err != nil {
|
|
|
- g.Log().Error(err)
|
|
|
- return "", err
|
|
|
- }
|
|
|
- return instanceId, nil
|
|
|
-}
|
|
|
+//// BusUpgradeDingEvent 项目升级钉钉审批流调用
|
|
|
+//func (p *businessService) BusUpgradeDingEvent(business *model.ProjBusiness, req *model.BusinessUpgradeReq, fileMap map[string]*multipart.FileHeader) (instanceId string, err error) {
|
|
|
+// upgradeType := p.getBusDingUpgradeType(business.NboType, req.NboType)
|
|
|
+// if upgradeType == "" {
|
|
|
+// return "", myerrors.TipsError("错误的升级类型")
|
|
|
+// }
|
|
|
+// productLineMap, err := service.GetDictDataTreeByType(p.Ctx, "sys_product_line")
|
|
|
+// if err != nil {
|
|
|
+// return "", err
|
|
|
+// }
|
|
|
+// productLine := gconv.String(productLineMap.Get(business.ProductLine))
|
|
|
+//
|
|
|
+// dingProductList := make([][]*workflow.StartProcessInstanceRequestFormComponentValues, 0)
|
|
|
+// for _, item := range req.Products {
|
|
|
+// pInfo := make([]*workflow.StartProcessInstanceRequestFormComponentValues, 0)
|
|
|
+// pInfo = append(pInfo, &workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
+// Id: utils.String("TextField_8P2W917Q5I40"),
|
|
|
+// Name: utils.String("产品编码"),
|
|
|
+// Value: utils.String(item.ProdCode),
|
|
|
+// })
|
|
|
+// pInfo = append(pInfo, &workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
+// Id: utils.String("TextField_1W2HGNQFLLA80"),
|
|
|
+// Name: utils.String("产品名称"),
|
|
|
+// Value: utils.String(item.ProdName),
|
|
|
+// })
|
|
|
+// pInfo = append(pInfo, &workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
+// Id: utils.String("TextField_1OPT3MZL76GW0"),
|
|
|
+// Name: utils.String("产品类别"),
|
|
|
+// Value: utils.String(gconv.String(productLineMap.Get(item.ProdClass))),
|
|
|
+// })
|
|
|
+// pInfo = append(pInfo, &workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
+// Id: utils.String("TextField_O405QBZMPW00"),
|
|
|
+// Name: utils.String("产品单价"),
|
|
|
+// Value: utils.String(gconv.String(item.ProdPrice)),
|
|
|
+// })
|
|
|
+// pInfo = append(pInfo, &workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
+// Id: utils.String("TextField_23P54AZUW4SG0"),
|
|
|
+// Name: utils.String("数量"),
|
|
|
+// Value: utils.String(gconv.String(item.ProdNum)),
|
|
|
+// })
|
|
|
+// dingProductList = append(dingProductList, pInfo)
|
|
|
+// }
|
|
|
+//
|
|
|
+// // 审批流
|
|
|
+// workflowSrv, _ := workflowService.NewFlowService(p.Ctx)
|
|
|
+// // OMS项目升级 审批
|
|
|
+// var dingReq *workflow.StartProcessInstanceRequest
|
|
|
+// bizCode := business.NboCode + ":" + strconv.Itoa(business.Id)
|
|
|
+//
|
|
|
+// switch req.NboType {
|
|
|
+// case StatusC:
|
|
|
+// business.ApproType = BusinessUpgradeCRequestProcessCode
|
|
|
+// dingReq = &workflow.StartProcessInstanceRequest{
|
|
|
+// ProcessCode: &business.ApproType,
|
|
|
+// FormComponentValues: []*workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
+// {
|
|
|
+// Id: utils.String("TextField-K2AD4O5B"),
|
|
|
+// Name: utils.String("项目编码"),
|
|
|
+// Value: utils.String(business.NboCode),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("TextField_BDLSECETVSG0"),
|
|
|
+// Name: utils.String("项目名称"),
|
|
|
+// Value: utils.String(business.NboName),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("DDSelectField_1MJU37HGJX4W0"),
|
|
|
+// Name: utils.String("产品线"),
|
|
|
+// Value: utils.String(productLine),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("DDSelectField_VSA3U380ZK00"),
|
|
|
+// Name: utils.String("升级类型"),
|
|
|
+// Value: utils.String(upgradeType),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("TextField_1J9BJMOZ18F40"),
|
|
|
+// Name: utils.String("客户名称"),
|
|
|
+// Value: utils.String(business.CustName),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("TextField_AEUWH63LJ0O0"),
|
|
|
+// Name: utils.String("销售工程师"),
|
|
|
+// Value: utils.String(business.SaleName),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("TextareaField_1LO81IKHH91C0"),
|
|
|
+// Name: utils.String("转化原因"),
|
|
|
+// Value: utils.String(req.ProjConversionReason),
|
|
|
+// },
|
|
|
+// },
|
|
|
+// }
|
|
|
+//
|
|
|
+// case StatusB:
|
|
|
+// quotationFile := make([]contractModel.DingFileInfo, 0)
|
|
|
+// if len(fileMap) > 0 {
|
|
|
+// for k, files := range fileMap {
|
|
|
+// // 报价单
|
|
|
+// if k == "quotationFile" {
|
|
|
+// if quotationFile, err = p.txCreateBusinessDingTalkFile(business.Id, upgradeType, k, files); err != nil {
|
|
|
+// return "", err
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+// if len(quotationFile) == 0 {
|
|
|
+// return "", myerrors.TipsError("请上传报价单文件")
|
|
|
+// }
|
|
|
+// business.ApproType = BusinessUpgradeBRequestProcessCode
|
|
|
+// dingReq = &workflow.StartProcessInstanceRequest{
|
|
|
+// ProcessCode: &business.ApproType,
|
|
|
+// FormComponentValues: []*workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
+// {
|
|
|
+// Id: utils.String("TextField-K2AD4O5B"),
|
|
|
+// Name: utils.String("项目编码"),
|
|
|
+// Value: utils.String(business.NboCode),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("TextField_BDLSECETVSG0"),
|
|
|
+// Name: utils.String("项目名称"),
|
|
|
+// Value: utils.String(business.NboName),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("DDSelectField_213JKZA1OUO00"),
|
|
|
+// Name: utils.String("产品线"),
|
|
|
+// Value: utils.String(productLine),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("DDSelectField_VSA3U380ZK00"),
|
|
|
+// Name: utils.String("升级类型"),
|
|
|
+// Value: utils.String(upgradeType),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("TextField_1J9BJMOZ18F40"),
|
|
|
+// Name: utils.String("客户名称"),
|
|
|
+// Value: utils.String(business.CustName),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("NumberField_1F88MCD0W8KG0"),
|
|
|
+// Name: utils.String("项目预算"),
|
|
|
+// Value: utils.String(gconv.String(req.NboBudget)),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("TextField_1PWK6WHMGITC0"),
|
|
|
+// Name: utils.String("渠道销售人员"),
|
|
|
+// Value: utils.String(req.DealerSalesName),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("TextField_M06MZK20POG0"),
|
|
|
+// Name: utils.String("渠道销售电话/微信"),
|
|
|
+// Value: utils.String(req.DealerSalesContact),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("TextField_GL59OGH2Z1S0"),
|
|
|
+// Name: utils.String("预计出货金额"),
|
|
|
+// Value: utils.String(gconv.String(business.EstTransPrice)),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("TableField_1CGSRAWT8YG0"),
|
|
|
+// Name: utils.String("产品列表"),
|
|
|
+// Value: utils.String(gconv.String(dingProductList)),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("TextField_AEUWH63LJ0O0"),
|
|
|
+// Name: utils.String("销售工程师"),
|
|
|
+// Value: utils.String(business.SaleName),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("DDAttachment_KZPWZJS9GHO0"),
|
|
|
+// Name: utils.String("上传报价单"),
|
|
|
+// Value: utils.String(gconv.String(quotationFile)),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("TextareaField_1GEL8JJL3H5S0"),
|
|
|
+// Name: utils.String("备注"),
|
|
|
+// Value: utils.String(req.Remark),
|
|
|
+// },
|
|
|
+// },
|
|
|
+// }
|
|
|
+//
|
|
|
+// case StatusA:
|
|
|
+// var dashooParamFile []contractModel.DingFileInfo
|
|
|
+// var quotationFile []contractModel.DingFileInfo
|
|
|
+// if len(fileMap) > 0 {
|
|
|
+// for k, files := range fileMap {
|
|
|
+// // 报价单
|
|
|
+// if k == "quotationFile" {
|
|
|
+// if quotationFile, err = p.txCreateBusinessDingTalkFile(business.Id, upgradeType, k, files); err != nil {
|
|
|
+// return "", err
|
|
|
+// }
|
|
|
+// }
|
|
|
+// // 大数参数文件
|
|
|
+// if k == "dashooParamFile" {
|
|
|
+// if dashooParamFile, err = p.txCreateBusinessDingTalkFile(business.Id, upgradeType, k, files); err != nil {
|
|
|
+// return "", err
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+// if strings.HasPrefix(req.QuotationFile, "dingtalk") {
|
|
|
+// arr := strings.Split(req.QuotationFile, ":")
|
|
|
+// quotationFile = append(quotationFile, contractModel.DingFileInfo{
|
|
|
+// SpaceId: arr[1],
|
|
|
+// FileId: arr[2],
|
|
|
+// FileName: fmt.Sprintf("%v报价单", business.NboName),
|
|
|
+// FileSize: 10,
|
|
|
+// FileType: "",
|
|
|
+// })
|
|
|
+// }
|
|
|
+// if len(quotationFile) == 0 {
|
|
|
+// return "", myerrors.TipsError("请上传报价单文件")
|
|
|
+// }
|
|
|
+// business.ApproType = BusinessUpgradeARequestProcessCode
|
|
|
+// dingReq = &workflow.StartProcessInstanceRequest{
|
|
|
+// ProcessCode: &business.ApproType,
|
|
|
+// FormComponentValues: []*workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
+// {
|
|
|
+// Id: utils.String("TextField-K2AD4O5B"),
|
|
|
+// Name: utils.String("项目编码"),
|
|
|
+// Value: utils.String(business.NboCode),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("TextField_BDLSECETVSG0"),
|
|
|
+// Name: utils.String("项目名称"),
|
|
|
+// Value: utils.String(business.NboName),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("DDSelectField_L4CSUVLU1NK"),
|
|
|
+// Name: utils.String("产品线"),
|
|
|
+// Value: utils.String(productLine),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("DDSelectField_VSA3U380ZK00"),
|
|
|
+// Name: utils.String("升级类型"),
|
|
|
+// Value: utils.String(upgradeType),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("TextField_1J9BJMOZ18F40"),
|
|
|
+// Name: utils.String("客户名称"),
|
|
|
+// Value: utils.String(business.CustName),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("DDSelectField_21ASEWDIB3MO0"),
|
|
|
+// Name: utils.String("采购方式"),
|
|
|
+// Value: utils.String(gconv.String(purchasingWayType[req.PurchasingWay])),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("TextField_3AIYCSEQLQC0"),
|
|
|
+// Name: utils.String("资金来源"),
|
|
|
+// Value: utils.String(req.CapitalSource),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("DDDateField_1FW1QZQYBZVK0"),
|
|
|
+// Name: utils.String("计划采购时间"),
|
|
|
+// Value: utils.String(gconv.String(req.PlanPurchaseTime.Format("Y-m-d"))),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("TextField_1PWK6WHMGITC0"),
|
|
|
+// Name: utils.String("客户决策人"),
|
|
|
+// Value: utils.String(req.MakerName),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("TextField_16RIJRRF8B340"),
|
|
|
+// Name: utils.String("客户决策部门"),
|
|
|
+// Value: utils.String(req.MakerDept),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("TextField_7EE0LTUVUSK0"),
|
|
|
+// Name: utils.String("客户联系人"),
|
|
|
+// Value: utils.String(req.ContactName),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("TextField_E8TFCZUBV940"),
|
|
|
+// Name: utils.String("客户联系人电话/微信"),
|
|
|
+// Value: utils.String(req.ContactTelephone),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("DDSelectField_5R11VVM6GI00"),
|
|
|
+// Name: utils.String("是否我司参数"),
|
|
|
+// Value: utils.String(gconv.String(yesOrNoType[req.IsAdoptDashoo])),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("DDAttachment_11Q7DBRKE6HC0"),
|
|
|
+// Name: utils.String("附件"),
|
|
|
+// Value: utils.String(gconv.String(dashooParamFile)),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("TextField_FJI7GL9E8W80"),
|
|
|
+// Name: utils.String("竞争公司"),
|
|
|
+// Value: utils.String(req.Competitor),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("TextField_1NC9MEUBDBR40"),
|
|
|
+// Name: utils.String("客户倾向厂家"),
|
|
|
+// Value: utils.String(req.CustomerIntentionFactory),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("TextField_AEUWH63LJ0O0"),
|
|
|
+// Name: utils.String("销售工程师"),
|
|
|
+// Value: utils.String(business.SaleName),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("DDAttachment_19Y01ZRBFWXS0"),
|
|
|
+// Name: utils.String("上传报价单"),
|
|
|
+// Value: utils.String(gconv.String(quotationFile)),
|
|
|
+// },
|
|
|
+// {
|
|
|
+// Id: utils.String("TextareaField_1GEL8JJL3H5S0"),
|
|
|
+// Name: utils.String("备注"),
|
|
|
+// Value: utils.String(req.Remark),
|
|
|
+// },
|
|
|
+// },
|
|
|
+// }
|
|
|
+//
|
|
|
+// default:
|
|
|
+// return "", nil
|
|
|
+// }
|
|
|
+// instanceId, err = workflowSrv.StartProcessInstance(bizCode, workflowModel.ProjectUpGrade, "", dingReq)
|
|
|
+// if err != nil {
|
|
|
+// g.Log().Error(err)
|
|
|
+// return "", err
|
|
|
+// }
|
|
|
+// return instanceId, nil
|
|
|
+//}
|
|
|
|
|
|
// 项目上传文件至钉钉
|
|
|
func (p *businessService) txCreateBusinessDingTalkFile(businessId int, upgradeType, fileType string, file *multipart.FileHeader) ([]contractModel.DingFileInfo, error) {
|
|
|
@@ -1735,3 +1741,291 @@ func (p *businessService) checkDingTalkNotify(flow *workflowModel.PlatWorkflow,
|
|
|
}
|
|
|
return business, nil
|
|
|
}
|
|
|
+
|
|
|
+// BusUpgradeDingEvent 项目升级钉钉审批流调用
|
|
|
+func (p *businessService) BusUpgradeDingEvent(business *model.ProjBusiness, req *model.BusinessUpgradeReq, fileMap map[string]*multipart.FileHeader) (instanceId string, err error) {
|
|
|
+ upgradeType := p.getBusDingUpgradeType(business.NboType, req.NboType)
|
|
|
+ if upgradeType == "" {
|
|
|
+ return "", myerrors.TipsError("错误的升级类型")
|
|
|
+ }
|
|
|
+ productLineMap, err := service.GetDictDataTreeByType(p.Ctx, "sys_product_line")
|
|
|
+ if err != nil {
|
|
|
+ return "", err
|
|
|
+ }
|
|
|
+ productLine := gconv.String(productLineMap.Get(business.ProductLine))
|
|
|
+
|
|
|
+ dingProductList := make([][]*workflow.StartProcessInstanceRequestFormComponentValues, 0)
|
|
|
+ for _, item := range req.Products {
|
|
|
+ pInfo := make([]*workflow.StartProcessInstanceRequestFormComponentValues, 0)
|
|
|
+
|
|
|
+ productOrderType := workmodel.WorkOrderType{}
|
|
|
+ err = p.WorkTypeDao.Where("work_order_type =?", "").Scan(&productOrderType)
|
|
|
+ if err != nil {
|
|
|
+ return "", err
|
|
|
+ }
|
|
|
+
|
|
|
+ // 转换为map[string]interface{}
|
|
|
+ var productFormColumnMap map[string]interface{}
|
|
|
+ err = json.Unmarshal([]byte(productOrderType.FormColumn), &productFormColumnMap)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("Error:", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ items := productFormColumnMap["items"].([]interface{})
|
|
|
+ for _, columnItem := range items {
|
|
|
+ data := columnItem.(map[string]interface{})
|
|
|
+ dataMap := data["props"].(map[string]string)
|
|
|
+ name := dataMap["label"]
|
|
|
+ values := &workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
+ Id: utils.String(dataMap["id"]),
|
|
|
+ Name: utils.String(name),
|
|
|
+ }
|
|
|
+ switch name {
|
|
|
+ case "产品编码":
|
|
|
+ values.Value = utils.String(item.ProdCode)
|
|
|
+ case "产品名称":
|
|
|
+ values.Value = utils.String(item.ProdName)
|
|
|
+ case "产品类别":
|
|
|
+ values.Value = utils.String(gconv.String(productLineMap.Get(item.ProdClass)))
|
|
|
+ case "产品单价":
|
|
|
+ values.Value = utils.String(gconv.String(item.ProdPrice))
|
|
|
+ case "数量":
|
|
|
+ values.Value = utils.String(gconv.String(item.ProdNum))
|
|
|
+
|
|
|
+ }
|
|
|
+ pInfo = append(pInfo, values)
|
|
|
+ }
|
|
|
+ dingProductList = append(dingProductList, pInfo)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 审批流
|
|
|
+ workflowSrv, _ := workflowService.NewFlowService(p.Ctx)
|
|
|
+ // OMS项目升级 审批
|
|
|
+ var dingReq *workflow.StartProcessInstanceRequest
|
|
|
+ bizCode := business.NboCode + ":" + strconv.Itoa(business.Id)
|
|
|
+
|
|
|
+ orderType := workmodel.WorkOrderType{}
|
|
|
+ err = p.WorkTypeDao.Where("work_order_type =?", req.NboType).Scan(&orderType)
|
|
|
+ if err != nil {
|
|
|
+ return "", err
|
|
|
+ }
|
|
|
+
|
|
|
+ // 转换为map[string]interface{}
|
|
|
+ var formColumnMap map[string]interface{}
|
|
|
+ err = json.Unmarshal([]byte(orderType.FormColumn), &formColumnMap)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("Error:", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ dingReq = &workflow.StartProcessInstanceRequest{}
|
|
|
+ formComponentValues := make([]*workflow.StartProcessInstanceRequestFormComponentValues, 0)
|
|
|
+ items := formColumnMap["items"].([]interface{})
|
|
|
+
|
|
|
+ switch req.NboType {
|
|
|
+ case StatusC:
|
|
|
+ business.ApproType = BusinessUpgradeCRequestProcessCode
|
|
|
+ dingReq = &workflow.StartProcessInstanceRequest{
|
|
|
+ ProcessCode: &business.ApproType,
|
|
|
+ }
|
|
|
+ for _, item := range items {
|
|
|
+ data := item.(map[string]interface{})
|
|
|
+ dataMap := data["props"].(map[string]string)
|
|
|
+ name := dataMap["label"]
|
|
|
+ values := workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
+ Id: utils.String(dataMap["id"]),
|
|
|
+ Name: utils.String(name),
|
|
|
+ }
|
|
|
+ switch name {
|
|
|
+ case "项目编码":
|
|
|
+ values.Value = utils.String(business.NboCode)
|
|
|
+ case "项目名称":
|
|
|
+ values.Value = utils.String(business.NboName)
|
|
|
+ case "产品线":
|
|
|
+ values.Value = utils.String(productLine)
|
|
|
+ case "升级类型":
|
|
|
+ values.Value = utils.String(upgradeType)
|
|
|
+ case "客户名称":
|
|
|
+ values.Value = utils.String(business.CustName)
|
|
|
+ case "销售工程师":
|
|
|
+ values.Value = utils.String(business.SaleName)
|
|
|
+ case "转化原因":
|
|
|
+ values.Value = utils.String(req.ProjConversionReason)
|
|
|
+
|
|
|
+ }
|
|
|
+ formComponentValues = append(formComponentValues, &values)
|
|
|
+ }
|
|
|
+
|
|
|
+ case StatusB:
|
|
|
+ quotationFile := make([]contractModel.DingFileInfo, 0)
|
|
|
+ if len(fileMap) > 0 {
|
|
|
+ for k, files := range fileMap {
|
|
|
+ // 报价单
|
|
|
+ if k == "quotationFile" {
|
|
|
+ if quotationFile, err = p.txCreateBusinessDingTalkFile(business.Id, upgradeType, k, files); err != nil {
|
|
|
+ return "", err
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if len(quotationFile) == 0 {
|
|
|
+ return "", myerrors.TipsError("请上传报价单文件")
|
|
|
+ }
|
|
|
+ business.ApproType = BusinessUpgradeBRequestProcessCode
|
|
|
+ dingReq = &workflow.StartProcessInstanceRequest{
|
|
|
+ ProcessCode: &business.ApproType,
|
|
|
+ }
|
|
|
+ for _, item := range items {
|
|
|
+ data := item.(map[string]interface{})
|
|
|
+ dataMap := data["props"].(map[string]string)
|
|
|
+ name := dataMap["label"]
|
|
|
+ values := workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
+ Id: utils.String(dataMap["id"]),
|
|
|
+ Name: utils.String(name),
|
|
|
+ }
|
|
|
+ switch name {
|
|
|
+ case "项目编码":
|
|
|
+ values.Value = utils.String(business.NboCode)
|
|
|
+ case "项目名称":
|
|
|
+ values.Value = utils.String(business.NboName)
|
|
|
+ case "产品线":
|
|
|
+ values.Value = utils.String(productLine)
|
|
|
+ case "升级类型":
|
|
|
+ values.Value = utils.String(upgradeType)
|
|
|
+ case "客户名称":
|
|
|
+ values.Value = utils.String(business.CustName)
|
|
|
+ case "项目预算":
|
|
|
+ values.Value = utils.String(gconv.String(req.NboBudget))
|
|
|
+ case "渠道销售人员":
|
|
|
+ values.Value = utils.String(req.DealerSalesName)
|
|
|
+ case "渠道销售电话/微信":
|
|
|
+ values.Value = utils.String(req.DealerSalesContact)
|
|
|
+ case "预计出货金额":
|
|
|
+ values.Value = utils.String(gconv.String(business.EstTransPrice))
|
|
|
+ case "产品列表":
|
|
|
+ values.Value = utils.String(gconv.String(dingProductList))
|
|
|
+ case "销售工程师":
|
|
|
+ values.Value = utils.String(business.SaleName)
|
|
|
+ case "上传报价单":
|
|
|
+ values.Value = utils.String(gconv.String(quotationFile))
|
|
|
+ case "备注":
|
|
|
+ values.Value = utils.String(req.Remark)
|
|
|
+
|
|
|
+ }
|
|
|
+ formComponentValues = append(formComponentValues, &values)
|
|
|
+ }
|
|
|
+ dingReq.FormComponentValues = formComponentValues
|
|
|
+
|
|
|
+ case StatusA:
|
|
|
+ var dashooParamFile []contractModel.DingFileInfo
|
|
|
+ var quotationFile []contractModel.DingFileInfo
|
|
|
+ if len(fileMap) > 0 {
|
|
|
+ for k, files := range fileMap {
|
|
|
+ // 报价单
|
|
|
+ if k == "quotationFile" {
|
|
|
+ if quotationFile, err = p.txCreateBusinessDingTalkFile(business.Id, upgradeType, k, files); err != nil {
|
|
|
+ return "", err
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 大数参数文件
|
|
|
+ if k == "dashooParamFile" {
|
|
|
+ if dashooParamFile, err = p.txCreateBusinessDingTalkFile(business.Id, upgradeType, k, files); err != nil {
|
|
|
+ return "", err
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if strings.HasPrefix(req.QuotationFile, "dingtalk") {
|
|
|
+ arr := strings.Split(req.QuotationFile, ":")
|
|
|
+ quotationFile = append(quotationFile, contractModel.DingFileInfo{
|
|
|
+ SpaceId: arr[1],
|
|
|
+ FileId: arr[2],
|
|
|
+ FileName: fmt.Sprintf("%v报价单", business.NboName),
|
|
|
+ FileSize: 10,
|
|
|
+ FileType: "",
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if len(quotationFile) == 0 {
|
|
|
+ return "", myerrors.TipsError("请上传报价单文件")
|
|
|
+ }
|
|
|
+ business.ApproType = BusinessUpgradeARequestProcessCode
|
|
|
+ dingReq = &workflow.StartProcessInstanceRequest{
|
|
|
+ ProcessCode: &business.ApproType,
|
|
|
+ }
|
|
|
+ for _, item := range items {
|
|
|
+ data := item.(map[string]interface{})
|
|
|
+ dataMap := data["props"].(map[string]string)
|
|
|
+ name := dataMap["label"]
|
|
|
+ values := workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
+ Id: utils.String(dataMap["id"]),
|
|
|
+ Name: utils.String(name),
|
|
|
+ }
|
|
|
+ switch name {
|
|
|
+ case "项目编码":
|
|
|
+ values.Value = utils.String(business.NboCode)
|
|
|
+ case "项目名称":
|
|
|
+ values.Value = utils.String(business.NboName)
|
|
|
+ case "产品线":
|
|
|
+ values.Value = utils.String(productLine)
|
|
|
+ case "升级类型":
|
|
|
+ values.Value = utils.String(upgradeType)
|
|
|
+ case "客户名称":
|
|
|
+ values.Value = utils.String(business.CustName)
|
|
|
+ case "采购方式":
|
|
|
+ values.Value = utils.String(gconv.String(purchasingWayType[req.PurchasingWay]))
|
|
|
+ case "资金来源":
|
|
|
+ values.Value = utils.String(req.CapitalSource)
|
|
|
+ case "计划采购时间":
|
|
|
+ values.Value = utils.String(gconv.String(req.PlanPurchaseTime.Format("Y-m-d")))
|
|
|
+ case "客户决策人":
|
|
|
+ values.Value = utils.String(req.MakerName)
|
|
|
+ case "客户决策部门":
|
|
|
+ values.Value = utils.String(req.MakerDept)
|
|
|
+ case "客户联系人":
|
|
|
+ values.Value = utils.String(req.ContactName)
|
|
|
+ case "客户联系人电话/微信":
|
|
|
+ values.Value = utils.String(req.ContactTelephone)
|
|
|
+ case "是否我司参数":
|
|
|
+ values.Value = utils.String(gconv.String(yesOrNoType[req.IsAdoptDashoo]))
|
|
|
+ case "附件":
|
|
|
+ values.Value = utils.String(gconv.String(dashooParamFile))
|
|
|
+ case "竞争公司":
|
|
|
+ values.Value = utils.String(req.Competitor)
|
|
|
+ case "客户倾向厂家":
|
|
|
+ values.Value = utils.String(req.CustomerIntentionFactory)
|
|
|
+ case "销售工程师":
|
|
|
+ values.Value = utils.String(business.SaleName)
|
|
|
+ case "上传报价单":
|
|
|
+ values.Value = utils.String(gconv.String(quotationFile))
|
|
|
+ case "备注":
|
|
|
+ values.Value = utils.String(req.Remark)
|
|
|
+ }
|
|
|
+ formComponentValues = append(formComponentValues, &values)
|
|
|
+ }
|
|
|
+ dingReq.FormComponentValues = formComponentValues
|
|
|
+
|
|
|
+ default:
|
|
|
+ return "", nil
|
|
|
+ }
|
|
|
+ for _, item := range items {
|
|
|
+ data := item.(map[string]interface{})
|
|
|
+ dataMap := data["props"].(map[string]string)
|
|
|
+ name := utils.String(dataMap["label"])
|
|
|
+ values := workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
+ Id: utils.String(dataMap["id"]),
|
|
|
+ Name: name,
|
|
|
+ }
|
|
|
+ values.Value = utils.String("")
|
|
|
+ formComponentValues = append(formComponentValues, &values)
|
|
|
+ }
|
|
|
+ dingReq.FormComponentValues = formComponentValues
|
|
|
+
|
|
|
+ if orderType.WorkflowType == "10" {
|
|
|
+ instanceId, err = workflowSrv.StartProcessInstance(bizCode, workflowModel.ProjectUpGrade, "", dingReq)
|
|
|
+ if err != nil {
|
|
|
+ g.Log().Error(err)
|
|
|
+ return "", err
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return instanceId, nil
|
|
|
+}
|