Bladeren bron

feature:因续签合同导致交付工单无法生成问题

ZZH-wl 1 jaar geleden
bovenliggende
commit
828ce8464a
1 gewijzigde bestanden met toevoegingen van 17 en 17 verwijderingen
  1. 17 17
      opms_parent/app/service/contract/ctr_contract.go

+ 17 - 17
opms_parent/app/service/contract/ctr_contract.go

@@ -2,6 +2,7 @@ package service
 
 import (
 	"context"
+	worksrv "dashoo.cn/micro/app/service/work"
 	"database/sql"
 	"encoding/base64"
 	"encoding/json"
@@ -25,7 +26,6 @@ import (
 	"dashoo.cn/micro/app/service"
 	baseService "dashoo.cn/micro/app/service/base"
 	projsrv "dashoo.cn/micro/app/service/proj"
-	worksrv "dashoo.cn/micro/app/service/work"
 	workflowService "dashoo.cn/micro/app/service/workflow"
 
 	"dashoo.cn/opms_libary/micro_srv"
@@ -1270,10 +1270,6 @@ func ContractApplyApproval(ctx context.Context, flow *workflowModel.PlatWorkflow
 	if contract == nil {
 		return fmt.Errorf("合同不存在:%s Id: %d", flow.BizCode, flow.Id)
 	}
-
-	if err != nil {
-		return err
-	}
 	if msg.ProcessType != "finish" && msg.ProcessType != "terminate" {
 		return fmt.Errorf("无法识别的 ProcessType :%s", msg.ProcessType)
 	}
@@ -1302,13 +1298,13 @@ func ContractApplyApproval(ctx context.Context, flow *workflowModel.PlatWorkflow
 	if status != "30" {
 		return nil
 	}
-	s, err := NewCtrContractService(ctx)
-	if err != nil {
-		return err
-	}
 
 	return contractDao.DB.Transaction(ctx, func(ctx context.Context, tx *gdb.TX) error {
 		// 交付状态(0发起 10项目立项 15进行中 20 完成 30审批拒绝40关闭)
+		_, err = worksrv.DeliverOrderAdd(tx, contractId, request.UserInfo{}, nil, "10")
+		if err != nil {
+			return err
+		}
 		if contract.ContractId != 0 {
 			oldContract, err := contractDao.TX(tx).Where("id = ?", contract.ContractId).One()
 			if err != nil {
@@ -1319,7 +1315,7 @@ func ContractApplyApproval(ctx context.Context, flow *workflowModel.PlatWorkflow
 			SoftwareMaintenanceLimit := int(softSub)
 			hardSub := contract.HardwareMaintenanceEndTime.Sub(oldContract.HardwareMaintenanceBeginTime).Hours() / 24 / 365
 			HardwareMaintenanceLimit := int(hardSub)
-			err = s.AddDynamicsByCurrentUser(tx, int(contract.ContractId), "续签合同审批通过", map[string]interface{}{
+			opnContent := map[string]interface{}{
 				"contractId":                      contract.ContractId,
 				"contractName":                    contract.ContractName,
 				"contractCode":                    contract.ContractCode,
@@ -1331,25 +1327,29 @@ func ContractApplyApproval(ctx context.Context, flow *workflowModel.PlatWorkflow
 				"newSoftwareMaintenanceEndTime":   contract.SoftwareMaintenanceEndTime,
 				"newHardwareMaintenanceBeginTime": contract.HardwareMaintenanceBeginTime,
 				"newHardwareMaintenanceEndTime":   contract.HardwareMaintenanceEndTime,
-			})
+			}
+			dynamics := model.CtrContractDynamics{
+				ContractId: contract.ContractId,
+				OpnPeople:  "系统自动创建",
+				OpnDate:    gtime.Now(),
+				OpnType:    "续签合同审批通过",
+				OpnContent: gconv.String(opnContent),
+			}
+			_, err = contractDao.DB.Model("ctr_contract_dynamics").TX(tx).Data(dynamics).InsertAndGetId()
 			if err != nil {
 				return err
 			}
-
-			_, err = s.Dao.TX(tx).Where("id = ?", contract.ContractId).Data(map[string]interface{}{
+			_, err = contractDao.TX(tx).Where("id = ?", contract.ContractId).Data(map[string]interface{}{
 				"software_maintenance_end_time": contract.SoftwareMaintenanceEndTime,
 				"hardware_maintenance_end_time": contract.HardwareMaintenanceEndTime,
 				"software_maintenance_limit":    SoftwareMaintenanceLimit,
 				"hardware_maintenance_limit":    HardwareMaintenanceLimit,
 			}).Update()
-
 			if err != nil {
 				return err
 			}
 		}
-
-		_, err = worksrv.DeliverOrderAdd(tx, contractId, request.UserInfo{}, nil, "10")
-		return err
+		return nil
 	})
 }