|
|
@@ -938,7 +938,6 @@ func (r *Ermcp3AreaSpotPLReport) buildSqlDay() string {
|
|
|
" t.AREAUSERID," +
|
|
|
" t.CURRENCYID," +
|
|
|
" t.DELIVERYGOODSID," +
|
|
|
- " t.WRSTANDARDID," +
|
|
|
" sum(t.ORIBUYQTY) ORIBUYQTY," +
|
|
|
" sum(t.ORIBUYAMOUNT) ORIBUYAMOUNT," +
|
|
|
" sum(t.ORISELLQTY) ORISELLQTY," +
|
|
|
@@ -970,8 +969,7 @@ func (r *Ermcp3AreaSpotPLReport) buildSqlDay() string {
|
|
|
" GROUP BY t.RECKONDATE," +
|
|
|
" t.AREAUSERID," +
|
|
|
" t.CURRENCYID," +
|
|
|
- " t.DELIVERYGOODSID," +
|
|
|
- " t.WRSTANDARDID) a" +
|
|
|
+ " t.DELIVERYGOODSID) a" +
|
|
|
" LEFT JOIN DELIVERYGOODS g" +
|
|
|
" on a.deliverygoodsid = g.deliverygoodsid" +
|
|
|
" LEFT JOIN WRSTANDARD w" +
|
|
|
@@ -988,42 +986,7 @@ func (r *Ermcp3AreaSpotPLReport) buildSqlDay() string {
|
|
|
}
|
|
|
|
|
|
func (r *Ermcp3AreaSpotPLReport) buildSqlDayDetail() string {
|
|
|
- var sqlId utils.SQLVal = "SELECT t.RECKONDATE," +
|
|
|
- " t.AREAUSERID," +
|
|
|
- " t.ACCOUNTID," +
|
|
|
- " t.WRFACTORTYPEID," +
|
|
|
- " t.CURRENCYID," +
|
|
|
- " t.BIZTYPE," +
|
|
|
- " t.DELIVERYGOODSID," +
|
|
|
- " t.WRSTANDARDID," +
|
|
|
- " t.SPOTGOODSBRANDID," +
|
|
|
- " t.ORIBUYQTY," +
|
|
|
- " t.ORIBUYAMOUNT," +
|
|
|
- " t.ORISELLQTY," +
|
|
|
- " t.ORISELLAMOUNT," +
|
|
|
- " t.ORIQTY," +
|
|
|
- " t.ORIAVERAGEPRICE," +
|
|
|
- " t.ORIAMOUNT," +
|
|
|
- " t.TODAYBUYQTY," +
|
|
|
- " t.TODAYBUYAMOUNT," +
|
|
|
- " t.TODAYBUYAVERAGEPRICE," +
|
|
|
- " t.TODAYSELLQTY," +
|
|
|
- " t.TODAYSELLAMOUNT," +
|
|
|
- " t.TODAYSELLAVERAGEPRICE," +
|
|
|
- " t.CURBUYQTY," +
|
|
|
- " t.CURBUYAMOUNT," +
|
|
|
- " t.CURSELLQTY," +
|
|
|
- " t.CURSELLAMOUNT," +
|
|
|
- " t.CURQTY," +
|
|
|
- " t.CURAVERAGEPRICE," +
|
|
|
- " t.CURAMOUNT," +
|
|
|
- " t.CURSPOTPRICE," +
|
|
|
- " t.CURMARKETVALUE," +
|
|
|
- " t.ACTUALPL," +
|
|
|
- " t.FLOATPL," +
|
|
|
- " to_char(t.UPDATETIME, 'yyyy-mm-dd hh24:mi:ss') UPDATETIME," +
|
|
|
- " t.TODAYINQTY," +
|
|
|
- " t.TODAYOUTQTY," +
|
|
|
+ var sqlId utils.SQLVal = "select a.*," +
|
|
|
" g.deliverygoodscode," +
|
|
|
" g.deliverygoodsname," +
|
|
|
" g.goodsunitid," +
|
|
|
@@ -1031,20 +994,62 @@ func (r *Ermcp3AreaSpotPLReport) buildSqlDayDetail() string {
|
|
|
" w.wrstandardname," +
|
|
|
" w.unitid," +
|
|
|
" dg.dgfactoryitemvalue brandName" +
|
|
|
- " FROM RECKON_ERMCP_AREASPOTPL t" +
|
|
|
- " LEFT JOIN DELIVERYGOODS g on t.deliverygoodsid=g.deliverygoodsid" +
|
|
|
- " LEFT JOIN WRSTANDARD w on t.wrstandardid = w.wrstandardid" +
|
|
|
- " LEFT JOIN DGFACTORYITEM dg on t.spotgoodsbrandid=dg.dgfactoryitemid" +
|
|
|
- " WHERE 1 = 1"
|
|
|
- sqlId.And("t.AREAUSERID", r.AREAUSERID)
|
|
|
- sqlId.AndEx("t.RECKONDATE", r.RECKONDATE, len(r.RECKONDATE) > 0)
|
|
|
+ " from (SELECT t.RECKONDATE," +
|
|
|
+ " t.AREAUSERID," +
|
|
|
+ " t.CURRENCYID," +
|
|
|
+ " t.DELIVERYGOODSID," +
|
|
|
+ " t.WRSTANDARDID," +
|
|
|
+ " t.SPOTGOODSBRANDID," +
|
|
|
+ " sum(t.ORIBUYQTY) ORIBUYQTY," +
|
|
|
+ " sum(t.ORIBUYAMOUNT) ORIBUYAMOUNT," +
|
|
|
+ " sum(t.ORISELLQTY) ORISELLQTY," +
|
|
|
+ " sum(t.ORISELLAMOUNT) ORISELLAMOUNT," +
|
|
|
+ " sum(t.ORIQTY) ORIQTY," +
|
|
|
+ " sum(t.ORIAVERAGEPRICE) ORIAVERAGEPRICE," +
|
|
|
+ " sum(t.ORIAMOUNT) ORIAMOUNT," +
|
|
|
+ " sum(t.TODAYBUYQTY) TODAYBUYQTY," +
|
|
|
+ " sum(t.TODAYBUYAMOUNT) TODAYBUYAMOUNT," +
|
|
|
+ " sum(t.TODAYBUYAVERAGEPRICE) TODAYBUYAVERAGEPRICE," +
|
|
|
+ " sum(t.TODAYSELLQTY) TODAYSELLQTY," +
|
|
|
+ " sum(t.TODAYSELLAMOUNT) TODAYSELLAMOUNT," +
|
|
|
+ " sum(t.TODAYSELLAVERAGEPRICE) TODAYSELLAVERAGEPRICE," +
|
|
|
+ " sum(t.CURBUYQTY) CURBUYQTY," +
|
|
|
+ " sum(t.CURBUYAMOUNT) CURBUYAMOUNT," +
|
|
|
+ " sum(t.CURSELLQTY) CURSELLQTY," +
|
|
|
+ " sum(t.CURSELLAMOUNT) CURSELLAMOUNT," +
|
|
|
+ " sum(t.CURQTY) CURQTY," +
|
|
|
+ " sum(t.CURAVERAGEPRICE) CURAVERAGEPRICE," +
|
|
|
+ " sum(t.CURAMOUNT) CURAMOUNT," +
|
|
|
+ " sum(t.CURSPOTPRICE) CURSPOTPRICE," +
|
|
|
+ " sum(t.CURMARKETVALUE) CURMARKETVALUE," +
|
|
|
+ " sum(t.ACTUALPL) ACTUALPL," +
|
|
|
+ " sum(t.FLOATPL) FLOATPL," +
|
|
|
+ " sum(t.TODAYINQTY) TODAYINQTY," +
|
|
|
+ " sum(t.TODAYOUTQTY) TODAYOUTQTY" +
|
|
|
+ " FROM RECKON_ERMCP_AREASPOTPL t" +
|
|
|
+ " WHERE 1 = 1 %v" +
|
|
|
+ " GROUP BY t.RECKONDATE," +
|
|
|
+ " t.AREAUSERID," +
|
|
|
+ " t.CURRENCYID," +
|
|
|
+ " t.DELIVERYGOODSID," +
|
|
|
+ " t.WRSTANDARDID," +
|
|
|
+ " t.SPOTGOODSBRANDID) a" +
|
|
|
+ " LEFT JOIN DELIVERYGOODS g" +
|
|
|
+ " on a.deliverygoodsid = g.deliverygoodsid" +
|
|
|
+ " LEFT JOIN WRSTANDARD w" +
|
|
|
+ " on a.wrstandardid = w.wrstandardid" +
|
|
|
+ " LEFT JOIN DGFACTORYITEM dg" +
|
|
|
+ " on a.spotgoodsbrandid = dg.dgfactoryitemid"
|
|
|
+ var sqlParam utils.SQLVal
|
|
|
+ sqlParam.And("t.AREAUSERID", r.AREAUSERID)
|
|
|
+ sqlParam.AndEx("t.RECKONDATE", r.RECKONDATE, len(r.RECKONDATE) > 0)
|
|
|
if len(r.BeginDate) > 0 && len(r.EndDate) > 0 {
|
|
|
- sqlId.Join(fmt.Sprintf(" and t.RECKONDATE >= '%v' and t.RECKONDATE <= '%v' ", r.BeginDate, r.EndDate))
|
|
|
+ sqlParam.Join(fmt.Sprintf(" and t.RECKONDATE >= '%v' and t.RECKONDATE <= '%v' ", r.BeginDate, r.EndDate))
|
|
|
}
|
|
|
- sqlId.And("t.CURRENCYID", r.CURRENCYID)
|
|
|
- sqlId.And("t.DELIVERYGOODSID", r.DELIVERYGOODSID)
|
|
|
- sqlId.And("t.WRSTANDARDID", r.WRSTANDARDID)
|
|
|
-
|
|
|
+ sqlParam.And("t.CURRENCYID", r.CURRENCYID)
|
|
|
+ sqlParam.And("t.DELIVERYGOODSID", r.DELIVERYGOODSID)
|
|
|
+ sqlParam.And("t.WRSTANDARDID", r.WRSTANDARDID)
|
|
|
+ sqlId.FormatParam(sqlParam.String())
|
|
|
return sqlId.String()
|
|
|
}
|
|
|
|
|
|
@@ -1062,7 +1067,6 @@ func (r *Ermcp3AreaSpotPLReport) buildSqlCycle() string {
|
|
|
" t.AREAUSERID," +
|
|
|
" t.CURRENCYID," +
|
|
|
" t.DELIVERYGOODSID," +
|
|
|
- " t.WRSTANDARDID," +
|
|
|
" sum(t.ORIBUYQTY) ORIBUYQTY," +
|
|
|
" sum(t.ORIBUYAMOUNT) ORIBUYAMOUNT," +
|
|
|
" sum(t.ORISELLQTY) ORISELLQTY," +
|
|
|
@@ -1095,8 +1099,7 @@ func (r *Ermcp3AreaSpotPLReport) buildSqlCycle() string {
|
|
|
" t.cycletype," +
|
|
|
" t.cycletime," +
|
|
|
" t.CURRENCYID," +
|
|
|
- " t.DELIVERYGOODSID," +
|
|
|
- " t.WRSTANDARDID) a" +
|
|
|
+ " t.DELIVERYGOODSID) a" +
|
|
|
" LEFT JOIN DELIVERYGOODS g" +
|
|
|
" on a.deliverygoodsid = g.deliverygoodsid" +
|
|
|
" LEFT JOIN WRSTANDARD w" +
|
|
|
@@ -1161,6 +1164,8 @@ type Ermcp3FinanceReport struct {
|
|
|
QueryType int32 `json:"-"` // 查询类型 1-报表 2-报表明细
|
|
|
BeginDate string `json:"begindate"` // 开始交易日
|
|
|
EndDate string `json:"enddate"` // 结束交易日
|
|
|
+
|
|
|
+ SumFields string `json:"-"` // 维度字段
|
|
|
}
|
|
|
|
|
|
func (r *Ermcp3FinanceReport) calc() {
|
|
|
@@ -1168,127 +1173,213 @@ func (r *Ermcp3FinanceReport) calc() {
|
|
|
r.ACCOUNTNAME = mtpcache.GetUserNameByUserId(r.AREAUSERID)
|
|
|
}
|
|
|
|
|
|
-func (r *Ermcp3FinanceReport) buildSql() string {
|
|
|
- // 日报表
|
|
|
- if r.QueryType == 1 && r.CYCLETYPE == 0 {
|
|
|
- return r.buildSqlDay()
|
|
|
+// getSumField 获取汇总维度字段
|
|
|
+func (r *Ermcp3FinanceReport) getSumField() (fields []string) {
|
|
|
+ fields = append(fields, "areauserid")
|
|
|
+ fields = append(fields, "currencyid")
|
|
|
+ if r.CYCLETYPE == 0 {
|
|
|
+ // 日报表
|
|
|
+ fields = append(fields, "reckondate")
|
|
|
+ } else {
|
|
|
+ // 周期报表
|
|
|
+ fields = append(fields, "cycletype")
|
|
|
+ fields = append(fields, "cycletime")
|
|
|
}
|
|
|
- // 日报表明细
|
|
|
- if r.QueryType == 2 && r.CYCLETYPE == 0 {
|
|
|
- return r.buildSqlDayDetail()
|
|
|
+ baseField := map[string]string{
|
|
|
+ "1": "deliverygoodsid",
|
|
|
+ "2": "wrstandardid",
|
|
|
+ "3": "spotgoodsbrandid",
|
|
|
}
|
|
|
- return r.buildSqlCycle()
|
|
|
+ param := []string{}
|
|
|
+ if len(r.SumFields) > 0 {
|
|
|
+ param = strings.Split(r.SumFields, ",")
|
|
|
+ }
|
|
|
+ for k, v := range baseField {
|
|
|
+ for _, p := range param {
|
|
|
+ if k == p {
|
|
|
+ fields = append(fields, v)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
}
|
|
|
|
|
|
-// buildSqlDay 财务日报表查询语句
|
|
|
-func (r *Ermcp3FinanceReport) buildSqlDay() string {
|
|
|
- var sqlId utils.SQLVal = "SELECT t.SELLPREINVOICEDAMOUNT," +
|
|
|
- " t.SELLUNINVOICEDAMOUNT," +
|
|
|
- " t.TODAYRECEIVESUM," +
|
|
|
- " t.TODAYPAYSUM," +
|
|
|
- " to_char(t.UPDATETIME, 'yyyy-mm-dd hh24:mi:ss') UPDATETIME," +
|
|
|
- " t.RECKONDATE," +
|
|
|
- " t.AREAUSERID," +
|
|
|
- " t.CURRENCYID," +
|
|
|
- " t.BIZTYPE," +
|
|
|
- " t.BUYTODAYSETTLEAMOUNT," +
|
|
|
- " t.BUYTODAYREFUNDAMOUNT," +
|
|
|
- " t.BUYPREPAIDAMOUNT," +
|
|
|
- " t.BUYUNPAIDAMOUNT," +
|
|
|
- " t.BUYTODAYINVOICEAMOUNT," +
|
|
|
- " t.BUYPREINVOICEDAMOUNT," +
|
|
|
- " t.BUYUNINVOICEDAMOUNT," +
|
|
|
- " t.SELLTODAYSETTLEAMOUNT," +
|
|
|
- " t.SELLTODAYREFUNDAMOUNT," +
|
|
|
- " t.SELLPREPAIDAMOUNT," +
|
|
|
- " t.SELLUNPAIDAMOUNT," +
|
|
|
- " t.SELLTODAYINVOICEAMOUNT" +
|
|
|
- " FROM RECKON_ERMCP_AREAFINANCE t" +
|
|
|
- " WHERE 1 = 1"
|
|
|
- sqlId.And("t.AREAUSERID", r.AREAUSERID)
|
|
|
- if r.QueryType == 1 {
|
|
|
- sqlId.And("t.RECKONDATE", r.RECKONDATE)
|
|
|
- } else if r.QueryType == 2 {
|
|
|
- sqlId.Join(fmt.Sprintf(" and t.RECKONDATE >= '%v' and t.RECKONDATE <= '%v' ", r.BeginDate, r.EndDate))
|
|
|
+func (r *Ermcp3FinanceReport) getExFieldInfo() (strFiled string, strleftJoin string) {
|
|
|
+ if len(r.SumFields) > 0 {
|
|
|
+ param := strings.Split(r.SumFields, ",")
|
|
|
+ fHas := func(v string) bool {
|
|
|
+ for i := range param {
|
|
|
+ if param[i] == v {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ if fHas("1") {
|
|
|
+ if len(strFiled) > 0 {
|
|
|
+ strFiled += ","
|
|
|
+ }
|
|
|
+ strFiled += "g.deliverygoodscode, g.deliverygoodsname, g.goodsunitid"
|
|
|
+ strleftJoin += " LEFT JOIN deliverygoods g on a.deliverygoodsid = g.deliverygoodsid"
|
|
|
+ }
|
|
|
+ if fHas("2") {
|
|
|
+ if len(strFiled) > 0 {
|
|
|
+ strFiled += ","
|
|
|
+ }
|
|
|
+ strFiled += "w.wrstandardname, w.wrstandardcode, w.unitid"
|
|
|
+ strleftJoin += " LEFT JOIN WRSTANDARD w on a.wrstandardid = w.wrstandardid"
|
|
|
+ }
|
|
|
+ if fHas("3") {
|
|
|
+ if len(strFiled) > 0 {
|
|
|
+ strFiled += ","
|
|
|
+ }
|
|
|
+ strFiled += "gb.dgfactoryitemvalue brandname"
|
|
|
+ strleftJoin += " LEFT JOIN dgfactoryitem gb on a.spotgoodsbrandid = gb.dgfactoryitemid"
|
|
|
+ }
|
|
|
}
|
|
|
- return sqlId.String()
|
|
|
+ return
|
|
|
}
|
|
|
|
|
|
-// buildSqlDayDetail 财务日报表明细查询语句
|
|
|
-func (r *Ermcp3FinanceReport) buildSqlDayDetail() string {
|
|
|
- var sqlId utils.SQLVal = "SELECT t.RECKONDATE," +
|
|
|
- " t.AREAUSERID," +
|
|
|
- " t.CURRENCYID," +
|
|
|
- " t.BIZTYPE," +
|
|
|
- " t.WRFACTORTYPEID," +
|
|
|
- " t.DELIVERYGOODSID," +
|
|
|
- " t.WRSTANDARDID," +
|
|
|
- " t.SPOTGOODSBRANDID," +
|
|
|
- " t.BUYTODAYSETTLEAMOUNT," +
|
|
|
- " t.BUYTODAYREFUNDAMOUNT," +
|
|
|
- " t.BUYPREPAIDAMOUNT," +
|
|
|
- " t.BUYUNPAIDAMOUNT," +
|
|
|
- " t.BUYTODAYINVOICEAMOUNT," +
|
|
|
- " t.BUYPREINVOICEDAMOUNT," +
|
|
|
- " t.BUYUNINVOICEDAMOUNT," +
|
|
|
- " t.SELLTODAYSETTLEAMOUNT," +
|
|
|
- " t.SELLTODAYREFUNDAMOUNT," +
|
|
|
- " t.SELLPREPAIDAMOUNT," +
|
|
|
- " t.SELLUNPAIDAMOUNT," +
|
|
|
- " t.SELLTODAYINVOICEAMOUNT," +
|
|
|
- " t.SELLPREINVOICEDAMOUNT," +
|
|
|
- " t.SELLUNINVOICEDAMOUNT," +
|
|
|
- " t.TODAYRECEIVESUM," +
|
|
|
- " t.TODAYPAYSUM," +
|
|
|
- " to_char(t.UPDATETIME, 'yyyy-mm-dd hh24:mi:ss') UPDATETIME," +
|
|
|
- " g.deliverygoodscode," +
|
|
|
- " g.deliverygoodsname," +
|
|
|
- " w.wrstandardcode," +
|
|
|
- " w.wrstandardname," +
|
|
|
- " dg.dgfactoryitemvalue brandName" +
|
|
|
- " FROM RECKON_ERMCP_AFINANCESUB t" +
|
|
|
- " LEFT JOIN DELIVERYGOODS g on t.deliverygoodsid=g.deliverygoodsid" +
|
|
|
- " LEFT JOIN WRSTANDARD w on t.wrstandardid=w.wrstandardid" +
|
|
|
- " LEFT JOIN DGFACTORYITEM dg on t.spotgoodsbrandid=dg.dgfactoryitemid" +
|
|
|
- " WHERE 1 = 1"
|
|
|
- sqlId.And("t.AREAUSERID", r.AREAUSERID)
|
|
|
- sqlId.AndEx("t.RECKONDATE", r.RECKONDATE, len(r.RECKONDATE) > 0)
|
|
|
+func (r *Ermcp3FinanceReport) buildSql() string {
|
|
|
+ fields := r.getSumField()
|
|
|
+ if r.CYCLETYPE == 0 {
|
|
|
+ // 查日照报
|
|
|
+ return r.buildSqlReckon(fields)
|
|
|
+ } else {
|
|
|
+ // 查报表表
|
|
|
+ return r.buildSqlReport(fields)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func (r *Ermcp3FinanceReport) buildSqlReckon(fields []string) string {
|
|
|
+ var sqlId, sqlParam utils.SQLVal
|
|
|
+ var strFileds string
|
|
|
+ for _, v := range fields {
|
|
|
+ if len(strFileds) > 0 {
|
|
|
+ strFileds += ","
|
|
|
+ }
|
|
|
+ strFileds += "t." + v
|
|
|
+ }
|
|
|
+ sqlParam.And("t.AREAUSERID", r.AREAUSERID)
|
|
|
+ sqlParam.AndEx("t.RECKONDATE", r.RECKONDATE, len(r.RECKONDATE) > 0)
|
|
|
if len(r.BeginDate) > 0 && len(r.EndDate) > 0 {
|
|
|
- sqlId.Join(fmt.Sprintf(" and t.RECKONDATE >= '%v' and t.RECKONDATE <= '%v' ", r.BeginDate, r.EndDate))
|
|
|
+ sqlParam.Join(fmt.Sprintf(" and t.RECKONDATE >= '%v' and t.RECKONDATE <= '%v' ", r.BeginDate, r.EndDate))
|
|
|
+ }
|
|
|
+ sqlParam.AndEx("t.CURRENCYID", r.CURRENCYID, r.CURRENCYID > 0)
|
|
|
+
|
|
|
+ exFileds, strleftJoin := r.getExFieldInfo()
|
|
|
+ if len(exFileds) > 0 {
|
|
|
+ // 有左联查额外信息(RECKON_ERMCP_AFINANCESUB明细表, 注意是不同的表)
|
|
|
+ sqlId = "select a.*, %v" +
|
|
|
+ " from (SELECT %v," +
|
|
|
+ " sum(t.BUYTODAYSETTLEAMOUNT) BUYTODAYSETTLEAMOUNT," +
|
|
|
+ " sum(t.BUYTODAYREFUNDAMOUNT) BUYTODAYREFUNDAMOUNT," +
|
|
|
+ " sum(t.BUYPREPAIDAMOUNT) BUYPREPAIDAMOUNT," +
|
|
|
+ " sum(t.BUYUNPAIDAMOUNT) BUYUNPAIDAMOUNT," +
|
|
|
+ " sum(t.BUYTODAYINVOICEAMOUNT) BUYTODAYINVOICEAMOUNT," +
|
|
|
+ " sum(t.BUYPREINVOICEDAMOUNT) BUYPREINVOICEDAMOUNT," +
|
|
|
+ " sum(t.BUYUNINVOICEDAMOUNT) BUYUNINVOICEDAMOUNT," +
|
|
|
+ " sum(t.SELLTODAYSETTLEAMOUNT) SELLTODAYSETTLEAMOUNT," +
|
|
|
+ " sum(t.SELLTODAYREFUNDAMOUNT) SELLTODAYREFUNDAMOUNT," +
|
|
|
+ " sum(t.SELLPREPAIDAMOUNT) SELLPREPAIDAMOUNT," +
|
|
|
+ " sum(t.SELLUNPAIDAMOUNT) SELLUNPAIDAMOUNT," +
|
|
|
+ " sum(t.SELLTODAYINVOICEAMOUNT) SELLTODAYINVOICEAMOUNT," +
|
|
|
+ " sum(t.SELLPREINVOICEDAMOUNT) SELLPREINVOICEDAMOUNT," +
|
|
|
+ " sum(t.SELLUNINVOICEDAMOUNT) SELLUNINVOICEDAMOUNT," +
|
|
|
+ " sum(t.TODAYRECEIVESUM) TODAYRECEIVESUM," +
|
|
|
+ " sum(t.TODAYPAYSUM) TODAYPAYSUM" +
|
|
|
+ " FROM RECKON_ERMCP_AFINANCESUB t" +
|
|
|
+ " WHERE 1 = 1 %v" +
|
|
|
+ " GROUP BY %v) a %v"
|
|
|
+ sqlId.FormatParam(exFileds, strFileds, sqlParam.String(), strFileds, strleftJoin)
|
|
|
+ } else {
|
|
|
+ sqlId = "SELECT %v," +
|
|
|
+ " sum(t.BUYTODAYSETTLEAMOUNT) BUYTODAYSETTLEAMOUNT," +
|
|
|
+ " sum(t.BUYTODAYREFUNDAMOUNT) BUYTODAYREFUNDAMOUNT," +
|
|
|
+ " sum(t.BUYPREPAIDAMOUNT) BUYPREPAIDAMOUNT," +
|
|
|
+ " sum(t.BUYUNPAIDAMOUNT) BUYUNPAIDAMOUNT," +
|
|
|
+ " sum(t.BUYTODAYINVOICEAMOUNT) BUYTODAYINVOICEAMOUNT," +
|
|
|
+ " sum(t.BUYPREINVOICEDAMOUNT) BUYPREINVOICEDAMOUNT," +
|
|
|
+ " sum(t.BUYUNINVOICEDAMOUNT) BUYUNINVOICEDAMOUNT," +
|
|
|
+ " sum(t.SELLTODAYSETTLEAMOUNT) SELLTODAYSETTLEAMOUNT," +
|
|
|
+ " sum(t.SELLTODAYREFUNDAMOUNT) SELLTODAYREFUNDAMOUNT," +
|
|
|
+ " sum(t.SELLPREPAIDAMOUNT) SELLPREPAIDAMOUNT," +
|
|
|
+ " sum(t.SELLUNPAIDAMOUNT) SELLUNPAIDAMOUNT," +
|
|
|
+ " sum(t.SELLTODAYINVOICEAMOUNT) SELLTODAYINVOICEAMOUNT," +
|
|
|
+ " sum(t.SELLPREINVOICEDAMOUNT) SELLPREINVOICEDAMOUNT," +
|
|
|
+ " sum(t.SELLUNINVOICEDAMOUNT) SELLUNINVOICEDAMOUNT," +
|
|
|
+ " sum(t.TODAYRECEIVESUM) TODAYRECEIVESUM," +
|
|
|
+ " sum(t.TODAYPAYSUM) TODAYPAYSUM" +
|
|
|
+ " FROM RECKON_ERMCP_AREAFINANCE t" +
|
|
|
+ " WHERE 1 = 1 %v" +
|
|
|
+ " GROUP BY %v"
|
|
|
+ sqlId.FormatParam(strFileds, sqlParam.String(), strFileds)
|
|
|
}
|
|
|
- sqlId.And("t.CURRENCYID", r.CURRENCYID)
|
|
|
return sqlId.String()
|
|
|
}
|
|
|
|
|
|
-// buildSqlCycle 财务周期报表查询语句
|
|
|
-func (r *Ermcp3FinanceReport) buildSqlCycle() string {
|
|
|
- var sqlId utils.SQLVal = "SELECT t.SELLPREINVOICEDAMOUNT," +
|
|
|
- " t.SELLUNINVOICEDAMOUNT," +
|
|
|
- " t.TODAYRECEIVESUM," +
|
|
|
- " t.TODAYPAYSUM," +
|
|
|
- " to_char(t.UPDATETIME, 'yyyy-mm-dd hh24:mi:ss') UPDATETIME," +
|
|
|
- " t.CYCLETIME," +
|
|
|
- " t.CYCLETYPE," +
|
|
|
- " t.AREAUSERID," +
|
|
|
- " t.CURRENCYID," +
|
|
|
- " t.BIZTYPE," +
|
|
|
- " t.BUYTODAYSETTLEAMOUNT," +
|
|
|
- " t.BUYTODAYREFUNDAMOUNT," +
|
|
|
- " t.BUYPREPAIDAMOUNT," +
|
|
|
- " t.BUYUNPAIDAMOUNT," +
|
|
|
- " t.BUYTODAYINVOICEAMOUNT," +
|
|
|
- " t.BUYPREINVOICEDAMOUNT," +
|
|
|
- " t.BUYUNINVOICEDAMOUNT," +
|
|
|
- " t.SELLTODAYSETTLEAMOUNT," +
|
|
|
- " t.SELLTODAYREFUNDAMOUNT," +
|
|
|
- " t.SELLPREPAIDAMOUNT," +
|
|
|
- " t.SELLUNPAIDAMOUNT," +
|
|
|
- " t.SELLTODAYINVOICEAMOUNT" +
|
|
|
- " FROM REPORT_ERMCP_AREAFINANCE t" +
|
|
|
- " WHERE 1 = 1"
|
|
|
- sqlId.And("t.AREAUSERID", r.AREAUSERID)
|
|
|
- sqlId.And("t.CYCLETYPE", r.CYCLETYPE)
|
|
|
- sqlId.And("t.CYCLETIME", r.CYCLETIME)
|
|
|
+func (r *Ermcp3FinanceReport) buildSqlReport(fields []string) string {
|
|
|
+ var sqlId, sqlParam utils.SQLVal
|
|
|
+ var strFileds string
|
|
|
+ for _, v := range fields {
|
|
|
+ if len(strFileds) > 0 {
|
|
|
+ strFileds += ","
|
|
|
+ }
|
|
|
+ strFileds += "t." + v
|
|
|
+ }
|
|
|
+ sqlParam.And("t.AREAUSERID", r.AREAUSERID)
|
|
|
+ sqlParam.And("t.CYCLETYPE", r.CYCLETYPE)
|
|
|
+ sqlParam.And("t.CYCLETIME", r.CYCLETIME)
|
|
|
+ sqlParam.AndEx("t.CURRENCYID", r.CURRENCYID, r.CURRENCYID > 0)
|
|
|
+
|
|
|
+ exFileds, strleftJoin := r.getExFieldInfo()
|
|
|
+ if len(exFileds) > 0 {
|
|
|
+ // 有左联查额外信息(REPORT_ERMCP_AFINANCESUB注意表名不同)
|
|
|
+ sqlId = "select a.*, %v" +
|
|
|
+ " from (SELECT %v," +
|
|
|
+ " sum(t.BUYTODAYSETTLEAMOUNT) BUYTODAYSETTLEAMOUNT," +
|
|
|
+ " sum(t.BUYTODAYREFUNDAMOUNT) BUYTODAYREFUNDAMOUNT," +
|
|
|
+ " sum(t.BUYPREPAIDAMOUNT) BUYPREPAIDAMOUNT," +
|
|
|
+ " sum(t.BUYUNPAIDAMOUNT) BUYUNPAIDAMOUNT," +
|
|
|
+ " sum(t.BUYTODAYINVOICEAMOUNT) BUYTODAYINVOICEAMOUNT," +
|
|
|
+ " sum(t.BUYPREINVOICEDAMOUNT) BUYPREINVOICEDAMOUNT," +
|
|
|
+ " sum(t.BUYUNINVOICEDAMOUNT) BUYUNINVOICEDAMOUNT," +
|
|
|
+ " sum(t.SELLTODAYSETTLEAMOUNT) SELLTODAYSETTLEAMOUNT," +
|
|
|
+ " sum(t.SELLTODAYREFUNDAMOUNT) SELLTODAYREFUNDAMOUNT," +
|
|
|
+ " sum(t.SELLPREPAIDAMOUNT) SELLPREPAIDAMOUNT," +
|
|
|
+ " sum(t.SELLUNPAIDAMOUNT) SELLUNPAIDAMOUNT," +
|
|
|
+ " sum(t.SELLTODAYINVOICEAMOUNT) SELLTODAYINVOICEAMOUNT," +
|
|
|
+ " sum(t.SELLPREINVOICEDAMOUNT) SELLPREINVOICEDAMOUNT," +
|
|
|
+ " sum(t.SELLUNINVOICEDAMOUNT) SELLUNINVOICEDAMOUNT," +
|
|
|
+ " sum(t.TODAYRECEIVESUM) TODAYRECEIVESUM," +
|
|
|
+ " sum(t.TODAYPAYSUM) TODAYPAYSUM" +
|
|
|
+ " FROM REPORT_ERMCP_AFINANCESUB t" +
|
|
|
+ " WHERE 1 = 1 %v" +
|
|
|
+ " GROUP BY %v) a %v"
|
|
|
+ sqlId.FormatParam(exFileds, strFileds, sqlParam.String(), strFileds, strleftJoin)
|
|
|
+ } else {
|
|
|
+ sqlId = "SELECT %v," +
|
|
|
+ " sum(t.BUYTODAYSETTLEAMOUNT) BUYTODAYSETTLEAMOUNT," +
|
|
|
+ " sum(t.BUYTODAYREFUNDAMOUNT) BUYTODAYREFUNDAMOUNT," +
|
|
|
+ " sum(t.BUYPREPAIDAMOUNT) BUYPREPAIDAMOUNT," +
|
|
|
+ " sum(t.BUYUNPAIDAMOUNT) BUYUNPAIDAMOUNT," +
|
|
|
+ " sum(t.BUYTODAYINVOICEAMOUNT) BUYTODAYINVOICEAMOUNT," +
|
|
|
+ " sum(t.BUYPREINVOICEDAMOUNT) BUYPREINVOICEDAMOUNT," +
|
|
|
+ " sum(t.BUYUNINVOICEDAMOUNT) BUYUNINVOICEDAMOUNT," +
|
|
|
+ " sum(t.SELLTODAYSETTLEAMOUNT) SELLTODAYSETTLEAMOUNT," +
|
|
|
+ " sum(t.SELLTODAYREFUNDAMOUNT) SELLTODAYREFUNDAMOUNT," +
|
|
|
+ " sum(t.SELLPREPAIDAMOUNT) SELLPREPAIDAMOUNT," +
|
|
|
+ " sum(t.SELLUNPAIDAMOUNT) SELLUNPAIDAMOUNT," +
|
|
|
+ " sum(t.SELLTODAYINVOICEAMOUNT) SELLTODAYINVOICEAMOUNT," +
|
|
|
+ " sum(t.SELLPREINVOICEDAMOUNT) SELLPREINVOICEDAMOUNT," +
|
|
|
+ " sum(t.SELLUNINVOICEDAMOUNT) SELLUNINVOICEDAMOUNT," +
|
|
|
+ " sum(t.TODAYRECEIVESUM) TODAYRECEIVESUM," +
|
|
|
+ " sum(t.TODAYPAYSUM) TODAYPAYSUM" +
|
|
|
+ " FROM REPORT_ERMCP_AREAFINANCE t" +
|
|
|
+ " WHERE 1 = 1 %v" +
|
|
|
+ " GROUP BY %v"
|
|
|
+ sqlId.FormatParam(strFileds, sqlParam.String(), strFileds)
|
|
|
+ }
|
|
|
return sqlId.String()
|
|
|
}
|
|
|
|