|
|
@@ -57,6 +57,9 @@ func (p *businessService) GetList(req *model.ProjBusinessSearchReq) (total int,
|
|
|
if req.NboName != "" {
|
|
|
db = db.WhereLike("proj."+p.Dao.C.NboName, "%"+req.NboName+"%")
|
|
|
}
|
|
|
+ if req.CustId != 0 { // 客户-项目记录 查看已删除的项目记录
|
|
|
+ db = db.Where("proj."+p.Dao.C.CustId, req.CustId).Unscoped()
|
|
|
+ }
|
|
|
if req.CustName != "" {
|
|
|
db = db.WhereLike("proj."+p.Dao.C.CustName, "%"+req.CustName+"%")
|
|
|
}
|
|
|
@@ -267,10 +270,11 @@ func (p *businessService) Create(req *model.AddProjBusinessReq) (err error) {
|
|
|
_, err = p.CreateProjBusinessDynamics(tx, dynamics, business)
|
|
|
// 审批流
|
|
|
workflowSrv, _ := workflowService.NewFlowService(p.Ctx)
|
|
|
- // OMS项目转移 审批
|
|
|
+ // OMS项目创建 审批
|
|
|
bizCode := business.NboCode + ":" + gconv.String(lastId)
|
|
|
- _, err = workflowSrv.StartProcessInstance(bizCode, workflowModel.ProjectCreate, "", &workflow.StartProcessInstanceRequest{
|
|
|
- ProcessCode: &BusinessCreateRequestProcessCode,
|
|
|
+ business.ApproType = BusinessCreateRequestProcessCode
|
|
|
+ instanceId, err := workflowSrv.StartProcessInstance(bizCode, workflowModel.ProjectCreate, "", &workflow.StartProcessInstanceRequest{
|
|
|
+ ProcessCode: &business.ApproType,
|
|
|
FormComponentValues: []*workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
{
|
|
|
Id: utils.String("TextField-K2AD4O5B"),
|
|
|
@@ -333,7 +337,12 @@ func (p *businessService) Create(req *model.AddProjBusinessReq) (err error) {
|
|
|
g.Log().Error(err)
|
|
|
return err
|
|
|
}
|
|
|
- return err
|
|
|
+ // 更新项目审批信息
|
|
|
+ _, err = p.Dao.TX(tx).Data(g.Map{p.Dao.C.ApproType: business.ApproType, p.Dao.C.ApproInstanceId: instanceId}).Update()
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ return nil
|
|
|
})
|
|
|
|
|
|
return
|
|
|
@@ -351,7 +360,9 @@ func (p *businessService) BusinessCreatedNotify(flow *workflowModel.PlatWorkflow
|
|
|
data[p.Dao.C.ApproStatus] = ApprovalReturn
|
|
|
}
|
|
|
if msg.ProcessType == "finish" && msg.Result == "refuse" {
|
|
|
+ // 创建项目 审批拒绝后删除项目
|
|
|
data[p.Dao.C.ApproStatus] = ApprovalRejection
|
|
|
+ data[p.Dao.C.DeletedTime] = gtime.Now()
|
|
|
}
|
|
|
if msg.ProcessType == "finish" && msg.Result == "agree" {
|
|
|
data[p.Dao.C.ApproStatus] = ApprovalOK
|
|
|
@@ -591,8 +602,9 @@ func (p *businessService) BusinessTransfer(req *model.BusinessTransferReq) error
|
|
|
|
|
|
// OMS项目转移 审批
|
|
|
bizCode := business.NboCode + ":" + strconv.Itoa(business.Id)
|
|
|
- _, err = workflowSrv.StartProcessInstance(bizCode, workflowModel.ProjectTransfer, "", &workflow.StartProcessInstanceRequest{
|
|
|
- ProcessCode: &BusinessTransferRequestProcessCode,
|
|
|
+ business.ApproType = BusinessTransferRequestProcessCode
|
|
|
+ instanceId, err := workflowSrv.StartProcessInstance(bizCode, workflowModel.ProjectTransfer, "", &workflow.StartProcessInstanceRequest{
|
|
|
+ ProcessCode: &business.ApproType,
|
|
|
FormComponentValues: []*workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
{
|
|
|
Id: utils.String("TextField-K2AD4O5B"),
|
|
|
@@ -650,6 +662,11 @@ func (p *businessService) BusinessTransfer(req *model.BusinessTransferReq) error
|
|
|
g.Log().Error(err)
|
|
|
return err
|
|
|
}
|
|
|
+ // 更新项目审批信息
|
|
|
+ _, err = p.Dao.TX(tx).Data(g.Map{p.Dao.C.ApproType: business.ApproType, p.Dao.C.ApproInstanceId: instanceId}).Update()
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
return nil
|
|
|
})
|
|
|
return err
|
|
|
@@ -797,8 +814,16 @@ func (p *businessService) BusinessUpgrade(req *model.BusinessUpgradeReq, fileMap
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
- err = p.BusUpgradeDingEvent(business, req, fileMap)
|
|
|
- return err
|
|
|
+ instanceId, err := p.BusUpgradeDingEvent(business, req, fileMap)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ // 更新项目审批信息
|
|
|
+ _, err = p.Dao.TX(tx).Data(g.Map{p.Dao.C.ApproType: business.ApproType, p.Dao.C.ApproInstanceId: instanceId}).Update()
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ return nil
|
|
|
})
|
|
|
if err != nil {
|
|
|
return err
|
|
|
@@ -828,15 +853,14 @@ func (p *businessService) getBusDingUpgradeType(dbNboType, reqNboType string) st
|
|
|
}
|
|
|
|
|
|
// BusUpgradeDingEvent 项目升级钉钉审批流调用
|
|
|
-func (p *businessService) BusUpgradeDingEvent(business *model.ProjBusiness, req *model.BusinessUpgradeReq, fileMap map[string]*multipart.FileHeader) error {
|
|
|
- var err error
|
|
|
+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("错误的升级类型")
|
|
|
+ return "", myerrors.TipsError("错误的升级类型")
|
|
|
}
|
|
|
productLineMap, err := service.GetDictDataTreeByType(p.Ctx, "sys_product_line")
|
|
|
if err != nil {
|
|
|
- return err
|
|
|
+ return "", err
|
|
|
}
|
|
|
productLine := gconv.String(productLineMap.Get(business.ProductLine))
|
|
|
|
|
|
@@ -878,8 +902,9 @@ func (p *businessService) BusUpgradeDingEvent(business *model.ProjBusiness, req
|
|
|
bizCode := business.NboCode + ":" + strconv.Itoa(business.Id)
|
|
|
switch req.NboType {
|
|
|
case StatusC:
|
|
|
+ business.ApproType = BusinessUpgradeCRequestProcessCode
|
|
|
dingReq = &workflow.StartProcessInstanceRequest{
|
|
|
- ProcessCode: &BusinessUpgradeCRequestProcessCode,
|
|
|
+ ProcessCode: &business.ApproType,
|
|
|
FormComponentValues: []*workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
{
|
|
|
Id: utils.String("TextField-K2AD4O5B"),
|
|
|
@@ -926,17 +951,17 @@ func (p *businessService) BusUpgradeDingEvent(business *model.ProjBusiness, req
|
|
|
// 报价单
|
|
|
if k == "quotationFile" {
|
|
|
if quotationFile, err = p.txCreateBusinessDingTalkFile(business.Id, upgradeType, k, files); err != nil {
|
|
|
- return err
|
|
|
+ return "", err
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if len(quotationFile) == 0 {
|
|
|
- return myerrors.TipsError("请上传报价单文件")
|
|
|
+ return "", myerrors.TipsError("请上传报价单文件")
|
|
|
}
|
|
|
- processCode := &BusinessUpgradeBRequestProcessCode
|
|
|
+ business.ApproType = BusinessUpgradeBRequestProcessCode
|
|
|
dingReq = &workflow.StartProcessInstanceRequest{
|
|
|
- ProcessCode: processCode,
|
|
|
+ ProcessCode: &business.ApproType,
|
|
|
FormComponentValues: []*workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
{
|
|
|
Id: utils.String("TextField-K2AD4O5B"),
|
|
|
@@ -1014,13 +1039,13 @@ func (p *businessService) BusUpgradeDingEvent(business *model.ProjBusiness, req
|
|
|
// 报价单
|
|
|
if k == "quotationFile" {
|
|
|
if quotationFile, err = p.txCreateBusinessDingTalkFile(business.Id, upgradeType, k, files); err != nil {
|
|
|
- return err
|
|
|
+ return "", err
|
|
|
}
|
|
|
}
|
|
|
// 大数参数文件
|
|
|
if k == "dashooParamFile" {
|
|
|
if dashooParamFile, err = p.txCreateBusinessDingTalkFile(business.Id, upgradeType, k, files); err != nil {
|
|
|
- return err
|
|
|
+ return "", err
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -1036,11 +1061,11 @@ func (p *businessService) BusUpgradeDingEvent(business *model.ProjBusiness, req
|
|
|
})
|
|
|
}
|
|
|
if len(quotationFile) == 0 {
|
|
|
- return myerrors.TipsError("请上传报价单文件")
|
|
|
+ return "", myerrors.TipsError("请上传报价单文件")
|
|
|
}
|
|
|
- processCode := &BusinessUpgradeARequestProcessCode
|
|
|
+ business.ApproType = BusinessUpgradeARequestProcessCode
|
|
|
dingReq = &workflow.StartProcessInstanceRequest{
|
|
|
- ProcessCode: processCode,
|
|
|
+ ProcessCode: &business.ApproType,
|
|
|
FormComponentValues: []*workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
{
|
|
|
Id: utils.String("TextField-K2AD4O5B"),
|
|
|
@@ -1141,14 +1166,14 @@ func (p *businessService) BusUpgradeDingEvent(business *model.ProjBusiness, req
|
|
|
}
|
|
|
|
|
|
default:
|
|
|
- return nil
|
|
|
+ return "", nil
|
|
|
}
|
|
|
- _, err = workflowSrv.StartProcessInstance(bizCode, workflowModel.ProjectUpGrade, "", dingReq)
|
|
|
+ instanceId, err = workflowSrv.StartProcessInstance(bizCode, workflowModel.ProjectUpGrade, "", dingReq)
|
|
|
if err != nil {
|
|
|
g.Log().Error(err)
|
|
|
- return err
|
|
|
+ return "", err
|
|
|
}
|
|
|
- return nil
|
|
|
+ return instanceId, nil
|
|
|
}
|
|
|
|
|
|
// 项目上传文件至钉钉
|
|
|
@@ -1338,8 +1363,9 @@ func (p *businessService) BusinessDowngrade(req *model.BusinessDowngradeReq) err
|
|
|
}
|
|
|
// OMS项目降级 审批
|
|
|
bizCode := business.NboCode + ":" + strconv.Itoa(business.Id)
|
|
|
- _, err = workflowSrv.StartProcessInstance(bizCode, workflowModel.ProjectDownGrade, "", &workflow.StartProcessInstanceRequest{
|
|
|
- ProcessCode: &BusinessDowngradeRequestProcessCode,
|
|
|
+ business.ApproType = BusinessDowngradeRequestProcessCode
|
|
|
+ instanceId, err := workflowSrv.StartProcessInstance(bizCode, workflowModel.ProjectDownGrade, "", &workflow.StartProcessInstanceRequest{
|
|
|
+ ProcessCode: &business.ApproType,
|
|
|
FormComponentValues: []*workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
{
|
|
|
Id: utils.String("TextField-K2AD4O5B"),
|
|
|
@@ -1397,6 +1423,11 @@ func (p *businessService) BusinessDowngrade(req *model.BusinessDowngradeReq) err
|
|
|
g.Log().Error(err)
|
|
|
return err
|
|
|
}
|
|
|
+ // 更新项目审批信息
|
|
|
+ _, err = p.Dao.TX(tx).Data(g.Map{p.Dao.C.ApproType: business.ApproType, p.Dao.C.ApproInstanceId: instanceId}).Update()
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
return nil
|
|
|
})
|
|
|
return err
|
|
|
@@ -1585,8 +1616,9 @@ func (p *businessService) ConvertToReserve(req *model.BusinessToReserveReq) erro
|
|
|
|
|
|
// OMS项目转储备 审批
|
|
|
bizCode := business.NboCode + ":" + strconv.Itoa(business.Id)
|
|
|
- _, err = workflowSrv.StartProcessInstance(bizCode, workflowModel.ProjectToReserve, "", &workflow.StartProcessInstanceRequest{
|
|
|
- ProcessCode: &ConvertToReserveRequestProcessCode,
|
|
|
+ business.ApproType = ConvertToReserveRequestProcessCode
|
|
|
+ instanceId, err := workflowSrv.StartProcessInstance(bizCode, workflowModel.ProjectToReserve, "", &workflow.StartProcessInstanceRequest{
|
|
|
+ ProcessCode: &business.ApproType,
|
|
|
FormComponentValues: []*workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
{
|
|
|
Id: utils.String("TextField-K2AD4O5B"),
|
|
|
@@ -1629,6 +1661,11 @@ func (p *businessService) ConvertToReserve(req *model.BusinessToReserveReq) erro
|
|
|
g.Log().Error(err)
|
|
|
return err
|
|
|
}
|
|
|
+ // 更新项目审批信息
|
|
|
+ _, err = p.Dao.TX(tx).Data(g.Map{p.Dao.C.ApproType: business.ApproType, p.Dao.C.ApproInstanceId: instanceId}).Update()
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
return nil
|
|
|
})
|
|
|
|