def ding_report(self,robotname,proid):
     data=self.get_project_taskinfo(proid)
     if robotname =="yd":
         cols=["任务","进度"]
         data=data[cols]
         data2=data.to_markdown(index=False)
         dingRobot(robotname).markdown(str(self.day)+"项目日报",data2)
     else:
         data2=data.to_markdown(index=False)
         dingRobot(robotname).markdown(str(self.day)+"项目日报",data2)
Example #2
0
 def dingreport_userbug(self, robotname):
     bl = self.ubug
     # bugurl="http://yunbg.zen.websaas.cn/zentao/bug-view-"+bugid+".html"
     data = ""
     for i, t in bl.iterrows():
         id = t['id']
         title = t['title']
         data += "[" + title + "](http://yunbg.zen.websaas.cn/zentao/bug-view-" + str(
             id) + ".html)  \n  "
     dingRobot(robotname).markdown(str(self.day) + "运维提报缺陷汇总", data)
Example #3
0
    def dingreport_today_bug(self, robotname, proid):
        bl = self.get_peoject_buglist(proid)
        print(bl)
        # bugurl="http://yunbg.zen.websaas.cn/zentao/bug-view-"+bugid+".html"
        data = ""
        for i, t in bl.iterrows():
            id = t['id']
            title = t['BUG标题']
            status = t['状态']
            tname = t['提报人']
            dname = t['修改人']

            data += "[" + title + "](http://yunbg.zen.websaas.cn/zentao/bug-view-" + str(
                id
            ) + ".html)  \n" + "测试:" + tname + "    研发:" + dname + "    缺陷状态:" + status + "  \n  "
        dingRobot(robotname).markdown(str(self.day) + "待修复缺陷汇总", data)
    def ding_report_daily(self,robotname):


        c2=['部门名称','日报率','已报人数']
        d2=self.daily_report2[c2]
        data2=d2.to_markdown(index=False)
        dingRobot(robotname).markdown(str(self.day)+"日报率",data2)

        listType = self.daily_report1[self.daily_report1['部门名称'].notna()]['部门名称'].unique()
        for gn in listType:
            r=self.daily_report1[self.daily_report1['部门名称']==gn]
            #dept_owner=r['负责人'].head(1).values[0]
            o_mobile=r['手机号'].head(1).values[0]
            a = r.sort_values(by='姓名', ascending=True, inplace=False)
            c1 = ['姓名', '任务', '进度']
            c=a[c1].to_markdown(index=False)
            dingRobot(robotname).markdown(gn+"-"+str(self.day),c,o_mobile)
    def get_bugs_resolve(self):
        zentaodb = self.zentaodb
        '''
        返回各个项目当天解决bug数
        :param 版本id, 项目id:
        '''
        #  sql 查询基本语句
        project_sql = "select id,name FROM zt_project "
        bug_sql = "SELECT project,COUNT(id),type,module,openedBy from zentao.zt_bug WHERE DATE_FORMAT(resolvedDate,'%Y%m%d')= DATE_FORMAT(CURRENT_DATE,'%Y%m%d') AND deleted = '0' AND (status = 'resolved' OR status = 'closed') GROUP BY project desc "
        user_sql = "select account,realname,dept,mobile from zt_user"
        project_sql = "select id,name from zt_project"
        module_sql = "SELECT id,name FROM zt_module"
        dept_sql = "select id,name,manager from zt_dept"

        project = pd.read_sql_query(project_sql, zentaodb)
        bug = pd.read_sql_query(bug_sql, zentaodb)
        user = pd.read_sql_query(user_sql, zentaodb)
        project = pd.read_sql_query(project_sql, zentaodb)
        dept = pd.read_sql_query(dept_sql, zentaodb)
        print(bug)

        module = pd.read_sql_query(module_sql, zentaodb)
        d1 = pd.merge(bug, user, how="left", left_on="openedBy", right_on="account")
        cols1 = ['project', 'COUNT(id)', 'type', 'realname', 'module']
        res1 = d1[cols1]
        print(res1)


        d2 = pd.merge(res1, project, how="left", left_on="project", right_on="id")
        cols2 = ['name', 'COUNT(id)', 'type', 'realname', 'module']
        res2 = d2[cols2]
        res2.rename(
            columns={'name': '项目名称', 'COUNT(id)': '当天解决bug数', 'type': 'bug类型', 'realname': 'bug创建者',
                     'module': 'bug所属模块'}, inplace=True)
        cols3 = ['项目名称', '当天解决bug数', 'bug类型', 'bug创建者', 'bug所属模块']
        res2 = res2[cols3]
        print(res2)

        d3 = pd.merge(res2, module, how="left", left_on="bug所属模块", right_on="id")
        print(d3)
        cols3 = ['项目名称', '当天解决bug数', 'bug类型', 'bug创建者', 'name']
        res3 = d3[cols3]
        res3.rename(columns={'name': 'bug所属模块'}, inplace=True)
        print(res3.to_string())
        print(res3)
        a = dingRobot('test')
        title = ("各个项目当天解决bug数:\n")
        content = str(res3)
        a.markdown(title, content)
    def get_again_bugs(self):
        zentaodb = self.zentaodb
        '''
        返回各个项目重复激活bug数
        :param 版本id, 项目id:
        '''
        #  sql 查询基本语句
        project_sql = "select id,name FROM zt_project "
        bug_sql = "SELECT project,COUNT(id),type,module,openedBy,activatedCount FROM zt_bug WHERE activatedCount >=1 AND deleted = '0' AND status != 'closed' GROUP BY project"
        user_sql = "select account,realname,dept,mobile from zt_user"
        project_sql = "select id,name from zt_project"
        module_sql = "SELECT id,name FROM zt_module"
        dept_sql = "select id,name,manager from zt_dept"

        project = pd.read_sql_query(project_sql, zentaodb)
        bug = pd.read_sql_query(bug_sql, zentaodb)
        user = pd.read_sql_query(user_sql, zentaodb)
        project = pd.read_sql_query(project_sql, zentaodb)
        dept = pd.read_sql_query(dept_sql, zentaodb)

        module = pd.read_sql_query(module_sql, zentaodb)
        d1 = pd.merge(bug, user, how="left", left_on="openedBy", right_on="account")
        cols1 = ['project', 'COUNT(id)', 'type', 'realname', 'module','activatedCount']
        res1 = d1[cols1]
        print(res1)

        #
        d2 = pd.merge(res1, project, how="left", left_on="project", right_on="id")
        cols2 = ['name', 'COUNT(id)', 'type', 'realname', 'module','activatedCount']
        res2 = d2[cols2]
        res2.rename(
            columns={'name': '项目名称', 'COUNT(id)': '重复激活bug数', 'type': 'bug类型', 'realname': 'bug创建者',
                     'module': 'bug所属模块','activatedCount':'激活次数'}, inplace=True)
        cols3 = ['项目名称', '重复激活bug数', 'bug类型', 'bug创建者', 'bug所属模块', '激活次数']
        res2 = res2[cols3]
        print(res2)


        d3 = pd.merge(res2, module, how="left", left_on="bug所属模块", right_on="id")
        print(d3)
        cols3 = ['项目名称', '重复激活bug数', 'bug类型', 'bug创建者', 'name','激活次数']
        res3 = d3[cols3]
        res3.rename(columns={'name': 'bug所属模块'}, inplace=True)
        print(res3.to_string())
        print(res3)
        a = dingRobot('test')
        title = ("重复激活bug数量:\n")
        content = str(res3)
        a.markdown(title, content)
 def get_project_bug_resolve(self,mid):
     """
     返回某个项目当天解决的bug数量
     :param mid:
     :return:
     """
     name_sql = "select name FROM zt_project WHERE id = {}".format(mid)
     test_sql = "SELECT project, COUNT(id) from zt_bug WHERE project = {} AND DATE_FORMAT(resolvedDate,'%Y%m%d')= DATE_FORMAT(CURRENT_DATE,'%Y%m%d')  AND deleted = '0' AND status = 'resolved' or status = 'closed' GROUP BY project;;".format(
         mid)
     mydb = MyDbHelper("zentao")
     project = mydb.get_one(name_sql)
     result = mydb.get_all(test_sql)
     result[0].update({"项目名称": result[0].pop("project")})
     result[0].update({"当天解决bug数": result[0].pop("COUNT(id)")})
     result[0]['项目名称'] = project['name']
     a = dingRobot('test')
     title = ("当天解决的bug数汇总:\n")
     content = str(result[0])
     a.markdown(title,content)
    def get_test_bugs(self, mid):
        '''
        返回某个项目每天新增的bug数
        :param 版本id, 项目id:
        :return: ([{'project': 'mid', 'COUNT(id)': 新增bug数, 'openedBy': '提出者'}]
        '''
        name_sql = "select name FROM zt_project WHERE id = {}".format(mid)

        test_sql = ("SELECT d.name 项目名称,COUNT( a.id ) 新增bug数,a.type bug类型,b.realname bug提出者,c.name bug类型 FROM zt_bug a "
        "join zt_user b on a.openedBy = b.account join zt_module c ON a.module = c.id join zt_project d ON a.project = d.id "
        "WHERE a.project = {} AND DATE_FORMAT( a.openedDate, '%Y-%m-%d' )= CURRENT_DATE AND a.deleted = '0' GROUP BY a.openedBy;").format(mid)

        mydb = MyDbHelper("zentao")

        result = mydb.get_all(test_sql)
        test_list = []
        for item in result:
            if item['bug类型'] == "front":
                item['bug类型'] = "前端代码问题"
            elif item['bug类型'] == "codeerror":
                item['bug类型'] = "后端代码问题"
            elif item['bug类型'] == "history":
                item['bug类型'] = "历史遗留"
            elif item['bug类型'] == "install":
                item['bug类型'] = "安装部署"
            elif item['bug类型'] == "others":
                item['bug类型'] = "其他"
            elif item['bug类型'] == "designdefect":
                item['bug类型'] = "需求文档"
            elif item['bug类型'] == "security":
                item['bug类型'] = "安全问题"
            elif item['bug类型'] == "user":
                item['bug类型'] = "运营反馈"
            elif item['bug类型'] == "automation":
                item['bug类型'] = "测试脚本"

            test_list.append(item)
        a = dingRobot('test')
        title = ("当天新增的bug数量:\n")
        content = str(test_list)
        a.markdown(title, content)