ermcpOPApply.go 4.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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. }
  35. func (r *ErmcpOPApplyModel) buildSql(opType int32) string {
  36. sqlId := "select to_char(t.OPERATEAPPLYID) OPERATEAPPLYID," +
  37. " t.OPERATEAPPLYTYPE," +
  38. " to_char(t.RELATEDID) RELATEDID," +
  39. " t.DETAILJSON," +
  40. " to_char(t.APPLYID) APPLYID," +
  41. " to_char(t.APPLYTIME,'yyyy-mm-dd hh:mi:ss') APPLYTIME," +
  42. " t.APPLYSTATUS," +
  43. " to_char(t.AUDITTIME,'yyyy-mm-dd hh:mi:ss') AUDITTIME," +
  44. " t.CONTRACTTYPE," +
  45. " s.CONTRACTNO," +
  46. " s.PRICETYPE," +
  47. " s.pricemove," +
  48. " g.GOODSNAME," +
  49. " g.GOODSCODE," +
  50. " e.EnumdicName," +
  51. " m.username APPLYName," +
  52. " m2.username auditName," +
  53. " u1.accountname buyuserName," +
  54. " u2.accountname selluserName" +
  55. " from ermcp_contractoperateapply t" +
  56. " left join ermcp_spotcontract s" +
  57. " on t.relatedid = s.spotcontractid" +
  58. " left join goods g" +
  59. " on s.goodsid = g.goodsid" +
  60. " left join loginaccount l on t.applyid=l.loginid" +
  61. " left join systemmanager m on m.logincode=l.logincode" +
  62. " left join loginaccount l2 on t.auditid=l2.loginid" +
  63. " left join systemmanager m2 on m2.logincode=l2.logincode" +
  64. " left join useraccount u1 on s.buyuserid=u1.userid" +
  65. " left join useraccount u2 on s.selluserid=u2.userid" +
  66. " left join enumdicitem e" +
  67. " on e.enumitemname = g.goodunitid" +
  68. " and e.enumdiccode = 'goodsunit'" +
  69. " where t.operateapplytype = %v and s.userid=%v"
  70. if len(r.RELATEDID) > 0{
  71. sqlId = sqlId + " and t.relatedid=" + r.RELATEDID
  72. }
  73. return fmt.Sprintf(sqlId, opType, r.USERID)
  74. }
  75. // 从数据库中查询合同操作申请相关信息, opType 操作申请类型 - 1:点价 2:结算登记 3:款项登记 4:发票登记
  76. func (r *ErmcpOPApplyModel) GetData(opType int32) ([]ErmcpOPApplyModel, error) {
  77. sData := make([]ErmcpOPApplyModel, 0)
  78. e := db.GetEngine()
  79. s := e.SQL(r.buildSql(opType))
  80. if err := s.Find(&sData); err != nil {
  81. logger.GetLogger().Errorf("ermcp query fail:%v", err)
  82. return sData, err
  83. }
  84. return sData, nil
  85. }