瀏覽代碼

Merge branch 'master' of 192.168.30.132:MTP2.0/MTP20_IF

zhou.xiaoning 4 年之前
父節點
當前提交
e60e821862
共有 9 個文件被更改,包括 3547 次插入4149 次删除
  1. 6 6
      config/config.xml
  2. 5 3
      controllers/ermcp/qryWrstandard.go
  3. 480 741
      docs/docs.go
  4. 480 741
      docs/swagger.json
  5. 2470 2640
      docs/swagger.yaml
  6. 5 0
      models/ermcpMiddleGoods.go
  7. 4 0
      models/ermcpReport.go
  8. 58 5
      models/ermcpWrstandard.go
  9. 39 13
      mtpcache/username.go

+ 6 - 6
config/config.xml

@@ -13,11 +13,11 @@
     <DbAddress value="192.168.31.117"/>
     <DbName value="orcl"/>
     <DbPort value="1521"/>
-    <DbUser value="mtp2_test104"/>
+    <DbUser value="mtp2_test114"/>
     <DbPwd value="muchinfo"/>
   </DbSetting>
   <RedisSetting>
-    <Address value="192.168.31.171"/>
+    <Address value="192.168.31.114"/>
     <Port value="5007"/>
     <Timeout value="3"/>
     <ConnNum value="1"/>
@@ -25,11 +25,11 @@
     <Pwd value=""/>
   </RedisSetting>
   <MqSetting>
-    <Url value="amqp://guest:guest@192.168.31.171:5020/test"/>
+    <Url value="amqp://guest:guest@192.168.31.114:5020/test"/>
     <Exchange value="entry"/>
   </MqSetting>
   <MongoDBSetting>
-    <HostName value="192.168.31.171"/>
+    <HostName value="192.168.31.114"/>
     <Port value="5025"/>
     <DBName value="HistoryQuote"/>
     <Username value="quote_test01"/>
@@ -38,8 +38,8 @@
   <MySQLSetting>
     <Host value="192.168.30.140"/>
     <Port value="3306"/>
-    <DBName value="historyquote_test171"/>
-    <Username value="root"/>
+    <DBName value="historyquote_test114"/>
+    <Username value="quote_test114"/>
     <Password value="123456"/>
   </MySQLSetting>
 </Configuration>

+ 5 - 3
controllers/ermcp/qryWrstandard.go

@@ -17,7 +17,7 @@ import (
 
 //查询现货商品请求
 type QryWrStandardReq struct {
-	UserId int `form:"userid" binding:"required"` //用户ID
+	UserId int    `form:"userid" binding:"required"` //用户ID
 	Status *int32 `form:"status" binding:"required"` //状态
 }
 
@@ -56,8 +56,9 @@ func QueryWrStandard(c *gin.Context) {
 
 //查询现货商品请求
 type QryWrStandardDetailReq struct {
-	UserId       int `form:"userid" binding:"required"`       //用户ID
+	UserId       int `form:"userid" binding:"required"`       // 用户ID
 	Wrstandardid int `form:"wrstandardid" binding:"required"` // 现货商品ID
+	Goods        int `form:"goods"`                           // 是否查关联交易商品 1-查询
 }
 
 //查询现货商品响应
@@ -68,6 +69,7 @@ type QryWrStandardDetailRsp models.ErmcpWrstandDetail
 // @Security ApiKeyAuth
 // @Param userid query int true  "所属机构ID"
 // @Param wrstandardid query int true  "现货商品ID"
+// @Param goods query int false  "可不填, 1-查询关联交易商品"
 // @Success 200 {array} QryWrStandardDetailRsp
 // @Failure 500 {object} app.Response
 // @Router /Ermcp/QueryWrStandardDetail [get]
@@ -80,7 +82,7 @@ func QueryWrStandardDetail(c *gin.Context) {
 		return
 	}
 	m := models.ErmcpWrstandDetail{Wrd: models.ErmcpWrstandard{AREAUSERID: req.UserId,
-		WRSTANDARDID: int64(req.Wrstandardid)}}
+		WRSTANDARDID: int64(req.Wrstandardid)}, QueryGoods: req.Goods == 1}
 	if d, err := m.GetData(); err == nil {
 		appG.Response(http.StatusOK, e.SUCCESS, d)
 	} else {

File diff suppressed because it is too large
+ 480 - 741
docs/docs.go


File diff suppressed because it is too large
+ 480 - 741
docs/swagger.json


File diff suppressed because it is too large
+ 2470 - 2640
docs/swagger.yaml


+ 5 - 0
models/ermcpMiddleGoods.go

@@ -188,6 +188,11 @@ func (r *ErmcpMiddleGoodsChangeLog) buildSql() string {
 // 处理要转换的数据
 func (r *ErmcpMiddleGoodsChangeLog) Calc() {
 	r.APPLYNAME = mtpcache.GetUserNameByUserId(r.APPLYID)
+	if r.APPLYNAME == "" {
+		// APPLYID 原来数据库存的是userid, 后来又改为loginid
+		// 当为loginid时,获取logincode
+		r.APPLYNAME = mtpcache.GetLoginCodeByLoginId(r.APPLYID)
+	}
 }
 
 // 获取套保变更操作数据

+ 4 - 0
models/ermcpReport.go

@@ -115,6 +115,10 @@ type ErmcpReportOPLog struct {
 func (r *ErmcpReportOPLog) Calc() {
 	r.ENUMDICNAME = mtpcache.GetEnumDicitemName(r.UNITID)
 	r.APPLYNAME = mtpcache.GetUserNameByUserId(r.APPLYID)
+	if r.APPLYNAME == "" {
+		// APPLYID 可能存的是loginId
+		r.APPLYNAME = mtpcache.GetLoginCodeByLoginId(r.APPLYID)
+	}
 
 	//1:点价价格 2:点价数量 3:结算量 4:其它费用 5:追加保证金 6溢短金额 7:调整金额 8:付款金额 9:收款金额 10:退款金额
 	//11:收票金额 12:开票金额 13:提交审核(合同) 14:审核通过(合同) 15:审核拒绝(合同) 16:合同撤回 17:提交审核(计划)

+ 58 - 5
models/ermcpWrstandard.go

@@ -10,6 +10,7 @@ import (
 	"fmt"
 	"mtp2_if/db"
 	"mtp2_if/logger"
+	"mtp2_if/utils"
 )
 
 // 现货商品表
@@ -54,7 +55,7 @@ func (r *ErmcpWrstandard) buildSql() string {
 	if r.WRSTANDARDID > 0 {
 		sqlId = sqlId + fmt.Sprintf(" and WRSTANDARDID=%v", r.WRSTANDARDID)
 	}
-	if r.ISVALID >= 0{
+	if r.ISVALID >= 0 {
 		sqlId = sqlId + fmt.Sprintf(" and t.ISVALID=%v", r.ISVALID)
 	}
 	return sqlId
@@ -197,12 +198,52 @@ func (r *WRSConverTDetail) GetData() ([]WRSConverTDetail, error) {
 	return sData, nil
 }
 
+// 现货关联的交易商品
+type RelatedGoodsEx struct {
+	GoodsId   int    `json:"goodsid"  xorm:"'GoodsId'"`     // 商品id
+	GoodsCode string `json:"goodscode"  xorm:"'GoodsCode'"` // 商品代码
+	GoodsName string `json:"goodsname"  xorm:"'GoodsName'"` // 商品名称
+
+	WRSTANDARDID int64 `json:"-"  xorm:"'WRSTANDARDID'"` // 现货商品ID
+	AREAUSERID   int   `json:"-"  xorm:"'AREAUSERID'"`   // 所属机构
+}
+
+func (r *RelatedGoodsEx) buildSql() string {
+	var sqlId utils.SQLVal = "select distinct g.goodsid, g.goodscode, g.goodsname" +
+		"  from wrstandard t" +
+		" inner join ERMS2_WRSConvertDetail w" +
+		"    on t.wrstandardid = w.wrstandardid" +
+		" inner join erms_middlegoods m" +
+		"    on w.middlegoodsid = m.middlegoodsid" +
+		" inner join ERMCP_GGConvertConfig gc" +
+		"    on m.goodsgroupid = gc.destgoodsgroupid" +
+		" inner join goods g" +
+		"    on gc.srcgoodsgroupid = g.goodsgroupid" +
+		" where 1=1"
+	sqlId.And("t.areauserid", r.AREAUSERID)
+	sqlId.And("t.wrstandardid", r.WRSTANDARDID)
+	sqlId.Join(" order by g.goodsid")
+	return sqlId.String()
+}
+
+func (r *RelatedGoodsEx) GetData() ([]RelatedGoodsEx, error) {
+	sData := make([]RelatedGoodsEx, 0)
+	if err := db.GetEngine().SQL(r.buildSql()).Find(&sData); err != nil {
+		logger.GetLogger().Errorf("query RelatedGoodsEx fail, %v", err)
+		return nil, err
+	}
+	return sData, nil
+}
+
 // 现货商品详细
 type ErmcpWrstandDetail struct {
-	Wrd     ErmcpWrstandard    `json:"wrd"`     // 基本信息
-	GtList  []GoodsTypeModel   `json:"gtList"`  // 型号列表
-	GbList  []GoodsBrand       `json:"gbList"`  // 品牌列表
-	WrsList []WRSConverTDetail `json:"wrsList"` // 套保信息列表
+	Wrd       ErmcpWrstandard    `json:"wrd"`       // 基本信息
+	GtList    []GoodsTypeModel   `json:"gtList"`    // 型号列表
+	GbList    []GoodsBrand       `json:"gbList"`    // 品牌列表
+	WrsList   []WRSConverTDetail `json:"wrsList"`   // 套保信息列表
+	GoodsList []RelatedGoodsEx   `json:"goodsList"` // 关联交易商品列表
+
+	QueryGoods bool `json:"-"`
 }
 
 // 查询现货商品详细
@@ -218,6 +259,10 @@ func (r *ErmcpWrstandDetail) GetData() (ErmcpWrstandDetail, error) {
 	}
 	rsp := ErmcpWrstandDetail{}
 	rsp.Wrd = d[0]
+	rsp.GtList = make([]GoodsTypeModel, 0)
+	rsp.GbList = make([]GoodsBrand, 0)
+	rsp.WrsList = make([]WRSConverTDetail, 0)
+	rsp.GoodsList = make([]RelatedGoodsEx, 0)
 	// 获取型号信息
 	gt := GoodsTypeModel{AREAUSERID: rsp.Wrd.AREAUSERID, WRSTANDARDID: rsp.Wrd.WRSTANDARDID}
 	if val, err := gt.GetData(); err == nil {
@@ -236,5 +281,13 @@ func (r *ErmcpWrstandDetail) GetData() (ErmcpWrstandDetail, error) {
 		rsp.WrsList = val
 	}
 
+	// 获取关联交易商品
+	if r.QueryGoods {
+		goodsLst := RelatedGoodsEx{AREAUSERID: r.Wrd.AREAUSERID, WRSTANDARDID: r.Wrd.WRSTANDARDID}
+		if val, err := goodsLst.GetData(); err == nil {
+			rsp.GoodsList = val
+		}
+	}
+
 	return rsp, nil
 }

+ 39 - 13
mtpcache/username.go

@@ -16,14 +16,15 @@ import (
 var vUser userName
 
 type userName struct {
-	mtx  sync.RWMutex     //锁
-	data map[int64]string //数据[loginId]accountName
+	mtx  sync.RWMutex       // 
+	data map[int64]userData // 数据[loginId]userData
 	last time.Time
 }
 
 type userData struct {
-	LOGINID  int64  //登录ID
-	USERNAME string // 用户名字
+	LOGINID   int64  `json:"LOGINID"  xorm:"'LOGINID'"`     // 登录ID
+	LOGINCODE string `json:"LOGINCODE"  xorm:"'LOGINCODE'"` // 登录代码
+	USERNAME  string `json:"USERNAME"  xorm:"'USERNAME'"`   // 用户名字
 }
 
 // 加载数据
@@ -41,7 +42,7 @@ func (r *userName) load() {
 		return
 	}
 
-	sqlId := "select l.loginid, s.username" +
+	sqlId := "select l.loginid, l.logincode, s.username" +
 		"  from loginaccount l" +
 		"  left join systemmanager s" +
 		"    on l.logincode = s.logincode" +
@@ -52,15 +53,15 @@ func (r *userName) load() {
 	if err := s.Find(&sData); err != nil {
 		logger.GetLogger().Errorf("cache load usrname, %v", err)
 	} else {
-		r.data = make(map[int64]string)
+		r.data = make(map[int64]userData)
 		for i := range sData {
-			r.data[sData[i].LOGINID] = sData[i].USERNAME
+			r.data[sData[i].LOGINID] = sData[i]
 		}
 		r.last = time.Now()
 	}
 }
 
-func (r *userName) get(loginId int64) string {
+func (r *userName) name(loginId int64) string {
 	r.mtx.RLock()
 	defer r.mtx.RUnlock()
 
@@ -69,18 +70,43 @@ func (r *userName) get(loginId int64) string {
 	}
 
 	if v, ok := r.data[loginId]; ok {
-		return v
+		return v.USERNAME
+	}
+	return ""
+}
+
+func (r *userName) loginCode(loginId int64) string {
+	r.mtx.RLock()
+	defer r.mtx.RUnlock()
+
+	if r.data == nil {
+		return ""
+	}
+
+	if v, ok := r.data[loginId]; ok {
+		return v.LOGINCODE
 	}
 	return ""
 }
 
 // 根据登录ID获取名称
 func GetUserNameByLoginId(loginId int64) string {
-	if v := vUser.get(loginId); v !=""{
+	if v := vUser.name(loginId); v != "" {
 		return v
-	}else{
+	} else {
 		vUser.load()
 	}
 
-	return vUser.get(loginId)
-}
+	return vUser.name(loginId)
+}
+
+// 根据登录ID获取登录代码
+func GetLoginCodeByLoginId(loginId int64) string {
+	if v := vUser.loginCode(loginId); v != "" {
+		return v
+	} else {
+		vUser.load()
+	}
+
+	return vUser.loginCode(loginId)
+}

Some files were not shown because too many files changed in this diff