From 2f18b3a28054c3917010f95ba84f7425280a2622 Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期二, 21 四月 2026 19:43:24 +0800
Subject: [PATCH] feat:消毒记录增加新增功能、医院废弃物报表增加在库统计环节

---
 src/main/java/cn/besteam/modules/medical/controller/MwDisinfectRecordController.java |   99 ++++++++++++++++++++++++++++++++++++++++++++++---
 src/main/java/cn/besteam/modules/report/controller/ReportController.java             |    2 
 src/main/java/cn/besteam/modules/report/dto/ReportDTO.java                           |    2 
 src/main/java/cn/besteam/modules/report/biz/ReportBiz.java                           |    3 +
 4 files changed, 96 insertions(+), 10 deletions(-)

diff --git a/src/main/java/cn/besteam/modules/medical/controller/MwDisinfectRecordController.java b/src/main/java/cn/besteam/modules/medical/controller/MwDisinfectRecordController.java
index 9ac82a8..59acc3a 100644
--- a/src/main/java/cn/besteam/modules/medical/controller/MwDisinfectRecordController.java
+++ b/src/main/java/cn/besteam/modules/medical/controller/MwDisinfectRecordController.java
@@ -2,14 +2,28 @@
 
 import cn.besteam.common.api.vo.Result;
 import cn.besteam.common.aspect.annotation.AutoLog;
+import cn.besteam.common.aspect.annotation.LogApi;
 import cn.besteam.modules.medical.dto.*;
+import cn.besteam.modules.medical.entity.MwDisinfectRecord;
 import cn.besteam.modules.medical.service.IMwDisinfectRecordService;
 import cn.besteam.modules.medical.vo.MwDisinfectRecordVo;
 import cn.besteam.modules.medical.vo.MwDisinfectRecordExportVO;
+import cn.besteam.modules.shiro.authc.util.EnvUtils;
+import cn.besteam.modules.system.biz.SysDictBiz;
+import cn.besteam.modules.system.entity.SysDepartment;
+import cn.besteam.modules.system.entity.SysDictItem;
+import cn.besteam.modules.system.entity.SysUser;
+import cn.besteam.modules.system.service.ISysDepartmentService;
+import cn.besteam.modules.system.service.ISysDictItemService;
+import cn.besteam.modules.system.service.ISysUserService;
+import cn.besteam.modules.system.vo.SysDictItemVO;
 import cn.hutool.poi.excel.ExcelUtil;
 import cn.hutool.poi.excel.ExcelWriter;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
@@ -20,11 +34,7 @@
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.net.URLEncoder;
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
+import java.util.*;
 
 
 /**
@@ -40,15 +50,90 @@
 @Api(description = "消毒记录")
 public class MwDisinfectRecordController {
 
-   @Autowired
-   private IMwDisinfectRecordService mwDisinfectRecordService;
+    @Autowired
+    private IMwDisinfectRecordService mwDisinfectRecordService;
 
+    @Autowired
+    private ISysDepartmentService sysDepartmentService;
+
+    @Autowired
+    private ISysDictItemService sysDictItemService;
+
+    @Autowired
+    private ISysUserService sysUserService;
+
+    @Autowired
+    private SysDictBiz sysDictBiz;
     @GetMapping("/getDisinfectRecordList")
     @ApiOperation("消毒记录-列表")
     public Result<IPage<MwDisinfectRecordVo>> getWasteWaterList(MwDisinfectRecordSeacherDto dto, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
         IPage<MwDisinfectRecordVo> pageList = mwDisinfectRecordService.queryPageList(pageNo, pageSize,dto);
         return Result.ok(pageList);
     }
+    @GetMapping(value = "/getListDictType")
+    @ApiOperation(value = "【20260421】获取消毒方式和消毒设备", notes = "获取消毒方式和消毒设备", produces = "application/json")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "获取消毒方式(1=消毒方式,2=消毒设备)", name = "type", dataType = "int"),
+    })
+    public Result<List<SysDictItemVO>> listDictType(Integer type) {
+        String ids = "11,12";
+        if (type!=null && type == 1) {//消毒方式
+            ids = "11";
+        } else if (type!=null && type == 2) {//消毒设备
+            ids = "12";
+        }
+        List<SysDictItem> sysDictVOS = sysDictBiz.queryListDisinfect(ids);
+        List<SysDictItemVO> voList = new ArrayList<>();
+        for(SysDictItem vo : sysDictVOS){
+            SysDictItemVO sysDictItemVO= new SysDictItemVO();
+            BeanUtils.copyProperties(vo,sysDictItemVO);
+            voList.add(sysDictItemVO);
+        }
+        return Result.ok(voList);
+    }
+
+    @PostMapping("/supply")
+    @ApiOperation(value = "【20260421】消毒记录补录", notes = "消毒记录补录", produces = "application/json")
+    @LogApi(value = "消毒记录补录")
+    public Result<MwDisinfectRecord> supply(@RequestBody MwDisinfectRecordDto dto) {
+        Result<MwDisinfectRecord> result = new Result<>();
+        try {
+            Integer number = mwDisinfectRecordService.count(new QueryWrapper<MwDisinfectRecord>().lambda()
+                    .eq(MwDisinfectRecord::getDisinfectTime, dto.getDisinfectTime()));
+            if (number <= 0) {
+                MwDisinfectRecord mwDisinfectRecord = new MwDisinfectRecord();
+                BeanUtils.copyProperties(dto, mwDisinfectRecord);
+                SysDepartment sysDepartment = sysDepartmentService.getById(dto.getHospitalId());
+                if (Objects.isNull(dto.getDisinfectUserId())) {
+                    dto.setDisinfectUserId(EnvUtils.getUser().getId());
+                }
+                SysUser sysUser = sysUserService.getById(dto.getDisinfectUserId());
+                SysDictItem sysDictItemDisinfect = sysDictItemService.getById(dto.getDisinfectTypeId());
+                SysDictItem sysDictItemDevice = sysDictItemService.getById(dto.getDeviceTypeId());
+                mwDisinfectRecord.setCreateTime(new java.util.Date());
+
+                if (sysUser != null) {
+                    mwDisinfectRecord.setDisinfectUserName(sysUser.getName());
+                }
+                if (sysDepartment != null) {
+                    mwDisinfectRecord.setHospitalName(sysDepartment.getDepartName());
+                }
+                if (sysDictItemDisinfect != null) {
+                    mwDisinfectRecord.setDisinfectType(sysDictItemDisinfect.getItemText());
+                    mwDisinfectRecord.setDisinfectContent(sysDictItemDisinfect.getItemValue());
+                }
+                if (sysDictItemDevice != null) {
+                    mwDisinfectRecord.setDeviceType(sysDictItemDevice.getItemValue());
+                }
+                mwDisinfectRecordService.save(mwDisinfectRecord);
+            }
+            result.success("添加成功!");
+        } catch (Exception e) {
+            log.error("消毒记录补录失败", e);
+            result.error500("操作失败");
+        }
+        return result;
+    }
 
     /*=====消毒记录导出--开始=======*/
     private static Map<String, String> headerMapDisinfectRecord = new LinkedHashMap<>();
diff --git a/src/main/java/cn/besteam/modules/report/biz/ReportBiz.java b/src/main/java/cn/besteam/modules/report/biz/ReportBiz.java
index de7ff52..8d97883 100644
--- a/src/main/java/cn/besteam/modules/report/biz/ReportBiz.java
+++ b/src/main/java/cn/besteam/modules/report/biz/ReportBiz.java
@@ -1428,6 +1428,8 @@
             queryWrapper.in(MwCollectRecord::getStatus, 1,2,3);//收集
         }else if(dto.getTypeTpl()==2){
             queryWrapper.in(MwCollectRecord::getStatus, 2,3);//入库
+        }else if(dto.getTypeTpl()!=null && dto.getTypeTpl()==4){
+            queryWrapper.eq(MwCollectRecord::getStatus, MedicalWasteEnum.MedicalWasteStatusEnum.STORE.getStatus());//在库
         }else{
             queryWrapper.in(MwCollectRecord::getStatus, 3);//出库
         }
@@ -1435,7 +1437,6 @@
         for(MwCollectRecord mwCollectRecord:mwCollectRecordList){
             mwCollectRecord.setCreateTimes(DateUtil.format(mwCollectRecord.getCreateTime(), "yyyy-MM-dd"));
         }
-        //
         List<DepartmentReportItemVO> voList = buildDepartmentStatementItemVOList(wasteTypeList, mwCollectRecordList, dto);
         vo.setList(voList);
         return vo;
diff --git a/src/main/java/cn/besteam/modules/report/controller/ReportController.java b/src/main/java/cn/besteam/modules/report/controller/ReportController.java
index 6ab9830..0077363 100644
--- a/src/main/java/cn/besteam/modules/report/controller/ReportController.java
+++ b/src/main/java/cn/besteam/modules/report/controller/ReportController.java
@@ -70,7 +70,7 @@
 
 
     @GetMapping("/getMedicalWasteReportList")
-    @ApiOperation("医废报表统计【2023.11新增】")
+    @ApiOperation("医废报表统计【2023.11新增,typeTpl=4支持在库】")
     public Result<DepartmentReportVO> getMedicalWasteReportList(ReportDTO dto) {
 
         return Result.ok(reportBiz.getMedicalWasteReportList(dto));
diff --git a/src/main/java/cn/besteam/modules/report/dto/ReportDTO.java b/src/main/java/cn/besteam/modules/report/dto/ReportDTO.java
index 9755381..39a8504 100644
--- a/src/main/java/cn/besteam/modules/report/dto/ReportDTO.java
+++ b/src/main/java/cn/besteam/modules/report/dto/ReportDTO.java
@@ -40,7 +40,7 @@
     @ApiModelProperty("统计方式(1=日期统计,2=月度统计,3=季度统计,4=年度统计)")
     private Integer dateType;
 
-    @ApiModelProperty("类型:1=收集,2=入库,3=出库")
+    @ApiModelProperty("类型:1=收集,2=入库,3=出库,4=在库")
     private Integer typeTpl;
 
     @ApiModelProperty("排序方式 0:默认,1:重量")

--
Gitblit v1.7.1