ermcpOPLog.go 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. /**
  2. * @Author: zou.yingbin
  3. * @Create : 2021/1/14 11:44
  4. * @Modify : 2021/1/14 11:44
  5. */
  6. package models
  7. import (
  8. "fmt"
  9. "mtp2_if/db"
  10. "mtp2_if/mtpcache"
  11. "strconv"
  12. )
  13. //变更变记录
  14. type ErmcpOPLogModel struct {
  15. BIZTYPE int32 `json:"biztype" xorm:"'BIZTYPE'"` // 业务类型 - 1:套保计划 2:现货合同
  16. OPERATELOGTYPE int32 `json:"operatelogtype" xorm:"'OPERATELOGTYPE'"` // 操作流水类型
  17. RELATEDID string `json:"relatedid" xorm:"'RELATEDID'"` // 现货合同ID\套保计划
  18. LOGVALUE float64 `json:"logvalue" xorm:"'LOGVALUE'"` // 数值
  19. BEFOREVALUE float64 `json:"beforevalue" xorm:"'BEFOREVALUE'"` // 变更前
  20. AFTERVALUE float64 `json:"aftervalue" xorm:"'AFTERVALUE'"` // 变更后
  21. UPDATETIME string `json:"updatetime" xorm:"'UPDATETIME'"` // 更新时间
  22. APPLYID string `json:"applyid" xorm:"'APPLYID'"` // 操作人ID
  23. CONTRACTTYPE int32 `json:"contracttype" xorm:"'CONTRACTTYPE'"` // 现货合同类型 - 1:采购 -1:销售
  24. OPERATELOGTYPEDESC string `json:"operatelogtypedesc"` // 操作流水类型名称
  25. APPLYNAME string `json:"applyname"` // 操作人名称
  26. }
  27. func (r *ErmcpOPLogModel) decodeOperateLogType() {
  28. //1:点价价格 2:点价数量 3:结算量 4:其它费用 5:追加保证金 6溢短金额 7:调整金额 8:付款金额 9:收款金额 10:退款金额
  29. //11:收票金额 12:开票金额 13:提交审核(合同) 14:审核通过(合同) 15:审核拒绝(合同) 16:合同撤回 17:提交审核(计划)
  30. //18:审核通过(计划) 19:审核拒绝(计划) 20:计划撤回 21:正常完结(合同) 22:异常终止(合同) 23:退还保证金
  31. sDes := []string{"点价价格", "点价数量", "结算量", "其它费用", "追加保证金", "溢短金额", "调整金额", "付款金额", "收款金额", "退款金额",
  32. "收票金额", "开票金额", "提交审核(合同)", "审核通过(合同)", "审核拒绝(合同)", "合同撤回", "提交审核(计划)",
  33. "审核通过(计划)", "审核拒绝(计划)", "计划撤回", "正常完结(合同)", "异常终止(合同)", "退还保证金"}
  34. if r.OPERATELOGTYPE >= 1 && r.OPERATELOGTYPE <= 23 {
  35. r.OPERATELOGTYPEDESC = sDes[r.OPERATELOGTYPE-1]
  36. }
  37. }
  38. func (r *ErmcpOPLogModel) buildSql() string {
  39. str := "select BIZTYPE," +
  40. " OPERATELOGTYPE," +
  41. " RELATEDID," +
  42. " LOGVALUE," +
  43. " BEFOREVALUE," +
  44. " AFTERVALUE," +
  45. " to_char(UPDATETIME,'yyyy-mm-dd hh:mi:ss') UPDATETIME," +
  46. " APPLYID," +
  47. " CONTRACTTYPE" +
  48. " from ermcp_contractoperatelog t" +
  49. " where t.relatedid=%v"
  50. return fmt.Sprintf(str, r.RELATEDID)
  51. }
  52. //从数据库中获取操作变更数据
  53. func (r *ErmcpOPLogModel) GetData() ([]ErmcpOPLogModel, error) {
  54. e := db.GetEngine()
  55. sData := make([]ErmcpOPLogModel, 0)
  56. if err := e.SQL(r.buildSql()).Find(&sData); err != nil {
  57. return nil, err
  58. }
  59. // 类型解析成中文,操作人id转换为名称
  60. for i := range sData {
  61. sData[i].decodeOperateLogType()
  62. if id, err := strconv.ParseInt(sData[i].APPLYID, 10, 64); err == nil {
  63. sData[i].APPLYNAME = mtpcache.GetUserNameByLoginId(id)
  64. }
  65. }
  66. return sData, nil
  67. }