浏览代码

feature(订单管理系统):
1、新建合同时,销售工程师由项目所属人拉取过来。

2、合同编码:大数华创首字母(DH)+技术合同首字母(JS)/销售合同首字母(XS)+年份后两位+月份+录入序号(1001)  例如:DSXS23031015

3、新建合同,增加登记“运维服务费约定” 字段:service_fee_agreement,在详情页面展示。
3.打卡方式显示居家
4.跟进方式修改

niezch 2 年之前
父节点
当前提交
5fbbffd012

+ 14 - 13
opms_parent/app/model/contract/ctr_contract.go

@@ -70,19 +70,20 @@ type CtrContractAddReq struct {
 	// ContractAmount    float64         `json:"contractAmount"`    // 合同金额
 	// InvoiceAmount     float64         `json:"invoiceAmount"`     // 已开票金额
 	// CollectedAmount   float64         `json:"collectedAmount"`   // 已回款金额
-	ContractStartTime *gtime.Time     `json:"contractStartTime"` // 合同开始时间
-	ContractEndTime   *gtime.Time     `json:"contractEndTime"`   // 合同结束时间
-	InchargeId        int             `json:"inchargeId"`        // 负责人ID
-	InchargeName      string          `json:"inchargeName"`      // 负责人
-	SignatoryId       int             `json:"signatoryId"`       // 公司签约人ID
-	SignatoryName     string          `json:"signatoryName"`     // 公司签约人
-	SignatoryType     string          `json:"signatoryType"`     // 签订单位类型 10 终端用户 20 经销商 30 代理商
-	CustSignatoryId   int             `json:"custSignatoryId"`   // 客户签约人ID
-	CustSignatoryName string          `json:"custSignatoryName"` // 客户签约人
-	DistributorId     int             `json:"distributorId"`     // 经销商ID
-	DistributorName   string          `json:"distributorName"`   // 经销商
-	Remark            string          `json:"remark"`            // 备注
-	Product           []CtrAddProduct `json:"product"`           // 产品
+	ContractStartTime   *gtime.Time     `json:"contractStartTime"`   // 合同开始时间
+	ContractEndTime     *gtime.Time     `json:"contractEndTime"`     // 合同结束时间
+	InchargeId          int             `json:"inchargeId"`          // 负责人ID
+	InchargeName        string          `json:"inchargeName"`        // 负责人
+	SignatoryId         int             `json:"signatoryId"`         // 公司签约人ID
+	SignatoryName       string          `json:"signatoryName"`       // 公司签约人
+	SignatoryType       string          `json:"signatoryType"`       // 签订单位类型 10 终端用户 20 经销商 30 代理商
+	CustSignatoryId     int             `json:"custSignatoryId"`     // 客户签约人ID
+	CustSignatoryName   string          `json:"custSignatoryName"`   // 客户签约人
+	DistributorId       int             `json:"distributorId"`       // 经销商ID
+	DistributorName     string          `json:"distributorName"`     // 经销商
+	Remark              string          `json:"remark"`              // 备注
+	Product             []CtrAddProduct `json:"product"`             // 产品
+	ServiceFeeAgreement string          `json:"serviceFeeAgreement"` // 备注
 }
 
 type CtrContractUpdateReq struct {

+ 38 - 37
opms_parent/app/model/contract/internal/ctr_contract.go

@@ -10,41 +10,42 @@ import (
 
 // CtrContract is the golang structure for table ctr_contract.
 type CtrContract struct {
-	Id                int         `orm:"id,primary"          json:"id"`                // 主键
-	ContractCode      string      `orm:"contract_code"       json:"contractCode"`      // 合同编号
-	ContractName      string      `orm:"contract_name"       json:"contractName"`      // 合同名称
-	CustId            int         `orm:"cust_id"             json:"custId"`            // 关联客户
-	CustName          string      `orm:"cust_name"           json:"custName"`          // 客户名称
-	ProductLine       string      `orm:"product_line"        json:"productLine"`       // 产品线
-	IsBig             string      `orm:"is_big"              json:"isBig"`             // 是否为大项目
-	CustProvinceId    int         `orm:"cust_province_id"    json:"custProvinceId"`    // 所在省ID
-	CustProvince      string      `orm:"cust_province"       json:"custProvince"`      // 所在省
-	CustCityId        int         `orm:"cust_city_id"        json:"custCityId"`        // 所在市ID
-	CustCity          string      `orm:"cust_city"           json:"custCity"`          // 所在市
-	NboId             int         `orm:"nbo_id"              json:"nboId"`             // 关联项目
-	NboName           string      `orm:"nbo_name"            json:"nboName"`           // 项目名称
-	ApproStatus       string      `orm:"appro_status"        json:"approStatus"`       // 审核状态 10 待提交审核 20 待审核 30 审核已同意 40 审核已拒绝 50 审核已撤销
-	ContractType      string      `orm:"contract_type"       json:"contractType"`      // 合同类型
-	ContractAmount    float64     `orm:"contract_amount"     json:"contractAmount"`    // 合同金额
-	InvoiceAmount     float64     `orm:"invoice_amount"      json:"invoiceAmount"`     // 已开票金额
-	CollectedAmount   float64     `orm:"collected_amount"    json:"collectedAmount"`   // 已回款金额
-	ContractStartTime *gtime.Time `orm:"contract_start_time" json:"contractStartTime"` // 合同开始时间
-	ContractEndTime   *gtime.Time `orm:"contract_end_time"   json:"contractEndTime"`   // 合同结束时间
-	InchargeId        int         `orm:"incharge_id"         json:"inchargeId"`        // 负责人ID
-	InchargeName      string      `orm:"incharge_name"       json:"inchargeName"`      // 负责人(销售工程师)
-	SignatoryId       int         `orm:"signatory_id"        json:"signatoryId"`       // 公司签约人ID
-	SignatoryName     string      `orm:"signatory_name"      json:"signatoryName"`     // 公司签约人
-	SignatoryType     string      `orm:"signatory_type"      json:"signatoryType"`     // 签订单位类型 10 终端用户 20 经销商 30 代理商
-	CustSignatoryId   int         `orm:"cust_signatory_id"   json:"custSignatoryId"`   // 客户签约人ID
-	CustSignatoryName string      `orm:"cust_signatory_name" json:"custSignatoryName"` // 客户签约人
-	DistributorId     int         `orm:"distributor_id"      json:"distributorId"`     // 经销商ID
-	DistributorName   string      `orm:"distributor_name"    json:"distributorName"`   // 经销商
-	Remark            string      `orm:"remark"              json:"remark"`            // 备注
-	CreatedBy         int         `orm:"created_by"          json:"createdBy"`         // 创建者
-	CreatedName       string      `orm:"created_name"        json:"createdName"`       // 创建人
-	CreatedTime       *gtime.Time `orm:"created_time"        json:"createdTime"`       // 创建时间
-	UpdatedBy         int         `orm:"updated_by"          json:"updatedBy"`         // 更新者
-	UpdatedName       string      `orm:"updated_name"        json:"updatedName"`       // 更新人
-	UpdatedTime       *gtime.Time `orm:"updated_time"        json:"updatedTime"`       // 更新时间
-	DeletedTime       *gtime.Time `orm:"deleted_time"        json:"deletedTime"`       // 删除时间
+	Id                  int         `orm:"id,primary"          json:"id"`                   // 主键
+	ContractCode        string      `orm:"contract_code"       json:"contractCode"`         // 合同编号
+	ContractName        string      `orm:"contract_name"       json:"contractName"`         // 合同名称
+	CustId              int         `orm:"cust_id"             json:"custId"`               // 关联客户
+	CustName            string      `orm:"cust_name"           json:"custName"`             // 客户名称
+	ProductLine         string      `orm:"product_line"        json:"productLine"`          // 产品线
+	IsBig               string      `orm:"is_big"              json:"isBig"`                // 是否为大项目
+	CustProvinceId      int         `orm:"cust_province_id"    json:"custProvinceId"`       // 所在省ID
+	CustProvince        string      `orm:"cust_province"       json:"custProvince"`         // 所在省
+	CustCityId          int         `orm:"cust_city_id"        json:"custCityId"`           // 所在市ID
+	CustCity            string      `orm:"cust_city"           json:"custCity"`             // 所在市
+	NboId               int         `orm:"nbo_id"              json:"nboId"`                // 关联项目
+	NboName             string      `orm:"nbo_name"            json:"nboName"`              // 项目名称
+	ApproStatus         string      `orm:"appro_status"        json:"approStatus"`          // 审核状态 10 待提交审核 20 待审核 30 审核已同意 40 审核已拒绝 50 审核已撤销
+	ContractType        string      `orm:"contract_type"       json:"contractType"`         // 合同类型
+	ContractAmount      float64     `orm:"contract_amount"     json:"contractAmount"`       // 合同金额
+	InvoiceAmount       float64     `orm:"invoice_amount"      json:"invoiceAmount"`        // 已开票金额
+	CollectedAmount     float64     `orm:"collected_amount"    json:"collectedAmount"`      // 已回款金额
+	ContractStartTime   *gtime.Time `orm:"contract_start_time" json:"contractStartTime"`    // 合同开始时间
+	ContractEndTime     *gtime.Time `orm:"contract_end_time"   json:"contractEndTime"`      // 合同结束时间
+	InchargeId          int         `orm:"incharge_id"         json:"inchargeId"`           // 负责人ID
+	InchargeName        string      `orm:"incharge_name"       json:"inchargeName"`         // 负责人(销售工程师)
+	SignatoryId         int         `orm:"signatory_id"        json:"signatoryId"`          // 公司签约人ID
+	SignatoryName       string      `orm:"signatory_name"      json:"signatoryName"`        // 公司签约人
+	SignatoryType       string      `orm:"signatory_type"      json:"signatoryType"`        // 签订单位类型 10 终端用户 20 经销商 30 代理商
+	CustSignatoryId     int         `orm:"cust_signatory_id"   json:"custSignatoryId"`      // 客户签约人ID
+	CustSignatoryName   string      `orm:"cust_signatory_name" json:"custSignatoryName"`    // 客户签约人
+	DistributorId       int         `orm:"distributor_id"      json:"distributorId"`        // 经销商ID
+	DistributorName     string      `orm:"distributor_name"    json:"distributorName"`      // 经销商
+	Remark              string      `orm:"remark"              json:"remark"`               // 备注
+	ServiceFeeAgreement string      `orm:"service_fee_agreement"json:"serviceFeeAgreement"` // 备注
+	CreatedBy           int         `orm:"created_by"          json:"createdBy"`            // 创建者
+	CreatedName         string      `orm:"created_name"        json:"createdName"`          // 创建人
+	CreatedTime         *gtime.Time `orm:"created_time"        json:"createdTime"`          // 创建时间
+	UpdatedBy           int         `orm:"updated_by"          json:"updatedBy"`            // 更新者
+	UpdatedName         string      `orm:"updated_name"        json:"updatedName"`          // 更新人
+	UpdatedTime         *gtime.Time `orm:"updated_time"        json:"updatedTime"`          // 更新时间
+	DeletedTime         *gtime.Time `orm:"deleted_time"        json:"deletedTime"`          // 删除时间
 }

+ 36 - 35
opms_parent/app/service/contract/ctr_contract.go

@@ -379,41 +379,42 @@ func (s CtrContractService) Add(ctx context.Context, req *model.CtrContractAddRe
 		contractAmount += (p.TranPrice * float64(p.ProdNum))
 	}
 	ctr := model.CtrContract{
-		ContractCode:      req.ContractCode,
-		ContractName:      req.ContractName,
-		CustId:            nbo.CustId,
-		CustName:          nbo.CustName,
-		NboId:             nbo.Id,
-		NboName:           nbo.NboName,
-		IsBig:             nbo.IsBig,
-		ProductLine:       nbo.ProductLine,
-		CustProvinceId:    nbo.CustProvinceId,
-		CustProvince:      nbo.CustProvince,
-		CustCityId:        nbo.CustCityId,
-		CustCity:          nbo.CustCity,
-		ApproStatus:       "10",
-		ContractType:      req.ContractType,
-		ContractAmount:    contractAmount,
-		InvoiceAmount:     0,
-		CollectedAmount:   0,
-		ContractStartTime: req.ContractStartTime,
-		ContractEndTime:   req.ContractEndTime,
-		InchargeId:        req.InchargeId,
-		InchargeName:      req.InchargeName,
-		SignatoryId:       req.SignatoryId,
-		SignatoryName:     req.SignatoryName,
-		SignatoryType:     req.SignatoryType,
-		CustSignatoryId:   req.CustSignatoryId,
-		CustSignatoryName: req.CustSignatoryName,
-		DistributorId:     req.DistributorId,
-		DistributorName:   req.DistributorName,
-		Remark:            req.Remark,
-		CreatedBy:         int(s.userInfo.Id),
-		CreatedName:       s.userInfo.NickName,
-		CreatedTime:       gtime.Now(),
-		UpdatedBy:         int(s.userInfo.Id),
-		UpdatedName:       s.userInfo.NickName,
-		UpdatedTime:       gtime.Now(),
+		ContractCode:        req.ContractCode,
+		ContractName:        req.ContractName,
+		CustId:              nbo.CustId,
+		CustName:            nbo.CustName,
+		NboId:               nbo.Id,
+		NboName:             nbo.NboName,
+		IsBig:               nbo.IsBig,
+		ProductLine:         nbo.ProductLine,
+		CustProvinceId:      nbo.CustProvinceId,
+		CustProvince:        nbo.CustProvince,
+		CustCityId:          nbo.CustCityId,
+		CustCity:            nbo.CustCity,
+		ApproStatus:         "10",
+		ContractType:        req.ContractType,
+		ContractAmount:      contractAmount,
+		InvoiceAmount:       0,
+		CollectedAmount:     0,
+		ContractStartTime:   req.ContractStartTime,
+		ContractEndTime:     req.ContractEndTime,
+		InchargeId:          req.InchargeId,
+		InchargeName:        req.InchargeName,
+		SignatoryId:         req.SignatoryId,
+		SignatoryName:       req.SignatoryName,
+		SignatoryType:       req.SignatoryType,
+		CustSignatoryId:     req.CustSignatoryId,
+		CustSignatoryName:   req.CustSignatoryName,
+		DistributorId:       req.DistributorId,
+		DistributorName:     req.DistributorName,
+		Remark:              req.Remark,
+		ServiceFeeAgreement: req.ServiceFeeAgreement,
+		CreatedBy:           int(s.userInfo.Id),
+		CreatedName:         s.userInfo.NickName,
+		CreatedTime:         gtime.Now(),
+		UpdatedBy:           int(s.userInfo.Id),
+		UpdatedName:         s.userInfo.NickName,
+		UpdatedTime:         gtime.Now(),
 	}
 
 	var id int