|
|
@@ -1475,6 +1475,8 @@ type WrPerformancePlan struct {
|
|
|
BUYORSELL int32 `json:"buyorsell" form:"buyorsell"` // 买卖方向 0-买 1-卖
|
|
|
STATUS string `json:"-" form:"status"` // 状态筛选
|
|
|
UNPAIDAMOUNT SFLOAT64 `json:"unpaidamount" xorm:"'UNPAIDAMOUNT'"` // 剩余款(待支付金额)
|
|
|
+ BEGINDATE string `json:"begindate" form:"begindate"` // 开始交易日(yyyymmdd)
|
|
|
+ ENDDATE string `json:"enddate" form:"enddate"` // 结束交易日(yyyymmdd)
|
|
|
}
|
|
|
|
|
|
func (r *WrPerformancePlan) calc() {
|
|
|
@@ -1585,12 +1587,130 @@ select to_char(t.PERFORMANCEPLANID) PERFORMANCEPLANID,
|
|
|
return sqlId.String()
|
|
|
}
|
|
|
|
|
|
+func (r *WrPerformancePlan) buildSqlHis() string {
|
|
|
+ var sqlId utils.SQLVal = `
|
|
|
+with tmp as
|
|
|
+ (select to_char(t.wrfactortypeid) wrfactortypeid,
|
|
|
+ t.wrfactortypename,
|
|
|
+ t.wrstandardid,
|
|
|
+ t.deliverygoodsid,
|
|
|
+ g.deliverygoodscode,
|
|
|
+ g.deliverygoodsname,
|
|
|
+ w.wrstandardcode,
|
|
|
+ w.wrstandardname,
|
|
|
+ h.warehousecode,
|
|
|
+ h.warehousename,
|
|
|
+ e.enumdicname,
|
|
|
+ w.wrstandardname || t.wrfactortypename2 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 to_char(t.PERFORMANCEPLANID) PERFORMANCEPLANID,
|
|
|
+ t.PERFORMANCETYPE,
|
|
|
+ to_char(t.RELATEDORDERID) RELATEDORDERID,
|
|
|
+ t.AMOUNT,
|
|
|
+ t.PAYMENTTYPE,
|
|
|
+ t.PERFORMANCESTATUS,
|
|
|
+ to_char(t.CURSTEPID) CURSTEPID,
|
|
|
+ t.BUYACCOUNTID,
|
|
|
+ t.WRTRANSFERUSERID,
|
|
|
+ t.BUYPAIDAMOUNT,
|
|
|
+ t.SELLACCOUNTID,
|
|
|
+ t.SELLRECEIVEDAMOUNT,
|
|
|
+ t.BUYTODAYAMOUNT,
|
|
|
+ t.SELLTODAYAMOUNT,
|
|
|
+ to_char(t.CREATETIME, 'yyyy-mm-dd hh24:mi:ss') CREATETIME,
|
|
|
+ t.CREATORID,
|
|
|
+ t.REMARK,
|
|
|
+ t.BUYERFREEZEAMOUNT,
|
|
|
+ t.BUYERFREEZEAMOUNTREMAIN,
|
|
|
+ t.SELLERFREEZEAMOUNT,
|
|
|
+ t.SELLERFREEZEAMOUNTREMAIN,
|
|
|
+ t.OVERSHORTAMOUNT,
|
|
|
+ t.HASOVERSHORT,
|
|
|
+ t.SHIPREMARK,
|
|
|
+ t.MIDDLEUSERID,
|
|
|
+ t.MIDDLEACCOUNTID,
|
|
|
+ t.HASWR,
|
|
|
+ t.BUYERINFO,
|
|
|
+ t.SELLERINFO,
|
|
|
+ t.OVERSHORTQTY,
|
|
|
+ t.MARKETID,
|
|
|
+ t.EXPRESSFEECONFIRMED,
|
|
|
+ t.EXPRESSFEE,
|
|
|
+ t.CONTRACTID,
|
|
|
+ to_char(t.CURSTEPDEADLINE, 'yyyy-mm-dd hh24:mi:ss') CURSTEPDEADLINE,
|
|
|
+ t.QTY,
|
|
|
+ t.activatemonth,
|
|
|
+ u1.accountname buyusername,
|
|
|
+ u2.accountname sellusername,
|
|
|
+ s.steptypename CURSTEPNAME,
|
|
|
+ s.steptypeid,
|
|
|
+ to_char(k.starttime, 'yyyy-mm-dd hh24:mi:ss') starttime,
|
|
|
+ tmp.*,
|
|
|
+ case when m.trademode=17 and t.haswr=1 then '仓单贸易'
|
|
|
+ when m.trademode=17 and t.haswr=0 then '仓单预售' else
|
|
|
+ m.marketname end as typename
|
|
|
+ from his_performanceplan t
|
|
|
+ left join taaccount a1
|
|
|
+ on t.buyaccountid = a1.accountid
|
|
|
+ left join useraccount u1
|
|
|
+ on a1.userid = u1.userid
|
|
|
+ left join taaccount a2
|
|
|
+ on t.sellaccountid = a2.accountid
|
|
|
+ left join useraccount u2
|
|
|
+ on a2.userid = u2.userid
|
|
|
+ left join his_performancestep k
|
|
|
+ on t.curstepid = k.performancestepid
|
|
|
+ left join performancesteptype s
|
|
|
+ on k.steptypeid = s.steptypeid
|
|
|
+ left join performanceplanwr f
|
|
|
+ on t.performanceplanid = f.performanceplanid
|
|
|
+ left join tmp
|
|
|
+ on f.wrfactortypeid = tmp.wrfactortypeid
|
|
|
+ left join market m on t.marketid=m.marketid
|
|
|
+ where 1 = 1 and t.isvaliddata=1 and k.isvaliddata=1
|
|
|
+`
|
|
|
+ if r.BUYORSELL == 0 {
|
|
|
+ sqlId.And("u1.userid", r.USERID)
|
|
|
+ } else {
|
|
|
+ sqlId.And("u2.userid", r.USERID)
|
|
|
+ }
|
|
|
+ sqlId.JoinEx(r.STATUS != "", fmt.Sprintf(" and t.PERFORMANCESTATUS in(%v)", r.STATUS))
|
|
|
+ // 格式 yyyymmdd
|
|
|
+ if len(r.BEGINDATE) > 0 {
|
|
|
+ sqlId.JoinFormat(" and t.HISTRADEDATE >= '%v'", r.BEGINDATE)
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(r.ENDDATE) > 0 {
|
|
|
+ sqlId.JoinFormat(" and t.HISTRADEDATE <= '%v'", r.ENDDATE)
|
|
|
+ }
|
|
|
+ sqlId.Join(" order by t.CREATETIME desc")
|
|
|
+ return sqlId.String()
|
|
|
+}
|
|
|
+
|
|
|
// GetDataEx 获取履约信息(履约计划)
|
|
|
func (r *WrPerformancePlan) GetDataEx() (interface{}, error) {
|
|
|
+ var sqlId string
|
|
|
+ // 如果指定了开始日期或结束日期, 刚查历史
|
|
|
+ if r.BEGINDATE != "" || r.ENDDATE != "" {
|
|
|
+ sqlId = r.buildSqlHis()
|
|
|
+ } else {
|
|
|
+ sqlId = r.buildSql()
|
|
|
+ }
|
|
|
sData := make([]WrPerformancePlan, 0)
|
|
|
- err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
|
|
|
+ err := db.GetEngine().SQL(sqlId).Find(&sData)
|
|
|
for i := range sData {
|
|
|
sData[i].calc()
|
|
|
+ sData[i].BEGINDATE = r.BEGINDATE
|
|
|
+ sData[i].ENDDATE = r.ENDDATE
|
|
|
}
|
|
|
return sData, err
|
|
|
}
|