asset.go 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. package http
  2. import (
  3. "kpt.xdmy/apiserver/model"
  4. "kpt.xdmy/pkg/log"
  5. "kpt.xdmy/pkg/util"
  6. )
  7. type AssetResp struct {
  8. Dest Dest `json:"DEST"`
  9. Data AssetRespData `json:"DATA"`
  10. }
  11. type AssetRespData struct {
  12. RespMsg SapRespMsg `json:"MSGER"`
  13. Master []Asset `json:"TANLA"`
  14. }
  15. type Asset struct {
  16. CompanyCode string `json:"BUKRS"` //公司代码
  17. SonCode string `json:"ANLN2"` //资产子编号 默认0
  18. Quantity string `json:"MENGE"` //数量
  19. Name string `json:"TXT50"` //资产名称
  20. AssetCode string `json:"ANLN1"` //资产编码
  21. Type string `json:"ANLKL"` //资产类型
  22. Model string `json:"TXA50"` //资产规格
  23. CostCenter string `json:"KOSTL"` //成本中心
  24. Unit string `json:"MEINS"` //计量单位
  25. ProfitCenter string `json:"PRCTR"` //利润中心
  26. BuyDate string `json:"ZUGDT"` //购买日期
  27. BuyValue string `json:"KANSW"` //购买价值
  28. Salvage string `json:"AHPROZ"` //残值率 百分比
  29. Udate string `json:"UDATE"` //更新日期
  30. Utime string `json:"UTIME"` //更新时间
  31. NDPER string `json:"NDPER"` //计划 使用时间
  32. Dflag string `json:"XSPEB"` // 删除标记
  33. DepreciationYear string `json:"NDJAR"` //折旧年限
  34. Supplier string `json:"LIFNR"` //供应商
  35. TransferFlag string `json:"ORD44"` //传输Y/不传输N ,删除X
  36. ORD41 string `json:"ORD41"` // 资产状态
  37. Segment string `json:"SEGMENT"` //细分 段
  38. ORD42 string `json:"ORD42"` //资产变动方式 出售/购入/其他/其他减少/其他增加/调拨/在建工程转入
  39. RAUMN string `json:"RAUMN"` //房间 存储资产的位置
  40. }
  41. type AssetReq struct {
  42. Dest `json:"DEST"`
  43. Data AssetReqData `json:"DATA"`
  44. }
  45. type Company struct {
  46. Code string `json:"BUKRS"`
  47. }
  48. type AssetReqData struct {
  49. BudatB string `json:"BUDAT_B"` //查询开始日期 YYYYMMDD,资产创建/变更
  50. BudatE string `json:"BUDAT_E"` //查询结束日期 YYYYMMDD,资产创建/变更
  51. CompanyCode []Company `json:"TBUKRS"` //公司代码 现代牧业的法人
  52. Codes []TANLN1 `json:"TANLN1"` //主资产号 财务资产码
  53. EqType []interface{} `json:"TANLKL"` //资产类 设备类别
  54. Tord41 []interface{} `json:"TORD41"` //资产状态 在用/转移/报废
  55. Tzugdt []interface{} `json:"TZUGDT"` //购置日期 购置日期(首次)
  56. }
  57. type TANLN1 struct {
  58. Code string `json:"ANLN1"` //主资产号, 财务资产码
  59. }
  60. func (p *AssetReq) NewReq() {
  61. p.Dest = Dest{
  62. DestID: "EQMAN",
  63. BussTp: "FI004",
  64. Url: "https://app.modernfarming.cn:7443/sap/EAM/FI004/QueryAsset",
  65. }
  66. // s := model.SapLogTime(p.Dest.BussTp)
  67. dt := AssetReqData{
  68. // BudatB: s.Format("20060102"),
  69. // BudatE: time.Now().Format("20060102"),
  70. BudatB: "20220823",
  71. BudatE: "20220823",
  72. }
  73. // dt.CompanyCode = []Company{
  74. // {Code: "9099"},
  75. // }
  76. p.Data = dt
  77. }
  78. func (p *Asset) ToEquipment(m *model.Equipment) (e error) {
  79. t, ei := util.ParseDateAndTime(p.Udate, p.Utime)
  80. log.Errorf(e, "http asset ToEquipment ParseDateAndTime error %s %s", p.Udate, p.Utime)
  81. if ei != nil {
  82. return ei
  83. }
  84. m.PastureId = 18
  85. m.SHStatus = 1
  86. m.Status = 17
  87. m.EqName = p.Name
  88. m.AssetCode = p.AssetCode
  89. m.EqClassName = p.Type
  90. m.Specification = p.Model
  91. m.EntranceDate = p.BuyDate
  92. m.Yuanzhi = p.BuyValue
  93. m.ModifyTime = t
  94. m.Enable = util.Zero(p.Dflag == "")
  95. m.CompanyCode = p.CompanyCode
  96. m.Quantity = p.Quantity
  97. m.CostCenter = p.CostCenter
  98. m.Unit = p.Unit
  99. m.ProfitCenter = p.ProfitCenter
  100. m.EqCode = p.AssetCode
  101. // `equipment`
  102. // INNER JOIN pasture p
  103. // ON p.`id` = equipment.`pastureId`
  104. // left JOIN department d
  105. // ON d.`id` = equipment.departmentId
  106. // #LEFT JOIN dictlist
  107. // #ON equipment.`status` = dictlist.id
  108. // WHERE (equipment.pastureId=? or ?=18)
  109. // and (equipment.eqName LIKE CONCAT('%',?,'%') OR ?='' )
  110. // AND (equipment.eqCode LIKE CONCAT('%',?,'%') OR ?='')
  111. // AND (equipment.assetCode LIKE CONCAT('%',?,'%') OR ?='')
  112. // AND equipment.`enable` = '1' and (equipment.SHStatus = 3 or equipment.SHStatus=1)
  113. // and equipment.`status`=17
  114. return
  115. // m.PastureName = p.ProfitCenter
  116. // m.DepartmentId = p.CostCenter
  117. // m.DepartmentName = p.CostCenter
  118. }