|
@@ -239,6 +239,53 @@ public class QualityAnalyseController {
|
|
return list;
|
|
return list;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 累计误差报表
|
|
|
|
+ *
|
|
|
|
+ * @param workId
|
|
|
|
+ * @param subject
|
|
|
|
+ * @param areaCode
|
|
|
|
+ * @param startTime
|
|
|
|
+ * @param endTime
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping(value = "deviationReport", method = RequestMethod.GET)
|
|
|
|
+ public List cumulativeReport(
|
|
|
|
+ @RequestParam Long workId,
|
|
|
|
+ @RequestParam(required = false) Subject subject,
|
|
|
|
+ @RequestParam(required = false) String areaCode,
|
|
|
|
+ @RequestParam(required = false) String startTime,
|
|
|
|
+ @RequestParam(required = false) String endTime) {
|
|
|
|
+ List list = new ArrayList();
|
|
|
|
+ Specification<MarkTask> specification = (root, query, builder) -> {
|
|
|
|
+ List<Predicate> predicates = new ArrayList<>();
|
|
|
|
+ predicates.add(builder.equal(root.get("workId"), workId));
|
|
|
|
+ if (Objects.nonNull(subject)) {
|
|
|
|
+ predicates.add(builder.equal(root.get("subject"), subject));
|
|
|
|
+ }
|
|
|
|
+ if (Objects.nonNull(areaCode)) {
|
|
|
|
+ predicates.add(builder.equal(root.get("paper").get("areaCode"), areaCode));
|
|
|
|
+ }
|
|
|
|
+ return builder.and(predicates.toArray(new Predicate[predicates.size()]));
|
|
|
|
+ };
|
|
|
|
+ List<MarkTask> markTasks = markTaskRepo.findAll(specification);
|
|
|
|
+ if (Objects.nonNull(markTasks) && markTasks.size() > 0) {
|
|
|
|
+ Map<Long, MarkTask> markerMap = markTasks.stream().collect(Collectors.toMap(MarkTask::getMarkerId, Function.identity(), (dto1, dto2) -> dto1));
|
|
|
|
+ List<Long> markerIdList = markerMap.values().stream().map(i -> i.getMarkerId()).collect(Collectors.toList());
|
|
|
|
+ Object o = StringUtils.join(markerIdList.toArray(), ",");
|
|
|
|
+ String sql = new StringBuffer("select t.create_user_name as userName, sum(t.oper_data_after) as sumCount,t.create_user_id as userId from mark_log t where t.oper_type = ").append(MarkLogOperType.LEVEl_DEVIATION.getId()).append(" and t.create_user_id in (").append(o).append(")").toString();
|
|
|
|
+ if (Objects.nonNull(startTime)) {
|
|
|
|
+ sql = sqlUtil.sqlConditionAnd(sql, new String[]{"t.create_time"}, new String[]{startTime}, new String[]{">="});
|
|
|
|
+ }
|
|
|
|
+ if (Objects.nonNull(endTime)) {
|
|
|
|
+ sql = sqlUtil.sqlConditionAnd(sql, new String[]{"t.create_time"}, new String[]{endTime}, new String[]{"<="});
|
|
|
|
+ }
|
|
|
|
+ sql = sqlUtil.sqlGroupBy(sql, "t.create_user_id");
|
|
|
|
+ list = sqlUtil.execSqlForMap(sql);
|
|
|
|
+ list = distinctCommon(list, markerIdList, markerMap);
|
|
|
|
+ }
|
|
|
|
+ return list;
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 求差值公用
|
|
* 求差值公用
|
|
*
|
|
*
|