|
|
@@ -371,11 +371,14 @@ func (r *Ermcp2hedgeditemspot) buildSql() string {
|
|
|
wr.WRSTANDARDNAME,
|
|
|
e.ENUMDICNAME,
|
|
|
t.RELATEDQTY,
|
|
|
- t.ORIAVGPRICE
|
|
|
+ t.ORIAVGPRICE,
|
|
|
+ s.HEDGEPLANNO
|
|
|
FROM ERMCP2_HEDGEDITEMSPOT t
|
|
|
LEFT JOIN WRStandard wr ON wr.wrstandardid = t.wrstandardid
|
|
|
LEFT JOIN enumdicitem e on wr.unitid=e.enumitemname and e.enumdiccode='goodsunit'
|
|
|
LEFT JOIN ermcp_hedgeplan s ON s.HedgePlanID = t.RELATEDHEDGEPLANID
|
|
|
+ WHERE t.HedgedType IN (1,2) AND t.hedgeditemid = %v
|
|
|
+ ORDER BY t.createtime
|
|
|
`
|
|
|
sqlId.FormatParam(r.HEDGEDITEMID)
|
|
|
|
|
|
@@ -395,3 +398,80 @@ func (r *Ermcp2hedgeditemspot) GetDataEx() (interface{}, error) {
|
|
|
}
|
|
|
return sData, nil
|
|
|
}
|
|
|
+
|
|
|
+// Ermcp2hedgeditemspotDetail 现货成交明细
|
|
|
+type Ermcp2hedgeditemspotDetail struct {
|
|
|
+ HEDGEDITEMSPOTID string `json:"hedgeditemspotid" xorm:"HEDGEDITEMSPOTID"` // 现货明细ID(625+Unix秒时间戳(10位)+xxxxxx)
|
|
|
+ HEDGEDITEMID string `json:"hedgeditemid" xorm:"HEDGEDITEMID" form:"hedgeditemid" binding:"required"` // 被套期项目ID
|
|
|
+ HEDGEDTYPE int32 `json:"hedgedtype" xorm:"HEDGEDTYPE"` // 套期类型[计划类型] - 1:采购计划项目 2:销售计划项目 3:现货贸易项目 4:库存存货项目 5:定价采购合同项目
|
|
|
+ SPOTTYPE int32 `json:"spottype" xorm:"SPOTTYPE"` // 现货类型[合同类型] - 1:采购计划 2:销售计划 3:采购合同 4:销售合同 5:库存存货
|
|
|
+ RELATEDTYPE int32 `json:"relatedtype" xorm:"RELATEDTYPE"` // 关联类型 - 1:套期关联 2:执行关联
|
|
|
+ RELATEDHEDGEPLANID int64 `json:"relatedhedgeplanid" xorm:"RELATEDHEDGEPLANID"` // 关联计划ID 【1:采购计划 2:销售计划】
|
|
|
+ RELATEDSPOTCONTRACTID int64 `json:"relatedspotcontractid" xorm:"RELATEDSPOTCONTRACTID"` // 关联合同ID 【3:采购合同 4:销售合同】
|
|
|
+ CUSTOMERUSERID int64 `json:"customeruserid" xorm:"CUSTOMERUSERID"` // 对手方 【3:采购合同 4:销售合同】
|
|
|
+ DELIVERYGOODSID int64 `json:"deliverygoodsid" xorm:"DELIVERYGOODSID"` // 现货品种ID
|
|
|
+ WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID
|
|
|
+ SPOTGOODSBRANDID int32 `json:"spotgoodsbrandid" xorm:"SPOTGOODSBRANDID"` // 现货品牌ID - 存“DGFactoryItem”表"DGFactoryItemID" = 2
|
|
|
+ RELATEDQTY float64 `json:"relatedqty" xorm:"RELATEDQTY"` // 关联数量[数量]
|
|
|
+ ORIAVGPRICE float64 `json:"oriavgprice" xorm:"ORIAVGPRICE"` // 期初市场价[当初市场价]
|
|
|
+ RELATEDAMOUNT float64 `json:"relatedamount" xorm:"RELATEDAMOUNT"` // 市价总额 = 关联数量 * 期初市场价
|
|
|
+ SPOTPRICEDAMOUNT float64 `json:"spotpricedamount" xorm:"SPOTPRICEDAMOUNT"` // 定价总额[金额]
|
|
|
+ SPOTPRICEDAVGPRICE float64 `json:"spotpricedavgprice" xorm:"SPOTPRICEDAVGPRICE"` // 现货均价 = 定价总额 / 关联数量
|
|
|
+ CREATETIME time.Time `json:"createtime" xorm:"CREATETIME"` // 创建时间
|
|
|
+ TRADEUSERID int64 `json:"tradeuserid" xorm:"TRADEUSERID"` // 交易用户ID
|
|
|
+ AREAUSERID int64 `json:"areauserid" xorm:"AREAUSERID"` // 企业ID
|
|
|
+
|
|
|
+ Wrstandardname string `json:"wrstandardname" xorm:"'WRSTANDARDNAME'"` // 现货商品
|
|
|
+ EnumdicName string `json:"enumdicname" xorm:"'ENUMDICNAME'"` // 单位
|
|
|
+ AccountName string `json:"accountName" xorm:"ACCOUNTNAME"` // 对手方
|
|
|
+ BRANDNAME string `json:"brandname" xorm:"'BRANDNAME'"` // 品牌
|
|
|
+ CONTRACTNO string `json:"contractno" xorm:"'CONTRACTNO'"` // 合同编号
|
|
|
+}
|
|
|
+
|
|
|
+func (r *Ermcp2hedgeditemspotDetail) calc() {
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+func (r *Ermcp2hedgeditemspotDetail) buildSql() string {
|
|
|
+ var sqlId utils.SQLVal = `
|
|
|
+ SELECT
|
|
|
+ to_char(t.hedgeditemspotid) HEDGEDITEMSPOTID,
|
|
|
+ to_char(t.hedgeditemid) HEDGEDITEMID,
|
|
|
+ t.CREATETIME,
|
|
|
+ t.SPOTTYPE,
|
|
|
+ u.ACCOUNTNAME,
|
|
|
+ wr.WRSTANDARDNAME,
|
|
|
+ e.ENUMDICNAME,
|
|
|
+ gb.dgfactoryitemvalue BRANDNAME,
|
|
|
+ t.RELATEDQTY,
|
|
|
+ t.SPOTPRICEDAVGPRICE,
|
|
|
+ t.SPOTPRICEDAMOUNT,
|
|
|
+ t.ORIAVGPRICE,
|
|
|
+ s.CONTRACTNO
|
|
|
+ FROM ERMCP2_HEDGEDITEMSPOT t
|
|
|
+ LEFT JOIN useraccount u ON u.userid = t.CUSTOMERUSERID
|
|
|
+ LEFT JOIN WRStandard wr ON wr.wrstandardid = t.wrstandardid
|
|
|
+ LEFT JOIN enumdicitem e on wr.unitid=e.enumitemname and e.enumdiccode='goodsunit'
|
|
|
+ LEFT JOIN dgfactoryitem gb ON gb.dgfactoryitemid = t.SPOTGOODSBRANDID
|
|
|
+ LEFT JOIN ermcp_spotcontract s on s.spotcontractid = t.RELATEDSPOTCONTRACTID
|
|
|
+ WHERE t.HedgedType IN (3,4,5) AND t.hedgeditemid = %v
|
|
|
+ ORDER BY t.createtime
|
|
|
+ `
|
|
|
+ sqlId.FormatParam(r.HEDGEDITEMID)
|
|
|
+
|
|
|
+ return sqlId.String()
|
|
|
+}
|
|
|
+
|
|
|
+// GetDataEx 从数据库中查询数据
|
|
|
+func (r *Ermcp2hedgeditemspotDetail) GetDataEx() (interface{}, error) {
|
|
|
+ e := db.GetEngine()
|
|
|
+ s := e.SQL(r.buildSql())
|
|
|
+ sData := make([]Ermcp2hedgeditemspotDetail, 0)
|
|
|
+ if err := s.Find(&sData); err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ for i := range sData {
|
|
|
+ sData[i].calc()
|
|
|
+ }
|
|
|
+ return sData, nil
|
|
|
+}
|