From 2f3d3fb97bd4ebdc00c40a2774465c8b3487b6d1 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期三, 02 四月 2025 17:14:27 +0800 Subject: [PATCH] bug修改 --- medicalWaste-system/src/main/java/com/sinata/system/domain/vo/DepartmentReportItemVO.java | 3 + medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDictDataServiceImpl.java | 25 +++++-- medicalWaste-system/src/main/java/com/sinata/system/service/ISysDictDataService.java | 7 ++ medicalWaste-system/src/main/java/com/sinata/system/service/biz/StaticsService.java | 108 ++++++++++++++++++----------------- medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwMicroEquipmentRecordServiceImpl.java | 8 +- medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitRecordVO.java | 2 medicalWaste-system/src/main/resources/mapper/system/MwCheckoutRecordMapper.xml | 5 + medicalWaste-system/src/main/resources/mapper/system/MwCollectRecordMapper.xml | 17 +++-- 8 files changed, 102 insertions(+), 73 deletions(-) diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/DepartmentReportItemVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/DepartmentReportItemVO.java index d20764d..f45ec35 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/DepartmentReportItemVO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/DepartmentReportItemVO.java @@ -25,6 +25,9 @@ @ApiModelProperty("机构人员签字") private String hospitalSignature; + + @ApiModelProperty("医院签名URL") + private String hospitalSignatureUrl; @ApiModelProperty("运输人员签字") private String driverName; diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitRecordVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitRecordVO.java index 71ef292..19c4033 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitRecordVO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitRecordVO.java @@ -16,6 +16,8 @@ @Data @ApiModel("运输记录视图对象") public class MwTransitRecordVO { + @ApiModelProperty("唯一标识") + private Long uniqueId; @ApiModelProperty("路线id") private Long id; diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/ISysDictDataService.java b/medicalWaste-system/src/main/java/com/sinata/system/service/ISysDictDataService.java index e6591f7..a6cd317 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/ISysDictDataService.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/ISysDictDataService.java @@ -81,6 +81,13 @@ List<SysDictDataVO> medicalWasteTypeList(); /** + * 医废类型列表 + * + * @return + */ + List<SysDictDataVO> medicalWasteTypeListByDictCode(List<Long> wasteTypeCodeList); + + /** * 器具类型列表 * * @return diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/biz/StaticsService.java b/medicalWaste-system/src/main/java/com/sinata/system/service/biz/StaticsService.java index 99967a7..8050b30 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/biz/StaticsService.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/biz/StaticsService.java @@ -3,9 +3,9 @@ import cn.idev.excel.FastExcel; import com.alibaba.fastjson2.JSONObject; import com.google.common.collect.Lists; -import com.sinata.common.core.domain.entity.SysDictData; import com.sinata.common.utils.CollUtils; import com.sinata.common.utils.DateUtils; +import com.sinata.common.utils.StringUtils; import com.sinata.system.config.AutoColumnWidthStrategy; import com.sinata.system.domain.MwCollectRecord; import com.sinata.system.domain.MwWarningRecord; @@ -115,13 +115,19 @@ BigDecimal currentCount = BigDecimal.ZERO; if (query.getReportType().equals(1)) { weight = collectRecordList.stream().filter(e -> e.getWasteType().equals(sysDictData.getDictCode()) - && finalSdf.format(e.getCollectTime()).equals(date)).map(MwCollectRecord::getWeight).reduce(BigDecimal::add).orElse(BigDecimal.ZERO).setScale(2, RoundingMode.HALF_UP); - long count = collectRecordList.stream().filter(e -> e.getWasteType().equals(sysDictData.getDictCode()) && finalSdf.format(e.getCollectTime()).equals(date)).count(); + && finalSdf.format(e.getCollectTime()).equals(date)).map(MwCollectRecord::getWeight) + .reduce(BigDecimal::add).orElse(BigDecimal.ZERO).setScale(2, RoundingMode.HALF_UP); + long count = collectRecordList.stream() + .filter(e -> e.getWasteType().equals(sysDictData.getDictCode()) && finalSdf.format(e.getCollectTime()).equals(date)) + .count(); currentCount = BigDecimal.valueOf(count); } else { weight = collectRecordList.stream().filter(e -> e.getWasteType().equals(sysDictData.getDictCode()) - && finalSdf.format(e.getCheckoutTime()).equals(date)).map(MwCollectRecord::getWeight).reduce(BigDecimal::add).orElse(BigDecimal.ZERO).setScale(2, RoundingMode.HALF_UP); - long count = collectRecordList.stream().filter(e -> e.getWasteType().equals(sysDictData.getDictCode()) && finalSdf.format(e.getCheckoutTime()).equals(date)).count(); + && finalSdf.format(e.getCheckoutTime()).equals(date)).map(MwCollectRecord::getWeight) + .reduce(BigDecimal::add).orElse(BigDecimal.ZERO).setScale(2, RoundingMode.HALF_UP); + long count = collectRecordList.stream() + .filter(e -> e.getWasteType().equals(sysDictData.getDictCode()) && finalSdf.format(e.getCheckoutTime()).equals(date)) + .count(); currentCount = BigDecimal.valueOf(count); } itemVO.getData().add(currentCount); @@ -134,7 +140,8 @@ //查询预警记录判断是否超时 if (query.getDateType().equals(1)) { itemVO.setOverTimeFlag("否"); - List<Long> collectIdList = collectRecordList.stream().filter(e -> finalSdf.format(e.getCollectTime()).equals(date)).map(MwCollectRecord::getId).collect(Collectors.toList()); + List<Long> collectIdList = collectRecordList.stream().filter(e -> finalSdf.format(e.getCollectTime()).equals(date)) + .map(MwCollectRecord::getId).collect(Collectors.toList()); if (CollUtils.isNotEmpty(collectIdList)) { List<MwWarningRecord> warningRecordList = mwWarningRecordService.lambdaQuery().in(MwWarningRecord::getWarningTargetId, collectIdList).list(); if (CollUtils.isNotEmpty(warningRecordList)) { @@ -284,10 +291,9 @@ //List<SysDepartment> hospitalList = sysDepartmentService.lambdaQuery().likeRight(SysDepartment::getTreeCode, region.getTreeCode()).eq(SysDepartment::getOrgType, DepartmentEnum.MEDICAL_INSTITUTION.getCode()).list(); List<TransformVO> checkoutRecordVOList = mwCheckoutRecordService.getCheckoutRecordList(query, region.getTreeCode()); //查询医废类型 - List<SysDictData> wasteTypeList = sysDictDataService.lambdaQuery().in(SysDictData::getDictCode, query.getWasteTypeCodeList()) - .orderByDesc(SysDictData::getDictCode).list(); - if (CollUtils.isNotEmpty(wasteTypeList)) { - vo.setLegend(wasteTypeList.stream().map(SysDictData::getDictLabel).collect(Collectors.toList())); + List<SysDictDataVO> sysDictDataVOS = sysDictDataService.medicalWasteTypeListByDictCode(query.getWasteTypeCodeList()); + if (CollUtils.isNotEmpty(sysDictDataVOS)) { + vo.setLegend(sysDictDataVOS.stream().map(SysDictDataVO::getDictLabel).collect(Collectors.toList())); vo.getLegend().add("小计"); List<DepartmentReportItemVO> list = new ArrayList<>(); @@ -301,8 +307,9 @@ departmentReportItemVO.setData(new ArrayList<>()); departmentReportItemVO.setDriverName(transformVO.getDriverName()); departmentReportItemVO.setHospitalSignature(ImageToBase64.convertImageToBase64(transformVO.getHospitalSignature())); + departmentReportItemVO.setHospitalSignatureUrl(transformVO.getHospitalSignature()); departmentReportItemVO.setHandoverTime(transformVO.getCheckoutTime()); - for (SysDictData sysDictData : wasteTypeList) { + for (SysDictDataVO sysDictData : sysDictDataVOS) { BigDecimal count = BigDecimal.valueOf(transformVO.getCollectRecordList().stream().filter(item -> item.getWasteType().equals(sysDictData.getDictCode())).count()); BigDecimal weight = transformVO.getCollectRecordList().stream().filter(item -> item.getWasteType().equals(sysDictData.getDictCode())).map(MwMedicalWasteBoxVO::getTotalWeight).reduce(BigDecimal.ZERO, BigDecimal::add); departmentReportItemVO.getData().add(count); @@ -322,13 +329,13 @@ totalRow.setData(new ArrayList<>()); // 计算各类型废物的总数量和总重量 - for (SysDictData sysDictData : wasteTypeList) { + for (SysDictDataVO sysDictData : sysDictDataVOS) { BigDecimal totalTypeCount = BigDecimal.ZERO; BigDecimal totalTypeWeight = BigDecimal.ZERO; for (DepartmentReportItemVO item : list) { // 获取当前废物类型在数据列表中的索引位置 - int index = wasteTypeList.indexOf(sysDictData); + int index = sysDictDataVOS.indexOf(sysDictData); // 每个废物类型占两列(数量和重量) int countIndex = index * 2; int weightIndex = countIndex + 1; @@ -405,7 +412,7 @@ List<Object> data = new ArrayList<>(); data.add(departmentReportItemVO.getName()); data.addAll(departmentReportItemVO.getData()); - data.add(new URL(departmentReportItemVO.getHospitalSignature())); + data.add(StringUtils.isNotBlank(departmentReportItemVO.getHospitalSignatureUrl()) ? new URL(departmentReportItemVO.getHospitalSignatureUrl()) : ""); data.add(departmentReportItemVO.getDriverName()); data.add(departmentReportItemVO.getHandoverTime()); result.add(data); @@ -423,11 +430,10 @@ */ private List<List<String>> transformReportHead(List<Long> wasteTypeCodeList) { //查询医废类型 - List<SysDictData> wasteTypeList = sysDictDataService.lambdaQuery().in(SysDictData::getDictCode, wasteTypeCodeList) - .orderByDesc(SysDictData::getDictCode).list(); + List<SysDictDataVO> sysDictDataVOS = sysDictDataService.medicalWasteTypeListByDictCode(wasteTypeCodeList); List<List<String>> headTitles = Lists.newArrayList(); headTitles.add(Lists.newArrayList("医院名称", "医院名称")); - wasteTypeList.forEach(item -> { + sysDictDataVOS.forEach(item -> { headTitles.add(Lists.newArrayList(item.getDictLabel(), "数量")); headTitles.add(Lists.newArrayList(item.getDictLabel(), "重量(KG)")); }); @@ -469,10 +475,9 @@ } List<String> dateList = DateUtils.getDayBetween(query.getStartTime(), query.getEndTime(), query.getDateType()); //查询医废类型 - List<SysDictData> wasteTypeList = sysDictDataService.lambdaQuery().in(SysDictData::getDictCode, query.getWasteTypeCodeList()) - .orderByDesc(SysDictData::getDictCode).list(); - if (CollUtils.isNotEmpty(wasteTypeList)) { - List<String> legend = wasteTypeList.stream().map(SysDictData::getDictLabel).collect(Collectors.toList()); + List<SysDictDataVO> sysDictDataVOS = sysDictDataService.medicalWasteTypeListByDictCode(query.getWasteTypeCodeList()); + if (CollUtils.isNotEmpty(sysDictDataVOS)) { + List<String> legend = sysDictDataVOS.stream().map(SysDictDataVO::getDictLabel).collect(Collectors.toList()); vo.setLegend(legend); List<DepartmentReportItemVO> list = new ArrayList<>(); for (String date : dateList) { @@ -481,14 +486,14 @@ departmentReportItemVO.setData(new ArrayList<>()); SimpleDateFormat finalSdf = sdf; //接收 - for (SysDictData sysDictData : wasteTypeList) { + for (SysDictDataVO sysDictData : sysDictDataVOS) { 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) { + for (SysDictDataVO sysDictData : sysDictDataVOS) { BigDecimal totalWeight = disposaledList.stream().filter(item -> item.getWasteType().equals(sysDictData.getDictCode()) && finalSdf.format(item.getDisposalTime()).equals(date)).map(MwDisposalRecordReportVO::getWeight) .reduce(BigDecimal.ZERO, BigDecimal::add); @@ -504,11 +509,11 @@ totalRow.setData(new ArrayList<>()); // 计算各类型废物的接收总量 - for (SysDictData sysDictData : wasteTypeList) { + for (SysDictDataVO sysDictData : sysDictDataVOS) { BigDecimal totalReceiveWeight = BigDecimal.ZERO; for (DepartmentReportItemVO item : list) { - int index = wasteTypeList.indexOf(sysDictData); + int index = sysDictDataVOS.indexOf(sysDictData); if (index < item.getData().size()) { totalReceiveWeight = totalReceiveWeight.add(item.getData().get(index)); } @@ -518,13 +523,13 @@ } // 计算各类型废物的处置总量 - for (SysDictData sysDictData : wasteTypeList) { + for (SysDictDataVO sysDictData : sysDictDataVOS) { BigDecimal totalDisposalWeight = BigDecimal.ZERO; for (DepartmentReportItemVO item : list) { - int index = wasteTypeList.indexOf(sysDictData); - // 处置量数据在接收量数据之后,所以索引需要加上wasteTypeList的大小 - int disposalIndex = wasteTypeList.size() + index; + int index = sysDictDataVOS.indexOf(sysDictData); + // 处置量数据在接收量数据之后,所以索引需要加上sysDictDataVOS的大小 + int disposalIndex = sysDictDataVOS.size() + index; if (disposalIndex < item.getData().size()) { totalDisposalWeight = totalDisposalWeight.add(item.getData().get(disposalIndex)); } @@ -596,14 +601,13 @@ */ private List<List<String>> disposalReportHead(List<Long> wasteTypeCodeList) { //查询医废类型 - List<SysDictData> wasteTypeList = sysDictDataService.lambdaQuery().in(SysDictData::getDictCode, wasteTypeCodeList) - .orderByDesc(SysDictData::getDictCode).list(); + List<SysDictDataVO> sysDictDataVOS = sysDictDataService.medicalWasteTypeListByDictCode(wasteTypeCodeList); List<List<String>> headTitles = Lists.newArrayList(); headTitles.add(Lists.newArrayList("日期")); - wasteTypeList.forEach(item -> { + sysDictDataVOS.forEach(item -> { headTitles.add(Lists.newArrayList("医疗废物接收量(kg)", item.getDictLabel())); }); - wasteTypeList.forEach(item -> { + sysDictDataVOS.forEach(item -> { headTitles.add(Lists.newArrayList("医疗废物处置量(kg)", item.getDictLabel())); }); return headTitles; @@ -643,10 +647,9 @@ } List<String> dateList = DateUtils.getDayBetween(query.getStartTime(), query.getEndTime(), query.getDateType()); //查询医废类型 - List<SysDictData> wasteTypeList = sysDictDataService.lambdaQuery().in(SysDictData::getDictCode, query.getWasteTypeCodeList()) - .orderByDesc(SysDictData::getDictCode).list(); - if (CollUtils.isNotEmpty(wasteTypeList)) { - vo.setLegend(wasteTypeList.stream().map(SysDictData::getDictLabel).collect(Collectors.toList())); + List<SysDictDataVO> sysDictDataVOS = sysDictDataService.medicalWasteTypeListByDictCode(query.getWasteTypeCodeList()); + if (CollUtils.isNotEmpty(sysDictDataVOS)) { + vo.setLegend(sysDictDataVOS.stream().map(SysDictDataVO::getDictLabel).collect(Collectors.toList())); vo.setList(new ArrayList<>()); List<DepartmentReportItemVO> list = new ArrayList<>(); for (String date : dateList) { @@ -654,18 +657,18 @@ departmentReportItemVO.setName(date); departmentReportItemVO.setData(new ArrayList<>()); SimpleDateFormat finalSdf = sdf; - for (SysDictData sysDictData : wasteTypeList) { + for (SysDictDataVO sysDictData : sysDictDataVOS) { BigDecimal weight = collectRecordList.stream().filter(e -> e.getWasteType().equals(sysDictData.getDictCode()) && finalSdf.format(e.getCollectTime()).equals(date)).map(MwCollectRecordVO::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add); departmentReportItemVO.getData().add(weight); } - for (SysDictData sysDictData : wasteTypeList) { + for (SysDictDataVO sysDictData : sysDictDataVOS) { BigDecimal weight = checkoutRecordList.stream().filter(e -> e.getWasteType().equals(sysDictData.getDictCode()) && finalSdf.format(e.getCheckoutTime()).equals(date)).map(MwCollectRecordVO::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add); departmentReportItemVO.getData().add(weight); } - for (SysDictData sysDictData : wasteTypeList) { + for (SysDictDataVO sysDictData : sysDictDataVOS) { BigDecimal weight = disposalRecordList.stream().filter(e -> e.getWasteType().equals(sysDictData.getDictCode()) && finalSdf.format(e.getCollectTime()).equals(date)).map(MwCollectRecordVO::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add); departmentReportItemVO.getData().add(weight); @@ -680,11 +683,11 @@ totalRow.setData(new ArrayList<>()); // 计算各类型废物的产生总量 - for (SysDictData sysDictData : wasteTypeList) { + for (SysDictDataVO sysDictData : sysDictDataVOS) { BigDecimal totalGeneratedWeight = BigDecimal.ZERO; for (DepartmentReportItemVO item : list) { - int index = wasteTypeList.indexOf(sysDictData); + int index = sysDictDataVOS.indexOf(sysDictData); if (index < item.getData().size()) { totalGeneratedWeight = totalGeneratedWeight.add(item.getData().get(index)); } @@ -694,13 +697,13 @@ } // 计算各类型废物的转移总量 - for (SysDictData sysDictData : wasteTypeList) { + for (SysDictDataVO sysDictData : sysDictDataVOS) { BigDecimal totalTransferWeight = BigDecimal.ZERO; for (DepartmentReportItemVO item : list) { - int index = wasteTypeList.indexOf(sysDictData); + int index = sysDictDataVOS.indexOf(sysDictData); // 转移量数据在产生量数据之后,所以索引需要加上wasteTypeList的大小 - int transferIndex = wasteTypeList.size() + index; + int transferIndex = sysDictDataVOS.size() + index; if (transferIndex < item.getData().size()) { totalTransferWeight = totalTransferWeight.add(item.getData().get(transferIndex)); } @@ -710,13 +713,13 @@ } // 计算各类型废物的处置总量 - for (SysDictData sysDictData : wasteTypeList) { + for (SysDictDataVO sysDictData : sysDictDataVOS) { BigDecimal totalDisposalWeight = BigDecimal.ZERO; for (DepartmentReportItemVO item : list) { - int index = wasteTypeList.indexOf(sysDictData); + int index = sysDictDataVOS.indexOf(sysDictData); // 处置量数据在产生量和转移量数据之后,所以索引需要加上wasteTypeList的大小的2倍 - int disposalIndex = wasteTypeList.size() * 2 + index; + int disposalIndex = sysDictDataVOS.size() * 2 + index; if (disposalIndex < item.getData().size()) { totalDisposalWeight = totalDisposalWeight.add(item.getData().get(disposalIndex)); } @@ -782,17 +785,16 @@ */ private List<List<String>> regulationReportHead(List<Long> wasteTypeCodeList) { //查询医废类型 - List<SysDictData> wasteTypeList = sysDictDataService.lambdaQuery().in(SysDictData::getDictCode, wasteTypeCodeList) - .orderByDesc(SysDictData::getDictCode).list(); + List<SysDictDataVO> sysDictDataVOS = sysDictDataService.medicalWasteTypeListByDictCode(wasteTypeCodeList); List<List<String>> headTitles = Lists.newArrayList(); headTitles.add(Lists.newArrayList("日期")); - wasteTypeList.forEach(item -> { + sysDictDataVOS.forEach(item -> { headTitles.add(Lists.newArrayList("医疗废物产生量(kg)", item.getDictLabel())); }); - wasteTypeList.forEach(item -> { + sysDictDataVOS.forEach(item -> { headTitles.add(Lists.newArrayList("医疗废物转移量(kg)", item.getDictLabel())); }); - wasteTypeList.forEach(item -> { + sysDictDataVOS.forEach(item -> { headTitles.add(Lists.newArrayList("医疗废物处置量(kg)", item.getDictLabel())); }); return headTitles; diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwMicroEquipmentRecordServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwMicroEquipmentRecordServiceImpl.java index dd2aca7..735cdf0 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwMicroEquipmentRecordServiceImpl.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwMicroEquipmentRecordServiceImpl.java @@ -217,8 +217,6 @@ vo.setLegend(wasteTypeList.stream().map(SysDictDataVO::getDictLabel).collect(Collectors.toList())); vo.getLegend().add("小计"); String treeCode = sysDepartmentService.getTreeCodeByDepartmentId(query.getDepartmentId()); - List<SysDictData> medicalWasteTypeList = sysDictDataService.lambdaQuery().eq(SysDictData::getDictType, "medical_waste_type").orderByDesc(SysDictData::getDictCode).list(); - List<MwMicroEquipmentStaticsVO> staticsData = baseMapper.getStaticsData(query, treeCode); SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.YYYY_MM_DD_HH_MM_SS); switch (query.getDateType()) { @@ -241,7 +239,7 @@ SimpleDateFormat finalSdf = sdf; BigDecimal totalWeight = BigDecimal.ZERO; BigDecimal totalCount = BigDecimal.ZERO; - for (SysDictData sysDictData : medicalWasteTypeList) { + for (SysDictDataVO sysDictData : wasteTypeList) { BigDecimal weight = staticsData.stream().filter(e -> e.getWasteType().equals(sysDictData.getDictCode()) && finalSdf.format(e.getUseTime()).equals(date) ).map(MwMicroEquipmentStaticsVO::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP); @@ -264,13 +262,13 @@ totalRow.setData(new ArrayList<>()); // 计算各类型废物的重量和数量总计 - for (SysDictData sysDictData : medicalWasteTypeList) { + for (SysDictDataVO sysDictData : wasteTypeList) { BigDecimal totalTypeWeight = BigDecimal.ZERO; BigDecimal totalTypeCount = BigDecimal.ZERO; for (DepartmentReportItemVO item : result) { // 每种废物类型占用两列(重量和数量) - int index = medicalWasteTypeList.indexOf(sysDictData); + int index = wasteTypeList.indexOf(sysDictData); int weightIndex = index * 2; int countIndex = weightIndex + 1; diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDictDataServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDictDataServiceImpl.java index 17058ea..a882131 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDictDataServiceImpl.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDictDataServiceImpl.java @@ -133,6 +133,7 @@ Page<SysDictData> result = this.lambdaQuery() .like(StringUtils.isNotBlank(query.getKeyword()), SysDictData::getDictLabel, query.getKeyword()) .eq(StringUtils.isNotBlank(query.getDictType()), SysDictData::getDictType, query.getDictType()) + .orderByAsc(SysDictData::getDictSort) .orderByDesc(SysDictData::getDictCode) .page(new Page<>(query.getPageCurr(), query.getPageSize())); List<String> dictTypeList = result.getRecords().stream().map(SysDictData::getDictType).distinct().collect(Collectors.toList()); @@ -167,12 +168,20 @@ @Override public List<SysDictDataVO> medicalWasteTypeList() { - return getSysDictDataVOListByType("medical_waste_type"); + return getSysDictDataVOListByType("medical_waste_type", null); + } + + @Override + public List<SysDictDataVO> medicalWasteTypeListByDictCode(List<Long> wasteTypeCodeList) { + return getSysDictDataVOListByType("medical_waste_type", wasteTypeCodeList); } @Nullable - private List<SysDictDataVO> getSysDictDataVOListByType(String dictType) { - List<SysDictData> medicalWasteTypeList = lambdaQuery().eq(SysDictData::getDictType, dictType).orderByDesc(SysDictData::getDictCode).list(); + private List<SysDictDataVO> getSysDictDataVOListByType(String dictType, List<Long> dictCodeList) { + List<SysDictData> medicalWasteTypeList = lambdaQuery().eq(SysDictData::getDictType, dictType) + .in(CollUtils.isNotEmpty(dictCodeList), SysDictData::getDictCode, dictCodeList) + .orderByAsc(SysDictData::getDictSort) + .orderByDesc(SysDictData::getDictCode).list(); return BeanUtils.copyToList(medicalWasteTypeList, SysDictDataVO.class); } @@ -183,7 +192,7 @@ */ @Override public List<SysDictDataVO> equipmentTypeList() { - return getSysDictDataVOListByType("protection_equipment_type"); + return getSysDictDataVOListByType("protection_equipment_type", null); } /** @@ -193,7 +202,7 @@ */ @Override public List<SysDictDataVO> regulationsTypeList() { - return getSysDictDataVOListByType("protection_regulation_type"); + return getSysDictDataVOListByType("protection_regulation_type", null); } /** @@ -203,16 +212,16 @@ */ @Override public List<SysDictDataVO> workTypeList() { - return getSysDictDataVOListByType("protective_work_type"); + return getSysDictDataVOListByType("protective_work_type", null); } @Override public List<SysDictDataVO> institutionLevelList() { - return getSysDictDataVOListByType("institution_level"); + return getSysDictDataVOListByType("institution_level", null); } @Override public List<SysDictDataVO> institutionTypeList() { - return getSysDictDataVOListByType("institution_type"); + return getSysDictDataVOListByType("institution_type", null); } } diff --git a/medicalWaste-system/src/main/resources/mapper/system/MwCheckoutRecordMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/MwCheckoutRecordMapper.xml index 98c587d..d607856 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/MwCheckoutRecordMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/MwCheckoutRecordMapper.xml @@ -114,6 +114,7 @@ </select> <select id="transitPageList" resultType="com.sinata.system.domain.vo.MwTransitRecordVO"> SELECT + MCR2.ID AS UNIQUE_ID, MTR.ID, MCR.CAR_ID, MAX(SD.DEPARTMENT_NAME) AS DEPARTMENT_NAME, @@ -158,6 +159,9 @@ <if test="query.status != null and (query.status == 3 or query.status == 4)"> AND MCR.STATUS IN (3,4) </if> + <if test="query.status != null"> + AND MCR.STATUS =#{query.status} + </if> <if test="query.startTimeStart != null and query.startTimeEnd != null"> AND MCR.BOX_TIME BETWEEN #{query.startTimeStart} AND #{query.startTimeEnd} </if> @@ -174,6 +178,7 @@ </select> <select id="transitDetail" resultType="com.sinata.system.domain.vo.MwTransitRecordVO"> SELECT + MCR2.ID AS UNIQUE_ID, MTR.ID, MCR.CAR_ID, MAX(SD.DEPARTMENT_NAME) AS DEPARTMENT_NAME, diff --git a/medicalWaste-system/src/main/resources/mapper/system/MwCollectRecordMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/MwCollectRecordMapper.xml index baaa8af..d7d741e 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/MwCollectRecordMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/MwCollectRecordMapper.xml @@ -472,16 +472,19 @@ </select> <select id="getTagInfo" resultType="com.sinata.system.domain.vo.DepartmentTagInfoVO" parameterType="java.lang.Long"> - SELECT SD.ID,SD.DEPARTMENT_NAME,COALESCE(SUM(MCR.WEIGHT), 0) AS currentStorageWeight, + SELECT SD.ID, + SD.DEPARTMENT_NAME, + COALESCE(SUM(MCR.WEIGHT), 0) AS currentStorageWeight, COUNT(MCR.ID) AS currentStorageBagNum, - COALESCE(SUM(IF(TRUNC(MCR.COLLECT_TIME) = TRUNC(SYSDATE), MCR.WEIGHT, 0)), 0) AS - todayHandleWeight, - COALESCE(COUNT(IF(TRUNC(MCR.COLLECT_TIME) = TRUNC(SYSDATE), MCR.ID, NULL)), 0) AS - todayHandleBagNum FROM MW_COLLECT_RECORD MCR LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MCR.DEPARTMENT_ID + COALESCE(SUM(IF(TRUNC(MCR.COLLECT_TIME) = TRUNC(SYSDATE), MCR.WEIGHT, 0)), 0) AS todayHandleWeight, + COALESCE(COUNT(IF(TRUNC(MCR.COLLECT_TIME) = TRUNC(SYSDATE), MCR.ID, NULL)), 0) AS todayHandleBagNum + FROM SYS_DEPARTMENT SD + LEFT JOIN MW_COLLECT_RECORD MCR + ON SD.ID = MCR.DEPARTMENT_ID AND MCR.DEL_FLAG = 0 <where> - MCR.DEL_FLAG = 0 AND MCR.DEPARTMENT_ID = #{id} + SD.ID = #{id} </where> - GROUP BY MCR.DEPARTMENT_ID + GROUP BY SD.ID </select> </mapper> -- Gitblit v1.7.1