Browse Source

代码修改

liubing 2 years ago
parent
commit
9f7983f067

+ 73 - 52
business/base-service/src/main/java/com/yihu/jw/dailyReport/service/DailyReportUploadService.java

@ -3785,8 +3785,11 @@ public class DailyReportUploadService {
        List<Map<String,Object>> doctorTypeHourList = jdbcTemplate.queryForList(doctorTypeSql);
        result.put("doctorTypeHourList",doctorTypeHourList);//按人员统计总用时与参与人数
        JSONObject bugObj = selectBugTotal(memberId,startDate,endDate,dept);
        result.putAll(bugObj);
        //BUG数量统计
        if(StringUtils.isNoneBlank(memberId)||StringUtils.isNoneBlank(dept)){
            JSONObject bugObj = selectBugTotal(memberId,startDate,endDate,dept,false);
            result.putAll(bugObj);
        }
        return result;
    }
@ -3975,11 +3978,12 @@ public class DailyReportUploadService {
        //判断导出人权限
        String sql = " select * from base_doctor_role where doctor_code='"+user+"' ";
        List<Map<String,Object>> userRoles = jdbcTemplate.queryForList(sql);
        boolean adminFlag = false;
        if (userRoles.size()==0){
        }else {
            String role_code = userRoles.get(0).get("role_code").toString();
            if ("admin".equals(role_code)){
                adminFlag = true;
            } else if ("deptAdmin".equals(role_code)) {//查询出管理员所在部门
                if(StringUtils.isBlank(dept)){
                    sql = " select dh.dept_code from base_doctor doc INNER JOIN base_doctor_hospital dh on doc.id = dh.doctor_code " +
@ -4191,6 +4195,11 @@ public class DailyReportUploadService {
        List<Map<String,Object>> doctorTypeHourList = jdbcTemplate.queryForList(doctorTypeSql);
        result.put("doctorTypeHourList",doctorTypeHourList);//按人员统计总用时与参与人数
        //BUG数量统计
        if(StringUtils.isNoneBlank(memberId)||StringUtils.isNoneBlank(dept)||adminFlag){
            JSONObject bugObj = selectBugTotal(memberId,startDate,endDate,dept,adminFlag);
            result.putAll(bugObj);
        }
        return result;
    }
@ -5058,13 +5067,22 @@ public class DailyReportUploadService {
    }
    public JSONObject selectBugTotal(String doctorId, String startDate, String endDate, String dept) throws Exception {
    public JSONObject selectBugTotal(String doctorId, String startDate, String endDate, String dept,boolean adminFlag) throws Exception {
        String sqlCondition = "";
        JSONObject result = new JSONObject();
        result.put("bugtotal",0);
        result.put("resolveBugTotal",0);
        result.put("unresolvedBugTotal",0);
        if (adminFlag){
            sqlCondition = " SELECT d.zt_id as ztId FROM base_doctor d LEFT JOIN base_doctor_hospital dh ON d.id=dh.doctor_code where d.del=1 and dh.del=1 and d.zt_id is not null ";
        }
        if (StringUtils.isNoneBlank(dept)){
            sqlCondition = " SELECT d.zt_id as ztId FROM base_doctor d LEFT JOIN base_doctor_hospital dh ON d.id=dh.doctor_code where d.del=1 and dh.del=1 and dh.dept_code='"+dept+"' ";
            sqlCondition = " SELECT d.zt_id as ztId FROM base_doctor d LEFT JOIN base_doctor_hospital dh ON d.id=dh.doctor_code where d.del=1 and dh.del=1 and dh.dept_code='"+dept+"' and d.zt_id is not null ";
        }
        if (StringUtils.isNoneBlank(doctorId)){
            sqlCondition = " SELECT d.zt_id as ztId FROM base_doctor d where d.id = '"+doctorId+"' ";
            sqlCondition = " SELECT d.zt_id as ztId FROM base_doctor d where d.id = '"+doctorId+"' and d.zt_id is not null ";
        }
        List<Map<String,Object>> mapList = jdbcTemplate.queryForList(sqlCondition);
        String str = "";
@ -5073,56 +5091,59 @@ public class DailyReportUploadService {
                str += "'"+map.get("ztId")+"',";
            }
        }
        str = str.substring(0,str.length()-1);
        sqlCondition = " ";
        if (StringUtils.isNotBlank(startDate)){
            sqlCondition += " and lastEditedDate>='"+startDate+"' ";
        }
        if (StringUtils.isNotBlank(endDate)){
            sqlCondition += " and lastEditedDate<='"+endDate+"' ";
        }
        String sql = "  select * from ( " +
                " select count(distinct id) total,'resolve' `status` from zt_bug " +
                " where  (resolvedBy in ("+str+")) or  " +
                " (assignedTo in ("+str+") and `status` in ('closed')) or " +
                " (closedBy in ("+str+")and `status` in ('closed')) " +
                "  and deleted='0' " +sqlCondition+
                " union ALL " +
                " select count(distinct id) total,'unresolved' `status` from zt_bug " +
                " where assignedTo in ("+str+") and `status` in ('active','resolved') and deleted='0' " +sqlCondition+
                " )A ";
        String url = "http://172.19.103.134:10023/ykyy/jdbcSQLQuery";
        Map<String,Object> params = new HashedMap();
        params.put("sql",sql);
        HttpResponse response = HttpUtils.doGet(url,params);
        String content = response.getContent();
        logger.info("response:"+content);
        JSONObject rs = JSON.parseObject(content);
        Long total = 0l;//总bug数;
        Long resolveBugTotal=0l;//已解决BUG数
        Long unresolvedBugTotal=0l;//待解决BUG数
        Integer status = rs.getInteger("status");
        if(status!=null&&status == 200){
            JSONArray array = rs.getJSONArray("detailModelList");
            if (array!=null&&array.size()!=0){
                total = array.stream().mapToLong(t ->((JSONObject)t).get("total") == null ? 0 :Long.parseLong(((JSONObject)t).getString("total"))).sum();
                for (int i=0;i<array.size();i++){
                    JSONObject tmp = array.getJSONObject(i);
                    String bugStatus = tmp.getString("status");
                    Long statusTotal  =Long.parseLong(tmp.getString("total"));
                    if("resolve".equals(bugStatus)){
                        resolveBugTotal = statusTotal;
                    }else {
                        unresolvedBugTotal = statusTotal;
        if (StringUtils.isNoneBlank(str)){
            str = str.substring(0,str.length()-1);
            sqlCondition = " ";
            if (StringUtils.isNotBlank(startDate)){
                startDate = DateUtil.strToStrShort(startDate)+" 00:00:00";
                sqlCondition += " and lastEditedDate>='"+startDate+"' ";
            }
            if (StringUtils.isNotBlank(endDate)){
                endDate = DateUtil.strToStrShort(endDate)+" 23:59:59";
                sqlCondition += " and lastEditedDate<='"+endDate+"' ";
            }
            String sql = "  select * from ( " +
                    " select count(distinct id) total,'resolve' `status` from zt_bug " +
                    " where  ((resolvedBy in ("+str+")) or  " +
                    " (assignedTo in ("+str+") and `status` in ('closed')) or " +
                    " (closedBy in ("+str+")and `status` in ('closed'))) " +
                    "  and deleted='0' " +sqlCondition+
                    " union ALL " +
                    " select count(distinct id) total,'unresolved' `status` from zt_bug " +
                    " where assignedTo in ("+str+") and `status` in ('active','resolved') and deleted='0' " +sqlCondition+
                    " )A ";
            String url = "http://172.19.103.134:10023/ykyy/jdbcSQLQuery";
            Map<String,Object> params = new HashedMap();
            params.put("sql",sql);
            HttpResponse response = HttpUtils.doGet(url,params);
            String content = response.getContent();
            logger.info("response:"+content);
            JSONObject rs = JSON.parseObject(content);
            Long total = 0l;//总bug数;
            Long resolveBugTotal=0l;//已解决BUG数
            Long unresolvedBugTotal=0l;//待解决BUG数
            Integer status = rs.getInteger("status");
            if(status!=null&&status == 200){
                JSONArray array = rs.getJSONArray("detailModelList");
                if (array!=null&&array.size()!=0){
                    total = array.stream().mapToLong(t ->((JSONObject)t).get("total") == null ? 0 :Long.parseLong(((JSONObject)t).getString("total"))).sum();
                    for (int i=0;i<array.size();i++){
                        JSONObject tmp = array.getJSONObject(i);
                        String bugStatus = tmp.getString("status");
                        Long statusTotal  =Long.parseLong(tmp.getString("total"));
                        if("resolve".equals(bugStatus)){
                            resolveBugTotal = statusTotal;
                        }else {
                            unresolvedBugTotal = statusTotal;
                        }
                    }
                }
            }
            result.put("bugtotal",total);
            result.put("resolveBugTotal",resolveBugTotal);
            result.put("unresolvedBugTotal",unresolvedBugTotal);
        }
        JSONObject result = new JSONObject();
        result.put("bugtotal",total);
        result.put("resolveBugTotal",resolveBugTotal);
        result.put("unresolvedBugTotal",unresolvedBugTotal);
        return result;
    }
}