Bläddra i källkod

任务 #1809 损益报表变更

zou.yingbin 4 år sedan
förälder
incheckning
a785bdc734
4 ändrade filer med 256 tillägg och 295 borttagningar
  1. 23 3
      docs/docs.go
  2. 23 3
      docs/swagger.json
  3. 113 231
      docs/swagger.yaml
  4. 97 58
      models/ermcp3Report.go

+ 23 - 3
docs/docs.go

@@ -13924,7 +13924,7 @@ var doc = `{
                     "description": "路由组件",
                     "type": "string"
                 },
-                "isShow": {
+                "isshow": {
                     "description": "是否显示",
                     "type": "boolean"
                 },
@@ -13936,7 +13936,7 @@ var doc = `{
                     "description": "备注",
                     "type": "string"
                 },
-                "requireAuth": {
+                "requireauth": {
                     "description": "是否需要权限判断",
                     "type": "boolean"
                 },
@@ -19918,10 +19918,18 @@ var doc = `{
                     "description": "期货浮动损益",
                     "type": "number"
                 },
+                "futurespotratio": {
+                    "description": "期现比例 = 期货头寸总量 / 现货头寸总量",
+                    "type": "number"
+                },
                 "goodsunitid": {
                     "description": "套保品种单位id",
                     "type": "integer"
                 },
+                "hedgeexposurepl": {
+                    "description": "套保敞口损益",
+                    "type": "number"
+                },
                 "middlegoodscode": {
                     "description": "套保品种代码",
                     "type": "string"
@@ -19951,7 +19959,19 @@ var doc = `{
                     "type": "number"
                 },
                 "sumpl": {
-                    "description": "汇总损益",
+                    "description": "总敞口损益 | 汇总损益",
+                    "type": "number"
+                },
+                "totalfutureqty": {
+                    "description": "期货头寸总量",
+                    "type": "number"
+                },
+                "totalneedhedgeqty": {
+                    "description": "应套保总量",
+                    "type": "number"
+                },
+                "totalspotqty": {
+                    "description": "现货头寸总量",
                     "type": "number"
                 },
                 "updatetime": {

+ 23 - 3
docs/swagger.json

@@ -13908,7 +13908,7 @@
                     "description": "路由组件",
                     "type": "string"
                 },
-                "isShow": {
+                "isshow": {
                     "description": "是否显示",
                     "type": "boolean"
                 },
@@ -13920,7 +13920,7 @@
                     "description": "备注",
                     "type": "string"
                 },
-                "requireAuth": {
+                "requireauth": {
                     "description": "是否需要权限判断",
                     "type": "boolean"
                 },
@@ -19902,10 +19902,18 @@
                     "description": "期货浮动损益",
                     "type": "number"
                 },
+                "futurespotratio": {
+                    "description": "期现比例 = 期货头寸总量 / 现货头寸总量",
+                    "type": "number"
+                },
                 "goodsunitid": {
                     "description": "套保品种单位id",
                     "type": "integer"
                 },
+                "hedgeexposurepl": {
+                    "description": "套保敞口损益",
+                    "type": "number"
+                },
                 "middlegoodscode": {
                     "description": "套保品种代码",
                     "type": "string"
@@ -19935,7 +19943,19 @@
                     "type": "number"
                 },
                 "sumpl": {
-                    "description": "汇总损益",
+                    "description": "总敞口损益 | 汇总损益",
+                    "type": "number"
+                },
+                "totalfutureqty": {
+                    "description": "期货头寸总量",
+                    "type": "number"
+                },
+                "totalneedhedgeqty": {
+                    "description": "应套保总量",
+                    "type": "number"
+                },
+                "totalspotqty": {
+                    "description": "现货头寸总量",
                     "type": "number"
                 },
                 "updatetime": {

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 113 - 231
docs/swagger.yaml


+ 97 - 58
models/ermcp3Report.go

@@ -1797,22 +1797,27 @@ func (r *Ermcp3AreaStockReportEx) buildSqlReportSum(fields []string) string {
 
 // Ermcp3ArealSumPL 损益汇总表
 type Ermcp3ArealSumPL struct {
-	RECKONDATE      string  `json:"reckondate"  xorm:"RECKONDATE"`             // 日照时期(yyyyMMdd)
-	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
-	MIDDLEGOODSID   int64   `json:"middlegoodsid"  xorm:"MIDDLEGOODSID"`       // 套保品种ID(SEQ_ERMS_MIDDLEGOODS)
-	CURRENCYID      int32   `json:"currencyid"  xorm:"CURRENCYID"`             // 结算币种ID
-	SPOTACTUALPL    float64 `json:"spotactualpl"  xorm:"SPOTACTUALPL"`         // 现货损益
-	SPOTFLOATPL     float64 `json:"spotfloatpl"  xorm:"SPOTFLOATPL"`           // 现货浮动损益
-	FUTUREACTUALPL  float64 `json:"futureactualpl"  xorm:"FUTUREACTUALPL"`     // 期货损益
-	FUTUREFLOATPL   float64 `json:"futurefloatpl"  xorm:"FUTUREFLOATPL"`       // 期货浮动损益
-	SUMACTUALPL     float64 `json:"sumactualpl"  xorm:"SUMACTUALPL"`           // 实际损益 = (ActualPL + FutureActualPL)
-	SUMPL           float64 `json:"sumpl"  xorm:"'SUMPL'"`                     // 汇总损益
-	UPDATETIME      string  `json:"updatetime"  xorm:"UPDATETIME"`             // 更新时间
-	MIDDLEGOODSNAME string  `json:"middlegoodsname"  xorm:"'MIDDLEGOODSNAME'"` // 套保品种名称
-	MIDDLEGOODSCODE string  `json:"middlegoodscode"  xorm:"'MIDDLEGOODSCODE'"` // 套保品种代码
-	GOODSUNITID     int32   `json:"goodsunitid"  xorm:"'GOODSUNITID'"`         // 套保品种单位id
+	RECKONDATE        string  `json:"reckondate"  xorm:"RECKONDATE"`                 // 日照时期(yyyyMMdd)
+	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
+	MIDDLEGOODSID     int64   `json:"middlegoodsid"  xorm:"MIDDLEGOODSID"`           // 套保品种ID(SEQ_ERMS_MIDDLEGOODS)
+	CURRENCYID        int32   `json:"currencyid"  xorm:"CURRENCYID"`                 // 结算币种ID
+	SPOTACTUALPL      float64 `json:"spotactualpl"  xorm:"SPOTACTUALPL"`             // 现货损益
+	SPOTFLOATPL       float64 `json:"spotfloatpl"  xorm:"SPOTFLOATPL"`               // 现货浮动损益
+	FUTUREACTUALPL    float64 `json:"futureactualpl"  xorm:"FUTUREACTUALPL"`         // 期货损益
+	FUTUREFLOATPL     float64 `json:"futurefloatpl"  xorm:"FUTUREFLOATPL"`           // 期货浮动损益
+	SUMACTUALPL       float64 `json:"sumactualpl"  xorm:"SUMACTUALPL"`               // 实际损益 = (ActualPL + FutureActualPL)
+	SUMPL             float64 `json:"sumpl"  xorm:"'SUMPL'"`                         // 总敞口损益 | 汇总损益
+	UPDATETIME        string  `json:"updatetime"  xorm:"UPDATETIME"`                 // 更新时间
+	MIDDLEGOODSNAME   string  `json:"middlegoodsname"  xorm:"'MIDDLEGOODSNAME'"`     // 套保品种名称
+	MIDDLEGOODSCODE   string  `json:"middlegoodscode"  xorm:"'MIDDLEGOODSCODE'"`     // 套保品种代码
+	GOODSUNITID       int32   `json:"goodsunitid"  xorm:"'GOODSUNITID'"`             // 套保品种单位id
+	TOTALSPOTQTY      float64 `json:"totalspotqty"  xorm:"'TOTALSPOTQTY'"`           // 现货头寸总量
+	TOTALFUTUREQTY    float64 `json:"totalfutureqty"  xorm:"'TOTALFUTUREQTY'"`       // 期货头寸总量
+	TOTALNEEDHEDGEQTY float64 `json:"totalneedhedgeqty"  xorm:"'TOTALNEEDHEDGEQTY'"` // 应套保总量
+	FUTURESPOTRATIO   float64 `json:"futurespotratio"  xorm:"'FUTURESPOTRATIO'"`     // 期现比例 = 期货头寸总量 / 现货头寸总量
+	HEDGEEXPOSUREPL   float64 `json:"hedgeexposurepl"  xorm:"'HEDGEEXPOSUREPL'"`     // 套保敞口损益
 
 	ACCOUNTNAME  string `json:"accountname"`  // 机构名称
 	ENUMDICNAME  string `json:"enumdicname"`  // 单位名称(套保品种)
@@ -1842,45 +1847,66 @@ func (r *Ermcp3ArealSumPL) buildSql() string {
 
 // buildSqlDay 损益汇总日报表(需要汇总维度)
 func (r *Ermcp3ArealSumPL) buildSqlDay() string {
-	var sqlId utils.SQLVal = "SELECT t.RECKONDATE," +
-		"       t.AREAUSERID," +
-		"       t.CURRENCYID," +
-		"       sum(t.SPOTACTUALPL) SPOTACTUALPL," +
-		"       sum(t.SPOTFLOATPL) SPOTFLOATPL," +
-		"       sum(t.FUTUREACTUALPL) FUTUREACTUALPL," +
-		"       sum(t.FUTUREFLOATPL) FUTUREFLOATPL," +
-		"       sum(t.SUMACTUALPL) SUMACTUALPL," +
-		"       sum(t.SUMPL) SUMPL" +
-		"  FROM RECKON_ERMCP_AREASUMPL t" +
-		" WHERE 1 = 1"
+	var sqlId utils.SQLVal = `
+SELECT t.RECKONDATE,
+       t.AREAUSERID,
+       t.MIDDLEGOODSID,
+       t.CURRENCYID,
+       t.SPOTACTUALPL,
+       t.SPOTFLOATPL,
+       t.FUTUREACTUALPL,
+       t.FUTUREFLOATPL,
+       t.SUMACTUALPL,
+       t.SUMPL,
+       to_char(t.UPDATETIME, 'yyyy-mm-dd hh24:mi:ss') UPDATETIME,
+       g.middlegoodsname,
+       g.middlegoodscode,
+       g.goodsunitid,
+       t.totalspotqty,
+       t.totalfutureqty,
+       t.totalneedhedgeqty,
+       t.futurespotratio,
+       t.hedgeexposurepl
+  FROM RECKON_ERMCP_AREASUMPL t
+  LEFT JOIN ERMS_MIDDLEGOODS g
+    on t.middlegoodsid = g.middlegoodsid
+ 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))
 	}
-	sqlId.Join(" GROUP BY t.RECKONDATE, t.AREAUSERID, t.CURRENCYID")
 	return sqlId.String()
 }
 
 func (r *Ermcp3ArealSumPL) buildSqlDayDetail() string {
-	var sqlId utils.SQLVal = "SELECT t.RECKONDATE," +
-		"       t.AREAUSERID," +
-		"       t.MIDDLEGOODSID," +
-		"       t.CURRENCYID," +
-		"       t.SPOTACTUALPL," +
-		"       t.SPOTFLOATPL," +
-		"       t.FUTUREACTUALPL," +
-		"       t.FUTUREFLOATPL," +
-		"       t.SUMACTUALPL," +
-		"       t.SUMPL," +
-		"       to_char(t.UPDATETIME, 'yyyy-mm-dd hh24:mi:ss') UPDATETIME," +
-		"       g.middlegoodsname," +
-		"       g.middlegoodscode," +
-		"       g.goodsunitid" +
-		"  FROM RECKON_ERMCP_AREASUMPL t" +
-		"  LEFT JOIN ERMS_MIDDLEGOODS g on t.middlegoodsid=g.middlegoodsid" +
-		" WHERE 1 = 1"
+	var sqlId utils.SQLVal = `
+SELECT t.RECKONDATE,
+       t.AREAUSERID,
+       t.MIDDLEGOODSID,
+       t.CURRENCYID,
+       t.SPOTACTUALPL,
+       t.SPOTFLOATPL,
+       t.FUTUREACTUALPL,
+       t.FUTUREFLOATPL,
+       t.SUMACTUALPL,
+       t.SUMPL,
+       to_char(t.UPDATETIME, 'yyyy-mm-dd hh24:mi:ss') UPDATETIME,
+       g.middlegoodsname,
+       g.middlegoodscode,
+       g.goodsunitid,
+       t.totalspotqty,
+       t.totalfutureqty,
+       t.totalneedhedgeqty,
+       t.futurespotratio,
+       t.hedgeexposurepl
+  FROM RECKON_ERMCP_AREASUMPL t
+  LEFT JOIN ERMS_MIDDLEGOODS g
+    on t.middlegoodsid = g.middlegoodsid
+ WHERE 1 = 1
+`
 	sqlId.And("t.AREAUSERID", r.AREAUSERID)
 	sqlId.AndEx("t.RECKONDATE", r.RECKONDATE, len(r.RECKONDATE) > 0)
 	if len(r.BeginDate) > 0 && len(r.EndDate) > 0 {
@@ -1891,22 +1917,35 @@ func (r *Ermcp3ArealSumPL) buildSqlDayDetail() string {
 }
 
 func (r *Ermcp3ArealSumPL) buildSqlCycle() string {
-	var sqlId utils.SQLVal = "SELECT t.AREAUSERID," +
-		"       t.CYCLETIME," +
-		"       t.CYCLETYPE," +
-		"       t.CURRENCYID," +
-		"       sum(t.SPOTACTUALPL) SPOTACTUALPL," +
-		"       sum(t.SPOTFLOATPL) SPOTFLOATPL," +
-		"       sum(t.FUTUREACTUALPL) FUTUREACTUALPL," +
-		"       sum(t.FUTUREFLOATPL) FUTUREFLOATPL," +
-		"       sum(t.SUMACTUALPL) SUMACTUALPL," +
-		"       sum(t.SUMPL) SUMPL" +
-		"  FROM REPORT_ERMCP_AREASUMPL t" +
-		" WHERE 1 = 1"
+	var sqlId utils.SQLVal = `
+SELECT t.CYCLETYPE,
+       t.CYCLETIME,
+       t.AREAUSERID,
+       t.MIDDLEGOODSID,
+       t.CURRENCYID,
+       t.SPOTACTUALPL,
+       t.SPOTFLOATPL,
+       t.FUTUREACTUALPL,
+       t.FUTUREFLOATPL,
+       t.SUMACTUALPL,
+       t.SUMPL,
+       to_char(t.UPDATETIME, 'yyyy-mm-dd hh24:mi:ss') UPDATETIME,
+       g.middlegoodsname,
+       g.middlegoodscode,
+       g.goodsunitid,
+       t.totalspotqty,
+       t.totalfutureqty,
+       t.totalneedhedgeqty,
+       t.futurespotratio,
+       t.hedgeexposurepl
+  FROM REPORT_ERMCP_AREASUMPL t
+  LEFT JOIN ERMS_MIDDLEGOODS g
+    on t.middlegoodsid = g.middlegoodsid
+ WHERE 1 = 1
+`
 	sqlId.And("t.AREAUSERID", r.AREAUSERID)
 	sqlId.And("t.cycletype", r.CYCLETYPE)
 	sqlId.And("t.cycletime", r.CYCLETIME)
-	sqlId.Join(" GROUP BY t.AREAUSERID, t.CURRENCYID, t.CYCLETIME, t.CYCLETYPE")
 	return sqlId.String()
 }
 

Vissa filer visades inte eftersom för många filer har ändrats