Example #1
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)
Example #2
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)
Example #3
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)
Example #4
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)
Example #5
0
    def post(self):

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

        s = componentManage(self.db)

        lsData = {
            'code': 'code',
            'name': 'name',
            'name_en': 'name_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.component_list')

        # 检查名称是否重复
        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'], "component_serial")
        if serialNo == -1:
            raise BaseError(801, "获取设备类型序列号出错!")

        # 部件编号规则:CMP_AAAAAAAA。其中,AAAAAAAA为部件序列号,从参数表中获取。
        data['code'] = "CMP_%08d" % serialNo
        data['system_user_id'] = system_user_id

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

        component_id = s.save(data, table='public.component_list')

        logInfo = "创建组件:%s,%s" % (data['name'], data['name_en'])
        operation_log(self.db).addLog(self.GetUserInfo(), "componentManage",
                                      logInfo, component_id)

        self.response(component_id)
Example #6
0
    def put(self):

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

        s = deviceTypeManage(self.db)
        system_user_id = self.GetSystemUserID()

        lsData = {
            'id': 'id',
            '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",
            "id != %d and (name = '%s' or name_en = '%s') and system_user_id = %d"
            % (data['id'], data['name'], data['name_en'], system_user_id))
        if len(result['rows']) > 0:
            raise BaseError(801, "参数错误:设备类型名称已经存在!")

        # 在更新时,不再更新编号

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

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

        logInfo = "更新设备类型:%s,%s" % (data['name'], data['name_en'])
        operation_log(self.db).addLog(userInfo, "propertyManage", logInfo,
                                      device_id)

        self.response(device_id)
Example #7
0
    def post(self):

        alldata = self.getRequestData()

        lsData = {
            'area_type': 'area_type',
            'area_code': 'area_code',
            'area_name': 'area_name',
            'area_name_en': 'area_name_en',
            'tier': 'tier',
            'parent_area_id': 'parent_area_id',
            'flag': 'flag',
        }

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

        if 'area_code' not in data or 'area_name' not in data or 'area_name_en' not in data or 'parent_area_id' not in data:
            raise BaseError(801, "参数错误:缺少区域数据!")

        # 区域代码、名称均可以重复,因此不做检查
        # 但是区域代码+名称+parent_area_id不能重复
        db = self.getDB("system.area_code")
        result = db.findByCond(
            "area_code",
            "area_code = '%s' and area_name = '%s' and parent_area_id = %d" %
            ((data['area_code'], data['area_name'], data['parent_area_id'])))
        if len(result['rows']) > 0:
            raise BaseError(
                801, "数据错误:区域信息 %s, %s 重复 %s!" %
                (data['area_name'], data['area_code']))

        data['create_id'] = self.objUserInfo['id']
        data['create_time'] = GetSystemTime()

        s = areaCodeManage(self.db)
        id = s.save(data, table="system.area_code")
        if id <= 0:
            raise BaseError(703)  #参数错误

        operation_log(self.db).addLog(self.GetUserInfo(), "areaCodeManage",
                                      "创建区域-%s" % data['area_name'], id)

        self.response(id)
Example #8
0
    def get(self):

        type_code = self.get_argument('type_code', default='')
        if type_code == '':
            raise BaseError(801, "参数错误:无数据字典类型Code!")

        rowdata = {}

        cur = self.db.getCursor()
        sql = """
            select cv.id, cv.type_id, cv.type_code, cv.code, cv.name as valuename, cv.sort, cv.status, 
                cv.create_id, cv.create_time, cv.update_id, cv.update_time, cv.description, b.name, c.name 
            from system.code_value cv 
            left join system.account b on cv.create_id=b.id 
            left join system.account c on  cv.update_id=c.id 
            where cv.type_code='%s' 
            order by cv.sort 
            """ % type_code

        cur.execute(sql)
        rows = cur.fetchall()
        rowdata[
            'struct'] = "id, type_id, type_code, code, name, sort, status, create_id, create_time, update_id, update_time, description, update_name, create_name"
        rowdata['rows'] = rows
        self.response(rowdata)
Example #9
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)
Example #10
0
    def put(self):

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

        s = vendorManage(self.db)

        lsData = {
            'id': 'id',
            'vendor_id': 'vendor_id',
            'vendor_type': 'vendor_type',
            'certifaction_date': 'certifaction_date',
            'certifaction_desc': 'certifaction_desc',
            'start_date': 'start_date',
            'end_date': 'end_date',
            'certifaction_status': 'certifaction_status',
            'system_user_id': 'system_user_id',
        }

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

        db = self.getDB('public.vendor_list')
        # 检查名称是否重复
        result = db.findByCond(
            "vendor_id", "id != %d and (vendor_id = '%d') " %
            (data['id'], data['vendor_id']))
        if len(result['rows']) > 0:
            raise BaseError(801, "参数错误:供应商名称已经存在!")

        # 在更新时,不再更新供应商编号
        userInfo = self.GetUserInfo()
        data['update_id'] = userInfo['id']
        data['update_time'] = GetSystemTime()

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

        logInfo = "更新供应商:%s,%s" % (alldata['name'], alldata['name_en'])
        operation_log(self.db).addLog(userInfo, "vendorManage", logInfo,
                                      vendor_id)

        self.response(vendor_id)
Example #11
0
    def post(self):

        alldata = self.getRequestData()

        lsData = {
            'code': 'code',
            'name': 'name',
            'sort': 'sort',
            'tier': 'tier',
            'parent_code': 'parent_code',
            'parent_id': 'parent_id',
        }

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

        if 'code' not in data or 'name' not in data or 'sort' not in data or 'tier' not in data or 'parent_id' not in data or 'parent_code' not in data:
            raise BaseError(801, "参数错误:缺少菜单数据!")

        db = self.getDB("system.menu")

        # 检查菜单编码是否重复
        result = db.findByCond("code", "code = '%s' " % (data['code']))
        if len(result['rows']) > 0:
            raise BaseError(801, "数据错误:菜单编号 %s!" % (data['code']))

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

        s = menuManage(self.db)
        id = s.save(data, table="system.menu")
        if id <= 0:
            raise BaseError(703)  #参数错误

        operation_log(self.db).addLog(self.GetUserInfo(), "menuManage",
                                      "创建菜单-%s" % data['name'], id)

        self.response(id)
Example #12
0
    def delete(self):

        alldata = self.getRequestData()
        if 'id' not in alldata or alldata['id'] < 0:
            raise BaseError(801)

        self.deleteSubMenu(alldata['id'])

        operation_log(self.db).addLog(self.GetUserInfo(), "menuManage",
                                      "删除菜单-%s" % alldata['name'],
                                      alldata['id'])
        self.response(0)
Example #13
0
    def patch(self):
        allParam = self.getRequestData()
        op = self.getParam(allParam, 'op', '')
        if op == '':
            raise BaseError(801, '系统错误:缺少操作类型OP')

        allData = {}

        if op == "area":
            # 根据地址获取相应的区域数据
            addrList = self.getParam(allParam, 'addr', '')
            if len(addrList) == 0:
                raise BaseError(801, '无有效地址!')

            # 根据地址信息进行匹配
            Address = []
            for addr in addrList:
                Address.append(getAreaInfo(self, addr))

            allData['Address'] = Address

        self.response(allData)
Example #14
0
    def get(self):

        if not self.objUserInfo:
            raise BaseError(604)

        userInfo = self.GetUserInfo()

        opUserID = int(self.get_argument('id', default='0'))
        queryGroupID = int(self.get_argument('gid', default='0'))

        offset = int(self.get_argument('o', default='1'))
        rowlimit = int(self.get_argument('r', default='20'))
        offset = (offset - 1) * rowlimit

        rowdata = {}
        cur = self.db.getCursor()

        sql = "select ug.id, ug.create_time, ug.update_time, ug.create_id, ug.update_id, ug.name, ug.c_name, "
        sql += " ug.description, ug.group_type"
        sql += " from system.user_group ug "

        sql_where = " where ug.name != 'supervisors'"

        if userInfo['system_user_id'] != 1:
            sql_where += " and ug.system_user_id = %d " % userInfo[
                'system_user_id']

        if queryGroupID > 0:
            sql_where += " and ug.id = %d" % queryGroupID

        sql += sql_where
        sql += " order by ug.c_name"
        sql += " limit " + str(rowlimit) + " offset " + str(offset)

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

        rowdata[
            'struct'] = "id, create_time, update_time, create_id, update_id, name, c_name, "
        rowdata['struct'] += "  description, group_type"
        rowdata['rows'] = rows

        sql = "select count(*) from system.user_group ug  "
        sql += sql_where

        cur.execute(sql)
        row = cur.fetchone()
        rowdata['count'] = row[0]

        self.response(rowdata)
Example #15
0
    def delete(self):

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

        logInfo = '供应商 %s 被删除' % alldata['vendor_name']

        # 删除记录
        s = vendorManage(self.db)
        s.remove(vendorID, table="public.vendor_list", key="id", delete=True)

        # 记录日志并退出
        operation_log(self.db).addLog(self.GetUserInfo(), "vendorManage",
                                      logInfo, vendorID)
        self.response(vendorID)
Example #16
0
    def delete(self):

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

        logInfo = '组织团体 %s 被删除' % alldata['name']

        # 删除记录
        s = organizationManage(self.db)
        s.remove(orgID, table="public.organization", key="id", delete=True)

        # 记录日志并退出
        operation_log(self.db).addLog(self.GetUserInfo(), "organizationManage",
                                      logInfo, orgID)
        self.response(orgID)
Example #17
0
    def delete(self):

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

        logInfo = '组件 %s 被删除' % alldata['name']

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

        # 记录日志并退出
        operation_log(self.db).addLog(self.GetUserInfo(), "componentManage",
                                      logInfo, itemID)
        self.response(itemID)
Example #18
0
    def delete(self):

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

        logInfo = '设备类型 %s 被删除' % alldata['name']

        # 删除记录
        s = deviceTypeManage(self.db)
        data = {'id': itemID}
        device_id = s.save(data, data['id'], table='public.device_type')

        # s.remove( itemID, table = "public.device_type", key = "id", delete = True)

        # 记录日志并退出
        operation_log(self.db).addLog(self.GetUserInfo(), "deviceTypeManage",
                                      logInfo, itemID)
        self.response(itemID)
Example #19
0
    def patch(self):
        paramData = self.getRequestData()
        if 'op' not in paramData:
            raise BaseError(900)

        # 获取用户组清单
        if paramData['op'] == 'gl':
            userInfo = self.GetUserInfo()

            sql = " select ug.id, ug.c_name from system.user_group ug"
            sql += " where ug.name != 'supervisors' and ug.system_user_id = %d " % userInfo[
                'system_user_id']
            sql += " order by ug.c_name"

            rowdata = {}
            cur = self.db.getCursor()

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

            groupList = {}
            groupList['struct'] = "id, name"
            groupList['rows'] = [(
                0,
                "选择全部",
            )] + rows

            self.response(groupList)

        # 获取用户组成员
        elif paramData['op'] == 'gm':

            groupID = self.getParam(paramData, 'gid', 0)
            uname = self.getParam(paramData, 'un', "")
            offset = self.getParam(paramData, 'o', 0)
            rowlimit = self.getParam(paramData, 'r', 20)

            accountInfo = account.getAccountInfo(self, 0, uname, groupID, None,
                                                 None, offset, rowlimit)

            self.response(accountInfo)
Example #20
0
    def delete(self):
        paramData = self.getRequestData()
        groupID = self.getParam(paramData, 'gid', 0)
        groupName = self.getParam(paramData, 'gn', "")
        if groupID == 0 or groupName == "":
            raise BaseError(801, "参数错误,没有指定需要删除的用户组")

        s = userGroupManage(self.db)
        r = s.remove(groupID, table='system.user_group', delete=True)

        s.remove(groupID,
                 table="system.user_group_menu",
                 key="group_id",
                 delete=True)
        s.remove(groupID,
                 table="system.user_group_member",
                 key="group_id",
                 delete=True)

        # 操作成功,记录日志并返回
        operation_log(self.db).addLog(self.GetUserInfo(), 'groupManage',
                                      "删除了一个用户组:%s" % groupName, groupID)
        self.response(r)
Example #21
0
    def post(self):
        # 取POST Form提交的数据
        alldata = self.getRequestData()

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

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

        s = DataDictTypeManage(self.db)

        db = self.getDB("system.code_type")

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

        id = s.save(data, table='system.code_type')

        operation_log(self.db).addLog(
            self.GetUserInfo(), "dictManage",
            self.objUserInfo['name'] + " 创建数据字典 " + alldata['name'], id)
        self.response(id)
Example #22
0
    def SetSystemUserMenu(self, systemUserID, groupID, menuList):

        if systemUserID == 0 or groupID == 0 or len(menuList) == 0:
            raise BaseError(801, "参数错误:设置菜单权限时参数错误!")

        s = systemUserManage(self.db)

        # 删除现有系统用户菜单数据,不管是新建还是更新模式
        db = self.getDB("system.system_user_menu")
        db.deleteByCond("system_user_id = %d" % systemUserID)

        # 删除系统用户的管理员用户组菜单数据
        db = self.getDB("system.user_group_menu")
        db.deleteByCond("group_id = %d" % groupID)

        db = self.getDB("system.menu_item")
        for menuID in menuList:
            # 添加系统用户的菜单权限
            tempData = {
                'create_time':
                datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
                'create_id':
                self.objUserInfo['id'],
                'system_user_id':
                systemUserID,
                'menu_id':
                menuID,
            }
            s.save(tempData, table='system.system_user_menu')

            # 添加系统用户管理员用户组的菜单项权限数据

            # 查找菜单ID对应的菜单项ID,当前模式中,一个菜单只有一个菜单项
            result = db.findByCond('id', "menu_id = %d" % menuID)
            if len(result['rows']) == 0:
                raise BaseError(801, "数据错误:菜单 %d 无对应的菜单项!" % menuID)

            keys = result["struct"].split(",")
            menuItemIDList = []
            for item in result['rows']:
                data = dict(zip(keys, item))
                menuItemIDList.append(data)

            data = {
                'create_time':
                datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
                'create_id':
                self.objUserInfo['id'],
                'group_id':
                groupID,
                'menu_item_id':
                menuItemIDList[0]['id'],
                'system_user_id':
                systemUserID,
            }

            s.save(data, table='system.user_group_menu')

            # 在更新系统用户菜单权限时,需要更新现有系统用户创建的用户组的菜单权限:
            #   原来有的菜单权限,现在没有了,需要删除;
            #   原来没有的,现在有的菜单权限,不需要添加,由系统用户的管理员进行设置;

        return
Example #23
0
    def post(self):

        fname               = self.get_argument('file_name')
        file_content_type   = self.get_argument('file_content_type')
        file_path           = self.get_argument('file_path')
        file_size           = self.get_argument('file_size')
        
        #获取文件类型
        fnames = fname.split('.')        
        if len(fnames) > 1:
            file_type = fnames[-1]
            #文件重命名
            new_name = file_path + '.' + file_type;
            if os.path.exists(new_name):
                new_name = file_path + str(random.randint(100,999)) + '.' + file_type;
            os.rename(file_path, new_name) 
            #产生url地址
            url = new_name
        else:
            new_name = file_path
            url = new_name
            file_type = file_content_type
        
        url = url.replace(config.FileUploadRootPath,config.FileUrlRoot)

        #保存到文件表中
        s = menuManage.menuManage(self.db)
        user = self.objUserInfo
        uid = "1"
        if user :
            uid = user["id"]        
        file_data={
            "file_name"     : fname,
            "create_time"   : self.now_time(),
            "update_time"   : self.now_time(),
            "path"          : url,
            "create_id"     : uid,
            "update_id"     : uid,
            "file_size"     :file_size,
            "file_type"     :file_type,
            "store_path"    :new_name
        }

        fid = s.save(file_data,table='public.file')

        file_data["id"] = fid
        file_data["file_size"] = file_size
        file_data["file_content_type"] = file_content_type
        file_data["file_path"] = new_name


        # PIS 业务需要将上传的文件复制到指定目录 
        service_type = self.get_argument('service_type', default = "")

        if service_type == "program_list":
            # logI("Upload programFile")
            pass

        elif service_type == "program_file":

            # 节目文件存放目录, root/videofile
            filePath = "%s/videofile/"%(config.PisConfig['PISFileRoot'])
            file_data['file_path'] = moveFile( file_data['store_path'], filePath, os.path.basename(file_data['store_path']))
            file_data['video_type'] = self.get_argument('video_type', default = '1')

            programFile.uploadProgramFile(self, file_data)

            # 移动文件后删除此文件记录
            s.remove( fid, table = "public.file", key = "id", delete = True)

        elif service_type == "format_file":
            # 版式文件存放目录, root/formatfile/filename
            
            filePath = "%s/formatfile/"%(config.PisConfig['PISFileRoot'])
            file_new_path = moveFile( file_data['store_path'], filePath, os.path.basename(file_data['store_path']))
            file_data['file_new_path'] = os.path.basename(file_new_path)
            formatFileList.uploadFormatFile(self, file_data)

            # 移动文件后删除此文件记录
            s.remove( fid, table = "public.file", key = "id", delete = True)

        elif service_type == "update_software":
            # 版本升级文件存在在, root/update
            filePath = "%s/update/"%(config.PisConfig['PISFileRoot'])
            file_data['file_new_path'] = moveFile( file_data['store_path'], filePath, os.path.basename(file_data['store_path']))

            # 移动文件后删除此文件记录
            s.remove( fid, table = "public.file", key = "id", delete = True)

        elif service_type == "logo_file":
            # 业务类型Logo文件
            filePath = os.environ['SRVDIR'] + '/src/app/resource/images/logo/'
            file_data['file_new_path'] = moveFile( file_data['store_path'], filePath, file_data['file_name'])

            # 移动文件后删除此文件记录
            s.remove( fid, table = "public.file", key = "id", delete = True)

        elif service_type == "rsuDevice":
            # 不需要做处理
            # logI("上传了RSU设备数据文件")
            pass

        elif service_type == "rsuUpdateFile":
            # 需要将版本文件移动到RSU FTP目录
            filePath = "%s/update/"%RSU_Root_Path
            file_data['file_new_path'] = moveFile( file_data['store_path'], filePath, file_data['file_name'])

            # 移动文件后删除此文件记录
            s.remove( fid, table = "public.file", key = "id", delete = True)

        else:
            msg = "参数错误:上传文件的业务属性 %s 错误!"%service_type
            logI(msg)
            raise BaseError(801, msg )

        self.response(file_data)
Example #24
0
    def post(self):

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

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

        s = propertyManage(self.db)

        lsData = {
            'name': 'name',
            'name_en': 'name_en',
            'value_type': 'value_type',
            'value_s': 'value_s',
            'value_i': 'value_i',
            'value_f': 'value_f',
            'description': 'description',
        }

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

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

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

        userInfo = self.GetUserInfo()
        serialNo = GetSerialNo(systemUserID, 'property_serial')
        if serialNo == -1:
            raise BaseError(801, '系统错误:获取序列号失败!')

        # 属性类型编码规则:PRP_AAA_BBBBBBBB。其中,AAA为属性值类型,取值为STR、INT或FLT,BBBBBBBB为属性序列号值。
        data['code'] = 'PRP-' + data['value_type'] + '-%08d' % (serialNo + 1)

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

        property_id = s.save(data, table='public.property_list')

        logInfo = "创建属性:%s,%s" % (data['name'], data['name_en'])
        operation_log(self.db).addLog(self.GetUserInfo(), "propertyManage",
                                      logInfo, property_id)

        # 记录归属关系
        data = {
            'component_id': oid,
            'property_id': property_id,
            'system_user_id': systemUserID,
        }

        s.save(data, table='public.component_property_list')

        self.response(property_id)
Example #25
0
    def post(self):
        # 取POST Form提交的数据
        alldata = self.getRequestData()
        s = DataDictValue(self.db)

        lsData = {
            'type_id': 'type_id',
            'type_code': 'type_code',
            'code': 'code',
            'name': 'name',
            'sort': 'sort',
            'status': 'status',
            'description': 'description',
        }

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

        if 'code' not in data.keys():
            raise BaseError(801, "参数错误,无数据字典值code!")

        if 'name' not in data.keys():
            raise BaseError(801, "参数错误,无数据字典值名称!")

        if 'sort' not in data.keys():
            raise BaseError(801, "参数错误,无数据字典值序号!")

        if 'status' not in data.keys():
            data['status'] = 1

        db = self.getDB("system.code_value")

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

        # 检查顺序是否重复
        result = db.findByCond(
            "code", "type_code = '%s' and (sort = '%s')" %
            (data['type_code'], data['sort']))
        if len(result['rows']) > 0:
            raise BaseError(
                801, "数据错误:字典条目 %s 序号 %s 重复!" % (data['name'], data['sort']))

        # 创建字典条目
        data['create_id'] = self.objUserInfo['id']
        data['create_time'] = datetime.datetime.now().strftime(
            '%Y-%m-%d %H:%M:%S')

        id = s.save(data, table='system.code_value')

        operation_log(self.db).addLog(
            self.GetUserInfo(), "dictManage",
            self.objUserInfo['name'] + " 新增字典值 " + data['name'], id)
        self.response(id)
Example #26
0
    def put(self):

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

        line_name = self.getParam(alldata, "user_name", "")
        if line_name == "":
            raise BaseError(801, "参数错误,无系统用户中文名称!")

        line_name_en = self.getParam(alldata, "user_name_en", "")
        if line_name_en == "":
            raise BaseError(801, "参数错误,无系统用户英文名称!")

        s = systemUserManage(self.db)

        lsData = {
            'id': 'id',
            'user_name': 'user_name',
            'user_name_en': 'user_name_en',
            'logo_vertical': 'logo_vertical',
            'logo_horizontal': 'logo_horizontal',
            'admin_group_id': 'admin_group_id',
            'admin_account_id': 'admin_account_id',
            'user_service': 'user_service',
            'abbr_name': 'abbr_name',
            'abbr_name_en': 'abbr_name_en',
            'app_name': 'app_name',
            'app_name_en': 'app_name_en',
            'user_desc': 'user_desc',
        }

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

        # 检查名称是否重复
        db = self.getDB("system.system_user_list")
        result = db.findByCond(
            "user_name",
            "( user_name = '%s' or user_name_en = '%s' ) and id <> %s " %
            (data['user_name'], data['user_name_en'], data['id']))
        if len(result['rows']) > 0:
            raise BaseError(801, "数据错误:系统用户名称重复!")

        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='system.system_user_list')

        # 检查是否需要更新密码
        accountInfo = self.getParam(alldata, 'accountInfo', {})
        if not accountInfo:
            raise BaseError(801, '参数错误:无用户信息参数!')

        # 只更新管理员密码,其他管理员信息由管理员自己更新
        if 'id' in accountInfo and 'pass' in accountInfo:
            # 更新用户密码
            accountData = {
                'id': accountInfo['id'],
                'pass': accountInfo['pass'],
            }
            s.save(accountData, accountInfo['id'], table='system.account')

        # 更新菜单权限
        menuList = self.getParam(alldata, "menuList", [])
        if len(menuList) == 0:
            raise BaseError(801, "参数错误:没有设置菜单权限!")

        self.SetSystemUserMenu(data['id'], data['admin_group_id'], menuList)

        logInfo = "更新系统用户信息:%s,%s" % (data['user_name'], data['user_name_en'])

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

        self.response(id)
Example #27
0
    def put(self):
        alldata = self.getRequestData()
        s = DataDictValue(self.db)

        # 字典条目归属的字段类型ID及code默认不可能改变
        lsData = {
            'id': 'id',
            'type_id': 'type_id',
            'type_code': 'type_code',
            'code': 'code',
            'name': 'name',
            'sort': 'sort',
            'status': 'status',
            'description': 'description',
        }

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

        if 'id' not in data.keys():
            raise BaseError(801, "参数错误,无数据字典值ID!")

        if 'code' not in data.keys():
            raise BaseError(801, "参数错误,无数据字典值code!")

        if 'name' not in data.keys():
            raise BaseError(801, "参数错误,无数据字典值名称!")

        if 'sort' not in data.keys():
            raise BaseError(801, "参数错误,无数据字典值序号!")

        if 'status' not in data.keys():
            data['status'] = 1

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

        # 检查顺序是否重复
        result = db.findByCond(
            "code", "type_code = '%s' and sort = '%s' and id <> %d" %
            (data['type_code'], data['sort'], data['id']))
        if len(result['rows']) > 0:
            raise BaseError(
                801, "数据错误:字典条目 %s 序号 %s 重复!" % (data['name'], data['sort']))

        id = s.save(data, data['id'], table='system.code_value', key='id')
        operation_log(self.db).addLog(
            self.GetUserInfo(), "dictManage",
            self.objUserInfo['name'] + " 修改字典值 " + data['name'], data['id'])

        self.response(data)
Example #28
0
    def patch(self):

        paramData = self.getRequestData()
        systemUserID = self.GetSystemUserID()

        op = self.getParam(paramData, "op", "")
        cur = self.db.getCursor()

        allData = {}

        if op == 'list':
            # 获取所有组织团体清单
            sql = """
                select po.id, po.name
                from public.organization po
                where po.system_user_id = %d
                """ % systemUserID

            cur.execute(sql)
            rows = cur.fetchall()
            organizationList = {}
            organizationList['rows'] = [(
                0,
                "选择全部",
            )] + rows
            organizationList['struct'] = 'id, name'

            allData['organizationList'] = organizationList

            # 所有供应商清单
            sql = """
                select vl.id, po.name
                from public.vendor_list vl
                inner join public.organization po on po.id = vl.vendor_id
                where po.system_user_id = %d
                """ % systemUserID

            cur.execute(sql)
            rows = cur.fetchall()
            allVendorList = {}
            allVendorList['rows'] = [(
                0,
                "选择全部",
            )] + rows
            allVendorList['struct'] = 'id, name'

            allData['allVendorList'] = allVendorList

            # 获取供应商状态类别清单
            sql = "select cv.code, cv.name "
            sql += " from system.code_value cv"
            sql += " where cv.type_code = 'VENDOR_COOPERATION_STATUS' "
            sql += " order by cv.sort"

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

            statusTypeList = {}
            statusTypeList['struct'] = "code, name"
            statusTypeList['rows'] = [(
                '0',
                "选择全部",
            )] + rows

            allData['statusTypeList'] = statusTypeList

            # 获取供应商类型清单
            sql = "select cv.code, cv.name "
            sql += " from system.code_value cv"
            sql += " where cv.type_code = 'VENDOR_TYPE' "
            sql += " order by cv.sort"

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

            vendorTypeList = {}
            vendorTypeList['struct'] = "code, name"
            vendorTypeList['rows'] = [(
                '0',
                "选择全部",
            )] + rows

            allData['vendorTypeList'] = vendorTypeList

        elif op == 'orginfo':
            paramData = self.getRequestData()
            orgid = int(self.getParam(paramData, "vid", "0"))

            sql = """
            select po.id, po.name, po.name_en, po.abbr, po.abbr_en, po.organization_type, po.registe_addr, po.current_addr, po.business_scope,
                po.contactor_name, po.contactor_mobile, po.description, po.system_user_id
            from public.organization po
            where po.id = %d
            """ % orgid

            cur.execute(sql)
            rows = cur.fetchall()
            organizationList = {}
            organizationList['rows'] = rows
            organizationList[
                'struct'] = 'id, name, name_en, abbr, abbr_en, organization_type, registe_addr, current_addr, business_scope, contactor_name, contactor_mobile, description, system_user_id'

            allData['organizationList'] = organizationList

        elif op == 'area':
            # 根据供应商编码获取相应的区域数据
            code = self.getParam(paramData, 'code', '')
            if code == '':
                raise BaseError(801, '缺少供应商编码!')

            # 根据编码数据获得地址代码

            # 供应商代码规则:VDR-SSPPPCCCDDD-XXXXXX,SS为国家代码,PPP为省份代码,CCC为城市代码,DDD为区县代码
            countryCode = code[4:6]
            provinceCode = code[6:9]
            cityCode = code[9:12]
            districtCode = code[12:15]

            logI("Code: %s, %s, %s, %s, %s" %
                 (code, countryCode, provinceCode, cityCode, districtCode))
            countryData = {}
            provinceData = {}
            cityData = {}
            districtData = {'id': 0, 'area_name': '', 'area_name_en': ''}

            # 查找国家代码

            db = self.getDB('system.area_code')
            result = db.findByCond(
                "id,area_name,area_name_en",
                "area_type = 'S' and area_code = '%s' " % (countryCode))
            if len(result['rows']) == 0:
                # 如果没有找到国家代码,则默认为中国
                result = db.findByCond("id,area_name,area_name_en",
                                       "area_code = '%s'" % defaultCountryCode)
                if len(result['rows']) == 0:
                    raise BaseError(
                        801, '系统错误:区域代码中无默认国家代码(%s)数据' % defaultCountryCode)

            countryData['id'] = result['rows'][0][0]
            countryData['area_name'] = result['rows'][0][1]
            countryData['area_name_en'] = result['rows'][0][2]

            # 查找省份
            result = db.findByCond(
                "id,area_name,area_name_en",
                "area_type = 'P' and area_code = '%s' and parent_area_id = %d "
                % (provinceCode, countryData['id']))
            if len(result['rows']) == 0:
                raise BaseError(801, '系统错误:获取省份代码(%s)失败!' % provinceCode)

            provinceData['id'] = result['rows'][0][0]
            provinceData['area_name'] = result['rows'][0][1]
            provinceData['area_name_en'] = result['rows'][0][2]

            # 查找城市
            result = db.findByCond(
                "id,area_name,area_name_en",
                "area_type = 'C' and area_code = '%s' and parent_area_id = %d "
                % (cityCode, provinceData['id']))
            if len(result['rows']) == 0:
                raise BaseError(801, '系统错误:获取城市代码(%s)失败!' % cityCode)

            cityData['id'] = result['rows'][0][0]
            cityData['area_name'] = result['rows'][0][1]
            cityData['area_name_en'] = result['rows'][0][2]

            # 查找区县
            if districtCode != '000':
                # 非直辖市,一定有区县代码
                result = db.findByCond(
                    "id,area_name,area_name_en",
                    "area_type = 'D' and area_code = '%s' and parent_area_id = %d "
                    % (districtCode, cityData['id']))
                if len(result['rows']) == 0:
                    raise BaseError(801, '系统错误:获取区县代码(%s)失败!' % districtCode)

                districtData['id'] = result['rows'][0][0]
                districtData['area_name'] = result['rows'][0][1]
                districtData['area_name_en'] = result['rows'][0][2]

            allData['countryData'] = countryData
            allData['provinceData'] = provinceData
            allData['cityData'] = cityData
            allData['districtData'] = districtData

        elif op == 'check':
            # 审核供应商

            userInfo = self.GetUserInfo()

            vendorID = int(self.getParam(paramData, "id", "0"))
            vendorName = self.getParam(paramData, "vendor_name", "")
            result = self.getParam(paramData, "result", "")
            opinion = self.getParam(paramData, "opinion", "")

            currentTime = GetSystemTime()

            data = {
                'vendor_id': vendorID,
                'checker_id': userInfo['id'],
                'checker_name': userInfo['name'],
                'check_date': currentTime,
                'check_opinion': opinion,
                'check_result': result,
            }

            s = vendorManage(self.db)
            # 新增审批记录
            s.save(data, table="public.vendor_check_history")
            logInfo = "%s 审批了供应商 %s ,审批结果:%s, 审批意见:%s, 时间:%s" % (
                data['checker_name'], vendorName, result, opinion,
                data['check_date'])
            operation_log(self.db).addLog(self.GetUserInfo(), "vendorManage",
                                          logInfo, vendorID)

            # 更新供应商状态
            data = {
                'certifaction_status': 'CO' if result == 'pass' else 'CI',
                'certifaction_date': GetSystemTime('-', '', ''),
            }

            s.save(data, vendorID, table='public.vendor_list')
            logInfo = "%s 更新了供应商 %s 状态为 %s,时间:%s" % (
                userInfo['name'], vendorName, data['certifaction_status'],
                currentTime)
            operation_log(self.db).addLog(self.GetUserInfo(), "vendorManage",
                                          logInfo, vendorID)

        self.response(allData)
Example #29
0
    def post(self):

        alldata = self.getRequestData()

        s = systemUserManage(self.db)

        lsData = {
            'user_name': 'user_name',
            'user_name_en': 'user_name_en',
            'admin_account_id': 'admin_account_id',
            'admin_group_id': 'admin_group_id',
            'logo_vertical': 'logo_vertical',
            'logo_horizontal': 'logo_horizontal',
            'user_desc': 'user_desc',
            'user_service': 'user_service',
            'abbr_name': 'abbr_name',
            'abbr_name_en': 'abbr_name_en',
            'app_name': 'app_name',
            'app_name_en': 'app_name_en',
        }

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

        line_name = self.getParam(alldata, "user_name", "")
        if line_name == "":
            raise BaseError(801, "参数错误,无系统用户中文名称!")

        line_name_en = self.getParam(alldata, "user_name_en", "")
        if line_name_en == "":
            raise BaseError(801, "参数错误,无系统用户英文名称!")

        db = self.getDB("system.system_user_list")

        # 检查名称是否重复
        result = db.findByCond(
            "user_name", "user_name = '%s' or user_name_en = '%s' " %
            (data['user_name'], data['user_name_en']))
        if len(result['rows']) > 0:
            raise BaseError(801, "参数错误:系统用户名称已经存在!")

        # 创建用户组
        db = self.getDB("system.user_group")
        groupInfo = self.getParam(alldata, 'groupInfo', {})
        groupNameEN = self.getParam(groupInfo, 'name', '')
        groupNameCN = self.getParam(groupInfo, 'c_name', '')
        if groupNameEN == '' or groupNameCN == '':
            raise BaseError(801, '参数错误:无用户组名称!')

        result = db.findByCond("name", "name = '%s'" % groupNameEN)
        if len(result['rows']) > 0:
            raise BaseError(801, "数据错误:用户组名称已经存在!")

        currentTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        groupData = {
            'name': groupNameEN,
            'c_name': groupNameCN,
            'group_type': '1',
            'system_user_id': 0,
            'description': groupNameCN,
            'create_time': currentTime,
            'create_id': self.objUserInfo['id'],
        }

        groupID = s.save(groupData, table='system.user_group')

        # 创建用户
        accountInfo = self.getParam(alldata, 'accountInfo', {})
        if not accountInfo:
            raise BaseError(801, '参数错误:无用户信息参数!')

        lsData = {
            'user_name': 'user_name',
            'pass': '******',
            'name': 'name',
            'country': 'country',
            'company': 'company',
            'dept_name': 'dept_name',
            'description': 'description',
            'mobile_phone1': 'mobile_phone1',
            'mobile_phone2': 'mobile_phone2',
            'mailbox': 'mailbox',
            'id_no': 'id_no',
            'address1': 'address1',
            'address2': 'address2',
            'photo_path': 'photo_path',
            'sex': 'sex',
            'default_language': 'default_language',
        }

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

        accountData['user_type'] = '0'  # 用户类型:本单位用户
        accountData['status'] = '2'  # 状态:正常

        db = self.getDB("system.account")
        result = db.findByCond("user_name",
                               "user_name = '%s'" % (accountData['user_name']))
        if len(result['rows']) > 0:
            raise BaseError(801, "数据错误:用户名已经存在!")

        accountData['create_id'] = self.objUserInfo['id']
        accountData['create_time'] = currentTime

        accountID = s.save(accountData, table='system.account')

        # 添加用户组成员
        groupMemberData = {
            'group_id': groupID,
            'user_id': accountID,
        }
        groupMemberID = s.save(groupMemberData,
                               table='system.user_group_member')

        # 创建系统用户
        data['create_id'] = self.objUserInfo['id']
        data['create_time'] = currentTime
        data['admin_account_id'] = accountID
        data['admin_group_id'] = groupID

        systemUserID = s.save(data, table='system.system_user_list')

        # 更新用户组及用户的system_user_id
        tempData = {
            'system_user_id': systemUserID,
        }

        s.save(tempData, groupMemberID, table='system.user_group')
        s.save(tempData, groupID, table='system.user_group_member')
        s.save(tempData, accountID, table='system.account')

        # 创建系统用户菜单权限
        menuList = self.getParam(alldata, "menuList", [])
        if len(menuList) == 0:
            raise BaseError(801, "参数错误:没有设置菜单权限!")

        self.SetSystemUserMenu(systemUserID, groupID, menuList)

        # 添加用户组菜单数据

        logInfo = "创建系统用户:%s,%s" % (data['user_name'], data['user_name_en'])
        operation_log(self.db).addLog(self.GetUserInfo(), "systemUserManage",
                                      logInfo, systemUserID)

        self.response(systemUserID)
Example #30
0
    def post(self):

        alldata = self.getRequestData()

        s = vendorManage(self.db)

        lsData = {
            'vendor_id': 'vendor_id',
            'vendor_type': 'vendor_type',
            'certifaction_desc': 'certifaction_desc',
            'start_date': 'start_date',
            'end_date': 'end_date',
            'certifaction_status': 'certifaction_status',
            'system_user_id': 'system_user_id',
        }

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

        db = self.getDB('public.vendor_list')
        # 检查Vendor是否重复,同一个System_User_ID里面的Vender只能有一个
        result = db.findByCond(
            "vendor_id", "vendor_id = %d and system_user_id = %d " %
            (data['vendor_id'], data['system_user_id']))
        if len(result['rows']) > 0:
            raise BaseError(801, "参数错误:供应商名称已经存在!")

        db = self.getDB('public.organization')
        result = db.findByCond(
            "name, name_en, current_addr", "id = %d and system_user_id = %d " %
            (data['vendor_id'], data['system_user_id']))
        if len(result['rows']) == 0:
            raise BaseError(801, "参数错误:供应商不存在!")

        name = result['rows'][0][0]
        name_en = result['rows'][0][1]
        current_addr = result['rows'][0][2]
        areaInfo = getAreaInfo(self, current_addr)

        if areaInfo['country']['id'] == 0:
            countryCode = 'CN'
        else:
            countryCode = areaInfo['country']['area_code']

        provinceCode = areaInfo['province']['area_code']
        cityCode = areaInfo['city']['area_code']
        districtCode = areaInfo['district']['area_code']

        userInfo = self.GetUserInfo()
        serialNo = GetSerialNo(userInfo['system_user_id'], 'vendor_serial',
                               False)
        if serialNo == -1:
            raise BaseError(801, '系统错误:获取供应商序列号失败!')

        data[
            'vendor_code'] = 'VDR-' + countryCode + provinceCode + cityCode + districtCode + '-%08d' % (
                serialNo + 1)
        logI("Code: %s" % data['vendor_code'])

        data['system_user_id'] = userInfo['system_user_id']
        data['certifaction_status'] = 'CI'
        data['certifaction_date'] = GetSystemTime()

        data['create_id'] = userInfo['id']
        data['create_time'] = GetSystemTime()
        vendor_id = s.save(data, table='public.vendor_list')

        logInfo = "创建供应商:%s,%s" % (name, name_en)

        operation_log(self.db).addLog(self.GetUserInfo(), "vendorManage",
                                      logInfo, vendor_id)

        self.response(vendor_id)