qryOPApply.go 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. /**
  2. * @Author: zou.yingbin
  3. * @Create : 2021/1/11 17:58
  4. * @Modify : 2021/1/11 17:58
  5. */
  6. package ermcp
  7. import (
  8. "encoding/json"
  9. "github.com/gin-gonic/gin"
  10. "mtp2_if/global/app"
  11. "mtp2_if/global/e"
  12. "mtp2_if/models"
  13. "net/http"
  14. )
  15. //点价数据
  16. type DjData struct {
  17. PricedPrice *float64 `json:"pricedPrice,omitempty"` //点价价格(非必填)
  18. PricedQty *float64 `json:"pricedQty,omitempty"` //点价数量(非必填)
  19. Amount *float64 `json:"amount,omitempty"` //点价金额=(点价价格+升贴水)*点价数量
  20. }
  21. //计算点价金额
  22. func (r *DjData) calc(priceMove float64) {
  23. if r.PricedPrice != nil && r.PricedQty != nil{
  24. r.Amount = new(float64)
  25. *r.Amount = (*r.PricedPrice + priceMove) * (*r.PricedQty)
  26. }
  27. }
  28. //结点登记数据
  29. type ReckonData struct {
  30. ReckonRealQty *float64 `json:"reckonrealqty,omitempty"` //结算实际数量(非必填)
  31. ReckonOsAmount *float64 `json:"reckonosamount,omitempty"` //结算溢短金额(非必填)
  32. ReckonOtherAmount *float64 `json:"reckonotheramount,omitempty"` //结算其他费用(非必填)
  33. ReckonAdjustAmount *float64 `json:"reckonadjustamount,omitempty"` //结算调整金额(非必填)
  34. AddMargin *float64 `json:"addmargin,omitempty"` //追加保证金(非必填)
  35. DecMargin *float64 `json:"decmargin,omitempty"` //减少保证金(非必填)
  36. }
  37. //款项操作
  38. type KxData struct {
  39. PayAmount *float64 `json:"payamount,omitempty"` //收付款(非必填)
  40. DeductAmount *float64 `json:"deductamount,omitempty"` //退款(非必填)
  41. }
  42. //开票操作数据
  43. type KpData struct {
  44. InvoiceAmount *float64 //已开收票金额(销售为开票,采购为收票)
  45. }
  46. // 查询合同操作请求
  47. type QryOPApplyReq struct {
  48. UserId int64 `form:"UserId" binding:"required"` //用户ID
  49. RelatedId string `form:"relatedid" binding:"required"` //现货合同ID, 不填则查所有
  50. }
  51. // 查询业务管理/点价应答
  52. type QryBusinessDjRsp struct {
  53. models.ErmcpOPApplyModel
  54. DjData
  55. }
  56. // QueryBusinessDj 企业风险管理合同操作查询
  57. // @Summary 查询业务管理(点价)(对应菜单:业务管理/点价)
  58. // @Produce json
  59. // @Security ApiKeyAuth
  60. // @Param UserId query int true "用户ID"
  61. // @Param relatedid query string false "现货合同ID, 不填则查所有"
  62. // @Success 200 {array} QryBusinessDjRsp
  63. // @Failure 500 {object} app.Response
  64. // @Router /Ermcp/QueryBusinessDj [get]
  65. // @Tags 企业风险管理(app)
  66. func QueryBusinessDj(c *gin.Context) {
  67. appG := app.Gin{C: c}
  68. var req QryOPApplyReq
  69. _=c.ShouldBind(&req)
  70. m := models.ErmcpOPApplyModel{RELATEDID: req.RelatedId, USERID: req.UserId}
  71. if d, err := m.GetData(1); err == nil {
  72. //构建应答数据
  73. sData := make([]QryBusinessDjRsp, 0)
  74. for _, v := range d {
  75. var rsp QryBusinessDjRsp
  76. rsp.ErmcpOPApplyModel = v
  77. if len(rsp.DETAILJSON) > 0{
  78. if err := json.Unmarshal([]byte(rsp.DETAILJSON), &rsp.DjData); err == nil{
  79. rsp.DjData.calc(rsp.PRICEMOVE)
  80. }
  81. sData = append(sData, rsp)
  82. }
  83. }
  84. appG.Response(http.StatusOK, e.SUCCESS, sData)
  85. } else {
  86. appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
  87. }
  88. }
  89. // 查询业务管理/结算响应
  90. type QryBussinessJsRsp struct {
  91. models.ErmcpOPApplyModel
  92. ReckonData
  93. }
  94. // QueryBusinessJs 企业风险管理合同操作查询
  95. // @Summary 查询业务管理(结算)(对应菜单:业务管理/结算)
  96. // @Produce json
  97. // @Security ApiKeyAuth
  98. // @Param UserId query int true "用户ID"
  99. // @Param relatedid query string false "现货合同ID, 不填则查所有"
  100. // @Success 200 {array} QryBussinessJsRsp
  101. // @Failure 500 {object} app.Response
  102. // @Router /Ermcp/QueryBusinessJs [get]
  103. // @Tags 企业风险管理(app)
  104. func QueryBusinessJs(c *gin.Context) {
  105. appG := app.Gin{C: c}
  106. var req QryOPApplyReq
  107. _=c.ShouldBind(&req)
  108. m := models.ErmcpOPApplyModel{RELATEDID: req.RelatedId, USERID: req.UserId}
  109. if d, err := m.GetData(2); err == nil {
  110. //构建应答数据
  111. sData := make([]QryBussinessJsRsp, 0)
  112. for _, v := range d {
  113. var rsp QryBussinessJsRsp
  114. rsp.ErmcpOPApplyModel = v
  115. if len(rsp.DETAILJSON) > 0 {
  116. _ = json.Unmarshal([]byte(rsp.DETAILJSON), &rsp.ReckonData)
  117. }
  118. sData = append(sData, rsp)
  119. }
  120. appG.Response(http.StatusOK, e.SUCCESS, sData)
  121. } else {
  122. appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
  123. }
  124. }
  125. // 查询业务管理/款项响应
  126. type QryBussinessKxRsp struct {
  127. models.ErmcpOPApplyModel
  128. KxData
  129. }
  130. // QueryBusinessKx 企业风险管理合同操作查询
  131. // @Summary 查询财务管理(款项)(对应菜单:财务管理/款项)
  132. // @Produce json
  133. // @Security ApiKeyAuth
  134. // @Param UserId query int true "用户ID"
  135. // @Param relatedid query string false "现货合同ID, 不填则查所有"
  136. // @Success 200 {array} QryBussinessKxRsp
  137. // @Failure 500 {object} app.Response
  138. // @Router /Ermcp/QueryBusinessKx [get]
  139. // @Tags 企业风险管理(app)
  140. func QueryBusinessKx(c *gin.Context) {
  141. appG := app.Gin{C: c}
  142. var req QryOPApplyReq
  143. _=c.ShouldBind(&req)
  144. m := models.ErmcpOPApplyModel{RELATEDID: req.RelatedId, USERID: req.UserId}
  145. if d, err := m.GetData(3); err == nil {
  146. //构建应答数据
  147. sData := make([]QryBussinessKxRsp, 0)
  148. for _, v := range d {
  149. var rsp QryBussinessKxRsp
  150. rsp.ErmcpOPApplyModel = v
  151. if len(rsp.DETAILJSON) > 0 {
  152. _ = json.Unmarshal([]byte(rsp.DETAILJSON), &rsp.KxData)
  153. }
  154. sData = append(sData, rsp)
  155. }
  156. appG.Response(http.StatusOK, e.SUCCESS, sData)
  157. } else {
  158. appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
  159. }
  160. }
  161. // 查询业务管理/款项响应
  162. type QryBussinessFpRsp struct {
  163. models.ErmcpOPApplyModel
  164. KpData
  165. }
  166. // QueryBusinessFp 企业风险管理合同操作查询
  167. // @Summary 查询财务管理(发票)(对应菜单:财务管理/发票)
  168. // @Produce json
  169. // @Security ApiKeyAuth
  170. // @Param UserId query int true "用户ID"
  171. // @Param relatedid query string false "现货合同ID, 不填则查所有"
  172. // @Success 200 {array} QryBussinessFpRsp
  173. // @Failure 500 {object} app.Response
  174. // @Router /Ermcp/QueryBusinessFp [get]
  175. // @Tags 企业风险管理(app)
  176. func QueryBusinessFp(c *gin.Context) {
  177. appG := app.Gin{C: c}
  178. var req QryOPApplyReq
  179. _=c.ShouldBind(&req)
  180. m := models.ErmcpOPApplyModel{RELATEDID: req.RelatedId, USERID: req.UserId}
  181. if d, err := m.GetData(4); err == nil {
  182. //构建应答数据
  183. sData := make([]QryBussinessFpRsp, 0)
  184. for _, v := range d {
  185. var rsp QryBussinessFpRsp
  186. rsp.ErmcpOPApplyModel = v
  187. if len(rsp.DETAILJSON) > 0 {
  188. _ = json.Unmarshal([]byte(rsp.DETAILJSON), &rsp.KpData)
  189. }
  190. sData = append(sData, rsp)
  191. }
  192. appG.Response(http.StatusOK, e.SUCCESS, sData)
  193. } else {
  194. appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
  195. }
  196. }