|
@@ -3,6 +3,7 @@ package contract
|
|
|
import (
|
|
import (
|
|
|
. "dashoo.cn/backend/api/mydb"
|
|
. "dashoo.cn/backend/api/mydb"
|
|
|
"github.com/go-xorm/xorm"
|
|
"github.com/go-xorm/xorm"
|
|
|
|
|
+ "strconv"
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
type OilContractService struct {
|
|
type OilContractService struct {
|
|
@@ -19,32 +20,37 @@ func (s *OilContractService) GetHandOnStatisticsList (queryParam HandOnStatistic
|
|
|
if queryParam.PageIndex < 1 { queryParam.PageIndex = 1 }
|
|
if queryParam.PageIndex < 1 { queryParam.PageIndex = 1 }
|
|
|
if queryParam.ItemsPerPage < 1 { queryParam.ItemsPerPage = 10 }
|
|
if queryParam.ItemsPerPage < 1 { queryParam.ItemsPerPage = 10 }
|
|
|
// var resultsSlice []map[string][]byte
|
|
// var resultsSlice []map[string][]byte
|
|
|
-
|
|
|
|
|
/*sqlCount := "SELECT COUNT(*) " +
|
|
/*sqlCount := "SELECT COUNT(*) " +
|
|
|
" FROM OilContract a " +
|
|
" FROM OilContract a " +
|
|
|
" LEFT JOIN OilContractReview b ON b.ContractId=a.Id " +
|
|
" LEFT JOIN OilContractReview b ON b.ContractId=a.Id " +
|
|
|
" GROUP BY a.SecondUnit "*/
|
|
" GROUP BY a.SecondUnit "*/
|
|
|
|
|
|
|
|
- sql := "SELECT a.SecondUnit, COUNT(DISTINCT a.Id) AS ContractNum, COUNT(DISTINCT b.ContractId) AS HasNum " +
|
|
|
|
|
|
|
+ sql := "SELECT c.FullName as SecondUnit, COUNT(DISTINCT a.Id) AS ContractNum, COUNT(DISTINCT b.ContractId) AS HasNum " +
|
|
|
" FROM OilContract a " +
|
|
" FROM OilContract a " +
|
|
|
- " LEFT JOIN OilContractReview b ON b.ContractId=a.Id " +
|
|
|
|
|
- " GROUP BY a.SecondUnit "
|
|
|
|
|
|
|
+ " LEFT JOIN OilContractReview b ON a.Id = b.ContractId " +
|
|
|
|
|
+ " LEFT JOIN Base_Organize c on SecondUnit = c.Id"
|
|
|
|
|
+ sql += " WHERE 1=1 "
|
|
|
|
|
+ if queryParam.YearNum > 0 {
|
|
|
|
|
+ sql += " AND " + strconv.Itoa(queryParam.YearNum) + " BETWEEN YEAR(a.StartDate) AND YEAR(a.EndDate)"
|
|
|
|
|
+ }
|
|
|
|
|
+ if queryParam.SupplierType != "" {
|
|
|
|
|
+ sql += " AND a.ContractClass='" + queryParam.SupplierType + "'"
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ sql += " GROUP BY a.SecondUnit "
|
|
|
|
|
+ if queryParam.SecondUnit != "" {
|
|
|
|
|
+ sql += " HAVING c.FullName like '%" + queryParam.SecondUnit + "%'"
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if queryParam.Order != "" {
|
|
|
|
|
+ sql += " ORDER BY " + queryParam.Order + " " + queryParam.Asc
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- // resultsSlice, err = s.DBE.Query(sqlCount)
|
|
|
|
|
startLimit := int((queryParam.PageIndex-1) * queryParam.ItemsPerPage)
|
|
startLimit := int((queryParam.PageIndex-1) * queryParam.ItemsPerPage)
|
|
|
endLimit := int((queryParam.PageIndex) * queryParam.ItemsPerPage)
|
|
endLimit := int((queryParam.PageIndex) * queryParam.ItemsPerPage)
|
|
|
var totalCnt int64
|
|
var totalCnt int64
|
|
|
totalCnt, _ = s.DBE.SQL(sql).Limit(startLimit, endLimit).FindAndCount(entitiesPtr)
|
|
totalCnt, _ = s.DBE.SQL(sql).Limit(startLimit, endLimit).FindAndCount(entitiesPtr)
|
|
|
|
|
|
|
|
- // LogError(err)
|
|
|
|
|
- /** if len(resultsSlice) > 0 {
|
|
|
|
|
- results := resultsSlice[0]
|
|
|
|
|
- for _, value := range results {
|
|
|
|
|
- total, err = strconv.ParseInt(string(value), 10, 64)
|
|
|
|
|
- LogError(err)
|
|
|
|
|
- break
|
|
|
|
|
- }
|
|
|
|
|
- } */
|
|
|
|
|
return totalCnt
|
|
return totalCnt
|
|
|
|
|
|
|
|
}
|
|
}
|