|
|
@@ -283,7 +283,7 @@ type Ermcp2hedgeditem struct {
|
|
|
|
|
|
Wrstandardname string `json:"wrstandardname" xorm:"WRSTANDARDNAME"` // 商品名称
|
|
|
EnumdicName string `json:"enumdicname" xorm:"ENUMDICNAME"` // 单位
|
|
|
- AccountName string `json:"accountName" xorm:"ACCOUNTNAME"` // 套期主体
|
|
|
+ AccountName string `json:"accountname" xorm:"ACCOUNTNAME"` // 套期主体
|
|
|
|
|
|
MiddleGoodsList []Ermcp2himiddlegoods `json:"middlegoodslist"` // 套期商品列表
|
|
|
|
|
|
@@ -637,7 +637,7 @@ type Ermcp2hedgeditemspotDetail struct {
|
|
|
|
|
|
Wrstandardname string `json:"wrstandardname" xorm:"WRSTANDARDNAME"` // 现货商品
|
|
|
EnumdicName string `json:"enumdicname" xorm:"ENUMDICNAME"` // 单位
|
|
|
- AccountName string `json:"accountName" xorm:"ACCOUNTNAME"` // 对手方
|
|
|
+ AccountName string `json:"accountname" xorm:"ACCOUNTNAME"` // 对手方
|
|
|
BRANDNAME string `json:"brandname" xorm:"BRANDNAME"` // 品牌
|
|
|
CONTRACTNO string `json:"contractno" xorm:"CONTRACTNO"` // 合同编号
|
|
|
}
|
|
|
@@ -973,11 +973,11 @@ type Ermcp8HedgeditemReport struct {
|
|
|
ORIFUTUREPL float64 `json:"orifuturepl" xorm:"ORIFUTUREPL"` // 期初期货套期损益
|
|
|
|
|
|
EnumdicName string `json:"enumdicname" xorm:"ENUMDICNAME"` // 单位
|
|
|
- AccountName string `json:"accountName" xorm:"ACCOUNTNAME"` // 套期主体
|
|
|
+ AccountName string `json:"accountname" xorm:"ACCOUNTNAME"` // 套期主体
|
|
|
|
|
|
- USERID int64 `form:"userid" binding:"required"` // 用户ID
|
|
|
- CYCLETYPE int32 `form:"cycletype"` // 周期类型 - 0:日 1:月 2:季 3:年 4:周 5:全报表【原值】
|
|
|
- CYCLETIME string `form:"cycletime" binding:"required"` // 周期时间 日(YYYYMMDD) 月(YYYYMM) 季(YYYYQ) 年(YYYY) 周(YYYYMMDD周内任意一天) 全(0)【原值】
|
|
|
+ USERID int64 `json:"-" form:"userid" binding:"required"` // 用户ID
|
|
|
+ CYCLETYPE int32 `json:"-" form:"cycletype"` // 周期类型 - 0:日 1:月 2:季 3:年 4:周 5:全报表【原值】
|
|
|
+ CYCLETIME string `json:"-" form:"cycletime" binding:"required"` // 周期时间 日(YYYYMMDD) 月(YYYYMM) 季(YYYYQ) 年(YYYY) 周(YYYYMMDD周内任意一天) 全(0)【原值】
|
|
|
}
|
|
|
|
|
|
func (r *Ermcp8HedgeditemReport) calc() {
|
|
|
@@ -1094,7 +1094,7 @@ func (r *Ermcp8HedgeditemReport) buildReportSql() string {
|
|
|
func (r *Ermcp8HedgeditemReport) GetDataEx() (interface{}, error) {
|
|
|
e := db.GetEngine()
|
|
|
s := e.SQL(r.buildSql())
|
|
|
- sData := make([]InternalEnableTradeDetail, 0)
|
|
|
+ sData := make([]Ermcp8HedgeditemReport, 0)
|
|
|
if err := s.Find(&sData); err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
@@ -1166,7 +1166,7 @@ type ErmcpSpotContractModelEx struct {
|
|
|
ISRELATED int32 `json:"isrelated" xorm:"ISRELATED"` // 是否已关联计划项目 - 0:否 1:是
|
|
|
ISRELATED2 int32 `json:"isrelated2" xorm:"ISRELATED2"` // 是否已关联现货项目 - 0:否 1:是
|
|
|
|
|
|
- ACCOUNTNAME string `json:"accountName" xorm:"ACCOUNTNAME"` // 套期主体
|
|
|
+ ACCOUNTNAME string `json:"accountname" xorm:"ACCOUNTNAME"` // 套期主体
|
|
|
CUSTOMERNAME string `json:"customername" xorm:"CUSTOMERNAME"` // 对手方
|
|
|
|
|
|
UNPRICEDQTY float64 `json:"unpricedqty" xorm:"UNPRICEDQTY"` // 未定价量 = 合同数量 - 已定价量
|
|
|
@@ -1249,72 +1249,6 @@ func (r *ErmcpSpotContractModelEx) buildSql(req QrySpotContractExReq) string {
|
|
|
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"
|
|
|
@@ -1348,3 +1282,65 @@ func (r *ErmcpSpotContractModelEx) GetData(req QrySpotContractExReq) ([]ErmcpSpo
|
|
|
}
|
|
|
return sData, nil
|
|
|
}
|
|
|
+
|
|
|
+// Ermcp8EnableHedgeditem 可关联项目
|
|
|
+type Ermcp8EnableHedgeditem struct {
|
|
|
+ HEDGEDITEMID int64 `json:"hedgeditemid" xorm:"HEDGEDITEMID"` // 被套期项目ID(624+Unix秒时间戳(10位)+xxxxxx)
|
|
|
+ HEDGEDITEMNUM string `json:"hedgeditemnum" xorm:"HEDGEDITEMNUM"` // 项目编号
|
|
|
+ HEDGEDITEMNAME string `json:"hedgeditemname" xorm:"HEDGEDITEMNAME"` // 项目名称
|
|
|
+ HEDGEDTYPE int32 `json:"hedgedtype" xorm:"HEDGEDTYPE"` // 套期类型 - 1:采购计划项目 2:销售计划项目 3:现货贸易项目 4:库存存货项目 5:定价采购合同项目
|
|
|
+ SPOTTYPE int32 `json:"-" form:"spottype" binding:"required"` // 现货类型 - 1:采购计划 2:销售计划 3:采购合同 4:销售合同 5:库存存货
|
|
|
+ PLANSTARTDATE string `json:"planstartdate" xorm:"PLANSTARTDATE"` // 计划开始日期
|
|
|
+ PLANENDDATE string `json:"planenddate" xorm:"PLANENDDATE"` // 计划结束日期
|
|
|
+
|
|
|
+ ACCOUNTNAME string `json:"accountname" xorm:"ACCOUNTNAME"` // 套期主体
|
|
|
+
|
|
|
+ USERID int64 `json:"-" form:"userid" binding:"required"` // 用户ID
|
|
|
+}
|
|
|
+
|
|
|
+func (r *Ermcp8EnableHedgeditem) calc() {
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+func (r *Ermcp8EnableHedgeditem) buildSql() string {
|
|
|
+ var sqlId utils.SQLVal = `
|
|
|
+ SELECT
|
|
|
+ t.HEDGEDITEMID,
|
|
|
+ t.HEDGEDITEMNUM,
|
|
|
+ t.HEDGEDITEMNAME,
|
|
|
+ t.HEDGEDTYPE,
|
|
|
+ to_char(t.PLANSTARTDATE, 'yyyy-mm-dd') PLANSTARTDATE,
|
|
|
+ to_char(t.PLANENDDATE, 'yyyy-mm-dd') PLANENDDATE,
|
|
|
+ u.ACCOUNTNAME
|
|
|
+ FROM ERMCP2_HedgedItem t
|
|
|
+ LEFT JOIN useraccount u ON u.userid = t.tradeuserid
|
|
|
+ WHERE
|
|
|
+ t.HEDGEDITEMSTATUS = 2
|
|
|
+ AND (t.TRADEUSERID = %v OR t.AREAUSERID = %v)
|
|
|
+ `
|
|
|
+ sqlId.FormatParam(r.USERID, r.USERID)
|
|
|
+ switch r.SPOTTYPE {
|
|
|
+ case 1, 2:
|
|
|
+ sqlId.And("t.HEDGEDTYPE", r.SPOTTYPE)
|
|
|
+ case 3:
|
|
|
+ sqlId.JoinFormat(" AND t.HEDGEDTYPE in (%v,3)", r.SPOTTYPE)
|
|
|
+ case 4:
|
|
|
+ sqlId.JoinFormat(" AND t.HEDGEDTYPE in (%v,3)", r.SPOTTYPE)
|
|
|
+ }
|
|
|
+
|
|
|
+ return sqlId.String()
|
|
|
+}
|
|
|
+
|
|
|
+// GetDataEx 从数据库中查询数据
|
|
|
+func (r *Ermcp8EnableHedgeditem) GetDataEx() (interface{}, error) {
|
|
|
+ e := db.GetEngine()
|
|
|
+ s := e.SQL(r.buildSql())
|
|
|
+ sData := make([]Ermcp8EnableHedgeditem, 0)
|
|
|
+ if err := s.Find(&sData); err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ for i := range sData {
|
|
|
+ sData[i].calc()
|
|
|
+ }
|
|
|
+ return sData, nil
|
|
|
+}
|