From 0fce55584de7833aa3c9799fbabda937879a6362 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期二, 10 十二月 2024 16:30:30 +0800
Subject: [PATCH] 医废管理

---
 medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwCollectRecordDTO.java             |   25 ++
 medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDepartmentServiceImpl.java     |   18 +
 medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysUserDepartmentServiceImpl.java |    2 
 medicalWaste-system/src/main/resources/mapper/system/SysDepartmentMapper.xml                       |    1 
 medicalWaste-admin/src/main/java/com/sinata/web/controller/tool/TestController.java                |    2 
 medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MedicalWasteProcessVO.java           |   66 ++++++
 medicalWaste-system/src/main/java/com/sinata/system/mapper/MwCollectRecordMapper.java              |   27 ++
 medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwCollectRecordServiceImpl.java   |   70 ++++++
 medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysUserServiceImpl.java           |    5 
 medicalWaste-system/src/main/resources/mapper/system/MwCollectRecordMapper.xml                     |  124 ++++++++++
 medicalWaste-system/src/main/java/com/sinata/system/service/MwCollectRecordService.java            |   36 +++
 medicalWaste-system/src/main/java/com/sinata/system/domain/MwCheckoutRecord.java                   |    4 
 medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwCollectRecordController.java  |   84 +++++++
 medicalWaste-admin/src/main/resources/application-dev.yml                                          |    2 
 medicalWaste-system/src/main/java/com/sinata/system/service/SysUserDepartmentService.java          |    1 
 medicalWaste-system/src/main/java/com/sinata/system/domain/MwCollectRecord.java                    |   24 -
 medicalWaste-system/src/main/resources/mapper/system/MwCheckoutRecordMapper.xml                    |    3 
 medicalWaste-system/src/main/java/com/sinata/system/domain/query/MwCollectRecordQuery.java         |   42 +++
 medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwCollectRecordVO.java               |   71 ++++++
 19 files changed, 566 insertions(+), 41 deletions(-)

diff --git a/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwCollectRecordController.java b/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwCollectRecordController.java
index f1314bc..48555e4 100644
--- a/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwCollectRecordController.java
+++ b/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwCollectRecordController.java
@@ -1,7 +1,26 @@
 package com.sinata.web.controller.backend;
 
+import com.sinata.common.core.domain.R;
+import com.sinata.common.entity.PageDTO;
+import com.sinata.system.domain.dto.MwCollectRecordDTO;
+import com.sinata.system.domain.query.MwCollectRecordQuery;
+import com.sinata.system.domain.vo.MedicalWasteProcessVO;
+import com.sinata.system.domain.vo.MwCollectRecordVO;
+import com.sinata.system.service.MwCollectRecordService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
 
 /**
  * <p>
@@ -11,8 +30,73 @@
  * @author mitao
  * @since 2024-12-02
  */
+@Validated
 @RestController
+@Api(tags = {"医废管理相关接口"})
+@RequiredArgsConstructor
 @RequestMapping("/backend/mwCollectRecord")
 public class MwCollectRecordController {
+    private final MwCollectRecordService collectRecordService;
 
+    /**
+     * 医废追溯分页列表
+     *
+     * @param query
+     * @return
+     */
+    @PostMapping("/page")
+    @ApiOperation("医废追溯分页列表")
+    public R<PageDTO<MwCollectRecordVO>> pageList(@Valid @RequestBody MwCollectRecordQuery query) {
+        return R.ok(collectRecordService.pageList(query));
+    }
+
+    /**
+     * 医废追溯详情
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/detail/{id}")
+    @ApiOperation("医废追溯详情")
+    public R<MwCollectRecordVO> detail(@ApiParam(name = "id", value = "医废追溯id", required = true) @PathVariable("id") Long id) {
+        return R.ok(collectRecordService.detail(id));
+    }
+
+    /**
+     * 编辑
+     *
+     * @param dto
+     * @return
+     */
+    @PostMapping("/edit")
+    @ApiOperation("编辑")
+    public R<?> edit(@Valid @RequestBody MwCollectRecordDTO dto) {
+        collectRecordService.edit(dto);
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     *
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/{id}")
+    @ApiOperation("删除")
+    public R<?> remove(@ApiParam(name = "id", value = "医废追溯id", required = true) @PathVariable("id") Long id) {
+        collectRecordService.removeById(id);
+        return R.ok();
+    }
+
+    /**
+     * 流转过程
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/process/{id}")
+    @ApiOperation("流转过程")
+    public R<MedicalWasteProcessVO> getProcess(@ApiParam(name = "id", value = "医废追溯id", required = true) @PathVariable("id") Long id) {
+        return R.ok(collectRecordService.getProcess(id));
+    }
 }
diff --git a/medicalWaste-admin/src/main/java/com/sinata/web/controller/tool/TestController.java b/medicalWaste-admin/src/main/java/com/sinata/web/controller/tool/TestController.java
index 27446f5..1a31170 100644
--- a/medicalWaste-admin/src/main/java/com/sinata/web/controller/tool/TestController.java
+++ b/medicalWaste-admin/src/main/java/com/sinata/web/controller/tool/TestController.java
@@ -30,7 +30,7 @@
  */
 @Api("用户信息管理")
 @RestController
-@RequestMapping("/applet/test/user")
+@RequestMapping("/test/user")
 public class TestController extends BaseController
 {
     private final static Map<Integer, UserEntity> users = new LinkedHashMap<Integer, UserEntity>();
diff --git a/medicalWaste-admin/src/main/resources/application-dev.yml b/medicalWaste-admin/src/main/resources/application-dev.yml
index 70d3e5b..49feeed 100644
--- a/medicalWaste-admin/src/main/resources/application-dev.yml
+++ b/medicalWaste-admin/src/main/resources/application-dev.yml
@@ -61,7 +61,7 @@
   devtools:
     restart:
       # 热部署开关
-      enabled: true
+      enabled: false
   # redis 配置
   redis:
     # 地址
diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwCheckoutRecord.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwCheckoutRecord.java
index 14c8d8a..1d0a1ad 100644
--- a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwCheckoutRecord.java
+++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwCheckoutRecord.java
@@ -56,10 +56,6 @@
     @TableField("DRIVER_ID")
     private Long driverId;
 
-    @ApiModelProperty("司机姓名(冗余)")
-    @TableField("DRIVER_NAME")
-    private String driverName;
-
     @ApiModelProperty("车辆id")
     @TableField("CAR_ID")
     private Long carId;
diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwCollectRecord.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwCollectRecord.java
index f508145..a1ab89c 100644
--- a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwCollectRecord.java
+++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwCollectRecord.java
@@ -33,10 +33,6 @@
     @TableId(value = "ID", type = IdType.AUTO)
     private Long id;
 
-    @ApiModelProperty("入库时间")
-    @TableField("STORAGE_TIME")
-    private Date storageTime;
-
     @ApiModelProperty("区域id(医院)")
     @TableField("DEPARTMENT_ID")
     private Long departmentId;
@@ -73,21 +69,9 @@
     @TableField("WEIGHT")
     private BigDecimal weight;
 
-    @ApiModelProperty("入库人员id")
-    @TableField("STORAGE_USER_ID")
-    private Long storageUserId;
-
-    @ApiModelProperty("入库人员姓名")
-    @TableField("STORAGE_USER_NAME")
-    private String storageUserName;
-
     @ApiModelProperty("出库人员id")
     @TableField("CHECKOUT_USER_ID")
     private Long checkoutUserId;
-
-    @ApiModelProperty("出库人员姓名")
-    @TableField("CHECKOUT_USER_NAME")
-    private String checkoutUserName;
 
     @ApiModelProperty("出库时间")
     @TableField("CHECKOUT_TIME")
@@ -101,5 +85,13 @@
     @TableField("BOX_TIME")
     private Date boxTime;
 
+    @ApiModelProperty("收集人id")
+    @TableField("COLLECT_USER_ID")
+    private Long collectUserId;
+
+    @ApiModelProperty("收集时间")
+    @TableField("COLLECT_TIME")
+    private Date collectTime;
+
 
 }
diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwCollectRecordDTO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwCollectRecordDTO.java
new file mode 100644
index 0000000..fe17785
--- /dev/null
+++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwCollectRecordDTO.java
@@ -0,0 +1,25 @@
+package com.sinata.system.domain.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+
+/**
+ * @author mitao
+ * @date 2024/12/10
+ */
+@Data
+@ApiModel("收集记录")
+public class MwCollectRecordDTO {
+
+    @ApiModelProperty("收集记录id")
+    @NotNull(message = "收集记录id不能为空")
+    private Long id;
+
+    @ApiModelProperty("医废重量")
+    @NotNull(message = "医废重量不能为空")
+    private BigDecimal weight;
+}
diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/query/MwCollectRecordQuery.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/query/MwCollectRecordQuery.java
new file mode 100644
index 0000000..debeefc
--- /dev/null
+++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/query/MwCollectRecordQuery.java
@@ -0,0 +1,42 @@
+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 lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * @author mitao
+ * @date 2024/12/10
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("医废追溯查询对象")
+public class MwCollectRecordQuery extends BasePage {
+    
+    private static final long serialVersionUID = -1019864119594661684L;
+
+    @ApiModelProperty("机构id")
+    private Long departmentId;
+
+    @ApiModelProperty("医废类型 (数据字典id)")
+    private Long wasteType;
+
+    @ApiModelProperty("医废状态 1:暂存中 2:运输中 3:已接收 4:已处置")
+    private Integer status;
+
+    @ApiModelProperty("医废编号")
+    private String medicalWasteNumber;
+
+    @ApiModelProperty("箱号")
+    private String boxNumber;
+
+    @ApiModelProperty("收集时间-开始")
+    private Date collectTimeStart;
+
+    @ApiModelProperty("收集时间-结束")
+    private Date collectTimeEnd;
+}
diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MedicalWasteProcessVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MedicalWasteProcessVO.java
new file mode 100644
index 0000000..c207d1e
--- /dev/null
+++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MedicalWasteProcessVO.java
@@ -0,0 +1,66 @@
+package com.sinata.system.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author mitao
+ * @date 2024/12/10
+ */
+@Data
+@ApiModel("医废流转过程视图对象")
+public class MedicalWasteProcessVO {
+
+    @ApiModelProperty("医废状态 1:暂存中 2:运输中 3:已接收 4:已处置")
+    private Integer status;
+
+    @ApiModelProperty("收集-收集时间")
+    private Date collectTime;
+
+    @ApiModelProperty("收集-箱子编号")
+    private String boxNumber;
+
+    @ApiModelProperty("收集-医废编号")
+    private String medicalWasteNumber;
+
+    @ApiModelProperty("收集-医院名称")
+    private String hospitalName;
+
+    @ApiModelProperty("收集-医废类型名称(冗余)")
+    private String wasteTypeStr;
+
+    @ApiModelProperty("收集-医废重量")
+    private BigDecimal weight;
+
+    @ApiModelProperty("收集-收集人姓名")
+    private Long collectUserName;
+
+    @ApiModelProperty("运输-装车时间")
+    private Date checkoutTime;
+
+    @ApiModelProperty("运输-装车人员姓名")
+    private String driverName;
+
+    @ApiModelProperty("运输-医院签名")
+    private String hospitalSignature;
+
+    @ApiModelProperty("入库-入库时间")
+    private Date receiveTime;
+
+    @ApiModelProperty("入库-入库人")
+    private String receiverName;
+
+    @ApiModelProperty("入库/处置-处置单位名称")
+    private String disposalUnitName;
+
+    @ApiModelProperty("处置-处置时间")
+    private Date disposalTime;
+
+    @ApiModelProperty("处置-处置人")
+    private String disposalUserName;
+
+}
diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwCollectRecordVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwCollectRecordVO.java
new file mode 100644
index 0000000..5fc2822
--- /dev/null
+++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwCollectRecordVO.java
@@ -0,0 +1,71 @@
+package com.sinata.system.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author mitao
+ * @date 2024/12/10
+ */
+@Data
+@ApiModel("医废收集记录视图对象")
+public class MwCollectRecordVO {
+
+    @ApiModelProperty("收集记录id")
+    private Long id;
+
+    @ApiModelProperty("区域id")
+    private Long departmentId;
+
+    @ApiModelProperty("医院名称")
+    private String hospitalName;
+
+    @ApiModelProperty("暂存间id")
+    private Long stagingRoomId;
+
+    @ApiModelProperty("医废编号")
+    private String medicalWasteNumber;
+
+    @ApiModelProperty("转运箱id")
+    private Long boxId;
+
+    @ApiModelProperty("箱子编号")
+    private String boxNumber;
+
+    @ApiModelProperty("医废类型(数据字典id)")
+    private Integer wasteType;
+
+    @ApiModelProperty("医废类型名称")
+    private String wasteTypeStr;
+
+    @ApiModelProperty("医废重量")
+    private BigDecimal weight;
+
+    @ApiModelProperty("出库人员id")
+    private Long checkoutUserId;
+
+    @ApiModelProperty("出库人员姓名")
+    private String checkoutUserName;
+
+    @ApiModelProperty("出库时间")
+    private Date checkoutTime;
+
+    @ApiModelProperty("医废状态 1:暂存中 2:运输中 3:已接收 4:已处置")
+    private Integer status;
+
+    @ApiModelProperty("封箱时间")
+    private Date boxTime;
+
+    @ApiModelProperty("收集人id")
+    private Long collectUserId;
+
+    @ApiModelProperty("收集人姓名")
+    private Long collectUserName;
+
+    @ApiModelProperty("收集时间")
+    private Date collectTime;
+}
diff --git a/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwCollectRecordMapper.java b/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwCollectRecordMapper.java
index 13c2525..fde1fb7 100644
--- a/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwCollectRecordMapper.java
+++ b/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwCollectRecordMapper.java
@@ -1,8 +1,13 @@
 package com.sinata.system.mapper;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.sinata.system.domain.MwCollectRecord;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sinata.system.domain.query.MwCollectRecordQuery;
+import com.sinata.system.domain.vo.MedicalWasteProcessVO;
+import com.sinata.system.domain.vo.MwCollectRecordVO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -14,5 +19,27 @@
  */
 @Mapper
 public interface MwCollectRecordMapper extends BaseMapper<MwCollectRecord> {
+    /**
+     * 医废追溯分页列表
+     *
+     * @param query
+     * @return
+     */
+    Page<MwCollectRecordVO> pageList(Page<MwCollectRecordVO> mwCollectRecordVOPage, @Param("query") MwCollectRecordQuery query, @Param("treeCode") String treeCode);
 
+    /**
+     * 医废追溯详情
+     *
+     * @param id
+     * @return
+     */
+    MwCollectRecordVO detail(Long id);
+
+    /**
+     * 流转过程
+     *
+     * @param id
+     * @return
+     */
+    MedicalWasteProcessVO getProcess(Long id);
 }
diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/MwCollectRecordService.java b/medicalWaste-system/src/main/java/com/sinata/system/service/MwCollectRecordService.java
index 86c4580..ecefd14 100644
--- a/medicalWaste-system/src/main/java/com/sinata/system/service/MwCollectRecordService.java
+++ b/medicalWaste-system/src/main/java/com/sinata/system/service/MwCollectRecordService.java
@@ -1,7 +1,12 @@
 package com.sinata.system.service;
 
-import com.sinata.system.domain.MwCollectRecord;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.sinata.common.entity.PageDTO;
+import com.sinata.system.domain.MwCollectRecord;
+import com.sinata.system.domain.dto.MwCollectRecordDTO;
+import com.sinata.system.domain.query.MwCollectRecordQuery;
+import com.sinata.system.domain.vo.MedicalWasteProcessVO;
+import com.sinata.system.domain.vo.MwCollectRecordVO;
 
 /**
  * <p>
@@ -12,5 +17,34 @@
  * @since 2024-12-02
  */
 public interface MwCollectRecordService extends IService<MwCollectRecord> {
+    /**
+     * 医废追溯分页列表
+     *
+     * @param query
+     * @return
+     */
+    PageDTO<MwCollectRecordVO> pageList(MwCollectRecordQuery query);
 
+    /**
+     * 医废追溯详情
+     *
+     * @param id
+     * @return
+     */
+    MwCollectRecordVO detail(Long id);
+
+    /**
+     * 编辑
+     *
+     * @param dto
+     */
+    void edit(MwCollectRecordDTO dto);
+
+    /**
+     * 流转过程
+     *
+     * @param id
+     * @return
+     */
+    MedicalWasteProcessVO getProcess(Long id);
 }
diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/SysUserDepartmentService.java b/medicalWaste-system/src/main/java/com/sinata/system/service/SysUserDepartmentService.java
index e396707..d685d3e 100644
--- a/medicalWaste-system/src/main/java/com/sinata/system/service/SysUserDepartmentService.java
+++ b/medicalWaste-system/src/main/java/com/sinata/system/service/SysUserDepartmentService.java
@@ -11,6 +11,7 @@
  * @author mitao
  * @since 2024-12-02
  */
+
 public interface SysUserDepartmentService extends IService<SysUserDepartment> {
 
 }
diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwCollectRecordServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwCollectRecordServiceImpl.java
index 7d4614e..60c5607 100644
--- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwCollectRecordServiceImpl.java
+++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwCollectRecordServiceImpl.java
@@ -1,10 +1,21 @@
 package com.sinata.system.service.impl;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.sinata.common.entity.PageDTO;
 import com.sinata.system.domain.MwCollectRecord;
+import com.sinata.system.domain.SysDepartment;
+import com.sinata.system.domain.dto.MwCollectRecordDTO;
+import com.sinata.system.domain.query.MwCollectRecordQuery;
+import com.sinata.system.domain.vo.MedicalWasteProcessVO;
+import com.sinata.system.domain.vo.MwCollectRecordVO;
 import com.sinata.system.mapper.MwCollectRecordMapper;
 import com.sinata.system.service.MwCollectRecordService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.sinata.system.service.SysDepartmentService;
+import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
+
+import java.util.Objects;
 
 /**
  * <p>
@@ -15,6 +26,63 @@
  * @since 2024-12-02
  */
 @Service
+@RequiredArgsConstructor
 public class MwCollectRecordServiceImpl extends ServiceImpl<MwCollectRecordMapper, MwCollectRecord> implements MwCollectRecordService {
+    private final SysDepartmentService sysDepartmentService;
 
+    /**
+     * 医废追溯分页列表
+     *
+     * @param query
+     * @return
+     */
+    @Override
+    public PageDTO<MwCollectRecordVO> pageList(MwCollectRecordQuery query) {
+        String treeCode = "";
+        if (Objects.isNull(query.getDepartmentId())) {
+            SysDepartment myDepartment = sysDepartmentService.getMyDepartment();
+            if (Objects.isNull(myDepartment)) {
+                return PageDTO.empty(0L, 0L);
+            }
+            treeCode = myDepartment.getTreeCode();
+        }
+        Page<MwCollectRecordVO> page = baseMapper.pageList(new Page<>(query.getPageCurr(), query.getPageSize()), query, treeCode);
+        return PageDTO.of(page);
+    }
+
+    /**
+     * 医废追溯详情
+     *
+     * @param id
+     * @return
+     */
+    @Override
+    public MwCollectRecordVO detail(Long id) {
+        return baseMapper.detail(id);
+    }
+
+    /**
+     * 编辑
+     *
+     * @param dto
+     */
+    @Override
+    public void edit(MwCollectRecordDTO dto) {
+        MwCollectRecord collectRecord = getById(dto.getId());
+        if (Objects.nonNull(collectRecord)) {
+            collectRecord.setWeight(dto.getWeight());
+            updateById(collectRecord);
+        }
+    }
+
+    /**
+     * 流转过程
+     *
+     * @param id
+     * @return
+     */
+    @Override
+    public MedicalWasteProcessVO getProcess(Long id) {
+        return baseMapper.getProcess(id);
+    }
 }
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 a1a5eed..ce7095b 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
@@ -29,6 +29,7 @@
 import com.sinata.system.service.SysUserDepartmentService;
 import lombok.RequiredArgsConstructor;
 import org.jetbrains.annotations.NotNull;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -52,7 +53,7 @@
  * @since 2024-12-02
  */
 @Service
-@RequiredArgsConstructor
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class SysDepartmentServiceImpl extends ServiceImpl<SysDepartmentMapper, SysDepartment> implements SysDepartmentService {
     private final SysUserDepartmentService sysUserDepartmentService;
     private final RedisTemplate<Object, Object> redisTemplate;
@@ -365,9 +366,10 @@
         String treeCode = "";
         if (Objects.isNull(query.getDepartmentId())) {
             SysDepartment myDepartment = getMyDepartment();
-            if (Objects.nonNull(myDepartment)) {
-                treeCode = myDepartment.getTreeCode();
+            if (Objects.isNull(myDepartment)) {
+                return PageDTO.empty(0L, 0L);
             }
+            treeCode = myDepartment.getTreeCode();
         }
         Page<MedicalInstitutionVO> page = baseMapper.pageMedicalList(new Page<>(query.getPageCurr(), query.getPageSize()), query.getDepartmentId(), query.getDepartmentName(), query.getContactPerson(), query.getContactPhone(), treeCode);
         return PageDTO.of(page);
@@ -525,9 +527,10 @@
         String treeCode = "";
         if (Objects.isNull(query.getDepartmentId())) {
             SysDepartment myDepartment = getMyDepartment();
-            if (Objects.nonNull(myDepartment)) {
-                treeCode = myDepartment.getTreeCode();
+            if (Objects.isNull(myDepartment)) {
+                return PageDTO.empty(0L, 0L);
             }
+            treeCode = myDepartment.getTreeCode();
         }
         Page<DisposalUnitVO> page = baseMapper.pageRegulatoryUnitList(new Page<>(query.getPageCurr(), query.getPageSize()), query.getDepartmentId(), query.getDepartmentName(), query.getContactPerson(), query.getContactPhone(), treeCode);
         return PageDTO.of(page);
@@ -650,9 +653,10 @@
         String treeCode = "";
         if (Objects.isNull(query.getDepartmentId())) {
             SysDepartment myDepartment = getMyDepartment();
-            if (Objects.nonNull(myDepartment)) {
-                treeCode = myDepartment.getTreeCode();
+            if (Objects.isNull(myDepartment)) {
+                return PageDTO.empty(0L, 0L);
             }
+            treeCode = myDepartment.getTreeCode();
         }
         Page<SysDepartment> page = this.lambdaQuery().eq(Objects.nonNull(query.getDepartmentId()), SysDepartment::getParentId, query.getDepartmentId())
                 .likeRight(StringUtils.isNotBlank(treeCode), SysDepartment::getTreeCode, treeCode)
diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysUserDepartmentServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysUserDepartmentServiceImpl.java
index 43b04fb..0255598 100644
--- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysUserDepartmentServiceImpl.java
+++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysUserDepartmentServiceImpl.java
@@ -1,9 +1,9 @@
 package com.sinata.system.service.impl;
 
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.sinata.system.domain.SysUserDepartment;
 import com.sinata.system.mapper.SysUserDepartmentMapper;
 import com.sinata.system.service.SysUserDepartmentService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
 /**
diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysUserServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysUserServiceImpl.java
index 439e870..a201651 100644
--- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysUserServiceImpl.java
+++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysUserServiceImpl.java
@@ -576,9 +576,10 @@
         String treeCode = "";
         if (Objects.isNull(query.getDepartmentId())) {
             SysDepartment myDepartment = sysDepartmentService.getMyDepartment();
-            if (Objects.nonNull(myDepartment)) {
-                treeCode = myDepartment.getTreeCode();
+            if (Objects.isNull(myDepartment)) {
+                return PageDTO.empty(0L, 0L);
             }
+            treeCode = myDepartment.getTreeCode();
         }
         Page<SysUserVO> page = baseMapper.pageList(new Page<>(query.getPageCurr(), query.getPageSize()), query.getDepartmentId(), query.getNickName(), query.getRoleId(), treeCode);
         return PageDTO.of(page);
diff --git a/medicalWaste-system/src/main/resources/mapper/system/MwCheckoutRecordMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/MwCheckoutRecordMapper.xml
index bccf292..c3e435a 100644
--- a/medicalWaste-system/src/main/resources/mapper/system/MwCheckoutRecordMapper.xml
+++ b/medicalWaste-system/src/main/resources/mapper/system/MwCheckoutRecordMapper.xml
@@ -16,7 +16,6 @@
         <result column="STAGING_ROOM_ID" property="stagingRoomId" />
         <result column="HOSPITAL_SIGNATURE" property="hospitalSignature" />
         <result column="DRIVER_ID" property="driverId" />
-        <result column="DRIVER_NAME" property="driverName" />
         <result column="CAR_ID" property="carId" />
     </resultMap>
 
@@ -27,7 +26,7 @@
         CREATE_TIME,
         UPDATE_BY,
         UPDATE_TIME,
-        ID, CHECKOUT_TIME, DEPARTMENT_ID, HOSPITAL_NAME, STAGING_ROOM_ID, HOSPITAL_SIGNATURE, DRIVER_ID, DRIVER_NAME, CAR_ID
+        ID, CHECKOUT_TIME, DEPARTMENT_ID, HOSPITAL_NAME, STAGING_ROOM_ID, HOSPITAL_SIGNATURE, DRIVER_ID, CAR_ID
     </sql>
 
 </mapper>
diff --git a/medicalWaste-system/src/main/resources/mapper/system/MwCollectRecordMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/MwCollectRecordMapper.xml
index 4d29c35..b48a34a 100644
--- a/medicalWaste-system/src/main/resources/mapper/system/MwCollectRecordMapper.xml
+++ b/medicalWaste-system/src/main/resources/mapper/system/MwCollectRecordMapper.xml
@@ -10,7 +10,6 @@
         <result column="CREATE_TIME" property="createTime" />
         <result column="UPDATE_BY" property="updateBy" />
         <result column="UPDATE_TIME" property="updateTime" />
-        <result column="STORAGE_TIME" property="storageTime" />
         <result column="DEPARTMENT_ID" property="departmentId" />
         <result column="HOSPITAL_NAME" property="hospitalName" />
         <result column="STAGING_ROOM_ID" property="stagingRoomId" />
@@ -20,13 +19,12 @@
         <result column="WASTE_TYPE" property="wasteType" />
         <result column="WASTE_TYPE_STR" property="wasteTypeStr" />
         <result column="WEIGHT" property="weight" />
-        <result column="STORAGE_USER_ID" property="storageUserId" />
-        <result column="STORAGE_USER_NAME" property="storageUserName" />
         <result column="CHECKOUT_USER_ID" property="checkoutUserId" />
-        <result column="CHECKOUT_USER_NAME" property="checkoutUserName" />
         <result column="CHECKOUT_TIME" property="checkoutTime" />
         <result column="STATUS" property="status" />
         <result column="BOX_TIME" property="boxTime" />
+        <result column="COLLECT_TIME" property="collectTime"/>
+        <result column="COLLECT_USER_ID" property="collectUserId"/>
     </resultMap>
 
     <!-- 通用查询结果列 -->
@@ -36,7 +34,123 @@
         CREATE_TIME,
         UPDATE_BY,
         UPDATE_TIME,
-        ID, STORAGE_TIME, DEPARTMENT_ID, HOSPITAL_NAME, STAGING_ROOM_ID, MEDICAL_WASTE_NUMBER, BOX_ID, BOX_NUMBER, WASTE_TYPE, WASTE_TYPE_STR, WEIGHT, STORAGE_USER_ID, STORAGE_USER_NAME, CHECKOUT_USER_ID, CHECKOUT_USER_NAME, CHECKOUT_TIME, STATUS, BOX_TIME
+        ID, DEPARTMENT_ID, HOSPITAL_NAME, STAGING_ROOM_ID, MEDICAL_WASTE_NUMBER, BOX_ID, BOX_NUMBER, WASTE_TYPE, WASTE_TYPE_STR, WEIGHT, CHECKOUT_USER_ID, CHECKOUT_USER_NAME, CHECKOUT_TIME, STATUS, BOX_TIME,COLLECT_TIME,COLLECT_USER_ID
     </sql>
+    <select id="pageList" resultType="com.sinata.system.domain.vo.MwCollectRecordVO">
+        SELECT mcr.ID,
+        mcr.DEPARTMENT_ID,
+        mcr.HOSPITAL_NAME,
+        mcr.STAGING_ROOM_ID,
+        mcr.MEDICAL_WASTE_NUMBER,
+        mcr.BOX_ID,
+        mcr.BOX_NUMBER,
+        mcr.WASTE_TYPE,
+        mcr.WASTE_TYPE_STR,
+        mcr.WEIGHT,
+        mcr.CHECKOUT_USER_ID,
+        mcr.CHECKOUT_TIME,
+        mcr.STATUS,
+        mcr.BOX_TIME,
+        mcr.DEL_FLAG,
+        mcr.CREATE_BY,
+        mcr.CREATE_TIME,
+        mcr.UPDATE_BY,
+        mcr.UPDATE_TIME,
+        mcr.COLLECT_USER_ID,
+        mcr.COLLECT_TIME,
+        su.NICK_NAME AS COLLECT_USER_NAME
+        FROM MW_COLLECT_RECORD mcr
+        LEFT JOIN SYS_USER su
+        ON mcr.COLLECT_USER_ID = su.USER_ID
+        LEFT JOIN SYS_DEPARTMENT sd ON su.DEPARTMENT_ID = sd.ID
+        <where>
+            <if test="query.departmentId != null">
+                and mcr.DEPARTMENT_ID = #{query.departmentId}
+            </if>
+            <if test="treeCode != null and treeCode != ''">
+                and sd.TREE_CODE like concat(#{treeCode},'%')
+            </if>
+            <if test="query.wasteType != null">
+                and mcr.WASTE_TYPE = #{query.wasteType}
+            </if>
+            <if test="query.status != null">
+                and mcr.STATUS = #{query.status}
+            </if>
+            <if test="query.medicalWasteNumber != null and query.medicalWasteNumber != ''">
+                and mcr.MEDICAL_WASTE_NUMBER like concat('%',#{query.medicalWasteNumber},'%')
+            </if>
+            <if test="query.boxNumber != null and query.boxNumber != ''">
+                and mcr.BOX_NUMBER like concat('%',#{query.boxNumber},'%')
+            </if>
+            <if test="query.collectTimeStart != null and query.collectTimeEnd != null">
+                and mcr.COLLECT_TIME between #{query.collectTimeStart} and #{query.collectTimeEnd}
+            </if>
+        </where>
+        ORDER BY mcr.CREATE_TIME DESC
+    </select>
+    <select id="detail" resultType="com.sinata.system.domain.vo.MwCollectRecordVO"
+            parameterType="java.lang.Long">
+        SELECT mcr.ID,
+        mcr.DEPARTMENT_ID,
+        mcr.HOSPITAL_NAME,
+        mcr.STAGING_ROOM_ID,
+        mcr.MEDICAL_WASTE_NUMBER,
+        mcr.BOX_ID,
+        mcr.BOX_NUMBER,
+        mcr.WASTE_TYPE,
+        mcr.WASTE_TYPE_STR,
+        mcr.WEIGHT,
+        mcr.CHECKOUT_USER_ID,
+        mcr.CHECKOUT_TIME,
+        mcr.STATUS,
+        mcr.BOX_TIME,
+        mcr.DEL_FLAG,
+        mcr.CREATE_BY,
+        mcr.CREATE_TIME,
+        mcr.UPDATE_BY,
+        mcr.UPDATE_TIME,
+        mcr.COLLECT_USER_ID,
+        mcr.COLLECT_TIME,
+        su.NICK_NAME AS COLLECT_USER_NAME
+        FROM MW_COLLECT_RECORD mcr
+        LEFT JOIN SYS_USER su
+        ON mcr.COLLECT_USER_ID = su.USER_ID
+        <where>
+            mcr.ID = #{id}
+        </where>
+    </select>
+    <select id="getProcess" resultType="com.sinata.system.domain.vo.MedicalWasteProcessVO"
+            parameterType="java.lang.Long">
+        SELECT
+        mcr.STATUS,
+        mcr.COLLECT_TIME,
+        mcr.BOX_NUMBER,
+        mcr.MEDICAL_WASTE_NUMBER,
+        mcr.HOSPITAL_NAME,
+        mcr.WASTE_TYPE_STR,
+        mcr.STAGING_ROOM_ID,
+        mcr.WEIGHT,
+        su.NICK_NAME AS COLLECT_USER_NAME
+        mcr2.CHECKOUT_TIME,
+        su2.NICK_NAME AS DRIVER_NAME,
+        mcr2.HOSPITAL_SIGNATURE,
+        mdr.RECEIVE_TIME,
+        su3.NICK_NAME AS RECEIVER_NAME
+        mdr.DISPOSAL_UNIT_NAME,
+        mdr.DISPOSAL_TIME,
+        su4.NICK_NAME AS DISPOSAL_USER_NAME
+        FROM MW_COLLECT_RECORD mcr
+        LEFT JOIN SYS_USER su ON mcr.COLLECT_USER_ID = su.USER_ID
+        LEFT JOIN MW_CHECKOUT_RECORD_ITEM mcri ON mcr.ID = mcri.COLLECT_RECORD_ID
+        LEFT JOIN MW_CHECKOUT_RECORD mcr2 ON mcri.CHECKOUT_RECORD_ID = mcr2.ID
+        LEFT JOIN SYS_USER su2 ON su2.id = mcr2.DRIVER_ID
+        LEFT JOIN MW_DISPOSAL_RECORD_IMTE mdri ON mcr.ID = mdri.COLLECT_RECORD_ID
+        LEFT JOIN MW_DISPOSAL_RECORD mdr ON mdri.DISPOSAL_RECORD_ID = mdr.ID
+        LEFT JOIN SYS_USER su3 ON su3.id = mdr.RECEIVER_ID
+        LEFT JOIN SYS_USER su4 ON su4.id = mdr.DISPOSAL_USER_ID
+        <where>
+            mcr.ID = #{id}
+        </where>
+    </select>
 
 </mapper>
diff --git a/medicalWaste-system/src/main/resources/mapper/system/SysDepartmentMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/SysDepartmentMapper.xml
index a8d6ab1..4159266 100644
--- a/medicalWaste-system/src/main/resources/mapper/system/SysDepartmentMapper.xml
+++ b/medicalWaste-system/src/main/resources/mapper/system/SysDepartmentMapper.xml
@@ -171,6 +171,7 @@
                 AND sd.TREE_CODE LIKE CONCAT(#{treeCode}, '%')
             </if>
         </where>
+        ORDER BY sd.CREATE_TIME DESC
     </select>
     <select id="getDisposalUnitDetailById" resultType="com.sinata.system.domain.vo.DisposalUnitVO"
             parameterType="java.lang.Long">

--
Gitblit v1.7.1