Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
项目统一框架
amos-boot-biz
Commits
bad30f33
Commit
bad30f33
authored
Mar 01, 2024
by
caotao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
固德威相关代码提交
parent
e2b06a0c
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
140 additions
and
49 deletions
+140
-49
GoodWeRequestUtil.java
...eejoin/amos/api/householdapi/Utils/GoodWeRequestUtil.java
+32
-46
GoodWeConstant.java
...eejoin/amos/api/householdapi/constant/GoodWeConstant.java
+30
-0
HouseholdTestController.java
.../api/householdapi/controller/HouseholdTestController.java
+7
-3
GoodWeStationList.java
...face/orm/houseapi/entity/tdeingine/GoodWeStationList.java
+14
-0
GoodWeDataAcquisitionServiceImpl.java
...i/face/service/impl/GoodWeDataAcquisitionServiceImpl.java
+57
-0
No files found.
amos-boot-data/amos-boot-data-housepvapi/src/main/java/com/yeejoin/amos/api/householdapi/Utils/GoodWeRequestUtil.java
View file @
bad30f33
package
com
.
yeejoin
.
amos
.
api
.
householdapi
.
Utils
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.http.Header
;
import
cn.hutool.http.HttpUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.yeejoin.amos.api.householdapi.constant.GoLangConstant
;
import
com.yeejoin.amos.api.householdapi.constant.GoodWeConstant
;
import
com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.houseapi.HouseholdPvProducerInfo
;
import
com.yeejoin.amos.api.householdapi.face.orm.mapper.tdengine.GolangStationMapper
;
import
com.yeejoin.amos.api.householdapi.face.service.impl.HouseholdPvProducerInfoServiceImpl
;
import
com.yeejoin.amos.openapi.enums.PVProducerInfoEnum
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.typroject.tyboot.component.cache.Redis
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.*
;
@Component
public
class
GoodWeRequestUtil
{
private
final
String
redisKey
=
"GOODWE_REQUEST_TOKEN"
;
@Autowired
private
HouseholdPvProducerInfoServiceImpl
householdPvProducerInfoServiceImpl
;
@Autowired
private
GolangStationMapper
golangStationMapper
;
private
RedisUtils
redisUtils
;
/**
* @return HashMap<String, Object> 发送请求前的准备 准备header信息
* @deprecated 根据厂商编码获取厂商的hearer
*/
public
HashMap
<
String
,
Object
>
getHeaderOfGolang
()
{
HashMap
<
String
,
Object
>
hashMap
=
new
HashMap
<>();
HashMap
<
String
,
String
>
hashMaphead
=
new
HashMap
<>();
String
url
=
GoLangConstant
.
baseurl
+
GoLangConstant
.
tokenurl
;
hashMap
.
put
(
"apiurl"
,
GoLangConstant
.
baseurl
);
hashMaphead
.
put
(
"Content-type"
,
"application/json;charset=UTF-8"
);
hashMaphead
.
put
(
"Authorization"
,
"API "
+
GoLangConstant
.
prodcerappid
);
hashMaphead
.
put
(
"Content-MD5"
,
null
);
hashMaphead
.
put
(
"Date"
,
GoLangHeaderUtils
.
getGMTTime
());
hashMap
.
put
(
"header"
,
hashMaphead
);
hashMap
.
put
(
"appsecret"
,
GoLangConstant
.
prodcerappsecret
);
public
HashMap
<
String
,
String
>
getHeaderOfGoodWE
()
{
HashMap
<
String
,
String
>
requestHeader
=
new
HashMap
<>();
if
(
ObjectUtil
.
isNotEmpty
(
redisUtils
.
get
(
redisKey
))){
requestHeader
.
put
(
"token"
,
redisUtils
.
get
(
redisKey
).
toString
());
return
requestHeader
;
}
HashMap
<
String
,
String
>
hashMap
=
new
HashMap
<>();
String
url
=
GoodWeConstant
.
baseurl
+
GoodWeConstant
.
tokenurl
;
Map
<
String
,
String
>
params
=
new
HashMap
<>();
params
.
put
(
"account"
,
GoodWeConstant
.
account
);
params
.
put
(
"pwd"
,
GoodWeConstant
.
password
);
String
requestParams
=
JSON
.
toJSONString
(
params
);
String
respone
=
HttpUtil
.
createPost
(
url
).
headerMap
(
null
,
false
).
body
(
requestParams
).
execute
().
body
();
JSONObject
jsonObject
=
JSON
.
parseObject
(
respone
);
if
(
jsonObject
.
getString
(
"code"
).
equals
(
"0"
)){
JSONObject
jsonObject1
=
jsonObject
.
getJSONObject
(
"data"
);
hashMap
.
put
(
"token"
,
jsonObject1
.
getString
(
"token"
));
redisUtils
.
expire
(
redisKey
,
jsonObject1
.
getLong
(
"expire"
)-
10
);
}
return
hashMap
;
}
...
...
@@ -59,13 +71,8 @@ public class GoodWeRequestUtil {
JSONArray
jsonArray
=
null
;
List
<
T
>
result
=
new
ArrayList
<>();
try
{
HashMap
<
String
,
Object
>
producerInfo
=
getHeaderOfGolang
();
String
baseurl
=
(
String
)
producerInfo
.
get
(
"apiurl"
);
HashMap
<
String
,
String
>
headMap
=
(
HashMap
<
String
,
String
>)
producerInfo
.
get
(
"header"
);
String
orginalAuthorization
=
headMap
.
get
(
"Authorization"
)
+
":"
;
String
url
=
baseurl
+
apiurl
;
String
appsecret
=
(
String
)
producerInfo
.
get
(
"appsecret"
);
JLYHeaderMapHandler
(
params
,
headMap
,
orginalAuthorization
,
appsecret
,
apiurl
);
HashMap
<
String
,
String
>
headMap
=
getHeaderOfGoodWE
();
String
url
=
GoodWeConstant
.
baseurl
+
apiurl
;
respone
=
sendRequest
(
requestMethod
,
url
,
requestParmInfo
,
headMap
);
jsonArray
=
handlerResponseByResultResolverule
(
ResultResolveRule
,
respone
);
if
(!
ObjectUtils
.
isEmpty
(
jsonArray
))
{
...
...
@@ -120,27 +127,6 @@ public class GoodWeRequestUtil {
return
respone
;
}
/***
*
* @param params 参数字符窜
* @param headMap header头
* @param orginalAuthorization 原始的orginalAuthorization
* @param appsecret appsecret
* @desc 锦浪云请求参数及head头处理
*/
public
void
JLYHeaderMapHandler
(
String
params
,
HashMap
<
String
,
String
>
headMap
,
String
orginalAuthorization
,
String
appsecret
,
String
apiurl
)
{
String
contentMD5
=
GoLangHeaderUtils
.
getDigest
(
params
);
headMap
.
put
(
"Date"
,
GoLangHeaderUtils
.
getGMTTime
());
String
param
=
"POST"
+
"\n"
+
contentMD5
+
"\n"
+
"application/json"
+
"\n"
+
headMap
.
get
(
"Date"
)
+
"\n"
+
apiurl
;
String
sign
=
""
;
try
{
sign
=
GoLangHeaderUtils
.
HmacSHA1Encrypt
(
param
,
appsecret
);
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
headMap
.
put
(
"Content-MD5"
,
contentMD5
);
headMap
.
put
(
"Authorization"
,
orginalAuthorization
+
sign
);
}
/**
* @param pageSizeResovle
...
...
amos-boot-data/amos-boot-data-housepvapi/src/main/java/com/yeejoin/amos/api/householdapi/constant/GoodWeConstant.java
View file @
bad30f33
package
com
.
yeejoin
.
amos
.
api
.
householdapi
.
constant
;
import
java.time.format.DateTimeFormatter
;
/**
* 固德威常量
*/
public
class
GoodWeConstant
{
public
static
String
baseurl
=
"http://openapi.sems.com.cn"
;
public
static
String
account
=
"18679135705"
;
public
static
String
password
=
"Lfj5705@sems"
;
public
static
String
tokenurl
=
"/api/OpenApi/GetToken"
;
public
static
String
stationListUrl
=
"/api/OpenApi/GetUserPowerStation"
;
public
static
String
stationDetailUrl
=
"/v1/api/stationDetail"
;
public
static
String
collectorListUrl
=
"/v1/api/collectorList"
;
public
static
String
collectorDetailUrl
=
"/v1/api/collectorDetail"
;
public
static
String
inverterListUrl
=
"/v1/api/inverterList"
;
public
static
String
inverterDetailUrl
=
"/v1/api/inverterDetail"
;
public
static
String
alarmListUrl
=
"/v1/api/alarmList"
;
public
static
String
stationDayGenUrl
=
"/v1/api/stationDayEnergyList"
;
public
static
String
stationMonthEnergyList
=
"/v1/api/stationDayEnergyList"
;
public
static
String
stationYearEnergyList
=
"/v1/api/stationDayEnergyList"
;
public
static
String
inverterDayURL
=
"/v1/api/inverterDay"
;
public
static
String
inverterMonthURL
=
"/v1/api/inverterMonth"
;
public
static
String
inverterYearURL
=
"/v1/api/inverterYear"
;
public
static
String
resovleRule_data_page_records
=
"data,page,records"
;
public
static
String
resovleRule_data_list
=
"data,page,list"
;
public
static
String
resovleRule_data_records
=
"data,records"
;
public
static
String
resovleRule_data
=
"data"
;
public
static
String
requestPost
=
"POST"
;
public
static
String
datePattern
=
"yyyy-MM-dd HH:mm:ss.SSS"
;
public
static
DateTimeFormatter
formatter
=
DateTimeFormatter
.
ofPattern
(
datePattern
);
public
static
Double
kwhToMwh
=
0.0001
;
public
static
Double
mwhTokwh
=
1000.0
;
}
amos-boot-data/amos-boot-data-housepvapi/src/main/java/com/yeejoin/amos/api/householdapi/controller/HouseholdTestController.java
View file @
bad30f33
package
com
.
yeejoin
.
amos
.
api
.
householdapi
.
controller
;
import
com.yeejoin.amos.api.householdapi.Utils.GoodWeRequestUtil
;
import
com.yeejoin.amos.api.householdapi.Utils.HouseholdPvUtils
;
import
com.yeejoin.amos.api.householdapi.face.service.GoLangDataAcquisitionService
;
import
com.yeejoin.amos.api.householdapi.face.service.GoodWeDataAcquisitionService
;
import
com.yeejoin.amos.api.householdapi.face.service.ImasterDataService
;
import
com.yeejoin.amos.api.householdapi.face.service.KSolarDataAcquisitionService
;
import
com.yeejoin.amos.api.householdapi.face.service.impl.ImasterDataServiceImpl
;
...
...
@@ -36,6 +38,8 @@ public class HouseholdTestController {
private
KSolarDataAcquisitionService
kSolarDataAcquisitionService
;
@Autowired
private
ImasterDataService
imasterDataService
;
@Autowired
private
GoodWeDataAcquisitionService
goodWeDataAcquisitionService
;
/**
...
...
@@ -44,10 +48,10 @@ public class HouseholdTestController {
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@PostMapping
(
value
=
"/g
dwd
emo"
)
@PostMapping
(
value
=
"/g
oodweD
emo"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"固德威示例"
,
notes
=
"固德威示例"
)
public
String
save
(
Long
seq
)
throws
IOException
{
return
householdPvUtils
.
gerResponseByAPiID
(
seq
);
public
void
goodweDemo
(
)
throws
IOException
{
goodWeDataAcquisitionService
.
stationList
(
);
}
/**
...
...
amos-boot-data/amos-boot-data-housepvapi/src/main/java/com/yeejoin/amos/api/householdapi/face/orm/houseapi/entity/tdeingine/GoodWeStationList.java
0 → 100644
View file @
bad30f33
package
com
.
yeejoin
.
amos
.
api
.
householdapi
.
face
.
orm
.
houseapi
.
entity
.
tdeingine
;
import
lombok.Data
;
@Data
public
class
GoodWeStationList
{
private
String
id
;
private
String
pw_name
;
private
String
conn_date
;
private
String
pw_capacity
;
private
String
pw_type
;
private
String
pw_inventersnum
;
}
amos-boot-data/amos-boot-data-housepvapi/src/main/java/com/yeejoin/amos/api/householdapi/face/service/impl/GoodWeDataAcquisitionServiceImpl.java
0 → 100644
View file @
bad30f33
package
com
.
yeejoin
.
amos
.
api
.
householdapi
.
face
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.yeejoin.amos.api.householdapi.Utils.GoodWeRequestUtil
;
import
com.yeejoin.amos.api.householdapi.constant.GoodWeConstant
;
import
com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.tdeingine.GoodWeStationList
;
import
com.yeejoin.amos.api.householdapi.face.service.GoodWeDataAcquisitionService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.HashMap
;
import
java.util.List
;
@Service
public
class
GoodWeDataAcquisitionServiceImpl
implements
GoodWeDataAcquisitionService
{
@Autowired
GoodWeRequestUtil
goodWeRequestUtil
;
@Override
public
void
stationList
()
{
HashMap
<
String
,
Object
>
requestInfo
=
new
HashMap
<>();
requestInfo
.
put
(
"page_index"
,
1
);
requestInfo
.
put
(
"page_size"
,
100
);
String
requstParam
=
JSON
.
toJSONString
(
requestInfo
);
List
<
GoodWeStationList
>
goodWeStationLists
=
goodWeRequestUtil
.
getResPonse
(
GoodWeConstant
.
stationListUrl
,
GoodWeConstant
.
requestPost
,
requstParam
,
GoodWeConstant
.
resovleRule_data_list
,
GoodWeStationList
.
class
);
goodWeStationLists
.
size
();
}
@Override
public
void
stationDetail
()
{
}
@Override
public
void
collectorList
()
{
}
@Override
public
void
collectorDetail
()
{
}
@Override
public
void
inverterList
()
{
}
@Override
public
void
inverterDetail
()
{
}
@Override
public
void
inverAlramInfo
()
{
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment