Ejemplo n.º 1
0
    def exportToExcel(self, rowdata):

        key = [
            'id', 'create_time', 'update_time', 'create_id', 'update_id',
            'code', 'name', 'valid_date', 'apply_id', 'apply_name',
            'apply_date', 'checker_id', 'checker_name', 'check_date',
            'apply_status', 'video_type', 'sender_id', 'sender_name',
            'send_date', 'send_time', 'send_status'
        ]

        messageList = []
        for i, item in enumerate(rowdata):
            messageInfo = dict(zip(key, item))
            messageList.append(messageInfo)

        cur = self.db.getCursor()
        utils.getDataDict(cur, messageList, "send_status",
                          "PROGRAM_SEND_STATUS", "send_status_name")
        utils.getDataDict(cur, messageList, "apply_status",
                          "PROGRAM_APPLY_STATUS", "apply_status_name")

        data = []
        sn = 1
        for item in messageList:

            if 'send_status_name' not in item:
                item['send_status_name'] = "未发送"

            if 'apply_status_name' not in item:
                item['apply_status_name'] = "未提交"

            itemData = []
            itemData.append(sn)
            sn = sn + 1
            itemData.append(item['name'])  # 节目单名称
            itemData.append(item['valid_date'])  # 生效日期
            itemData.append(item['apply_name'])  # 申请人姓名
            itemData.append(item['apply_date'])  # 申请日期
            itemData.append(item['checker_name'])
            itemData.append(item['check_date'])  # 审核日期
            itemData.append(item['apply_status_name'])  # 申请状态
            itemData.append(item['sender_name'])  # 发送人姓名
            itemData.append(item['send_date'])  # 发送日期
            itemData.append(item['send_time'])  # 发送日期
            itemData.append(item['send_status_name'])  # 发送状态

            data.append(itemData)

        struct = "SN, 节目单名称, 生效日期, 申请人姓名, 申请日期, 审核人姓名, 审核日期, 申请状态, 发送者姓名, 发送日期, 发送时间, 发送状态"

        path = {}
        path = excel.createTempFile("xls")

        excel.saveExcel(path['path'], struct, data)

        logInfo = " %s 下载了节目单清单 " % self.objUserInfo['name']
        operation_log(self.db).addLog(self.GetUserInfo(), "listManage",
                                      logInfo, 0)

        self.response(path)
Ejemplo n.º 2
0
    def delete(self):
        alldata = self.getRequestData()
        vid = self.getParam(alldata, "vid", 0)
        if vid == 0:
            raise BaseError(801, "必须指定待更删除的车辆ID!")

        sql = " select v.serial_no, v.code from pis.vechicle v "
        sql += " where v.id = %s" % vid

        cur = self.db.getCursor()
        cur.execute(sql)
        rows = cur.fetchall()
        logInfo = "删除车辆:序列号:%s, 编号:%s" % (rows[0][0], rows[0][1])

        # 删除车辆记录
        s.remove(vid, table="pis.vechicle", key="id", delete=True)

        # 删除车站安装的控制器信息

        # 记录日志并退出
        operation_log(self.db).addLog(self.GetUserInfo(), "vehicleManage",
                                      logInfo, sid)

        # 重新获取线路的车站列表,以更新站点树
        # lineNode = lineManage.getStationList(lid)

        self.response(vid)
Ejemplo n.º 3
0
	def post(self):

		alldata = self.getRequestData()

		s = rsuProjectManage(self.db)
		
		lsData = {
			'project_name'	: 'project_name',
			'project_amount': 'project_amount', 
			'sign_date' 	: 'sign_date',
			'sign_addr' 	: 'sign_addr',
			'parta_id'		: 'parta_id', 
			'parta_code' 	: 'parta_code',
			'parta_man_name': 'parta_man_name',
			'parta_title' 	: 'parta_title',
			'partb_id'		: 'partb_id', 
			'partb_code' 	: 'partb_code',
			'partb_man_name': 'partb_man_name',
			'partb_title' 	: 'partb_title',
		}

		data = {}
		for (k, v) in lsData.items():
			try:
				data[k] = alldata[v]
			except:
				pass

		# LogI("RSU 项目信息:", data)
		system_user_id = self.GetSystemUserID()

		db = self.getDB("rsu.rsu_project")

		# 只对比记录状态为正常的记录

		# 检查合同名称是否重复
		result = db.findByCond("project_name", "project_name = '%s' "%(data['project_name']))
		if len( result['rows'] ) > 0 :
			raise BaseError(801, "数据错误:合同 %s 已经存在!"%data['project_name'])

		# 检查合同编号是否重复
		result = db.findByCond("parta_code", "parta_code = '%s' and system_user_id = %d"%(data['parta_code'], system_user_id))
		if len( result['rows'] ) > 0 :
			raise BaseError(801, "数据错误:甲方合同编号 %s 已经存在!"%data['parta_code'])

		result = db.findByCond("partb_code", "partb_code = '%s' and system_user_id = %d"%(data['partb_code'], system_user_id))
		if len( result['rows'] ) > 0 :
			raise BaseError(801, "数据错误:乙方合同编号 %s 已经存在!"%data['partb_code'])

		data['create_id'] 		= self.objUserInfo['id']
		data['create_time'] 	= datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
		data['system_user_id'] 	= self.GetSystemUserID()

		id = s.save(data, table = 'rsu.rsu_project')

		# 创建项目成功,记录日志并退出
		operation_log(self.db).addLog(self.GetUserInfo(), "rsuProjectManage", 
			"%s 创建 RSU 项目:%s"%(self.objUserInfo['name'], data['project_name']), id)

		self.response(id)
Ejemplo n.º 4
0
    def delete(self):
        alldata = self.getRequestData()
        tid = self.getParam(alldata, "id", 0)
        if tid == 0:
            raise BaseError(801, "参数错误:缺少待更删除的列车ID!")

        sql = " select t.name, t.code from pis.train t "
        sql += " where t.id = %s" % tid

        cur = self.db.getCursor()
        cur.execute(sql)
        rows = cur.fetchall()
        logInfo = "删除列车:名称:%s, 编号:%s" % (rows[0][0], rows[0][1])

        # 删除列车的控制器
        sql = "delete from pis.controller ct where ct.install_id = %d and ct.install_type < '2' " % tid
        cur.execute(sql)

        s = trainManage(self.db)

        # 删除列车记录
        s.remove(tid, table="pis.train", key="id", delete=True)

        # 记录日志并退出
        operation_log(self.db).addLog(self.GetUserInfo(), "trainManage",
                                      logInfo, tid)
        self.response(tid)
Ejemplo n.º 5
0
    def delete(self):

        alldata = self.getRequestData()
        if self.getParam(alldata, "id", 0) == 0:
            raise BaseError(801, "必须指定待删除的公告ID!")

        bid = self.getParam(alldata, "id", 0)

        s = oaBulletinBoardManager(self.db)

        sql = " select bb.title, bb.code from oa.bulletinboard bb "
        sql += " where bb.id = %s" % bid

        cur = self.db.getCursor()
        cur.execute(sql)
        rows = cur.fetchall()
        logInfo = "删除公告:标题:%s, 编号:%s" % (rows[0][0], rows[0][1])

        # 删除记录,将数据移动到历史表中
        MoveDeleteRecord("oa", "bulletinboard", bid, self.GetUserID())

        # 记录日志并退出
        operation_log(self.db).addLog(self.GetUserInfo(),
                                      "BulletinBoardManage", logInfo, bid)

        self.response(bid)
Ejemplo n.º 6
0
    def put(self):
        alldata = self.getRequestData()
        s = DataDictTypeManage(self.db)

        lsData = {
            'id': 'id',
            'code': 'code',
            'name': 'name',
            'status': 'status',
            'description': 'description',
        }

        data = {}
        for (k, v) in lsData.items():
            try:
                data[k] = alldata[v]
            except:
                pass

        # 检查名称是否重复
        db = self.getDB("system.code_type")
        result = db.findByCond(
            "code", "( code = '%s' or name = '%s' ) and id <> %s " %
            (data['code'], data['name'], data['id']))
        if len(result['rows']) > 0:
            raise BaseError(
                801,
                "数据错误:字典类型编号 %s 或名称 %s 已经存在!" % (data['code'], data['name']))

        id = s.save(data, data['id'], table='system.code_type', key='id')
        operation_log(self.db).addLog(self.GetUserInfo(), "dictManage",
                                      "更新数据字典信-%s" % data['name'], data['id'])
        self.response(data)
Ejemplo n.º 7
0
    def delete(self):

        paramData = self.getRequestData()
        device_id = self.getParam(paramData, "device_id", 0)

        sql = "select dl.device_code, dl.device_name from public.device_list dl where dl.id = %d" % device_id

        cur = self.db.getCursor()
        cur.execute(sql)
        rows = cur.fetchall()
        if len(rows) == 0:
            self.response(0)

        logInfo = "%s 删除设备:%s(%s)" % (self.objUserInfo['name'], rows[0][1],
                                      rows[0][0])

        # 删除记录,将数据移动到历史表中
        MoveDeleteRecord("public", "device_list", device_id, self.GetUserID())
        rsuid = int(self.getParam(paramData, "id", 0))
        MoveDeleteRecord("rsu", "rsu_list", rsuid, self.GetUserID())

        # 更新成功,记录日志并退出
        operation_log(self.db).addLog(self.GetUserInfo(), "rsuDeviceManage",
                                      logInfo, device_id)

        self.response(device_id)
Ejemplo n.º 8
0
    def delete(self):

        alldata = self.getRequestData()
        id = self.getParam(alldata, "id", 0)
        unit_id = self.getParam(alldata, "unit_id", 0)

        if id == 0 and unit_id == 0:
            raise BaseError(801, "参数错误:必须指定待更删除的节目ID!")

        if id > 0:
            # 删除单个节目记录,不删除文件
            logInfo = deleteProgramFile(self, alldata['list_id'],
                                        alldata['unit_id'], id, alldata)

        elif unit_id > 0:
            # 删除节目记录
            logInfo = deleteProgramFile(self, alldata['list_id'],
                                        alldata['unit_id'], 0, alldata)

        else:
            raise BaseError(801, "参数错误:必须指定待更删除的节目ID或节目栏ID!")

        # 记录日志并退出
        operation_log(self.db).addLog(self.GetUserInfo(), "programInfo",
                                      logInfo, id)

        self.response(id)
Ejemplo n.º 9
0
    def exportToExcel(self, rowdata):

        key = [
            'id', 'create_time', 'update_time', 'create_id', 'update_id',
            'msg_list_id', 'sender_type', 'sender_name', 'sender_code',
            'send_date', 'send_time', 'sender_addr', 'receiver_type',
            'receiver_name', 'receiver_code', 'receive_date', 'receive_time',
            'receiver_addr', 'message_type', 'message_sn', 'content_type',
            'bin_content', 'text_content', 'send_status'
        ]

        messageList = []
        for i, item in enumerate(rowdata):
            messageInfo = dict(zip(key, item))
            messageList.append(messageInfo)

        cur = self.db.getCursor()
        utils.getDataDict(cur, messageList, "send_status",
                          "PROGRAM_SEND_STATUS", "send_status_name")
        utils.getDataDict(cur, messageList, "message_type",
                          "MSG_TYPE_CONTROLLER", "message_type_name")

        data = []
        sn = 1
        for item in messageList:

            if 'send_status_name' not in item:
                item['send_status_name'] = "未发送"

            if 'apply_status_name' not in item:
                item['apply_status_name'] = "未提交"

            itemData = []
            itemData.append(sn)
            sn = sn + 1

            itemData.append(messageInfo['sender_name'])
            itemData.append(messageInfo['send_date'])
            itemData.append(messageInfo['send_time'])
            itemData.append(messageInfo['receiver_name'])
            itemData.append(messageInfo['receive_date'])
            itemData.append(messageInfo['receive_time'])
            itemData.append(messageInfo['message_type'])
            itemData.append(messageInfo['message_sn'])
            itemData.append(messageInfo['text_content'])

            data.append(itemData)

        struct = "SN, 发送方名称, 发送日期, 发送时间, 接收方名称, 接收日期, 接收时间, 消息类别, 消息序号, 消息正文"

        path = {}
        path = excel.createTempFile("xls")

        excel.saveExcel(path['path'], struct, data)

        logInfo = " %s 下载了消息发送详单 " % self.objUserInfo['name']
        operation_log(self.db).addLog(self.GetUserInfo(), "messageManage",
                                      logInfo, 0)

        self.response(path)
Ejemplo n.º 10
0
    def delete(self):

        alldata = self.getRequestData()
        itemID = self.getParam(alldata, "id", 0)
        if itemID == 0:
            raise BaseError(801, "参数错误:缺少待删除的属性ID!")

        # 属性归属的componentID,暂时一个属性只能归属一个组件,不能归属多个组件
        oid = int(self.getParam(alldata, "component_id", "0"))
        if oid == 0:
            raise BaseError(801, "缺少属性归属的组件ID!")

        logInfo = '属性 %s 被删除' % alldata['name']

        # 删除记录
        s = propertyManage(self.db)
        s.remove(itemID, table="public.property_list", key="id", delete=True)

        # 记录日志并退出
        operation_log(self.db).addLog(self.GetUserInfo(), "propertyManage",
                                      logInfo, itemID)

        # 删除和组件的关系
        s.remove(itemID,
                 table="public.component_property_list",
                 key="property_id",
                 delete=True)

        self.response(itemID)
Ejemplo n.º 11
0
    def put(self):

        alldata = self.getRequestData()
        if self.getParam(alldata, "id", 0) == 0:
            raise BaseError(801, "必须指定待更新信息的节目栏ID!")

        s = programUnitManage(self.db)

        lsData = {
            'id': 'id',
            'name': 'name',
            'start_time': 'start_time',
            'end_time': 'end_time',
            'list_id': 'list_id',
            'sort': 'sort',
        }

        data = {}
        for (k, v) in lsData.items():
            try:
                data[k] = alldata[v]
            except:
                pass

        db = self.getDB("pis.program_unit")

        # # 检查名称是否重复
        # result = db.findByCond("name", "name = '%s' and id <> %s "%(data['name'], data['id']) )
        # if len( result['rows'] ) > 0 :
        #     raise BaseError(801, "节目栏名称 %s 重复!"%data['name'])

        # 检查开始时间和结束时间是否重复
        cond = " (start_time < '%s' and end_time > '%s' " % (
            data['start_time'], data['end_time'])
        cond += " or start_time > '%s' and end_time < '%s' ) and ( id <> %d )" % (
            data['start_time'], data['end_time'], data['id'])
        cond += " and list_id = %d " % data['list_id']

        result = db.findByCond("id", cond)
        if len(result['rows']) > 0:
            raise BaseError(
                801,
                "节目栏时间 %s - %s 重复!" % (data['start_time'], data['end_time']))

        # # 检查序号是否重复
        # result = db.findByCond("id", "sort = %d and list_id = %d and id <> %d"%(data['sort'], data['list_id'], data['id']) )
        # if len( result['rows'] ) > 0 :
        #     raise BaseError(801, "节目栏序号 %d 在节目单中重复!"%data['sort'])

        data['update_time'] = datetime.datetime.now().strftime(
            '%Y-%m-%d %H:%M:%S')
        data['update_id'] = self.objUserInfo['id']
        id = s.save(data, data['id'], table='pis.program_unit')

        logInfo = "更新节目栏信息:开始时间:%s,结束时间:%s" % (data['start_time'],
                                               data['end_time'])

        operation_log(self.db).addLog(self.GetUserInfo(), "programUnitManage",
                                      logInfo, id)
        self.response(data)
Ejemplo n.º 12
0
    def delete(self):

        fileInfo = self.getRequestData()

        s = program_file(self.db)

        id = self.getParam(fileInfo, "id", 0)
        if id == 0:
            raise BaseError(801, "参数错误:缺少待更删除的节目文件ID!")

        filename = self.getParam(fileInfo, "file_name", "")
        if filename == "":
            raise BaseError(801, "参数错误:缺少待更删除的节目文件名称!")

        filePath = self.getParam(fileInfo, "file_path", "")
        if filePath == "":
            raise BaseError(801, "参数错误:缺少待更删除的节目文件路径!")

        logInfo = "%s 删除节目文件:名称:%s" % (self.objUserInfo['name'], filename)

        # 删除节目文件记录
        s.remove(id, table="pis.program_file", key="id", delete=True)

        # 删除节目文件
        # logI("删除文件:%s"%filePath)
        if os.path.exists(filePath):
            os.remove(filePath)

        # 记录日志并退出
        operation_log(self.db).addLog(self.GetUserInfo(), "programFileManage",
                                      logInfo, id)
        self.response(id)
Ejemplo n.º 13
0
    def put(self):
        alldata = self.getRequestData()

        # 更新的时候只能更新路径
        lsData = {'id': 'id', 'menu_code': 'menu_code', 'path': 'path'}

        data = {}
        for (k, v) in lsData.items():
            try:
                data[k] = alldata[v]
            except:
                pass

        if 'id' not in data or 'path' not in data or 'menu_code' not in data:
            raise BaseError(801, "参数错误:缺少菜单项数据!")

        data['update_id'] = self.objUserInfo['id']
        data['update_time'] = datetime.datetime.now().strftime(
            '%Y-%m-%d %H:%M:%S')

        s = MenuItem(self.db)
        id = s.save(data, data['id'], table="system.menu_item")

        operation_log(self.db).addLog(
            self.GetUserInfo(), "menuItemManage",
            "更新菜单项: code: %s, path: %s" % (data['menu_code'], data['path']),
            id)

        self.response(id)
Ejemplo n.º 14
0
    def delete(self):

        alldata = self.getRequestData()
        s = programUnitManage(self.db)

        unit_id = self.getParam(alldata, "id", 0)
        if unit_id == 0:
            raise BaseError(801, "必须指定待更删除的节目栏ID!")

        list_id = self.getParam(alldata, "list_id", 0)
        if list_id == 0:
            raise BaseError(801, "必须指定待更删除车站归属的运营线路ID!")

        # 不删除节目栏归属的节目信息
        # programInfo.deleteProgramFile(self, list_id, unit_id, 0, alldata)

        logInfo = "删除节目栏:开始时间:%s, 结束时间:%s" % (alldata['start_time'],
                                              alldata['end_time'])

        # 删除节目栏记录
        s.remove(unit_id, table="pis.program_unit", key="id", delete=True)

        # 记录日志并退出
        operation_log(self.db).addLog(self.GetUserInfo(), "programUnitManage",
                                      logInfo, unit_id)

        self.response(unit_id)
Ejemplo n.º 15
0
    def post(self):

        alldata = self.getRequestData()

        s = gpsModuleManage(self.db)

        lsData = {
            'name': 'name',
            'code': 'code',
            'serial_no': 'serial_no',
            'device_type': 'device_type',
            'vendor': 'vendor',
            'mac_addr': 'mac_addr',
            'install_date': 'install_date',
            'install_batch': 'install_batch',
            'install_type': 'install_type',
            'install_id': 'install_id',
        }

        data = {}
        for (k, v) in lsData.items():
            try:
                data[k] = alldata[v]
            except:
                pass

        # LogI("定位模块信息:", data)

        db = self.getDB("iot.gps_module")

        # 检查定位模块名称是否重复
        result = db.findByCond("name", "name = '%s'" % (data['name']))
        if len(result['rows']) > 0:
            raise BaseError(801, "数据错误:定位模块名称 %s 已经存在!" % data['name'])

        # 检查定位模块编号是否重复
        result = db.findByCond("code", "code = '%s'" % (data['code']))
        if len(result['rows']) > 0:
            raise BaseError(801, "数据错误:定位模块编号 %s 已经存在!" % data['code'])

        # 检查定位模块MAC地址是否重复
        result = db.findByCond("mac_addr",
                               "mac_addr = '%s'" % (data['mac_addr']))
        if len(result['rows']) > 0:
            raise BaseError(801, "数据错误:定位模块MAC地址 %s 已经存在!" % data['mac_addr'])

        data['create_id'] = self.objUserInfo['id']
        data['create_time'] = datetime.datetime.now().strftime(
            '%Y-%m-%d %H:%M:%S')

        id = s.save(data, table='iot.gps_module')

        # 创建定位模块成功,记录日志并退出
        operation_log(self.db).addLog(
            self.GetUserInfo(), "gpsModuleManage",
            "%s 创建定位模块:名称:%s,编号:%s,MAC地址:%s" %
            (self.objUserInfo['name'], data['name'], data['code'],
             data['mac_addr']), id)

        self.response(id)
Ejemplo n.º 16
0
    def delete(self):

        alldata = self.getRequestData()
        subLineID = self.getParam(alldata, "id", 0)
        if subLineID == 0:
            raise BaseError(801, "参数错误:缺少待更删除的支线ID!")

        sql = " select sli.sub_line_name, sli.line_id from pis.sub_line_info sli "
        sql += " where sli.id = %s" % subLineID

        cur = self.db.getCursor()
        cur.execute(sql)
        rows = cur.fetchall()
        logInfo = "删除运营支线:名称:%s, 所属运营线路ID: %d" % (rows[0][0], rows[0][1])

        s = subLineInfoManage(self.db)
        s.remove(subLineID, table="pis.sub_line_info", key="id", delete=True)

        # 记录日志并退出
        operation_log(self.db).addLog(self.GetUserInfo(), "subLineInfoManage",
                                      logInfo, subLineID)

        # 更新支线信息
        self.UpdateSubLineInfo(rows[0][1])

        self.response(subLineID)
Ejemplo n.º 17
0
    def delete(self):

        listInfo = self.getRequestData()

        # logI("待删除节目单信息:", listInfo)

        id = self.getParam(listInfo, "id", 0)
        if id == 0:
            raise BaseError(801, "参数错误:缺少待更删除的节目单ID!")

        logInfo = "%s 删除节目单及相关节目栏、节目信息:节目单名称:%s, 生效效期:%s" % (
            self.objUserInfo['name'], listInfo['name'], listInfo['valid_date'])

        # 不删除节目文件

        # 删除节目单所有的节目信息
        s = programList(self.db)
        s.remove(id, table="pis.program_info", key="list_id", delete=True)

        # 删除节目栏记录
        s.remove(id, table="pis.program_unit", key="list_id", delete=True)

        # 删除节目单记录
        s.remove(id, table="pis.program_list", key="id", delete=True)

        # 记录日志并退出
        operation_log(self.db).addLog(self.GetUserInfo(), "programList",
                                      logInfo, id)
        self.response(id)
Ejemplo n.º 18
0
    def post(self):

        alldata = self.getRequestData()

        s = rsuDeviceManage(self.db)

        # 分别向 device_list 和 rsu_list 插入数据
        lsData = {
            'device_name': 'device_name',
            'device_name_en': 'device_name_en',
            'device_code': 'device_code',
            'device_sn': 'device_sn',
            'device_desc': 'device_desc',
            'device_type_id': 'device_type_id',
            'vendor_id': 'vendor_id',
            'produce_date': 'produce_date',
            'produce_batch': 'produce_batch',
            'produce_location': 'produce_location',
            'qr_code': 'qr_code',
            'start_used_date': 'start_used_date',
            'end_used_date': 'end_used_date',
            # 'device_status' 	: 'device_status',
        }

        data = {}
        for (k, v) in lsData.items():
            try:
                data[k] = alldata[v]
            except:
                pass

        device_id = self.insertRSUDevice(data)

        lsData = {
            'ip_address1': 'ip_address1',
            'ip_address2': 'ip_address2',
            'longtitude': 'longtitude',
            'latitude': 'latitude',
            'project_id': 'project_id',
            'install_location': 'install_location',
            'map_location': 'map_location',
            'install_date': 'install_date',
        }

        data = {}
        for (k, v) in lsData.items():
            try:
                data[k] = alldata[v]
            except:
                pass

        rsu_id = self.insertRSUData(data)

        # 创建RSU成功,记录日志并退出
        operation_log(self.db).addLog(
            self.GetUserInfo(), "rsuDeviceManage", "%s 创建RSU设备:名称:%s" %
            (self.objUserInfo['name'], alldata['device_name']), rsu_id)

        self.response(rsu_id)
Ejemplo n.º 19
0
    def put(self):

        alldata = self.getRequestData()
        if self.getParam(alldata, "id", 0) == 0:
            raise BaseError(801, "参数错误:缺少待更新供应商的ID!")

        s = organizationManage(self.db)

        lsData = {
            'id': 'id',
            'name': 'name',
            'name_en': 'name_en',
            'abbr': 'abbr',
            'abbr_en': 'abbr_en',
            'registe_date': 'registe_date',
            'registe_addr': 'registe_addr',
            'organization_type': 'organization_type',
            'current_addr': 'current_addr',
            'business_scope': 'business_scope',
            'social_credit_code': 'social_credit_code',
            'legal_representative': 'legal_representative',
            'legal_id_type': 'legal_id_type',
            'legal_id_no': 'legal_id_no',
            'contactor_name': 'contactor_name',
            'contactor_mobile': 'contactor_mobile',
            'logo_file': 'logo_file',
            'description': 'description',
            'system_user_id': 'system_user_id',
        }

        data = {}
        for (k, v) in lsData.items():
            try:
                data[k] = alldata[v]
            except:
                pass

        db = self.getDB('public.organization')

        # 检查是否重复,同一个System_User_ID里面只能有一个
        result = db.findByCond(
            "name",
            " (name = '%s' or name_en = '%s') and system_user_id = %d and id <> %d"
            % (data['name'], data['name_en'], data['system_user_id'],
               data['id']))
        if len(result['rows']) > 0:
            raise BaseError(801, "参数错误: 组织 %s 已经存在!" % data['name'])

        userInfo = self.GetUserInfo()
        data['update_id'] = userInfo['id']
        data['update_time'] = GetSystemTime()

        id = s.save(data, data['id'], table='public.organization')

        logInfo = "更新组织团体信息:%s,%s" % (data['name'], data['name_en'])
        operation_log(self.db).addLog(userInfo, "organizationManage", logInfo,
                                      id)

        self.response(id)
Ejemplo n.º 20
0
    def post(self):

        alldata = self.getRequestData()

        s = programList(self.db)

        lsData = {
            'name': 'name',
            'valid_date': 'valid_date',
            'video_type': 'video_type',
        }

        data = {}
        for (k, v) in lsData.items():
            try:
                data[k] = alldata[v]
            except:
                pass

        # 检查名称是否重复
        db = self.getDB("pis.program_list")
        result = db.findByCond("name", "name = '%s' " % data['name'])
        if len(result['rows']) > 0:
            raise BaseError(801, "数据错误:节目单名称已经存在!")

        data['create_id'] = self.objUserInfo['id']
        data['create_time'] = datetime.datetime.now().strftime(
            '%Y-%m-%d %H:%M:%S')

        # 节目单初始值
        data['apply_status'] = '1'  # 未提交审核

        id = s.save(data, table='pis.program_list')

        data['code'] = id
        s.save(data, id, table='pis.program_list')

        # 创建节目栏
        hour = 0
        while hour < 24:
            unit = {
                'list_id': id,
                'start_time': "%02d:00:00" % hour,
                'end_time': "%02d:59:59" % hour,
                'sort': hour - 4,
            }
            hour += 1
            uid = s.save(unit, table="pis.program_unit")
            unit['code'] = uid
            s.save(unit, uid, table="pis.program_unit")

        # 创建节目单成功,记录日志并退出
        operation_log(self.db).addLog(
            self.GetUserInfo(), "listManage", "%s 创建节目单:名称:%s,生效日期:%s" %
            (self.objUserInfo['name'], data['name'], data['valid_date']), id)

        self.response(id)
Ejemplo n.º 21
0
    def exportToExcel(self, rowdata):

        key = [
            'id', 'vendor_id', 'vendor_code', 'name', 'name_en', 'abbr',
            'abbr_en', 'abbr', 'abbr_en', 'registe_addr', 'current_addr',
            'logo_file', 'contactor_name', 'contactor_mobile', 'vendor_type',
            'description', 'certifaction_status', 'certifaction_date',
            'certifaction_desc', 'start_date', 'end_date'
        ]

        vendorList = []
        for i, item in enumerate(rowdata):
            vendorInfo = dict(zip(key, item))
            vendorList.append(vendorInfo)

        cur = self.db.getCursor()
        getDataDict(cur, vendorList, "certifaction_status",
                    "VENDOR_COOPERATION_STATUS", "status_name")
        getDataDict(cur, vendorList, "vendor_type", "VENDOR_TYPE",
                    "vendor_type_name")

        data = []
        sn = 1
        for item in vendorList:

            itemData = []
            itemData.append(sn)
            sn = sn + 1
            itemData.append(item['name'])
            itemData.append(item['name_en'])
            itemData.append(item['abbr'])
            itemData.append(item['registe_addr'])
            itemData.append(item['contactor_name'])
            itemData.append(item['contactor_mobile'])
            itemData.append(item['vendor_type_name'])
            itemData.append(item['description'])
            itemData.append(item['status_name'])
            itemData.append(item['certifaction_date'])
            itemData.append(item['start_date'])
            itemData.append(item['end_date'])
            itemData.append(item['certifaction_desc'])

            data.append(itemData)

        struct = "SN, 供应商名称, 供应商名称(英), 供应商缩写, 供应商地址, 联系人, 联系电话, 供应商类型, 供应商描述, 供应商状态, 认证日期, 合作开始日期, 合作结束日期"

        path = {}
        path = excel.createTempFile("xls")

        excel.saveExcel(path['path'], struct, data)

        logInfo = " %s 下载了供应商清单 " % self.objUserInfo['name']
        operation_log(self.db).addLog(self.GetUserInfo(), "vendorManage",
                                      logInfo, 0)

        self.response(path)
Ejemplo n.º 22
0
    def exportToExcel(self, rowdata):

        key = [
            'id', 'name', 'name_en', 'abbr', 'abbr_en', 'organization_type',
            'registe_date', 'registe_addr', 'current_addr', 'business_scope',
            'social_credit_code', 'legal_representative', 'legal_id_type',
            'legal_id_no', 'contactor_name', 'contactor_mobile', 'logo_file',
            'description', 'system_user_id'
        ]

        organizationList = []
        for i, item in enumerate(rowdata):
            organizationInfo = dict(zip(key, item))
            organizationList.append(organizationInfo)

        cur = self.db.getCursor()
        getDataDict(cur, organizationList, "organization_type",
                    "ORGANIZATION_TYPE", "organization_type_name")

        data = []
        sn = 1
        for item in organizationList:

            itemData = []
            itemData.append(sn)
            sn = sn + 1
            itemData.append(item['name'])
            itemData.append(item['name_en'])
            itemData.append(item['abbr'])
            itemData.append(item['abbr_en'])
            itemData.append(item['organization_type_name'])
            itemData.append(item['registe_date'])
            itemData.append(item['registe_addr'])
            itemData.append(item['current_addr'])
            itemData.append(item['business_scope'])
            itemData.append(item['social_credit_code'])
            itemData.append(item['legal_representative'])
            itemData.append(item['contactor_name'])
            itemData.append(item['contactor_mobile'])
            itemData.append(item['description'])

            data.append(itemData)

        struct = "SN, 名称, 名称(英), 中文缩写, 英文缩写, 类型, 注册日期, 注册地址, 当前地址, 经营范围, 社会信用代码, 法人代表, 联系人员, 电话号码, 描述"

        path = {}
        path = excel.createTempFile("xls")

        excel.saveExcel(path['path'], struct, data)

        logInfo = " %s 下载了组织团体清单 " % self.objUserInfo['name']
        operation_log(self.db).addLog(self.GetUserInfo(), "organizationManage",
                                      logInfo, 0)

        self.response(path)
Ejemplo n.º 23
0
    def post(self):

        alldata = self.getRequestData()
        system_user_id = self.GetSystemUserID()

        s = deviceTypeManage(self.db)

        lsData = {
            'code': 'code',
            'name': 'name',
            'name_en': 'name_en',
            'abbr_en': 'abbr_en',
            'description': 'description',
            'system_user_id': 'system_user_id',
        }

        data = {}
        for (k, v) in lsData.items():
            try:
                data[k] = alldata[v]
            except:
                pass

        db = self.getDB('public.device_type')

        # 检查名称是否重复
        result = db.findByCond(
            "name",
            " (name = '%s' or name_en = '%s' ) and system_user_id = %d " %
            (data['name'], data['name_en'], system_user_id))
        if len(result['rows']) > 0:
            raise BaseError(801, "参数错误:设备名称 %s 已经存在!" % data['name'])

        userInfo = self.GetUserInfo()

        serialNo = GetSerialNo(userInfo['system_user_id'],
                               "device_type_serial")
        if serialNo == -1:
            raise BaseError(801, "获取设备类型序列号出错!")

        # 设备类型编号规则:DEV_AAAAAA,AAAAAA为序列号,为参数表中的值
        data['code'] = "DEV-TYPE-%06d" % serialNo
        data['system_user_id'] = system_user_id

        data['create_id'] = userInfo['id']
        data['create_time'] = GetSystemTime()

        logI("设备类型:", data)
        device_id = s.save(data, table='public.device_type')

        logInfo = "创建设备类型:%s,%s" % (data['name'], data['name_en'])
        operation_log(self.db).addLog(self.GetUserInfo(), "deviceTypeManage",
                                      logInfo, device_id)

        self.response(device_id)
Ejemplo n.º 24
0
    def post(self):

        alldata = self.getRequestData()

        s = programUnitManage(self.db)

        lsData = {
            'name': 'name',
            'start_time': 'start_time',
            'end_time': 'end_time',
            'list_id': 'list_id',
            'sort': 'sort',
        }

        data = {}
        for (k, v) in lsData.items():
            try:
                data[k] = alldata[v]
            except:
                pass

        db = self.getDB("pis.program_unit")

        # 检查开始时间和结束时间是否重复
        cond = " (start_time < '%s' and end_time > '%s' ) " % (
            data['start_time'], data['end_time'])
        cond += " or ( start_time > '%s' and end_time < '%s' )" % (
            data['start_time'], data['end_time'])
        cond += " and list_id = %d " % data['list_id']

        result = db.findByCond("id", cond)
        if len(result['rows']) > 0:
            raise BaseError(
                801,
                "节目栏时间 %s - %s 重复!" % (data['start_time'], data['end_time']))

        # 新建节目栏

        data['create_id'] = self.objUserInfo['id']
        data['create_time'] = datetime.datetime.now().strftime(
            '%Y-%m-%d %H:%M:%S')

        # 创建节目栏记录
        id = s.save(data, table='pis.program_unit')
        data['code'] = id
        s.save(data, id, table='pis.program_unit')

        # 创建节目栏成功,记录日志并退出
        operation_log(self.db).addLog(
            self.GetUserInfo(), "programUnitManage",
            "创建节目栏信息:开始时间:%s,结束时间:%s" % (data['start_time'], data['end_time']),
            id)

        data['id'] = id
        self.response(data)
Ejemplo n.º 25
0
    def exportStationInfo(self, lid):

        sql = "select st.id, st.code, st.name, st.ip_address"
        sql += " from pis.station st"
        sql += " inner join pis.station_line sl on sl.station_id = st.id"
        sql += " where sl.line_id = %s " % lid
        sql += " order by st.code"

        cur = self.db.getCursor()
        cur.execute(sql)
        rows = cur.fetchall()

        key = ['id', 'code', 'name', 'ip_address']

        data = []
        sn = 1

        for item in rows:
            station = dict(zip(key, item))

            data.append(
                [sn, station['code'], station['name'], station['ip_address']])
            sn = sn + 1

            sql = " select lc.code, lc.name, lc.ip_address"
            sql += " from pis.controller lc"
            sql += " where lc.install_id = %s and lc.install_type >= '2' and lc.install_type <= '4' " % station[
                'id']
            sql += " order by lc.code "

            cur.execute(sql)
            rowsdata = cur.fetchall()

            key2 = ['code', 'name', 'ip_address']

            for iteminfo in rowsdata:
                controller = dict(zip(key2, iteminfo))
                data.append([
                    sn, '', '', '', controller['code'], controller['name'],
                    controller['ip_address']
                ])
                sn = sn + 1

        struct = "SN, 车站编号, 车站名称, 服务器地址, 控制器编号, 控制器类型, 控制器地址"

        path = {}
        path = excel.createTempFile("xls")

        excel.saveExcel(path['path'], struct, data)

        logInfo = " %s 下载了车站信息 " % self.objUserInfo['name']
        operation_log(self.db).addLog(self.GetUserInfo(), "listManage",
                                      logInfo, 0)

        self.response(path)
Ejemplo n.º 26
0
    def delete(self):

        alldata = self.getRequestData()
        systemUserID = self.getParam(alldata, "id", 0)
        if systemUserID == 0:
            raise BaseError(801, "参数错误:缺少待删除的系统用户ID!")

        db = self.getDB("system.system_user_list")
        result = db.findByCond('user_name,user_name_en',
                               "id = %d" % systemUserID)
        if len(result['rows']) == 0:
            raise BaseError(801, "参数错误:无法找到系统用户:%d" % systemUserID)

        rows = result['rows']
        logInfo = "删除系统用户:%s, %s" % (rows[0][0], rows[0][1])

        # 删除用户组成员数据
        db = self.getDB("system.user_group_member")
        db.deleteByCond(
            'group_id in (select id from system.user_group where system_user_id = %d)'
            % systemUserID)

        # 删除用户组菜单数据
        db = self.getDB("system.user_group_menu")
        db.deleteByCond(
            'group_id in (select id from system.user_group where system_user_id = %d)'
            % systemUserID)

        # 删除用户数据
        db = self.getDB("system.account")
        db.deleteByCond('system_user_id = %d' % systemUserID)

        # 删除用户组数据
        db = self.getDB("system.user_group")
        db.deleteByCond('system_user_id = %d' % systemUserID)

        # 删除日志记录数据
        db = self.getDB("system.operation_log")
        db.deleteByCond('system_user_id = %d' % systemUserID)

        # 删除系统用户菜单数据
        db = self.getDB("system.system_user_menu")
        db.deleteByCond('system_user_id = %d' % systemUserID)

        # 删除记录
        s = systemUserManage(self.db)
        s.remove(systemUserID,
                 table="system.system_user_list",
                 key="id",
                 delete=True)

        # 记录日志并退出
        operation_log(self.db).addLog(self.GetUserInfo(), "systemUserManage",
                                      logInfo, systemUserID)
        self.response(systemUserID)
Ejemplo n.º 27
0
    def exportToExcel(self, rowdata):

        key = [
            'id', 'name', 'code', 'serial_no', 'device_type', 'vendor',
            'mac_addr', 'install_date', 'install_batch', 'install_type',
            'install_id', 'status', 'addr'
        ]

        moduleList = []
        for i, item in enumerate(rowdata):
            logInfo = dict(zip(key, item))
            moduleList.append(logInfo)

        cur = self.db.getCursor()
        utils.getDataDict(cur, moduleList, "device_type",
                          "GPS_MODULE_DEVICE_TYPE", "device_type_name")
        utils.getDataDict(cur, moduleList, "install_type",
                          "GPS_MODULE_INSTALL_TYPE", "install_type_name")
        utils.getDataDict(cur, moduleList, "status", "GPS_MODULE_STATUS",
                          "status_name")

        data = []
        sn = 1
        for module in moduleList:

            itemData = []
            itemData.append(sn)
            sn = sn + 1
            itemData.append(module['name'])
            itemData.append(module['code'])
            itemData.append(module['serial_no'])
            itemData.append(module['device_type_name'])
            itemData.append(module['vendor'])
            itemData.append(module['mac_addr'])
            itemData.append(module['install_date'])
            itemData.append(module['install_batch'])
            itemData.append(module['install_type_name'])
            itemData.append(module['status_name'])
            itemData.append(module['addr'])

            data.append(itemData)

        struct = "SN, 名称, 编号, 序列号, 设备类型, 厂家, MAC地址, 安装日期, 安装批次, 安装类型, 状态, 最新位置"

        path = {}
        path = excel.createTempFile("xls")

        excel.saveExcel(path['path'], struct, data)

        logInfo = " %s 下载了定位模块清单 " % self.objUserInfo['name']
        operation_log(self.db).addLog(self.GetUserInfo(), "gpsModuleManage",
                                      logInfo, 0)

        return path
Ejemplo n.º 28
0
    def InsertProgramInfo(self, lid, uid, file_name, duration, sort):
        cur = self.db.getCursor()

        # 检查节目文件是否已经存在
        sql = "select file_name, file_path from pis.program_file where file_name = '%s'" % file_name
        cur.execute(sql)
        # logI("查询:%s"%sql)
        rows = cur.fetchall()
        if len(rows) == 0:
            raise BaseError(801, "节目单中文件 %s 不存在,请先上传该文件!" % file_name)

        # 文件类型是否支持
        filenameItem = file_name.split(".")
        itemLen = len(filenameItem)
        if itemLen < 2:
            raise BaseError(801, "文件名 %s 无扩展名" % file_name)

        filetype = filenameItem[itemLen - 1]
        if filetype.lower() not in PisConfig['videoType']:
            raise BaseError(801, "节目文件 %s 类型不是mp4文件!" % file_name)

        filePath = rows[0][1]
        fileName = os.path.basename(filePath)
        fileInfo = {}
        fileInfo['name'] = file_name
        fileInfo['list_id'] = lid
        fileInfo['unit_id'] = uid

        fileInfo['program_type'] = filetype.upper()
        fileInfo['file_name'] = fileName
        fileInfo['file_path'] = filePath
        fileInfo['sort'] = sort
        fileInfo['duration'] = duration
        sort = sort + 1
        fileInfo['program_source'] = ""

        fileInfo['uploader_id'] = self.objUserInfo['id']
        fileInfo['uploader_name'] = self.objUserInfo['name']
        fileInfo['upload_date'] = datetime.datetime.now().strftime(
            '%Y-%m-%d %H:%M:%S')

        fileInfo['create_time'] = datetime.datetime.now().strftime(
            '%Y-%m-%d %H:%M:%S')
        fileInfo['create_id'] = self.objUserInfo['id']

        s = programUnitManage(self.db)
        id = s.save(fileInfo, table='pis.program_info')
        fileInfo['code'] = id
        s.save(fileInfo, id, table='pis.program_info')

        # 记录日志
        logInfo = "%s 上传了节目文件:名称:%s" % (self.objUserInfo['name'], file_name)
        operation_log(self.db).addLog(self.GetUserInfo(), "programFile",
                                      logInfo, id)
Ejemplo n.º 29
0
    def delete(self):
        alldata = self.getRequestData()
        s = DataDictTypeManage(self.db)

        r = s.remove(alldata['id'], delete=True)

        operation_log(self.db).addLog(
            self.GetUserInfo(), "dictManage",
            self.objUserInfo['name'] + "删除字典" + alldata['name'], alldata['id'])

        self.response(r)
Ejemplo n.º 30
0
    def put(self):

        alldata = self.getRequestData()
        if self.getParam(alldata, "id", 0) == 0:
            raise BaseError(801, "必须指定待更新信息的车辆ID!")

        if self.getParam(alldata, "code", 0) == 0:
            raise BaseError(801, "必须指定待更新信息的车辆编码!")

        s = vehicleManage(self.db)

        lsData = {
            'id': 'id',
            'name': 'name',
            'code': 'code',
            'serial_no': 'serial_no',
            'type': 'type',
            'default_count': 'default_count',
            'train_id': 'train_id',
            'description': 'description',
        }

        data = {}
        for (k, v) in lsData.items():
            try:
                data[k] = alldata[v]
            except:
                pass

        # 检查车站名称是否重复
        db = self.getDB("pis.vehicle")
        result = db.findByCond(
            "serial_no",
            "serial_no = '%s' and id <> %s " % (data['serial_no'], data['id']))
        if len(result['rows']) > 0:
            raise BaseError(801, "车辆序列号 %s 重复!" % data['serial_no'])

        # 检查车辆编号是否重复
        result = db.findByCond(
            "code", "code = '%s' and id <> %s " % (data['code'], data['id']))
        if len(result['rows']) > 0:
            raise BaseError(801, "车辆编号 %s 已经存在!" % data['code'])

        data['update_time'] = datetime.datetime.now().strftime(
            '%Y-%m-%d %H:%M:%S')
        data['update_id'] = self.objUserInfo['id']
        id = s.save(data, data['id'], table='pis.vehicle')

        logInfo = "更新车辆信息:名称:%s,编号:%s" % (data['name'], data['code'])

        operation_log(self.db).addLog(self.GetUserInfo(), "vehicleManage",
                                      logInfo, id)
        self.response(id)