medicalWaste-system/src/main/java/com/sinata/system/domain/dto/SysDictDataDTO.java
@@ -23,4 +23,7 @@ @ApiModelProperty("备注") private String remark; @ApiModelProperty("大屏统计颜色") private String cssClass; } medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MedicalWasteProcessVO.java
@@ -37,7 +37,7 @@ private BigDecimal weight; @ApiModelProperty("收集-收集人姓名") private Long collectUserName; private String collectUserName; @ApiModelProperty("运输-装车时间") private Date checkoutTime; medicalWaste-system/src/main/java/com/sinata/system/service/biz/StaticsService.java
@@ -28,6 +28,7 @@ import com.sinata.system.service.MwDisposalRecordService; import com.sinata.system.service.MwWarningRecordService; import com.sinata.system.service.SysDepartmentService; import com.sinata.system.utils.ImageToBase64; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -241,7 +242,7 @@ departmentReportItemVO.setName(transformVO.getHospitalName()); departmentReportItemVO.setData(new ArrayList<>()); departmentReportItemVO.setDriverName(transformVO.getDriverName()); departmentReportItemVO.setHospitalSignature(transformVO.getHospitalSignature()); departmentReportItemVO.setHospitalSignature(ImageToBase64.convertImageToBase64(transformVO.getHospitalSignature())); departmentReportItemVO.setHandoverTime(transformVO.getCheckoutTime()); for (SysDictData sysDictData : wasteTypeList) { BigDecimal count = BigDecimal.valueOf(transformVO.getCollectRecordList().stream().filter(item -> item.getWasteType().equals(sysDictData.getDictCode())).count()); @@ -370,23 +371,17 @@ SimpleDateFormat finalSdf = sdf; //接收 for (SysDictData sysDictData : wasteTypeList) { departmentReportItemVO.getData().add(BigDecimal.ZERO); if (CollUtils.isNotEmpty(receivedList)) { BigDecimal totalWeight = receivedList.stream().filter(item -> item.getWasteType().equals(sysDictData.getDictCode()) && finalSdf.format(item.getReceiveTime()).equals(date)).map(MwDisposalRecordReportVO::getWeight) .reduce(BigDecimal.ZERO, BigDecimal::add); departmentReportItemVO.getData().add(totalWeight); } } //处置 for (SysDictData sysDictData : wasteTypeList) { departmentReportItemVO.getData().add(BigDecimal.ZERO); if (CollUtils.isNotEmpty(disposaledList)) { BigDecimal totalWeight = disposaledList.stream().filter(item -> item.getWasteType().equals(sysDictData.getDictCode()) && finalSdf.format(item.getReceiveTime()).equals(date)).map(MwDisposalRecordReportVO::getWeight) .reduce(BigDecimal.ZERO, BigDecimal::add); departmentReportItemVO.getData().add(totalWeight); } } list.add(departmentReportItemVO); } medicalWaste-system/src/main/java/com/sinata/system/utils/ImageToBase64.java
New file @@ -0,0 +1,31 @@ package com.sinata.system.utils; import org.apache.commons.io.IOUtils; import java.io.IOException; import java.net.URL; import java.util.Base64; public class ImageToBase64 { /** * 网络图片转Base64 * * @param imageUrl * @return * @throws IOException */ public static String convertImageToBase64(String imageUrl) { try { return Base64.getEncoder().encodeToString(IOUtils.toByteArray(new URL(imageUrl))); } catch (IOException e) { throw new RuntimeException(e); } } public static void main(String[] args) { String imageUrl = "https://ja-medical-service.oss-cn-chengdu.aliyuncs.com/medical/tmp_8d18f8502484db9141a627d807dccb7c20250103015938.png"; String base64Image = convertImageToBase64(imageUrl); System.out.println("Base64 Image: " + base64Image); } } medicalWaste-system/src/main/resources/mapper/system/MwCheckoutRecordMapper.xml
@@ -122,7 +122,8 @@ SUM(MCR.BOX_NUM) AS boxNum, SUM(MCR.TOTAL_WEIGHT) AS weight, MIN(MCR2.BOX_TIME) AS startTime, MDR.RECEIVE_TIME AS endTime MDR.RECEIVE_TIME AS endTime, MCR2.STATUS FROM MW_CHECKOUT_RECORD MCR LEFT JOIN MW_CHECKOUT_RECORD_ITEM MCRI ON MCRI.CHECKOUT_RECORD_ID = MCR.ID LEFT JOIN MW_DISPOSAL_RECORD_ITEM MDRI ON MDRI.COLLECT_RECORD_ID = MCRI.COLLECT_RECORD_ID @@ -185,7 +186,7 @@ SUM(MCR2.WEIGHT) AS totalWeight, MAX(MCR.CHECKOUT_TIME) AS latestCheckoutTime FROM MW_TRANSIT_ROUTE_CAR MTRC LEFT JOIN MW_CHECKOUT_RECORD MCR on MTRC.CAR_ID = MCR.CAR_ID INNER JOIN MW_CHECKOUT_RECORD MCR on MTRC.CAR_ID = MCR.CAR_ID LEFT JOIN MW_CHECKOUT_RECORD_ITEM MCRI on MCR.ID = MCRI.CHECKOUT_RECORD_ID LEFT JOIN MW_COLLECT_RECORD MCR2 ON MCR2.ID = MCRI.COLLECT_RECORD_ID <where>