ermcpOPApply.go 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. /**
  2. * @Author: zou.yingbin
  3. * @Create : 2021/1/12 10:38
  4. * @Modify : 2021/1/12 10:38
  5. */
  6. package models
  7. import (
  8. "fmt"
  9. "mtp2_if/db"
  10. "mtp2_if/logger"
  11. )
  12. //现货合同操作数据
  13. type ErmcpOPApplyModel struct {
  14. USERID int64 `json:"userid" xorm:"'USERID'"` //用户ID
  15. OPERATEAPPLYID string `json:"operateapplyid" xorm:"'OPERATEAPPLYID'"` //操作申请ID(603+Unix秒时间戳(10位)+xxxxxx)
  16. OPERATEAPPLYTYPE int32 `json:"operateapplytype" xorm:"'OPERATEAPPLYTYPE'"` //操作申请类型 - 1:点价 2:结算登记 3:款项登记 4:发票登记
  17. RELATEDID string `json:"relatedid" xorm:"'RELATEDID'"` //现货合同ID
  18. DETAILJSON string `json:"-" xorm:"'DETAILJSON'"` //明细JSON
  19. APPLYID string `json:"applyid" xorm:"'APPLYID'"` //申请人
  20. APPLYTIME string `json:"applytime" xorm:"'APPLYTIME'"` //申请时间
  21. APPLYSTATUS int32 `json:"applystatus" xorm:"'APPLYSTATUS'"` //申请状态 - 1:待审核 2:审核通过 3:审核拒绝 4:处理失败 5:已撤回
  22. AUDITTIME string `json:"audittime" xorm:"'AUDITTIME'"` //审核时间
  23. CONTRACTTYPE int32 `json:"contracttype" xorm:"'CONTRACTTYPE'"` //现货合同类型 - 1:采购 -1:销售
  24. CONTRACTNO string `json:"contractno" xorm:"'CONTRACTNO'"` //合同编号
  25. PRICETYPE int32 `json:"pricetype" xorm:"'PRICETYPE'"` //定价类型 - 1:一口价 2:点价 3:暂定价
  26. PRICEMOVE float64 `json:"pricemove" xorm:"'PRICEMOVE'"` //升贴水
  27. GOODSNAME string `json:"goodsname" xorm:"'GOODSNAME'"` //商品名称
  28. GOODSCODE string `json:"goodscode" xorm:"'GOODSCODE'"` //点价合约
  29. EnumdicName string `json:"enumdicname" xorm:"'ENUMDICNAME'"` //单位名称
  30. BUYUSERNAME string `json:"buyusername" xorm:"'BUYUSERNAME'"` //采购方名称
  31. SELLUSERNAME string `json:"sellusername" xorm:"'SELLUSERNAME'"` //销售方名字
  32. APPLYNAME string `json:"applyname" xorm:"'APPLYNAME'"` //申请人名称
  33. AUDITNAME string `json:"auditname" xorm:"'AUDITNAME'"` //审核人名称
  34. CONTRACTSTATUS int32 `json:"contractstatus" xorm:"'CONTRACTSTATUS'"` //合同状态- 0:未提交 1:待审核 2:执行中 3:正常完结 4:审核拒绝 5:异常完结 6:已撤回
  35. ATTACHURL string `json:"attachurl" xorm:"'ATTACHURL'"` //附件
  36. }
  37. func (r *ErmcpOPApplyModel) buildSql(opType int32) string {
  38. sqlId := "select to_char(t.OPERATEAPPLYID) OPERATEAPPLYID," +
  39. " t.OPERATEAPPLYTYPE," +
  40. " to_char(t.RELATEDID) RELATEDID," +
  41. " t.DETAILJSON," +
  42. " to_char(t.APPLYID) APPLYID," +
  43. " to_char(t.APPLYTIME, 'yyyy-mm-dd hh24:mi:ss') APPLYTIME," +
  44. " t.APPLYSTATUS," +
  45. " to_char(t.auditid) auditid," +
  46. " to_char(t.AUDITTIME, 'yyyy-mm-dd hh24:mi:ss') AUDITTIME," +
  47. " t.CONTRACTTYPE," +
  48. " to_char(t.attachurl) attachurl," +
  49. " s.CONTRACTNO," +
  50. " s.PRICETYPE," +
  51. " s.pricemove," +
  52. " s.userid," +
  53. " s.contractstatus," +
  54. " g.GOODSNAME," +
  55. " g.GOODSCODE," +
  56. " e.EnumdicName," +
  57. " u3.logincode APPLYName," +
  58. " u4.logincode auditName," +
  59. " u1.accountname buyuserName," +
  60. " u2.accountname selluserName" +
  61. " from ermcp_contractoperateapply t" +
  62. " left join ermcp_spotcontract s" +
  63. " on t.relatedid = s.spotcontractid" +
  64. " left join goods g" +
  65. " on s.goodsid = g.goodsid" +
  66. " left join loginaccount u3" +
  67. " on t.applyid = u3.loginid" +
  68. " left join loginaccount u4" +
  69. " on t.auditid = u4.loginid" +
  70. " left join useraccount u1" +
  71. " on s.buyuserid = u1.userid" +
  72. " left join useraccount u2" +
  73. " on s.selluserid = u2.userid" +
  74. " left join enumdicitem e" +
  75. " on e.enumitemname = g.goodunitid" +
  76. " and e.enumdiccode = 'goodsunit'" +
  77. " where t.operateapplytype = %v" +
  78. " and s.userid = %v"
  79. if len(r.RELATEDID) > 0 {
  80. sqlId = sqlId + " and t.relatedid=" + r.RELATEDID
  81. }
  82. return fmt.Sprintf(sqlId, opType, r.USERID)
  83. }
  84. // 从数据库中查询合同操作申请相关信息, opType 操作申请类型 - 1:点价 2:结算登记 3:款项登记 4:发票登记
  85. func (r *ErmcpOPApplyModel) GetData(opType int32) ([]ErmcpOPApplyModel, error) {
  86. sData := make([]ErmcpOPApplyModel, 0)
  87. e := db.GetEngine()
  88. s := e.SQL(r.buildSql(opType))
  89. if err := s.Find(&sData); err != nil {
  90. logger.GetLogger().Errorf("ermcp query fail:%v", err)
  91. return sData, err
  92. }
  93. return sData, nil
  94. }