|
|
@@ -2992,21 +2992,21 @@ func (r *Ermcp3PaTradeLink) GetDataEx() (interface{}, error) {
|
|
|
|
|
|
// Ermcp3SCMiddleGoods 业务关联现货订单
|
|
|
type Ermcp3SCMiddleGoods struct {
|
|
|
- USERID int64 `json:"userid" xorm:"'USERID'" form:"userid"` // 用户id
|
|
|
- CUSTOMERUSERID int64 `json:"customeruserid" xorm:"'CUSTOMERUSERID'"` // 对手id
|
|
|
- CUSTOMERNAME string `json:"customername" xorm:"'CUSTOMERNAME'"` // 对手手名称
|
|
|
- CONTRACTNO string `json:"contractno" xorm:"'CONTRACTNO'"` // 合同编号
|
|
|
- SPOTCONTRACTID string `json:"spotcontractid" xorm:"'SPOTCONTRACTID'"` // 合同编号
|
|
|
- WRSTANDARDID int64 `json:"wrstandardid" xorm:"'WRSTANDARDID'"` // 现货商品id
|
|
|
- WRSTANDARDCODE string `json:"wrstandardcode" xorm:"'WRSTANDARDCODE'"` // 现货商品代码
|
|
|
- WRSTANDARDNAME string `json:"wrstandardname" xorm:"'WRSTANDARDNAME'"` // 现货商品名称
|
|
|
- UNITID int32 `json:"unitid" xorm:"'UNITID'"` // 现货单位id
|
|
|
- VATRATE float64 `json:"vatrate" xorm:"'VATRATE'"` // 增值税率
|
|
|
- MIDDLEGOODSPRICEDQTY3 float64 `json:"middlegoodspricedqty3" xorm:"'MIDDLEGOODSPRICEDQTY3'"` // 应套保数量 = MiddleGoodsPricedQty2 * 套保比率
|
|
|
- PRICEDQTY float64 `json:"pricedqty" xorm:"'PRICEDQTY'"` // 已关联数量 | 已定价量
|
|
|
- MIDDLEGOODSID int64 `json:"middlegoodsid" xorm:"'MIDDLEGOODSID'"` // 套保品种ID
|
|
|
- NEEDHEDGERATIO float64 `json:"needhedgeratio" xorm:"'NEEDHEDGERATIO'"` // 套保比例
|
|
|
- CONTRACTTYPE int `json:"contracttype" xorm:"'CONTRACTTYPE'"` // 合同类型 1:采购 -1:销售
|
|
|
+ USERID int64 `json:"userid" xorm:"'USERID'" form:"userid"` // 用户id
|
|
|
+ CUSTOMERUSERID int64 `json:"customeruserid" xorm:"'CUSTOMERUSERID'"` // 对手id
|
|
|
+ CUSTOMERNAME string `json:"customername" xorm:"'CUSTOMERNAME'" form:"customername"` // 对手手名称
|
|
|
+ CONTRACTNO string `json:"contractno" xorm:"'CONTRACTNO'" form:"contractno"` // 合同编号
|
|
|
+ SPOTCONTRACTID string `json:"spotcontractid" xorm:"'SPOTCONTRACTID'"` // 合同编号
|
|
|
+ WRSTANDARDID int64 `json:"wrstandardid" xorm:"'WRSTANDARDID'"` // 现货商品id
|
|
|
+ WRSTANDARDCODE string `json:"wrstandardcode" xorm:"'WRSTANDARDCODE'"` // 现货商品代码
|
|
|
+ WRSTANDARDNAME string `json:"wrstandardname" xorm:"'WRSTANDARDNAME'" form:"wrstandardname"` // 现货商品名称
|
|
|
+ UNITID int32 `json:"unitid" xorm:"'UNITID'"` // 现货单位id
|
|
|
+ VATRATE float64 `json:"vatrate" xorm:"'VATRATE'"` // 增值税率
|
|
|
+ MIDDLEGOODSPRICEDQTY3 float64 `json:"middlegoodspricedqty3" xorm:"'MIDDLEGOODSPRICEDQTY3'"` // 应套保数量 = MiddleGoodsPricedQty2 * 套保比率
|
|
|
+ PRICEDQTY float64 `json:"pricedqty" xorm:"'PRICEDQTY'"` // 已关联数量 | 已定价量
|
|
|
+ MIDDLEGOODSID int64 `json:"middlegoodsid" xorm:"'MIDDLEGOODSID'"` // 套保品种ID
|
|
|
+ NEEDHEDGERATIO float64 `json:"needhedgeratio" xorm:"'NEEDHEDGERATIO'"` // 套保比例
|
|
|
+ CONTRACTTYPE int `json:"contracttype" xorm:"'CONTRACTTYPE'"` // 合同类型 1:采购 -1:销售
|
|
|
|
|
|
BUYORSELL int32 `json:"-" form:"buyorsell"` // 买卖方向, 用作筛选
|
|
|
GOODSGROUPID int32 `json:"-" form:"goodsgroupid"` // 期货商品组id, 用作筛选
|
|
|
@@ -3064,6 +3064,9 @@ select s.userid,
|
|
|
}
|
|
|
sqlId.And("s.CONTRACTTYPE", r.CONTRACTTYPE)
|
|
|
sqlId.JoinFormat(" and %v in(s.userid, s.tradeuserid, s.saleuserid, s.tradeuserid)", r.USERID)
|
|
|
+ sqlId.AndLike("s.contractno", r.CONTRACTNO)
|
|
|
+ sqlId.AndLike("u1.accountname", r.CUSTOMERNAME)
|
|
|
+ sqlId.AndLike("w.wrstandardname", r.WRSTANDARDNAME)
|
|
|
|
|
|
return sqlId.String()
|
|
|
}
|
|
|
@@ -3077,3 +3080,117 @@ func (r *Ermcp3SCMiddleGoods) GetDataEx() (interface{}, error) {
|
|
|
}
|
|
|
return sData, err
|
|
|
}
|
|
|
+
|
|
|
+// Ermcp3TradeLinkDetail 期现关联记录
|
|
|
+type Ermcp3TradeLinkDetail struct {
|
|
|
+ LINKDETAILID string `json:"linkdetailid" xorm:"LINKDETAILID" form:"linkdetailid"` // 关联ID(614+Unix秒时间戳(10位)+xxxxxx)
|
|
|
+ SPOTCONTRACTID string `json:"spotcontractid" xorm:"SPOTCONTRACTID" form:"spotcontractid"` // 现货合同\套保计划ID [4,10,11 - 现货合同ID] [9:套期保值(计划) - 套保计划ID]
|
|
|
+ LINKSTATUS int32 `json:"linkstatus" xorm:"LINKSTATUS"` // 关联状态 - 1:成功 2:失败
|
|
|
+ RETCODE int32 `json:"retcode" xorm:"RETCODE"` // 返回码
|
|
|
+ TRADEID string `json:"tradeid" xorm:"TRADEID" form:"tradeid"` // 期货订单号 | 内部成交单ID
|
|
|
+ BUYORSELL int32 `json:"buyorsell" xorm:"BUYORSELL"` // 方向 - 0:买 1:卖
|
|
|
+ HEDGEFLAG int32 `json:"hedgeflag" xorm:"HEDGEFLAG"` // 业务类型 | 投机套保标志 - 0:无 1:投机 2:套保 3:套利 4:套期保值(平安\合同) 5:单边(平安) 6:移仓(平安) 7:错单处理(平安) 8:跨期套利(平安) 9:套期保值(计划) 10:套利(合同) 11:换月(合同) 12:交割(金瑞)
|
|
|
+ RELATEDLOT float64 `json:"relatedlot" xorm:"RELATEDLOT"` // 关联手数
|
|
|
+ GOODSID int32 `json:"goodsid" xorm:"GOODSID" form:"goodsid"` // 商品ID
|
|
|
+ GOODSGROUPID int32 `json:"goodsgroupid" xorm:"GOODSGROUPID" form:"goodsgroupid"` // 对冲品种ID[期货合约商品组ID]
|
|
|
+ MIDDLEGOODSID int64 `json:"middlegoodsid" xorm:"MIDDLEGOODSID" form:"middlegoodsid"` // 套保品种ID
|
|
|
+ RELATEDQTY float64 `json:"relatedqty" xorm:"RELATEDQTY"` // 关联数量 = RelatedLot * AgreeUnit * ConvertRatio
|
|
|
+ TRADEDATE string `json:"tradedate" xorm:"TRADEDATE" form:"tradedate"` // 关联交易日(yyyyMMdd)
|
|
|
+ RELATEDMODE int32 `json:"relatedmode" xorm:"RELATEDMODE"` // 关联方式 - 1:自动关联 2:手动关联 3:解绑关联
|
|
|
+ TRADETRADEDATE string `json:"tradetradedate" xorm:"TRADETRADEDATE" form:"tradetradedate"` // 成交交易日(yyyyMMdd)
|
|
|
+ TRADEPRICE float64 `json:"tradeprice" xorm:"TRADEPRICE"` // 成交价格
|
|
|
+ TRADELOT int32 `json:"tradelot" xorm:"TRADELOT"` // 成交数量 | 成交手数
|
|
|
+ SALEUSERID string `json:"saleuserid" xorm:"SALEUSERID" form:"saleuserid"` // 业务员ID
|
|
|
+ BIZSUBJECTID string `json:"bizsubjectid" xorm:"BIZSUBJECTID" form:"bizsubjectid"` // 归属业务部门ID - SubjectID
|
|
|
+ AGREEUNIT float64 `json:"agreeunit" xorm:"AGREEUNIT"` // 合约乘数
|
|
|
+ CONVERTRATIO float64 `json:"convertratio" xorm:"CONVERTRATIO"` // 折算系数
|
|
|
+ AREAUSERID string `json:"areauserid" xorm:"AREAUSERID" form:"userid"` // 所属机构
|
|
|
+ CREATORSRC int32 `json:"creatorsrc" xorm:"CREATORSRC"` // 创建人来源 - 1:管理端 2:终端 3:交易
|
|
|
+ CREATORID string `json:"creatorid" xorm:"CREATORID" form:"creatorid"` // 创建人ID
|
|
|
+ CREATETIME string `json:"createtime" xorm:"CREATETIME"` // 关联时间 | 创建时间
|
|
|
+
|
|
|
+ ACCOUNTID int64 `json:"accountid" xorm:"'ACCOUNTID'"` // 资金账号
|
|
|
+ TRADETIME string `json:"tradetime" xorm:"'TRADETIME'"` // 期货成交时间
|
|
|
+ CONTRACTNO string `json:"contractno" xorm:"'CONTRACTNO'" form:"contractno"` // 现货编号 (合同编号)
|
|
|
+ TANAME string `json:"taname" xorm:"'TANAME'" form:"taname"` // 期货账户
|
|
|
+ USERNAME string `json:"username" xorm:"'USERNAME'"` // 用户名称
|
|
|
+ GOODSCODE string `json:"goodscode" xorm:"'GOODSCODE'"` // 合约代码
|
|
|
+ GOODSNAME string `json:"goodsname" xorm:"'GOODSNAME'"` // 合约名称
|
|
|
+ ENUMDICNAME string `json:"enumdicname" xorm:"'ENUMDICNAME'"` // 单位名称
|
|
|
+ CHANNELBUILDTYPE int32 `json:"channelbuildtype" xorm:"'CHANNELBUILDTYPE'"` // 委托单据类型 0:无 1:建仓 2:平仓
|
|
|
+}
|
|
|
+
|
|
|
+func (r *Ermcp3TradeLinkDetail) calc() {
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+func (r *Ermcp3TradeLinkDetail) buildSql() string {
|
|
|
+ var sqlId utils.SQLVal = `
|
|
|
+select t.LINKSTATUS,
|
|
|
+ t.RETCODE,
|
|
|
+ to_char(t.LINKDETAILID) LINKDETAILID,
|
|
|
+ to_char(t.TRADEID) TRADEID,
|
|
|
+ t.BUYORSELL,
|
|
|
+ t.HEDGEFLAG,
|
|
|
+ t.SPOTCONTRACTID,
|
|
|
+ t.RELATEDLOT,
|
|
|
+ t.GOODSID,
|
|
|
+ t.GOODSGROUPID,
|
|
|
+ t.MIDDLEGOODSID,
|
|
|
+ t.RELATEDQTY,
|
|
|
+ t.TRADEDATE,
|
|
|
+ t.RELATEDMODE,
|
|
|
+ t.TRADETRADEDATE,
|
|
|
+ t.TRADEPRICE,
|
|
|
+ t.TRADELOT,
|
|
|
+ t.SALEUSERID,
|
|
|
+ t.BIZSUBJECTID,
|
|
|
+ t.AGREEUNIT,
|
|
|
+ t.CONVERTRATIO,
|
|
|
+ t.AREAUSERID,
|
|
|
+ t.CREATORSRC,
|
|
|
+ t.CREATORID,
|
|
|
+ to_char(t.CREATETIME, 'yyyy-mm-dd hh24:mi:ss') CREATETIME,
|
|
|
+ k.accountid,
|
|
|
+ to_char(k.tradetime, 'yyyy-mm-dd hh24:mi:ss') tradetime,
|
|
|
+ s.contractno,
|
|
|
+ ta.accountname taname,
|
|
|
+ u.accountname username,
|
|
|
+ g.goodscode,
|
|
|
+ g.goodsname,
|
|
|
+ g.agreeunit,
|
|
|
+ e.enumdicname,
|
|
|
+ k.channelbuildtype
|
|
|
+ from ERMCP_PA_TradeLinkDetail t
|
|
|
+ inner join ermcp_pa_tradelink k
|
|
|
+ on t.tradeid = k.tradeid
|
|
|
+ and t.buyorsell = k.buyorsell
|
|
|
+ inner join ermcp_spotcontract s
|
|
|
+ on t.spotcontractid = s.spotcontractid
|
|
|
+ left join taaccount ta
|
|
|
+ on k.accountid = ta.accountid
|
|
|
+ left join useraccount u
|
|
|
+ on ta.relateduserid = u.userid
|
|
|
+ left join goods g
|
|
|
+ on t.goodsid = g.goodsid
|
|
|
+ left join enumdicitem e
|
|
|
+ on g.goodunitid = e.enumitemname
|
|
|
+ and e.enumdiccode = 'goodsunit'
|
|
|
+ where 1 = 1
|
|
|
+`
|
|
|
+ sqlId.JoinFormat(" and %v in (ta.relateduserid, ta.userid)", r.AREAUSERID)
|
|
|
+ sqlId.AndLike("t.TRADEID", r.TRADEID)
|
|
|
+ sqlId.AndLike("s.contractno", r.CONTRACTNO)
|
|
|
+ sqlId.AndLike("ta.accountname", r.TANAME)
|
|
|
+ return sqlId.String()
|
|
|
+}
|
|
|
+
|
|
|
+// GetDataEx 获取期现关联记录
|
|
|
+func (r *Ermcp3TradeLinkDetail) GetDataEx() (interface{}, error) {
|
|
|
+ sData := make([]Ermcp3TradeLinkDetail, 0)
|
|
|
+ err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
|
|
|
+ for i := range sData {
|
|
|
+ sData[i].calc()
|
|
|
+ }
|
|
|
+ return sData, err
|
|
|
+}
|