|
|
@@ -199,6 +199,12 @@ func (r *ErmcpRelatedGoods) GetData() ([]ErmcpRelatedGoods, error) {
|
|
|
return sData, err
|
|
|
}
|
|
|
|
|
|
+// ErmcpDeliveryGoodsDetail2 现货商品详情(含转换系数)
|
|
|
+type ErmcpDeliveryGoodsDetail2 struct {
|
|
|
+ ErmcpDeliveryGoodsDetail
|
|
|
+ CONVERTRATIO float64 `json:"convertratio" xorm:"'CONVERTRATIO'"` // 套保系数(折算系数)
|
|
|
+}
|
|
|
+
|
|
|
// ErmcpDeliveryGoodsDetail 现货商品详情
|
|
|
type ErmcpDeliveryGoodsDetail struct {
|
|
|
Data ErmcpDeliveryGoods `json:"data"` // 现货商品基本信息(交割品种)
|
|
|
@@ -262,7 +268,7 @@ func (r *ErmcpDeliveryGoodsDetail) GetDataEx() (interface{}, error) {
|
|
|
// ErmcpDeliveryGoodsDetailEx 现货商品详情(含套保列表)
|
|
|
type ErmcpDeliveryGoodsDetailEx struct {
|
|
|
ErmcpDeliveryGoodsDetail
|
|
|
- MgList []Ermcp3MiddleGoodsDetail `json:"mgList"` // 套保列表
|
|
|
+ MgList []Ermcp3MiddleGoodsDetail2 `json:"mgList"` // 套保列表
|
|
|
}
|
|
|
|
|
|
// GetData 获取现货商品详情(含套保信息列表)
|
|
|
@@ -273,7 +279,7 @@ func (r *ErmcpDeliveryGoodsDetailEx) GetDataEx() (interface{}, error) {
|
|
|
if dgList, err := mDg.GetData(); err == nil {
|
|
|
for i := range dgList {
|
|
|
sData = append(sData, ErmcpDeliveryGoodsDetailEx{ErmcpDeliveryGoodsDetail: dgList[i],
|
|
|
- MgList: make([]Ermcp3MiddleGoodsDetail, 0)})
|
|
|
+ MgList: make([]Ermcp3MiddleGoodsDetail2, 0)})
|
|
|
}
|
|
|
}
|
|
|
if len(sData) == 0 {
|
|
|
@@ -301,13 +307,20 @@ func (r *ErmcpDeliveryGoodsDetailEx) addMgList(lst []Ermcp3MiddleGoodsDetail, wc
|
|
|
if r.Data.DELIVERYGOODSID == wc[i].DELIVERYGOODSID {
|
|
|
for k := range lst {
|
|
|
if int64(lst[k].Mg.MIDDLEGOODSID) == wc[i].MIDDLEGOODSID {
|
|
|
- r.MgList = append(r.MgList, lst[k])
|
|
|
+ val := Ermcp3MiddleGoodsDetail2{Ermcp3MiddleGoodsDetail: lst[k], CONVERTRATIO: wc[i].CONVERTRATIO}
|
|
|
+ r.MgList = append(r.MgList, val)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// Ermcp3MiddleGoodsDetail2 套保品种详情(含转换系数)
|
|
|
+type Ermcp3MiddleGoodsDetail2 struct {
|
|
|
+ Ermcp3MiddleGoodsDetail
|
|
|
+ CONVERTRATIO float64 `json:"convertratio" xorm:"'CONVERTRATIO'"` // 套保系数(折算系数)
|
|
|
+}
|
|
|
+
|
|
|
// Ermcp3MiddleGoodsDetail 套保品种详情
|
|
|
type Ermcp3MiddleGoodsDetail struct {
|
|
|
Mg ErmcpMiddleGoodsModel `json:"mg"` // 套保商品信息
|
|
|
@@ -387,7 +400,7 @@ func (r *Ermcp3MiddleGoodsDetail) addGoods(gpLst []Ermcp3GoodsEx) {
|
|
|
// Ermcp3MiddleGoodsDetailEx 套保品种详情(含现货列表)
|
|
|
type Ermcp3MiddleGoodsDetailEx struct {
|
|
|
Ermcp3MiddleGoodsDetail
|
|
|
- DgList []ErmcpDeliveryGoodsDetail `json:"dglist"` // 关联的现货品种列表
|
|
|
+ DgList []ErmcpDeliveryGoodsDetail2 `json:"dglist"` // 关联的现货品种列表
|
|
|
}
|
|
|
|
|
|
func (r *Ermcp3MiddleGoodsDetailEx) addDgList(dglst []ErmcpDeliveryGoodsDetail, wc []WRSConverTDetail) {
|
|
|
@@ -395,7 +408,8 @@ func (r *Ermcp3MiddleGoodsDetailEx) addDgList(dglst []ErmcpDeliveryGoodsDetail,
|
|
|
if wc[i].MIDDLEGOODSID == int64(r.Mg.MIDDLEGOODSID) {
|
|
|
for _, detail := range dglst {
|
|
|
if wc[i].DELIVERYGOODSID == detail.Data.DELIVERYGOODSID {
|
|
|
- r.DgList = append(r.DgList, detail)
|
|
|
+ val := ErmcpDeliveryGoodsDetail2{ErmcpDeliveryGoodsDetail: detail, CONVERTRATIO: wc[i].CONVERTRATIO}
|
|
|
+ r.DgList = append(r.DgList, val)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -410,7 +424,7 @@ func (r *Ermcp3MiddleGoodsDetailEx) GetDataEx() (interface{}, error) {
|
|
|
if mgLst, err := m.GetData(); err == nil {
|
|
|
for i := range mgLst {
|
|
|
sData = append(sData, Ermcp3MiddleGoodsDetailEx{Ermcp3MiddleGoodsDetail: mgLst[i],
|
|
|
- DgList: make([]ErmcpDeliveryGoodsDetail, 0)})
|
|
|
+ DgList: make([]ErmcpDeliveryGoodsDetail2, 0)})
|
|
|
}
|
|
|
}
|
|
|
// 查转换关系
|
|
|
@@ -987,6 +1001,9 @@ type Ermcp3AreaSpot struct {
|
|
|
DELIVERYGOODSID int32 `json:"deliverygoodsid" xorm:"'DELIVERYGOODSID'"` // 现货品种id
|
|
|
DELIVERYGOODSCODE string `json:"deliverygoodscode" xorm:"'DELIVERYGOODSCODE'"` // 现货品种代码
|
|
|
DELIVERYGOODSNAME string `json:"deliverygoodsname" xorm:"'DELIVERYGOODSNAME'"` // 现货品种名称
|
|
|
+ GOODSUNITID int32 `json:"goodsunitid" xorm:"'GOODSUNITID'"` // 现货品种单位id
|
|
|
+
|
|
|
+ ENUMDICNAME string `json:"enumdicname"` // 单位名称
|
|
|
}
|
|
|
|
|
|
func (r *Ermcp3AreaSpot) calc() {
|
|
|
@@ -1003,6 +1020,7 @@ func (r *Ermcp3AreaSpot) calc() {
|
|
|
r.IncreaseQty = r.SELLPLANQTY - r.ORISELLPLANQTY + r.BUYPRICEDQTY - r.ORIBUYPRICEDQTY
|
|
|
r.DecreaseQty = (r.SELLPRICEDQTY - r.ORISELLPRICEDQTY + r.BUYPLANQTY - r.ORIBUYPLANQTY) * -1
|
|
|
r.OriToalSpotQty = (r.ORISELLPLANQTY - r.ORISELLPRICEDQTY) - (r.ORIBUYPLANQTY - r.ORIBUYPRICEDQTY)
|
|
|
+ r.ENUMDICNAME = mtpcache.GetEnumDicitemName(r.GOODSUNITID)
|
|
|
}
|
|
|
|
|
|
func (r *Ermcp3AreaSpot) buildSql() string {
|
|
|
@@ -1019,6 +1037,7 @@ func (r *Ermcp3AreaSpot) buildSql() string {
|
|
|
" g.deliverygoodsid," +
|
|
|
" g.deliverygoodscode," +
|
|
|
" g.deliverygoodsname," +
|
|
|
+ " g.goodsunitid," +
|
|
|
" to_char(t.UPDATETIME, 'yyyy-mm-dd hh24:mi:ss') UPDATETIME" +
|
|
|
" from ermcp_areaspot t" +
|
|
|
" left join deliverygoods g" +
|