diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pa/service/impl/PerformancemstServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pa/service/impl/PerformancemstServiceImpl.java index b5b1c42b..12b7998d 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pa/service/impl/PerformancemstServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pa/service/impl/PerformancemstServiceImpl.java @@ -32,6 +32,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.math.BigDecimal; import java.util.*; +import java.util.stream.Collectors; /** * @author Liuxy @@ -263,6 +264,23 @@ public class PerformancemstServiceImpl implements PerformancemstService { JSONObject jsonContrast = new JSONObject(); jsonContrast.put("assessor_date", "与班组平均对比"); + + JSONObject totalQ = new JSONObject(); + totalQ.put("flag", "9"); + totalQ.put("begin_time", begin_time); + totalQ.put("end_time", end_time); + JSONArray a2llPersonTimeArr = WQL.getWO("QL_TEST_PERFORMANCEMST01").addParamMap(totalQ).process().getResultJSONArray(0); + + double allPersonTime = 0; + Map> allassessorMap = null; + if (ObjectUtil.isNotEmpty(a2llPersonTimeArr)){ + allPersonTime = a2llPersonTimeArr.stream().mapToDouble(value -> ((JSONObject) value).getDoubleValue("num")).sum(); + allassessorMap = a2llPersonTimeArr.stream().collect(Collectors.groupingBy(a -> { + JSONObject object = (JSONObject) a; + return object.getString("assessor_id"); + })); + } + for (int i = 0; i < re.size(); i++) { JSONObject json = re.getJSONObject(i); JSONArray userArr = WQL.getWO("QL_TEST_PERFORMANCEMST01").addParam("flag", "7").addParam("assessor_date", json.getString("assessor_date")).process().getResultJSONArray(0); @@ -283,7 +301,9 @@ public class PerformancemstServiceImpl implements PerformancemstService { map1.put("assessor_id", json2.getString("assessor_id")); // 计算总出勤时间 - JSONObject jsonAllTimeNum = WQL.getWO("QL_TEST_PERFORMANCEMST01").addParamMap(map1).process().uniqueResult(0); +// JSONObject jsonAllTimeNum = WQL.getWO("QL_TEST_PERFORMANCEMST01").addParamMap(map1).process().uniqueResult(0); + + JSONObject jsonAllTimeNum = (JSONObject)allassessorMap.get(json2.getString("assessor_id")).get(0); jsonAllTime.put(json2.getString("assessor_id"),jsonAllTimeNum.getString("num")); // 计算总积分 @@ -304,14 +324,14 @@ public class PerformancemstServiceImpl implements PerformancemstService { map1.put("flag", "9"); map1.put("assessor_id", ""); double allPersonTotal = 0; // 所有人总积分 - double allPersonTime = 0; // 所有人总出勤时间 - - JSONArray allPersonTimeArr = WQL.getWO("QL_TEST_PERFORMANCEMST01").addParamMap(map1).process().getResultJSONArray(0); - for (int k = 0; k < allPersonTimeArr.size(); k++) { - JSONObject jsonObject1 = allPersonTimeArr.getJSONObject(k); - allPersonTime = NumberUtil.add(allPersonTime,jsonObject1.getDoubleValue("num")); - } +// double allPersonTime = 0; // 所有人总出勤时间 + //放外层查询:根据assessor_id获取 +// JSONArray allPersonTimeArr = WQL.getWO("QL_TEST_PERFORMANCEMST01").addParamMap(map1).process().getResultJSONArray(0); +// for (int k = 0; k < allPersonTimeArr.size(); k++) { +// JSONObject jsonObject1 = allPersonTimeArr.getJSONObject(k); +// allPersonTime = NumberUtil.add(allPersonTime,jsonObject1.getDoubleValue("num")); +// } map1.put("flag", "10"); JSONArray allPersonTotalArr = WQL.getWO("QL_TEST_PERFORMANCEMST01").addParamMap(map1).process().getResultJSONArray(0); for (int k = 0; k < allPersonTotalArr.size(); k++) { diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pa/wql/QL_TEST_PERFORMANCEMST01.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pa/wql/QL_TEST_PERFORMANCEMST01.wql index b537dc2d..34dbef2c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pa/wql/QL_TEST_PERFORMANCEMST01.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pa/wql/QL_TEST_PERFORMANCEMST01.wql @@ -219,7 +219,8 @@ IF 输入.flag = "9" QUERY SELECT - sum (IFNULL(dtl.workload,0)) AS num + sum (IFNULL(dtl.workload,0)) AS num, + mst.assessor_id FROM QL_TEST_PerformanceMst mst LEFT JOIN ql_test_performancedtl dtl ON mst.performance_id = dtl.performance_id AND dtl.item_code = 'XD20221013231'