|
|
@@ -911,22 +911,23 @@ type Ermcp3AreaSpotPLReport struct {
|
|
|
UPDATETIME string `json:"updatetime" xorm:"UPDATETIME"` // 更新时间
|
|
|
TODAYINQTY float64 `json:"todayinqty" xorm:"TODAYINQTY"` // 今日入库量(今入库量)
|
|
|
TODAYOUTQTY float64 `json:"todayoutqty" xorm:"TODAYOUTQTY"` // 今日出库量(今出库量)
|
|
|
- DELIVERYGOODSCODE string `json:"deliverygoodscode" xorm:"'DELIVERYGOODSCODE'"` // 现货商品代码
|
|
|
- DELIVERYGOODSNAME string `json:"deliverygoodsname" xorm:"'DELIVERYGOODSNAME'"` // 现货商品名称
|
|
|
- GOODSUNITID int32 `json:"goodsunitid" xorm:"'GOODSUNITID'"` // 现货商品单位id
|
|
|
- WRSTANDARDCODE string `json:"wrstandardcode" xorm:"'WRSTANDARDCODE'"` // 品类代码
|
|
|
- WRSTANDARDNAME string `json:"wrstandardname" xorm:"'WRSTANDARDNAME'"` // 品类名称
|
|
|
+ DELIVERYGOODSCODE string `json:"deliverygoodscode" xorm:"'DELIVERYGOODSCODE'"` // 现货品种代码
|
|
|
+ DELIVERYGOODSNAME string `json:"deliverygoodsname" xorm:"'DELIVERYGOODSNAME'"` // 现货品种名称
|
|
|
+ GOODSUNITID int32 `json:"goodsunitid" xorm:"'GOODSUNITID'"` // 现货品种单位id(作废)
|
|
|
+ WRSTANDARDCODE string `json:"wrstandardcode" xorm:"'WRSTANDARDCODE'"` // 现货商品(品类)代码
|
|
|
+ WRSTANDARDNAME string `json:"wrstandardname" xorm:"'WRSTANDARDNAME'"` // 现货商品(品类)名称
|
|
|
UNITID int32 `json:"unitid" xorm:"'UNITID'"` // 品类单位id
|
|
|
BRANDNAME string `json:"brandname" xorm:"'BRANDNAME'"` // 品牌名称
|
|
|
|
|
|
- EnumdicName string `json:"enumdicname"` // 现货商品单位名称
|
|
|
+ EnumdicName string `json:"enumdicname"` // 现货品种单位名称(作废)
|
|
|
UNITIDNAME string `json:"unitidname"` // 品类单位名称
|
|
|
ACCOUNTNAME string `json:"accountname"` // 机构名称
|
|
|
CURRENCYNAME string `json:"currencyname"` // 币种名称
|
|
|
|
|
|
- QueryType int32 `json:"-"` // 查询类型 1-报表 2-报表明细
|
|
|
- BeginDate string `json:"begindate"` // 开始交易日
|
|
|
- EndDate string `json:"enddate"` // 结束交易日
|
|
|
+ QueryType int32 `json:"-"` // 查询类型 1-报表 2-报表明细
|
|
|
+ BeginDate string `json:"begindate"` // 开始交易日
|
|
|
+ EndDate string `json:"enddate"` // 结束交易日
|
|
|
+ SumFlag int32 `json:"-" form:"sumflag"` // 日报表统计维度 1:品种+品类
|
|
|
}
|
|
|
|
|
|
func (r *Ermcp3AreaSpotPLReport) calc() {
|
|
|
@@ -958,7 +959,11 @@ func (r *Ermcp3AreaSpotPLReport) calc() {
|
|
|
func (r *Ermcp3AreaSpotPLReport) buildSql() string {
|
|
|
// 日报表
|
|
|
if r.QueryType == 1 && r.CYCLETYPE == 0 {
|
|
|
- return r.buildSqlDay()
|
|
|
+ if r.SumFlag == 1 {
|
|
|
+ return r.buildSqlDay2()
|
|
|
+ } else {
|
|
|
+ return r.buildSqlDay()
|
|
|
+ }
|
|
|
}
|
|
|
// 日报表明细
|
|
|
if r.QueryType == 2 && r.CYCLETYPE == 0 {
|
|
|
@@ -1018,6 +1023,66 @@ func (r *Ermcp3AreaSpotPLReport) buildSqlDay() string {
|
|
|
return sqlId.String()
|
|
|
}
|
|
|
|
|
|
+// buildSqlDay2 现货日报表查询语句(汇总维度与buildSqlDay不同, 给pcweb版本用)
|
|
|
+func (r *Ermcp3AreaSpotPLReport) buildSqlDay2() string {
|
|
|
+ var sqlId utils.SQLVal = `
|
|
|
+select a.*,
|
|
|
+ g.deliverygoodscode,
|
|
|
+ g.deliverygoodsname,
|
|
|
+ g.goodsunitid,
|
|
|
+ w.wrstandardcode,
|
|
|
+ w.wrstandardname,
|
|
|
+ w.unitid
|
|
|
+ from (SELECT t.RECKONDATE,
|
|
|
+ t.AREAUSERID,
|
|
|
+ t.CURRENCYID,
|
|
|
+ t.DELIVERYGOODSID,
|
|
|
+ t.WRSTANDARDID,
|
|
|
+ sum(t.ORIBUYQTY) ORIBUYQTY,
|
|
|
+ sum(t.ORIBUYAMOUNT) ORIBUYAMOUNT,
|
|
|
+ sum(t.ORISELLQTY) ORISELLQTY,
|
|
|
+ sum(t.ORISELLAMOUNT) ORISELLAMOUNT,
|
|
|
+ sum(t.ORIQTY) ORIQTY,
|
|
|
+ sum(t.ORIAMOUNT) ORIAMOUNT,
|
|
|
+ sum(t.TODAYBUYQTY) TODAYBUYQTY,
|
|
|
+ sum(t.TODAYBUYAMOUNT) TODAYBUYAMOUNT,
|
|
|
+ sum(t.TODAYSELLQTY) TODAYSELLQTY,
|
|
|
+ sum(t.TODAYSELLAMOUNT) TODAYSELLAMOUNT,
|
|
|
+ sum(t.CURBUYQTY) CURBUYQTY,
|
|
|
+ sum(t.CURBUYAMOUNT) CURBUYAMOUNT,
|
|
|
+ sum(t.CURSELLQTY) CURSELLQTY,
|
|
|
+ sum(t.CURSELLAMOUNT) CURSELLAMOUNT,
|
|
|
+ sum(t.CURQTY) CURQTY,
|
|
|
+ sum(t.CURAMOUNT) CURAMOUNT,
|
|
|
+ max(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) a
|
|
|
+ LEFT JOIN DELIVERYGOODS g
|
|
|
+ on a.deliverygoodsid = g.deliverygoodsid
|
|
|
+ LEFT JOIN WRSTANDARD w
|
|
|
+ on a.wrstandardid = w.wrstandardid
|
|
|
+`
|
|
|
+ var sqlParam utils.SQLVal
|
|
|
+ sqlParam.And("t.AREAUSERID", r.AREAUSERID)
|
|
|
+ if r.QueryType == 1 {
|
|
|
+ sqlParam.And("t.RECKONDATE", r.RECKONDATE)
|
|
|
+ } else if r.QueryType == 2 {
|
|
|
+ sqlParam.Join(fmt.Sprintf(" and t.RECKONDATE >= '%v' and t.RECKONDATE <= '%v' ", r.BeginDate, r.EndDate))
|
|
|
+ }
|
|
|
+ sqlId.FormatParam(sqlParam.String())
|
|
|
+ return sqlId.String()
|
|
|
+}
|
|
|
+
|
|
|
func (r *Ermcp3AreaSpotPLReport) buildSqlDayDetail() string {
|
|
|
var sqlId utils.SQLVal = "select a.*," +
|
|
|
" g.deliverygoodscode," +
|