Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
U
unify_api2
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
chaonan
unify_api2
Commits
1af91f22
Commit
1af91f22
authored
Jun 03, 2025
by
ZZH
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix equip opt 2025-6-3 16:56
parent
b4cb7fb2
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
109 additions
and
25 deletions
+109
-25
equipment_operations_dao.py
unify_api/modules/zhiwei_u/dao/equipment_operations_dao.py
+56
-0
equipment_operations_service.py
.../modules/zhiwei_u/service/equipment_operations_service.py
+30
-9
order_operations_service.py
..._api/modules/zhiwei_u/service/order_operations_service.py
+11
-5
sid_iccid_map.py
unify_api/modules/zhiwei_u/service/sid_iccid_map.py
+5
-5
equipment_operations.py
unify_api/modules/zhiwei_u/views/equipment_operations.py
+7
-6
No files found.
unify_api/modules/zhiwei_u/dao/equipment_operations_dao.py
View file @
1af91f22
...
...
@@ -18,3 +18,59 @@ async def monitor_by_cid_sid(cid, sid):
async
with
MysqlUtil
()
as
conn
:
monitor_dic
=
await
conn
.
fetchone
(
sql
,
args
=
(
cid
,
sid
))
return
monitor_dic
async
def
load_sim_info
(
sid
):
rlt
=
dict
(
iccid
=
""
,
sim_opt
=
""
)
sql
=
"SELECT iccid, sim_opt FROM devops.sid_sim WHERE sid=
%
s"
async
with
MysqlUtil
()
as
conn
:
r
=
await
conn
.
fetchone
(
sql
,
args
=
(
sid
,))
if
r
:
rlt
.
update
(
r
)
return
rlt
async
def
load_equip_reuse
(
sid
):
rlt
=
[]
async
with
MysqlUtil
()
as
conn
:
sql
=
"SELECT meter_no, cid, db FROM devops.db_map_meter WHERE sid=
%
s;"
for
r
in
await
conn
.
fetchall
(
sql
,
args
=
(
sid
,)):
meter_no
,
cid
,
db
=
r
[
"meter_no"
],
r
[
"cid"
],
r
[
"db"
]
sql
=
f
"SELECT c.product, c.cid, c.shortname, "
\
f
"p.pid, p.name FROM {db}.monitor m "
\
f
"LEFT JOIN {db}.company c ON c.cid=m.cid "
\
f
"LEFT JOIN {db}.point p on m.mtid=p.mtid "
\
f
"WHERE m.sid=
%
s AND m.meter_no=
%
s AND m.cid=
%
s "
\
f
"AND m.demolished=0"
r
=
await
conn
.
fetchone
(
sql
,
args
=
(
sid
,
meter_no
,
cid
,))
if
r
:
rlt
.
append
(
r
)
return
rlt
async
def
load_equip_pg
(
prod_id
,
cid
,
sid
,
pid
,
pg_num
,
pg_size
):
data_lst
,
total
=
[],
0
if
sid
and
not
pid
:
data_lst
=
await
load_equip_reuse
(
sid
)
total
=
len
(
data_lst
)
else
:
cond_str
=
" WHERE demolished=0 "
if
prod_id
:
cond_str
+=
f
" AND c.product={prod_id}"
if
cid
:
cond_str
+=
f
" AND c.cid={cid}"
if
pid
:
cond_str
+=
f
" AND p.pid={pid}"
sql
=
f
"SELECT c.product, c.cid, c.shortname, p.pid, p.name, "
\
f
"m.sid, p.mtid "
\
f
"FROM `monitor` m LEFT JOIN company c ON m.cid=c.cid "
\
f
"LEFT JOIN point p ON p.mtid=m.mtid {cond_str} "
\
f
"LIMIT {(pg_num - 1) * pg_size}, {pg_size};"
t_sql
=
f
"SELECT count(c.cid) total FROM `monitor` m "
\
f
"LEFT JOIN company c ON m.cid=c.cid "
\
f
"LEFT JOIN point p ON p.mtid=m.mtid {cond_str};"
async
with
MysqlUtil
()
as
conn
:
data_lst
=
await
conn
.
fetchall
(
sql
)
total
=
await
conn
.
fetch_value
(
t_sql
)
return
data_lst
,
total
unify_api/modules/zhiwei_u/service/equipment_operations_service.py
View file @
1af91f22
...
...
@@ -15,7 +15,7 @@ from unify_api.modules.zhiwei_u.dao.data_operations_dao import \
from
unify_api.modules.zhiwei_u.dao.warning_operations_dao
import
get_username
from
unify_api.modules.zhiwei_u.dao.equipment_operations_dao
import
\
equipment_operations_dao
,
total_equipment_operations_dao
,
\
monitor_by_cid_sid
monitor_by_cid_sid
,
load_sim_info
,
load_equip_pg
from
unify_api.modules.zhiwei_u.components.equipment_operations_cps
import
\
EquOptResp
,
EdResp
,
EdmResp
from
unify_api.modules.zhiwei_u.procedures.dev_demolish
import
dev_demolish
...
...
@@ -23,9 +23,7 @@ from unify_api.modules.zhiwei_u.procedures.dev_replace import dev_replace
from
unify_api.modules.zhiwei_u.procedures.equipment_operations_pds
import
\
alarm_setting_pds
,
device_get_v1
,
device_get_config
from
unify_api.utils.response_code
import
RET
from
unify_api.modules.zhiwei_u.service.sid_iccid_map
import
(
iccid_from_get_status
)
from
unify_api.modules.zhiwei_u.service.sid_iccid_map
import
load_iccid
async
def
equipment_operations_service
(
userid
,
prod_id
,
cid
,
sid
,
pid
,
...
...
@@ -119,14 +117,15 @@ async def equipment_details_mqtt_service(sid, mtid):
"scopeEnable"
)
==
1
else
"关闭"
software_version
=
res_scope
.
get
(
"software_version"
)
iccid
=
await
iccid_from_get_status
(
sid
)
iccid
,
sim_opt
=
await
load_equip_sim_srv
(
sid
)
return
EdResp
(
software_version
=
software_version
,
device_status
=
status_
,
scope_status
=
scope_status
,
upload_freq
=
upload_freq
,
harm_count
=
harm_count
,
iccid
=
iccid
iccid
=
iccid
,
sim_operator
=
sim_opt
)
...
...
@@ -168,7 +167,8 @@ async def equipment_change_name_service(mtid, pid, new_name):
# 1. 确认mtid和pid对应关系
point_dic
=
await
point_by_pid_mtid
(
mtid
,
pid
)
if
not
point_dic
:
return
success_res
(
code
=
RET
.
op_fail
,
msg
=
"安装点不存在,或者mtid与pid不匹配"
)
return
success_res
(
code
=
RET
.
op_fail
,
msg
=
"安装点不存在,或者mtid与pid不匹配"
)
# 2. 更改安装点名称
sql_point
=
"UPDATE point SET name=
%
s WHERE pid=
%
s and mtid=
%
s"
sql_monitor
=
"UPDATE monitor SET name=
%
s WHERE mtid=
%
s"
...
...
@@ -187,7 +187,8 @@ async def equipment_replace_service(cid, sid, new_sid):
# 1. 确认cid和sid对应关系
monitor_dic
=
await
monitor_by_cid_sid
(
cid
,
sid
)
if
not
monitor_dic
:
return
success_res
(
code
=
RET
.
op_fail
,
msg
=
"装置不存在,或者cid与sid不匹配"
)
return
success_res
(
code
=
RET
.
op_fail
,
msg
=
"装置不存在,或者cid与sid不匹配"
)
# 2. 调用接口,确定更换是否成功
flag
,
msg
=
await
dev_replace
(
cid
,
sid
,
new_sid
)
if
not
flag
:
...
...
@@ -200,7 +201,8 @@ async def equipment_demolish_service(cid, sid):
# 1. 确认cid和sid对应关系
monitor_dic
=
await
monitor_by_cid_sid
(
cid
,
sid
)
if
not
monitor_dic
:
return
success_res
(
code
=
RET
.
op_fail
,
msg
=
"装置不存在,或者cid与sid不匹配"
)
return
success_res
(
code
=
RET
.
op_fail
,
msg
=
"装置不存在,或者cid与sid不匹配"
)
# 2. 调用接口,确定更换是否成功
flag
,
msg
=
await
dev_demolish
(
cid
,
sid
)
if
not
flag
:
...
...
@@ -212,3 +214,22 @@ async def equipment_demolish_service(cid, sid):
# if not dem_flag:
# return Success(success=0, message="下发拆除装置命令失败")
return
success_res
(
msg
=
"操作成功"
)
async
def
load_equip_sim_srv
(
sid
):
_
,
iccid
,
sim_opt
=
await
load_iccid
(
sid
)
if
not
iccid
:
r
=
await
load_sim_info
(
sid
)
iccid
,
sim_opt
=
r
[
"iccid"
],
r
[
"sim_opt"
]
return
iccid
,
sim_opt
async
def
equip_query_srv
(
userid
,
prod_id
,
cid
,
sid
,
pid
,
pg_num
,
pg_size
):
"""设备查询"""
data_lst
,
total
=
await
load_equip_pg
(
prod_id
,
cid
,
sid
,
pid
,
pg_num
,
pg_size
)
user
=
await
get_username
(
userid
)
is_mod
=
1
if
user
[
"role"
]
==
2
else
0
for
data
in
data_lst
:
data
[
"productname"
]
=
config
.
PRODUCT
.
get
(
data
[
"product"
],
""
)
return
EquOptResp
(
total
=
total
,
is_mod
=
is_mod
,
rows
=
data_lst
)
unify_api/modules/zhiwei_u/service/order_operations_service.py
View file @
1af91f22
...
...
@@ -17,6 +17,9 @@ from unify_api.modules.zhiwei_u.procedures.common import get_order_num, \
upload_file
from
unify_api.modules.zhiwei_u.procedures.common
import
allowed_file
from
unify_api.modules.zhiwei_u.procedures.common
import
get_all_user
from
unify_api.modules.zhiwei_u.dao.equipment_operations_dao
import
(
load_equip_reuse
)
async
def
w_origin_service
():
...
...
@@ -145,8 +148,9 @@ async def close_order_service(id, user_id, explain, doc_ids):
"user_list"
:
[
handle_user
[
"handle_user_id"
]
for
handle_user
in
handle_user_list
]
}
await
KafkaUtils
.
send_msg
(
topic
=
"power_iot.push.wechat_operation_order"
,
dic_data
=
dic_data
)
await
KafkaUtils
.
send_msg
(
topic
=
"power_iot.push.wechat_operation_order"
,
dic_data
=
dic_data
)
return
Success
(
success
=
1
,
message
=
"操作成功"
)
else
:
return
Success
(
success
=
0
,
message
=
"操作失败,您的权限不足"
)
...
...
@@ -154,11 +158,12 @@ async def close_order_service(id, user_id, explain, doc_ids):
async
def
sid_to_order_service
(
sid
):
"""录入工单 根据sid返回客户信息"""
datas
=
await
sid_to_order_dao
(
sid
)
datas
=
await
load_equip_reuse
(
sid
)
if
not
datas
:
return
Success
(
success
=
0
,
message
=
f
"{sid}未有数据与之匹配"
)
for
data
in
datas
:
data
[
"product"
]
=
config
.
PRODUCT
[
data
[
"prod_id"
]]
data
[
"product"
]
=
config
.
PRODUCT
.
get
(
data
[
"product"
],
""
)
return
SidToOrderResp
(
data
=
datas
)
...
...
@@ -268,7 +273,8 @@ async def order_detail_flow_service(id):
return
Success
(
success
=
0
,
message
=
"该工单状态不存在"
)
datas
=
await
order_detail_flow_by_id
(
id
)
for
data
in
datas
:
data
[
"doc"
]
=
await
get_file_by_record_id
(
"order_details_id"
,
data
[
"id"
])
data
[
"doc"
]
=
await
get_file_by_record_id
(
"order_details_id"
,
data
[
"id"
])
data
[
"op_time"
]
=
data
[
"op_time"
]
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M"
)
return
SidToOrderResp
(
data
=
datas
)
...
...
unify_api/modules/zhiwei_u/service/sid_iccid_map.py
View file @
1af91f22
...
...
@@ -183,7 +183,7 @@ async def load_iccid(sid):
async
def
update_all
():
sid_iccids
,
fail_sid
,
tmp
=
[],
[]
,
[]
sid_iccids
,
fail_sid
,
tmp
=
[],
set
()
,
[]
sid_total
=
await
load_all_sids
()
print
(
f
"sid total:{len(sid_total)}"
)
for
i
,
sid
in
enumerate
(
sid_total
,
start
=
1
):
...
...
@@ -196,7 +196,7 @@ async def update_all():
if
iccid
:
sid_iccids
.
append
((
_sid
,
iccid
,
sim_opt
))
else
:
fail_sid
.
a
ppen
d
(
_sid
)
fail_sid
.
a
d
d
(
_sid
)
tmp
=
[]
...
...
@@ -209,8 +209,8 @@ async def update_all():
print
(
f
"fail sids:{fail_sid}"
)
if
fail_sid
:
sid_iccids
,
fail_two
,
tmp
=
[],
[]
,
[]
for
i
,
sid
in
enumerate
(
fail_sid
,
start
=
1
):
sid_iccids
,
fail_two
,
tmp
=
[],
set
()
,
[]
for
i
,
sid
in
enumerate
(
list
(
fail_sid
)
,
start
=
1
):
tmp
.
append
(
sid
)
if
i
%
200
and
i
<
len
(
fail_sid
):
continue
...
...
@@ -220,7 +220,7 @@ async def update_all():
if
iccid
:
sid_iccids
.
append
((
_sid
,
iccid
,
sim_opt
))
else
:
fail_two
.
a
ppen
d
(
_sid
)
fail_two
.
a
d
d
(
_sid
)
time
.
sleep
(
180
)
...
...
unify_api/modules/zhiwei_u/views/equipment_operations.py
View file @
1af91f22
...
...
@@ -2,10 +2,11 @@ from pot_libs.sanic_api import summary
from
unify_api.modules.zhiwei_u.components.equipment_operations_cps
import
\
EquOptReq
,
EquOptResp
,
EdReq
,
EdResp
,
EdmReq
,
EcnReq
,
ErReq
,
EdmlReq
from
unify_api.modules.zhiwei_u.procedures.common
import
zhiweiu_required
from
unify_api.modules.zhiwei_u.service.equipment_operations_service
import
\
equipment_operations_service
,
equipment_details_mysql_service
,
\
equipment_details_mqtt_service
,
equipment_change_name_service
,
\
equipment_replace_service
,
equipment_demolish_service
from
unify_api.modules.zhiwei_u.service.equipment_operations_service
import
(
equipment_details_mysql_service
,
equipment_details_mqtt_service
,
equipment_change_name_service
,
equipment_replace_service
,
equipment_demolish_service
,
equip_query_srv
)
@
summary
(
'设备管理'
)
...
...
@@ -17,8 +18,8 @@ async def post_equipment_operations(req, body: EquOptReq) -> EquOptResp:
page_num
=
body
.
page_num
sid
=
body
.
sid
user_id
=
req
.
ctx
.
user_id
return
await
equip
ment_operations_service
(
user_id
,
prod_id
,
cid
,
sid
,
pid
,
page_num
,
page_size
)
return
await
equip
_query_srv
(
user_id
,
prod_id
,
cid
,
sid
,
pid
,
page_num
,
page_size
)
@
summary
(
'设备管理-详情和修改-从mqtt获取数据'
)
...
...
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