|
|
@@ -160,144 +160,7 @@ func (r *Ermcp3ReportOPLog) GetDataEx() (interface{}, error) {
|
|
|
return sData, err
|
|
|
}
|
|
|
|
|
|
-// Ermcp3ReportAreaSpotPL 现货损益日/月表
|
|
|
-type Ermcp3ReportAreaSpotPL struct {
|
|
|
- AREAUSERID int64 `json:"areauserid" xorm:"'AREAUSERID'"` // 所属机构
|
|
|
- WRSTANDARDID int64 `json:"wrstandardid" xorm:"'WRSTANDARDID'"` // 品类ID
|
|
|
- SPOTGOODSBRANDID int32 `json:"spotgoodsbrandid" xorm:"'SPOTGOODSBRANDID'"` // 现货品牌ID
|
|
|
- ORIBUYQTY float64 `json:"oribuyqty" xorm:"'ORIBUYQTY'"` // 期初采购总量
|
|
|
- ORIBUYAMOUNT float64 `json:"oribuyamount" xorm:"'ORIBUYAMOUNT'"` // 期初采购总额
|
|
|
- ORISELLQTY float64 `json:"orisellqty" xorm:"'ORISELLQTY'"` // 期初销售总量
|
|
|
- ORISELLAMOUNT float64 `json:"orisellamount" xorm:"'ORISELLAMOUNT'"` // 期初销售总额
|
|
|
- ORIQTY float64 `json:"oriqty" xorm:"'ORIQTY'"` // 期初量
|
|
|
- ORIAVERAGEPRICE float64 `json:"oriaverageprice" xorm:"'ORIAVERAGEPRICE'"` // 期初均价
|
|
|
- ORIAMOUNT float64 `json:"oriamount" xorm:"'ORIAMOUNT'"` // 期初额
|
|
|
- TODAYBUYQTY float64 `json:"todaybuyqty" xorm:"'TODAYBUYQTY'"` // 今日采购量(采购增量)
|
|
|
- TODAYBUYAMOUNT float64 `json:"todaybuyamount" xorm:"'TODAYBUYAMOUNT'"` // 今日采购额
|
|
|
- TODAYBUYAVERAGEPRICE float64 `json:"todaybuyaverageprice" xorm:"'TODAYBUYAVERAGEPRICE'"` // 今日采购均价(采购均价)
|
|
|
- TODAYSELLQTY float64 `json:"todaysellqty" xorm:"'TODAYSELLQTY'"` // 今日销售量(销售增量)
|
|
|
- TODAYSELLAMOUNT float64 `json:"todaysellamount" xorm:"'TODAYSELLAMOUNT'"` // 今日销售额
|
|
|
- TODAYSELLAVERAGEPRICE float64 `json:"todaysellaverageprice" xorm:"'TODAYSELLAVERAGEPRICE'"` // 今日销售均价(销售均价)
|
|
|
- CURBUYQTY float64 `json:"curbuyqty" xorm:"'CURBUYQTY'"` // 期末采购总量
|
|
|
- CURBUYAMOUNT float64 `json:"curbuyamount" xorm:"'CURBUYAMOUNT'"` // 期末采购总额(采购额)
|
|
|
- CURSELLQTY float64 `json:"cursellqty" xorm:"'CURSELLQTY'"` // 期末销售总量
|
|
|
- CURSELLAMOUNT float64 `json:"cursellamount" xorm:"'CURSELLAMOUNT'"` // 期末销售总额(销售额)
|
|
|
- CURQTY float64 `json:"curqty" xorm:"'CURQTY'"` // 期末量
|
|
|
- CURAVERAGEPRICE float64 `json:"curaverageprice" xorm:"'CURAVERAGEPRICE'"` // 期末均价
|
|
|
- CURAMOUNT float64 `json:"curamount" xorm:"'CURAMOUNT'"` // 期末额
|
|
|
- CURSPOTPRICE float64 `json:"curspotprice" xorm:"'CURSPOTPRICE'"` // 参考市价
|
|
|
- CURMARKETVALUE float64 `json:"curmarketvalue" xorm:"'CURMARKETVALUE'"` // 参考市值
|
|
|
- ACTUALPL float64 `json:"actualpl" xorm:"'ACTUALPL'"` // 实际损益
|
|
|
- FLOATPL float64 `json:"floatpl" xorm:"'FLOATPL'"` // 浮动损益
|
|
|
- UPDATETIME string `json:"updatetime" xorm:"'UPDATETIME'"` // 更新时间
|
|
|
- WRSTANDARDCODE string `json:"wrstandardcode" xorm:"'WRSTANDARDCODE'"` // 品类代码
|
|
|
- WRSTANDARDNAME string `json:"wrstandardname" xorm:"'WRSTANDARDNAME'"` // 品类名称
|
|
|
- WRUNITID int32 `json:"unitid" xorm:"'UNITID'"` // 品类单位id
|
|
|
- BRANDNAME string `json:"brandname" xorm:"'BRANDNAME'"` // 品牌名称
|
|
|
- MODELNAME string `json:"modelname" xorm:"'MODELNAME'"` // 品类名称
|
|
|
- GBUNITID int32 `json:"gbunitid" xorm:"'GBUNITID'"` // 现货单位id
|
|
|
- DELIVERYGOODSID int32 `json:"deliverygoodsid" xorm:"'DELIVERYGOODSID'"` // 现货品种id
|
|
|
- DELIVERYGOODSCODE string `json:"deliverygoodscode" xorm:"'DELIVERYGOODSCODE'"` // 现货品种代码
|
|
|
- DELIVERYGOODSNAME string `json:"deliverygoodsname" xorm:"'DELIVERYGOODSNAME'"` // 现货品种名称
|
|
|
- BIZTYPE int32 `json:"biztype" xorm:"'BIZTYPE'"` // 业务类型 1-套保 2-套利
|
|
|
- CURRENCYID int32 `json:"currencyid" xorm:"'CURRENCYID'"` // 币种id
|
|
|
-
|
|
|
- CURRENCYNAME string `json:"currencyname"` // 币种名称
|
|
|
-
|
|
|
- ENUMDICNAME string `json:"enumdicname"` // 现货商品单位名称
|
|
|
- WRENUMDICNAME string `json:"gbenumdicname"` // 品类单位名称
|
|
|
-
|
|
|
- ReportType int32 `json:"-"` // 报表类型 1-日报表 2-月报表
|
|
|
- ReportDate string `json:"-"` // 格式 日报表(YYYYMMDD) 月报表(YYYYMM)
|
|
|
-}
|
|
|
-
|
|
|
-func (r *Ermcp3ReportAreaSpotPL) calc() {
|
|
|
- r.ENUMDICNAME = mtpcache.GetEnumDicitemName(r.GBUNITID)
|
|
|
- r.WRENUMDICNAME = mtpcache.GetEnumDicitemName(r.WRUNITID)
|
|
|
- r.CURRENCYNAME = mtpcache.GetCurrencyName(r.CURRENCYID)
|
|
|
-}
|
|
|
-
|
|
|
-func (r *Ermcp3ReportAreaSpotPL) buildSql() string {
|
|
|
- var sqlId utils.SQLVal = "SELECT t.AREAUSERID," +
|
|
|
- " 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," +
|
|
|
- " t.currencyid," +
|
|
|
- " t.biztype," +
|
|
|
- " to_char(t.UPDATETIME, 'yyyy-mm-dd hh24:mi:ss') UPDATETIME," +
|
|
|
- " w.wrstandardcode," +
|
|
|
- " w.wrstandardname," +
|
|
|
- " w.unitid WRUNITID," +
|
|
|
- " gb.dgfactoryitemvalue brandname," +
|
|
|
- " g.deliverygoodsid," +
|
|
|
- " g.deliverygoodscode," +
|
|
|
- " g.deliverygoodsname," +
|
|
|
- " g.goodsunitid GBUNITID" +
|
|
|
- " FROM %v t" +
|
|
|
- " left join deliverygoods g" +
|
|
|
- " on t.deliverygoodsid = g.deliverygoodsid" +
|
|
|
- " left join wrstandard w" +
|
|
|
- " on t.wrstandardid = w.wrstandardid" +
|
|
|
- " left join dgfactoryitem gb" +
|
|
|
- " on t.spotgoodsbrandid = gb.dgfactoryitemid" +
|
|
|
- " WHERE 1 = 1"
|
|
|
- sqlId.And("t.AREAUSERID", r.AREAUSERID)
|
|
|
- if r.ReportType == 1 {
|
|
|
- // 日报表
|
|
|
- sqlId.FormatParam("RECKON_ERMCP_AREASPOTPL")
|
|
|
- sqlId.And("t.reckondate", r.ReportDate)
|
|
|
- } else {
|
|
|
- // 月报表
|
|
|
- sqlId.FormatParam("REPORT_ERMCP_AREASPOTPL")
|
|
|
- sqlId.And("t.cycletype", 1)
|
|
|
- sqlId.And("t.cycletime", r.ReportDate)
|
|
|
- }
|
|
|
- if r.WRSTANDARDID > 0 {
|
|
|
- sqlId.And("t.wrstandardid", r.WRSTANDARDID)
|
|
|
- }
|
|
|
- if r.SPOTGOODSBRANDID > 0 {
|
|
|
- sqlId.And("t.spotgoodsbrandid", r.SPOTGOODSBRANDID)
|
|
|
- }
|
|
|
- if r.DELIVERYGOODSID > 0 {
|
|
|
- sqlId.And("t.deliverygoodsid", r.DELIVERYGOODSID)
|
|
|
- }
|
|
|
- return sqlId.String()
|
|
|
-}
|
|
|
-
|
|
|
-// GetDataEx 获取现货损益日(月)报表
|
|
|
-func (r *Ermcp3ReportAreaSpotPL) GetDataEx() (interface{}, error) {
|
|
|
- sData := make([]Ermcp3ReportAreaSpotPL, 0)
|
|
|
- err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
|
|
|
- for i := range sData {
|
|
|
- sData[i].calc()
|
|
|
- }
|
|
|
- return sData, err
|
|
|
-}
|
|
|
-
|
|
|
-// Ermcp3ReckonAreaSpotSub 现货日报表
|
|
|
+// Ermcp3ReckonAreaSpotSub 现货日报表(作废)
|
|
|
type Ermcp3ReckonAreaSpotSub struct {
|
|
|
RECKONDATE string `json:"reckondate" xorm:"'RECKONDATE'" form:"reckondate" binding:"required"` // 日照时期(yyyyMMdd)
|
|
|
AREAUSERID int64 `json:"areauserid" xorm:"'AREAUSERID'" form:"userid" binding:"required"` // 账户所属机构
|
|
|
@@ -443,7 +306,7 @@ func (r *Ermcp3ReckonAreaSpotSub) GetDataEx() (interface{}, error) {
|
|
|
return sData, err
|
|
|
}
|
|
|
|
|
|
-// Ermcp3ReportAreaSpotSub 现货分类月报表
|
|
|
+// Ermcp3ReportAreaSpotSub 现货分类月报表(作废)
|
|
|
type Ermcp3ReportAreaSpotSub struct {
|
|
|
ORIBUYRECKONQTY float64 `json:"oribuyreckonqty" xorm:"'ORIBUYRECKONQTY'"` // 期初采购合同交收量【期初】
|
|
|
ORISELLRECKONQTY float64 `json:"orisellreckonqty" xorm:"'ORISELLRECKONQTY'"` // 期初销售合同交收量【期初】
|
|
|
@@ -1017,3 +880,252 @@ func (r *Ermcp3ExposureHedgeplanDetail) GetDataEx() (interface{}, error) {
|
|
|
}
|
|
|
return sData, err
|
|
|
}
|
|
|
+
|
|
|
+// Ermcp3ReckonAreaSpotPL 现货日照数据(现货数据日照表)
|
|
|
+type Ermcp3ReckonAreaSpotPL struct {
|
|
|
+ RECKONDATE string `json:"reckondate" xorm:"RECKONDATE"` // 日照时期(yyyyMMdd)
|
|
|
+ AREAUSERID int64 `json:"areauserid" xorm:"AREAUSERID"` // 所属机构\交易用户ID
|
|
|
+ ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 期货账户ID (作废, 默认为0)
|
|
|
+ WRFACTORTYPEID int64 `json:"wrfactortypeid" xorm:"WRFACTORTYPEID"` // 仓单要素类型ID(212+Unix秒时间戳(10位)+xxxxxx)
|
|
|
+ CURRENCYID int32 `json:"currencyid" xorm:"CURRENCYID"` // 结算币种ID【原值】
|
|
|
+ BIZTYPE int32 `json:"biztype" xorm:"BIZTYPE"` // 业务类型 - 1:套保 2:套利
|
|
|
+ DELIVERYGOODSID int64 `json:"deliverygoodsid" xorm:"DELIVERYGOODSID"` // 现货品种ID
|
|
|
+ WRSTANDARDID string `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货品类ID
|
|
|
+ SPOTGOODSBRANDID int32 `json:"spotgoodsbrandid" xorm:"SPOTGOODSBRANDID"` // 现货品牌ID
|
|
|
+ ORIBUYQTY float64 `json:"oribuyqty" xorm:"ORIBUYQTY"` // 期初采购总量
|
|
|
+ ORIBUYAMOUNT float64 `json:"oribuyamount" xorm:"ORIBUYAMOUNT"` // 期初采购总额
|
|
|
+ ORISELLQTY float64 `json:"orisellqty" xorm:"ORISELLQTY"` // 期初销售总量
|
|
|
+ ORISELLAMOUNT float64 `json:"orisellamount" xorm:"ORISELLAMOUNT"` // 期初销售总额
|
|
|
+ ORIQTY float64 `json:"oriqty" xorm:"ORIQTY"` // 期初量
|
|
|
+ ORIAVERAGEPRICE float64 `json:"oriaverageprice" xorm:"ORIAVERAGEPRICE"` // 期初均价
|
|
|
+ ORIAMOUNT float64 `json:"oriamount" xorm:"ORIAMOUNT"` // 期初额
|
|
|
+ TODAYBUYQTY float64 `json:"todaybuyqty" xorm:"TODAYBUYQTY"` // 今日采购量(今采购量)
|
|
|
+ TODAYBUYAMOUNT float64 `json:"todaybuyamount" xorm:"TODAYBUYAMOUNT"` // 今日采购额(今采购额)
|
|
|
+ TODAYBUYAVERAGEPRICE float64 `json:"todaybuyaverageprice" xorm:"TODAYBUYAVERAGEPRICE"` // 今日采购均价
|
|
|
+ TODAYSELLQTY float64 `json:"todaysellqty" xorm:"TODAYSELLQTY"` // 今日销售量(今销售量)
|
|
|
+ TODAYSELLAMOUNT float64 `json:"todaysellamount" xorm:"TODAYSELLAMOUNT"` // 今日销售额(今销售额)
|
|
|
+ TODAYSELLAVERAGEPRICE float64 `json:"todaysellaverageprice" xorm:"TODAYSELLAVERAGEPRICE"` // 今日销售均价
|
|
|
+ CURBUYQTY float64 `json:"curbuyqty" xorm:"CURBUYQTY"` // 期末采购总量
|
|
|
+ CURBUYAMOUNT float64 `json:"curbuyamount" xorm:"CURBUYAMOUNT"` // 期末采购总额
|
|
|
+ CURSELLQTY float64 `json:"cursellqty" xorm:"CURSELLQTY"` // 期末销售总量
|
|
|
+ CURSELLAMOUNT float64 `json:"cursellamount" xorm:"CURSELLAMOUNT"` // 期末销售总额
|
|
|
+ CURQTY float64 `json:"curqty" xorm:"CURQTY"` // 期末量
|
|
|
+ CURAVERAGEPRICE float64 `json:"curaverageprice" xorm:"CURAVERAGEPRICE"` // 期末均价
|
|
|
+ CURAMOUNT float64 `json:"curamount" xorm:"CURAMOUNT"` // 期末额
|
|
|
+ CURSPOTPRICE float64 `json:"curspotprice" xorm:"CURSPOTPRICE"` // 参考市价(最新价)
|
|
|
+ CURMARKETVALUE float64 `json:"curmarketvalue" xorm:"CURMARKETVALUE"` // 参考市值(期末市值)
|
|
|
+ ACTUALPL float64 `json:"actualpl" xorm:"ACTUALPL"` // 现货损益
|
|
|
+ FLOATPL float64 `json:"floatpl" xorm:"FLOATPL"` // 浮动损益
|
|
|
+ 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'"` // 品类名称
|
|
|
+ UNITID int32 `json:"unitid" xorm:"'UNITID'"` // 品类单位id
|
|
|
+ BRANDNAME string `json:"brandname" xorm:"'BRANDNAME'"` // 品牌名称
|
|
|
+
|
|
|
+ EnumdicName string `json:"enumdicname"` // 现货商品单位名称
|
|
|
+ UNITIDNAME string `json:"unitidname"` // 品类单位名称
|
|
|
+ ACCOUNTNAME string `json:"accountname"` // 机构名称
|
|
|
+ CURRENCYNAME string `json:"currencyname"` // 币种名称
|
|
|
+}
|
|
|
+
|
|
|
+func (r *Ermcp3ReckonAreaSpotPL) calc() {
|
|
|
+ r.EnumdicName = mtpcache.GetEnumDicitemName(r.GOODSUNITID)
|
|
|
+ r.UNITIDNAME = mtpcache.GetEnumDicitemName(r.UNITID)
|
|
|
+ r.ACCOUNTNAME = mtpcache.GetUserNameByUserId(r.AREAUSERID)
|
|
|
+ r.CURRENCYNAME = mtpcache.GetCurrencyName(r.CURRENCYID)
|
|
|
+}
|
|
|
+
|
|
|
+func (r *Ermcp3ReckonAreaSpotPL) buildSql() 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," +
|
|
|
+ " g.deliverygoodscode," +
|
|
|
+ " g.deliverygoodsname," +
|
|
|
+ " g.goodsunitid," +
|
|
|
+ " w.wrstandardcode," +
|
|
|
+ " 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.And("t.RECKONDATE", r.RECKONDATE)
|
|
|
+ return sqlId.String()
|
|
|
+}
|
|
|
+
|
|
|
+// GetDataEx 获取现货日照数据(现货数据日照表)
|
|
|
+func (r *Ermcp3ReckonAreaSpotPL) GetDataEx() (interface{}, error) {
|
|
|
+ sData := make([]Ermcp3ReckonAreaSpotPL, 0)
|
|
|
+ err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
|
|
|
+ for i := range sData {
|
|
|
+ sData[i].calc()
|
|
|
+ }
|
|
|
+ return sData, err
|
|
|
+}
|
|
|
+
|
|
|
+// Ermcp3ReportAreaSpotPL 现货周期数据(周/月/季/年)
|
|
|
+type Ermcp3ReportAreaSpotPL struct {
|
|
|
+ CYCLETIME string `json:"cycletime" xorm:"'CYCLETIME'"` // 周期时间 月(YYYYMM) 季(YYYYQ) 年(YYYY) 周(YYYYIW) 全(0)【原值】
|
|
|
+ CYCLETYPE int32 `json:"cycletype" xorm:"'CYCLETYPE'"` // 周期类型 - 1:月 2:季 3:年 4:周 5:全报表【原值】
|
|
|
+ AREAUSERID int64 `json:"areauserid" xorm:"AREAUSERID"` // 所属机构\交易用户ID
|
|
|
+ ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 期货账户ID (作废, 默认为0)
|
|
|
+ WRFACTORTYPEID int64 `json:"wrfactortypeid" xorm:"WRFACTORTYPEID"` // 仓单要素类型ID(212+Unix秒时间戳(10位)+xxxxxx)
|
|
|
+ CURRENCYID int32 `json:"currencyid" xorm:"CURRENCYID"` // 结算币种ID【原值】
|
|
|
+ BIZTYPE int32 `json:"biztype" xorm:"BIZTYPE"` // 业务类型 - 1:套保 2:套利
|
|
|
+ DELIVERYGOODSID int64 `json:"deliverygoodsid" xorm:"DELIVERYGOODSID"` // 现货品种ID
|
|
|
+ WRSTANDARDID string `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货品类ID
|
|
|
+ SPOTGOODSBRANDID int32 `json:"spotgoodsbrandid" xorm:"SPOTGOODSBRANDID"` // 现货品牌ID
|
|
|
+ ORIBUYQTY float64 `json:"oribuyqty" xorm:"ORIBUYQTY"` // 期初采购总量
|
|
|
+ ORIBUYAMOUNT float64 `json:"oribuyamount" xorm:"ORIBUYAMOUNT"` // 期初采购总额
|
|
|
+ ORISELLQTY float64 `json:"orisellqty" xorm:"ORISELLQTY"` // 期初销售总量
|
|
|
+ ORISELLAMOUNT float64 `json:"orisellamount" xorm:"ORISELLAMOUNT"` // 期初销售总额
|
|
|
+ ORIQTY float64 `json:"oriqty" xorm:"ORIQTY"` // 期初量
|
|
|
+ ORIAVERAGEPRICE float64 `json:"oriaverageprice" xorm:"ORIAVERAGEPRICE"` // 期初均价
|
|
|
+ ORIAMOUNT float64 `json:"oriamount" xorm:"ORIAMOUNT"` // 期初额
|
|
|
+ TODAYBUYQTY float64 `json:"todaybuyqty" xorm:"TODAYBUYQTY"` // 今日采购量(今采购量)
|
|
|
+ TODAYBUYAMOUNT float64 `json:"todaybuyamount" xorm:"TODAYBUYAMOUNT"` // 今日采购额(今采购额)
|
|
|
+ TODAYBUYAVERAGEPRICE float64 `json:"todaybuyaverageprice" xorm:"TODAYBUYAVERAGEPRICE"` // 今日采购均价
|
|
|
+ TODAYSELLQTY float64 `json:"todaysellqty" xorm:"TODAYSELLQTY"` // 今日销售量(今销售量)
|
|
|
+ TODAYSELLAMOUNT float64 `json:"todaysellamount" xorm:"TODAYSELLAMOUNT"` // 今日销售额(今销售额)
|
|
|
+ TODAYSELLAVERAGEPRICE float64 `json:"todaysellaverageprice" xorm:"TODAYSELLAVERAGEPRICE"` // 今日销售均价
|
|
|
+ CURBUYQTY float64 `json:"curbuyqty" xorm:"CURBUYQTY"` // 期末采购总量
|
|
|
+ CURBUYAMOUNT float64 `json:"curbuyamount" xorm:"CURBUYAMOUNT"` // 期末采购总额
|
|
|
+ CURSELLQTY float64 `json:"cursellqty" xorm:"CURSELLQTY"` // 期末销售总量
|
|
|
+ CURSELLAMOUNT float64 `json:"cursellamount" xorm:"CURSELLAMOUNT"` // 期末销售总额
|
|
|
+ CURQTY float64 `json:"curqty" xorm:"CURQTY"` // 期末量
|
|
|
+ CURAVERAGEPRICE float64 `json:"curaverageprice" xorm:"CURAVERAGEPRICE"` // 期末均价
|
|
|
+ CURAMOUNT float64 `json:"curamount" xorm:"CURAMOUNT"` // 期末额
|
|
|
+ CURSPOTPRICE float64 `json:"curspotprice" xorm:"CURSPOTPRICE"` // 参考市价(最新价)
|
|
|
+ CURMARKETVALUE float64 `json:"curmarketvalue" xorm:"CURMARKETVALUE"` // 参考市值(期末市值)
|
|
|
+ ACTUALPL float64 `json:"actualpl" xorm:"ACTUALPL"` // 现货损益
|
|
|
+ FLOATPL float64 `json:"floatpl" xorm:"FLOATPL"` // 浮动损益
|
|
|
+ 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'"` // 品类名称
|
|
|
+ UNITID int32 `json:"unitid" xorm:"'UNITID'"` // 品类单位id
|
|
|
+ BRANDNAME string `json:"brandname" xorm:"'BRANDNAME'"` // 品牌名称
|
|
|
+
|
|
|
+ EnumdicName string `json:"enumdicname"` // 现货商品单位名称
|
|
|
+ UNITIDNAME string `json:"unitidname"` // 品类单位名称
|
|
|
+ ACCOUNTNAME string `json:"accountname"` // 机构名称
|
|
|
+ CURRENCYNAME string `json:"currencyname"` // 币种名称
|
|
|
+}
|
|
|
+
|
|
|
+func (r *Ermcp3ReportAreaSpotPL) calc() {
|
|
|
+ r.EnumdicName = mtpcache.GetEnumDicitemName(r.GOODSUNITID)
|
|
|
+ r.UNITIDNAME = mtpcache.GetEnumDicitemName(r.UNITID)
|
|
|
+ r.ACCOUNTNAME = mtpcache.GetUserNameByUserId(r.AREAUSERID)
|
|
|
+ r.CURRENCYNAME = mtpcache.GetCurrencyName(r.CURRENCYID)
|
|
|
+}
|
|
|
+
|
|
|
+func (r *Ermcp3ReportAreaSpotPL) buildSql() string {
|
|
|
+ var sqlId utils.SQLVal = "SELECT t.Cycletype," +
|
|
|
+ " t.Cycletime," +
|
|
|
+ " 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," +
|
|
|
+ " g.deliverygoodscode," +
|
|
|
+ " g.deliverygoodsname," +
|
|
|
+ " g.goodsunitid," +
|
|
|
+ " w.wrstandardcode," +
|
|
|
+ " w.wrstandardname," +
|
|
|
+ " w.unitid," +
|
|
|
+ " dg.dgfactoryitemvalue brandName" +
|
|
|
+ " FROM REPORT_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.And("t.Cycletype", r.CYCLETYPE)
|
|
|
+ sqlId.And("t.CYCLETIME", r.CYCLETIME)
|
|
|
+ return sqlId.String()
|
|
|
+}
|
|
|
+
|
|
|
+// GetDataEx 获取现货周期数据(周/月/季/年)
|
|
|
+func (r *Ermcp3ReportAreaSpotPL) GetDataEx() (interface{}, error) {
|
|
|
+ sData := make([]Ermcp3ReportAreaSpotPL, 0)
|
|
|
+ err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
|
|
|
+ for i := range sData {
|
|
|
+ sData[i].calc()
|
|
|
+ }
|
|
|
+ return sData, err
|
|
|
+}
|