Browse Source

fix 今日成品量

master
张江玮 1 year ago
parent
commit
2dfd01e77a
  1. 44
      lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/impl/BigScreenServiceImpl.java
  2. 35
      lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_PROCESS_PRODUCTION.wql

44
lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/impl/BigScreenServiceImpl.java

@ -1,5 +1,6 @@
package org.nl.wms.cockpit.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONException;
@ -28,6 +29,7 @@ import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.stream.Collectors;
/**
* @Author: lyd
@ -98,27 +100,45 @@ public class BigScreenServiceImpl implements BigScreenService {
map.put("YZDayList", dtos);
return null;
});
// TODO: 3、当日成品
// 3、当日成品
CompletableFuture<List<ManufacturedProductsDto>> manufacturedProductsDayProductionTask
= CompletableFuture.supplyAsync(() -> {
List<ManufacturedProductsDto> res = new ArrayList<>();
Random random = new Random();
// 使用随机数
for (int i = 1; i <= 5; i++) {
ManufacturedProductsDto manufacturedProductsDto = new ManufacturedProductsDto();
manufacturedProductsDto.setInventory_qty(random.nextInt(2000 - 100 + 1) + 100);
manufacturedProductsDto.setQualified_in_qty(random.nextInt(2000 - 100 + 1) + 100);
manufacturedProductsDto.setUnqualified_in_qty(random.nextInt(2000 - 100 + 1) + 100);
manufacturedProductsDto.setMaterial_code("成品" + i);
res.add(manufacturedProductsDto);
String date = DateUtil.today() + "%";
JSONArray qualified = WQL.getWO("COCKPIT_PROCESS_PRODUCTION")
.addParam("flag", "16")
.addParam("date", date)
.process()
.getResultJSONArray(0);
JSONArray unqualified = WQL.getWO("COCKPIT_PROCESS_PRODUCTION")
.addParam("flag", "17")
.addParam("date", date)
.process()
.getResultJSONArray(0);
for (int i = 0; i < qualified.size(); i++) {
JSONObject qualified_data = qualified.getJSONObject(0);
String material_code = qualified_data.getString("material_code");
JSONObject unqualified_data = unqualified
.stream()
.map(o -> (JSONObject) o)
.filter(o -> material_code.equals(o.getString("material_code")))
.collect(Collectors.toList())
.get(0);
ManufacturedProductsDto dto = new ManufacturedProductsDto();
dto.setMaterial_code(material_code.substring(1, 12));
dto.setQualified_in_qty(qualified_data.getIntValue("qualified_qty"));
dto.setUnqualified_in_qty(ObjectUtil.isEmpty(unqualified_data) ? 0 : unqualified_data.getIntValue("unqualified_qty"));
dto.setInventory_qty(dto.getQualified_in_qty() + dto.getUnqualified_in_qty());
res.add(dto);
}
return res;
}, pool);
manufacturedProductsDayProductionTask.thenAccept((result) -> {
map.put("CPDayList", result);
}).exceptionally((e) -> {
log.error("当日成品生产: {}", e.getMessage(), e);
map.put("CPDayList", null);
map.put("CPDayList", new ArrayList<>());
return null;
});
// 4、设备运行情况
@ -1426,7 +1446,7 @@ public class BigScreenServiceImpl implements BigScreenService {
});
for (int i = 0; i < res.size(); i++) {
JSONObject BZX = res.getJSONObject(i);
int vehicleType = BZX.getInteger("vehicle_type") + 2;
int vehicleType = BZX.getIntValue("vehicle_type") == 0 ? 0 : BZX.getIntValue("vehicle_type") + 2;
String vehicleCode = TaskUtils.formatVehicleCode(BZX.getString("vehicle_code"));
BZX.put("vehicle_type", vehicleType);
BZX.put("vehicle_code", vehicleCode);

35
lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_PROCESS_PRODUCTION.wql

@ -16,6 +16,7 @@
输入.flag TYPEAS s_string
输入.region_code TYPEAS s_string
输入.point_type TYPEAS s_string
输入.date TYPEAS s_string
[临时表]
--这边列出来的临时表就会在运行期动态创建
@ -357,3 +358,37 @@
ENDSELECT
ENDPAGEQUERY
ENDIF
IF 输入.flag = "16"
QUERY
SELECT
cInvCode AS material_code,
SUM(iNum) AS qualified_qty
FROM
st_ivt_regionio
WHERE
cInvCode LIKE 'F%'
AND cVouchType = '完工入库'
AND dDate LIKE 输入.date
GROUP BY
cInvCode
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "16"
QUERY
SELECT
cInvCode AS material_code,
SUM(iNum) AS unqualified_qty
FROM
st_ivt_regionio
WHERE
cInvCode LIKE 'F%'
AND cVouchType = '废品入库'
AND dDate LIKE 输入.date
GROUP BY
cInvCode
ENDSELECT
ENDQUERY
ENDIF

Loading…
Cancel
Save