diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/service/impl/DeviceScreenServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/service/impl/DeviceScreenServiceImpl.java index 95ff42b1..b5bde262 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/service/impl/DeviceScreenServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/service/impl/DeviceScreenServiceImpl.java @@ -15,6 +15,7 @@ import org.nl.wql.WQL; import org.nl.wql.core.bean.WQLObject; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.util.Date; @Service @@ -391,7 +392,7 @@ public class DeviceScreenServiceImpl implements DeviceScreenService { @Override public JSONObject deviceUseRate(JSONObject param) { - JSONArray pro_rows = WQL.getWO("QDEVICE_SCREEN").addParam("flag", "10").process().getResultJSONArray(0); + /*JSONArray pro_rows = WQL.getWO("QDEVICE_SCREEN").addParam("flag", "10").process().getResultJSONArray(0); JSONArray result = new JSONArray(); for (int i = 0; i < pro_rows.size(); i++) { JSONObject pro = pro_rows.getJSONObject(i); @@ -399,7 +400,27 @@ public class DeviceScreenServiceImpl implements DeviceScreenService { jo.put("workprocedure_name", pro.getString("workprocedure_name")); jo.put("teep", (i + 1) * 10); result.add(jo); + }*/ + JSONArray result = new JSONArray(); + String today = DateUtil.today(); + JSONArray workprocedureArr = WQL.getWO("QDEVICE_SCREEN").addParam("flag", "10").process().getResultJSONArray(0); + for (int i = 0; i < workprocedureArr.size(); i++) { + JSONObject workprocedurejo = workprocedureArr.getJSONObject(i); + String workprocedure_id = workprocedurejo.getString("workprocedure_id"); + String workprocedure_name= workprocedurejo.getString("workprocedure_name"); +; //查询每个工序下每个设备的产能 + int Maxproductivity = WQL.getWO("QDEVICE_SCREEN").addParam("flag", "12").addParam("workprocedure_id", workprocedure_id) + .process().uniqueResult(0).getIntValue("productivity"); + //计算该工序下工单的实际生产数量 + int nowproductivity = WQL.getWO("QDEVICE_SCREEN").addParam("flag", "13").addParam("workprocedure_id", workprocedure_id).addParam("produce_date", today) + .process().uniqueResult(0).getIntValue("real_qty"); + BigDecimal teep = NumberUtil.round(NumberUtil.div(nowproductivity * 100, Maxproductivity), 2); + JSONObject jo = new JSONObject(); + jo.put("workprocedure_name", workprocedure_name); + jo.put("teep", teep); + result.add(jo); } + JSONObject returnjo = new JSONObject(); returnjo.put("code", "1"); returnjo.put("desc", "查询成功!"); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/wql/QDEVICE_SCREEN.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/wql/QDEVICE_SCREEN.wql index 30a10f41..758928ff 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/wql/QDEVICE_SCREEN.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/wql/QDEVICE_SCREEN.wql @@ -17,6 +17,7 @@ 输入.worksection_type_scode TYPEAS s_string 输入.today TYPEAS s_string 输入.workprocedure_id TYPEAS s_string + 输入.produce_date TYPEAS s_string [临时表] --这边列出来的临时表就会在运行期动态创建 @@ -270,9 +271,41 @@ ENDQUERY ENDIF - - - + IF 输入.flag = "12" + QUERY + SELECT + sum( device.productivity ) as productivity + FROM + pdm_bi_device device + where + 1=1 + OPTION 输入.workprocedure_id <> "" + device.workprocedure_id = 输入.workprocedure_id + ENDOPTION + + ENDSELECT + ENDQUERY + ENDIF + + + IF 输入.flag = "13" + QUERY + SELECT + sum( shiftorder.real_qty ) as real_qty + FROM + MPS_BD_ProduceShiftOrder shiftorder + where + 1=1 + OPTION 输入.workprocedure_id <> "" + shiftorder.workprocedure_id = 输入.workprocedure_id + ENDOPTION + OPTION 输入.produce_date <> "" + shiftorder.produce_date = 输入.produce_date + ENDOPTION + + ENDSELECT + ENDQUERY + ENDIF