فهرست منبع

查履约计划增加历史查询

zou.yingbin 4 سال پیش
والد
کامیت
537b5ab34c
5فایلهای تغییر یافته به همراه177 افزوده شده و 1 حذف شده
  1. 2 0
      controllers/wrTrade2/qryWrTrade.go
  2. 20 0
      docs/docs.go
  3. 20 0
      docs/swagger.json
  4. 14 0
      docs/swagger.yaml
  5. 121 1
      models/wrTrade2.go

+ 2 - 0
controllers/wrTrade2/qryWrTrade.go

@@ -205,6 +205,8 @@ func QueryWrGoodsInfo(c *gin.Context) {
 // @Param userid query int true "用户id"
 // @Param buyorsell query int true "买卖方向 0-买 1-卖"
 // @Param status query string false "履约状态(可多个,逗号隔开) 1:待激活 2:正常 3:处理错误 4:违约待处理 5:违约处理中 6:完成 7.违约已完成 8:释放冻结失败 9:超时待处理 10:超时关闭"
+// @Param begindate query string false "开始交易日(yyyymmdd)"
+// @Param enddate query string false "结束交易日(yyyymmdd)"
 // @Success 200 {array} models.WrPerformancePlan
 // @Failure 500 {object} app.Response
 // @Router /WrTrade2/QueryPerformancePlan [get]

+ 20 - 0
docs/docs.go

@@ -12563,6 +12563,18 @@ var doc = `{
                         "description": "履约状态(可多个,逗号隔开) 1:待激活 2:正常 3:处理错误 4:违约待处理 5:违约处理中 6:完成 7.违约已完成 8:释放冻结失败 9:超时待处理 10:超时关闭",
                         "name": "status",
                         "in": "query"
+                    },
+                    {
+                        "type": "string",
+                        "description": "开始交易日(yyyymmdd)",
+                        "name": "begindate",
+                        "in": "query"
+                    },
+                    {
+                        "type": "string",
+                        "description": "结束交易日(yyyymmdd)",
+                        "name": "enddate",
+                        "in": "query"
                     }
                 ],
                 "responses": {
@@ -35727,6 +35739,10 @@ var doc = `{
                     "description": "履约金额(总金额)",
                     "type": "number"
                 },
+                "begindate": {
+                    "description": "开始交易日(yyyymmdd)",
+                    "type": "string"
+                },
                 "buyaccountid": {
                     "description": "买方账号",
                     "type": "integer"
@@ -35787,6 +35803,10 @@ var doc = `{
                     "description": "品种名称",
                     "type": "string"
                 },
+                "enddate": {
+                    "description": "结束交易日(yyyymmdd)",
+                    "type": "string"
+                },
                 "enumdicname": {
                     "description": "单位名称",
                     "type": "string"

+ 20 - 0
docs/swagger.json

@@ -12547,6 +12547,18 @@
                         "description": "履约状态(可多个,逗号隔开) 1:待激活 2:正常 3:处理错误 4:违约待处理 5:违约处理中 6:完成 7.违约已完成 8:释放冻结失败 9:超时待处理 10:超时关闭",
                         "name": "status",
                         "in": "query"
+                    },
+                    {
+                        "type": "string",
+                        "description": "开始交易日(yyyymmdd)",
+                        "name": "begindate",
+                        "in": "query"
+                    },
+                    {
+                        "type": "string",
+                        "description": "结束交易日(yyyymmdd)",
+                        "name": "enddate",
+                        "in": "query"
                     }
                 ],
                 "responses": {
@@ -35711,6 +35723,10 @@
                     "description": "履约金额(总金额)",
                     "type": "number"
                 },
+                "begindate": {
+                    "description": "开始交易日(yyyymmdd)",
+                    "type": "string"
+                },
                 "buyaccountid": {
                     "description": "买方账号",
                     "type": "integer"
@@ -35771,6 +35787,10 @@
                     "description": "品种名称",
                     "type": "string"
                 },
+                "enddate": {
+                    "description": "结束交易日(yyyymmdd)",
+                    "type": "string"
+                },
                 "enumdicname": {
                     "description": "单位名称",
                     "type": "string"

+ 14 - 0
docs/swagger.yaml

@@ -15992,6 +15992,9 @@ definitions:
       amount:
         description: 履约金额(总金额)
         type: number
+      begindate:
+        description: 开始交易日(yyyymmdd)
+        type: string
       buyaccountid:
         description: 买方账号
         type: integer
@@ -16037,6 +16040,9 @@ definitions:
       deliverygoodsname:
         description: 品种名称
         type: string
+      enddate:
+        description: 结束交易日(yyyymmdd)
+        type: string
       enumdicname:
         description: 单位名称
         type: string
@@ -27102,6 +27108,14 @@ paths:
         in: query
         name: status
         type: string
+      - description: 开始交易日(yyyymmdd)
+        in: query
+        name: begindate
+        type: string
+      - description: 结束交易日(yyyymmdd)
+        in: query
+        name: enddate
+        type: string
       produces:
       - application/json
       responses:

+ 121 - 1
models/wrTrade2.go

@@ -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
 }