diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/MaterialbaseServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/MaterialbaseServiceImpl.java index fce9c2c7..31007a07 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/MaterialbaseServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/MaterialbaseServiceImpl.java @@ -10,6 +10,7 @@ import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.google.common.collect.Maps; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.exception.BadRequestException; @@ -20,6 +21,7 @@ import org.nl.wms.basedata.master.service.ClassstandardService; import org.nl.wms.basedata.master.service.MaterialbaseService; import org.nl.wms.basedata.master.service.dto.MaterialbaseDto; import org.nl.wql.WQL; +import org.nl.wql.core.bean.ResultBean; import org.nl.wql.core.bean.WQLObject; import org.nl.wql.util.WqlUtil; import org.springframework.data.domain.Pageable; @@ -30,6 +32,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collectors; /** * @author zhouz @@ -95,9 +99,19 @@ public class MaterialbaseServiceImpl implements MaterialbaseService { } else { map.put("idssql", "1=1"); } - - JSONObject jo = WQL.getWO("QMD_ME_MATERIAL").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "material_id"); - return jo; + map.put("flag", "2"); + JSONObject allmaterialIds = WQL.getWO("QMD_ME_MATERIAL").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "material_id"); + JSONArray array = allmaterialIds.getJSONArray("content"); + String allmaterialId = " "; + if (ObjectUtil.isNotEmpty(array)){ + allmaterialId = "(\""+array.stream().map(o -> ((JSONObject) o).getString("material_id")).collect(Collectors.joining("\",\""))+"\")"; + } + Map query = Maps.newHashMap(); + query.put("flag", "3"); + query.put("materialIds", allmaterialId); + JSONArray currentArray = WQL.getWO("QMD_ME_MATERIAL").addParamMap(query).process().getResultJSONArray(0); + allmaterialIds.put("content",currentArray); + return allmaterialIds; } @Override diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/QMD_ME_MATERIAL.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/QMD_ME_MATERIAL.wql index 8a278daa..89639863 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/QMD_ME_MATERIAL.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/QMD_ME_MATERIAL.wql @@ -18,6 +18,7 @@ 输入.class_code TYPEAS s_string 输入.idssql TYPEAS f_string 输入.classIds TYPEAS f_string + 输入.materialIds TYPEAS f_string [临时表] --这边列出来的临时表就会在运行期动态创建 @@ -87,5 +88,67 @@ ENDPAGEQUERY ENDIF + IF 输入.flag = "2" + PAGEQUERY + SELECT + mb.material_id + FROM + md_me_materialbase mb + LEFT JOIN MD_PB_ClassStandard class ON class.class_id = mb.material_type_id + WHERE + mb.is_delete = '0' + and 输入.idssql + OPTION 输入.search <> "" + ( + mb.material_code like 输入.search + OR + mb.material_name like 输入.search + ) + ENDOPTION + OPTION 输入.class_code <> "" + class.class_code like 输入.class_code + ENDOPTION + OPTION 输入.classIds <> "" + class.class_id in 输入.classIds + ENDOPTION + ENDSELECT + ENDPAGEQUERY + ENDIF + + IF 输入.flag = "3" + PAGEQUERY + SELECT + mb.material_id, + mb.material_code, + mb.material_name, + mb.material_spec, + mb.material_model, + mb.is_used, + mb.update_optname, + mb.update_time, + mb.base_unit_id, + mb.ass_unit_id, + class.class_code, + class.class_name, + unit_name, + mb.ext_id, + producmaterialext.standard_weight, + unit_name as base_unit_id_name, + producmaterialext.product_series, + producmaterialext.standard_weight_pft + FROM + md_me_materialbase mb + LEFT JOIN MD_PB_ClassStandard class ON class.class_id = mb.material_type_id + LEFT JOIN md_pb_measureunit unit ON unit.measure_unit_id = mb.base_unit_id + LEFT JOIN md_me_producmaterialext producmaterialext ON producmaterialext.material_id = mb.material_id + WHERE + mb.is_delete = '0' + OPTION 输入.materialIds <> "" + mb.material_id in 输入.materialIds + ENDOPTION + ENDSELECT + ENDPAGEQUERY + ENDIF + 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 13a4b257..1f9685f6 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 @@ -288,9 +288,14 @@ public class PerformancemstServiceImpl implements PerformancemstService { totalQ.put("begin_time", begin_time); totalQ.put("end_time", end_time); JSONArray a2llPersonTimeArr = WQL.getWO("QL_TEST_PERFORMANCEMST01").addParamMap(totalQ).process().getResultJSONArray(0); + totalQ.put("flag", "10"); + JSONArray allPersonTotalArr = WQL.getWO("QL_TEST_PERFORMANCEMST01").addParamMap(totalQ).process().getResultJSONArray(0); double allPersonTime = 0; + double allPersonTotal = 0; Map> allassessorMap = null; + Map> allPersonTotalMap = null; + if (ObjectUtil.isNotEmpty(a2llPersonTimeArr)){ allPersonTime = a2llPersonTimeArr.stream().mapToDouble(value -> ((JSONObject) value).getDoubleValue("num")).sum(); allassessorMap = a2llPersonTimeArr.stream().collect(Collectors.groupingBy(a -> { @@ -298,6 +303,15 @@ public class PerformancemstServiceImpl implements PerformancemstService { return object.getString("assessor_id"); })); } + if (ObjectUtil.isNotEmpty(allPersonTotalArr)){ + allPersonTotal = allPersonTotalArr.stream().mapToDouble(value -> ((JSONObject) value).getDoubleValue("num")).sum(); + allPersonTotalMap = allPersonTotalArr.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); @@ -312,26 +326,36 @@ public class PerformancemstServiceImpl implements PerformancemstService { total = total + json2.getDoubleValue("total_score"); average = NumberUtil.div(total, userArr.size()); - JSONObject map1 = new JSONObject(); - map1.put("flag", "9"); - map1.put("begin_time", begin_time); - map1.put("end_time", end_time); - map1.put("assessor_id", json2.getString("assessor_id")); +// JSONObject map1 = new JSONObject(); +// map1.put("flag", "9"); +// map1.put("begin_time", begin_time); +// map1.put("end_time", end_time); +// map1.put("assessor_id", json2.getString("assessor_id")); // 计算总出勤时间 // 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")); - + List assessorInfo = allassessorMap.get(json2.getString("assessor_id")); + String assessorNum = "0"; + if (ObjectUtil.isNotEmpty(assessorInfo)){ + assessorNum = ((JSONObject) assessorInfo.get(0)).getString("num"); + } + jsonAllTime.put(json2.getString("assessor_id"), assessorNum); // 计算总积分 - map1.put("flag", "10"); - JSONObject jsonAllTotalNum = WQL.getWO("QL_TEST_PERFORMANCEMST01").addParamMap(map1).process().uniqueResult(0); - jsonAllTotal.put(json2.getString("assessor_id"),jsonAllTotalNum.getString("num")); +// map1.put("flag", "10"); +// JSONObject jsonAllTotalNum = WQL.getWO("QL_TEST_PERFORMANCEMST01").addParamMap(map1).process().uniqueResult(0); +// jsonAllTotal.put(json2.getString("assessor_id"),jsonAllTotalNum.getString("num")); +// + List assessorTotal = allPersonTotalMap.get(json2.getString("assessor_id")); + String assessoTotal = "0"; + if (ObjectUtil.isNotEmpty(assessorTotal)){ + assessoTotal = ((JSONObject) assessorTotal.get(0)).getString("num"); + } + jsonAllTotal.put(json2.getString("assessor_id"),assessoTotal); + String eta = "0"; // 计算工时效率:总积分 / 总出勤时间 try { - eta = NumberUtil.div(jsonAllTotalNum.getString("num"), jsonAllTimeNum.getString("num")).toString(); + eta = NumberUtil.div(assessoTotal, assessorNum).toString(); jsonEta.put(json2.getString("assessor_id"),NumberUtil.round(eta, 2)); } catch (Exception e) { jsonEta.put(json2.getString("assessor_id"),"0"); @@ -339,10 +363,8 @@ public class PerformancemstServiceImpl implements PerformancemstService { } // 计算与班组平均对比:个人工时效率 - 所有人总积分 / 所有人总出勤时间 - map1.put("flag", "9"); - map1.put("assessor_id", ""); - double allPersonTotal = 0; // 所有人总积分 -// double allPersonTime = 0; // 所有人总出勤时间 +// map1.put("flag", "9"); +// map1.put("assessor_id", ""); //放外层查询:根据assessor_id获取 // JSONArray allPersonTimeArr = WQL.getWO("QL_TEST_PERFORMANCEMST01").addParamMap(map1).process().getResultJSONArray(0); @@ -350,12 +372,12 @@ public class PerformancemstServiceImpl implements PerformancemstService { // 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++) { - JSONObject jsonObject1 = allPersonTotalArr.getJSONObject(k); - allPersonTotal = NumberUtil.add(allPersonTotal,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++) { +// JSONObject jsonObject1 = allPersonTotalArr.getJSONObject(k); +// allPersonTotal = NumberUtil.add(allPersonTotal,jsonObject1.getDoubleValue("num")); +// } // 与班组平均对比计算结果 try { 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 3f609aab..9eeac759 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 @@ -249,7 +249,8 @@ IF 输入.flag = "10" QUERY SELECT - sum (mst.total_score) AS num + sum (mst.total_score) AS num, + assessor_id FROM QL_TEST_PerformanceMst mst