Forráskód Böngészése

Merge branch 'crm1.0' into debug

Roc 3 éve
szülő
commit
d051e76ee8

+ 26 - 0
controllers/approval.go

@@ -664,6 +664,32 @@ func (this *ApprovalCommon) GetFlowDetail() {
 	this.OkDetailed(flowItem, "获取成功")
 }
 
+// @Title 根据客户名称获取已存在合同系统中客户名称列表
+// @Description 获取合同详情接口
+// @Param   CompanyName   query   string  true       "客户名称"
+// @Success 200 {object} []string
+// @router /company_list [get]
+func (this *ApprovalCommon) CompanyList() {
+	companyName := this.GetString("CompanyName")
+	//合同id
+	if companyName == "" {
+		this.FailWithMessage("客户名称必传!", "客户名称必传!")
+		return
+	}
+	companyNameList := make([]string, 0)
+	list, err := company_approval.GetCompanyNameList(companyName)
+	if err != nil {
+		this.FailWithMessage("获取客户名称列表失败!", "获取客户名称列表失败,ERR:"+err.Error())
+		return
+	}
+
+	for _, v := range list {
+		companyNameList = append(companyNameList, v.CompanyName)
+	}
+
+	this.OkDetailed(companyNameList, "获取成功")
+}
+
 //// @Title 审批列表删除
 //// @Description 审批列表删除接口
 //// @Param	request	body company.CompanyApplyDeleteReq true "type json string"

+ 3 - 3
controllers/company_contract.go

@@ -1,7 +1,7 @@
 package controllers
 
 import (
-	"hongze/hongze_mobile_admin/models/response/contract"
+	companyContractResp "hongze/hongze_mobile_admin/models/response/company_contract"
 	"hongze/hongze_mobile_admin/models/tables/company_contract"
 	"hongze/hongze_mobile_admin/models/tables/company_report_permission"
 	"hongze/hongze_mobile_admin/services"
@@ -17,7 +17,7 @@ type CompanyContractCommon struct {
 // @Description 合同详情接口
 // @Param   CompanyId   query   int  true       "客户ID"
 // @Param   CompanyContractId   query   int  true       "合同id"
-// @Success 200 {object} company_contract.CompanyContractDetail
+// @Success 200 {object} company_contract.CompanyContractDetailResp
 // @router /detail [get]
 func (this *CompanyContractCommon) ApplyContractDetail() {
 	sysUser := this.AdminWx
@@ -89,7 +89,7 @@ func (this *CompanyContractCommon) ApplyContractDetail() {
 		plist.CheckList = checkList
 		detail.PermissionList = append(detail.PermissionList, plist)
 	}
-	resp := contract.CompanyContractDetailResp{
+	resp := companyContractResp.CompanyContractDetailResp{
 		detail,
 	}
 	this.OkDetailed(resp, "获取成功")

+ 97 - 1
controllers/contract.go

@@ -3,9 +3,11 @@ package controllers
 import (
 	"encoding/json"
 	contractReq "hongze/hongze_mobile_admin/models/request/contract"
+	contractResp "hongze/hongze_mobile_admin/models/response/contract"
 	"hongze/hongze_mobile_admin/models/tables/contract"
 	contractService "hongze/hongze_mobile_admin/services/contract"
 	"hongze/hongze_mobile_admin/utils"
+	"rdluck_tools/paging"
 )
 
 //合同模块
@@ -16,7 +18,7 @@ type ContractCommon struct {
 // @Title 上传签回附件
 // @Description 上传签回附件接口
 // @Param	request	body contract.UploadCheckBackFileReq true "type json string"
-// @Success Ret=200 驳回成功
+// @Success Ret=200 上传成功
 // @router /upload_check_back_file [get]
 func (this *ContractCommon) UploadCheckBackFile() {
 	var req contractReq.UploadCheckBackFileReq
@@ -93,3 +95,97 @@ func (this *ContractCommon) CompanyList() {
 
 	this.OkDetailed(companyNameList, "获取成功")
 }
+
+// @Title 合同列表
+// @Description 合同列表接口
+// @Param   ContractType   query   string  false       "合同类型,枚举值:'新签合同','续约合同','补充协议'"
+// @Param   ContractStatus   query   string  false       "合同状态,枚举值:'待提交','待审批','已撤回','已审批','已驳回','已作废'"
+// @Param   ProductId   query   int  false       "客户类型:传0或者不传为当前账号权限,1 代表是:ficc;2 代表是:权益"
+// @Param   ModifyStartTime   query   string  false       "服务更新时间的选择开始时间,格式:2021-05-23 00:00:00"
+// @Param   ModifyEndTime   query   string  false       "服务更新时间的选择结束时间,格式:2021-05-26 23:59:59"
+// @Param   SellerId   query   string  false       "选择的销售id"
+// @Param   Keyword   query   string  false       "搜索关键字"
+// @Success 200 {object} contract.ContractListResp
+// @router /list [get]
+func (this *ContractCommon) List() {
+	//合同类型、产品类型、合同状态、更新时间、所选销售
+	//关键字:合同编号、客户名称,社会信用码
+	contractType := this.GetString("ContractType")
+	contractStatus := this.GetString("ContractStatus")
+	productId, _ := this.GetInt("ProductId")
+	modifyStartTime := this.GetString("ModifyStartTime")
+	modifyEndTime := this.GetString("ModifyEndTime")
+	sellerIds := this.GetString("SellerId")
+	keyword := this.GetString("Keyword")
+
+	condition := ""
+	pars := make([]interface{}, 0)
+	//如果不是超管或者合规,那么只能查看自己的合同
+	condition += ` AND seller_id = ? `
+	pars = append(pars, this.AdminWx.AdminId)
+	//合同类型、、更新时间、所选销售
+	//关键字:合同编号、客户名称,社会信用码
+	if contractType != "" {
+		condition += ` AND contract_type = ? `
+		pars = append(pars, contractType)
+	}
+	//合同状态
+	if contractStatus != "" {
+		condition += ` AND status = ? `
+		pars = append(pars, contractStatus)
+	}
+	//产品类型
+	if productId > 0 {
+		condition += ` AND product_id = ? `
+		pars = append(pars, productId)
+	}
+	//所选销售
+	if sellerIds != "" {
+		condition += ` AND seller_id IN (` + sellerIds + `) `
+	}
+	//更新开始时间
+	if modifyStartTime != "" {
+		condition += ` AND modify_time >= ? `
+		pars = append(pars, modifyStartTime)
+	}
+	//更新结束时间
+	if modifyEndTime != "" {
+		condition += ` AND modify_time <= ? `
+		pars = append(pars, modifyEndTime)
+	}
+	//关键字
+	if keyword != "" {
+		condition += ` AND (contract_code LIKE '%` + keyword + `%' OR company_name LIKE '%` + keyword + `%' OR credit_code LIKE '%` + keyword + `%' ) `
+	}
+
+	pageSize, _ := this.GetInt("PageSize")
+	currentIndex, _ := this.GetInt("CurrentIndex")
+
+	var startSize int
+	if pageSize <= 0 {
+		pageSize = utils.PageSize20
+	}
+	if currentIndex <= 0 {
+		currentIndex = 1
+	}
+	startSize = paging.StartIndex(currentIndex, pageSize)
+
+	total, err := contract.GetContractListCount(condition, pars)
+	if err != nil {
+		this.FailWithMessage("获取失败", "获取数据总数失败,Err:"+err.Error())
+		return
+	}
+
+	list, err := contract.GetContractList(condition, pars, startSize, pageSize)
+	if err != nil {
+		this.FailWithMessage("获取合同列表失败", "获取合同列表失败,Err:"+err.Error())
+		return
+	}
+
+	page := paging.GetPaging(currentIndex, pageSize, total)
+
+	this.OkDetailed(contractResp.ContractListResp{
+		List:   list,
+		Paging: page,
+	}, "获取成功")
+}

+ 1 - 1
controllers/contract_approval.go

@@ -334,7 +334,7 @@ func (this *ContractApprovalCommon) Reject() {
 
 // @Title 处理审批单
 // @Description 处理审批单
-// @Param	request	body request.ApprovedReq true "type json string"
+// @Param	request	body contract.ApprovedReq true "type json string"
 // @Success Ret=200 申请成功
 // @router /approved [post]
 func (this *ContractApprovalCommon) Approved() {

+ 1 - 1
controllers/seal.go

@@ -61,7 +61,7 @@ func (this *SealCommon) Add() {
 // @Title 编辑用印
 // @Description 编辑用印接口
 // @Param	request	body seal.EditReq true "type json string"
-// @Success 200 {object} response.AddContractResp
+// @Success 200 {object} seal.AddSealResp
 // @router /edit [post]
 func (this *SealCommon) Edit() {
 	var req sealReq.EditReq

+ 1 - 1
controllers/seal_approval.go

@@ -253,7 +253,7 @@ func (this *SealApprovalCommon) Reject() {
 
 // @Title 处理审批单
 // @Description 处理审批单
-// @Param	request	body request.ApprovedReq true "type json string"
+// @Param	request	body contract.ApprovedReq true "type json string"
 // @Success Ret=200 申请成功
 // @router /approved [post]
 func (this *SealApprovalCommon) Approved() {

+ 9 - 0
models/response/company_contract/company_contract.go

@@ -0,0 +1,9 @@
+package company_contract
+
+import (
+	"hongze/hongze_mobile_admin/models/tables/company_contract"
+)
+
+type CompanyContractDetailResp struct {
+	*company_contract.CompanyContractDetail
+}

+ 6 - 5
models/response/contract/contract.go

@@ -1,16 +1,17 @@
 package contract
 
 import (
-	"hongze/hongze_mobile_admin/models/custom/contract"
-	"hongze/hongze_mobile_admin/models/tables/company_contract"
+	contractCustom "hongze/hongze_mobile_admin/models/custom/contract"
+	"hongze/hongze_mobile_admin/models/tables/contract"
 	"hongze/hongze_mobile_admin/models/tables/contract_approval"
 	"hongze/hongze_mobile_admin/models/tables/contract_approval_record"
 	"rdluck_tools/paging"
 	"time"
 )
 
-type CompanyContractDetailResp struct {
-	*company_contract.CompanyContractDetail
+type ContractListResp struct {
+	Paging *paging.PagingItem
+	List   []*contract.ContractList `description:"列表数据"`
 }
 
 type ContractOperationRecordListResp struct {
@@ -83,5 +84,5 @@ type ContractDetail struct {
 	EndDateStr    string `description:"合同结束时间"`
 	ModifyTimeStr string `description:"最近一次更新时间"`
 	CreateTimeStr string `description:"合同添加时间"`
-	Service       []*contract.ContractServiceAndDetail
+	Service       []*contractCustom.ContractServiceAndDetail
 }

+ 15 - 0
models/tables/company_approval/company_approval.go

@@ -932,3 +932,18 @@ func GetApprovalListByApprovalIds(companyApprovalIds string) (list []*CompanyApp
 	_, err = o.Raw(sql).QueryRows(&list)
 	return
 }
+
+type CompanyNameList struct {
+	CompanyName string `description:"客户名称,甲方名称,长度32位"`
+}
+
+//获取客户名称列表数据
+func GetCompanyNameList(name string) (list []*CompanyNameList, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT a.company_name FROM company AS a
+			INNER JOIN company_product AS b ON a.company_id=b.company_id
+			INNER JOIN company_approval AS c ON b.company_id=c.company_id AND b.product_id=c.product_id
+ 			WHERE a.company_name like '%` + name + `%' group by a.company_name order by c.modify_time DESC `
+	_, err = o.Raw(sql).QueryRows(&list)
+	return
+}

+ 33 - 31
models/tables/contract/contract.go

@@ -169,37 +169,39 @@ func AddContract(contractInfo *Contract, contractServiceAndDetailList []*contrac
 }
 
 type ContractList struct {
-	ContractId     int       `description:"合同唯一id"`
-	ContractCode   string    `description:"合同编号,长度32位"`
-	SellerId       int       `description:"所属销售id"`
-	SellerName     string    `description:"所属销售名称"`
-	ProductId      int       `description:"产品id,1:ficc;2:权益"`
-	ContractType   string    `description:"合同类型,枚举值:'新签合同','续约合同','补充协议'"`
-	Status         string    `description:"合同状态,枚举值:'待提交','待审批','已撤回','已审批','已驳回','已作废'"`
-	StartDate      time.Time `json:"-";description:"合同开始日期"`
-	EndDate        time.Time `json:"-";description:"合同结束日期"`
-	OriginalPrice  float64   `description:"合同原金额,优惠前的金额"`
-	Price          float64   `description:"实际金额,优惠后的金额"`
-	PayRemark      string    `description:"付款方式说明,长度255位"`
-	CompanyName    string    `description:"客户名称,甲方名称,长度32位"`
-	CreditCode     string    `description:"社会统一信用代码,长度64位"`
-	ProvinceId     int       `description:"省级id"`
-	Province       string    `description:"省级名称,长度16位"`
-	CityId         int       `description:"市级id"`
-	City           string    `description:"市级名称,长度32位"`
-	Address        string    `description:"详细地址"`
-	Fax            string    `description:"传真,长度32位"`
-	Phone          string    `description:"电话,长度32位"`
-	Postcode       string    `description:"邮编,长度16位"`
-	Remark         string    `json:"-";description:"补充内容,长度255位"`
-	ApprovalRemark string    `description:"审核备注"`
-	ModifyContent  string    `description:"修改内容"`
-	FileUrl        string    `description:"合同文件地址"`
-	TemplateId     int       `description:"模板id"`
-	SourceId       int       `description:"来源合同id,默认是0;如果是通过其他合同复制过来的,那么就是原合同的id"`
-	IsDelete       int       `json:"-";description:"是否已经删除,0:未删除,1:已删除"`
-	ModifyTime     time.Time `json:"-";description:"合同最近一次修改时间"`
-	CreateTime     time.Time `json:"-";description:"合同添加时间"`
+	ContractId       int       `description:"合同唯一id"`
+	ContractCode     string    `description:"合同编号,长度32位"`
+	SellerId         int       `description:"所属销售id"`
+	SellerName       string    `description:"所属销售名称"`
+	ProductId        int       `description:"产品id,1:ficc;2:权益"`
+	ContractType     string    `description:"合同类型,枚举值:'新签合同','续约合同','补充协议'"`
+	Status           string    `description:"合同状态,枚举值:'待提交','待审批','已撤回','已审批','已驳回','已作废'"`
+	StartDate        time.Time `json:"-";description:"合同开始日期"`
+	EndDate          time.Time `json:"-";description:"合同结束日期"`
+	OriginalPrice    float64   `description:"合同原金额,优惠前的金额"`
+	Price            float64   `description:"实际金额,优惠后的金额"`
+	PayRemark        string    `description:"付款方式说明,长度255位"`
+	CompanyName      string    `description:"客户名称,甲方名称,长度32位"`
+	UseCompanyName   string    `description:"使用方名称,长度32位"`
+	CreditCode       string    `description:"社会统一信用代码,长度64位"`
+	ProvinceId       int       `description:"省级id"`
+	Province         string    `description:"省级名称,长度16位"`
+	CityId           int       `description:"市级id"`
+	City             string    `description:"市级名称,长度32位"`
+	Address          string    `description:"详细地址"`
+	Fax              string    `description:"传真,长度32位"`
+	Phone            string    `description:"电话,长度32位"`
+	Postcode         string    `description:"邮编,长度16位"`
+	Remark           string    `json:"-";description:"补充内容,长度255位"`
+	ApprovalRemark   string    `description:"审核备注"`
+	ModifyContent    string    `description:"修改内容"`
+	FileUrl          string    `description:"合同文件地址"`
+	CheckBackFileUrl string    `description:"签回合同文件地址"`
+	TemplateId       int       `description:"模板id"`
+	SourceId         int       `description:"来源合同id,默认是0;如果是通过其他合同复制过来的,那么就是原合同的id"`
+	IsDelete         int       `json:"-";description:"是否已经删除,0:未删除,1:已删除"`
+	ModifyTime       time.Time `json:"-";description:"合同最近一次修改时间"`
+	CreateTime       time.Time `json:"-";description:"合同添加时间"`
 
 	StartDateStr  string `description:"合同起始时间"`
 	EndDateStr    string `description:"合同结束时间"`