/** * @Author: zou.yingbin * @Create : 2021/1/12 10:38 * @Modify : 2021/1/12 10:38 */ package models import ( "fmt" "mtp2_if/db" "mtp2_if/logger" ) //现货合同操作数据 type ErmcpOPApplyModel struct { USERID int64 `json:"userid" xorm:"'USERID'"` //用户ID OPERATEAPPLYID string `json:"operateapplyid" xorm:"'OPERATEAPPLYID'"` //操作申请ID(603+Unix秒时间戳(10位)+xxxxxx) OPERATEAPPLYTYPE int32 `json:"operateapplytype" xorm:"'OPERATEAPPLYTYPE'"` //操作申请类型 - 1:点价 2:结算登记 3:款项登记 4:发票登记 RELATEDID string `json:"relatedid" xorm:"'RELATEDID'"` //现货合同ID DETAILJSON string `json:"-" xorm:"'DETAILJSON'"` //明细JSON APPLYID string `json:"applyid" xorm:"'APPLYID'"` //申请人 APPLYTIME string `json:"applytime" xorm:"'APPLYTIME'"` //申请时间 APPLYSTATUS int32 `json:"applystatus" xorm:"'APPLYSTATUS'"` //申请状态 - 1:待审核 2:审核通过 3:审核拒绝 4:处理失败 5:已撤回 AUDITTIME string `json:"audittime" xorm:"'AUDITTIME'"` //审核时间 CONTRACTTYPE int32 `json:"contracttype" xorm:"'CONTRACTTYPE'"` //现货合同类型 - 1:采购 -1:销售 CONTRACTNO string `json:"contractno" xorm:"'CONTRACTNO'"` //合同编号 PRICETYPE int32 `json:"pricetype" xorm:"'PRICETYPE'"` //定价类型 - 1:一口价 2:点价 3:暂定价 PRICEMOVE float64`json:"pricemove" xorm:"'PRICEMOVE'"` //升贴水 GOODSNAME string `json:"goodsname" xorm:"'GOODSNAME'"` //商品名称 GOODSCODE string `json:"goodscode" xorm:"'GOODSCODE'"` //点价合约 EnumdicName string `json:"enumdicname" xorm:"'ENUMDICNAME'"` //单位名称 BUYUSERNAME string `json:"buyusername" xorm:"'BUYUSERNAME'"` //采购方名称 SELLUSERNAME string `json:"sellusername" xorm:"'SELLUSERNAME'"` //销售方名字 APPLYNAME string `json:"applyname" xorm:"'APPLYNAME'"` //申请人名称 AUDITNAME string `json:"auditname" xorm:"'AUDITNAME'"` //审核人名称 } func (r *ErmcpOPApplyModel) buildSql(opType int32) string { sqlId := "select to_char(t.OPERATEAPPLYID) OPERATEAPPLYID," + " t.OPERATEAPPLYTYPE," + " to_char(t.RELATEDID) RELATEDID," + " t.DETAILJSON," + " to_char(t.APPLYID) APPLYID," + " to_char(t.APPLYTIME, 'yyyy-mm-dd hh:mi:ss') APPLYTIME," + " t.APPLYSTATUS," + " to_char(t.auditid) auditid," + " to_char(t.AUDITTIME, 'yyyy-mm-dd hh:mi:ss') AUDITTIME," + " t.CONTRACTTYPE," + " s.CONTRACTNO," + " s.PRICETYPE," + " s.pricemove," + " s.userid," + " g.GOODSNAME," + " g.GOODSCODE," + " e.EnumdicName," + " u3.accountname APPLYName," + " u4.accountname auditName," + " u1.accountname buyuserName," + " u2.accountname selluserName" + " from ermcp_contractoperateapply t" + " left join ermcp_spotcontract s" + " on t.relatedid = s.spotcontractid" + " left join goods g" + " on s.goodsid = g.goodsid" + " left join useraccount u3" + " on t.applyid = u3.userid" + " left join useraccount u4" + " on t.auditid = u4.userid" + " left join useraccount u1" + " on s.buyuserid = u1.userid" + " left join useraccount u2" + " on s.selluserid = u2.userid" + " left join enumdicitem e" + " on e.enumitemname = g.goodunitid" + " and e.enumdiccode = 'goodsunit'" + " where t.operateapplytype = %v and s.userid = %v" if len(r.RELATEDID) > 0{ sqlId = sqlId + " and t.relatedid=" + r.RELATEDID } return fmt.Sprintf(sqlId, opType, r.USERID) } // 从数据库中查询合同操作申请相关信息, opType 操作申请类型 - 1:点价 2:结算登记 3:款项登记 4:发票登记 func (r *ErmcpOPApplyModel) GetData(opType int32) ([]ErmcpOPApplyModel, error) { sData := make([]ErmcpOPApplyModel, 0) e := db.GetEngine() s := e.SQL(r.buildSql(opType)) if err := s.Find(&sData); err != nil { logger.GetLogger().Errorf("ermcp query fail:%v", err) return sData, err } return sData, nil }