123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- from hub import methods, Global
- async def code2001(**sources):
- """
- 新增车辆
- """
- # --- check ---
- if not sources.get('pid'):
- return dict(code=1, details=f"something is wrong.")
- elif not sources.get('type'):
- return dict(code=2, details=f"something is wrong.")
- # --- check ---
- count = Global.mdb.get_count('VehicleInfo', {'pid': sources.get('pid')})
- if count != 0:
- return dict(code=3, details=f"something is wrong.")
- # --- save ---
- """
- VehicleInfo: 车辆信息表
- VehicleInfo.pid: 车牌号
- VehicleInfo.type: 车型号
- VehicleInfo.host_address: 工控机地址
- VehicleInfo.rtk_address: rtk地址
- VehicleInfo.cpe_address: cpe地址
- VehicleInfo.release_at: 出厂时期
- VehicleInfo.state: 当前状态 (1:离线 2:在线空闲 3: 现场驾驶中 4: 远程驾驶中)
- VehicleInfo.permit_state: 遥操状态 (0:允许 1:禁用)
- VehicleInfo.update_at: 更新时间
- """
- data = {
- 'pid': sources.get('pid'),
- 'type': sources.get('type'),
- 'host_address': sources.get('host_address'),
- 'rtk_address': sources.get('rtk_address'),
- 'cpe_address': sources.get('cpe_address'),
- 'release_at': sources.get('release_at'),
- 'update_at': methods.now_ts(),
- 'state': 1,
- 'permit_state': 0,
- }
- uuid = Global.mdb.add('VehicleInfo', data)
- return dict(code=0, data=uuid)
- async def code2002(**sources):
- """
- 查询车辆列表
- """
- # --- check ---
- if not sources.get('page'):
- return dict(code=1, details=f"something is wrong.")
- elif not sources.get('size'):
- return dict(code=2, details=f"something is wrong.")
- # --- fill d1 ---
- d1 = list()
- page = sources.get('page', 1)
- size = sources.get('size', 10)
- for item in Global.mdb.get_all('VehicleInfo', sort_field=[('update_at', -1)]):
- # --- check ---
- if sources.get('pid') and sources.get('pid') not in item.get('pid'):
- continue
- data = {
- 'uuid': str(item.get('_id')),
- 'pid': item.get('pid'),
- 'type': item.get('type'),
- 'host_address': item.get('host_address'),
- 'rtk_address': item.get('rtk_address'),
- 'cpe_address': item.get('cpe_address'),
- 'release_at': item.get('release_at'),
- 'state': item.get('state', 1),
- 'permit_state': item.get('permit_state', 0),
- }
- d1.append(data)
- return dict(code=0, data=d1[(page - 1) * size: page * size], total=len(d1), page=page, size=size)
- async def code2003(**sources):
- """
- 修改指定车辆信息
- """
- # --- check ---
- uuid = sources.get('uuid')
- if not uuid:
- return dict(code=1, details=f"something is wrong.")
- # --- check ---
- item = Global.mdb.get_one_by_id('VehicleInfo', uuid)
- if not item:
- return dict(code=2, details=f"something is wrong.")
- # --- check ---
- # count = Global.mdb.get_count('VehicleInfo', {'pid': sources.get('pid')})
- # if count != 0:
- # return dict(code=3, details=f"something is wrong.")
- # --- update ---
- """
- VehicleInfo: 车辆信息表
- VehicleInfo.pid: 车牌号
- VehicleInfo.type: 车型号
- VehicleInfo.host_address: 工控机地址
- VehicleInfo.rtk_address: rtk地址
- VehicleInfo.cpe_address: cpe地址
- VehicleInfo.release_at: 出厂时期
- VehicleInfo.state: 当前状态 (1:离线 2:在线空闲 3: 现场驾驶中 4: 远程驾驶中)
- VehicleInfo.permit_state: 遥操状态 (0:允许 1:禁用)
- VehicleInfo.update_at: 更新时间
- """
- update_dict = dict()
- update_dict['update_at'] = methods.now_ts()
- if sources.get('pid'):
- update_dict['pid'] = sources.get('pid')
- if sources.get('type'):
- update_dict['type'] = sources.get('type')
- if sources.get('host_address'):
- update_dict['host_address'] = sources.get('host_address')
- if sources.get('rtk_address'):
- update_dict['rtk_address'] = sources.get('rtk_address')
- if sources.get('cpe_address'):
- update_dict['cpe_address'] = sources.get('cpe_address')
- if sources.get('release_at'):
- update_dict['release_at'] = sources.get('release_at')
- Global.mdb.update_one_by_id('VehicleInfo', uuid, update_dict)
- return dict(code=0, data=uuid)
- async def code2004(**sources):
- """
- 禁止指定车辆远程操作
- """
- # --- check ---
- uuid = sources.get('uuid')
- if not uuid:
- return dict(code=1, details=f"something is wrong.")
- # --- check ---
- item = Global.mdb.get_one_by_id('VehicleInfo', uuid)
- if not item:
- return dict(code=2, details=f"something is wrong.")
- # --- update ---
- """
- VehicleInfo: 车辆信息表
- VehicleInfo.pid: 车牌号
- VehicleInfo.type: 车型号
- VehicleInfo.host_address: 工控机地址
- VehicleInfo.rtk_address: rtk地址
- VehicleInfo.cpe_address: cpe地址
- VehicleInfo.release_at: 出厂时期
- VehicleInfo.state: 当前状态 (1:离线 2:在线空闲 3: 现场驾驶中 4: 远程驾驶中)
- VehicleInfo.permit_state: 遥操状态 (0:允许 1:禁用)
- VehicleInfo.update_at: 更新时间
- """
- update_dict = dict()
- update_dict['permit_state'] = 1
- item = Global.mdb.update_one_by_id('VehicleInfo', uuid, update_dict, need_back=True)
- return dict(code=0, data=item)
- async def code2005(**sources):
- """
- 允许指定车辆远程操作
- """
- # --- check ---
- uuid = sources.get('uuid')
- if not uuid:
- return dict(code=1, details=f"something is wrong.")
- # --- check ---
- item = Global.mdb.get_one_by_id('VehicleInfo', uuid)
- if not item:
- return dict(code=2, details=f"something is wrong.")
- # --- update ---
- """
- VehicleInfo: 车辆信息表
- VehicleInfo.pid: 车牌号
- VehicleInfo.type: 车型号
- VehicleInfo.host_address: 工控机地址
- VehicleInfo.rtk_address: rtk地址
- VehicleInfo.cpe_address: cpe地址
- VehicleInfo.release_at: 出厂时期
- VehicleInfo.state: 当前状态 (1:离线 2:在线空闲 3: 现场驾驶中 4: 远程驾驶中)
- VehicleInfo.permit_state: 遥操状态 (0:允许 1:禁用)
- VehicleInfo.update_at: 更新时间
- """
- update_dict = dict()
- update_dict['permit_state'] = 0
- item = Global.mdb.update_one_by_id('VehicleInfo', uuid, update_dict, need_back=True)
- return dict(code=0, data=item)
- async def code2006(**sources):
- """
- 删除指定车辆
- """
- # --- check ---
- uuid = sources.get('uuid')
- if not uuid:
- return dict(code=1, details=f"something is wrong.")
- # --- check ---
- item = Global.mdb.get_one_by_id('VehicleInfo', uuid)
- if not item:
- return dict(code=2, details=f"something is wrong.")
- # --- clean ---
- Global.mdb.remove_one_by_id('VehicleInfo', uuid)
- return dict(code=0, data=uuid)
- async def code2007(**sources):
- """
- 获取指定作业车辆详情
- """
- uuid = sources.get('uuid')
- if not uuid:
- return dict(code=1, details=f"something is wrong.")
- item = Global.mdb.get_one_by_id('VehicleInfo', uuid)
- if not item:
- return dict(code=2, details=f"something is wrong.")
- # --- fill ---
- """
- VehicleInfo: 车辆信息表
- VehicleInfo.pid: 车牌号
- VehicleInfo.type: 车型号
- VehicleInfo.host_address: 工控机地址
- VehicleInfo.rtk_address: rtk地址
- VehicleInfo.cpe_address: cpe地址
- VehicleInfo.release_at: 出厂时期
- VehicleInfo.state: 当前状态 (1:离线 2:在线空闲 3: 现场驾驶中 4: 远程驾驶中)
- VehicleInfo.permit_state: 遥操状态 (0:允许 1:禁用)
- VehicleInfo.update_at: 更新时间
- """
- item.pop('_id')
- item['uuid'] = uuid
- return dict(code=0, data=item)
|