|
@@ -159,6 +159,7 @@ WHERE c.is_delete = 0 AND a.approval_type="contract" `
|
|
err = o.Raw(sql, childPars, pars).QueryRow(&count)
|
|
err = o.Raw(sql, childPars, pars).QueryRow(&count)
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
+
|
|
func GetContractApprovalListV2(childCondition, condition string, childPars, pars []interface{}, startSize, pageSize int) (list []*ContractApprovalList, err error) {
|
|
func GetContractApprovalListV2(childCondition, condition string, childPars, pars []interface{}, startSize, pageSize int) (list []*ContractApprovalList, err error) {
|
|
o := orm.NewOrm()
|
|
o := orm.NewOrm()
|
|
sql := `
|
|
sql := `
|
|
@@ -178,6 +179,67 @@ WHERE c.is_delete = 0 AND a.approval_type="contract" `
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+func GetContractListCountV2(childCondition, condition, joinCondition, unionCondition string, childPars, pars, unionPars []interface{}) (count int, err error) {
|
|
|
|
+ o := orm.NewOrm()
|
|
|
|
+ sql := `
|
|
|
|
+SELECT
|
|
|
|
+a.contract_approval_id,d.contract_approval_record_id,a.contract_id,a.apply_content,a.approve_remark,a.create_time,a.modify_time,a.status approve_status,c.status,c.product_id,
|
|
|
|
+c.contract_type,c.start_date,c.end_date,c.price,c.company_name,c.seller_id,c.seller_name,c.file_url,c.contract_code,c.approve_time,c.invalid_time,c.check_back_file_time,c.rescind_time from contract_approval a
|
|
|
|
+ join
|
|
|
|
+ ( SELECT max( contract_approval_id ) max_id,contract_id FROM contract_approval where 1=1 `
|
|
|
|
+ sql += childCondition
|
|
|
|
+ sql += ` GROUP BY contract_id ) b on a.contract_approval_id=b.max_id
|
|
|
|
+ JOIN contract c ON a.contract_id = c.contract_id
|
|
|
|
+ JOIN contract_approval_record d on a.contract_approval_id=d.contract_approval_id ` + joinCondition + `
|
|
|
|
+WHERE c.is_delete = 0 AND a.approval_type="contract" `
|
|
|
|
+ sql += condition
|
|
|
|
+
|
|
|
|
+ sql += ` union (SELECT
|
|
|
|
+ contract_approval_id, 0 as contract_approval_record_id,c.contract_id,"" as apply_content,"" as approve_remark,
|
|
|
|
+ c.create_time,c.modify_time,"待提交" as approve_status,c.status,c.product_id,
|
|
|
|
+c.contract_type,c.start_date,c.end_date,c.price,c.company_name,c.seller_id,c.seller_name,c.file_url,c.contract_code,c.approve_time,c.invalid_time,c.check_back_file_time,c.rescind_time
|
|
|
|
+from contract c left join contract_approval b on c.contract_id=b.contract_id
|
|
|
|
+where is_delete=0 and b.contract_approval_id is null ` + unionCondition + `)`
|
|
|
|
+
|
|
|
|
+ sql = `select count(*) count from (select * from (` + sql + `) g group by contract_id ) f`
|
|
|
|
+ err = o.Raw(sql, childPars, pars, unionPars).QueryRow(&count)
|
|
|
|
+ return
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+func GetContractListV2(childCondition, condition, joinCondition, unionCondition string, childPars, pars, unionPars []interface{}, startSize, pageSize int) (list []*ContractApprovalList, err error) {
|
|
|
|
+ o := orm.NewOrm()
|
|
|
|
+ sql := `
|
|
|
|
+SELECT
|
|
|
|
+a.contract_approval_id,d.contract_approval_record_id,a.contract_id,a.apply_content,a.approve_remark,a.create_time,a.modify_time,a.status approve_status,c.status,c.product_id,
|
|
|
|
+c.contract_type,c.start_date,c.end_date,c.price,c.company_name,c.seller_id,c.seller_name,c.file_url,c.contract_code,c.approve_time,c.invalid_time,c.check_back_file_time,c.rescind_time from contract_approval a
|
|
|
|
+ join
|
|
|
|
+ ( SELECT max( contract_approval_id ) max_id,contract_id FROM contract_approval where 1=1 `
|
|
|
|
+ sql += childCondition
|
|
|
|
+ sql += ` GROUP BY contract_id ) b on a.contract_approval_id=b.max_id
|
|
|
|
+ JOIN contract c ON a.contract_id = c.contract_id
|
|
|
|
+ JOIN contract_approval_record d on a.contract_approval_id=d.contract_approval_id ` + joinCondition + `
|
|
|
|
+WHERE c.is_delete = 0 AND a.approval_type="contract" `
|
|
|
|
+ sql += condition
|
|
|
|
+
|
|
|
|
+ sql += ` union (SELECT
|
|
|
|
+ contract_approval_id, 0 as contract_approval_record_id,c.contract_id,"" as apply_content,"" as approve_remark,
|
|
|
|
+ c.create_time,c.modify_time,"待提交" as approve_status,c.status,c.product_id,
|
|
|
|
+c.contract_type,c.start_date,c.end_date,c.price,c.company_name,c.seller_id,c.seller_name,c.file_url,c.contract_code,c.approve_time,c.invalid_time,c.check_back_file_time,c.rescind_time
|
|
|
|
+from contract c left join contract_approval b on c.contract_id=b.contract_id
|
|
|
|
+where is_delete=0 and b.contract_approval_id is null ` + unionCondition + `)`
|
|
|
|
+
|
|
|
|
+ sql = `select * from (` + sql + `) g group by contract_id order by modify_time desc LIMIT ?,?`
|
|
|
|
+
|
|
|
|
+ _, err = o.Raw(sql, childPars, pars, unionPars, startSize, pageSize).QueryRows(&list)
|
|
|
|
+ return
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+type CompanyNameList struct {
|
|
|
|
+ CompanyName string `description:"客户名称,甲方名称,长度32位"`
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
|
|
func (ContractApproval) CheckPendingByContractId(contractId int, approvalType string) (has bool, err error) {
|
|
func (ContractApproval) CheckPendingByContractId(contractId int, approvalType string) (has bool, err error) {
|
|
o := orm.NewOrm()
|
|
o := orm.NewOrm()
|