|
|
@@ -1,7 +1,9 @@
|
|
|
package models
|
|
|
|
|
|
import (
|
|
|
+ "fmt"
|
|
|
"mtp2_if/db"
|
|
|
+ "mtp2_if/logger"
|
|
|
"mtp2_if/utils"
|
|
|
"time"
|
|
|
)
|
|
|
@@ -279,9 +281,9 @@ type Ermcp2hedgeditem struct {
|
|
|
FutureHedgePLChange float64 `json:"futurehedgeplchange" xorm:"FUTUREHEDGEPLCHANGE"` // 期货实际损益变动
|
|
|
FuturePLChange float64 `json:"futureplchange" xorm:"FUTUREPLCHANGE"` // 期货套期损益变动
|
|
|
|
|
|
- Wrstandardname string `json:"wrstandardname" xorm:"'WRSTANDARDNAME'"` // 商品名称
|
|
|
- EnumdicName string `json:"enumdicname" xorm:"'ENUMDICNAME'"` // 单位
|
|
|
- AccountName string `json:"accountName" xorm:"ACCOUNTNAME"` // 套期主体
|
|
|
+ Wrstandardname string `json:"wrstandardname" xorm:"WRSTANDARDNAME"` // 商品名称
|
|
|
+ EnumdicName string `json:"enumdicname" xorm:"ENUMDICNAME"` // 单位
|
|
|
+ AccountName string `json:"accountName" xorm:"ACCOUNTNAME"` // 套期主体
|
|
|
|
|
|
MiddleGoodsList []Ermcp2himiddlegoods `json:"middlegoodslist"` // 套期商品列表
|
|
|
|
|
|
@@ -417,8 +419,8 @@ type Ermcp2himiddlegoods struct {
|
|
|
CREATETIME time.Time `json:"-" xorm:"CREATETIME"` // 创建时间
|
|
|
UPDATETIME time.Time `json:"-" xorm:"UPDATETIME"` // 更新时间
|
|
|
|
|
|
- Middlegoodsname string `json:"middlegoodsname" xorm:"'MIDDLEGOODSNAME'"` // 套保商品名称
|
|
|
- Middlegoodscode string `json:"middlegoodscode" xorm:"'MIDDLEGOODSCODE'"` // 套保商品代码
|
|
|
+ Middlegoodsname string `json:"middlegoodsname" xorm:"MIDDLEGOODSNAME"` // 套保商品名称
|
|
|
+ Middlegoodscode string `json:"middlegoodscode" xorm:"MIDDLEGOODSCODE"` // 套保商品代码
|
|
|
}
|
|
|
|
|
|
// TableName is ERMCP2_HIMIDDLEGOODS
|
|
|
@@ -484,9 +486,9 @@ type Ermcpjrlinkpos struct {
|
|
|
TODAYFUTURECLOSEPL float64 `json:"todayfutureclosepl" xorm:"TODAYFUTURECLOSEPL"` // 今日平仓盈亏
|
|
|
RECKONPL float64 `json:"reckonpl" xorm:"RECKONPL"` // 总盈亏(平仓盈亏 + 结算盈亏 - 手续费)
|
|
|
|
|
|
- Middlegoodsname string `json:"middlegoodsname" xorm:"'MIDDLEGOODSNAME'"` // 套保商品名称
|
|
|
- Middlegoodscode string `json:"middlegoodscode" xorm:"'MIDDLEGOODSCODE'"` // 套保商品代码
|
|
|
- FUTUREHEDGEQTY float64 `json:"futurehedgeqty" xorm:"FUTUREHEDGEQTY"` // 期货套期量
|
|
|
+ Middlegoodsname string `json:"middlegoodsname" xorm:"MIDDLEGOODSNAME"` // 套保商品名称
|
|
|
+ Middlegoodscode string `json:"middlegoodscode" xorm:"MIDDLEGOODSCODE"` // 套保商品代码
|
|
|
+ FUTUREHEDGEQTY float64 `json:"futurehedgeqty" xorm:"FUTUREHEDGEQTY"` // 期货套期量
|
|
|
|
|
|
AVERAGEPRICE float64 `json:"averageprice" xorm:"AVERAGEPRICE"` // 持仓均价 (TotalBuyHoldAmount - TotalSellHoldAmount) / NetQty
|
|
|
}
|
|
|
@@ -560,9 +562,9 @@ type Ermcp2hedgeditemspot struct {
|
|
|
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'"` // 单位
|
|
|
- Hedgeplanno string `json:"hedgeplanno" xorm:"'HEDGEPLANNO'"` // 计划编号
|
|
|
+ Wrstandardname string `json:"wrstandardname" xorm:"WRSTANDARDNAME"` // 现货商品
|
|
|
+ EnumdicName string `json:"enumdicname" xorm:"ENUMDICNAME"` // 单位
|
|
|
+ Hedgeplanno string `json:"hedgeplanno" xorm:"HEDGEPLANNO"` // 计划编号
|
|
|
}
|
|
|
|
|
|
// TableName is ERMCP2_HEDGEDITEMSPOT
|
|
|
@@ -633,11 +635,11 @@ type Ermcp2hedgeditemspotDetail struct {
|
|
|
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'"` // 合同编号
|
|
|
+ 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() {
|
|
|
@@ -845,10 +847,10 @@ func (r *InternalUncorrelatedTradeDetail) buildSql() string {
|
|
|
|
|
|
sqlId.FormatParam(r.USERID)
|
|
|
if r.BEGINDATE != "" {
|
|
|
- sqlId.JoinFormat(" and to_char(ept.tradetime, 'yyyymmdd') >= '%v'", r.BEGINDATE)
|
|
|
+ sqlId.JoinFormat(" and to_char(ept.tradetime, 'yyyymmdd') >= '%v", r.BEGINDATE)
|
|
|
}
|
|
|
if r.ENDDATE != "" {
|
|
|
- sqlId.JoinFormat(" and to_char(ept.tradetime, 'yyyymmdd') <= '%v'", r.ENDDATE)
|
|
|
+ sqlId.JoinFormat(" and to_char(ept.tradetime, 'yyyymmdd') <= '%v", r.ENDDATE)
|
|
|
}
|
|
|
sqlId.AndLike("g.goodscode", r.GOODSCODE)
|
|
|
sqlId.AndLike("g.goodsname", r.GOODSNAME)
|
|
|
@@ -877,12 +879,12 @@ func (r *InternalUncorrelatedTradeDetail) GetDataEx() (interface{}, error) {
|
|
|
// InternalEnableTradeDetail 内部成交单可关联项目
|
|
|
type InternalEnableTradeDetail struct {
|
|
|
HEDGEDITEMNUM string `json:"hedgeditemnum" xorm:"HEDGEDITEMNUM"` // 项目编号
|
|
|
- Deliverygoodsid int32 `json:"deliverygoodsid" xorm:"'DELIVERYGOODSID'"` // 现货品种ID(SEQ_DELIVERYGOODS)
|
|
|
- Deliverygoodscode string `json:"deliverygoodscode" xorm:"'DELIVERYGOODSCODE'"` // 现货品种代码
|
|
|
- Deliverygoodsname string `json:"deliverygoodsname" xorm:"'DELIVERYGOODSNAME'"` // 现货品种名称
|
|
|
- Wrstandardid int64 `json:"wrstandardid" xorm:"'WRSTANDARDID'"` // 现货品类ID(SEQ_WRSTANDARD)
|
|
|
- Wrstandardcode string `json:"wrstandardcode" xorm:"'WRSTANDARDCODE'"` // 现货品类代码
|
|
|
- Wrstandardname string `json:"wrstandardname" xorm:"'WRSTANDARDNAME'"` // 现货品类名称
|
|
|
+ Deliverygoodsid int32 `json:"deliverygoodsid" xorm:"DELIVERYGOODSID"` // 现货品种ID(SEQ_DELIVERYGOODS)
|
|
|
+ Deliverygoodscode string `json:"deliverygoodscode" xorm:"DELIVERYGOODSCODE"` // 现货品种代码
|
|
|
+ Deliverygoodsname string `json:"deliverygoodsname" xorm:"DELIVERYGOODSNAME"` // 现货品种名称
|
|
|
+ Wrstandardid int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货品类ID(SEQ_WRSTANDARD)
|
|
|
+ Wrstandardcode string `json:"wrstandardcode" xorm:"WRSTANDARDCODE"` // 现货品类代码
|
|
|
+ Wrstandardname string `json:"wrstandardname" xorm:"WRSTANDARDNAME"` // 现货品类名称
|
|
|
UNEXESPOTQTY float64 `json:"unexespotqty" xorm:"UNEXESPOTQTY"` // 未执行现货量
|
|
|
UNEXEHEDGEQTY float64 `json:"unexehedgeqty" xorm:"UNEXEHEDGEQTY"` // 未执行套期量 = 未执行现货量*折算系数* (1/(1+增值税)) * 套期比例(项目上)
|
|
|
FUTUREHEDGEQTY float64 `json:"futurehedgeqty" xorm:"FUTUREHEDGEQTY"` // [已关联数量]期货持仓套期量
|
|
|
@@ -945,8 +947,8 @@ type Ermcp8HedgeditemReport struct {
|
|
|
HEDGEDITEMSTATUS int32 `json:"hedgeditemstatus" xorm:"HEDGEDITEMSTATUS" form:"hedgeditemstatus"` // 项目状态 - 2:执行中 3:正常完结 4:审核拒绝 5:异常完结 6:已撤回
|
|
|
HEDGEDITEMNUM string `json:"hedgeditemnum" xorm:"HEDGEDITEMNUM" form:"hedgeditemnum"` // 项目编号,模糊查询
|
|
|
WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID" form:"wrstandardid"` // 现货商品ID
|
|
|
- Wrstandardcode string `json:"wrstandardcode" xorm:"'WRSTANDARDCODE'"` // 现货品类代码
|
|
|
- Wrstandardname string `json:"wrstandardname" xorm:"'WRSTANDARDNAME'"` // [现货商品]现货品类名称
|
|
|
+ Wrstandardcode string `json:"wrstandardcode" xorm:"WRSTANDARDCODE"` // 现货品类代码
|
|
|
+ Wrstandardname string `json:"wrstandardname" xorm:"WRSTANDARDNAME"` // [现货商品]现货品类名称
|
|
|
HEDGEQTY float64 `json:"hedgeqty" xorm:"HEDGEQTY"` // [套期数量]套期现货量
|
|
|
ORIAVGPRICE float64 `json:"oriavgprice" xorm:"ORIAVGPRICE"` // [期初价]期初市场均价 = 套期市价总额 / 套期现货量
|
|
|
HEDGEAMOUNT float64 `json:"hedgeamount" xorm:"HEDGEAMOUNT"` // [套期现货金额]套期市价总额
|
|
|
@@ -970,8 +972,8 @@ type Ermcp8HedgeditemReport struct {
|
|
|
ORISPOTPL float64 `json:"orispotpl" xorm:"ORISPOTPL"` // 期初现货套期损益
|
|
|
ORIFUTUREPL float64 `json:"orifuturepl" xorm:"ORIFUTUREPL"` // 期初期货套期损益
|
|
|
|
|
|
- EnumdicName string `json:"enumdicname" xorm:"'ENUMDICNAME'"` // 单位
|
|
|
- AccountName string `json:"accountName" xorm:"ACCOUNTNAME"` // 套期主体
|
|
|
+ EnumdicName string `json:"enumdicname" xorm:"ENUMDICNAME"` // 单位
|
|
|
+ AccountName string `json:"accountName" xorm:"ACCOUNTNAME"` // 套期主体
|
|
|
|
|
|
USERID int64 `form:"userid" binding:"required"` // 用户ID
|
|
|
CYCLETYPE int32 `form:"cycletype"` // 周期类型 - 0:日 1:月 2:季 3:年 4:周 5:全报表【原值】
|
|
|
@@ -1101,3 +1103,248 @@ func (r *Ermcp8HedgeditemReport) GetDataEx() (interface{}, error) {
|
|
|
}
|
|
|
return sData, nil
|
|
|
}
|
|
|
+
|
|
|
+// 查询现货合同
|
|
|
+type QrySpotContractExReq struct {
|
|
|
+ USERID int64 `form:"userid" binding:"required"` // 用户ID
|
|
|
+ PRICETYPE int32 `form:"pricetype"` // 定价类型 - 1:一口价 2:点价 3:暂定价
|
|
|
+ CONTRACTNO string `form:"contractno"` // 合同编号, 模拟查询
|
|
|
+ CUSTOMERNAME string `form:"customername"` // 对手方, 模拟查询
|
|
|
+ CONTRACTTYPE int32 `form:"contracttype"` // 合同类型 - 1:采购 -1:销售
|
|
|
+}
|
|
|
+
|
|
|
+// ErmcpSpotContractModelEx 现货合同结构(对应现货合同菜单)
|
|
|
+type ErmcpSpotContractModelEx struct {
|
|
|
+ SPOTCONTRACTID string `json:"spotcontractid" xorm:"SPOTCONTRACTID"` // 现货合同ID(602+Unix秒时间戳(10位)+xxxxxx)
|
|
|
+ CONTRACTNO string `json:"contractno" xorm:"CONTRACTNO"` // [合同编号]现货合同编号
|
|
|
+ CONTRACTTYPE int32 `json:"contracttype" xorm:"CONTRACTTYPE"` // [合同类型]现货合同类型 - 1:采购 -1:销售
|
|
|
+ USERID int64 `json:"userid" xorm:"USERID"` // 机构ID
|
|
|
+ BUYUSERID int64 `json:"buyuserid" xorm:"BUYUSERID"` // 采购方ID
|
|
|
+ BUYUSERName string `json:"buyusername" xorm:"BUYUSERName"` // 采购方名称
|
|
|
+ SELLUSERID int64 `json:"selluserid" xorm:"SELLUSERID"` // 销售方ID
|
|
|
+ SELLUSERNAME string `json:"sellusername" xorm:"SELLUSERNAME"` // 销售方名称
|
|
|
+ DELIVERYGOODSID int32 `json:"deliverygoodsid" xorm:"DELIVERYGOODSID"` // 现货品种ID
|
|
|
+ WRSTANDARDID int32 `json:"wrstandardid" xorm:"wrstandardid"` // 现货商品ID
|
|
|
+ WRSTANDARDNAME string `json:"wrstandardname" xorm:"WRSTANDARDNAME"` // [现货商品]现货商品名称
|
|
|
+ WRSTANDARDCODE string `json:"wrstandardcode" xorm:"WRSTANDARDCODE"` // 现货商品代码
|
|
|
+ DELIVERYGOODSCODE string `json:"deliverygoodscode" xorm:"DELIVERYGOODSCODE"` // 现货品种代码
|
|
|
+ DELIVERYGOODSNAME string `json:"deliverygoodsname" xorm:"DELIVERYGOODSNAME"` // 现货品种名称
|
|
|
+ PRODUCTTYPE int32 `json:"producttype" xorm:"PRODUCTTYPE"` // 产品类型 - 1:标准仓单 2:等标 3:非标
|
|
|
+ CONVERTFACTOR float64 `json:"convertfactor" xorm:"CONVERTFACTOR"` // 标仓系数
|
|
|
+ SPOTGOODSDESC string `json:"spotgoodsdesc" xorm:"SPOTGOODSDESC"` // 商品型号
|
|
|
+ PRICETYPE int32 `json:"pricetype" xorm:"PRICETYPE"` // 定价类型 - 1:一口价 2:点价 3:暂定价
|
|
|
+ QTY float64 `json:"qty" xorm:"QTY"` // [合同数量]数量
|
|
|
+ PRICE float64 `json:"price" xorm:"PRICE"` // 价格\暂定价 [1:一口价、3:暂定价]
|
|
|
+ AMOUNT float64 `json:"amount" xorm:"AMOUNT"` // 金额 [1:一口价、3:暂定价]
|
|
|
+ DELIVERYSTARTDATE string `json:"deliverystartdate" xorm:"DELIVERYSTARTDATE"` // 交收期(开始)
|
|
|
+ DELIVERYENDDATE string `json:"deliveryenddate" xorm:"DELIVERYENDDATE"` // 交收期(结束)
|
|
|
+ GOODSID int32 `json:"goodsid" xorm:"GOODSID"` // 点价合约ID - 0:为现货,其它为期货商品合约ID [2:点价 3:暂定价]
|
|
|
+ GOODSCODE string `json:"goodscode" xorm:"GOODSCODE"` // 点价合约代码
|
|
|
+ GOODSNAME string `json:"goodsname" xorm:"GOODSNAME"` // 点价商品名称
|
|
|
+ PRICEMOVE float64 `json:"pricemove" xorm:"PRICEMOVE"` // 升贴水 [2:点价 3:暂定价]
|
|
|
+ STARTDATE string `json:"startdate" xorm:"STARTDATE"` // 点价开始日期 [2:点价 3:暂定价]
|
|
|
+ ENDDATE string `json:"enddate" xorm:"ENDDATE"` // 点价结束日期 [2:点价 3:暂定价]
|
|
|
+ MARGIN float64 `json:"margin" xorm:"MARGIN"` // 当前保证金
|
|
|
+ CONTRACTMARGIN float64 `json:"contractmargin" xorm:"CONTRACTMARGIN"` // 合同保证金
|
|
|
+ EnumdicName string `json:"enumdicname" xorm:"ENUMDICNAME"` // 单位名称
|
|
|
+ CONTRACCTSTATUS int32 `json:"contracctstatus" xorm:"CONTRACTSTATUS"` // 合同状态 - 0:未提交 1:待审核 2:执行中 3:正常完结 4:审核拒绝 5:异常完结 6:已撤回
|
|
|
+ Remark string `json:"remark" xorm:"Remark"` // 备注
|
|
|
+ AUDITREMARK string `json:"auditremark" xorm:"AUDITREMARK"` // 审核意见
|
|
|
+ AUDITTIME string `json:"audittime" xorm:"AUDITTIME"` // 审核时间
|
|
|
+ CREATETIME string `json:"createtime" xorm:"CREATETIME"` // 创建时间
|
|
|
+ UPDATETIME string `json:"updatetime" xorm:"UPDATETIME"` // 更新时间
|
|
|
+ SPOTGOODSMODELID int32 `json:"spotgoodsmodelid" xorm:"SPOTGOODSMODELID"` // 现货型号ID
|
|
|
+ SPOTGOODSBRANDID int32 `json:"spotgoodsbrandid" xorm:"SPOTGOODSBRANDID"` // 现货品牌ID
|
|
|
+ BRANDNAME string `json:"brandname" xorm:"brandname"` // 品牌名称
|
|
|
+ MODELNAME string `json:"modelname" xorm:"modelname"` // 型号名称
|
|
|
+ ATTACHMENT string `json:"attachment" xorm:"ATTACHMENT"` // 附件
|
|
|
+ PRICEDQTY float64 `json:"pricedqty" xorm:"PRICEDQTY"` // 已定价量
|
|
|
+ PRICEDAMOUNT float64 `json:"pricedamount" xorm:"PRICEDAMOUNT"` // 已定价金额 = (点价价格+升贴水) * 数量
|
|
|
+ SPOTAMOUNT float64 `json:"spotamount" xorm:"SPOTAMOUNT"` // 合同现货金额 [不含升贴水]
|
|
|
+ TRADEUSERID int64 `json:"tradeuserid" xorm:"TRADEUSERID"` // 交易用户ID
|
|
|
+ CUSTOMERUSERID int64 `json:"customeruserid" xorm:"CUSTOMERUSERID"` // 客户ID
|
|
|
+ ISRELATED int32 `json:"isrelated" xorm:"ISRELATED"` // 是否已关联计划项目 - 0:否 1:是
|
|
|
+ ISRELATED2 int32 `json:"isrelated2" xorm:"ISRELATED2"` // 是否已关联现货项目 - 0:否 1:是
|
|
|
+
|
|
|
+ ACCOUNTNAME string `json:"accountName" xorm:"ACCOUNTNAME"` // 套期主体
|
|
|
+ CUSTOMERNAME string `json:"customername" xorm:"CUSTOMERNAME"` // 对手方
|
|
|
+
|
|
|
+ UNPRICEDQTY float64 `json:"unpricedqty" xorm:"UNPRICEDQTY"` // 未定价量 = 合同数量 - 已定价量
|
|
|
+ AVGPRICE float64 `json:"avgprice" xorm:"AVGPRICE"` // 定价均价 = 已定价金额 / 已定价量
|
|
|
+ SPOTAVGPRICE float64 `json:"spotavgprice" xorm:"SPOTAVGPRICE"` // 现货均价 = 合同现货金额 / 已定价量
|
|
|
+}
|
|
|
+
|
|
|
+func (r *ErmcpSpotContractModelEx) buildSql(req QrySpotContractExReq) string {
|
|
|
+ str := `
|
|
|
+ SELECT to_char(t.SPOTCONTRACTID) SPOTCONTRACTID,
|
|
|
+ t.CONTRACTNO,
|
|
|
+ t.CONTRACTTYPE,
|
|
|
+ t.USERID,
|
|
|
+ t.BUYUSERID,
|
|
|
+ t.SELLUSERID,
|
|
|
+ t.DELIVERYGOODSID,
|
|
|
+ t.wrstandardid,
|
|
|
+ t.PRODUCTTYPE,
|
|
|
+ w.CONVERTFACTOR,
|
|
|
+ t.SPOTGOODSDESC,
|
|
|
+ t.PRICETYPE,
|
|
|
+ t.QTY,
|
|
|
+ t.PRICE,
|
|
|
+ t.AMOUNT,
|
|
|
+ to_char(t.DELIVERYSTARTDATE, 'yyyy-mm-dd hh24:mi:ss') DELIVERYSTARTDATE,
|
|
|
+ to_char(t.DELIVERYENDDATE, 'yyyy-mm-dd hh24:mi:ss') DELIVERYENDDATE,
|
|
|
+ t.GOODSID,
|
|
|
+ t.PRICEMOVE,
|
|
|
+ to_char(t.STARTDATE, 'yyyy-mm-dd hh24:mi:ss') STARTDATE,
|
|
|
+ to_char(t.ENDDATE, 'yyyy-mm-dd hh24:mi:ss') ENDDATE,
|
|
|
+ t.MARGIN,
|
|
|
+ t.contractmargin,
|
|
|
+ t.remark,
|
|
|
+ t.pointdesc,
|
|
|
+ t.auditremark,
|
|
|
+ to_char(t.contractattachment) attachment,
|
|
|
+ t.contractstatus,
|
|
|
+ t.SPOTGOODSBRANDID,
|
|
|
+ to_char(t.audittime, 'yyyy-mm-dd hh24:mi:ss') audittime,
|
|
|
+ to_char(t.createtime, 'yyyy-mm-dd hh24:mi:ss') createtime,
|
|
|
+ to_char(t.updatetime, 'yyyy-mm-dd hh24:mi:ss') updatetime,
|
|
|
+ g.deliverygoodscode,
|
|
|
+ g.deliverygoodsname,
|
|
|
+ g2.goodscode,
|
|
|
+ g2.goodsname,
|
|
|
+ gb.dgfactoryitemvalue brandname,
|
|
|
+ w.wrstandardname,
|
|
|
+ w.wrstandardcode,
|
|
|
+ w.vatrate,
|
|
|
+ w.unitid,
|
|
|
+ t.tradeuserid,
|
|
|
+ t.saleuserid,
|
|
|
+ t.meruserid,
|
|
|
+ t.currencyid,
|
|
|
+ to_char(t.accountid) accountid,
|
|
|
+ t.biztype,
|
|
|
+ to_char(t.subjectid) subjectid,
|
|
|
+ b.subjectname,
|
|
|
+ (t.QTY - t.PRICEDQTY) UNPRICEDQTY,
|
|
|
+ DECODE(t.PRICEDQTY, 0, 0, t.PRICEDAMOUNT/t.PRICEDQTY) AVGPRICE,
|
|
|
+ DECODE(t.PRICEDQTY, 0, 0, t.SPOTAMOUNT/t.PRICEDQTY) SPOTAVGPRICE,
|
|
|
+ ua.ACCOUNTNAME,
|
|
|
+ uc.ACCOUNTNAME CUSTOMERNAME
|
|
|
+ FROM ERMCP_SPOTCONTRACT t
|
|
|
+ left join ermcp_pa_areasubject b on t.subjectid=b.subjectid
|
|
|
+ left join deliverygoods g
|
|
|
+ on t.deliverygoodsid = g.deliverygoodsid
|
|
|
+ left join goods g2
|
|
|
+ on t.goodsid = g2.goodsid
|
|
|
+ left join DGFACTORYITEM gb
|
|
|
+ on t.spotgoodsbrandid = gb.dgfactoryitemid
|
|
|
+ left join wrstandard w
|
|
|
+ on t.wrstandardid = w.wrstandardid
|
|
|
+ left join loginaccount l
|
|
|
+ on t.applyid = l.loginid
|
|
|
+ left join useraccount ua
|
|
|
+ on ua.userid = t.tradeuserid
|
|
|
+ left join useraccount uc
|
|
|
+ on uc.userid = t.CUSTOMERUSERID
|
|
|
+ where t.contractstatus = 2 and t.ISRELATED = 0 and t.ISRELATED2 = 0
|
|
|
+ and (t.userid = %v or t.tradeuserid = %v)
|
|
|
+ `
|
|
|
+
|
|
|
+ // "SELECT to_char(t.SPOTCONTRACTID) SPOTCONTRACTID," +
|
|
|
+ // " t.CONTRACTNO," +
|
|
|
+ // " t.CONTRACTTYPE," +
|
|
|
+ // " t.USERID," +
|
|
|
+ // " t.BUYUSERID," +
|
|
|
+ // " t.SELLUSERID," +
|
|
|
+ // " t.DELIVERYGOODSID," +
|
|
|
+ // " t.wrstandardid," +
|
|
|
+ // " t.PRODUCTTYPE," +
|
|
|
+ // " t.CONVERTFACTOR," +
|
|
|
+ // " t.SPOTGOODSDESC," +
|
|
|
+ // " t.PRICETYPE," +
|
|
|
+ // " t.QTY," +
|
|
|
+ // " t.PRICE," +
|
|
|
+ // " t.AMOUNT," +
|
|
|
+ // " to_char(t.DELIVERYSTARTDATE, 'yyyy-mm-dd hh24:mi:ss') DELIVERYSTARTDATE," +
|
|
|
+ // " to_char(t.DELIVERYENDDATE, 'yyyy-mm-dd hh24:mi:ss') DELIVERYENDDATE," +
|
|
|
+ // " t.GOODSID," +
|
|
|
+ // " t.PRICEMOVE," +
|
|
|
+ // " to_char(t.STARTDATE, 'yyyy-mm-dd hh24:mi:ss') STARTDATE," +
|
|
|
+ // " to_char(t.ENDDATE, 'yyyy-mm-dd hh24:mi:ss') ENDDATE," +
|
|
|
+ // " t.MARGIN," +
|
|
|
+ // " t.contractmargin," +
|
|
|
+ // " t.remark," +
|
|
|
+ // " t.auditremark," +
|
|
|
+ // " to_char(t.contractattachment) attachment," +
|
|
|
+ // " t.contractstatus," +
|
|
|
+ // " t.SPOTGOODSMODELID," +
|
|
|
+ // " t.SPOTGOODSBRANDID," +
|
|
|
+ // " to_char(t.audittime, 'yyyy-mm-dd hh24:mi:ss') audittime," +
|
|
|
+ // " to_char(t.createtime, 'yyyy-mm-dd hh24:mi:ss') createtime," +
|
|
|
+ // " to_char(t.updatetime, 'yyyy-mm-dd hh24:mi:ss') updatetime," +
|
|
|
+ // " u1.accountname BuyUserName," +
|
|
|
+ // " u2.accountname SellUserName," +
|
|
|
+ // " g.deliverygoodscode," +
|
|
|
+ // " g.deliverygoodsname," +
|
|
|
+ // " g2.goodscode," +
|
|
|
+ // " g2.goodsname," +
|
|
|
+ // " gb.brandname," +
|
|
|
+ // " gm.modelname," +
|
|
|
+ // " e.Enumdicname," +
|
|
|
+ // " w.wrstandardname," +
|
|
|
+ // " w.wrstandardcode," +
|
|
|
+ // " (t.QTY - t.PRICEDQTY) UNPRICEDQTY," +
|
|
|
+ // " DECODE(t.PRICEDQTY, 0, 0, t.PRICEDAMOUNT/t.PRICEDQTY) AVGPRICE," +
|
|
|
+ // " DECODE(t.PRICEDQTY, 0, 0, t.SPOTAMOUNT/t.PRICEDQTY) SPOTAVGPRICE," +
|
|
|
+ // " ua.ACCOUNTNAME," +
|
|
|
+ // " uc.ACCOUNTNAME CUSTOMERNAME" +
|
|
|
+ // " FROM ERMCP_SPOTCONTRACT t" +
|
|
|
+ // " left join useraccount u1" +
|
|
|
+ // " on t.buyuserid = u1.userid" +
|
|
|
+ // " left join useraccount u2" +
|
|
|
+ // " on t.selluserid = u2.userid" +
|
|
|
+ // " left join deliverygoods g" +
|
|
|
+ // " on t.deliverygoodsid = g.deliverygoodsid" +
|
|
|
+ // " left join goods g2" +
|
|
|
+ // " on t.goodsid = g2.goodsid" +
|
|
|
+ // " left join spotgoodsbrand gb on t.spotgoodsbrandid=gb.brandid" +
|
|
|
+ // " left join spotgoodsmodel gm on t.spotgoodsmodelid=gm.modelid" +
|
|
|
+ // " left join wrstandard w" +
|
|
|
+ // " on t.wrstandardid = w.wrstandardid" +
|
|
|
+ // " left join enumdicitem e" +
|
|
|
+ // " on w.unitid = e.enumitemname" +
|
|
|
+ // " and e.enumdiccode = 'goodsunit'" +
|
|
|
+
|
|
|
+ str = fmt.Sprintf(str, req.USERID, req.USERID)
|
|
|
+ if req.PRICETYPE > 0 {
|
|
|
+ str += " and t.PRICETYPE = %v"
|
|
|
+ str = fmt.Sprintf(str, req.PRICETYPE)
|
|
|
+ }
|
|
|
+ if len(req.CONTRACTNO) > 0 {
|
|
|
+ str += " and t.CONTRACTNO like '%%%s%%'"
|
|
|
+ str = fmt.Sprintf(str, req.CONTRACTNO)
|
|
|
+ }
|
|
|
+ if len(req.CUSTOMERNAME) > 0 {
|
|
|
+ str += " and uc.ACCOUNTNAME like '%%%s%%'"
|
|
|
+ str = fmt.Sprintf(str, req.CUSTOMERNAME)
|
|
|
+ }
|
|
|
+ if req.CONTRACTTYPE > 0 {
|
|
|
+ str += " and t.CONTRACTTYPE = %v"
|
|
|
+ str = fmt.Sprintf(str, req.CONTRACTTYPE)
|
|
|
+ }
|
|
|
+ str += " order by t.audittime desc"
|
|
|
+
|
|
|
+ return str
|
|
|
+}
|
|
|
+
|
|
|
+// GetData 从数据库中查询现货合同
|
|
|
+func (r *ErmcpSpotContractModelEx) GetData(req QrySpotContractExReq) ([]ErmcpSpotContractModelEx, error) {
|
|
|
+ sData := make([]ErmcpSpotContractModelEx, 0)
|
|
|
+ e := db.GetEngine()
|
|
|
+ s := e.SQL(r.buildSql(req))
|
|
|
+ if err := s.Find(&sData); err != nil {
|
|
|
+ logger.GetLogger().Errorf("ermcp query fail:%v", err)
|
|
|
+ return sData, err
|
|
|
+ }
|
|
|
+ return sData, nil
|
|
|
+}
|