|
|
@@ -91,6 +91,133 @@ func (r *Ermcp2hedgeditemOrc) TableName() string {
|
|
|
return "ERMCP2_HEDGEDITEM"
|
|
|
}
|
|
|
|
|
|
+// Reckonermcp2hedgeditem 被套期项目日照表
|
|
|
+type Reckonermcp2hedgeditem struct {
|
|
|
+ RECKONDATE string `json:"reckondate" xorm:"RECKONDATE"` // 日照时期(yyyyMMdd)
|
|
|
+ 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:定价采购合同项目
|
|
|
+ PLANSTARTDATE time.Time `json:"planstartdate" xorm:"PLANSTARTDATE"` // 计划开始日期
|
|
|
+ PLANENDDATE time.Time `json:"planenddate" xorm:"PLANENDDATE"` // 计划结束日期
|
|
|
+ HEDGERATE float64 `json:"hedgerate" xorm:"HEDGERATE"` // 套期比率
|
|
|
+ TRADEUSERID int64 `json:"tradeuserid" xorm:"TRADEUSERID"` // 交易用户ID
|
|
|
+ AREAUSERID int64 `json:"areauserid" xorm:"AREAUSERID"` // 企业ID
|
|
|
+ HEDGEDITEMSTATUS int32 `json:"hedgeditemstatus" xorm:"HEDGEDITEMSTATUS"` // 项目状态 - 0:未提交 1:待审核 2:执行中 3:正常完结 4:审核拒绝 5:异常完结 6:已撤回
|
|
|
+ APPLYSRC int32 `json:"applysrc" xorm:"APPLYSRC"` // 申请来源 - 1:管理端 2:终端
|
|
|
+ APPLYID int64 `json:"applyid" xorm:"APPLYID"` // 申请人
|
|
|
+ REMARK string `json:"remark" xorm:"REMARK"` // 备注
|
|
|
+ CREATETIME time.Time `json:"createtime" xorm:"CREATETIME"` // 申请时间
|
|
|
+ AUDITTRADEDATE string `json:"audittradedate" xorm:"AUDITTRADEDATE"` // 审核交易日(yyyyMMdd)
|
|
|
+ AUDITID int64 `json:"auditid" xorm:"AUDITID"` // 审核人
|
|
|
+ AUDITSRC int32 `json:"auditsrc" xorm:"AUDITSRC"` // 审核来源 - 1:管理端 2:终端
|
|
|
+ AUDITTIME time.Time `json:"audittime" xorm:"AUDITTIME"` // 审核时间
|
|
|
+ AUDITREMARK string `json:"auditremark" xorm:"AUDITREMARK"` // 审核备注
|
|
|
+ DELIVERYGOODSID int64 `json:"deliverygoodsid" xorm:"DELIVERYGOODSID"` // 现货品种ID
|
|
|
+ WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID
|
|
|
+ VATRATE float64 `json:"vatrate" xorm:"VATRATE"` // 增值税
|
|
|
+ HEDGEQTY float64 `json:"hedgeqty" xorm:"HEDGEQTY"` // 套期现货量
|
|
|
+ HEDGEAMOUNT float64 `json:"hedgeamount" xorm:"HEDGEAMOUNT"` // 套期市价总额
|
|
|
+ HEDGERESTAMOUNT float64 `json:"hedgerestamount" xorm:"HEDGERESTAMOUNT"` // 套期剩余市价总额【现货贸易】
|
|
|
+ HEDGECONTRACTAMOUNT float64 `json:"hedgecontractamount" xorm:"HEDGECONTRACTAMOUNT"` // 套期定价总额 【定价采购合同】【现货贸易】
|
|
|
+ ORIAVGPRICE float64 `json:"oriavgprice" xorm:"ORIAVGPRICE"` // 期初市场均价 = 套期市价总额 / 套期现货量
|
|
|
+ EXEQTY float64 `json:"exeqty" xorm:"EXEQTY"` // 执行现货量
|
|
|
+ EXEAMOUNT float64 `json:"exeamount" xorm:"EXEAMOUNT"` // 执行市价总额
|
|
|
+ EXERESTAMOUNT float64 `json:"exerestamount" xorm:"EXERESTAMOUNT"` // 执行剩余市价总额【现货贸易】
|
|
|
+ EXEAVGPRICE float64 `json:"exeavgprice" xorm:"EXEAVGPRICE"` // 执行市场均价= 执行市价总额 / 执行现货量
|
|
|
+ EXECONTRACTAMOUNT float64 `json:"execontractamount" xorm:"EXECONTRACTAMOUNT"` // 执行定价总额
|
|
|
+ CURPRICE float64 `json:"curprice" xorm:"CURPRICE"` // 当前市场价
|
|
|
+ UNEXEQTY float64 `json:"unexeqty" xorm:"UNEXEQTY"` // 未执行现货量 = 套期现货量 - 执行现货量
|
|
|
+ SPOTHEDGEPL float64 `json:"spothedgepl" xorm:"SPOTHEDGEPL"` // 现货套期损益 =(执行市场均价-期初市场均价)*执行现货量 * 方向(销售计划 为 -1, 其它为1)
|
|
|
+ SPOTPL float64 `json:"spotpl" xorm:"SPOTPL"` // 现货套期损益 = 现货实际损益 + 现货浮动损益
|
|
|
+ FUTUREHEDGEPL float64 `json:"futurehedgepl" xorm:"FUTUREHEDGEPL"` // 期货实际损益
|
|
|
+ FUTUREPL float64 `json:"futurepl" xorm:"FUTUREPL"` // 期货套期损益
|
|
|
+ HEDGESUMPL float64 `json:"hedgesumpl" xorm:"HEDGESUMPL"` // 套期汇总损益 = 期货汇总损益 + 现货汇总损益
|
|
|
+ SPOTTRADEPL float64 `json:"spottradepl" xorm:"SPOTTRADEPL"` // 现货贸易损益【现货贸易】= 执行合同定价总额 - 套期合同定价总额
|
|
|
+ VATPL float64 `json:"vatpl" xorm:"VATPL"` // 增值税损益【现货贸易】= 现货贸易损益 * (增值税率 /(1+增值税率))
|
|
|
+ SUMOBSPL float64 `json:"sumobspl" xorm:"SUMOBSPL"` // 汇总绝对损益【现货贸易】=现货贸易损益+增值税损益+期货套期损益
|
|
|
+ SPOTBOOKAMOUNT float64 `json:"spotbookamount" xorm:"SPOTBOOKAMOUNT"` // 现货账面总额
|
|
|
+ CURSTOCK float64 `json:"curstock" xorm:"CURSTOCK"` // 期末库存量 = 采购总量 - 销售总量
|
|
|
+ ENDDATE time.Time `json:"enddate" xorm:"ENDDATE"` // 完成日期
|
|
|
+ ENDTRADEDATE string `json:"endtradedate" xorm:"ENDTRADEDATE"` // 完成交易日
|
|
|
+ UPDATETIME time.Time `json:"updatetime" xorm:"UPDATETIME"` // 更新时间
|
|
|
+ ORISPOTHEDGEPL float64 `json:"orispothedgepl" xorm:"ORISPOTHEDGEPL"` // 期初现货实际损益
|
|
|
+ ORIFUTUREHEDGEPL float64 `json:"orifuturehedgepl" xorm:"ORIFUTUREHEDGEPL"` // 期初期货实际损益
|
|
|
+ ORISPOTPL float64 `json:"orispotpl" xorm:"ORISPOTPL"` // 期初现货套期损益
|
|
|
+ ORIFUTUREPL float64 `json:"orifuturepl" xorm:"ORIFUTUREPL"` // 期初期货套期损益
|
|
|
+ SPOTFLOATPL float64 `json:"spotfloatpl" xorm:"SPOTFLOATPL"` // 现货浮动损益 =(当前市场价 - 期初市场价)*未执行现货量 * 方向(销售计划 为 -1, 其它为1)
|
|
|
+ FUTUREFLOATPL float64 `json:"futurefloatpl" xorm:"FUTUREFLOATPL"` // 期货浮动损益
|
|
|
+}
|
|
|
+
|
|
|
+// TableName is RECKON_ERMCP2_HEDGEDITEM
|
|
|
+func (r *Reckonermcp2hedgeditem) TableName() string {
|
|
|
+ return "RECKON_ERMCP2_HEDGEDITEM"
|
|
|
+}
|
|
|
+
|
|
|
+// Reportermcp2hedgeditem 被套期项目报表表
|
|
|
+type Reportermcp2hedgeditem struct {
|
|
|
+ CYCLETIME string `json:"cycletime" xorm:"CYCLETIME"` // 周期时间 月(YYYYMM) 季(YYYYQ) 年(YYYY) 周(YYYYIW) 全(0)【原值】
|
|
|
+ CYCLETYPE int32 `json:"cycletype" xorm:"CYCLETYPE"` // 周期类型 - 1:月 2:季 3:年 4:周 5:全报表【原值】
|
|
|
+ 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:定价采购合同项目
|
|
|
+ PLANSTARTDATE time.Time `json:"planstartdate" xorm:"PLANSTARTDATE"` // 计划开始日期
|
|
|
+ PLANENDDATE time.Time `json:"planenddate" xorm:"PLANENDDATE"` // 计划结束日期
|
|
|
+ HEDGERATE float64 `json:"hedgerate" xorm:"HEDGERATE"` // 套期比率
|
|
|
+ TRADEUSERID int64 `json:"tradeuserid" xorm:"TRADEUSERID"` // 交易用户ID
|
|
|
+ AREAUSERID int64 `json:"areauserid" xorm:"AREAUSERID"` // 企业ID
|
|
|
+ HEDGEDITEMSTATUS int32 `json:"hedgeditemstatus" xorm:"HEDGEDITEMSTATUS"` // 项目状态 - 0:未提交 1:待审核 2:执行中 3:正常完结 4:审核拒绝 5:异常完结 6:已撤回
|
|
|
+ APPLYSRC int32 `json:"applysrc" xorm:"APPLYSRC"` // 申请来源 - 1:管理端 2:终端
|
|
|
+ APPLYID int64 `json:"applyid" xorm:"APPLYID"` // 申请人
|
|
|
+ REMARK string `json:"remark" xorm:"REMARK"` // 备注
|
|
|
+ CREATETIME time.Time `json:"createtime" xorm:"CREATETIME"` // 申请时间
|
|
|
+ AUDITTRADEDATE string `json:"audittradedate" xorm:"AUDITTRADEDATE"` // 审核交易日(yyyyMMdd)
|
|
|
+ AUDITID int64 `json:"auditid" xorm:"AUDITID"` // 审核人
|
|
|
+ AUDITSRC int32 `json:"auditsrc" xorm:"AUDITSRC"` // 审核来源 - 1:管理端 2:终端
|
|
|
+ AUDITTIME time.Time `json:"audittime" xorm:"AUDITTIME"` // 审核时间
|
|
|
+ AUDITREMARK string `json:"auditremark" xorm:"AUDITREMARK"` // 审核备注
|
|
|
+ DELIVERYGOODSID int64 `json:"deliverygoodsid" xorm:"DELIVERYGOODSID"` // 现货品种ID
|
|
|
+ WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID
|
|
|
+ VATRATE float64 `json:"vatrate" xorm:"VATRATE"` // 增值税
|
|
|
+ HEDGEQTY float64 `json:"hedgeqty" xorm:"HEDGEQTY"` // 套期现货量
|
|
|
+ HEDGEAMOUNT float64 `json:"hedgeamount" xorm:"HEDGEAMOUNT"` // 套期市价总额
|
|
|
+ HEDGERESTAMOUNT float64 `json:"hedgerestamount" xorm:"HEDGERESTAMOUNT"` // 套期剩余市价总额【现货贸易】
|
|
|
+ HEDGECONTRACTAMOUNT float64 `json:"hedgecontractamount" xorm:"HEDGECONTRACTAMOUNT"` // 套期定价总额 【定价采购合同】【现货贸易】
|
|
|
+ ORIAVGPRICE float64 `json:"oriavgprice" xorm:"ORIAVGPRICE"` // 期初市场均价 = 套期市价总额 / 套期现货量
|
|
|
+ EXEQTY float64 `json:"exeqty" xorm:"EXEQTY"` // 执行现货量
|
|
|
+ EXEAMOUNT float64 `json:"exeamount" xorm:"EXEAMOUNT"` // 执行市价总额
|
|
|
+ EXERESTAMOUNT float64 `json:"exerestamount" xorm:"EXERESTAMOUNT"` // 执行剩余市价总额【现货贸易】
|
|
|
+ EXEAVGPRICE float64 `json:"exeavgprice" xorm:"EXEAVGPRICE"` // 执行市场均价= 执行市价总额 / 执行现货量
|
|
|
+ EXECONTRACTAMOUNT float64 `json:"execontractamount" xorm:"EXECONTRACTAMOUNT"` // 执行定价总额
|
|
|
+ CURPRICE float64 `json:"curprice" xorm:"CURPRICE"` // 当前市场价
|
|
|
+ UNEXEQTY float64 `json:"unexeqty" xorm:"UNEXEQTY"` // 未执行现货量 = 套期现货量 - 执行现货量
|
|
|
+ SPOTHEDGEPL float64 `json:"spothedgepl" xorm:"SPOTHEDGEPL"` // 现货套期损益 =(执行市场均价-期初市场均价)*执行现货量 * 方向(销售计划 为 -1, 其它为1)
|
|
|
+ SPOTPL float64 `json:"spotpl" xorm:"SPOTPL"` // 现货套期损益 = 现货实际损益 + 现货浮动损益
|
|
|
+ FUTUREHEDGEPL float64 `json:"futurehedgepl" xorm:"FUTUREHEDGEPL"` // 期货实际损益
|
|
|
+ FUTUREPL float64 `json:"futurepl" xorm:"FUTUREPL"` // 期货套期损益
|
|
|
+ HEDGESUMPL float64 `json:"hedgesumpl" xorm:"HEDGESUMPL"` // 套期汇总损益 = 期货汇总损益 + 现货汇总损益
|
|
|
+ SPOTTRADEPL float64 `json:"spottradepl" xorm:"SPOTTRADEPL"` // 现货贸易损益【现货贸易】= 执行合同定价总额 - 套期合同定价总额
|
|
|
+ VATPL float64 `json:"vatpl" xorm:"VATPL"` // 增值税损益【现货贸易】= 现货贸易损益 * (增值税率 /(1+增值税率))
|
|
|
+ SUMOBSPL float64 `json:"sumobspl" xorm:"SUMOBSPL"` // 汇总绝对损益【现货贸易】=现货贸易损益+增值税损益+期货套期损益
|
|
|
+ SPOTBOOKAMOUNT float64 `json:"spotbookamount" xorm:"SPOTBOOKAMOUNT"` // 现货账面总额
|
|
|
+ CURSTOCK float64 `json:"curstock" xorm:"CURSTOCK"` // 期末库存量 = 采购总量 - 销售总量
|
|
|
+ ENDDATE time.Time `json:"enddate" xorm:"ENDDATE"` // 完成日期
|
|
|
+ ENDTRADEDATE string `json:"endtradedate" xorm:"ENDTRADEDATE"` // 完成交易日
|
|
|
+ UPDATETIME time.Time `json:"updatetime" xorm:"UPDATETIME"` // 更新时间
|
|
|
+ ORISPOTHEDGEPL float64 `json:"orispothedgepl" xorm:"ORISPOTHEDGEPL"` // 期初现货实际损益
|
|
|
+ ORIFUTUREHEDGEPL float64 `json:"orifuturehedgepl" xorm:"ORIFUTUREHEDGEPL"` // 期初期货实际损益
|
|
|
+ ORISPOTPL float64 `json:"orispotpl" xorm:"ORISPOTPL"` // 期初现货套期损益
|
|
|
+ ORIFUTUREPL float64 `json:"orifuturepl" xorm:"ORIFUTUREPL"` // 期初期货套期损益
|
|
|
+ SPOTFLOATPL float64 `json:"spotfloatpl" xorm:"SPOTFLOATPL"` // 现货浮动损益 =(当前市场价 - 期初市场价)*未执行现货量 * 方向(销售计划 为 -1, 其它为1)
|
|
|
+ FUTUREFLOATPL float64 `json:"futurefloatpl" xorm:"FUTUREFLOATPL"` // 期货浮动损益
|
|
|
+}
|
|
|
+
|
|
|
+// TableName is REPORT_ERMCP2_HEDGEDITEM
|
|
|
+func (r *Reportermcp2hedgeditem) TableName() string {
|
|
|
+ return "REPORT_ERMCP2_HEDGEDITEM"
|
|
|
+}
|
|
|
+
|
|
|
// Ermcp2hedgeditem 被套期项目表
|
|
|
type Ermcp2hedgeditem struct {
|
|
|
Hedgeditemid string `json:"hedgeditemid" xorm:"HEDGEDITEMID"` // 被套期项目ID(624+Unix秒时间戳(10位)+xxxxxx)
|
|
|
@@ -785,7 +912,7 @@ func (r *InternalEnableTradeDetail) buildSql() string {
|
|
|
LEFT JOIN ERMCP2_HedgedItem hi ON hi.HEDGEDITEMID = t.HEDGEDITEMID
|
|
|
LEFT JOIN DeliveryGoods dg ON dg.DELIVERYGOODSID = t.DELIVERYGOODSID
|
|
|
LEFT JOIN WRStandard wr ON wr.WRStandardID = t.WRStandardID
|
|
|
- LEFT JOIN ERMS_MiddleGoods ON mg.MIDDLEGOODSID = t.MIDDLEGOODSID
|
|
|
+ LEFT JOIN ERMS_MiddleGoods mg ON mg.MIDDLEGOODSID = t.MIDDLEGOODSID
|
|
|
LEFT JOIN ERMCP_GGConvertConfig gc ON gc.destgoodsgroupid = mg.goodsgroupid
|
|
|
LEFT JOIN Goods g ON g.GOODSGROUPID = gc.SRCGOODSGROUPID
|
|
|
WHERE 1 = 1
|
|
|
@@ -809,3 +936,163 @@ func (r *InternalEnableTradeDetail) GetDataEx() (interface{}, error) {
|
|
|
}
|
|
|
return sData, nil
|
|
|
}
|
|
|
+
|
|
|
+// Ermcp8HedgeditemReport 套期项目报表
|
|
|
+type Ermcp8HedgeditemReport struct {
|
|
|
+ HEDGEDTYPE int32 `json:"hedgedtype" xorm:"HEDGEDTYPE" form:"hedgedtype"` // 套期类型 - 1:采购计划项目 2:销售计划项目 3:现货贸易项目 4:库存存货项目 5:定价采购合同项目
|
|
|
+ TRADEUSERID int64 `json:"tradeuserid" xorm:"TRADEUSERID"` // 交易用户ID
|
|
|
+ AREAUSERID int64 `json:"areauserid" xorm:"AREAUSERID"` // 企业ID
|
|
|
+ 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'"` // [现货商品]现货品类名称
|
|
|
+ HEDGEQTY float64 `json:"hedgeqty" xorm:"HEDGEQTY"` // [套期数量]套期现货量
|
|
|
+ ORIAVGPRICE float64 `json:"oriavgprice" xorm:"ORIAVGPRICE"` // [期初价]期初市场均价 = 套期市价总额 / 套期现货量
|
|
|
+ HEDGEAMOUNT float64 `json:"hedgeamount" xorm:"HEDGEAMOUNT"` // [套期现货金额]套期市价总额
|
|
|
+ EXEQTY float64 `json:"exeqty" xorm:"EXEQTY"` // [执行数量]执行现货量
|
|
|
+ EXEAVGPRICE float64 `json:"exeavgprice" xorm:"EXEAVGPRICE"` // [执行价]执行市场均价= 执行市价总额 / 执行现货量
|
|
|
+ EXEAMOUNT float64 `json:"exeamount" xorm:"EXEAMOUNT"` // [执行现货金额]执行市价总额
|
|
|
+ FUTUREHEDGEPL float64 `json:"futurehedgepl" xorm:"FUTUREHEDGEPL"` // 期货实际损益
|
|
|
+ FUTUREHEDGEPLCHANGE float64 `json:"futurehedgeplchange" xorm:"FUTUREHEDGEPLCHANGE"` // 期货实际变动 = 期货实际损益 - 期初期货实际损益
|
|
|
+ FUTUREPL float64 `json:"futurepl" xorm:"FUTUREPL"` // 期货套期损益
|
|
|
+ FUTUREPLCHANGE float64 `json:"futureplchange" xorm:"FUTUREPLCHANGE"` // 期货套期变动 = 期货套期损益 - 期初期货套期损益
|
|
|
+ SPOTHEDGEPL float64 `json:"spothedgepl" xorm:"SPOTHEDGEPL"` // 现货实际损益 =(执行市场均价-期初市场均价)*执行现货量 * 方向(销售计划 为 -1, 其它为1)
|
|
|
+ SPOTHEDGEPLCHANGE float64 `json:"spothedgeplchange" xorm:"SPOTHEDGEPLCHANGE"` // 现货实际变动 = 现货实际损益 - 期初现货实际损益
|
|
|
+ SPOTPL float64 `json:"spotpl" xorm:"SPOTPL"` // 现货套期损益 = 现货实际损益 + 现货浮动损益
|
|
|
+ SPOTPLCHANGE float64 `json:"spotplchange" xorm:"SPOTPLCHANGE"` // 现货套期变动 = 现货套期损益 - 期初现货套期损益
|
|
|
+ UNEXEQTY float64 `json:"unexeqty" xorm:"UNEXEQTY"` // 未执行现货量 = 套期现货量 - 执行现货量
|
|
|
+ CURPRICE float64 `json:"curprice" xorm:"CURPRICE"` // [当日现货市场价]当前市场价
|
|
|
+ PLANSTARTDATE time.Time `json:"planstartdate" xorm:"PLANSTARTDATE"` // 计划开始日期
|
|
|
+ PLANENDDATE time.Time `json:"planenddate" xorm:"PLANENDDATE"` // 计划结束日期
|
|
|
+ ORISPOTHEDGEPL float64 `json:"orispothedgepl" xorm:"ORISPOTHEDGEPL"` // 期初现货实际损益
|
|
|
+ ORIFUTUREHEDGEPL float64 `json:"orifuturehedgepl" xorm:"ORIFUTUREHEDGEPL"` // 期初期货实际损益
|
|
|
+ ORISPOTPL float64 `json:"orispotpl" xorm:"ORISPOTPL"` // 期初现货套期损益
|
|
|
+ ORIFUTUREPL float64 `json:"orifuturepl" xorm:"ORIFUTUREPL"` // 期初期货套期损益
|
|
|
+
|
|
|
+ EnumdicName string `json:"enumdicname" xorm:"'ENUMDICNAME'"` // 单位
|
|
|
+
|
|
|
+ USERID int64 `form:"userid" binding:"required"` // 用户ID
|
|
|
+ CYCLETYPE int32 `form:"cycletype" binding:"required"` // 周期类型 - 0:日 1:月 2:季 3:年 4:周 5:全报表【原值】
|
|
|
+ CYCLETIME string `form:"cycletime" binding:"required"` // 周期时间 日(YYYYMMDD) 月(YYYYMM) 季(YYYYQ) 年(YYYY) 周(YYYYMMDD周内任意一天) 全(0)【原值】
|
|
|
+}
|
|
|
+
|
|
|
+func (r *Ermcp8HedgeditemReport) calc() {
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+func (r *Ermcp8HedgeditemReport) buildSql() string {
|
|
|
+ if r.CYCLETYPE == 0 {
|
|
|
+ // 日
|
|
|
+ return r.buildReckonSql()
|
|
|
+ } else {
|
|
|
+ // 周、月
|
|
|
+ return r.buildReportSql()
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func (r *Ermcp8HedgeditemReport) buildReckonSql() string {
|
|
|
+ var sqlId utils.SQLVal = `
|
|
|
+ SELECT
|
|
|
+ t.HEDGEDTYPE,
|
|
|
+ t.TRADEUSERID,
|
|
|
+ t.AREAUSERID,
|
|
|
+ t.HEDGEDITEMSTATUS,
|
|
|
+ t.HEDGEDITEMNUM,
|
|
|
+ wr.WRSTANDARDID,
|
|
|
+ wr.WRSTANDARDCODE,
|
|
|
+ wr.WRSTANDARDNAME,
|
|
|
+ t.HEDGEQTY,
|
|
|
+ t.ORIAVGPRICE,
|
|
|
+ t.HEDGEAMOUNT,
|
|
|
+ t.EXEQTY,
|
|
|
+ t.EXEAVGPRICE,
|
|
|
+ t.EXEAMOUNT,
|
|
|
+ t.FUTUREHEDGEPL,
|
|
|
+ (t.FUTUREHEDGEPL - t.ORIFUTUREHEDGEPL) FUTUREHEDGEPLCHANGE,
|
|
|
+ t.FUTUREPL,
|
|
|
+ (t.FUTUREPL - t.ORIFUTUREPL) FUTUREPLCHANGE,
|
|
|
+ t.SPOTHEDGEPL,
|
|
|
+ (t.SPOTHEDGEPL - t.ORISPOTHEDGEPL) SPOTHEDGEPLCHANGE,
|
|
|
+ t.SPOTPL,
|
|
|
+ (t.SPOTPL - t.ORISPOTPL) SPOTPLCHANGE,
|
|
|
+ t.UNEXEQTY,
|
|
|
+ t.CURPRICE,
|
|
|
+ t.PLANSTARTDATE,
|
|
|
+ t.PLANENDDATE,
|
|
|
+ e.ENUMDICNAME
|
|
|
+ FROM Reckon_ERMCP2_HedgedItem t
|
|
|
+ LEFT JOIN WRStandard wr ON wr.WRStandardID = t.WRStandardID
|
|
|
+ LEFT JOIN WRStandard wr ON wr.wrstandardid = t.wrstandardid
|
|
|
+ LEFT JOIN enumdicitem e on wr.unitid=e.enumitemname and e.enumdiccode='goodsunit'
|
|
|
+ WHERE (t.TRADEUSERID = %v OR t.AREAUSERID = %v)
|
|
|
+ `
|
|
|
+ sqlId.FormatParam(r.USERID, r.USERID)
|
|
|
+ sqlId.And("t.RECKONDATE", r.CYCLETIME)
|
|
|
+ sqlId.AndEx("t.HEDGEDTYPE", r.HEDGEDTYPE, r.HEDGEDTYPE > 0)
|
|
|
+ sqlId.AndEx("t.HEDGEDITEMSTATUS", r.HEDGEDITEMSTATUS, r.HEDGEDITEMSTATUS > 0)
|
|
|
+ sqlId.AndLike("t.HEDGEDITEMNUM", r.HEDGEDITEMNUM)
|
|
|
+ sqlId.AndEx("t.WRSTANDARDID", r.WRSTANDARDID, r.WRSTANDARDID > 0)
|
|
|
+
|
|
|
+ return sqlId.String()
|
|
|
+}
|
|
|
+
|
|
|
+func (r *Ermcp8HedgeditemReport) buildReportSql() string {
|
|
|
+ var sqlId utils.SQLVal = `
|
|
|
+ SELECT
|
|
|
+ t.HEDGEDTYPE,
|
|
|
+ t.TRADEUSERID,
|
|
|
+ t.AREAUSERID,
|
|
|
+ t.HEDGEDITEMSTATUS,
|
|
|
+ t.HEDGEDITEMNUM,
|
|
|
+ wr.WRSTANDARDID,
|
|
|
+ wr.WRSTANDARDCODE,
|
|
|
+ wr.WRSTANDARDNAME,
|
|
|
+ t.HEDGEQTY,
|
|
|
+ t.ORIAVGPRICE,
|
|
|
+ t.HEDGEAMOUNT,
|
|
|
+ t.EXEQTY,
|
|
|
+ t.EXEAVGPRICE,
|
|
|
+ t.EXEAMOUNT,
|
|
|
+ t.FUTUREHEDGEPL,
|
|
|
+ (t.FUTUREHEDGEPL - t.ORIFUTUREHEDGEPL) FUTUREHEDGEPLCHANGE,
|
|
|
+ t.FUTUREPL,
|
|
|
+ (t.FUTUREPL - t.ORIFUTUREPL) FUTUREPLCHANGE,
|
|
|
+ t.SPOTHEDGEPL,
|
|
|
+ (t.SPOTHEDGEPL - t.ORISPOTHEDGEPL) SPOTHEDGEPLCHANGE,
|
|
|
+ t.SPOTPL,
|
|
|
+ (t.SPOTPL - t.ORISPOTPL) SPOTPLCHANGE,
|
|
|
+ t.UNEXEQTY,
|
|
|
+ t.CURPRICE,
|
|
|
+ t.PLANSTARTDATE,
|
|
|
+ t.PLANENDDATE,
|
|
|
+ e.ENUMDICNAME
|
|
|
+ FROM REPORT_ERMCP2_HEDGEDITEM t
|
|
|
+ LEFT JOIN WRStandard wr ON wr.WRStandardID = t.WRStandardID
|
|
|
+ LEFT JOIN WRStandard wr ON wr.wrstandardid = t.wrstandardid
|
|
|
+ LEFT JOIN enumdicitem e on wr.unitid=e.enumitemname and e.enumdiccode='goodsunit'
|
|
|
+ `
|
|
|
+ sqlId.And("t.RECKONDATE", r.CYCLETIME)
|
|
|
+ sqlId.And("t.TRADEUSERID", r.USERID)
|
|
|
+ sqlId.And("t.AREAUSERID", r.USERID)
|
|
|
+ sqlId.AndEx("t.HEDGEDTYPE", r.HEDGEDTYPE, r.HEDGEDTYPE > 0)
|
|
|
+ sqlId.AndEx("t.HEDGEDITEMSTATUS", r.HEDGEDITEMSTATUS, r.HEDGEDITEMSTATUS > 0)
|
|
|
+ sqlId.AndLike("t.HEDGEDITEMNUM", r.HEDGEDITEMNUM)
|
|
|
+ sqlId.AndEx("t.WRSTANDARDID", r.WRSTANDARDID, r.WRSTANDARDID > 0)
|
|
|
+
|
|
|
+ return sqlId.String()
|
|
|
+}
|
|
|
+
|
|
|
+// GetDataEx 从数据库中查询数据
|
|
|
+func (r *Ermcp8HedgeditemReport) GetDataEx() (interface{}, error) {
|
|
|
+ e := db.GetEngine()
|
|
|
+ s := e.SQL(r.buildSql())
|
|
|
+ sData := make([]InternalEnableTradeDetail, 0)
|
|
|
+ if err := s.Find(&sData); err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ for i := range sData {
|
|
|
+ sData[i].calc()
|
|
|
+ }
|
|
|
+ return sData, nil
|
|
|
+}
|