From 555ff988376b8650455547d0b6ff7f12f4ae2c63 Mon Sep 17 00:00:00 2001 From: luoyisheng <yangdongji@argo-ai.cn> Date: 星期三, 26 三月 2025 17:27:02 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwCheckoutRecordServiceImpl.java | 10 medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDepartmentServiceImpl.java | 1 medicalWaste-system/src/main/resources/mapper/system/MwApplicationMapper.xml | 1 medicalWaste-system/src/main/java/com/sinata/system/service/biz/StaticsService.java | 2 medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwMicroEquipmentRecordServiceImpl.java | 48 +++---- medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwMedicalWasteBoxVO.java | 7 + medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwCheckoutRecordController.java | 9 medicalWaste-system/src/main/java/com/sinata/system/mapper/MwCheckoutRecordMapper.java | 9 medicalWaste-system/src/main/java/com/sinata/system/service/MwCheckoutRecordService.java | 7 medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDictDataServiceImpl.java | 2 medicalWaste-system/src/main/resources/mapper/system/SysRoleMapper.xml | 2 medicalWaste-system/src/main/java/com/sinata/system/domain/query/TransitRecordQuery.java | 29 ++++ medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitRecordVO.java | 10 + medicalWaste-system/src/main/resources/mapper/system/MwCheckoutRecordMapper.xml | 163 +++++++++++++++++++------- medicalWaste-common/src/main/java/com/sinata/common/utils/DateUtils.java | 6 15 files changed, 212 insertions(+), 94 deletions(-) diff --git a/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwCheckoutRecordController.java b/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwCheckoutRecordController.java index 5d36435..7de027c 100644 --- a/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwCheckoutRecordController.java +++ b/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwCheckoutRecordController.java @@ -5,6 +5,7 @@ import com.sinata.system.domain.query.CheckoutRecordQuery; import com.sinata.system.domain.query.MwCheckoutRecordItemQuery; import com.sinata.system.domain.query.MwTransitRecordQuery; +import com.sinata.system.domain.query.TransitRecordQuery; import com.sinata.system.domain.vo.MwCheckoutRecordVO; import com.sinata.system.domain.vo.MwMedicalWasteBoxVO; import com.sinata.system.domain.vo.MwTransitRecordVO; @@ -111,9 +112,9 @@ * @return */ @ApiOperation("运输记录详情") - @GetMapping("/transit/detail/{id}") - public R<MwTransitRecordVO> transitDetail(@ApiParam(name = "id", value = "运输记录id", required = true) @PathVariable("id") Long id) { - return R.ok(mwCheckoutRecordService.transitDetail(id)); + @PostMapping("/transit/detail") + public R<MwTransitRecordVO> transitDetail(@RequestBody TransitRecordQuery query) { + return R.ok(mwCheckoutRecordService.transitDetail(query)); } /** @@ -124,7 +125,7 @@ */ @ApiOperation("运输记录详情分页列表") @PostMapping("/transit/detailPage") - public R<PageDTO<MwMedicalWasteBoxVO>> transitDetailPage(@Valid @RequestBody MwTransitRecordQuery query) { + public R<PageDTO<MwMedicalWasteBoxVO>> transitDetailPage(@Valid @RequestBody TransitRecordQuery query) { return R.ok(mwCheckoutRecordService.transitDetailPageList(query)); } } diff --git a/medicalWaste-common/src/main/java/com/sinata/common/utils/DateUtils.java b/medicalWaste-common/src/main/java/com/sinata/common/utils/DateUtils.java index 4b09a69..92a68db 100644 --- a/medicalWaste-common/src/main/java/com/sinata/common/utils/DateUtils.java +++ b/medicalWaste-common/src/main/java/com/sinata/common/utils/DateUtils.java @@ -245,7 +245,7 @@ max.setTime(maxDate); Calendar curr = min; - max.add(Calendar.YEAR, 1); + //max.add(Calendar.YEAR, 1); while (curr.before(max)) { result.add(sdf.format(curr.getTime())); curr.add(Calendar.YEAR, 1); @@ -259,7 +259,7 @@ max.setTime(maxDate); Calendar curr = min; - max.add(Calendar.MONTH, 1); + //max.add(Calendar.MONTH, 1); while (curr.before(max)) { result.add(sdf.format(curr.getTime())); curr.add(Calendar.MONTH, 1); @@ -273,7 +273,7 @@ min.setTime(minDate); max.setTime(maxDate); Calendar curr = min; - max.add(Calendar.DATE, 1); + //max.add(Calendar.DATE, 1); while (curr.before(max)) { result.add(sdf.format(curr.getTime())); curr.add(Calendar.DATE, 1); diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/query/TransitRecordQuery.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/query/TransitRecordQuery.java new file mode 100644 index 0000000..1896a20 --- /dev/null +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/query/TransitRecordQuery.java @@ -0,0 +1,29 @@ +package com.sinata.system.domain.query; + +import com.sinata.common.entity.BasePage; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @author mitao + * @date 2025/3/25 + */ +@ApiModel("运输记录查询对象") +@Data +public class TransitRecordQuery extends BasePage { + private static final long serialVersionUID = 710402334522546900L; + @ApiModelProperty(value = "路线id") + private Long id; + + @ApiModelProperty(value = "车辆id") + private Long carId; + + @ApiModelProperty(value = "运输日期") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date transitDate; + +} diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwMedicalWasteBoxVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwMedicalWasteBoxVO.java index b1204a7..2dc25a5 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwMedicalWasteBoxVO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwMedicalWasteBoxVO.java @@ -1,8 +1,10 @@ package com.sinata.system.domain.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; import java.util.Date; @@ -48,4 +50,9 @@ @ApiModelProperty("最后封箱时间") private Date boxTime; + @ApiModelProperty(value = "运输日期") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date transitDate; + } 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 9699519..71ef292 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 @@ -1,8 +1,10 @@ package com.sinata.system.domain.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; import java.util.Date; @@ -17,6 +19,9 @@ @ApiModelProperty("路线id") private Long id; + + @ApiModelProperty("路线id") + private Long carId; @ApiModelProperty("单位名称") private String departmentName; @@ -41,4 +46,9 @@ @ApiModelProperty("状态 1:暂存中; 2:运输中; 3:已接收; 4:已处置;") private Integer status; + + @ApiModelProperty(value = "运输日期") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date transitDate; } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwCheckoutRecordMapper.java b/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwCheckoutRecordMapper.java index f2e2b0c..dd94589 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwCheckoutRecordMapper.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwCheckoutRecordMapper.java @@ -3,12 +3,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.sinata.system.domain.MwCheckoutRecord; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.sinata.system.domain.dto.CollectTotalUpDto; import com.sinata.system.domain.query.CheckoutRecordQuery; import com.sinata.system.domain.query.DisposalReportQuery; import com.sinata.system.domain.query.MwTransitRecordQuery; import com.sinata.system.domain.query.TransformQuery; +import com.sinata.system.domain.query.TransitRecordQuery; import com.sinata.system.domain.vo.MwCheckoutRecordVO; import com.sinata.system.domain.vo.MwCollectRecordVO; import com.sinata.system.domain.vo.MwMedicalWasteBoxVO; @@ -71,10 +71,9 @@ /** * 运输记录详情 * - * @param id - * @return + * @param query@return */ - MwTransitRecordVO transitDetail(Long id); + MwTransitRecordVO transitDetail(@Param("query") TransitRecordQuery query); /** * 运输记录详情分页列表 @@ -83,7 +82,7 @@ * @param id * @return */ - Page<MwMedicalWasteBoxVO> transitDetailPageList(Page<MwMedicalWasteBoxVO> page, @Param("id") Long id); + Page<MwMedicalWasteBoxVO> transitDetailPageList(Page<MwMedicalWasteBoxVO> page, @Param("query") TransitRecordQuery query); /** * 转运记录导出 diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/MwCheckoutRecordService.java b/medicalWaste-system/src/main/java/com/sinata/system/service/MwCheckoutRecordService.java index 64bff39..dabcf05 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/MwCheckoutRecordService.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/MwCheckoutRecordService.java @@ -9,6 +9,7 @@ import com.sinata.system.domain.query.MwCheckoutRecordItemQuery; import com.sinata.system.domain.query.MwTransitRecordQuery; import com.sinata.system.domain.query.TransformQuery; +import com.sinata.system.domain.query.TransitRecordQuery; import com.sinata.system.domain.vo.MwCheckoutRecordVO; import com.sinata.system.domain.vo.MwCollectRecordVO; import com.sinata.system.domain.vo.MwMedicalWasteBoxVO; @@ -19,7 +20,6 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.time.LocalDate; -import java.util.List; import java.util.List; /** @@ -67,9 +67,10 @@ * 运输记录详情 * * @param id + * @param query * @return */ - MwTransitRecordVO transitDetail(Long id); + MwTransitRecordVO transitDetail(TransitRecordQuery query); /** * 运输记录详情分页列表 @@ -77,7 +78,7 @@ * @param query * @return */ - PageDTO<MwMedicalWasteBoxVO> transitDetailPageList(MwTransitRecordQuery query); + PageDTO<MwMedicalWasteBoxVO> transitDetailPageList(TransitRecordQuery query); /** * 转运记录导出 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 8faca33..402fece 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 @@ -230,7 +230,7 @@ List<TransformVO> checkoutRecordVOList = mwCheckoutRecordService.getCheckoutRecordList(query, region.getTreeCode()); if (CollUtils.isNotEmpty(checkoutRecordVOList)) { //查询医废类型 - List<SysDictData> wasteTypeList = sysDictDataService.lambdaQuery().in(SysDictData::getDictCode, query.getWasteTypeCodeList()).list(); + 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())); vo.getLegend().add("小计"); diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwCheckoutRecordServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwCheckoutRecordServiceImpl.java index 550a038..fbde780 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwCheckoutRecordServiceImpl.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwCheckoutRecordServiceImpl.java @@ -16,6 +16,7 @@ import com.sinata.system.domain.query.MwCheckoutRecordItemQuery; import com.sinata.system.domain.query.MwTransitRecordQuery; import com.sinata.system.domain.query.TransformQuery; +import com.sinata.system.domain.query.TransitRecordQuery; import com.sinata.system.domain.vo.MwCheckoutRecordExcelVO; import com.sinata.system.domain.vo.MwCheckoutRecordVO; import com.sinata.system.domain.vo.MwCollectRecordVO; @@ -33,7 +34,6 @@ import java.io.IOException; import java.net.URLEncoder; import java.time.LocalDate; -import java.util.Collections; import java.util.List; /** @@ -171,8 +171,8 @@ * @return */ @Override - public MwTransitRecordVO transitDetail(Long id) { - return baseMapper.transitDetail(id); + public MwTransitRecordVO transitDetail(TransitRecordQuery query) { + return baseMapper.transitDetail(query); } /** @@ -182,8 +182,8 @@ * @return */ @Override - public PageDTO<MwMedicalWasteBoxVO> transitDetailPageList(MwTransitRecordQuery query) { - Page<MwMedicalWasteBoxVO> page = baseMapper.transitDetailPageList(new Page<>(query.getPageCurr(), query.getPageSize()), query.getId()); + public PageDTO<MwMedicalWasteBoxVO> transitDetailPageList(TransitRecordQuery query) { + Page<MwMedicalWasteBoxVO> page = baseMapper.transitDetailPageList(new Page<>(query.getPageCurr(), query.getPageSize()), query); return PageDTO.of(page); } 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 9a71886..2383c4d 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 @@ -214,7 +214,7 @@ 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").list(); + 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); @@ -230,32 +230,30 @@ break; } List<String> dateList = DateUtils.getDayBetween(query.getStartTime(), query.getEndTime(), query.getDateType()); - if (CollUtils.isNotEmpty(staticsData)) { - List<DepartmentReportItemVO> result = new ArrayList<>(); - for (String date : dateList) { - DepartmentReportItemVO departmentReportItemVO = new DepartmentReportItemVO(); - departmentReportItemVO.setName(date); - departmentReportItemVO.setData(new ArrayList<>()); - SimpleDateFormat finalSdf = sdf; - BigDecimal totalWeight = BigDecimal.ZERO; - BigDecimal totalCount = BigDecimal.ZERO; - for (SysDictData sysDictData : medicalWasteTypeList) { - 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); - long count = staticsData.stream().filter(e -> e.getWasteType().equals(sysDictData.getDictCode()) - && finalSdf.format(e.getUseTime()).equals(date)).count(); - departmentReportItemVO.getData().add(weight); - departmentReportItemVO.getData().add(BigDecimal.valueOf(count)); - totalWeight = totalWeight.add(weight); - totalCount = totalCount.add(BigDecimal.valueOf(count)); - } - departmentReportItemVO.getData().add(totalWeight); - departmentReportItemVO.getData().add(totalCount); - result.add(departmentReportItemVO); + List<DepartmentReportItemVO> result = new ArrayList<>(); + for (String date : dateList) { + DepartmentReportItemVO departmentReportItemVO = new DepartmentReportItemVO(); + departmentReportItemVO.setName(date); + departmentReportItemVO.setData(new ArrayList<>()); + SimpleDateFormat finalSdf = sdf; + BigDecimal totalWeight = BigDecimal.ZERO; + BigDecimal totalCount = BigDecimal.ZERO; + for (SysDictData sysDictData : medicalWasteTypeList) { + 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); + long count = staticsData.stream().filter(e -> e.getWasteType().equals(sysDictData.getDictCode()) + && finalSdf.format(e.getUseTime()).equals(date)).count(); + departmentReportItemVO.getData().add(weight); + departmentReportItemVO.getData().add(BigDecimal.valueOf(count)); + totalWeight = totalWeight.add(weight); + totalCount = totalCount.add(BigDecimal.valueOf(count)); } - vo.setList(result); + departmentReportItemVO.getData().add(totalWeight); + departmentReportItemVO.getData().add(totalCount); + result.add(departmentReportItemVO); } + vo.setList(result); return vo; } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDepartmentServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDepartmentServiceImpl.java index 89a7ca4..cbe63bf 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDepartmentServiceImpl.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDepartmentServiceImpl.java @@ -783,6 +783,7 @@ .like(StringUtils.isNotBlank(query.getContactPerson()), SysDepartment::getContactPerson, query.getContactPerson()) .like(StringUtils.isNotBlank(query.getContactPhone()), SysDepartment::getContactPhone, query.getContactPhone()) .eq(SysDepartment::getOrgType, DepartmentEnum.REGULATORY_UNIT.getCode()) + .orderByDesc(SysDepartment::getCreateTime) .page(new Page<>(query.getPageCurr(), query.getPageSize())); return PageDTO.of(page, RegulatoryUnitVO.class); } 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 81858aa..79e5d86 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 @@ -171,7 +171,7 @@ @Nullable private List<SysDictDataVO> getSysDictDataVOListByType(String dictType) { - List<SysDictData> medicalWasteTypeList = lambdaQuery().eq(SysDictData::getDictType, dictType).list(); + List<SysDictData> medicalWasteTypeList = lambdaQuery().eq(SysDictData::getDictType, dictType).orderByDesc(SysDictData::getDictCode).list(); return BeanUtils.copyToList(medicalWasteTypeList, SysDictDataVO.class); } diff --git a/medicalWaste-system/src/main/resources/mapper/system/MwApplicationMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/MwApplicationMapper.xml index 66b5861..14c6907 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/MwApplicationMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/MwApplicationMapper.xml @@ -68,6 +68,7 @@ AND MA.PHONE LIKE CONCAT('%',#{query.phone},'%') </if> </where> + ORDER BY MA.CREATE_TIME DESC </select> <select id="detail" resultType="com.sinata.system.domain.vo.MwApplicationVO"> SELECT MA.ID, diff --git a/medicalWaste-system/src/main/resources/mapper/system/MwCheckoutRecordMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/MwCheckoutRecordMapper.xml index 72b82de..363f67b 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/MwCheckoutRecordMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/MwCheckoutRecordMapper.xml @@ -117,86 +117,156 @@ ORDER BY mcr2.CREATE_TIME DESC </select> <select id="transitPageList" resultType="com.sinata.system.domain.vo.MwTransitRecordVO"> - SELECT - MTRC.ROUTE_ID AS id, + SELECT ID, + CAR_ID, + DEPARTMENT_NAME, + LICENSE_PLATE_NUMBER, + NICK_NAME, + SUM(WEIGHT) AS weight, + COUNT(COLLECT_RECORD_ID) AS bagNum, + RECEIVE_TIME AS endTime, + transitDate, + STATUS, + DEL_FLAG, + MIN(BOX_TIME) AS startTime, + COUNT(DISTINCT BOX_NUMBER) AS boxNum + FROM (SELECT DISTINCT MTR.ID, + MCR2.CAR_ID, SD.DEPARTMENT_NAME, MTC.LICENSE_PLATE_NUMBER, SU.NICK_NAME, - SUM(MCR.BOX_NUM) AS boxNum, - SUM(MCR.TOTAL_WEIGHT) AS weight, - MIN(MCR2.BOX_TIME) AS startTime, - 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 + MCR2.BOX_NUM, + MCR.BOX_TIME, + MCR2.TOTAL_WEIGHT, + MDR.RECEIVE_TIME, + MCR.STATUS, + TRUNC(MCR2.CHECKOUT_TIME) AS transitDate, + SD.TREE_CODE, + MCR.ID AS COLLECT_RECORD_ID, + MCR.WEIGHT, + MCR2.DEL_FLAG, + MCR.BOX_NUMBER + FROM MW_CHECKOUT_RECORD MCR2 + LEFT JOIN MW_CHECKOUT_RECORD_ITEM MCRI + ON MCRI.CHECKOUT_RECORD_ID = MCR2.ID + LEFT JOIN MW_COLLECT_RECORD MCR + ON MCR.ID = MCRI.COLLECT_RECORD_ID LEFT JOIN MW_DISPOSAL_RECORD_ITEM MDRI ON MDRI.COLLECT_RECORD_ID = MCRI.COLLECT_RECORD_ID LEFT JOIN MW_DISPOSAL_RECORD MDR ON MDR.ID = MDRI.DISPOSAL_RECORD_ID - LEFT JOIN MW_COLLECT_RECORD MCR2 ON MCRI.COLLECT_RECORD_ID = MCR2.ID LEFT JOIN MW_TRANSIT_CAR MTC ON MCR.CAR_ID = MTC.ID LEFT JOIN SYS_USER SU ON MCR.DRIVER_ID = SU.USER_ID LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MDR.DEPARTMENT_ID - LEFT JOIN MW_TRANSIT_ROUTE_CAR MTRC ON MTRC.CAR_ID = MCR.CAR_ID + LEFT JOIN (SELECT * FROM MW_TRANSIT_ROUTE GROUP BY DEPARTMENT_ID) MTR + ON MTR.DEPARTMENT_ID = MDR.DEPARTMENT_ID) AS T <where> - MCR.DEL_FLAG = 0 + T.DEL_FLAG = 0 <if test="treeCode != null and treeCode != null"> - AND SD.TREE_CODE LIKE CONCAT(#{treeCode},'%') + AND T.TREE_CODE LIKE CONCAT(#{treeCode},'%') </if> <if test="query.licensePlateNumber != null and query.licensePlateNumber != ''"> - AND MTC.LICENSE_PLATE_NUMBER LIKE CONCAT('%',#{query.licensePlateNumber},'%') + AND T.LICENSE_PLATE_NUMBER LIKE CONCAT('%',#{query.licensePlateNumber},'%') </if> - <if test="query.status != null"> - AND MCR2.STATUS = #{query.status} + <if test="query.status != null and (query.status == 3 or query.status == 4)"> + AND T.STATUS in(3,4) </if> <if test="query.startTimeStart != null and query.startTimeEnd != null"> - AND MCR2.BOX_TIME BETWEEN #{query.startTimeStart} AND #{query.startTimeEnd} + AND T.BOX_TIME BETWEEN #{query.startTimeStart} AND #{query.startTimeEnd} </if> <if test="query.endTimeStart != null and query.endTimeEnd != null"> - AND MDR.RECEIVE_TIME BETWEEN #{query.endTimeStart} AND #{query.endTimeEnd} + AND T.RECEIVE_TIME BETWEEN #{query.endTimeStart} AND #{query.endTimeEnd} </if> </where> - GROUP BY MTRC.ROUTE_ID - ORDER BY startTime DESC + GROUP BY T.transitDate, T.ID, T.CAR_ID, T.NICK_NAME + ORDER BY T.transitDate DESC </select> <select id="transitDetail" resultType="com.sinata.system.domain.vo.MwTransitRecordVO"> - SELECT - MTRC.ROUTE_ID AS id, - MDR.DISPOSAL_UNIT_NAME AS departmentName, + SELECT ID, + CAR_ID, + DEPARTMENT_NAME, + LICENSE_PLATE_NUMBER, + NICK_NAME, + SUM(WEIGHT) AS weight, + COUNT(COLLECT_RECORD_ID) AS bagNum, + RECEIVE_TIME AS endTime, + transitDate, + STATUS + FROM (SELECT DISTINCT MTR.ID, + MCR2.CAR_ID, + SD.DEPARTMENT_NAME, MTC.LICENSE_PLATE_NUMBER, SU.NICK_NAME, - SUM(MCR.BOX_NUM) AS boxNum, - SUM(MCR2.WEIGHT) AS weight, - MIN(MCR2.BOX_TIME) AS startTime, - MDR.RECEIVE_TIME AS endTime - FROM MW_CHECKOUT_RECORD MCR - LEFT JOIN MW_CHECKOUT_RECORD_ITEM MCRI ON MCRI.CHECKOUT_RECORD_ID = MCR.ID + MCR2.BOX_NUM, + MCR.BOX_TIME, + MCR2.TOTAL_WEIGHT, + MDR.RECEIVE_TIME, + MCR.STATUS, + TRUNC(MCR2.CHECKOUT_TIME) AS transitDate, + SD.TREE_CODE, + MCR.ID AS COLLECT_RECORD_ID, + MCR.WEIGHT + FROM MW_CHECKOUT_RECORD MCR2 + LEFT JOIN MW_CHECKOUT_RECORD_ITEM MCRI + ON MCRI.CHECKOUT_RECORD_ID = MCR2.ID + LEFT JOIN MW_COLLECT_RECORD MCR + ON MCR.ID = MCRI.COLLECT_RECORD_ID LEFT JOIN MW_DISPOSAL_RECORD_ITEM MDRI ON MDRI.COLLECT_RECORD_ID = MCRI.COLLECT_RECORD_ID LEFT JOIN MW_DISPOSAL_RECORD MDR ON MDR.ID = MDRI.DISPOSAL_RECORD_ID - LEFT JOIN MW_COLLECT_RECORD MCR2 ON MCRI.COLLECT_RECORD_ID = MCR2.ID LEFT JOIN MW_TRANSIT_CAR MTC ON MCR.CAR_ID = MTC.ID LEFT JOIN SYS_USER SU ON MCR.DRIVER_ID = SU.USER_ID LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MDR.DEPARTMENT_ID - LEFT JOIN MW_TRANSIT_ROUTE_CAR MTRC ON MTRC.CAR_ID = MCR.CAR_ID + LEFT JOIN (SELECT * FROM MW_TRANSIT_ROUTE GROUP BY DEPARTMENT_ID) MTR + ON MTR.DEPARTMENT_ID = MDR.DEPARTMENT_ID) AS T <where> - MCR.DEL_FLAG = 0 AND MTRC.ROUTE_ID = #{id} + T.ID = #{query.id} AND T.CAR_ID = #{query.carId} AND T.transitDate = #{query.transitDate} </where> - GROUP BY MTRC.ROUTE_ID </select> <select id="transitDetailPageList" resultType="com.sinata.system.domain.vo.MwMedicalWasteBoxVO"> - SELECT MCR2.HOSPITAL_NAME, - MCR2.BOX_NUMBER, - MCR2.WASTE_TYPE_STR, - COUNT(MCR2.ID) AS bagNum, - SUM(MCR2.WEIGHT) AS totalWeight, - MAX(MCR.CHECKOUT_TIME) AS latestCheckoutTime - FROM MW_TRANSIT_ROUTE_CAR MTRC - 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 + SELECT ID, + CAR_ID, + DEPARTMENT_NAME, + LICENSE_PLATE_NUMBER, + NICK_NAME, + COUNT(COLLECT_RECORD_ID) AS bagNum, + SUM(WEIGHT) AS totalWeight, + RECEIVE_TIME AS endTime, + transitDate, + STATUS,CHECK_OUT_ID, + HOSPITAL_NAME, + BOX_NUMBER, + WASTE_TYPE_STR + FROM (SELECT DISTINCT MTR.ID, + MCR2.CAR_ID, + SD.DEPARTMENT_NAME, + MTC.LICENSE_PLATE_NUMBER, + SU.NICK_NAME, + MCR.BOX_TIME, + MDR.RECEIVE_TIME, + MCR.STATUS, + TRUNC(MCR2.CHECKOUT_TIME) AS transitDate, + SD.TREE_CODE, + MCR2.ID AS CHECK_OUT_ID, + MCR.ID AS COLLECT_RECORD_ID, + MCR.WEIGHT, + MCR.HOSPITAL_NAME, + MCR.BOX_NUMBER, + MCR.WASTE_TYPE_STR + FROM MW_CHECKOUT_RECORD MCR2 + LEFT JOIN MW_CHECKOUT_RECORD_ITEM MCRI + ON MCRI.CHECKOUT_RECORD_ID = MCR2.ID + LEFT JOIN MW_COLLECT_RECORD MCR + ON MCR.ID = MCRI.COLLECT_RECORD_ID + LEFT JOIN MW_DISPOSAL_RECORD_ITEM MDRI ON MDRI.COLLECT_RECORD_ID = MCRI.COLLECT_RECORD_ID + LEFT JOIN MW_DISPOSAL_RECORD MDR ON MDR.ID = MDRI.DISPOSAL_RECORD_ID + LEFT JOIN MW_TRANSIT_CAR MTC ON MCR.CAR_ID = MTC.ID + LEFT JOIN SYS_USER SU ON MCR.DRIVER_ID = SU.USER_ID + LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MDR.DEPARTMENT_ID + LEFT JOIN (SELECT * FROM MW_TRANSIT_ROUTE GROUP BY DEPARTMENT_ID) MTR + ON MTR.DEPARTMENT_ID = MDR.DEPARTMENT_ID) AS T <where> - MTRC.ROUTE_ID = #{id} + T.ID = #{query.id} + AND T.CAR_ID = #{query.carId} + AND T.transitDate = #{query.transitDate} </where> - GROUP BY MCR2.BOX_ID - ORDER BY latestCheckoutTime DESC </select> <select id="hospitalTransitList" resultType="com.sinata.system.domain.vo.MwCheckoutRecordVO"> SELECT mcr.ID, @@ -328,6 +398,7 @@ </if> </where> GROUP BY MCR2.BOX_NUMBER + ORDER BY MCR.CHECKOUT_TIME </select> <select id="getRegulationReportList" resultType="com.sinata.system.domain.vo.MwCollectRecordVO"> SELECT MCR2.ID, diff --git a/medicalWaste-system/src/main/resources/mapper/system/SysRoleMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/SysRoleMapper.xml index 126624d..e51bdae 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/SysRoleMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/SysRoleMapper.xml @@ -127,7 +127,7 @@ GROUP BY r.ROLE_ID, r.ROLE_NAME, r.ROLE_KEY, r.ROLE_SORT, r.STATUS, r.DEL_FLAG, r.CREATE_BY, r.CREATE_TIME, r.UPDATE_BY, r.UPDATE_TIME, r.REMARK, r.MANAGE_ROLE_ID_STR - ORDER BY r.CREATE_TIME DESC + ORDER BY r.ROLE_ID DESC </select> <insert id="insertRole" parameterType="SysRole" useGeneratedKeys="true" keyProperty="roleId"> -- Gitblit v1.7.1