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