소스 검색

bugfix - 普通员工页面:审计开项完成率显示问题

wangggziwen 11 달 전
부모
커밋
6669da789f

+ 36 - 29
rc-admin/src/main/java/com/ruoyi/web/controller/rc/TAuditController.java

@@ -223,40 +223,47 @@ public class TAuditController extends BaseController
      */
     @GetMapping("/pie")
     public AjaxResult getPie() {
-        int count = 0;
-        int completeCount = 0;
-        BigDecimal progress = new BigDecimal(BigInteger.ZERO);
+//        int count = 0;
+//        int completeCount = 0;
+//        BigDecimal progress = new BigDecimal(BigInteger.ZERO);
+//        TAudit audit = new TAudit();
+//        audit.setDeptId(getLoginUser().getDeptId().toString());
+//        TAudit latest = tAuditService.selectTAuditLatest(audit);
+//        if (latest != null) {
+//            Long auditId = latest.getId();
+//            TChapter chapter = new TChapter();
+//            chapter.setAuditId(auditId);
+//            List<TChapter> tChapters = tChapterService.selectTChapterList(chapter);
+//            for (TChapter tChapter : tChapters) {
+//                TQuestionnaire questionnaire = new TQuestionnaire();
+//                questionnaire.setChapterId(tChapter.getId());
+//                List<TQuestionnaire> tQuestionnaires = tQuestionnaireService.selectTQuestionnaireList(questionnaire);
+//                for (TQuestionnaire tQuestionnaire : tQuestionnaires) {
+//                    TOpenItem openItem = new TOpenItem();
+//                    openItem.setQuestionnaireId(tQuestionnaire.getId());
+//                    List<TOpenItem> tOpenItems = itOpenItemService.selectTOpenItemList(openItem);
+//                    for (TOpenItem tOpenItem : tOpenItems) {
+//                        count++;
+//                        String status = tOpenItem.getStatus();
+//                        if ("4".equals(status)) {
+//                            completeCount++;
+//                        }
+//                    }
+//                }
+//            }
+//            if (count != 0) {
+//                progress = new BigDecimal(completeCount).divide(new BigDecimal(count), 4, BigDecimal.ROUND_HALF_UP);
+//            }
+//
+//        }
         TAudit audit = new TAudit();
         audit.setDeptId(getLoginUser().getDeptId().toString());
         TAudit latest = tAuditService.selectTAuditLatest(audit);
+        Double result = new Double("0");
         if (latest != null) {
-            Long auditId = latest.getId();
-            TChapter chapter = new TChapter();
-            chapter.setAuditId(auditId);
-            List<TChapter> tChapters = tChapterService.selectTChapterList(chapter);
-            for (TChapter tChapter : tChapters) {
-                TQuestionnaire questionnaire = new TQuestionnaire();
-                questionnaire.setChapterId(tChapter.getId());
-                List<TQuestionnaire> tQuestionnaires = tQuestionnaireService.selectTQuestionnaireList(questionnaire);
-                for (TQuestionnaire tQuestionnaire : tQuestionnaires) {
-                    TOpenItem openItem = new TOpenItem();
-                    openItem.setQuestionnaireId(tQuestionnaire.getId());
-                    List<TOpenItem> tOpenItems = itOpenItemService.selectTOpenItemList(openItem);
-                    for (TOpenItem tOpenItem : tOpenItems) {
-                        count++;
-                        String status = tOpenItem.getStatus();
-                        if ("4".equals(status)) {
-                            completeCount++;
-                        }
-                    }
-                }
-            }
-            if (count != 0) {
-                progress = new BigDecimal(completeCount).divide(new BigDecimal(count), 4, BigDecimal.ROUND_HALF_UP);
-            }
-
+            result = tAuditMapper.selectHomeDataPie(latest.getId());
         }
-        return success(progress);
+        return success(result);
     }
 
     /**

+ 1 - 0
rc-buisness/src/main/java/com/ruoyi/rc/mapper/TAuditMapper.java

@@ -20,6 +20,7 @@ public interface TAuditMapper
 
     public int selectHomeData4(Long auditId);
 
+    public Double selectHomeDataPie(Long deptId);
 
     public TAudit selectTAuditLatest(TAudit tAudit);
 

+ 8 - 0
rc-buisness/src/main/resources/mapper/rc/TAuditMapper.xml

@@ -117,4 +117,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
       where questionnaire_id in (select questionnaire_id from t_questionnaire where audit_id = #{auditId})
       and status = 4;
     </select>
+
+    <select id="selectHomeDataPie" parameterType="Long" resultType="Double">
+      select (
+        select count(*) from t_open_item o where o.questionnaire_id in (select id from t_questionnaire q where q.chapter_id in (select id from t_chapter ch where ch.audit_id = #{auditId})) and o.status = 4
+      ) / (
+        select count(*) from t_open_item o where o.questionnaire_id in (select id from t_questionnaire q where q.chapter_id in (select id from t_chapter ch where ch.audit_id = #{auditId}))
+      ) from dual
+    </select>
 </mapper>