chenminghua пре 1 година
родитељ
комит
a722f3e052

+ 28 - 4
ims-common/src/main/java/com/ims/common/utils/DateUtils.java

@@ -8,10 +8,10 @@ import java.util.Date;
 
 public class DateUtils {
 
-	private static final String format = "yyyy-MM-dd";
-	private static final String format1 = "yyyy-MM-dd HH:mm:ss";
-	private static final String format2 = "MM/dd/yyyy HH:mm:ss";
-	private static final String format3 = "yyyy-MM";
+	public static final String format = "yyyy-MM-dd";
+	public static final String format1 = "yyyy-MM-dd HH:mm:ss";
+	public static final String format2 = "MM/dd/yyyy HH:mm:ss";
+	public static final String format3 = "yyyy-MM";
 
 	// 第一次调用get将返回null
 	private static ThreadLocal<SimpleDateFormat> threadLocal = new ThreadLocal<SimpleDateFormat>();
@@ -191,4 +191,28 @@ public class DateUtils {
 	}
 
 
+	/**
+	 * 日期转换-  String -> Date
+	 *
+	 * @param time 字符串时间
+	 * @param pattern    格式模板
+	 * @return Date类型信息
+	 * @throws Exception 抛出异常
+	 */
+	public static Date strToDate(String time, String pattern)  {
+		if (time == null) {
+			return new Date();
+		}
+		SimpleDateFormat sdf = new SimpleDateFormat(pattern);
+		Date date;
+		try {
+			date = sdf.parse(time);
+		} catch (ParseException e) {
+			e.printStackTrace();
+			return new Date();
+		}
+		return date;
+	}
+
+
 }

+ 4 - 5
ims-service/ims-eval/src/main/java/com/ims/eval/controller/EvaluationScoreCountController.java

@@ -93,14 +93,13 @@ public class EvaluationScoreCountController {
 	@ApiOperation(value = "考评对标分析")
 	@GetMapping(value = "evaluation/list")
 	public R EvaluationBenchmarkingAnalysis(
-		@RequestParam(value = "year", required = false) String year, //年
-		@RequestParam(value = "season", required = false) String season, //季度
-		@RequestParam(value = "month", required = false) String month, //月
+		@RequestParam(value = "condition", required = true) String condition, //考评类型
+		@RequestParam(value = "date", required = false) String date, //日期
 		@RequestParam(value = "type", required = false) String type, //指标类型
 		@RequestParam(value = "binSection", required = false) String binSection, //板块
 		@RequestParam(value = "binStage", required = false) String binStage) { //业务阶段
-		List<Map<String, Object>> list = iEvaluationScoreCountService.evaluationList(binSection, binStage, type, year, season, month);
-		return R.ok().data(list);
+		Map<String, Object> map = iEvaluationScoreCountService.evaluationList(binSection, binStage, type, condition, date);
+		return R.ok().data(map);
 	}
 
 

+ 1 - 1
ims-service/ims-eval/src/main/java/com/ims/eval/dao/EvaluationScoreCountMapper.java

@@ -23,5 +23,5 @@ public interface EvaluationScoreCountMapper extends BaseMapper<EvaluationScoreCo
 															 @Param("binStage") String binStage);
 
 
-	List<Map<String, Object>> selectEvaluationList(String binSection, String binStage, String type, String year, String season, String month);
+	List<Map<String, Object>> selectEvaluationList(String binSection, String binStage, String type, String condition, String year, String month);
 }

+ 2 - 1
ims-service/ims-eval/src/main/java/com/ims/eval/service/IEvaluationScoreCountService.java

@@ -21,6 +21,7 @@ public interface IEvaluationScoreCountService extends IService<EvaluationScoreCo
 	List<EvaluationScoreCount> getListByEvaluationRuleId(String organizationEvaluationId,String organizationEvaluationRuleId,String binStage);
 
 
-	List<Map<String, Object>> evaluationList(String binSection, String binStage, String type, String year, String season, String month);
+	Map<String, Object> evaluationList(String binSection, String binStage, String type, String condition, String date);
 }
 
+

+ 50 - 5
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/EvaluatioinScoreCountServiceImpl.java

@@ -2,6 +2,7 @@ package com.ims.eval.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ims.common.utils.DateUtils;
 import com.ims.eval.config.CustomException;
 import com.ims.eval.dao.BinSectionMapper;
 import com.ims.eval.dao.EvaluationScoreCountMapper;
@@ -13,8 +14,8 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -34,9 +35,53 @@ public class EvaluatioinScoreCountServiceImpl extends ServiceImpl<EvaluationScor
 		return list;
 	}
 
+
 	@Override
-	public List<Map<String, Object>> evaluationList(String binSection, String binStage, String type, String year, String season, String month) {
-		List<Map<String, Object>> list = baseMapper.selectEvaluationList(binSection, binStage, type, year, season, month);
-		return list;
+	public Map<String, Object> evaluationList(String binSection, String binStage, String type, String condition, String date) {
+		Map<String, Object> result = new HashMap<>();
+		List<Map<String, Object>> list = new ArrayList<>();
+		String month = null;
+		Calendar cal = Calendar.getInstance();
+		cal.setTime(DateUtils.strToDate(date, DateUtils.format3));
+		String year = String.valueOf(cal.get(Calendar.YEAR));
+		if (condition.equals("JDKP")){
+			month = String.valueOf(DateUtils.getSeason(cal.getTime()));
+		}
+		if (condition.equals("YDKP")){
+			month = String.valueOf(cal.get(Calendar.MONTH) + 1);
+		}
+		try {
+			list.addAll(baseMapper.selectEvaluationList(binSection, binStage, type, condition, year, month));
+		} catch (Exception e) {
+			return result;
+		}
+
+		Map<Object, List<Map<String, Object>>> collect = list.stream().collect(Collectors.groupingBy(c -> c.get("organization_name"), Collectors.toList()));
+		boolean flag = true;
+		List<Object> value = new ArrayList<>();
+		List<Object> title = new ArrayList<>();
+		for (Map.Entry<Object, List<Map<String, Object>>> entry : collect.entrySet()) {
+			List<Map<String, Object>> v = entry.getValue();
+			Map<String, Object> mp = new HashMap<>();
+			for (int i = 0; i < v.size(); i++) {
+				Map<String, Object> item = v.get(i);
+				mp.put(item.get("indicator_code").toString() + "_score", item.get("score"));
+				mp.put("organization_name", item.get("organization_name"));
+				mp.put("flag", item.get("score") == item.get("standard_score") ? "0" : (int) item.get("score") > (int)item.get("standard_score") ? "1" : "-1");
+
+				if (flag) {
+					Map<String, Object> tl = new HashMap<>();
+					tl.put("key", item.get("indicator_name"));
+					tl.put("code", item.get("indicator_code").toString() + "_score");
+					title.add(tl);
+				}
+			}
+			flag = false;
+			value.add(mp);
+		}
+
+		result.put("title", title);
+		result.put("value", value);
+		return result;
 	}
 }

+ 7 - 5
ims-service/ims-eval/src/main/resources/mappers/EvaluationScoreCountMapper.xml

@@ -45,10 +45,12 @@
         es.score,
         es.obversion_score,
         i.indicator_name,
-        i.unit
+        i.unit,
+        ei.standard_score
         FROM
         evaluation_score_count es
         LEFT JOIN indicator i ON es.indicator_id = i.id
+        LEFT JOIN evaluate_rule_info ei ON es.indicator_id = i.id
         LEFT JOIN indicator_type t ON i.indicator_type_id = t.id
         LEFT JOIN bin_stage b ON i.bin_stage = b.id
         LEFT JOIN bin_section bs ON i.bin_section = bs.id
@@ -67,12 +69,12 @@
                 AND i.type = #{type}
             </if>
 
-            <if test="year !=null and year !=''">
-                AND oe.year = #{year}
+            <if test="condition !=null and condition !=''">
+                AND oe.check_cycle = #{condition}
             </if>
 
-            <if test="season !=null and season !=''">
-                AND oe.season = #{season}
+            <if test="year !=null and year !=''">
+                AND oe.year = #{year}
             </if>
 
             <if test="month !=null and month !=''">