|
@@ -74,6 +74,9 @@ import org.springframework.web.servlet.ModelAndView;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.ZoneId;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
|
import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -1942,6 +1945,24 @@ public class StorageBillController extends JeecgController<StorageBill, IStorage
|
|
|
|
|
|
billetHotsendList.forEach(x -> {
|
|
|
HeatsActualsInfo heatsActualsInfo = new HeatsActualsInfo();
|
|
|
+
|
|
|
+ if(oConvertUtils.isNotEmpty(x.getHeatNo())){
|
|
|
+
|
|
|
+ LambdaQueryWrapper<HeatsActuals> heatsActualsQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ heatsActualsQueryWrapper.eq(HeatsActuals::getCasterCode, x.getCcmNo())
|
|
|
+ .eq(HeatsActuals::getHeatsCode, x.getHeatNo())
|
|
|
+ .orderByDesc(HeatsActuals::getCreateTime).last("LIMIT 1");
|
|
|
+ HeatsActuals one = heatsActualsService.getOne(heatsActualsQueryWrapper);
|
|
|
+ if(oConvertUtils.isNotEmpty(one) && oConvertUtils.isNotEmpty(one.getCreateTime())){
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+ String createTimeStr = one.getCreateTime() != null
|
|
|
+ ? LocalDateTime.ofInstant(one.getCreateTime().toInstant(), ZoneId.of("GMT+8")).format(formatter)
|
|
|
+ : null;
|
|
|
+
|
|
|
+ heatsActualsInfo.setCreateTime(createTimeStr);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
heatsActualsInfo.setShiftGroup(x.getShiftGroup());
|
|
|
heatsActualsInfo.setShift(x.getShift());
|
|
|
heatsActualsInfo.setHeatNo(x.getHeatNo());
|
|
@@ -2008,10 +2029,23 @@ public class StorageBillController extends JeecgController<StorageBill, IStorage
|
|
|
// 统计总数
|
|
|
int totalCount = filterDirectRollingList.size();
|
|
|
|
|
|
+ // 按定尺 length 分组统计每组数量(Long 类型)
|
|
|
+ Map<Integer, Long> lengthCountMapRaw = filterDirectRollingList.stream()
|
|
|
+ .filter(info -> info.getLength() != null)
|
|
|
+ .collect(Collectors.groupingBy(BilletBasicInfo::getLength, Collectors.counting()));
|
|
|
+
|
|
|
+ // 转换为 Map<String, Long>,确保 JSON key 是字符串
|
|
|
+ Map<String, Long> lengthCountMap = lengthCountMapRaw.entrySet().stream()
|
|
|
+ .collect(Collectors.toMap(
|
|
|
+ e -> String.valueOf(e.getKey()), // key 转字符串
|
|
|
+ Map.Entry::getValue
|
|
|
+ ));
|
|
|
+
|
|
|
// 转为JSON字符串
|
|
|
Map<String, Object> directRollingMap = new HashMap<>();
|
|
|
directRollingMap.put("directRollingTotalWeight", totalWeight);
|
|
|
directRollingMap.put("directRollingTotalCount", totalCount);
|
|
|
+ directRollingMap.put("lengthGroupCount", lengthCountMap); // 定尺统计结果
|
|
|
String jsonResult = JSON.toJSONString(directRollingMap); // 使用FastJSON转换.
|
|
|
heatsActualsInfo.setDirectRolling(jsonResult);
|
|
|
}
|