Explorar o código

修改接口BUG

zhou.xiaoning %!s(int64=3) %!d(string=hai) anos
pai
achega
b14d794ba5
Modificáronse 5 ficheiros con 75 adicións e 39 borrados
  1. 14 2
      docs/docs.go
  2. 14 2
      docs/swagger.json
  3. 11 2
      docs/swagger.yaml
  4. 26 32
      models/ermcp8.go
  5. 10 1
      models/ermcpExposure.go

+ 14 - 2
docs/docs.go

@@ -18575,6 +18575,10 @@ var doc = `{
                     "description": "期货品种系数(折算系数)",
                     "type": "number"
                 },
+                "curhedgeqty": {
+                    "description": "期货套期量 = 当前持仓*期货合约单位*期货品种系数",
+                    "type": "number"
+                },
                 "curqty": {
                     "description": "当前持仓",
                     "type": "integer"
@@ -18603,10 +18607,18 @@ var doc = `{
                     "description": "对冲账号(只有外部账号才有值)",
                     "type": "string"
                 },
+                "middlegoodscode": {
+                    "description": "套保商品代码",
+                    "type": "string"
+                },
                 "middlegoodsid": {
                     "description": "套保商品id",
                     "type": "integer"
                 },
+                "middlegoodsname": {
+                    "description": "套保商品名称",
+                    "type": "string"
+                },
                 "ydqty": {
                     "description": "昨日持仓",
                     "type": "integer"
@@ -21721,7 +21733,7 @@ var doc = `{
                     "type": "number"
                 },
                 "middlegoodschange": {
-                    "description": "套期商品变化量 = LogValue * 折算系数* (1/(1+增值税))",
+                    "description": "套期商品变化量 = LogValue * 折算系数 * (1/(1+增值税))",
                     "type": "number"
                 },
                 "operatelogtype": {
@@ -21757,7 +21769,7 @@ var doc = `{
                     "type": "integer"
                 },
                 "wrstandardname": {
-                    "description": "商品名称 LogValue * 折算系数* (1/(1+增值税))",
+                    "description": "商品名称",
                     "type": "string"
                 }
             }

+ 14 - 2
docs/swagger.json

@@ -18559,6 +18559,10 @@
                     "description": "期货品种系数(折算系数)",
                     "type": "number"
                 },
+                "curhedgeqty": {
+                    "description": "期货套期量 = 当前持仓*期货合约单位*期货品种系数",
+                    "type": "number"
+                },
                 "curqty": {
                     "description": "当前持仓",
                     "type": "integer"
@@ -18587,10 +18591,18 @@
                     "description": "对冲账号(只有外部账号才有值)",
                     "type": "string"
                 },
+                "middlegoodscode": {
+                    "description": "套保商品代码",
+                    "type": "string"
+                },
                 "middlegoodsid": {
                     "description": "套保商品id",
                     "type": "integer"
                 },
+                "middlegoodsname": {
+                    "description": "套保商品名称",
+                    "type": "string"
+                },
                 "ydqty": {
                     "description": "昨日持仓",
                     "type": "integer"
@@ -21705,7 +21717,7 @@
                     "type": "number"
                 },
                 "middlegoodschange": {
-                    "description": "套期商品变化量 = LogValue * 折算系数* (1/(1+增值税))",
+                    "description": "套期商品变化量 = LogValue * 折算系数 * (1/(1+增值税))",
                     "type": "number"
                 },
                 "operatelogtype": {
@@ -21741,7 +21753,7 @@
                     "type": "integer"
                 },
                 "wrstandardname": {
-                    "description": "商品名称 LogValue * 折算系数* (1/(1+增值税))",
+                    "description": "商品名称",
                     "type": "string"
                 }
             }

+ 11 - 2
docs/swagger.yaml

@@ -2193,6 +2193,9 @@ definitions:
       convertratio:
         description: 期货品种系数(折算系数)
         type: number
+      curhedgeqty:
+        description: 期货套期量 = 当前持仓*期货合约单位*期货品种系数
+        type: number
       curqty:
         description: 当前持仓
         type: integer
@@ -2214,9 +2217,15 @@ definitions:
       hedgeaccountcode:
         description: 对冲账号(只有外部账号才有值)
         type: string
+      middlegoodscode:
+        description: 套保商品代码
+        type: string
       middlegoodsid:
         description: 套保商品id
         type: integer
+      middlegoodsname:
+        description: 套保商品名称
+        type: string
       ydqty:
         description: 昨日持仓
         type: integer
@@ -4530,7 +4539,7 @@ definitions:
         description: 现货量变更值
         type: number
       middlegoodschange:
-        description: 套期商品变化量 = LogValue * 折算系数* (1/(1+增值税))
+        description: 套期商品变化量 = LogValue * 折算系数 * (1/(1+增值税))
         type: number
       operatelogtype:
         description: 操作流水类型 -  2:点价数量 21:正常完结(合同) 22:异常终止(合同)  24:采购入库 25:销售出库 26:生产入库
@@ -4558,7 +4567,7 @@ definitions:
         description: 现货商品ID
         type: integer
       wrstandardname:
-        description: 商品名称 LogValue * 折算系数* (1/(1+增值税))
+        description: 商品名称
         type: string
     type: object
   models.Ermcp3AreaSpot:

+ 26 - 32
models/ermcp8.go

@@ -1672,10 +1672,10 @@ type Ermcp2stockspotchangelog struct {
 	USERID           int64   `json:"userid"  xorm:"USERID" form:"userid"`       // 机构ID
 
 	CustomerUserName string `json:"customerusername" xorm:"CUSTOMERUSERNAME"` // 对手方
-	Wrstandardname   string `json:"wrstandardname" xorm:"WRSTANDARDNAME"`     // 商品名称 LogValue * 折算系数* (1/(1+增值税))
+	Wrstandardname   string `json:"wrstandardname" xorm:"WRSTANDARDNAME"`     // 商品名称
 	AccountName      string `json:"accountname" xorm:"ACCOUNTNAME"`           // 套期主体
 
-	MiddleGoodsChange float64 `json:"middlegoodschange" xorm:"MIDDLEGOODSCHANGE"` // 套期商品变化量 = LogValue * 折算系数* (1/(1+增值税))
+	MiddleGoodsChange float64 `json:"middlegoodschange" xorm:"MIDDLEGOODSCHANGE"` // 套期商品变化量 = LogValue * 折算系数 * (1/(1+增值税))
 
 	MIDDLEGOODSID int64 `json:"-"  form:"middlegoodsid"` // 套保品种ID
 }
@@ -1690,43 +1690,16 @@ func (r *Ermcp2stockspotchangelog) calc() {
 }
 
 func (r *Ermcp2stockspotchangelog) buildSql() string {
-	// var sqlId utils.SQLVal = `
-	// 	WITH tmp AS
-	// 	(
-	// 		SELECT
-	// 			c.WRStandardID,
-	// 			ws.WRStandardCode,
-	// 			ws.WRStandardName,
-	// 			c.ConvertRatio,
-	// 			mg.MiddleGoodsID
-	// 		FROM ERMS2_WRSConvertDetail c
-	// 		LEFT JOIN ERMS_MiddleGoods mg ON mg.MiddleGoodsID = c.MiddleGoodsID
-	// 		LEFT JOIN WRStandard ws ON ws.WRStandardID = c.WRStandardID
-	// 	)
-	// 	SELECT
-	// 		to_char(t.CREATETIME, 'yyyy-mm-dd hh24:mi:ss') CREATETIME,
-	// 		t.EXETYPE,
-	// 		u.ACCOUNTNAME CUSTOMERUSERNAME,
-	// 		tmp.WRSTANDARDNAME,
-	// 		t.LOGVALUE,
-	// 		s.CONTRACTNO,
-	// 		u1.ACCOUNTNAME
-	// 	FROM ERMCP2_StockSpotChangeLog t
-	// 	LEFT JOIN ERMCP_SPOTCONTRACT s ON s.SPOTCONTRACTID = t.RELATEDID
-	// 	LEFT JOIN useraccount u ON u.userid = s.CUSTOMERUSERID
-	// 	LEFT JOIN useraccount u1 ON u.userid = s.RELATEDUSERID
-	// 	LEFT JOIN tmp ON t.WRSTANDARDID = tmp.WRStandardID
-	// 	WHERE t.userid = %v and tmp.MiddleGoodsID = %v
-	// `
 	var sqlId utils.SQLVal = `
-		SELECT
+		SELECT DISTINCT
 			to_char(t.CREATETIME, 'yyyy-mm-dd hh24:mi:ss') CREATETIME,
 			t.EXETYPE,
 			u.ACCOUNTNAME CUSTOMERUSERNAME,
 			ws.WRSTANDARDNAME,
 			t.LOGVALUE,
 			s.CONTRACTNO,
-			u1.ACCOUNTNAME
+			u1.ACCOUNTNAME,
+			(t.LOGVALUE * c.CONVERTRATIO * (1/(1 + ws.VATRATE))) MIDDLEGOODSCHANGE
 		FROM ERMCP2_StockSpotChangeLog t
 		LEFT JOIN ERMS2_WRSConvertDetail c ON c.WRStandardID = t.WRStandardID
 		LEFT JOIN ERMS_MiddleGoods mg ON mg.MiddleGoodsID = c.MiddleGoodsID
@@ -1736,6 +1709,27 @@ func (r *Ermcp2stockspotchangelog) buildSql() string {
 		LEFT JOIN useraccount u1 ON u.userid = s.RELATEDUSERID
 		WHERE t.userid = %v AND mg.MiddleGoodsID = %v
 	`
+	// var sqlId utils.SQLVal = `
+	// SELECT
+	// 	to_char(t.CREATETIME, 'yyyy-mm-dd hh24:mi:ss') CREATETIME,
+	// 	t.EXETYPE,
+	// 	u.ACCOUNTNAME CUSTOMERUSERNAME,
+	// 	ws.WRSTANDARDNAME,
+	// 	t.LOGVALUE,
+	// 	s.CONTRACTNO,
+	// 	u1.ACCOUNTNAME
+	// FROM ERMCP2_StockSpotChangeLog t
+	// LEFT JOIN WRStandard ws ON ws.WRStandardID = t.WRStandardID
+	// LEFT JOIN ERMCP_SPOTCONTRACT s ON s.SPOTCONTRACTID = t.RELATEDID
+	// LEFT JOIN useraccount u ON u.userid = s.CUSTOMERUSERID
+	// LEFT JOIN useraccount u1 ON u.userid = s.RELATEDUSERID
+	// WHERE t.userid = %v
+	// 	AND t.wrstandardid
+	// 		IN (SELECT
+	// 				wrc.wrstandardid
+	// 			FROM ERMS2_WRSConvertDetail wrc
+	// 			WHERE wrc.middlegoodsid = %v)
+	// `
 	sqlId.FormatParam(r.USERID, r.MIDDLEGOODSID)
 
 	return sqlId.String()

+ 10 - 1
models/ermcpExposure.go

@@ -8,12 +8,13 @@ package models
 
 import (
 	"fmt"
-	"github.com/golang/protobuf/proto"
 	"mtp2_if/db"
 	"mtp2_if/mtpcache"
 	"mtp2_if/pb"
 	"mtp2_if/rediscli"
 	"mtp2_if/utils"
+
+	"github.com/golang/protobuf/proto"
 )
 
 // ErmcpRealExposureModel 实时敞口
@@ -757,6 +758,10 @@ type ErmcpExposurePostion struct {
 	CONVERTRATIO     float64 `json:"convertratio"`                                // 期货品种系数(折算系数)
 	ACCOUNTID        int64   `json:"accountid"  xorm:"'ACCOUNTID'"`               // 资金账号(只有外部账号才有值, 内部账号是根据userid汇总的)
 	HEDGEACCOUNTCODE string  `json:"hedgeaccountcode"  xorm:"'HEDGEACCOUNTCODE'"` // 对冲账号(只有外部账号才有值)
+
+	MIDDLEGOODSNAME string  `json:"middlegoodsname"  xorm:"'MIDDLEGOODSNAME'"` // 套保商品名称
+	MIDDLEGOODSCODE string  `json:"middlegoodscode"  xorm:"'MIDDLEGOODSCODE'"` // 套保商品代码
+	CurHedgeQty     float64 `json:"curhedgeqty"  xorm:"'CURHEDGEQTY'"`         // 期货套期量 = 当前持仓*期货合约单位*期货品种系数
 }
 
 // ParseFromPos 子账户相关计算(不一定用得到,现在说都是查母账号的)
@@ -771,6 +776,7 @@ func (r *ErmcpExposurePostion) ParseFromPos(val *ErmcpTradeGoods, data *ErmcpTra
 	r.CurQty = data.BUYCURPOSITIONQTY - data.SELLCURPOSITIONQTY
 	r.DiffQty = r.CurQty - r.YdQty
 	r.DiffHedgeQty = float64(r.DiffQty) * float64(val.AGREEUNIT) * val.CONVERTRATIO
+	r.CurHedgeQty = float64(r.CurQty) * float64(val.AGREEUNIT) * val.CONVERTRATIO
 	r.CONVERTRATIO = val.CONVERTRATIO
 	if strName := mtpcache.GetEnumDicitemName(val.GOODSUNITID); len(strName) > 0 {
 		r.AGREEUNIT = fmt.Sprintf("%v%v/手", val.AGREEUNIT, strName)
@@ -784,6 +790,9 @@ func (r *ErmcpExposurePostion) ParseFromHedgePos(val *ErmcpTradeGoods, data *Erm
 	r.GOODSID = val.GOODSID
 	r.GOODSCODE = val.GOODSCODE
 	r.GOODSNAME = val.GOODSNAME
+	r.MIDDLEGOODSCODE = val.MIDDLEGOODSCODE
+	r.MIDDLEGOODSNAME = val.MIDDLEGOODSNAME
+
 	//相关计算
 	r.YdQty = int64(data.YDBUYPOSITION - data.YDSELLPOSITION)
 	r.CurQty = int64(data.CURBUYPOSITION - data.CURSELLPOSITION)