ermcpOPApply.go 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. OPERATEAPPLYID string `json:"OPERATEAPPLYID" xorm:"'OPERATEAPPLYID'"` //操作申请ID(603+Unix秒时间戳(10位)+xxxxxx)
  15. OPERATEAPPLYTYPE int32 `json:"OPERATEAPPLYTYPE" xorm:"'OPERATEAPPLYTYPE'"` //操作申请类型 - 1:点价 2:结算登记 3:款项登记 4:发票登记
  16. RELATEDID string `json:"RELATEDID" xorm:"'RELATEDID'"` //现货合同ID
  17. DETAILJSON string `json:"-" xorm:"'DETAILJSON'"` //明细JSON
  18. APPLYID string `json:"APPLYID" xorm:"'APPLYID'"` //申请人
  19. APPLYTIME string `json:"APPLYTIME" xorm:"'APPLYTIME'"` //申请时间
  20. APPLYSTATUS int32 `json:"APPLYSTATUS" xorm:"'APPLYSTATUS'"` //申请状态 - 1:待审核 2:审核通过 3:审核拒绝 4:处理失败 5:已撤回
  21. AUDITTIME string `json:"AUDITTIME" xorm:"'AUDITTIME'"` //审核时间
  22. CONTRACTTYPE int32 `json:"CONTRACTTYPE" xorm:"'CONTRACTTYPE'"` //现货合同类型 - 1:采购 -1:销售
  23. CONTRACTNO string `json:"CONTRACTNO" xorm:"'CONTRACTNO'"` //合同编号
  24. PRICETYPE int32 `json:"PRICETYPE" xorm:"'PRICETYPE'"` //定价类型 - 1:一口价 2:点价 3:暂定价
  25. PRICEMOVE float64`json:"PRICEMOVE" xorm:"'PRICEMOVE'"` //升贴水
  26. GOODSNAME string `json:"GOODSNAME" xorm:"'GOODSNAME'"` //商品名称
  27. GOODSCODE string `json:"GOODSCODE" xorm:"'GOODSCODE'"` //点价合约
  28. EnumdicName string `json:"EnumdicName" xorm:"'ENUMDICNAME'"` //单位名称
  29. BUYUSERNAME string `json:"BUYUSERNAME" xorm:"'BUYUSERNAME'"` //采购方名称
  30. SELLUSERNAME string `json:"SELLUSERNAME" xorm:"'SELLUSERNAME'"` //销售方名字
  31. APPLYNAME string `json:"APPLYNAME" xorm:"'APPLYNAME'"` //申请人名称
  32. }
  33. func (r *ErmcpOPApplyModel) buildSql(opType int32) string {
  34. sqlId := "select to_char(t.OPERATEAPPLYID) OPERATEAPPLYID," +
  35. " t.OPERATEAPPLYTYPE," +
  36. " to_char(t.RELATEDID) RELATEDID," +
  37. " t.DETAILJSON," +
  38. " to_char(t.APPLYID) APPLYID," +
  39. " to_char(t.APPLYTIME,'yyyy-mm-dd hh:mi') APPLYTIME," +
  40. " t.APPLYSTATUS," +
  41. " to_char(t.AUDITTIME,'yyyy-mm-dd hh:mi') AUDITTIME," +
  42. " t.CONTRACTTYPE," +
  43. " s.CONTRACTNO," +
  44. " s.PRICETYPE," +
  45. " s.pricemove,"+
  46. " g.GOODSNAME," +
  47. " g.GOODSCODE," +
  48. " e.EnumdicName," +
  49. " m.username APPLYName," +
  50. " u1.accountname buyuserName," +
  51. " u2.accountname selluserName" +
  52. " from ermcp_contractoperateapply t" +
  53. " left join ermcp_spotcontract s" +
  54. " on t.relatedid = s.spotcontractid" +
  55. " left join goods g" +
  56. " on s.goodsid = g.goodsid" +
  57. " left join loginaccount l on t.applyid=l.loginid" +
  58. " left join systemmanager m on m.logincode=l.logincode" +
  59. " left join useraccount u1 on s.buyuserid=u1.userid" +
  60. " left join useraccount u2 on s.selluserid=u2.userid" +
  61. " left join enumdicitem e" +
  62. " on e.enumitemname = g.goodunitid" +
  63. " and e.enumdiccode = 'goodsunit'" +
  64. " where t.operateapplytype = %v"
  65. return fmt.Sprintf(sqlId, opType)
  66. }
  67. // 从数据库中查询合同操作申请相关信息, opType 操作申请类型 - 1:点价 2:结算登记 3:款项登记 4:发票登记
  68. func (r *ErmcpOPApplyModel) GetData(opType int32) ([]ErmcpOPApplyModel, error) {
  69. sData := make([]ErmcpOPApplyModel, 0)
  70. e := db.GetEngine()
  71. s := e.SQL(r.buildSql(opType))
  72. if err := s.Find(&sData); err != nil {
  73. logger.GetLogger().Errorf("ermcp query fail:%v", err)
  74. return sData, err
  75. }
  76. return sData, nil
  77. }