|
|
@@ -10,6 +10,7 @@ import (
|
|
|
"fmt"
|
|
|
"mtp2_if/db"
|
|
|
"mtp2_if/utils"
|
|
|
+ "strings"
|
|
|
)
|
|
|
|
|
|
// WrOrderQuote 买卖大厅行情
|
|
|
@@ -44,7 +45,7 @@ type WrOrderQuote struct {
|
|
|
}
|
|
|
|
|
|
func (r *WrOrderQuote) calc() {
|
|
|
-
|
|
|
+ r.WRGOODSNAME = strings.ReplaceAll(r.WRGOODSNAME, ",", "-")
|
|
|
}
|
|
|
|
|
|
// buildSqlFixedPrice 一口价
|
|
|
@@ -341,6 +342,7 @@ type Wr2FactorType struct {
|
|
|
|
|
|
func (r *Wr2FactorType) Calc() {
|
|
|
r.WRTYPENAME = r.WRSTANDARDNAME + "-" + r.WRFACTORTYPENAME
|
|
|
+ r.WRTYPENAME = strings.ReplaceAll(r.WRTYPENAME, ",", "-")
|
|
|
}
|
|
|
|
|
|
// WrPosition 仓单贸易持仓汇总
|
|
|
@@ -1102,3 +1104,83 @@ func (r *WrPerformancePlan) GetDataEx() (interface{}, error) {
|
|
|
}
|
|
|
return sData, err
|
|
|
}
|
|
|
+
|
|
|
+// WrHoldLB 仓单持有记录
|
|
|
+type WrHoldLB struct {
|
|
|
+ LADINGBILLID int64 `json:"ladingbillid" xorm:"LADINGBILLID" form:"ladingbillid"` // 提单ID(208+Unix秒时间戳(10位)+xxxxxx)
|
|
|
+ SUBNUM int32 `json:"subnum" xorm:"SUBNUM" form:"subnum"` // 提单子单号
|
|
|
+ WRFACTORTYPEID int64 `json:"wrfactortypeid" xorm:"WRFACTORTYPEID" form:"wrfactortypeid"` // 仓单要素类型ID
|
|
|
+ DELIVERYGOODSID int32 `json:"deliverygoodsid" xorm:"DELIVERYGOODSID" form:"deliverygoodsid"` // 品种ID
|
|
|
+ QTY float64 `json:"qty" xorm:"QTY" form:"qty"` // 数量
|
|
|
+ FREEZERQTY float64 `json:"freezerqty" xorm:"FREEZERQTY" form:"freezerqty"` // 冻结数量
|
|
|
+ USERID int64 `json:"userid" xorm:"USERID" form:"userid"` // 持有人ID
|
|
|
+ ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID" form:"accountid"` // 持有人帐户ID
|
|
|
+ CREATETIME string `json:"createtime" xorm:"CREATETIME" form:"createtime"` // 创建时间(过户时间)
|
|
|
+ TRADEDATE string `json:"tradedate" xorm:"TRADEDATE" form:"tradedate"` // 交易日(yyyyMMdd)
|
|
|
+ WRID int64 `json:"wrid" xorm:"WRID" form:"wrid"` // 仓单变更ID
|
|
|
+ PARENTSUBNUM int32 `json:"parentsubnum" xorm:"PARENTSUBNUM" form:"parentsubnum"` // 拆分父子单号
|
|
|
+ Wr2FactorType `xorm:"extends"`
|
|
|
+
|
|
|
+ WRHOLDENO string `json:"wrholdeno"` // 仓单编号
|
|
|
+ ENABLEQTY float64 `json:"enableqty"` // 可用数量
|
|
|
+}
|
|
|
+
|
|
|
+func (r *WrHoldLB) calc() {
|
|
|
+ r.WRHOLDENO = fmt.Sprintf("%v_%v", r.LADINGBILLID, r.SUBNUM)
|
|
|
+ r.ENABLEQTY = r.QTY - r.FREEZERQTY
|
|
|
+}
|
|
|
+
|
|
|
+func (r *WrHoldLB) buildSql() string {
|
|
|
+ var sqlId utils.SQLVal = "with tmp as" +
|
|
|
+ " (select t.wrfactortypeid," +
|
|
|
+ " t.wrfactortypename," +
|
|
|
+ " t.wrstandardid," +
|
|
|
+ " t.deliverygoodsid," +
|
|
|
+ " g.deliverygoodscode," +
|
|
|
+ " g.deliverygoodsname," +
|
|
|
+ " w.wrstandardcode," +
|
|
|
+ " w.wrstandardname," +
|
|
|
+ " h.warehousecode," +
|
|
|
+ " h.warehousename," +
|
|
|
+ " e.enumdicname," +
|
|
|
+ " w.wrstandardname || '-' || t.wrfactortypename as wrtypename" +
|
|
|
+ " from wrfactortype t" +
|
|
|
+ " left join deliverygoods g" +
|
|
|
+ " on t.deliverygoodsid = g.deliverygoodsid" +
|
|
|
+ " left join wrstandard w" +
|
|
|
+ " on t.wrstandardid = w.wrstandardid" +
|
|
|
+ " left join warehouseinfo h" +
|
|
|
+ " on t.warehouseid = h.autoid" +
|
|
|
+ " left join enumdicitem e" +
|
|
|
+ " on w.unitid = e.enumitemname" +
|
|
|
+ " and e.enumdiccode = 'goodsunit'" +
|
|
|
+ ")" +
|
|
|
+ "SELECT t.LADINGBILLID," +
|
|
|
+ " t.SUBNUM," +
|
|
|
+ " t.WRFACTORTYPEID," +
|
|
|
+ " t.DELIVERYGOODSID," +
|
|
|
+ " t.QTY," +
|
|
|
+ " t.FREEZERQTY," +
|
|
|
+ " t.USERID," +
|
|
|
+ " t.ACCOUNTID," +
|
|
|
+ " to_char(t.CREATETIME, 'yyyy-mm-dd hh24:mi:ss') CREATETIME," +
|
|
|
+ " t.TRADEDATE," +
|
|
|
+ " t.WRID," +
|
|
|
+ " t.PARENTSUBNUM," +
|
|
|
+ " tmp.*" +
|
|
|
+ " FROM WRHOLDLB t" +
|
|
|
+ " LEFT JOIN tmp on t.wrfactortypeid= tmp.wrfactortypeid" +
|
|
|
+ " WHERE 1 = 1"
|
|
|
+ sqlId.And("t.ACCOUNTID", r.ACCOUNTID)
|
|
|
+ return sqlId.String()
|
|
|
+}
|
|
|
+
|
|
|
+// GetDataEx 获取仓单持有记录
|
|
|
+func (r *WrHoldLB) GetDataEx() (interface{}, error) {
|
|
|
+ sData := make([]WrHoldLB, 0)
|
|
|
+ err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
|
|
|
+ for i := range sData {
|
|
|
+ sData[i].calc()
|
|
|
+ }
|
|
|
+ return sData, err
|
|
|
+}
|