Ver Fonte

Merge branch 'hbtk' of /Users/king/git/MS with conflicts.

wangliang há 5 anos atrás
pai
commit
ac8b49804c

+ 6 - 82
stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/api/QualityAnalyseController.java

@@ -1,20 +1,11 @@
 package cn.com.qmth.stmms.ms.admin.api;
 
-import cn.com.qmth.stmms.ms.commons.utils.SqlUtil;
-import cn.com.qmth.stmms.ms.core.domain.Level;
-import cn.com.qmth.stmms.ms.core.domain.MarkStage;
-import cn.com.qmth.stmms.ms.core.repository.LevelRepo;
-import cn.com.qmth.stmms.ms.core.repository.MarkTaskRepo;
 import cn.com.qmth.stmms.ms.core.vo.Subject;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.math.BigDecimal;
-import java.util.*;
-
 /**
  * @Description: 质量分析报表controller
  * @Param:
@@ -27,15 +18,6 @@ import java.util.*;
 @RequestMapping("api/quality")
 public class QualityAnalyseController {
 
-    @Autowired
-    private LevelRepo levelRepo;
-
-    @Autowired
-    private MarkTaskRepo markTaskRepo;
-
-    @Autowired
-    private SqlUtil sqlUtil;
-
     /**
      * 档位占比报表
      *
@@ -47,75 +29,17 @@ public class QualityAnalyseController {
      */
 //    @ApiOperation(value = "档位占比报表接口")
     @RequestMapping(value = "levelsPropReport", method = RequestMethod.GET)
-    public Object levelsPropReport(
+    public void levelsPropReport(
+//            @ApiParam(value = "workId", required = true)
             @RequestParam Long workId,
+//            @ApiParam(value = "科目", required = true)
             @RequestParam Subject subject,
+//            @ApiParam(value = "考点", required = true)
             @RequestParam String areaCode,
+//            @ApiParam(value = "开始时间", required = false)
             @RequestParam(required = false) String startTime,
+//            @ApiParam(value = "结束时间", required = false)
             @RequestParam(required = false) String endTime) {
-        List fList = new ArrayList();
-        List<Level> levels = levelRepo.findByWorkId(workId);
-        levels.forEach(l -> {
-            StringBuffer sql = new StringBuffer();
-            sql.append("  SELECT                                                        ");
-            sql.append("      mu.id markerId,                                           ");
-            sql.append("      mu.name markerName,                                       ");
-            sql.append("      SUM(IF(mt.result = '" + l.getCode() + "', 1, 0)) levelCount,  ");
-            sql.append("      COUNT(1) total                                            ");
-            sql.append("  FROM                                                          ");
-            sql.append("      mark_user mu                                              ");
-            sql.append("          LEFT JOIN                                             ");
-            sql.append("      (SELECT                                                   ");
-            sql.append("          m.*                                                     ");
-            sql.append("      FROM                                                      ");
-            sql.append("          mark_task m                                           ");
-            sql.append("          left join paper p on m.paper_id = p.id                ");
-            sql.append("      WHERE                                                     ");
-            sql.append("          stage = " + MarkStage.LEVEL.ordinal() + "             ");
-            if (!Objects.isNull(areaCode)) {
-                sql.append(" and p.area_code = " + areaCode);
-            }
-            if (!Objects.isNull(startTime)) {
-                sql.append(" and m.updated_on >= '" + startTime +"'");
-            }
-            if (!Objects.isNull(endTime)) {
-                sql.append(" and m.updated_on <= '" + endTime + "'");
-            }
-            sql.append("          ) mt ON mu.work_id = mt.work_id                       ");
-            sql.append("          AND mu.subject = mt.subject                           ");
-            sql.append("          AND mu.id = mt.marker_id                              ");
-            sql.append("  WHERE                                                         ");
-            sql.append("      mu.work_id = " + workId + " AND mu.subject = '" + subject.toString() + "' ");
-            sql.append("          AND mu.role = 'MARKER'                                ");
-            sql.append("  GROUP BY mu.id , mu.name                                      ");
-            sql.append("  ORDER BY mu.id                                                ");
-
-            List list = sqlUtil.execSqlForMap(sql.toString());
-            Map map = new HashMap();
-            List<Map> data = new ArrayList();
-            map.put("name", l.getCode());
-            for (Object o : list) {
-                Map m = (Map) o;
-                //该档任务数
-                BigDecimal levelCount = BigDecimal.valueOf(Long.parseLong(m.get("levelCount").toString()));
-                //总任务数
-                BigDecimal total = BigDecimal.valueOf(Long.parseLong(m.get("total").toString()));
-                //占比
-                BigDecimal propBig = BigDecimal.ZERO.compareTo(total) == 0 ? BigDecimal.ZERO : levelCount.divide(total, 4, BigDecimal.ROUND_HALF_UP);
-                double prop = propBig.doubleValue();
-                Map temp = new HashMap();
-                temp.put("markerId", m.get("markerId"));
-                temp.put("markerName", m.get("markerName"));
-                temp.put("prop", prop * 100);
-                data.add(temp);
-            }
-            //排序
-            Collections.sort(data, Comparator.comparing(o -> o.get("markerId").toString()));
-            map.put("data", data);
-            fList.add(map);
-        });
-
-        return fList;
 
     }
 

+ 17 - 5
stmms-ms-commons/src/main/java/cn/com/qmth/stmms/ms/commons/utils/SqlUtil.java

@@ -3,6 +3,7 @@ package cn.com.qmth.stmms.ms.commons.utils;
 import org.apache.poi.ss.formula.functions.T;
 import org.hibernate.SQLQuery;
 import org.hibernate.transform.Transformers;
+import org.hibernate.type.StandardBasicTypes;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -285,12 +286,23 @@ public class SqlUtil {
      */
     public List<T> execSqlForList(String sql) {
         Query query = entityManager.createNativeQuery(sql);
-        query.unwrap(SQLQuery.class).setResultTransformer(Transformers.TO_LIST);
         return query.getResultList();
     }
 
     /**
-     * 执行sql 把结果按顺序排进List
+     * 执行sql 把结果转换成map
+     *
+     * @param sql
+     * @return
+     */
+    public List<T> execSqlForMap(String sql, Class cla) {
+        Query query = entityManager.createNativeQuery(sql);
+        query.unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
+        return query.getResultList();
+    }
+
+    /**
+     * 执行sql 把结果按顺序排进Class bean
      *
      * @param sql
      * @return
@@ -483,7 +495,7 @@ public class SqlUtil {
         StringBuffer stringBuffer = new StringBuffer(sql);
         try {
             for (int i = 0; i < fields.length; i++) {
-                stringBuffer.append(" " + conditionStr + " ").append(" " + fields[i] + " ").append(" " + opers[i] + " ").append(" " + fieldValues[i] + " ");
+                stringBuffer.append(" " + conditionStr + " ").append(" " + fields[i] + " ").append(" " + opers[i] + " ").append("'" + fieldValues[i] + "'");
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -536,7 +548,7 @@ public class SqlUtil {
                 stringBuilder = new StringBuilder(stringBuilder.substring(0, index)).append(stringBuilder.replace(0, index + 1, "'" + arguments[count] + "'"));
                 return searchStrAndRep(stringBuilder.toString(), str, index + 1, count + 1, arguments);
             } else {
-                LOGGER.debug("execSql:" + sql);
+                LOGGER.info("execSql:" + sql);
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -566,7 +578,7 @@ public class SqlUtil {
                 stringBuilder = new StringBuilder(stringBuilder.substring(0, index)).append(stringBuilder.replace(0, index + 1, String.valueOf(arguments[count])));
                 return searchStrAndRep(stringBuilder.toString(), str, index + 1, count + 1, arguments);
             } else {
-                LOGGER.debug("execSql:" + sql);
+                LOGGER.info("execSql:" + sql);
             }
         } catch (Exception e) {
             e.printStackTrace();