|
|
@@ -6,19 +6,23 @@ import (
|
|
|
model "dashoo.cn/micro/app/model/cust"
|
|
|
workflowModel "dashoo.cn/micro/app/model/workflow"
|
|
|
"dashoo.cn/micro/app/service"
|
|
|
+ workflowService "dashoo.cn/micro/app/service/workflow"
|
|
|
"dashoo.cn/opms_libary/micro_srv"
|
|
|
"dashoo.cn/opms_libary/myerrors"
|
|
|
"dashoo.cn/opms_libary/plugin/dingtalk/message"
|
|
|
+ "dashoo.cn/opms_libary/plugin/dingtalk/workflow"
|
|
|
"dashoo.cn/opms_libary/request"
|
|
|
+ "dashoo.cn/opms_libary/utils"
|
|
|
"database/sql"
|
|
|
"fmt"
|
|
|
"github.com/gogf/gf/database/gdb"
|
|
|
"github.com/gogf/gf/frame/g"
|
|
|
"github.com/gogf/gf/os/gtime"
|
|
|
"github.com/gogf/gf/util/gvalid"
|
|
|
+ "strconv"
|
|
|
)
|
|
|
|
|
|
-var BidCloseLoopCode = "" // 客户招标信息闭环审批
|
|
|
+var BidCloseLoopCode = "PROC-35FEF564-21F8-41CA-A38F-DC1E61C21C71" // 客户招标信息闭环审批
|
|
|
|
|
|
type CustCustomerBidRecordService struct {
|
|
|
Dao *dao.CustCustomerBidRecordDao
|
|
|
@@ -266,31 +270,71 @@ func (s CustCustomerBidRecordService) CloseLoop(ctx context.Context, req *model.
|
|
|
if bid.Status != "10" && bid.Status != "40" {
|
|
|
return myerrors.TipsError("该招标信息不可闭环操作")
|
|
|
}
|
|
|
+ // 客户信息
|
|
|
+ cus, err := s.CustomerDao.Where(fmt.Sprintf("id='%v'", bid.CustId)).One()
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ // 产品线名称
|
|
|
+ lineName := ""
|
|
|
+ line, err := s.Dao.DB.Model("sys_dict_data").Where(fmt.Sprintf("dict_value='%v' AND dict_type='sys_product_line'", bid.ProductLine)).One()
|
|
|
+ if err != nil && err != sql.ErrNoRows {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ if line != nil {
|
|
|
+ lineName = line["dict_label"].String()
|
|
|
+ }
|
|
|
|
|
|
err = s.Dao.Transaction(context.TODO(), func(ctx1 context.Context, tx *gdb.TX) error {
|
|
|
// 改为待审批状态
|
|
|
- _, err = s.Dao.Update(fmt.Sprintf("status='20',close_loop_msg='%v'", req.CloseLoopMsg), fmt.Sprintf("id='%v'", req.Id))
|
|
|
+ _, err := s.Dao.Update(fmt.Sprintf("status='20',close_loop_msg='%v'", req.CloseReason), fmt.Sprintf("id='%v'", req.Id))
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
// 调用钉钉审批
|
|
|
- //// 审批流
|
|
|
- //workflowSrv, _ := workflowService.NewFlowService(ctx)
|
|
|
- //bizCode := strconv.Itoa(req.Id)
|
|
|
- //_, err = workflowSrv.StartProcessInstance(bizCode, workflowModel.BidCloseLoop, "", &workflow.StartProcessInstanceRequest{
|
|
|
- // ProcessCode: &BidCloseLoopCode,
|
|
|
- // FormComponentValues: []*workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
- // {
|
|
|
- // Id: utils.String("TextField-K2AD4O5B"),
|
|
|
- // Name: utils.String("闭环信息"),
|
|
|
- // Value: utils.String(req.CloseLoopMsg),
|
|
|
- // },
|
|
|
- // },
|
|
|
- //})
|
|
|
- //if err != nil {
|
|
|
- // g.Log().Error(err)
|
|
|
- // return err
|
|
|
- //}
|
|
|
+ // 审批流
|
|
|
+ name := ""
|
|
|
+ if req.CloseMethod == "已创建项目" {
|
|
|
+ name = req.BusinessName
|
|
|
+ } else if req.CloseMethod == "已创建经销商" {
|
|
|
+ name = req.DistributorName
|
|
|
+ }
|
|
|
+ workflowSrv, _ := workflowService.NewFlowService(ctx)
|
|
|
+ bizCode := strconv.Itoa(req.Id)
|
|
|
+ _, err = workflowSrv.StartProcessInstance(bizCode, workflowModel.BidCloseLoop, "", &workflow.StartProcessInstanceRequest{
|
|
|
+ ProcessCode: &BidCloseLoopCode,
|
|
|
+ FormComponentValues: []*workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
+ {
|
|
|
+ Id: utils.String("TextField-K2AD4O5B"),
|
|
|
+ Name: utils.String("所属销售"),
|
|
|
+ Value: utils.String(cus.SalesName),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Id: utils.String("DDSelectField_1RVSHN0116740"),
|
|
|
+ Name: utils.String("产品线"),
|
|
|
+ Value: utils.String(lineName),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Id: utils.String("DDSelectField_21X20CB9B20W0"),
|
|
|
+ Name: utils.String("闭环方式"),
|
|
|
+ Value: utils.String(req.CloseMethod),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Id: utils.String("TextField_1GD012PXFMGW0"),
|
|
|
+ Name: utils.String("名称"),
|
|
|
+ Value: utils.String(name),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Id: utils.String("TextareaField_FXZRRAQB7CW0"),
|
|
|
+ Name: utils.String("申请原因"),
|
|
|
+ Value: utils.String(req.CloseReason),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ })
|
|
|
+ if err != nil {
|
|
|
+ g.Log().Error(err)
|
|
|
+ return err
|
|
|
+ }
|
|
|
|
|
|
return err
|
|
|
})
|