Jelajahi Sumber

增加“现货合同关联被套期项目查询”接口

zhou.xiaoning 3 tahun lalu
induk
melakukan
2dd449b9dc
5 mengubah file dengan 460 tambahan dan 0 penghapusan
  1. 16 0
      controllers/ermcp8/qryErmcp8.go
  2. 138 0
      docs/docs.go
  3. 138 0
      docs/swagger.json
  4. 97 0
      docs/swagger.yaml
  5. 71 0
      models/ermcp8.go

+ 16 - 0
controllers/ermcp8/qryErmcp8.go

@@ -323,3 +323,19 @@ func QueryUnLinkErmcpHedgePlan(c *gin.Context) {
 	a.DoBindReq(&m)
 	a.DoGetDataI(&m)
 }
+
+// QueryErmcp2HedgedItemLink
+// @Summary 现货合同关联被套期项目查询
+// @Produce json
+// @Security ApiKeyAuth
+// @Param spotcontractid query int true "现货合同ID"
+// @Success 200 {array} models.Ermcp2hedgeditemlink
+// @Failure 500 {object} app.Response
+// @Router /Ermcp8/QueryErmcp2HedgedItemLink [get]
+// @Tags 企业风险管理v8
+func QueryErmcp2HedgedItemLink(c *gin.Context) {
+	a := app.GinUtils{Gin: app.Gin{C: c}}
+	m := models.Ermcp2hedgeditemlink{}
+	a.DoBindReq(&m)
+	a.DoGetDataI(&m)
+}

+ 138 - 0
docs/docs.go

@@ -5850,6 +5850,48 @@ var doc = `{
                 }
             }
         },
+        "/Ermcp8/QueryErmcp2HedgedItemLink": {
+            "get": {
+                "security": [
+                    {
+                        "ApiKeyAuth": []
+                    }
+                ],
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "企业风险管理v8"
+                ],
+                "summary": "现货合同关联被套期项目查询",
+                "parameters": [
+                    {
+                        "type": "integer",
+                        "description": "现货合同ID",
+                        "name": "spotcontractid",
+                        "in": "query",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "type": "array",
+                            "items": {
+                                "$ref": "#/definitions/models.Ermcp2hedgeditemlink"
+                            }
+                        }
+                    },
+                    "500": {
+                        "description": "Internal Server Error",
+                        "schema": {
+                            "$ref": "#/definitions/app.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/Ermcp8/QueryErmcp2HedgedItemsDetail": {
             "get": {
                 "security": [
@@ -21409,6 +21451,102 @@ var doc = `{
                 }
             }
         },
+        "models.Ermcp2hedgeditemlink": {
+            "type": "object",
+            "required": [
+                "relatedspotcontractid"
+            ],
+            "properties": {
+                "areauserid": {
+                    "description": "企业ID",
+                    "type": "integer"
+                },
+                "createtime": {
+                    "description": "[关联时间]创建时间",
+                    "type": "string"
+                },
+                "customeruserid": {
+                    "description": "对手方 【3:采购合同 4:销售合同】",
+                    "type": "integer"
+                },
+                "deliverygoodsid": {
+                    "description": "现货品种ID",
+                    "type": "integer"
+                },
+                "enumdicname": {
+                    "description": "单位",
+                    "type": "string"
+                },
+                "hedgeditemid": {
+                    "description": "被套期项目ID",
+                    "type": "integer"
+                },
+                "hedgeditemlinkid": {
+                    "description": "现货关联表ID(626+Unix秒时间戳(10位)+xxxxxx)",
+                    "type": "integer"
+                },
+                "hedgeditemnum": {
+                    "description": "项目编号",
+                    "type": "string"
+                },
+                "hedgedtype": {
+                    "description": "套期类型 - 1:采购计划项目 2:销售计划项目 3:现货贸易项目 4:库存存货项目 5:定价采购合同项目",
+                    "type": "integer"
+                },
+                "relatedamount": {
+                    "description": "市价总额 = 关联数量 * 期初市场价",
+                    "type": "number"
+                },
+                "relatedhedgeplanid": {
+                    "description": "关联计划ID 【1:采购计划 2:销售计划】",
+                    "type": "integer"
+                },
+                "relatedqty": {
+                    "description": "关联数量",
+                    "type": "number"
+                },
+                "relatedspotcontractid": {
+                    "description": "关联合同ID 【3:采购合同 4:销售合同】",
+                    "type": "integer"
+                },
+                "relatedtype": {
+                    "description": "关联类型 - 1:套期关联 2:执行关联",
+                    "type": "integer"
+                },
+                "spotgoodsbrandid": {
+                    "description": "现货品牌ID",
+                    "type": "integer"
+                },
+                "spotpricedamount": {
+                    "description": "[关联定价总额]定价总额",
+                    "type": "number"
+                },
+                "spotpricedavgprice": {
+                    "description": "[关联现货均价]现货均价 = 定价总额 / 关联数量",
+                    "type": "number"
+                },
+                "spottype": {
+                    "description": "现货类型 - 1:采购计划 2:销售计划 3:采购合同 4:销售合同 5:库存存货",
+                    "type": "integer"
+                },
+                "tradeuserid": {
+                    "description": "交易用户ID",
+                    "type": "integer"
+                },
+                "unexeqty": {
+                    "description": "未执行现货量【项目关联时值】",
+                    "type": "number"
+                },
+                "wrstandardid": {
+                    "description": "现货商品ID",
+                    "type": "integer"
+                },
+                "wrstandardname": {
+                    "description": "现货商品",
+                    "type": "string"
+                }
+            }
+        },
         "models.Ermcp2hedgeditemsDetail": {
             "type": "object",
             "properties": {

+ 138 - 0
docs/swagger.json

@@ -5834,6 +5834,48 @@
                 }
             }
         },
+        "/Ermcp8/QueryErmcp2HedgedItemLink": {
+            "get": {
+                "security": [
+                    {
+                        "ApiKeyAuth": []
+                    }
+                ],
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "企业风险管理v8"
+                ],
+                "summary": "现货合同关联被套期项目查询",
+                "parameters": [
+                    {
+                        "type": "integer",
+                        "description": "现货合同ID",
+                        "name": "spotcontractid",
+                        "in": "query",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "type": "array",
+                            "items": {
+                                "$ref": "#/definitions/models.Ermcp2hedgeditemlink"
+                            }
+                        }
+                    },
+                    "500": {
+                        "description": "Internal Server Error",
+                        "schema": {
+                            "$ref": "#/definitions/app.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/Ermcp8/QueryErmcp2HedgedItemsDetail": {
             "get": {
                 "security": [
@@ -21393,6 +21435,102 @@
                 }
             }
         },
+        "models.Ermcp2hedgeditemlink": {
+            "type": "object",
+            "required": [
+                "relatedspotcontractid"
+            ],
+            "properties": {
+                "areauserid": {
+                    "description": "企业ID",
+                    "type": "integer"
+                },
+                "createtime": {
+                    "description": "[关联时间]创建时间",
+                    "type": "string"
+                },
+                "customeruserid": {
+                    "description": "对手方 【3:采购合同 4:销售合同】",
+                    "type": "integer"
+                },
+                "deliverygoodsid": {
+                    "description": "现货品种ID",
+                    "type": "integer"
+                },
+                "enumdicname": {
+                    "description": "单位",
+                    "type": "string"
+                },
+                "hedgeditemid": {
+                    "description": "被套期项目ID",
+                    "type": "integer"
+                },
+                "hedgeditemlinkid": {
+                    "description": "现货关联表ID(626+Unix秒时间戳(10位)+xxxxxx)",
+                    "type": "integer"
+                },
+                "hedgeditemnum": {
+                    "description": "项目编号",
+                    "type": "string"
+                },
+                "hedgedtype": {
+                    "description": "套期类型 - 1:采购计划项目 2:销售计划项目 3:现货贸易项目 4:库存存货项目 5:定价采购合同项目",
+                    "type": "integer"
+                },
+                "relatedamount": {
+                    "description": "市价总额 = 关联数量 * 期初市场价",
+                    "type": "number"
+                },
+                "relatedhedgeplanid": {
+                    "description": "关联计划ID 【1:采购计划 2:销售计划】",
+                    "type": "integer"
+                },
+                "relatedqty": {
+                    "description": "关联数量",
+                    "type": "number"
+                },
+                "relatedspotcontractid": {
+                    "description": "关联合同ID 【3:采购合同 4:销售合同】",
+                    "type": "integer"
+                },
+                "relatedtype": {
+                    "description": "关联类型 - 1:套期关联 2:执行关联",
+                    "type": "integer"
+                },
+                "spotgoodsbrandid": {
+                    "description": "现货品牌ID",
+                    "type": "integer"
+                },
+                "spotpricedamount": {
+                    "description": "[关联定价总额]定价总额",
+                    "type": "number"
+                },
+                "spotpricedavgprice": {
+                    "description": "[关联现货均价]现货均价 = 定价总额 / 关联数量",
+                    "type": "number"
+                },
+                "spottype": {
+                    "description": "现货类型 - 1:采购计划 2:销售计划 3:采购合同 4:销售合同 5:库存存货",
+                    "type": "integer"
+                },
+                "tradeuserid": {
+                    "description": "交易用户ID",
+                    "type": "integer"
+                },
+                "unexeqty": {
+                    "description": "未执行现货量【项目关联时值】",
+                    "type": "number"
+                },
+                "wrstandardid": {
+                    "description": "现货商品ID",
+                    "type": "integer"
+                },
+                "wrstandardname": {
+                    "description": "现货商品",
+                    "type": "string"
+                }
+            }
+        },
         "models.Ermcp2hedgeditemsDetail": {
             "type": "object",
             "properties": {

+ 97 - 0
docs/swagger.yaml

@@ -4253,6 +4253,77 @@ definitions:
         description: 商品名称
         type: string
     type: object
+  models.Ermcp2hedgeditemlink:
+    properties:
+      areauserid:
+        description: 企业ID
+        type: integer
+      createtime:
+        description: '[关联时间]创建时间'
+        type: string
+      customeruserid:
+        description: 对手方 【3:采购合同 4:销售合同】
+        type: integer
+      deliverygoodsid:
+        description: 现货品种ID
+        type: integer
+      enumdicname:
+        description: 单位
+        type: string
+      hedgeditemid:
+        description: 被套期项目ID
+        type: integer
+      hedgeditemlinkid:
+        description: 现货关联表ID(626+Unix秒时间戳(10位)+xxxxxx)
+        type: integer
+      hedgeditemnum:
+        description: 项目编号
+        type: string
+      hedgedtype:
+        description: 套期类型 - 1:采购计划项目 2:销售计划项目 3:现货贸易项目 4:库存存货项目 5:定价采购合同项目
+        type: integer
+      relatedamount:
+        description: 市价总额 = 关联数量 * 期初市场价
+        type: number
+      relatedhedgeplanid:
+        description: 关联计划ID 【1:采购计划 2:销售计划】
+        type: integer
+      relatedqty:
+        description: 关联数量
+        type: number
+      relatedspotcontractid:
+        description: 关联合同ID 【3:采购合同 4:销售合同】
+        type: integer
+      relatedtype:
+        description: 关联类型 - 1:套期关联 2:执行关联
+        type: integer
+      spotgoodsbrandid:
+        description: 现货品牌ID
+        type: integer
+      spotpricedamount:
+        description: '[关联定价总额]定价总额'
+        type: number
+      spotpricedavgprice:
+        description: '[关联现货均价]现货均价 = 定价总额 / 关联数量'
+        type: number
+      spottype:
+        description: 现货类型 - 1:采购计划 2:销售计划 3:采购合同 4:销售合同 5:库存存货
+        type: integer
+      tradeuserid:
+        description: 交易用户ID
+        type: integer
+      unexeqty:
+        description: 未执行现货量【项目关联时值】
+        type: number
+      wrstandardid:
+        description: 现货商品ID
+        type: integer
+      wrstandardname:
+        description: 现货商品
+        type: string
+    required:
+    - relatedspotcontractid
+    type: object
   models.Ermcp2hedgeditemsDetail:
     properties:
       accountname:
@@ -25426,6 +25497,32 @@ paths:
       summary: 查询被套期项目信息
       tags:
       - 企业风险管理v8
+  /Ermcp8/QueryErmcp2HedgedItemLink:
+    get:
+      parameters:
+      - description: 现货合同ID
+        in: query
+        name: spotcontractid
+        required: true
+        type: integer
+      produces:
+      - application/json
+      responses:
+        "200":
+          description: OK
+          schema:
+            items:
+              $ref: '#/definitions/models.Ermcp2hedgeditemlink'
+            type: array
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/app.Response'
+      security:
+      - ApiKeyAuth: []
+      summary: 现货合同关联被套期项目查询
+      tags:
+      - 企业风险管理v8
   /Ermcp8/QueryErmcp2HedgedItemsDetail:
     get:
       parameters:

+ 71 - 0
models/ermcp8.go

@@ -2020,3 +2020,74 @@ func (r *Unlinkermcphedgeplan) GetDataEx() (interface{}, error) {
 	}
 	return sData, nil
 }
+
+// Ermcp2hedgeditemlink 项目现货关联表
+type Ermcp2hedgeditemlink struct {
+	HEDGEDITEMLINKID      int64   `json:"hedgeditemlinkid"  xorm:"HEDGEDITEMLINKID"`                                                    // 现货关联表ID(626+Unix秒时间戳(10位)+xxxxxx)
+	HEDGEDITEMID          int64   `json:"hedgeditemid"  xorm:"HEDGEDITEMID"`                                                            // 被套期项目ID
+	HEDGEDTYPE            int32   `json:"hedgedtype"  xorm:"HEDGEDTYPE"`                                                                // 套期类型 - 1:采购计划项目 2:销售计划项目 3:现货贸易项目 4:库存存货项目 5:定价采购合同项目
+	SPOTTYPE              int32   `json:"spottype"  xorm:"SPOTTYPE"`                                                                    // 现货类型 - 1:采购计划 2:销售计划 3:采购合同 4:销售合同 5:库存存货
+	RELATEDTYPE           int32   `json:"relatedtype"  xorm:"RELATEDTYPE"`                                                              // 关联类型 - 1:套期关联 2:执行关联
+	RELATEDHEDGEPLANID    int64   `json:"relatedhedgeplanid"  xorm:"RELATEDHEDGEPLANID"`                                                // 关联计划ID 【1:采购计划 2:销售计划】
+	RELATEDSPOTCONTRACTID int64   `json:"relatedspotcontractid"  xorm:"RELATEDSPOTCONTRACTID" form:"spotcontractid" binding:"required"` // 关联合同ID 【3:采购合同 4:销售合同】
+	CUSTOMERUSERID        int64   `json:"customeruserid"  xorm:"CUSTOMERUSERID"`                                                        // 对手方 【3:采购合同 4:销售合同】
+	DELIVERYGOODSID       int64   `json:"deliverygoodsid"  xorm:"DELIVERYGOODSID"`                                                      // 现货品种ID
+	WRSTANDARDID          int64   `json:"wrstandardid"  xorm:"WRSTANDARDID"`                                                            // 现货商品ID
+	SPOTGOODSBRANDID      int32   `json:"spotgoodsbrandid"  xorm:"SPOTGOODSBRANDID"`                                                    // 现货品牌ID
+	TRADEUSERID           int64   `json:"tradeuserid"  xorm:"TRADEUSERID"`                                                              // 交易用户ID
+	AREAUSERID            int64   `json:"areauserid"  xorm:"AREAUSERID"`                                                                // 企业ID
+	RELATEDQTY            float64 `json:"relatedqty"  xorm:"RELATEDQTY"`                                                                // 关联数量
+	RELATEDAMOUNT         float64 `json:"relatedamount"  xorm:"RELATEDAMOUNT"`                                                          // 市价总额 = 关联数量 * 期初市场价
+	SPOTPRICEDAMOUNT      float64 `json:"spotpricedamount"  xorm:"SPOTPRICEDAMOUNT"`                                                    // [关联定价总额]定价总额
+	SPOTPRICEDAVGPRICE    float64 `json:"spotpricedavgprice"  xorm:"SPOTPRICEDAVGPRICE"`                                                // [关联现货均价]现货均价 = 定价总额 / 关联数量
+	UNEXEQTY              float64 `json:"unexeqty"  xorm:"UNEXEQTY"`                                                                    // 未执行现货量【项目关联时值】
+	CREATETIME            string  `json:"createtime"  xorm:"CREATETIME"`                                                                // [关联时间]创建时间
+
+	HEDGEDITEMNUM  string `json:"hedgeditemnum"  xorm:"HEDGEDITEMNUM"`  // 项目编号
+	Wrstandardname string `json:"wrstandardname" xorm:"WRSTANDARDNAME"` // 现货商品
+	EnumdicName    string `json:"enumdicname"  xorm:"ENUMDICNAME"`      // 单位
+}
+
+// TableName is ERMCP2_HEDGEDITEMLINK
+func (r *Ermcp2hedgeditemlink) TableName() string {
+	return "ERMCP2_HEDGEDITEMLINK"
+}
+
+func (r *Ermcp2hedgeditemlink) calc() {
+
+}
+
+func (r *Ermcp2hedgeditemlink) buildSql() string {
+	var sqlId utils.SQLVal = `
+	SELECT
+		to_char(t.CREATETIME, 'yyyy-mm-dd hh24:mi:ss') CREATETIME,
+		h.HEDGEDITEMNUM,
+		wr.WRSTANDARDNAME,
+		e.ENUMDICNAME,
+		t.RELATEDQTY,
+		t.SPOTPRICEDAMOUNT,
+		t.SPOTPRICEDAVGPRICE
+	FROM ERMCP2_HEDGEDITEMLINK t
+	LEFT JOIN ERMCP2_HedgedItem h ON h.HEDGEDITEMID = t.HEDGEDITEMID
+	LEFT JOIN WRStandard wr ON wr.wrstandardid = t.wrstandardid
+	LEFT JOIN enumdicitem e on wr.unitid=e.enumitemname and e.enumdiccode='goodsunit'
+	WHERE t.RELATEDSPOTCONTRACTID = %v
+	`
+	sqlId.FormatParam(r.RELATEDSPOTCONTRACTID)
+
+	return sqlId.String()
+}
+
+// GetDataEx 从数据库中查询数据
+func (r *Ermcp2hedgeditemlink) GetDataEx() (interface{}, error) {
+	e := db.GetEngine()
+	s := e.SQL(r.buildSql())
+	sData := make([]Ermcp2hedgeditemlink, 0)
+	if err := s.Find(&sData); err != nil {
+		return nil, err
+	}
+	for i := range sData {
+		sData[i].calc()
+	}
+	return sData, nil
+}