From 2dc478231fd09a88a4d86d44388ae807aca08bc5 Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期三, 01 一月 2025 10:14:28 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwProtectionRegulationVO.java | 5 medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwProtectionEquipmentRecordServiceImpl.java | 18 medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwContractServiceImpl.java | 26 medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitRouteDTO.java | 4 medicalWaste-system/src/main/java/com/sinata/system/service/biz/StaticsService.java | 27 medicalWaste-system/src/main/resources/mapper/system/MwTransitCarMapper.xml | 4 medicalWaste-system/src/main/resources/mapper/system/MwTransitRouteMapper.xml | 2 medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwStagingRoomController.java | 12 medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/system/SysRoleController.java | 24 medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwCollectRecordServiceImpl.java | 26 medicalWaste-system/src/main/java/com/sinata/system/domain/MwMicroEquipment.java | 4 medicalWaste-system/src/main/java/com/sinata/system/domain/MwProtectionTask.java | 3 medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwProtectionTaskEquipmentDTO.java | 4 medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwStorageRecordVO.java | 16 medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwMicroEquipmentStaticsVO.java | 11 medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwStagingRoomVO.java | 8 medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysRoleServiceImpl.java | 32 medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwWarningConfigItemDTO.java | 3 medicalWaste-system/src/main/resources/mapper/system/MwProtectionTaskEquipmentMapper.xml | 2 medicalWaste-system/src/main/java/com/sinata/system/mapper/MwProtectionEquipmentRecordMapper.java | 14 medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/system/SysUserController.java | 7 medicalWaste-system/src/main/java/com/sinata/system/domain/SysDepartment.java | 4 medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitCarDTO.java | 6 medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/system/SysDictDataController.java | 30 medicalWaste-system/src/main/java/com/sinata/system/domain/MwWarningRecord.java | 20 medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitCarMaintenanceDTO.java | 2 medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwProtectionEquipmentDTO.java | 5 medicalWaste-system/src/main/java/com/sinata/system/mapper/MwWarningRecordMapper.java | 24 medicalWaste-system/src/main/java/com/sinata/system/domain/dto/SysDepartmentDTO.java | 4 medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitCarWarningVO.java | 34 medicalWaste-system/src/main/java/com/sinata/system/service/biz/TaskService.java | 387 ++++++++ medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/StaticsController.java | 2 medicalWaste-system/src/main/java/com/sinata/system/domain/query/StorageRecordQuery.java | 3 medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwCheckoutRecordVO.java | 4 medicalWaste-system/src/main/resources/mapper/system/SysUserMapper.xml | 18 medicalWaste-system/src/main/resources/mapper/system/MwDisposalRecordMapper.xml | 29 medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MedicalInstitutionDTO.java | 3 medicalWaste-system/src/main/java/com/sinata/system/mapper/MwDisposalRecordMapper.java | 7 medicalWaste-system/src/main/resources/mapper/system/MwProtectionEquipmentRecordMapper.xml | 23 medicalWaste-system/src/main/java/com/sinata/system/domain/MwProtectionEquipment.java | 4 medicalWaste-system/src/main/java/com/sinata/system/service/MwCheckoutRecordService.java | 8 medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwMicroEquipmentRecordVO.java | 5 medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysMenuServiceImpl.java | 5 medicalWaste-system/src/main/resources/mapper/system/SysMenuMapper.xml | 19 medicalWaste-system/src/main/java/com/sinata/system/service/MwMicroEquipmentRecordService.java | 12 medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwCollectRecordVO.java | 10 medicalWaste-system/src/main/java/com/sinata/system/domain/vo/RegulatoryUnitVO.java | 6 medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwStagingRoomDTO.java | 4 medicalWaste-system/src/main/java/com/sinata/system/enums/WarningTypeEnum.java | 33 medicalWaste-system/src/main/java/com/sinata/system/service/MwContractService.java | 11 medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwCheckoutRecordServiceImpl.java | 11 medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwProtectionTaskDTO.java | 5 medicalWaste-system/src/main/resources/mapper/system/SysDepartmentMapper.xml | 6 medicalWaste-system/src/main/java/com/sinata/system/service/MwStagingRoomService.java | 24 medicalWaste-system/src/main/resources/mapper/system/MwProtectionRegulationMapper.xml | 7 medicalWaste-system/src/main/java/com/sinata/system/mapper/MwCollectRecordMapper.java | 16 medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysUserServiceImpl.java | 2 medicalWaste-system/src/main/java/com/sinata/system/enums/WarningStatusEnum.java | 23 medicalWaste-system/src/main/java/com/sinata/system/domain/vo/SysRoleVO.java | 3 medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitCarAnnualInspectionDTO.java | 5 medicalWaste-admin/src/main/resources/application-dev.yml | 14 medicalWaste-system/src/main/resources/mapper/system/MwDisposalHandleRecordMapper.xml | 4 medicalWaste-common/src/main/java/com/sinata/common/utils/DateUtils.java | 29 medicalWaste-system/src/main/java/com/sinata/system/domain/dto/SysUserDTO.java | 4 medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwMicroEquipmentVO.java | 3 medicalWaste-system/src/main/java/com/sinata/system/service/MwStaffService.java | 9 medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwProtectionEquipmentController.java | 11 medicalWaste-system/src/main/resources/mapper/system/MwStagingRoomMapper.xml | 120 ++ medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwCollectRecordWarningVO.java | 47 + medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwStaffServiceImpl.java | 11 medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwWarningRecordVO.java | 56 + medicalWaste-system/src/main/java/com/sinata/system/mapper/MwCheckoutRecordMapper.java | 10 medicalWaste-system/src/main/resources/mapper/system/MwMicroEquipmentMapper.xml | 3 medicalWaste-system/src/main/java/com/sinata/system/service/MwWarningRecordService.java | 29 medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwContractVO.java | 3 medicalWaste-system/src/main/java/com/sinata/system/domain/vo/SysDepartmentVO.java | 3 medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwContractDTO.java | 7 medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwBoxDTO.java | 6 medicalWaste-system/src/main/resources/mapper/system/MwCheckoutRecordMapper.xml | 21 medicalWaste-system/src/main/java/com/sinata/system/enums/WarningConfigTypeEnum.java | 2 medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/system/SysMenuController.java | 33 medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDepartmentServiceImpl.java | 1 medicalWaste-system/src/main/java/com/sinata/system/mapper/SysUserMapper.java | 3 medicalWaste-system/src/main/java/com/sinata/system/domain/MwStagingRoom.java | 3 medicalWaste-system/src/main/java/com/sinata/system/service/MwProtectionEquipmentRecordService.java | 11 medicalWaste-system/src/main/java/com/sinata/system/annotation/FastExcel.java | 27 medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MedicalInstitutionVO.java | 3 medicalWaste-common/src/main/java/com/sinata/common/core/domain/entity/SysUser.java | 14 medicalWaste-system/src/main/resources/mapper/system/MwContractMapper.xml | 33 medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwMicroEquipmentRecordController.java | 21 medicalWaste-system/src/main/resources/mapper/system/MwWarningRecordMapper.xml | 72 + medicalWaste-system/src/main/resources/mapper/system/SysRoleMapper.xml | 13 medicalWaste-system/src/main/java/com/sinata/system/domain/MwProtectionRegulation.java | 3 medicalWaste-system/src/main/java/com/sinata/system/domain/MwTransitCar.java | 4 medicalWaste-system/src/main/java/com/sinata/system/conveter/EConverter.java | 48 + medicalWaste-admin/src/main/java/com/sinata/task/WarningTask.java | 166 +++ medicalWaste-system/src/main/java/com/sinata/system/service/ISysMenuService.java | 7 medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwDisposalRecordServiceImpl.java | 11 medicalWaste-system/src/main/java/com/sinata/system/domain/MwTransitRoute.java | 4 medicalWaste-system/src/main/java/com/sinata/system/service/ISysDictDataService.java | 18 medicalWaste-system/src/main/resources/mapper/system/MwProtectionTaskMapper.xml | 5 medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwProtectionRegulationDTO.java | 4 medicalWaste-system/src/main/java/com/sinata/system/mapper/MwContractMapper.java | 14 medicalWaste-system/src/main/java/com/sinata/system/domain/vo/SysUserVO.java | 10 medicalWaste-system/src/main/java/com/sinata/system/mapper/MwStaffMapper.java | 9 medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwWarningRecordController.java | 55 + medicalWaste-system/src/main/java/com/sinata/system/mapper/MwProtectionEquipmentMapper.java | 9 medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwWarningConfigItemVO.java | 3 medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitRouteVO.java | 3 medicalWaste-system/src/main/java/com/sinata/system/domain/dto/RegulatoryUnitDTO.java | 4 medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitCarVO.java | 4 medicalWaste-system/src/main/java/com/sinata/system/service/ISysRoleService.java | 7 medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwProtectionEquipmentServiceImpl.java | 9 medicalWaste-system/src/main/java/com/sinata/system/domain/MwProtectionTaskEquipment.java | 5 medicalWaste-system/src/main/java/com/sinata/system/service/MwBoxService.java | 6 medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwWarningRecordServiceImpl.java | 58 + medicalWaste-system/src/main/resources/mapper/system/MwCollectRecordMapper.xml | 84 + medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwBoxController.java | 9 medicalWaste-system/src/main/java/com/sinata/system/service/MwDisposalRecordService.java | 8 medicalWaste-system/src/main/java/com/sinata/system/domain/dto/DisposalUnitDTO.java | 6 medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwMicroEquipmentDTO.java | 6 medicalWaste-system/src/main/java/com/sinata/system/service/MwCollectRecordService.java | 20 medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwMicroEquipmentServiceImpl.java | 12 medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDictDataServiceImpl.java | 17 medicalWaste-system/src/main/java/com/sinata/system/mapper/MwStagingRoomMapper.java | 27 medicalWaste-system/src/main/java/com/sinata/system/domain/query/MwWarningRecordQuery.java | 39 medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwDisposalRecordWarningVO.java | 29 medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwStagingRoomServiceImpl.java | 29 medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwWarningConfigServiceImpl.java | 36 medicalWaste-system/src/main/java/com/sinata/system/service/MwProtectionEquipmentService.java | 9 medicalWaste-system/src/main/java/com/sinata/system/domain/SysUserDepartment.java | 7 medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwMicroEquipmentRecordServiceImpl.java | 95 + medicalWaste-system/src/main/java/com/sinata/system/domain/dto/SysRoleDTO.java | 5 medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwBoxServiceImpl.java | 18 medicalWaste-system/src/main/resources/mapper/system/MwProtectionEquipmentMapper.xml | 26 medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwProtectionEquipmentVO.java | 5 medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwProtectionTaskVO.java | 8 medicalWaste-system/src/main/java/com/sinata/system/mapper/SysMenuMapper.java | 7 medicalWaste-system/src/main/java/com/sinata/system/domain/MwContract.java | 4 medicalWaste-system/src/main/java/com/sinata/system/domain/vo/DepartmentReportVO.java | 6 medicalWaste-system/src/main/resources/mapper/system/MwStaffMapper.xml | 16 141 files changed, 2,522 insertions(+), 174 deletions(-) diff --git a/medicalWaste-admin/src/main/java/com/sinata/task/WarningTask.java b/medicalWaste-admin/src/main/java/com/sinata/task/WarningTask.java new file mode 100644 index 0000000..d4e6497 --- /dev/null +++ b/medicalWaste-admin/src/main/java/com/sinata/task/WarningTask.java @@ -0,0 +1,166 @@ +package com.sinata.task; + +import com.sinata.system.domain.MwWarningRecord; +import com.sinata.system.enums.WarningStatusEnum; +import com.sinata.system.service.MwCollectRecordService; +import com.sinata.system.service.MwContractService; +import com.sinata.system.service.MwProtectionEquipmentRecordService; +import com.sinata.system.service.MwProtectionEquipmentService; +import com.sinata.system.service.MwStaffService; +import com.sinata.system.service.MwStagingRoomService; +import com.sinata.system.service.MwWarningConfigItemService; +import com.sinata.system.service.MwWarningConfigService; +import com.sinata.system.service.MwWarningRecordService; +import com.sinata.system.service.biz.TaskService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.jetbrains.annotations.NotNull; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.Date; + +/** + * @author mitao + * @date 2024/12/30 + */ +@Component +@Slf4j +@RequiredArgsConstructor +public class WarningTask { + private final MwWarningConfigService mwWarningConfigService; + private final MwWarningConfigItemService mwWarningConfigItemService; + private final MwCollectRecordService mwCollectRecordService; + private final MwWarningRecordService mwWarningRecordService; + private final MwStagingRoomService mwStagingRoomService; + private final MwContractService mwContractService; + private final MwStaffService mwStaffService; + private final MwProtectionEquipmentService mwProtectionEquipmentService; + private final MwProtectionEquipmentRecordService mwProtectionEquipmentRecordService; + private final TaskService taskService; + + /** + * 出库超时预警 + */ + @Scheduled(cron = "${medical.crons.checkout-over-time}") + public void checkoutOverTime() { + log.info("开始执行【出库超时预警】定时任务"); + taskService.checkoutOverTime(); + log.info("定时任务【出库超时预警】执行完毕"); + } + + /** + * 封装预警记录 + * + * @param id + * @param warningTargetName + * @param departmentName + * @param message + * @param departmentId + * @param currentValue + * @param normalRange + * @return + */ + @NotNull + private static MwWarningRecord getMwWarningRecord(Integer type, Long id, String warningTargetName, String departmentName, String message, Long departmentId, String currentValue, String normalRange) { + MwWarningRecord warningRecord = new MwWarningRecord(); + warningRecord.setType(type); + warningRecord.setWarningTargetId(id); + warningRecord.setWarningTargetName(warningTargetName); + warningRecord.setDepartmentName(departmentName); + warningRecord.setMessage(message); + warningRecord.setDepartmentId(departmentId); + warningRecord.setCurrentValue(currentValue); + warningRecord.setNormalRange(normalRange); + warningRecord.setStatus(WarningStatusEnum.UNRESOLVED.getCode()); + warningRecord.setWarnTime(new Date()); + return warningRecord; + } + + /** + * 暂存间使用率预警 + */ + @Scheduled(cron = "${medical.crons.staging-room-capacity}") + public void stagingRoomStorage() { + log.info("开始执行【暂存间使用率预警】定时任务"); + taskService.stagingRoomStorage(); + log.info("定时任务【暂存间使用率预警】执行完毕"); + } + + /** + * 合同到期预警 + */ + @Scheduled(cron = "${medical.crons.contract-expire}") + public void contractExpire() { + log.info("开始执行【合同到期预警】定时任务"); + taskService.contractExpire(); + log.info("定时任务【合同到期预警】执行完毕"); + } + + /** + * 健康记录预警、人员记录预警 + */ + @Scheduled(cron = "${medical.crons.health-vaccine-record}") + public void healthRecord() { + log.info("开始执行【健康记录预警】【人员记录预警】定时任务"); + taskService.healthRecord(); + log.info("定时任务【健康记录预警】【人员记录预警】执行完毕"); + } + + /** + * 防护用品使用预警 防护用品库存预警 + */ + @Scheduled(cron = "${medical.crons.protection-equipment-use-stock}") + public void protectionEquipmentUse() { + log.info("开始执行【防护用品使用预警】【防护用品库存预警】定时任务"); + taskService.protectionEquipmentUse(); + log.info("定时任务【防护用品使用预警】【防护用品库存预警】执行完毕"); + } + + /** + * 医疗机构产废日预警 + */ + @Scheduled(cron = "${medical.crons.medical-institution-waste-day}") + public void medicalInstitutionWasteDay() { + log.info("开始执行【医疗机构产废日预警】定时任务"); + taskService.medicalInstitutionWasteDay(); + log.info("定时任务【医疗机构产废日预警】执行完毕"); + } + + /** + * 医疗机构产废月预警 + */ + @Scheduled(cron = "${medical.crons.medical-institution-waste-month}") + public void medicalInstitutionWasteMonth() { + log.info("开始执行【医疗机构产废月预警】定时任务"); + taskService.medicalInstitutionWasteMonth(); + log.info("定时任务【医疗机构产废月预警】执行完毕"); + } + + /** + * 医疗机构存储量 + */ + @Scheduled(cron = "${medical.crons.medical-institution-waste-storage}") + public void medicalInstitutionStorage() { + log.info("开始执行【医疗机构存储量】定时任务"); + taskService.medicalInstitutionStorage(); + log.info("定时任务【医疗机构存储量】执行完毕"); + } + + /** + * 车辆转运异常预警 + */ + @Scheduled(cron = "${medical.crons.transit-car}") + public void transitCar() { + log.info("开始执行【车辆转运异常预警】定时任务"); + taskService.transitCar(); + log.info("定时任务【车辆转运异常预警】执行完毕"); + } + + @Scheduled(cron = "${medical.crons.disposal-unit-storage}") + public void disposalUnitStorage() { + log.info("开始执行【处置单位存储量预警】定时任务"); + taskService.disposalUnitStorage(); + log.info("定时任务【处置单位存储量预警】执行完毕"); + } +} diff --git a/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwBoxController.java b/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwBoxController.java index 794d733..47716a8 100644 --- a/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwBoxController.java +++ b/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwBoxController.java @@ -11,7 +11,6 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; 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.GetMapping; @@ -23,7 +22,9 @@ import javax.validation.Valid; import javax.validation.constraints.NotEmpty; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** * <p> @@ -88,7 +89,7 @@ */ @ApiOperation("批量修改转运箱状态") @PostMapping("/editBatch") - public R<?> editBatch(@Valid @RequestBody List<MwBoxDTO> dtoList) { + public R<?> editBatch(@Valid @RequestBody MwBoxDTO dtoList) { boxService.editBatch(dtoList); return R.ok(); } @@ -101,7 +102,9 @@ */ @ApiOperation("批量删除") @PostMapping("/delBatch") - public R<?> delBatch(@ApiParam(name = "idList", value = "转运箱id列表", required = true, allowMultiple = true) @NotEmpty(message = "转运箱列表不能为空") @RequestBody List<Long> idList) { + @ApiImplicitParam(name = "idStr", value = "转运箱id字符串,多个用逗号分隔", required = true) + public R<?> delBatch(@RequestParam @NotEmpty(message = "转运箱id字符串不能为空") String idStr) { + List<Long> idList = Arrays.stream(idStr.split(",")).map(Long::valueOf).collect(Collectors.toList()); boxService.removeByIds(idList); return R.ok(); } diff --git a/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwMicroEquipmentRecordController.java b/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwMicroEquipmentRecordController.java index 130d2a0..a9f684a 100644 --- a/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwMicroEquipmentRecordController.java +++ b/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwMicroEquipmentRecordController.java @@ -5,14 +5,17 @@ import com.sinata.system.domain.dto.MwMicroEquipmentRecordDTO; import com.sinata.system.domain.query.MwMicroEquipmentRecordQuery; import com.sinata.system.domain.query.MwMicroEquipmentStaticsQuery; +import com.sinata.system.domain.vo.DepartmentReportVO; import com.sinata.system.domain.vo.MwMicroEquipmentRecordVO; import com.sinata.system.domain.vo.MwMicroEquipmentStaticsTitleVO; import com.sinata.system.service.MwMicroEquipmentRecordService; 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.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; @@ -31,7 +34,7 @@ * @author mitao * @since 2024-12-02 */ -@Api(tags = {"设备使用记录相关接口"}) +@Api(tags = {"小型微波设备使用记录相关接口"}) @Validated @RequiredArgsConstructor @RestController @@ -51,6 +54,17 @@ return R.ok(mwMicroEquipmentRecordService.pageList(query)); } + /** + * 设备使用记录详情 + * + * @param id + * @return + */ + @ApiOperation("设备使用记录详情") + @GetMapping("/{id}") + public R<MwMicroEquipmentRecordVO> detail(@ApiParam(name = "id", value = "设备id", required = true) @PathVariable("id") Long id) { + return R.ok(mwMicroEquipmentRecordService.detail(id)); + } /** * 导出设备使用记录 * @@ -98,10 +112,9 @@ */ @ApiOperation("处置分析数据") @PostMapping("/statics/data") - public R<List<List<String>>> staticsData(@Valid @RequestBody MwMicroEquipmentStaticsQuery query) { + public R<DepartmentReportVO> staticsData(@Valid @RequestBody MwMicroEquipmentStaticsQuery query) { return R.ok(mwMicroEquipmentRecordService.getStaticsData(query)); } - /** * 处置分析导出 * @@ -110,7 +123,7 @@ */ @ApiOperation("处置分析导出") @PostMapping("/statics/export") - public void export(@Valid @RequestBody MwMicroEquipmentStaticsQuery query, HttpServletResponse response) { + public void export(@RequestBody MwMicroEquipmentStaticsQuery query, HttpServletResponse response) { try { mwMicroEquipmentRecordService.staticsExport(query, response); } catch (IOException e) { diff --git a/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwProtectionEquipmentController.java b/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwProtectionEquipmentController.java index 9a178a8..c730c06 100644 --- a/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwProtectionEquipmentController.java +++ b/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwProtectionEquipmentController.java @@ -23,6 +23,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.validation.Valid; +import java.util.List; /** * <p> @@ -126,4 +127,14 @@ return R.ok(mwProtectionEquipmentService.recordPage(query)); } + /** + * 防护器具列表 + * + * @return + */ + @ApiOperation("防护器具列表") + @GetMapping("/list") + public R<List<MwProtectionEquipmentVO>> queryList() { + return R.ok(mwProtectionEquipmentService.queryList()); + } } diff --git a/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwStagingRoomController.java b/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwStagingRoomController.java index 0209e72..e9f1686 100644 --- a/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwStagingRoomController.java +++ b/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwStagingRoomController.java @@ -161,4 +161,16 @@ throw new RuntimeException(e); } } + + /** + * 暂存间待处理医废分页列表 + * + * @param query + * @return + */ + @ApiOperation("暂存间待处理医废分页列表") + @PostMapping("/temporarilyStoredMedicalWaste") + public R<PageDTO<MwStorageRecordVO>> temporarilyStoredMedicalWaste(@Valid @RequestBody StorageRecordQuery query) { + return R.ok(mwStagingRoomService.temporarilyStoredMedicalWaste(query)); + } } diff --git a/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwWarningRecordController.java b/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwWarningRecordController.java index 7354355..4294d3f 100644 --- a/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwWarningRecordController.java +++ b/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwWarningRecordController.java @@ -1,7 +1,24 @@ package com.sinata.web.controller.backend; +import com.sinata.common.core.domain.R; +import com.sinata.common.entity.PageDTO; +import com.sinata.system.domain.query.MwWarningRecordQuery; +import com.sinata.system.domain.vo.MwWarningRecordVO; +import com.sinata.system.service.MwWarningRecordService; +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.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; +import java.io.IOException; /** * <p> @@ -11,8 +28,46 @@ * @author mitao * @since 2024-12-02 */ +@Validated @RestController +@Api(tags = "预警记录相关接口") +@RequiredArgsConstructor @RequestMapping("/backend/mwWarningRecord") public class MwWarningRecordController { + private final MwWarningRecordService mwWarningRecordService; + + /** + * 预警信息分页列表 + * + * @param query + * @return + */ + @ApiOperation("预警信息分页列表") + @PostMapping("/page") + public R<PageDTO<MwWarningRecordVO>> pageList(@Valid @RequestBody MwWarningRecordQuery query) { + return R.ok(mwWarningRecordService.pageList(query)); + } + + /** + * 解除预警 + * + * @param id + * @return + */ + @ApiOperation("解除预警") + @GetMapping("/relieve/{id}") + public R<?> relieve(@ApiParam(name = "id", value = "预警记录id", required = true) @PathVariable("id") Long id) { + mwWarningRecordService.relieve(id); + return R.ok(); + } + @ApiOperation("预警信息导出") + @PostMapping("/export") + public void export(@RequestBody MwWarningRecordQuery query) { + try { + mwWarningRecordService.export(query); + } catch (IOException e) { + throw new RuntimeException(e); + } + } } diff --git a/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/StaticsController.java b/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/StaticsController.java index e90318f..b0c17ea 100644 --- a/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/StaticsController.java +++ b/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/StaticsController.java @@ -30,7 +30,7 @@ @RestController @Api(tags = {"统计分析相关接口"}) @RequiredArgsConstructor -@RequestMapping("/statics") +@RequestMapping("/backend/statics") public class StaticsController { private final StaticsService staticsService; diff --git a/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/system/SysDictDataController.java b/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/system/SysDictDataController.java index a1abea0..95b4abf 100644 --- a/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/system/SysDictDataController.java +++ b/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/system/SysDictDataController.java @@ -6,12 +6,12 @@ import com.sinata.common.core.domain.R; import com.sinata.common.core.domain.entity.SysDictData; import com.sinata.common.core.page.TableDataInfo; -import com.sinata.common.entity.BasePage; import com.sinata.common.entity.PageDTO; import com.sinata.common.enums.BusinessType; import com.sinata.common.utils.StringUtils; import com.sinata.common.utils.poi.ExcelUtil; import com.sinata.system.domain.dto.SysDictDataDTO; +import com.sinata.system.domain.query.KeyWordQuery; import com.sinata.system.domain.vo.SysDictDataVO; import com.sinata.system.service.ISysDictDataService; import com.sinata.system.service.ISysDictTypeService; @@ -60,8 +60,8 @@ */ @ApiOperation("数据字典分页列表") @PostMapping("/page") - public R<PageDTO<SysDictDataVO>> page(@Valid @RequestBody BasePage page) { - return R.ok(dictDataService.pageList(page)); + public R<PageDTO<SysDictDataVO>> page(@Valid @RequestBody KeyWordQuery query) { + return R.ok(dictDataService.pageList(query)); } /** @@ -132,6 +132,30 @@ public R<List<SysDictDataVO>> workTypeList() { return R.ok(dictDataService.workTypeList()); } + + /** + * 医疗机构级别 + * + * @return + */ + @ApiOperation("医疗机构级别") + @GetMapping("/institutionLevelList") + public R<List<SysDictDataVO>> institutionLevelList() { + return R.ok(dictDataService.institutionLevelList()); + } + + /** + * 医疗机构性质 + * + * @return + */ + @ApiOperation("医疗机构性质") + @GetMapping("/institutionTypeList") + public R<List<SysDictDataVO>> institutionTypeList() { + return R.ok(dictDataService.institutionTypeList()); + } + + @PreAuthorize("@ss.hasPermi('system:dict:list')") @GetMapping("/list") public TableDataInfo list(SysDictData dictData) diff --git a/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/system/SysMenuController.java b/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/system/SysMenuController.java index 71d449b..a0663ce 100644 --- a/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/system/SysMenuController.java +++ b/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/system/SysMenuController.java @@ -8,6 +8,8 @@ import com.sinata.common.enums.BusinessType; import com.sinata.common.utils.StringUtils; import com.sinata.system.service.ISysMenuService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; @@ -20,20 +22,49 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** * 菜单信息 * * @author ruoyi */ +@Api(tags = {"菜单相关接口"}) @RestController -@RequestMapping("/system/menu") +@RequestMapping("/backend/system/menu") public class SysMenuController extends BaseController { @Autowired private ISysMenuService menuService; + @ApiOperation("菜单权限(有层级)") + @GetMapping("/levelList") + public AjaxResult levelList() { + // 获取当前角色的菜单列表 + List<SysMenu> menus = menuService.selectList(); + if (menus.size() == 0) { + return AjaxResult.success(new ArrayList<>()); + } + // 第三级 + List<SysMenu> s3 = menus.stream().filter(e -> e.getMenuType().equals("F")).collect(Collectors.toList()); + // 第二级 + List<SysMenu> s2 = menus.stream().filter(e -> e.getMenuType().equals("C")).collect(Collectors.toList()); + // 第一级 + List<SysMenu> s1 = menus.stream().filter(e -> e.getMenuType().equals("M")).collect(Collectors.toList()); + + for (SysMenu menu : s2) { + List<SysMenu> collect = s3.stream().filter(e -> e.getParentId().equals(menu.getMenuId())).collect(Collectors.toList()); + menu.setChildren(collect); + } + for (SysMenu menu : s1) { + List<SysMenu> collect = s2.stream().filter(e -> e.getParentId().equals(menu.getMenuId())).collect(Collectors.toList()); + menu.setChildren(collect); + } + + return AjaxResult.success(s1); + } /** * 获取菜单列表 */ diff --git a/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/system/SysRoleController.java b/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/system/SysRoleController.java index 1abf39c..801d6f8 100644 --- a/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/system/SysRoleController.java +++ b/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/system/SysRoleController.java @@ -23,6 +23,7 @@ import com.sinata.system.service.ISysRoleService; import com.sinata.system.service.ISysUserService; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; @@ -35,13 +36,16 @@ import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; -import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotBlank; +import java.util.Arrays; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * 角色信息 @@ -117,8 +121,10 @@ @ApiOperation("批量删除") @PostMapping("/deleteBatch") - public R<?> deleteBatch(@ApiParam(name = "roleIds", value = "角色id列表", required = true) @NotEmpty(message = "角色id列表不能为空") @RequestBody List<Long> roleIds) { - roleService.removeBatchByIds(roleIds); + @ApiImplicitParam(name = "roleIdStr", value = "角色id字符串,多个用逗号分隔", required = true) + public R<?> deleteBatch(@RequestParam @NotBlank(message = "角色id字符串不能为空") String roleIdStr) { + List<Long> idList = Arrays.stream(roleIdStr.split(",")).map(Long::valueOf).collect(Collectors.toList()); + roleService.removeBatchByIds(idList); return R.ok(); } @@ -129,11 +135,17 @@ */ @ApiOperation("获取当前登录用户可管理角色列表") @GetMapping("/manageRoleList") - public List<SysRoleVO> getManageRoleList() { - return roleService.getManageRoleList(getLoginUser()); + public R<List<SysRoleVO>> getManageRoleList() { + return R.ok(roleService.getManageRoleList(getLoginUser())); + } + + @ApiOperation("角色列表") + @GetMapping("/list") + public R<List<SysRoleVO>> queryList() { + return R.ok(roleService.queryList()); } @PreAuthorize("@ss.hasPermi('system:role:list')") - @GetMapping("/list") + //@GetMapping("/list") public TableDataInfo list(SysRole role) { startPage(); diff --git a/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/system/SysUserController.java b/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/system/SysUserController.java index 0d34e09..58751d2 100644 --- a/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/system/SysUserController.java +++ b/medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/system/SysUserController.java @@ -35,11 +35,13 @@ import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -136,8 +138,9 @@ */ @ApiOperation("批量删除") @PostMapping("/delBatch") - @ApiImplicitParam(name = "userIds", value = "用户id列表", required = true, allowMultiple = true) - public R<?> delBatch(@RequestBody List<Long> userIds) { + @ApiImplicitParam(name = "userIdStr", value = "用户id字符串列表", required = true) + public R<?> delBatch(@RequestParam String userIdStr) { + List<Long> userIds = Arrays.stream(userIdStr.split(",")).map(Long::valueOf).collect(Collectors.toList()); userService.delBatch(userIds); return R.ok(); } diff --git a/medicalWaste-admin/src/main/resources/application-dev.yml b/medicalWaste-admin/src/main/resources/application-dev.yml index df421b5..518d39d 100644 --- a/medicalWaste-admin/src/main/resources/application-dev.yml +++ b/medicalWaste-admin/src/main/resources/application-dev.yml @@ -236,3 +236,17 @@ debug: false loginTemplateCode: SMS_246140477 auditTemplateCode: SMS_476730213 + +medical: + crons: + checkout-over-time: 0 0/60 * * * ? # 每小时执行一次 + staging-room-capacity: 0 * */3 * * ? # 每三小时执行一次 + contract-expire: 0 0 0 * * ? # 每日0点执行 + health-vaccine-record: 0 0 1 * * ? # 每日1点执行 + protection-equipment-use-stock: 0 0 2 * * ? # 每日2点执行 + medical-institution-waste-day: 0 0 3 * * ? # 每日3点执行 + medical-institution-waste-month: 0 30 0 1 * ? # 每月1日0点30分执行 + medical-institution-waste-storage: 0 0 4 * * ? # 每日4点执行 + transit-car: 0 0 0/1 * * ? # 每小时执行一次 + disposal-unit-storage: 0 0 5 * * ? + diff --git a/medicalWaste-common/src/main/java/com/sinata/common/core/domain/entity/SysUser.java b/medicalWaste-common/src/main/java/com/sinata/common/core/domain/entity/SysUser.java index da45f88..57a63d2 100644 --- a/medicalWaste-common/src/main/java/com/sinata/common/core/domain/entity/SysUser.java +++ b/medicalWaste-common/src/main/java/com/sinata/common/core/domain/entity/SysUser.java @@ -120,12 +120,26 @@ @TableField("DEPARTMENT_ID") private Long departmentId; + /** + * 层级关系 + */ + @TableField("RELATION") + private String relation; + public SysUser() { } + public String getRelation() { + return relation; + } + + public void setRelation(String relation) { + this.relation = relation; + } + public String getOpenId() { return openId; } 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 84c3047..544c615 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 @@ -175,6 +175,35 @@ } /** + * 计算小时差 + * + * @param endDate + * @param startTime + * @return + */ + public static long timeDistanceHour(Date endDate, Date startTime) { + long nd = 1000 * 24 * 60 * 60; + long nh = 1000 * 60 * 60; + long diff = endDate.getTime() - startTime.getTime(); + long hour = diff % nd / nh; + return hour; + } + + /** + * 计算天数差 + * + * @param endDate + * @param startTime + * @return + */ + public static long timeDistanceDay(Date endDate, Date startTime) { + long nd = 1000 * 24 * 60 * 60; + long diff = endDate.getTime() - startTime.getTime(); + long day = diff / nd; + return day; + } + + /** * 增加 LocalDateTime ==> Date */ public static Date toDate(LocalDateTime temporalAccessor) diff --git a/medicalWaste-system/src/main/java/com/sinata/system/annotation/FastExcel.java b/medicalWaste-system/src/main/java/com/sinata/system/annotation/FastExcel.java new file mode 100644 index 0000000..284611f --- /dev/null +++ b/medicalWaste-system/src/main/java/com/sinata/system/annotation/FastExcel.java @@ -0,0 +1,27 @@ +package com.sinata.system.annotation; + +/** + * @author mitao + * @date 2024/12/30 + */ + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 指定枚举自定义类的注解 + */ +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface FastExcel { + /** + * 控件类型 + * + * @return + */ + Class<? extends Enum> type(); +} diff --git a/medicalWaste-system/src/main/java/com/sinata/system/conveter/EConverter.java b/medicalWaste-system/src/main/java/com/sinata/system/conveter/EConverter.java new file mode 100644 index 0000000..7064224 --- /dev/null +++ b/medicalWaste-system/src/main/java/com/sinata/system/conveter/EConverter.java @@ -0,0 +1,48 @@ +package com.sinata.system.conveter; + +import cn.idev.excel.converters.Converter; +import cn.idev.excel.enums.CellDataTypeEnum; +import cn.idev.excel.metadata.GlobalConfiguration; +import cn.idev.excel.metadata.data.WriteCellData; +import cn.idev.excel.metadata.property.ExcelContentProperty; +import com.sinata.system.annotation.FastExcel; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; + +/** + * 通用枚举转换器 + */ +public class EConverter implements Converter<Integer> { + @Override + public Class supportJavaTypeKey() { + //指定转换器接收参数类型 + return Integer.class; + } + + @Override + public CellDataTypeEnum supportExcelTypeKey() { + //指定返回的参数类型 + return CellDataTypeEnum.STRING; + } + + @Override + public WriteCellData<?> convertToExcelData(Integer value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception { + //value:状态码 contentProperty:字段属性 globalConfiguration:全局配置 + //获取字段属性中的注解 + Field field = contentProperty.getField(); + //获取该字段所属枚举 + FastExcel fastExcel = field.getAnnotation(FastExcel.class); + //获取注解中的枚举信息 + Class<? extends Enum> type = fastExcel.type(); + //获取枚举类的方法名 “getEnumByCode”就是自己编写的函数,Integer.class 指定入参类型 + Method codeOf = type.getMethod("getEnumByCode", Integer.class); + //反射执行方法,此方法得到的是一个枚举实例(具体得到什么,结合自身项目) + Object invoke = codeOf.invoke(type, value); + //枚举实例调用getname方法,得到name的值 + Method getDesc = invoke.getClass().getMethod("getDesc"); + String name = String.valueOf(getDesc.invoke(invoke)); + //将转换的值进行返回 + return new WriteCellData(name); + } +} diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwContract.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwContract.java index 4bcedd9..503fc9b 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwContract.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwContract.java @@ -85,5 +85,7 @@ @TableField("REMARK") private String remark; - + @ApiModelProperty("层级关系") + @TableField("RELATION") + private String relation; } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwMicroEquipment.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwMicroEquipment.java index 403676a..f6e8ac0 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwMicroEquipment.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwMicroEquipment.java @@ -50,5 +50,9 @@ @TableField("REMARK") private String remark; + @ApiModelProperty("层级关系") + @TableField("RELATION") + private String relation; + } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwProtectionEquipment.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwProtectionEquipment.java index 59ab209..85b74a7 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwProtectionEquipment.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwProtectionEquipment.java @@ -54,5 +54,9 @@ @TableField("REMARK") private String remark; + @ApiModelProperty("层级关系") + @TableField("RELATION") + private String relation; + } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwProtectionRegulation.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwProtectionRegulation.java index 6157ecd..698b693 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwProtectionRegulation.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwProtectionRegulation.java @@ -50,5 +50,8 @@ @TableField("REMARK") private String remark; + @ApiModelProperty("层级关系") + @TableField("RELATION") + private String relation; } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwProtectionTask.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwProtectionTask.java index 8874dbc..20426dd 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwProtectionTask.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwProtectionTask.java @@ -50,5 +50,8 @@ @TableField("REMARK") private String remark; + @ApiModelProperty("层级关系") + @TableField("RELATION") + private String relation; } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwProtectionTaskEquipment.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwProtectionTaskEquipment.java index d7dd72e..f873a2d 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwProtectionTaskEquipment.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwProtectionTaskEquipment.java @@ -4,11 +4,12 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import com.sinata.common.entity.BaseModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; + +import java.io.Serializable; /** * <p> @@ -22,7 +23,7 @@ @Setter @TableName("MW_PROTECTION_TASK_EQUIPMENT") @ApiModel(value = "MwProtectionTaskEquipment对象", description = "防护作业防护器具关系") -public class MwProtectionTaskEquipment extends BaseModel { +public class MwProtectionTaskEquipment implements Serializable { private static final long serialVersionUID = 1L; diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwStagingRoom.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwStagingRoom.java index a8540f7..a690de6 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwStagingRoom.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwStagingRoom.java @@ -42,5 +42,8 @@ @TableField("MAX_CAPACITY") private Integer maxCapacity; + @ApiModelProperty("层级关系") + @TableField("RELATION") + private String relation; } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwTransitCar.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwTransitCar.java index 18de500..063e20f 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwTransitCar.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwTransitCar.java @@ -72,5 +72,9 @@ @TableField("REMARK") private String remark; + @ApiModelProperty("层级关系") + @TableField("RELATION") + private String relation; + } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwTransitRoute.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwTransitRoute.java index 79e4d2a..6fe3c52 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwTransitRoute.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwTransitRoute.java @@ -49,4 +49,8 @@ @TableField("REMARK") private String remark; + @ApiModelProperty("层级关系") + @TableField("RELATION") + private String relation; + } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwWarningRecord.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwWarningRecord.java index b32cb8b..d8093c0 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwWarningRecord.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwWarningRecord.java @@ -7,8 +7,11 @@ import com.sinata.common.entity.BaseModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; import java.util.Date; @@ -20,8 +23,11 @@ * @author mitao * @since 2024-12-02 */ -@Getter -@Setter +@Data +@EqualsAndHashCode(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor @TableName("MW_WARNING_RECORD") @ApiModel(value = "MwWarningRecord对象", description = "预警记录表") public class MwWarningRecord extends BaseModel { @@ -44,9 +50,9 @@ @TableField("WARNING_TARGET_NAME") private String warningTargetName; - @ApiModelProperty("预警类型 预警类型 1:出库超时预警 2:暂存间使用率预警 3:合同到期预警 4:健康记录预警 " + - "5:疫苗记录预警 6:防护用品使用预警 7:医疗机构产废日预警 8:医疗机构产废月预警 " + - "9:医疗机构存储量预警 10:车辆转运异常预警 11:处置单位存储量预警") + @ApiModelProperty("预警类型 1:出库超时预警 2:暂存间使用率预警 3:合同到期预警 4:健康记录预警 " + + "5:疫苗记录预警 6:防护用品使用预警 7:防护用品库存预警 8:医疗机构产废日预警 " + + "9:医疗机构产废月预警 10:医疗机构存储量预警 11:车辆转运异常预警 12:处置单位存储量预警") @TableField("TYPE") private Integer type; diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/SysDepartment.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/SysDepartment.java index 3af2f23..8d0a308 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/SysDepartment.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/SysDepartment.java @@ -50,6 +50,10 @@ @TableField("ORG_CODE") private String orgCode; + @ApiModelProperty("层级关系") + @TableField("RELATION") + private String relation; + @ApiModelProperty("单位地址") @TableField("ADDRESS") private String address; diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/SysUserDepartment.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/SysUserDepartment.java index 9d033af..c9375df 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/SysUserDepartment.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/SysUserDepartment.java @@ -4,11 +4,9 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import com.sinata.common.entity.BaseModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import lombok.EqualsAndHashCode; /** * <p> @@ -20,12 +18,9 @@ */ @Data -@EqualsAndHashCode(callSuper = true) @TableName("SYS_USER_DEPARTMENT") @ApiModel(value = "SysUserDepartment对象", description = "用户区域关系") -public class SysUserDepartment extends BaseModel { - - private static final long serialVersionUID = 1L; +public class SysUserDepartment { @ApiModelProperty("用户区域关系表id") @TableId(value = "ID", type = IdType.AUTO) diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/DisposalUnitDTO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/DisposalUnitDTO.java index 2c5c92c..0224301 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/DisposalUnitDTO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/DisposalUnitDTO.java @@ -16,6 +16,12 @@ @ApiModel("处置单位数据传输对象") public class DisposalUnitDTO extends RegulatoryUnitDTO { + @ApiModelProperty("法人代表") + private String legalPerson; + + @ApiModelProperty("医疗废物处置许可证号") + private String disposalLicenseNumber; + @ApiModelProperty("许可证图片") private String disposalLicenseImage; diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MedicalInstitutionDTO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MedicalInstitutionDTO.java index 08a849c..4830594 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MedicalInstitutionDTO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MedicalInstitutionDTO.java @@ -22,6 +22,9 @@ @ApiModelProperty("机构性质(数据字典id)") private Long institutionType; + @ApiModelProperty("法人代表") + private String legalPerson; + @ApiModelProperty("每日产废范围起") private BigDecimal dailyMinWasteQuantity; diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwBoxDTO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwBoxDTO.java index 0ff04a5..3c8f28f 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwBoxDTO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwBoxDTO.java @@ -4,7 +4,9 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; +import java.util.List; /** * @author mitao @@ -15,8 +17,8 @@ public class MwBoxDTO { @ApiModelProperty("转运箱id") - @NotNull(message = "转运箱id不能为空") - private Long id; + @NotEmpty(message = "转运箱id不能为空") + private List<Long> idList; @ApiModelProperty("转运箱状态 1:正常 2:丢失 3:破坏") @NotNull(message = "转运箱状态不能为空") diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwContractDTO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwContractDTO.java index 32cd2b2..f326490 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwContractDTO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwContractDTO.java @@ -1,5 +1,6 @@ package com.sinata.system.domain.dto; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -39,10 +40,12 @@ @ApiModelProperty("合同生效日期") @NotNull(message = "合同生效日期不能为空") + @JsonFormat(pattern = "yyyy-MM-dd") private Date effectiveDate; @ApiModelProperty("合同终止日期") @NotNull(message = "合同终止日期不能为空") + @JsonFormat(pattern = "yyyy-MM-dd") private Date terminationDate; @ApiModelProperty("甲方名称") @@ -74,4 +77,8 @@ @ApiModelProperty("附件列表") private List<MwAttachmentDTO> attachmentList; + + @ApiModelProperty("层级关系") + @NotBlank(message = "层级关系不能为空") + private String relation; } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwMicroEquipmentDTO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwMicroEquipmentDTO.java index 985aa05..dd1e247 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwMicroEquipmentDTO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwMicroEquipmentDTO.java @@ -16,7 +16,6 @@ public class MwMicroEquipmentDTO { @ApiModelProperty(value = "小型微波设备id", notes = "新增不传,编辑必传") - @NotNull(message = "设备id不能为空") private Long id; @ApiModelProperty("区域id(医院)") @@ -37,4 +36,9 @@ @ApiModelProperty("备注") private String remark; + + @ApiModelProperty("层级关系") + @NotBlank(message = "层级关系不能为空") + private String relation; + } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwProtectionEquipmentDTO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwProtectionEquipmentDTO.java index 93c7713..af1f242 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwProtectionEquipmentDTO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwProtectionEquipmentDTO.java @@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.util.List; @@ -35,4 +36,8 @@ @ApiModelProperty("附件列表") private List<MwAttachmentDTO> attachmentList; + + @ApiModelProperty("层级关系") + @NotBlank(message = "层级关系不能为空") + private String relation; } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwProtectionRegulationDTO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwProtectionRegulationDTO.java index 016ef27..b3e2b49 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwProtectionRegulationDTO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwProtectionRegulationDTO.java @@ -37,4 +37,8 @@ @ApiModelProperty("附件列表") private List<MwAttachmentDTO> attachmentList; + @ApiModelProperty("层级关系") + @NotBlank(message = "层级关系不能为空") + private String relation; + } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwProtectionTaskDTO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwProtectionTaskDTO.java index b895905..9b6576c 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwProtectionTaskDTO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwProtectionTaskDTO.java @@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.util.List; @@ -40,4 +41,8 @@ @ApiModelProperty("附件列表") private List<MwAttachmentDTO> attachmentList; + + @ApiModelProperty("层级关系") + @NotBlank(message = "层级关系不能为空") + private String relation; } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwProtectionTaskEquipmentDTO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwProtectionTaskEquipmentDTO.java index f96bb70..bd305cc 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwProtectionTaskEquipmentDTO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwProtectionTaskEquipmentDTO.java @@ -12,8 +12,8 @@ @ApiModel("防护作业使用器具数据传输对象") public class MwProtectionTaskEquipmentDTO { - @ApiModelProperty("防护作业id") - private Long protectionTaskId; + @ApiModelProperty("防护器具id") + private Long protectionEquipmentId; @ApiModelProperty("使用量") private Integer usageQuantity; diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwStagingRoomDTO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwStagingRoomDTO.java index 84b07cc..7ecb8c5 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwStagingRoomDTO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwStagingRoomDTO.java @@ -29,4 +29,8 @@ @ApiModelProperty("最大容量(箱)") @NotNull(message = "最大容量不能为空") private Integer maxCapacity; + + @ApiModelProperty("层级关系") + @NotBlank(message = "层级关系不能为空") + private String relation; } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitCarAnnualInspectionDTO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitCarAnnualInspectionDTO.java index 5fec9b6..f1eec04 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitCarAnnualInspectionDTO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitCarAnnualInspectionDTO.java @@ -1,9 +1,11 @@ package com.sinata.system.domain.dto; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotNull; import java.util.Date; /** @@ -18,12 +20,15 @@ private Long id; @ApiModelProperty("车辆id") + @NotNull(message = "车辆id不能为空") private Long carId; @ApiModelProperty("年检日期") + @JsonFormat(pattern = "yyyy-MM-dd") private Date inspectionDate; @ApiModelProperty("下次年检到期日") + @JsonFormat(pattern = "yyyy-MM-dd") private Date nextInspectionDate; @ApiModelProperty("检验机构名称") diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitCarDTO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitCarDTO.java index c7bbc5c..f42e1df 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitCarDTO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitCarDTO.java @@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotBlank; import java.math.BigDecimal; /** @@ -45,4 +46,9 @@ @ApiModelProperty("备注") private String remark; + + @ApiModelProperty("层级关系") + @NotBlank(message = "层级关系不能为空") + private String relation; + } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitCarMaintenanceDTO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitCarMaintenanceDTO.java index d4e386a..7ee5439 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitCarMaintenanceDTO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitCarMaintenanceDTO.java @@ -1,5 +1,6 @@ package com.sinata.system.domain.dto; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -23,6 +24,7 @@ private Long carId; @ApiModelProperty("保养日期") + @JsonFormat(pattern = "yyyy-MM-dd") private Date maintenanceDate; @ApiModelProperty("保养项目") diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitRouteDTO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitRouteDTO.java index f5235fc..b0fc379 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitRouteDTO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitRouteDTO.java @@ -38,4 +38,8 @@ @ApiModelProperty("关联车辆") @NotEmpty(message = "关联车辆不能为空") private List<Long> carIdList; + + @ApiModelProperty("层级关系") + @NotBlank(message = "层级关系不能为空") + private String relation; } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwWarningConfigItemDTO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwWarningConfigItemDTO.java index 6697f02..e9c7b15 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwWarningConfigItemDTO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwWarningConfigItemDTO.java @@ -21,6 +21,9 @@ @ApiModelProperty("医废类型") private Long wasteType; + @ApiModelProperty("医废类型名称") + private String wasteTypeStr; + @ApiModelProperty("预警值") private Integer value; diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/RegulatoryUnitDTO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/RegulatoryUnitDTO.java index 218b50f..a7b3b4a 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/RegulatoryUnitDTO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/RegulatoryUnitDTO.java @@ -49,5 +49,9 @@ @ApiModelProperty("备注") private String remark; + @ApiModelProperty("层级关系") + @NotBlank(message = "层级关系不能为空") + private String relation; + } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/SysDepartmentDTO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/SysDepartmentDTO.java index 0086344..b9a5885 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/SysDepartmentDTO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/SysDepartmentDTO.java @@ -27,4 +27,8 @@ @NotBlank(message = "区域名称不能为空") @Length(max = 20, message = "区域名称长度不能超过20个字符") private String departmentName; + + @ApiModelProperty("层级关系") + @NotBlank(message = "层级关系不能为空") + private String relation; } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/SysRoleDTO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/SysRoleDTO.java index dfc6bee..979a97e 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/SysRoleDTO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/SysRoleDTO.java @@ -5,6 +5,7 @@ import lombok.Data; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; import java.util.List; /** @@ -23,12 +24,12 @@ private String roleName; @ApiModelProperty(value = "可管理角色", notes = "使用英文逗号拼接") - @NotBlank(message = "可管理角色不能为空") - private String manageRoleStr; + private String manageRoleIdStr; @ApiModelProperty("备注") private String remark; @ApiModelProperty("菜单id列表") + @NotEmpty(message = "菜单id列表不能为空") private List<Long> menuIds; } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/SysUserDTO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/SysUserDTO.java index 3e0f105..c874371 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/SysUserDTO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/dto/SysUserDTO.java @@ -36,4 +36,8 @@ @ApiModelProperty("角色id") @NotNull(message = "角色id不能为空") private Long roleId; + + @ApiModelProperty("层级关系") + @NotBlank(message = "层级关系不能为空") + private String relation; } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/query/MwWarningRecordQuery.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/query/MwWarningRecordQuery.java new file mode 100644 index 0000000..20d4f99 --- /dev/null +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/query/MwWarningRecordQuery.java @@ -0,0 +1,39 @@ +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; +import java.util.List; + +/** + * @author mitao + * @date 2024/12/30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ApiModel("预警信息查询数据传输对象") +public class MwWarningRecordQuery extends BasePage { + + private static final long serialVersionUID = 5651690991680404403L; + @ApiModelProperty("机构id") + private Long departmentId; + + @ApiModelProperty("预警类型") + private Integer type; + + @ApiModelProperty("预警状态") + private Integer status; + + @ApiModelProperty("预警时间段-开始") + private Date startTime; + + @ApiModelProperty("预警时间段-结束") + private Date endTime; + + @ApiModelProperty("记录id列表 导出多选") + private List<Long> idList; +} diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/query/StorageRecordQuery.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/query/StorageRecordQuery.java index 3d19930..2a14f8f 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/query/StorageRecordQuery.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/query/StorageRecordQuery.java @@ -39,4 +39,7 @@ @ApiModelProperty("入库时间-结束") private Date collectTimeEnd; + + @ApiModelProperty("医废状态 1:暂存中 2:运输中 3:已接收 4:已处置") + private Integer status; } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/DepartmentReportVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/DepartmentReportVO.java index a41fe57..0218d18 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/DepartmentReportVO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/DepartmentReportVO.java @@ -9,6 +9,12 @@ @Data @ApiModel("医院报表视图对象") public class DepartmentReportVO { + + @ApiModelProperty("机构名称") + private String departmentName; + + @ApiModelProperty("设备名称") + private String equipmentName; @ApiModelProperty("类别") private List<String> legend; diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MedicalInstitutionVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MedicalInstitutionVO.java index 817b1a3..d725f0c 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MedicalInstitutionVO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MedicalInstitutionVO.java @@ -41,6 +41,9 @@ @ApiModelProperty("每月产废范围止") private BigDecimal monthlyMaxWasteQuantity; + @ApiModelProperty("法人代表") + private String legalPerson; + @ApiModelProperty("处置单位列表") private List<DisposalUnitVO> disposalUnitList; diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwCheckoutRecordVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwCheckoutRecordVO.java index 8883818..77bbfe1 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwCheckoutRecordVO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwCheckoutRecordVO.java @@ -1,5 +1,6 @@ package com.sinata.system.domain.vo; +import cn.idev.excel.annotation.ExcelIgnore; import cn.idev.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -20,6 +21,7 @@ private static final long serialVersionUID = -851971023455890457L; @ApiModelProperty("记录id") + @ExcelIgnore private Long id; @ApiModelProperty("出库时间") @@ -27,6 +29,7 @@ private Date checkoutTime; @ApiModelProperty("区域id") + @ExcelIgnore private Long departmentId; @ApiModelProperty("医院名称") @@ -62,6 +65,7 @@ private String licensePlateNumber; @ApiModelProperty("转运线路") + @ExcelIgnore private String routeName; } 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 index f4815d3..5ac3d51 100644 --- 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 @@ -1,5 +1,6 @@ package com.sinata.system.domain.vo; +import cn.idev.excel.annotation.ExcelIgnore; import cn.idev.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -17,9 +18,11 @@ public class MwCollectRecordVO { @ApiModelProperty("收集记录id") + @ExcelIgnore private Long id; @ApiModelProperty("区域id") + @ExcelIgnore private Long departmentId; @ApiModelProperty("医院名称") @@ -27,6 +30,7 @@ private String hospitalName; @ApiModelProperty("暂存间id") + @ExcelIgnore private Long stagingRoomId; @ApiModelProperty("医废编号") @@ -34,6 +38,7 @@ private String medicalWasteNumber; @ApiModelProperty("转运箱id") + @ExcelIgnore private Long boxId; @ApiModelProperty("箱子编号") @@ -52,12 +57,15 @@ private BigDecimal weight; @ApiModelProperty("出库人员id") + @ExcelIgnore private Long checkoutUserId; @ApiModelProperty("出库人员姓名") + @ExcelIgnore private String checkoutUserName; @ApiModelProperty("出库时间") + @ExcelIgnore private Date checkoutTime; @ApiModelProperty("医废状态 1:暂存中 2:运输中 3:已接收 4:已处置") @@ -65,9 +73,11 @@ private Integer status; @ApiModelProperty("封箱时间") + @ExcelIgnore private Date boxTime; @ApiModelProperty("收集人id") + @ExcelIgnore private Long collectUserId; @ApiModelProperty("收集人姓名") diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwCollectRecordWarningVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwCollectRecordWarningVO.java new file mode 100644 index 0000000..d34dd69 --- /dev/null +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwCollectRecordWarningVO.java @@ -0,0 +1,47 @@ +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/31 + */ +@Data +@ApiModel("收集记录预警视图对象") +public class MwCollectRecordWarningVO { + + @ApiModelProperty("收集记录id") + private Long id; + + @ApiModelProperty("区域id") + private Long departmentId; + + @ApiModelProperty("医院名称") + private String hospitalName; + + @ApiModelProperty("总重量") + private BigDecimal totalWeight; + + @ApiModelProperty("收集时间") + private Date collectTime; + + @ApiModelProperty("每日产废范围起") + private BigDecimal dailyMinWasteQuantity; + + @ApiModelProperty("每日产废范围止") + private BigDecimal dailyMaxWasteQuantity; + + @ApiModelProperty("每月产废范围起") + private BigDecimal monthlyMinWasteQuantity; + + @ApiModelProperty("每月产废范围止") + private BigDecimal monthlyMaxWasteQuantity; + + @ApiModelProperty("医废最大存储量") + private BigDecimal maximumStorageCapacity; +} diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwContractVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwContractVO.java index 2720f4a..07fd31e 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwContractVO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwContractVO.java @@ -67,4 +67,7 @@ @ApiModelProperty("附件列表") private List<MwAttachmentVO> attachmentList; + @ApiModelProperty("层级关系") + private String relation; + } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwDisposalRecordWarningVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwDisposalRecordWarningVO.java new file mode 100644 index 0000000..1b6d0cf --- /dev/null +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwDisposalRecordWarningVO.java @@ -0,0 +1,29 @@ +package com.sinata.system.domain.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author mitao + * @date 2024/12/31 + */ +@Data +@ApiModel("处置单位储量预警视图对象") +public class MwDisposalRecordWarningVO { + + @ApiModelProperty("当前存储量") + private BigDecimal currentStorage; + + @ApiModelProperty("最大存储量") + private BigDecimal maximumStorageCapacity; + + @ApiModelProperty("区域id") + private Long departmentId; + + @ApiModelProperty("处置单位名称") + private String disposalUnitName; + +} diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwMicroEquipmentRecordVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwMicroEquipmentRecordVO.java index 480a3d4..feed138 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwMicroEquipmentRecordVO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwMicroEquipmentRecordVO.java @@ -6,6 +6,7 @@ import java.math.BigDecimal; import java.util.Date; +import java.util.List; /** * @author mitao @@ -41,4 +42,8 @@ @ApiModelProperty("备注") private String remark; + + @ApiModelProperty("医废列表") + private List<MwStorageRecordVO> medicalWasteList; } + diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwMicroEquipmentStaticsVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwMicroEquipmentStaticsVO.java index 8784934..29cc642 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwMicroEquipmentStaticsVO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwMicroEquipmentStaticsVO.java @@ -1,6 +1,7 @@ package com.sinata.system.domain.vo; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; @@ -13,9 +14,19 @@ @Data @ApiModel("处置分析视图对象") public class MwMicroEquipmentStaticsVO { + + @ApiModelProperty("袋数") private Integer bagNum; + + @ApiModelProperty("总重量") private BigDecimal totalWeight; + + @ApiModelProperty("重量") private BigDecimal weight; + + @ApiModelProperty("使用时间") private Date useTime; + + @ApiModelProperty("医废类型") private Long wasteType; } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwMicroEquipmentVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwMicroEquipmentVO.java index 3efa30d..1ffd1a8 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwMicroEquipmentVO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwMicroEquipmentVO.java @@ -33,4 +33,7 @@ @ApiModelProperty("备注") private String remark; + @ApiModelProperty("层级关系") + private String relation; + } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwProtectionEquipmentVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwProtectionEquipmentVO.java index add5930..eb713d4 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwProtectionEquipmentVO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwProtectionEquipmentVO.java @@ -27,7 +27,7 @@ private Long protectionEquipmentType; @ApiModelProperty("器具类型名称") - private Long protectionEquipmentTypeStr; + private String protectionEquipmentTypeStr; @ApiModelProperty("器具名称") private String equipmentName; @@ -40,4 +40,7 @@ @ApiModelProperty("附件列表") private List<MwAttachmentVO> attachmentList; + + @ApiModelProperty("层级关系") + private String relation; } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwProtectionRegulationVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwProtectionRegulationVO.java index e0b5b3b..8410776 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwProtectionRegulationVO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwProtectionRegulationVO.java @@ -40,8 +40,11 @@ private String fileName; @ApiModelProperty("新增时间") - private Date creteTime; + private Date createTime; @ApiModelProperty("附件列表") private List<MwAttachmentVO> attachmentList; + + @ApiModelProperty("层级关系") + private String relation; } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwProtectionTaskVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwProtectionTaskVO.java index 1374bfd..698f146 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwProtectionTaskVO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwProtectionTaskVO.java @@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.Date; import java.util.List; /** @@ -13,6 +14,7 @@ @Data @ApiModel("防护作业视图对象") public class MwProtectionTaskVO { + @ApiModelProperty("防护作业id") private Long id; @@ -42,4 +44,10 @@ @ApiModelProperty("附件列表") private List<MwAttachmentVO> attachmentList; + + @ApiModelProperty("层级关系") + private String relation; + + @ApiModelProperty(value = "作业时间") + private Date createTime; } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwStagingRoomVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwStagingRoomVO.java index b761679..99b226c 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwStagingRoomVO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwStagingRoomVO.java @@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; + /** * @author mitao * @date 2024/12/12 @@ -33,6 +35,12 @@ @ApiModelProperty("未使用数量") private Integer unused; + @ApiModelProperty("使用率") + private BigDecimal useRate; + @ApiModelProperty("添加时间") private String createTime; + + @ApiModelProperty("层级关系") + private String relation; } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwStorageRecordVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwStorageRecordVO.java index 7c5a15a..9b69223 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwStorageRecordVO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwStorageRecordVO.java @@ -1,5 +1,6 @@ package com.sinata.system.domain.vo; +import cn.idev.excel.annotation.ExcelIgnore; import cn.idev.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -15,10 +16,13 @@ @Data @ApiModel("暂存间入库视图对象") public class MwStorageRecordVO { + @ApiModelProperty("收集记录id") + @ExcelIgnore private Long id; @ApiModelProperty("区域id") + @ExcelIgnore private Long departmentId; @ApiModelProperty("医院名称") @@ -26,6 +30,7 @@ private String hospitalName; @ApiModelProperty("暂存间id") + @ExcelIgnore private Long stagingRoomId; @ApiModelProperty("暂存间名称") @@ -37,11 +42,16 @@ private String medicalWasteNumber; @ApiModelProperty("转运箱id") + @ExcelIgnore private Long boxId; @ApiModelProperty("箱子编号") @ExcelProperty(value = "箱子编号", index = 5) private String boxNumber; + + @ApiModelProperty("袋数") + @ExcelIgnore + private Integer bagNum; @ApiModelProperty("医废类型(数据字典id)") private Integer wasteType; @@ -55,12 +65,15 @@ private BigDecimal weight; @ApiModelProperty("出库人员id") + @ExcelIgnore private Long checkoutUserId; @ApiModelProperty("出库人员姓名") + @ExcelIgnore private String checkoutUserName; @ApiModelProperty("出库时间") + @ExcelIgnore private Date checkoutTime; @ApiModelProperty("医废状态 1:暂存中 2:运输中 3:已接收 4:已处置") @@ -68,9 +81,11 @@ private Integer status; @ApiModelProperty("封箱时间") + @ExcelIgnore private Date boxTime; @ApiModelProperty("收集人id") + @ExcelIgnore private Long collectUserId; @ApiModelProperty("入库人员") @@ -80,4 +95,5 @@ @ApiModelProperty("入库时间") @ExcelProperty(value = "入库时间", index = 1) private Date collectTime; + } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitCarVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitCarVO.java index 0a641c0..ddf6a1b 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitCarVO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitCarVO.java @@ -49,4 +49,8 @@ @ApiModelProperty("备注") private String remark; + + @ApiModelProperty("层级关系") + private String relation; + } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitCarWarningVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitCarWarningVO.java new file mode 100644 index 0000000..b084d3f --- /dev/null +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitCarWarningVO.java @@ -0,0 +1,34 @@ +package com.sinata.system.domain.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author mitao + * @date 2024/12/31 + */ +@Data +@ApiModel("转运车辆预警视图对象") +public class MwTransitCarWarningVO { + + @ApiModelProperty("车辆id") + private Long id; + + @ApiModelProperty("区域id(处置单位id)") + private Long departmentId; + + @ApiModelProperty("处置单位") + private String departmentName; + + @ApiModelProperty("车牌号") + private String licensePlateNumber; + + @ApiModelProperty("最大载重") + private BigDecimal maximumLoad; + + @ApiModelProperty("当前载重") + private BigDecimal currentLoad; +} diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitRouteVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitRouteVO.java index 15106f2..1ef6576 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitRouteVO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitRouteVO.java @@ -41,5 +41,8 @@ @ApiModelProperty("关联车辆") private List<MwTransitCarVO> carList; + + @ApiModelProperty("层级关系") + private String relation; } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwWarningConfigItemVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwWarningConfigItemVO.java index ebe86bc..ca23180 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwWarningConfigItemVO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwWarningConfigItemVO.java @@ -18,6 +18,9 @@ @ApiModelProperty("医废类型") private Long wasteType; + @ApiModelProperty("医废类型名称") + private String wasteTypeStr; + @ApiModelProperty("预警值") private Integer value; diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwWarningRecordVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwWarningRecordVO.java new file mode 100644 index 0000000..fc352ea --- /dev/null +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwWarningRecordVO.java @@ -0,0 +1,56 @@ +package com.sinata.system.domain.vo; + +import cn.idev.excel.annotation.ExcelProperty; +import com.sinata.system.annotation.FastExcel; +import com.sinata.system.conveter.EConverter; +import com.sinata.system.enums.WarningStatusEnum; +import com.sinata.system.enums.WarningTypeEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @author mitao + * @date 2024/12/30 + */ +@Data +@ApiModel("预警信息视图对象") +public class MwWarningRecordVO { + + @ApiModelProperty("预警记录id") + private Long id; + + @ApiModelProperty("预警时间") + @ExcelProperty(value = "预警时间", index = 1) + private Date warnTime; + + @ApiModelProperty("预警对象id") + private Long warningTargetId; + + @ApiModelProperty("预警对象") + @ExcelProperty(value = "预警对象", index = 2) + private String warningTargetName; + + @ApiModelProperty("预警类型 1:出库超时预警;2:暂存间使用率预警;3:合同到期预警;4:健康记录预警;5:疫苗记录预警;6:防护用品使用预警;7:医疗机构产废日预警;8:医疗机构产废月预警;9:医疗机构存储量预警;10:车辆转运异常预警;11:处置单位存储量预警") + @ExcelProperty(value = "预警类型", index = 3, converter = EConverter.class) + @FastExcel(type = WarningTypeEnum.class) + private Integer type; + + @ApiModelProperty("预警消息") + @ExcelProperty(value = "预警消息", index = 4) + private String message; + + @ApiModelProperty("预警状态 1:未解除;2:已解除") + @ExcelProperty(value = "预警状态", index = 5) + @FastExcel(type = WarningStatusEnum.class) + private Integer status; + + @ApiModelProperty("单位id") + private Long departmentId; + + @ApiModelProperty("单位名称") + private String departmentName; + +} diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/RegulatoryUnitVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/RegulatoryUnitVO.java index 1797707..8810d6e 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/RegulatoryUnitVO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/RegulatoryUnitVO.java @@ -46,4 +46,10 @@ @ApiModelProperty(value = "添加时间") private Date createTime; + + @ApiModelProperty("层级关系") + private String relation; + + @ApiModelProperty("单位地址") + private String address; } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/SysDepartmentVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/SysDepartmentVO.java index ca726d6..f7f0330 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/SysDepartmentVO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/SysDepartmentVO.java @@ -33,6 +33,9 @@ @ApiModelProperty("机构编码") private String orgCode; + @ApiModelProperty("层级关系") + private String relation; + @ApiModelProperty("子节点") private List<SysDepartmentVO> children = new ArrayList<>(); diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/SysRoleVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/SysRoleVO.java index d21c1ad..a50b42b 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/SysRoleVO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/SysRoleVO.java @@ -24,6 +24,9 @@ @ApiModelProperty("可管理角色") private String manageRoleStr; + @ApiModelProperty("可管理角色id") + private String manageRoleIdStr; + @ApiModelProperty("备注") private String remark; diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/SysUserVO.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/SysUserVO.java index f86dbb7..3a46400 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/SysUserVO.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/vo/SysUserVO.java @@ -14,7 +14,7 @@ @ApiModelProperty("用户id") private Long userId; - @ApiModelProperty("用户名") + @ApiModelProperty("姓名") private String nickName; @ApiModelProperty("用户名") @@ -26,12 +26,18 @@ @ApiModelProperty("账号状态 0:正常 1:停用") private String status; - @ApiModelProperty(value = "机构id") + @ApiModelProperty(value = "区域/单位id") private Long departmentId; + + @ApiModelProperty(value = "单位名称") + private String departmentName; @ApiModelProperty(value = "登录密码") private String password; @ApiModelProperty("角色id") private Long roleId; + + @ApiModelProperty("层级关系") + private String relation; } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/enums/WarningConfigTypeEnum.java b/medicalWaste-system/src/main/java/com/sinata/system/enums/WarningConfigTypeEnum.java index c41f06a..00f5899 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/enums/WarningConfigTypeEnum.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/enums/WarningConfigTypeEnum.java @@ -7,7 +7,7 @@ @AllArgsConstructor public enum WarningConfigTypeEnum { MEDICAL_WASTE(1, "医疗废物预警"), - CONTRACT(2, "合同预警"), + CONTRACT_EXPIRE(2, "合同预警"), STAFF(3, "人员预警"), PROTECTION_PERSONNEL(4, "职业防护预警"), STAGING_ROOM_CAPACITY(5, "入库暂存间存储容量预警"); diff --git a/medicalWaste-system/src/main/java/com/sinata/system/enums/WarningStatusEnum.java b/medicalWaste-system/src/main/java/com/sinata/system/enums/WarningStatusEnum.java new file mode 100644 index 0000000..6e49f0f --- /dev/null +++ b/medicalWaste-system/src/main/java/com/sinata/system/enums/WarningStatusEnum.java @@ -0,0 +1,23 @@ +package com.sinata.system.enums; + +import lombok.Getter; +import lombok.AllArgsConstructor; + +@Getter +@AllArgsConstructor +public enum WarningStatusEnum { + UNRESOLVED(1, "未解除"), + RESOLVED(2, "已解除"); + + private final Integer code; + private final String desc; + + public static WarningStatusEnum getEnumByCode(Integer code) { + for (WarningStatusEnum e : WarningStatusEnum.values()) { + if (e.code.equals(code)) { + return e; + } + } + return null; + } +} \ No newline at end of file diff --git a/medicalWaste-system/src/main/java/com/sinata/system/enums/WarningTypeEnum.java b/medicalWaste-system/src/main/java/com/sinata/system/enums/WarningTypeEnum.java new file mode 100644 index 0000000..fac6c87 --- /dev/null +++ b/medicalWaste-system/src/main/java/com/sinata/system/enums/WarningTypeEnum.java @@ -0,0 +1,33 @@ +package com.sinata.system.enums; + +import lombok.Getter; +import lombok.AllArgsConstructor; + +@Getter +@AllArgsConstructor +public enum WarningTypeEnum { + CHECKOUT_TIMEOUT_WARNING(1, "出库超时预警"), + STAGING_ROOM_USE_RATE_WARNING(2, "暂存间使用率预警"), + CONTRACT_EXPIRY_WARNING(3, "合同到期预警"), + HEALTH_RECORD_WARNING(4, "健康记录预警"), + VACCINE_RECORD_WARNING(5, "疫苗记录预警"), + PROTECTION_EQUIPMENT_USE_WARNING(6, "防护用品使用预警"), + PROTECTION_EQUIPMENT_STOCK_WARNING(7, "防护用品库存预警"), + MEDICAL_INSTITUTION_WASTE_DAY_WARNING(8, "医疗机构产废日预警"), + MEDICAL_INSTITUTION_WASTE_MONTH_WARNING(9, "医疗机构产废月预警"), + MEDICAL_INSTITUTION_STORAGE_WARNING(10, "医疗机构存储量预警"), + TRANSIT_CAR_WARNING(11, "车辆转运异常预警"), + DISPOSAL_UNIT_STORAGE_WARNING(12, "处置单位存储量预警"); + + private final Integer code; + private final String desc; + + public static WarningTypeEnum getEnumByCode(Integer code) { + for (WarningTypeEnum e : WarningTypeEnum.values()) { + if (e.code.equals(code)) { + return e; + } + } + return null; + } +} \ No newline at end of file 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 70e5a81..189bac0 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 @@ -12,6 +12,7 @@ import com.sinata.system.domain.vo.MwCheckoutRecordVO; import com.sinata.system.domain.vo.MwCollectRecordVO; import com.sinata.system.domain.vo.MwMedicalWasteBoxVO; +import com.sinata.system.domain.vo.MwTransitCarWarningVO; import com.sinata.system.domain.vo.MwTransitRecordVO; import com.sinata.system.domain.vo.TransformVO; import org.apache.ibatis.annotations.Mapper; @@ -65,7 +66,7 @@ * @param treeCode * @return */ - Page<MwTransitRecordVO> transitPageList(Page<MwTransitRecordVO> page, @Param("query") MwTransitRecordQuery query, String treeCode); + Page<MwTransitRecordVO> transitPageList(Page<MwTransitRecordVO> page, @Param("query") MwTransitRecordQuery query, @Param("treeCode") String treeCode); /** * 运输记录详情 @@ -116,4 +117,11 @@ * @return */ List<MwCollectRecordVO> getRegulationReportList(@Param("query") DisposalReportQuery query, @Param("treeCode") String treeCode); + + /** + * 车辆转运异常预警 + * + * @return + */ + List<MwTransitCarWarningVO> queryWarningList(); } 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 da5109d..fbab335 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,5 +1,6 @@ package com.sinata.system.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.sinata.system.domain.MwCollectRecord; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -10,6 +11,7 @@ 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.domain.vo.MwCollectRecordWarningVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -78,4 +80,18 @@ */ List<MwCollectRecordVO> getRegulationReportList(@Param("query") DisposalReportQuery query, @Param("treeCode") String treeCode); + /** + * 获取时间类型列表 + * + * @param timeType 时间类型 1:日 2:月 + * @return + */ + List<MwCollectRecordWarningVO> queryListTimeType(Integer timeType); + + /** + * 根据医疗机构分组查询医废存储量 + * + * @return + */ + List<MwCollectRecordWarningVO> queryListGroupByDepartment(); } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwContractMapper.java b/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwContractMapper.java index b0d0f7a..467af94 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwContractMapper.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwContractMapper.java @@ -8,6 +8,9 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.Date; +import java.util.List; + /** * <p> * 合同 Mapper 接口 @@ -23,7 +26,16 @@ * * @param page * @param query + * @param treeCode * @return */ - Page<MwContractVO> pageList(Page<MwContractVO> page, @Param("query") MwContractQuery query); + Page<MwContractVO> pageList(Page<MwContractVO> page, @Param("query") MwContractQuery query, @Param("treeCode") String treeCode); + + /** + * 查询未过期合同列表 + * + * @param date + * @return + */ + List<MwContractVO> queryListTerminationDateBeforeNow(Date date); } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwDisposalRecordMapper.java b/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwDisposalRecordMapper.java index ba06a71..6e64d10 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwDisposalRecordMapper.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwDisposalRecordMapper.java @@ -10,6 +10,7 @@ import com.sinata.system.domain.vo.MwDisposalRecordItemVO; import com.sinata.system.domain.vo.MwDisposalRecordReportVO; import com.sinata.system.domain.vo.MwDisposalRecordVO; +import com.sinata.system.domain.vo.MwDisposalRecordWarningVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -71,4 +72,10 @@ */ List<MwCollectRecordVO> getRegulationReportList(@Param("query") DisposalReportQuery query, @Param("treeCode") String treeCode); + /** + * 处置单位存储量预警数据 + * + * @return + */ + List<MwDisposalRecordWarningVO> queryDisposalListByDepartment(); } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwProtectionEquipmentMapper.java b/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwProtectionEquipmentMapper.java index 75d6613..324a673 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwProtectionEquipmentMapper.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwProtectionEquipmentMapper.java @@ -9,6 +9,8 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * <p> * 防护器具 Mapper 接口 @@ -37,4 +39,11 @@ * @return */ Page<MwProtectionEquipmentRecordVO> recordPage(Page<MwProtectionEquipmentRecordVO> page, @Param("id") Long id); + + /** + * 防护器具列表 + * + * @return + */ + List<MwProtectionEquipmentVO> queryList(); } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwProtectionEquipmentRecordMapper.java b/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwProtectionEquipmentRecordMapper.java index 70f0aa1..f5126d8 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwProtectionEquipmentRecordMapper.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwProtectionEquipmentRecordMapper.java @@ -1,8 +1,12 @@ package com.sinata.system.mapper; -import com.sinata.system.domain.MwProtectionEquipmentRecord; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.sinata.system.domain.MwProtectionEquipmentRecord; +import com.sinata.system.domain.vo.MwProtectionEquipmentRecordVO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -14,5 +18,11 @@ */ @Mapper public interface MwProtectionEquipmentRecordMapper extends BaseMapper<MwProtectionEquipmentRecord> { - + /** + * 查询指定器具一个月的使用记录 + * + * @param id + * @return + */ + List<MwProtectionEquipmentRecordVO> findByEquipmentIdAndUsageTimeAfter(@Param("id") Long id); } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwStaffMapper.java b/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwStaffMapper.java index 4894473..d1f33ed 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwStaffMapper.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwStaffMapper.java @@ -8,6 +8,8 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * <p> * 职工 Mapper 接口 @@ -27,4 +29,11 @@ * @return */ Page<MwStaffVO> pageList(Page<MwStaffVO> page, @Param("query") MwStaffQuery query, @Param("treeCode") String treeCode); + + /** + * 职工列表 + * + * @return + */ + List<MwStaffVO> queryList(); } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwStagingRoomMapper.java b/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwStagingRoomMapper.java index 030015e..87e0db0 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwStagingRoomMapper.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwStagingRoomMapper.java @@ -27,11 +27,11 @@ /** * 暂存间分页列表 * - * @param objectPage + * @param mwStagingRoomVOPage * @param treeCode * @return */ - Page<MwStagingRoomVO> pageList(Page<Object> objectPage, @Param("treeCode") String treeCode); + Page<MwStagingRoomVO> pageList(Page<MwStagingRoomVO> mwStagingRoomVOPage, @Param("treeCode") String treeCode); /** * 暂存间入库记录 @@ -68,4 +68,27 @@ * @return */ List<MwCheckoutRecordVO> checkoutRecordList(@Param("query") CheckoutRecordQuery query, @Param("treeCode") String treeCode); + + /** + * 暂存间列表 + * + * @return + */ + List<MwStagingRoomVO> queryStagingRoomList(); + + /** + * 暂存间待处理医废分页列表 + * + * @param query + * @return + */ + Page<MwStorageRecordVO> temporarilyStoredMedicalWaste(StorageRecordQuery query); + + /** + * 根据医废查询使用列表 + * + * @param id + * @return + */ + List<MwStorageRecordVO> queryMedicalWasteList(Long id); } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwWarningRecordMapper.java b/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwWarningRecordMapper.java index 092d227..91f0c2e 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwWarningRecordMapper.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/mapper/MwWarningRecordMapper.java @@ -1,8 +1,14 @@ package com.sinata.system.mapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.sinata.system.domain.MwWarningRecord; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.sinata.system.domain.query.MwWarningRecordQuery; +import com.sinata.system.domain.vo.MwWarningRecordVO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -14,5 +20,23 @@ */ @Mapper public interface MwWarningRecordMapper extends BaseMapper<MwWarningRecord> { + /** + * 预警信息分页列表 + * + * @param page + * @param query + * @param treeCode + * @return + */ + Page<MwWarningRecordVO> pageList(Page<MwWarningRecordVO> page, @Param("query") MwWarningRecordQuery query, @Param("treeCode") String treeCode); + /** + * 预警信息列表 + * + * @param page + * @param query + * @param treeCode + * @return + */ + List<MwWarningRecordVO> queryList(Page<MwWarningRecordVO> page, @Param("query") MwWarningRecordQuery query, @Param("treeCode") String treeCode); } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/mapper/SysMenuMapper.java b/medicalWaste-system/src/main/java/com/sinata/system/mapper/SysMenuMapper.java index 0140290..798aa45 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/mapper/SysMenuMapper.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/mapper/SysMenuMapper.java @@ -127,4 +127,11 @@ List<SysMenu> selectListByRoleId(@Param("roleId") Long roleId); List<SysMenu> getAllInIds(@Param("menusId") List<Long> menusId); + + /** + * 菜单列表 + * + * @return + */ + List<SysMenu> selectList(); } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/mapper/SysUserMapper.java b/medicalWaste-system/src/main/java/com/sinata/system/mapper/SysUserMapper.java index f801cfb..0384d59 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/mapper/SysUserMapper.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/mapper/SysUserMapper.java @@ -133,10 +133,9 @@ * 分页查询用户 * * @param sysUserVOPage - * @param departmentId * @param nickName * @param roleId * @return */ - Page<SysUserVO> pageList(Page<SysUserVO> sysUserVOPage, @Param("departmentId") Long departmentId, @Param("nickName") String nickName, @Param("roleId") Long roleId, @Param("treeCode") String treeCode); + Page<SysUserVO> pageList(Page<SysUserVO> sysUserVOPage, @Param("nickName") String nickName, @Param("roleId") Long roleId, @Param("treeCode") String treeCode); } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/ISysDictDataService.java b/medicalWaste-system/src/main/java/com/sinata/system/service/ISysDictDataService.java index 4236041..e6591f7 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/ISysDictDataService.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/ISysDictDataService.java @@ -2,9 +2,9 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.sinata.common.core.domain.entity.SysDictData; -import com.sinata.common.entity.BasePage; import com.sinata.common.entity.PageDTO; import com.sinata.system.domain.dto.SysDictDataDTO; +import com.sinata.system.domain.query.KeyWordQuery; import com.sinata.system.domain.vo.SysDictDataVO; import java.util.List; @@ -64,7 +64,7 @@ */ public int updateDictData(SysDictData dictData); - PageDTO<SysDictDataVO> pageList(BasePage page); + PageDTO<SysDictDataVO> pageList(KeyWordQuery query); /** * 新增 @@ -101,4 +101,18 @@ * @return */ List<SysDictDataVO> workTypeList(); + + /** + * 医疗机构级别 + * + * @return + */ + List<SysDictDataVO> institutionLevelList(); + + /** + * 医疗机构性质 + * + * @return + */ + List<SysDictDataVO> institutionTypeList(); } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/ISysMenuService.java b/medicalWaste-system/src/main/java/com/sinata/system/service/ISysMenuService.java index a6a504a..5d1f3ee 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/ISysMenuService.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/ISysMenuService.java @@ -148,4 +148,11 @@ * @return */ List<SysMenu> selectListByRoleId(Long roleId); + + /** + * 菜单列表 + * + * @return + */ + List<SysMenu> selectList(); } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/ISysRoleService.java b/medicalWaste-system/src/main/java/com/sinata/system/service/ISysRoleService.java index 58a3bc9..0d0f536 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/ISysRoleService.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/ISysRoleService.java @@ -224,4 +224,11 @@ * @return */ List<SysMenu> roleInfoFromUserId(Long userId); + + /** + * 角色列表 + * + * @return + */ + List<SysRoleVO> queryList(); } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/MwBoxService.java b/medicalWaste-system/src/main/java/com/sinata/system/service/MwBoxService.java index 9160a56..9d2d7a1 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/MwBoxService.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/MwBoxService.java @@ -1,14 +1,12 @@ package com.sinata.system.service; +import com.baomidou.mybatisplus.extension.service.IService; import com.sinata.common.entity.PageDTO; import com.sinata.system.domain.MwBox; -import com.baomidou.mybatisplus.extension.service.IService; import com.sinata.system.domain.dto.MwBoxDTO; import com.sinata.system.domain.query.MwBoxPageQuery; import com.sinata.system.domain.vo.BoxStatisticsVO; import com.sinata.system.domain.vo.MwBoxVO; - -import java.util.List; /** * <p> @@ -49,5 +47,5 @@ * @param dtoList * @return */ - void editBatch(List<MwBoxDTO> dtoList); + void editBatch(MwBoxDTO dtoList); } 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 f4e0e57..cdc6cfe 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 @@ -12,6 +12,7 @@ import com.sinata.system.domain.vo.MwCheckoutRecordVO; import com.sinata.system.domain.vo.MwCollectRecordVO; import com.sinata.system.domain.vo.MwMedicalWasteBoxVO; +import com.sinata.system.domain.vo.MwTransitCarWarningVO; import com.sinata.system.domain.vo.MwTransitRecordVO; import com.sinata.system.domain.vo.TransformVO; @@ -109,4 +110,11 @@ List<CollectTotalUpDto> totalUp5(Long departmentId); List<CollectTotalUpDto> totalUp3(LocalDate date1,LocalDate date2, Long departmentId); List<CollectTotalUpDto> totalUp1(Long outId); + + /** + * 车辆转运异常预警 + * + * @return + */ + List<MwTransitCarWarningVO> queryWarningList(); } 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 86e0c99..92026af 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 @@ -11,6 +11,7 @@ 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.domain.vo.MwCollectRecordWarningVO; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @@ -83,4 +84,23 @@ * @return */ List<MwCollectRecordVO> getRegulationReportList(DisposalReportQuery query); + + /** + * 查询昨日产废记录 + * + * @return + */ + List<MwCollectRecordWarningVO> queryListByDay(); + + /** + * 查询上月产废记录 + * + * @return + */ + List<MwCollectRecordWarningVO> queryListByMonth(); + + /** + * @return + */ + List<MwCollectRecordWarningVO> queryListGroupByDepartment(); } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/MwContractService.java b/medicalWaste-system/src/main/java/com/sinata/system/service/MwContractService.java index 485540b..be273ba 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/MwContractService.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/MwContractService.java @@ -7,6 +7,9 @@ import com.sinata.system.domain.query.MwContractQuery; import com.sinata.system.domain.vo.MwContractVO; +import java.util.Date; +import java.util.List; + /** * <p> * 合同 服务类 @@ -55,4 +58,12 @@ * @return */ void delete(Long id); + + /** + * 查询待过期合同列表 + * + * @param date + * @return + */ + List<MwContractVO> queryListTerminationDateBeforeNow(Date date); } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/MwDisposalRecordService.java b/medicalWaste-system/src/main/java/com/sinata/system/service/MwDisposalRecordService.java index fc98875..9d8806c 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/MwDisposalRecordService.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/MwDisposalRecordService.java @@ -11,6 +11,7 @@ import com.sinata.system.domain.vo.MwDisposalRecordItemVO; import com.sinata.system.domain.vo.MwDisposalRecordReportVO; import com.sinata.system.domain.vo.MwDisposalRecordVO; +import com.sinata.system.domain.vo.MwDisposalRecordWarningVO; import java.util.List; @@ -62,4 +63,11 @@ * @return */ List<MwCollectRecordVO> getRegulationReportList(DisposalReportQuery query); + + /** + * 处置单位存储量预警 + * + * @return + */ + List<MwDisposalRecordWarningVO> queryDisposalListByDepartment(); } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/MwMicroEquipmentRecordService.java b/medicalWaste-system/src/main/java/com/sinata/system/service/MwMicroEquipmentRecordService.java index 2a6aa4e..801c623 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/MwMicroEquipmentRecordService.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/MwMicroEquipmentRecordService.java @@ -6,6 +6,7 @@ import com.sinata.system.domain.dto.MwMicroEquipmentRecordDTO; import com.sinata.system.domain.query.MwMicroEquipmentRecordQuery; import com.sinata.system.domain.query.MwMicroEquipmentStaticsQuery; +import com.sinata.system.domain.vo.DepartmentReportVO; import com.sinata.system.domain.vo.MwMicroEquipmentRecordVO; import com.sinata.system.domain.vo.MwMicroEquipmentStaticsTitleVO; @@ -29,6 +30,14 @@ * @return */ PageDTO<MwMicroEquipmentRecordVO> pageList(MwMicroEquipmentRecordQuery query); + + /** + * 设备使用详情 + * + * @param id + * @return + */ + MwMicroEquipmentRecordVO detail(Long id); /** * 导出设备使用记录 @@ -60,7 +69,7 @@ * @param query * @return */ - List<List<String>> getStaticsData(MwMicroEquipmentStaticsQuery query); + DepartmentReportVO getStaticsData(MwMicroEquipmentStaticsQuery query); /** * 处置分析导出 @@ -69,4 +78,5 @@ * @param response */ void staticsExport(MwMicroEquipmentStaticsQuery query, HttpServletResponse response) throws IOException; + } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/MwProtectionEquipmentRecordService.java b/medicalWaste-system/src/main/java/com/sinata/system/service/MwProtectionEquipmentRecordService.java index 32cf377..ad932cb 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/MwProtectionEquipmentRecordService.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/MwProtectionEquipmentRecordService.java @@ -2,6 +2,9 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.sinata.system.domain.MwProtectionEquipmentRecord; +import com.sinata.system.domain.vo.MwProtectionEquipmentRecordVO; + +import java.util.List; /** * <p> @@ -12,5 +15,11 @@ * @since 2024-12-02 */ public interface MwProtectionEquipmentRecordService extends IService<MwProtectionEquipmentRecord> { - + /** + * 查询指定器具一个月的使用记录 + * + * @param id + * @return + */ + List<MwProtectionEquipmentRecordVO> findByEquipmentIdAndUsageTimeAfter(Long id); } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/MwProtectionEquipmentService.java b/medicalWaste-system/src/main/java/com/sinata/system/service/MwProtectionEquipmentService.java index f86b1c0..7062801 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/MwProtectionEquipmentService.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/MwProtectionEquipmentService.java @@ -10,6 +10,8 @@ import com.sinata.system.domain.vo.MwProtectionEquipmentRecordVO; import com.sinata.system.domain.vo.MwProtectionEquipmentVO; +import java.util.List; + /** * <p> * 防护器具 服务类 @@ -73,4 +75,11 @@ * @return */ void delete(Long id); + + /** + * 防护器具列表 + * + * @return + */ + List<MwProtectionEquipmentVO> queryList(); } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/MwStaffService.java b/medicalWaste-system/src/main/java/com/sinata/system/service/MwStaffService.java index 1f71a3a..f0082ee 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/MwStaffService.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/MwStaffService.java @@ -7,6 +7,8 @@ import com.sinata.system.domain.query.MwStaffQuery; import com.sinata.system.domain.vo.MwStaffVO; +import java.util.List; + /** * <p> * 职工 服务类 @@ -48,4 +50,11 @@ * @return */ void edit(MwStaffDTO dto); + + /** + * 职工列表 + * + * @return + */ + List<MwStaffVO> queryList(); } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/MwStagingRoomService.java b/medicalWaste-system/src/main/java/com/sinata/system/service/MwStagingRoomService.java index c322144..ccba7b4 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/MwStagingRoomService.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/MwStagingRoomService.java @@ -13,6 +13,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.List; /** * <p> @@ -86,4 +87,27 @@ * @param response */ void checkoutRecordExport(CheckoutRecordQuery query, HttpServletResponse response) throws IOException; + + /** + * 暂存间列表 + * + * @return + */ + List<MwStagingRoomVO> queryStagingRoomList(); + + /** + * 暂存间待处理医废分页列表 + * + * @param query + * @return + */ + PageDTO<MwStorageRecordVO> temporarilyStoredMedicalWaste(StorageRecordQuery query); + + /** + * 根据设备id查询医废列表 + * + * @param id + * @return + */ + List<MwStorageRecordVO> queryMedicalWasteList(Long id); } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/MwWarningRecordService.java b/medicalWaste-system/src/main/java/com/sinata/system/service/MwWarningRecordService.java index 69b212c..ea6f81e 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/MwWarningRecordService.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/MwWarningRecordService.java @@ -1,7 +1,12 @@ package com.sinata.system.service; -import com.sinata.system.domain.MwWarningRecord; import com.baomidou.mybatisplus.extension.service.IService; +import com.sinata.common.entity.PageDTO; +import com.sinata.system.domain.MwWarningRecord; +import com.sinata.system.domain.query.MwWarningRecordQuery; +import com.sinata.system.domain.vo.MwWarningRecordVO; + +import java.io.IOException; /** * <p> @@ -12,5 +17,27 @@ * @since 2024-12-02 */ public interface MwWarningRecordService extends IService<MwWarningRecord> { + /** + * 分页查询预警记录 + * + * @param query + * @return + */ + PageDTO<MwWarningRecordVO> pageList(MwWarningRecordQuery query); + + /** + * 解除 + * + * @param id + */ + void relieve(Long id); + + /** + * 导出 + * + * @param query + * @throws IOException + */ + void export(MwWarningRecordQuery query) throws IOException; } 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 2fa4733..368c4fc 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 @@ -42,6 +42,7 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -82,6 +83,10 @@ */ public DepartmentReportVO hospitalReport(HospitalReportQuery query) { DepartmentReportVO vo = new DepartmentReportVO(); + SysDepartment department = sysDepartmentService.getById(query.getDepartmentId()); + if (Objects.nonNull(department)) { + vo.setDepartmentName(department.getDepartmentName()); + } List<SysDictDataVO> wasteTypeList = sysDictDataService.medicalWasteTypeList(); if (CollUtils.isEmpty(wasteTypeList)) { @@ -135,13 +140,17 @@ totalCount = totalCount.add(currentCount); totalWeight = totalWeight.add(weight); } + itemVO.getData().add(totalCount); + itemVO.getData().add(totalWeight); //查询预警记录判断是否超时 if (query.getDateType().equals(1)) { itemVO.setOverTimeFlag("否"); List<Long> collectIdList = collectRecordList.stream().filter(e -> finalSdf.format(e.getCollectTime()).equals(date)).map(MwCollectRecord::getId).collect(Collectors.toList()); - List<MwWarningRecord> warningRecordList = mwWarningRecordService.lambdaQuery().in(MwWarningRecord::getWarningTargetId, collectIdList).list(); - if (CollUtils.isNotEmpty(warningRecordList)) { - itemVO.setOverTimeFlag("是"); + if (CollUtils.isNotEmpty(collectIdList)) { + List<MwWarningRecord> warningRecordList = mwWarningRecordService.lambdaQuery().in(MwWarningRecord::getWarningTargetId, collectIdList).list(); + if (CollUtils.isNotEmpty(warningRecordList)) { + itemVO.setOverTimeFlag("是"); + } } } list.add(itemVO); @@ -224,6 +233,9 @@ public DepartmentReportVO transformList(TransformQuery query) { DepartmentReportVO vo = new DepartmentReportVO(); SysDepartment department = sysDepartmentService.getById(query.getDepartmentId()); + if (Objects.nonNull(department)) { + vo.setDepartmentName(department.getDepartmentName()); + } SysDepartment region = sysDepartmentService.getDepartmentByParentId(department.getParentId()); List<SysDepartment> hospitalList = sysDepartmentService.lambdaQuery().likeRight(SysDepartment::getTreeCode, region.getTreeCode()).eq(SysDepartment::getOrgType, DepartmentEnum.MEDICAL_INSTITUTION.getCode()).list(); if (CollUtils.isNotEmpty(hospitalList)) { @@ -334,6 +346,10 @@ */ public DepartmentReportVO disposalReport(DisposalReportQuery query) { DepartmentReportVO vo = new DepartmentReportVO(); + SysDepartment department = sysDepartmentService.getById(query.getDepartmentId()); + if (Objects.nonNull(department)) { + vo.setDepartmentName(department.getDepartmentName()); + } //已接收 List<MwDisposalRecordReportVO> receivedList = mwDisposalRecordService.disposalReceiveReport(query); //已处置 @@ -462,6 +478,10 @@ */ public DepartmentReportVO regulationReport(DisposalReportQuery query) { DepartmentReportVO vo = new DepartmentReportVO(); + SysDepartment department = sysDepartmentService.getById(query.getDepartmentId()); + if (Objects.nonNull(department)) { + vo.setDepartmentName(department.getDepartmentName()); + } //医废产生量 List<MwCollectRecordVO> collectRecordList = mwCollectRecordService.getRegulationReportList(query); //医废转移量 @@ -490,6 +510,7 @@ for (String date : dateList) { DepartmentReportItemVO departmentReportItemVO = new DepartmentReportItemVO(); departmentReportItemVO.setName(date); + departmentReportItemVO.setData(new ArrayList<>()); SimpleDateFormat finalSdf = sdf; for (SysDictData sysDictData : wasteTypeList) { BigDecimal weight = collectRecordList.stream().filter(e -> e.getWasteType().equals(sysDictData.getDictCode()) && diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/biz/TaskService.java b/medicalWaste-system/src/main/java/com/sinata/system/service/biz/TaskService.java new file mode 100644 index 0000000..63bc257 --- /dev/null +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/biz/TaskService.java @@ -0,0 +1,387 @@ +package com.sinata.system.service.biz; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.sinata.common.utils.CollUtils; +import com.sinata.common.utils.DateUtils; +import com.sinata.common.utils.StringUtils; +import com.sinata.system.domain.MwCollectRecord; +import com.sinata.system.domain.MwWarningConfig; +import com.sinata.system.domain.MwWarningConfigItem; +import com.sinata.system.domain.MwWarningRecord; +import com.sinata.system.domain.vo.MwCollectRecordWarningVO; +import com.sinata.system.domain.vo.MwContractVO; +import com.sinata.system.domain.vo.MwDisposalRecordWarningVO; +import com.sinata.system.domain.vo.MwProtectionEquipmentRecordVO; +import com.sinata.system.domain.vo.MwProtectionEquipmentVO; +import com.sinata.system.domain.vo.MwStaffVO; +import com.sinata.system.domain.vo.MwStagingRoomVO; +import com.sinata.system.domain.vo.MwTransitCarWarningVO; +import com.sinata.system.enums.MedicalWasteStatusEnum; +import com.sinata.system.enums.WarningConfigTypeEnum; +import com.sinata.system.enums.WarningStatusEnum; +import com.sinata.system.enums.WarningTypeEnum; +import com.sinata.system.service.MwCheckoutRecordService; +import com.sinata.system.service.MwCollectRecordService; +import com.sinata.system.service.MwContractService; +import com.sinata.system.service.MwDisposalRecordService; +import com.sinata.system.service.MwProtectionEquipmentRecordService; +import com.sinata.system.service.MwProtectionEquipmentService; +import com.sinata.system.service.MwStaffService; +import com.sinata.system.service.MwStagingRoomService; +import com.sinata.system.service.MwWarningConfigItemService; +import com.sinata.system.service.MwWarningConfigService; +import com.sinata.system.service.MwWarningRecordService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.jetbrains.annotations.NotNull; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * @author mitao + * @date 2024/12/31 + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class TaskService { + private final MwWarningConfigService mwWarningConfigService; + private final MwWarningConfigItemService mwWarningConfigItemService; + private final MwCollectRecordService mwCollectRecordService; + private final MwWarningRecordService mwWarningRecordService; + private final MwStagingRoomService mwStagingRoomService; + private final MwContractService mwContractService; + private final MwStaffService mwStaffService; + private final MwProtectionEquipmentService mwProtectionEquipmentService; + private final MwProtectionEquipmentRecordService mwProtectionEquipmentRecordService; + private final MwCheckoutRecordService mwCheckoutRecordService; + private final MwDisposalRecordService mwDisposalRecordService; + + /** + * 出库超时预警 + */ + public void checkoutOverTime() { + // 获取配置 + MwWarningConfig config = mwWarningConfigService.getOne( + Wrappers.lambdaQuery(MwWarningConfig.class) + .eq(MwWarningConfig::getType, WarningConfigTypeEnum.MEDICAL_WASTE.getCode()) + .last("LIMIT 1") + ); + + if (Objects.isNull(config)) { + log.info("【出库超时预警】:未找到【医疗废弃物】的预警配置,跳过定时任务执行"); + return; + } + // 获取配置项 + List<MwWarningConfigItem> configItems = mwWarningConfigItemService.lambdaQuery() + .eq(MwWarningConfigItem::getConfigId, config.getId()) + .list(); + + if (CollUtils.isEmpty(configItems)) { + log.info("【出库超时预警】:未找到相关配置项,跳过定时任务执行"); + return; + } + + // 查询暂存间医废记录 + List<MwCollectRecord> collectRecordList = mwCollectRecordService.lambdaQuery() + .eq(MwCollectRecord::getStatus, MedicalWasteStatusEnum.TEMPORARILY_STORED.getCode()) + .list(); + + if (CollUtils.isEmpty(collectRecordList)) { + log.info("【出库超时预警】:没有暂存的医废记录,跳过定时任务执行"); + return; + } + + // 遍历配置项并处理预警 + for (MwWarningConfigItem configItem : configItems) { + // 过滤出需要预警的记录 + List<MwCollectRecord> recordList = collectRecordList.stream() + .filter(item -> item.getWasteType().equals(configItem.getWasteType()) && + DateUtils.timeDistanceHour(new Date(), item.getCollectTime()) > configItem.getValue()) + .collect(Collectors.toList()); + + if (CollUtils.isEmpty(recordList)) { + continue; // 如果没有需要预警的记录,则跳过 + } + + // 创建预警记录并保存 + List<MwWarningRecord> warningRecordList = recordList.stream().map(item -> { + Long id = item.getId(); + String medicalWasteNumber = item.getMedicalWasteNumber(); + String hospitalName = item.getHospitalName(); + String msg = String.format("%s医废超过%d小时未出库", item.getWasteTypeStr(), configItem.getValue()); + String currentValue = String.valueOf(DateUtils.timeDistanceHour(new Date(), item.getCollectTime())); + Long departmentId = item.getDepartmentId(); + String configValue = configItem.getValue().toString(); + return getMwWarningRecord(WarningTypeEnum.CHECKOUT_TIMEOUT_WARNING.getCode(), id, medicalWasteNumber, hospitalName, msg, departmentId, currentValue, configValue); + }).collect(Collectors.toList()); + + // 批量保存预警记录 + if (!warningRecordList.isEmpty()) { + mwWarningRecordService.saveBatch(warningRecordList); + } + } + } + + /** + * 封装预警记录 + * + * @param id + * @param warningTargetName + * @param departmentName + * @param message + * @param departmentId + * @param currentValue + * @param normalRange + * @return + */ + @NotNull + private static MwWarningRecord getMwWarningRecord(Integer type, Long id, String warningTargetName, String departmentName, String message, Long departmentId, String currentValue, String normalRange) { + MwWarningRecord warningRecord = new MwWarningRecord(); + warningRecord.setType(type); + warningRecord.setWarningTargetId(id); + warningRecord.setWarningTargetName(warningTargetName); + warningRecord.setDepartmentName(departmentName); + warningRecord.setMessage(message); + warningRecord.setDepartmentId(departmentId); + warningRecord.setCurrentValue(currentValue); + warningRecord.setNormalRange(normalRange); + warningRecord.setStatus(WarningStatusEnum.UNRESOLVED.getCode()); + warningRecord.setWarnTime(new Date()); + return warningRecord; + } + + /** + * 暂存间使用率预警 + */ + public void stagingRoomStorage() { + //查询预警配置 + MwWarningConfig config = mwWarningConfigService.getOne( + Wrappers.lambdaQuery(MwWarningConfig.class) + .eq(MwWarningConfig::getType, WarningConfigTypeEnum.STAGING_ROOM_CAPACITY.getCode()) + .last("LIMIT 1") + ); + if (Objects.isNull(config)) { + log.info("【暂存间使用率预警】:未找到【暂存间使用率预警】的预警配置,跳过定时任务执行"); + return; + } + // 获取配置项 + List<MwWarningConfigItem> configItems = mwWarningConfigItemService.lambdaQuery() + .eq(MwWarningConfigItem::getConfigId, config.getId()).orderByDesc(MwWarningConfigItem::getValue) + .list(); + if (CollUtils.isEmpty(configItems)) { + log.info("【暂存间使用率预警】:未找到相关配置项,跳过定时任务执行"); + return; + } + List<MwStagingRoomVO> stagingRoomList = mwStagingRoomService.queryStagingRoomList(); + if (CollUtils.isEmpty(stagingRoomList)) { + log.info("【暂存间使用率预警】:暂存间列表为空,跳过定时任务执行"); + return; + } + List<MwWarningRecord> warningRecordList = new ArrayList<>(); + for (MwWarningConfigItem configItem : configItems) { + Integer configValue = configItem.getValue(); + warningRecordList.addAll(stagingRoomList.stream().filter(room -> room.getUseRate().compareTo(BigDecimal.valueOf(configValue)) >= 0).map(room -> { + Long id = room.getId(); + String roomName = room.getRoomName(); + String hospitalName = room.getHospitalName(); + String promptContent = configItem.getPromptContent(); + String msg = String.format("%s%s%s", room.getRoomName(), promptContent, configValue + "%"); + Long departmentId = room.getDepartmentId(); + String useRate = room.getUseRate().toString(); + return getMwWarningRecord(WarningTypeEnum.STAGING_ROOM_USE_RATE_WARNING.getCode(), id, roomName, hospitalName, msg, departmentId, useRate, configValue.toString()); + }).collect(Collectors.toList())); + } + //保存预警记录 + mwWarningRecordService.saveBatch(warningRecordList); + } + + /** + * 合同到期预警 + */ + public void contractExpire() { + //查询合同预警配置 + MwWarningConfig config = mwWarningConfigService.getOne( + Wrappers.lambdaQuery(MwWarningConfig.class) + .eq(MwWarningConfig::getType, WarningConfigTypeEnum.CONTRACT_EXPIRE.getCode()) + .last("LIMIT 1") + ); + if (Objects.isNull(config)) { + log.info("【合同到期预警】:未找到【合同到期预警】的预警配置,跳过定时任务执行"); + return; + } + int advanceDays = Integer.parseInt(config.getValue()); + List<MwContractVO> list = mwContractService.queryListTerminationDateBeforeNow(new Date()); + List<MwWarningRecord> warningRecordList = list.stream().filter(contract -> { + long distanceDay = DateUtils.timeDistanceDay(contract.getTerminationDate(), new Date()); + return distanceDay <= advanceDays; + }).map(contract -> { + String msg = String.format("合同【%s】即将到期", contract.getContractName()); + return getMwWarningRecord(WarningTypeEnum.CONTRACT_EXPIRY_WARNING.getCode(), contract.getId(), contract.getContractName(), + contract.getDepartmentName(), msg, contract.getDepartmentId(), + String.valueOf(DateUtils.timeDistanceDay(contract.getTerminationDate(), new Date())), config.getValue()); + }).collect(Collectors.toList()); + //保存预警记录 + mwWarningRecordService.saveBatch(warningRecordList); + } + + /** + * 健康记录预警、人员记录预警 + */ + public void healthRecord() { + //查询人员预警配置 + MwWarningConfig config = mwWarningConfigService.getOne( + Wrappers.lambdaQuery(MwWarningConfig.class) + .eq(MwWarningConfig::getType, WarningConfigTypeEnum.STAFF.getCode()) + .last("LIMIT 1")); + if (Objects.isNull(config)) { + log.info("【健康记录预警】【人员记录预警】:未找到人员预警配置,跳过定时任务执行"); + return; + } + List<MwStaffVO> list = mwStaffService.queryList(); + List<MwWarningRecord> warningRecordList = new ArrayList<>(); + if (config.getHealthFlag().equals(1)) { + warningRecordList.addAll(list.stream().filter(staff -> StringUtils.isBlank(staff.getHealthCertificate())).map(staff -> { + String msg = String.format("职工【%s】健康记录未上传", staff.getStaffName()); + return getMwWarningRecord(WarningTypeEnum.HEALTH_RECORD_WARNING.getCode(), staff.getId(), staff.getStaffName(), staff.getDepartmentName(), msg, staff.getDepartmentId(), "否", "是"); + }).collect(Collectors.toList())); + } + if (config.getVaccineFlag().equals(1)) { + warningRecordList.addAll(list.stream().filter(staff -> StringUtils.isBlank(staff.getVaccineCertificate())).map(staff -> { + String msg = String.format("职工【%s】疫苗记录未上传", staff.getStaffName()); + return getMwWarningRecord(WarningTypeEnum.VACCINE_RECORD_WARNING.getCode(), staff.getId(), staff.getStaffName(), staff.getDepartmentName(), msg, staff.getDepartmentId(), "否", "是"); + }).collect(Collectors.toList())); + } + //保存记录 + mwWarningRecordService.saveBatch(warningRecordList); + } + + /** + * 防护用品使用预警 防护用品库存预警 + */ + public void protectionEquipmentUse() { + //查询职业防护预警配置 + MwWarningConfig config = mwWarningConfigService.getOne( + Wrappers.lambdaQuery(MwWarningConfig.class) + .eq(MwWarningConfig::getType, WarningConfigTypeEnum.PROTECTION_PERSONNEL.getCode()) + .last("LIMIT 1")); + if (Objects.isNull(config)) { + log.info("【防护用品使用预警】【防护用品库存预警】:未找到职业防护预警配置,跳过定时任务执行"); + return; + } + List<MwWarningRecord> warningRecordList = new ArrayList<>(); + //查询防护设备列表 + List<MwProtectionEquipmentVO> protectionEquipmentVOList = mwProtectionEquipmentService.queryList(); + //防护器具使用预警 + if (config.getProtectionFlag().equals(1)) { + warningRecordList.addAll(protectionEquipmentVOList.stream().map(item -> { + List<MwProtectionEquipmentRecordVO> recordVOList = mwProtectionEquipmentRecordService.findByEquipmentIdAndUsageTimeAfter(item.getId()); + if (CollUtils.isEmpty(recordVOList)) { + String msg = String.format("【%s】30天没有产生使用记录", item.getEquipmentName()); + return getMwWarningRecord(WarningTypeEnum.PROTECTION_EQUIPMENT_USE_WARNING.getCode(), item.getId(), + item.getEquipmentName(), item.getDepartmentName(), msg, item.getDepartmentId(), "一个月内无使用记录", "一个月内有使用记录"); + } + return null; + }).filter(Objects::nonNull).collect(Collectors.toList())); + } + //防护器具库存预警 + warningRecordList.addAll(protectionEquipmentVOList.stream().filter(item -> item.getStock() <= Integer.parseInt(config.getValue())).map(item -> { + String msg = String.format("%s库存量低于%s", item.getEquipmentName(), config.getValue()); + return getMwWarningRecord(WarningTypeEnum.PROTECTION_EQUIPMENT_STOCK_WARNING.getCode(), item.getId(), + item.getEquipmentName(), item.getDepartmentName(), msg, item.getDepartmentId(), String.valueOf(item.getStock()), config.getValue()); + }).collect(Collectors.toList())); + //保存记录 + mwWarningRecordService.saveBatch(warningRecordList); + } + + /** + * 医疗机构产废日预警 + */ + public void medicalInstitutionWasteDay() { + //查询医废收集记录 + List<MwCollectRecordWarningVO> collectRecordVOList = mwCollectRecordService.queryListByDay(); + if (CollUtils.isNotEmpty(collectRecordVOList)) { + List<MwWarningRecord> warningRecordList = collectRecordVOList.stream().filter(item -> item.getTotalWeight().compareTo(item.getDailyMaxWasteQuantity()) > 0).map(item -> { + String msg = String.format("日产废量超过%f", item.getDailyMaxWasteQuantity()); + return getMwWarningRecord(WarningTypeEnum.MEDICAL_INSTITUTION_WASTE_DAY_WARNING.getCode(), item.getDepartmentId(), + item.getHospitalName(), item.getHospitalName(), msg, item.getDepartmentId(), item.getTotalWeight().toString(), item.getDailyMinWasteQuantity() + "-" + item.getDailyMaxWasteQuantity()); + }).collect(Collectors.toList()); + //保存预警记录 + mwWarningRecordService.saveBatch(warningRecordList); + } + } + + /** + * 医疗机构产废月预警 + */ + public void medicalInstitutionWasteMonth() { + List<MwCollectRecordWarningVO> collectRecordVOList = mwCollectRecordService.queryListByMonth(); + if (CollUtils.isNotEmpty(collectRecordVOList)) { + List<MwWarningRecord> warningRecordList = collectRecordVOList.stream().filter(item -> item.getTotalWeight().compareTo(item.getDailyMaxWasteQuantity()) > 0).map(item -> { + String msg = String.format("日产废量超过%f", item.getDailyMaxWasteQuantity()); + return getMwWarningRecord(WarningTypeEnum.MEDICAL_INSTITUTION_WASTE_MONTH_WARNING.getCode(), item.getDepartmentId(), + item.getHospitalName(), item.getHospitalName(), msg, item.getDepartmentId(), item.getTotalWeight().toString(), item.getMonthlyMinWasteQuantity() + "-" + item.getMonthlyMaxWasteQuantity()); + }).collect(Collectors.toList()); + //保存预警记录 + mwWarningRecordService.saveBatch(warningRecordList); + } + } + + /** + * 医疗机构存储量预警 + */ + public void medicalInstitutionStorage() { + List<MwCollectRecordWarningVO> collectRecordVOList = mwCollectRecordService.queryListGroupByDepartment(); + if (CollUtils.isNotEmpty(collectRecordVOList)) { + List<MwWarningRecord> warningRecordList = collectRecordVOList.stream().map(item -> { + if (item.getTotalWeight().compareTo(item.getMaximumStorageCapacity()) > 0) { + String msg = "医疗废物存储量超过最大值"; + return getMwWarningRecord(WarningTypeEnum.MEDICAL_INSTITUTION_STORAGE_WARNING.getCode(), item.getDepartmentId(), + item.getHospitalName(), item.getHospitalName(), msg, item.getDepartmentId(), item.getTotalWeight().toString(), item.getMaximumStorageCapacity().toString()); + } + return null; + }).filter(Objects::nonNull).collect(Collectors.toList()); + //保存预警记录 + mwWarningRecordService.saveBatch(warningRecordList); + } + } + + /** + * 车辆转运异常预警 + */ + public void transitCar() { + List<MwTransitCarWarningVO> transitCarWarningVOList = mwCheckoutRecordService.queryWarningList(); + if (CollUtils.isNotEmpty(transitCarWarningVOList)) { + List<MwWarningRecord> warningRecordList = transitCarWarningVOList.stream() + .filter(item -> item.getCurrentLoad().compareTo(item.getMaximumLoad()) > 0).map(item -> { + String msg = String.format("%s转运的医废超过最大载重", item.getLicensePlateNumber()); + return getMwWarningRecord(WarningTypeEnum.TRANSIT_CAR_WARNING.getCode(), item.getId(), item.getLicensePlateNumber(), + item.getDepartmentName(), msg, item.getDepartmentId(), item.getCurrentLoad().toString(), item.getMaximumLoad().toString()); + }).collect(Collectors.toList()); + //保存预警记录 + mwWarningRecordService.saveBatch(warningRecordList); + } + } + + /** + * 处置单位存储量预警 + */ + public void disposalUnitStorage() { + List<MwDisposalRecordWarningVO> disposalRecordWarningVOList = mwDisposalRecordService.queryDisposalListByDepartment(); + if (CollUtils.isNotEmpty(disposalRecordWarningVOList)) { + List<MwWarningRecord> warningRecordList = disposalRecordWarningVOList.stream().filter(item -> item.getCurrentStorage().compareTo(item.getMaximumStorageCapacity()) > 0).map(item -> { + String msg = "医疗废物存储量超过最大值"; + return getMwWarningRecord(WarningTypeEnum.DISPOSAL_UNIT_STORAGE_WARNING.getCode(), item.getDepartmentId(), item.getDisposalUnitName(), + item.getDisposalUnitName(), msg, item.getDepartmentId(), item.getCurrentStorage().toString(), item.getMaximumStorageCapacity().toString()); + }).collect(Collectors.toList()); + //保存预警记录 + mwWarningRecordService.saveBatch(warningRecordList); + } + } +} diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwBoxServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwBoxServiceImpl.java index 00cbe2c..faa6752 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwBoxServiceImpl.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwBoxServiceImpl.java @@ -3,10 +3,7 @@ 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.enums.BoxProcessEnum; -import com.sinata.system.enums.BoxStatusEnum; import com.sinata.common.exception.ServiceException; -import com.sinata.common.utils.BeanUtils; import com.sinata.common.utils.CollUtils; import com.sinata.common.utils.StringUtils; import com.sinata.system.domain.MwBox; @@ -14,6 +11,8 @@ import com.sinata.system.domain.query.MwBoxPageQuery; import com.sinata.system.domain.vo.BoxStatisticsVO; import com.sinata.system.domain.vo.MwBoxVO; +import com.sinata.system.enums.BoxProcessEnum; +import com.sinata.system.enums.BoxStatusEnum; import com.sinata.system.mapper.MwBoxMapper; import com.sinata.system.service.MwBoxService; import org.springframework.dao.DuplicateKeyException; @@ -24,6 +23,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * <p> @@ -118,8 +118,14 @@ */ @Override @Transactional(rollbackFor = Exception.class) - public void editBatch(List<MwBoxDTO> dtoList) { - List<MwBox> mwBoxes = BeanUtils.copyToList(dtoList, MwBox.class); - this.updateBatchById(mwBoxes); + public void editBatch(MwBoxDTO dto) { + List<Long> idList = dto.getIdList(); + List<MwBox> boxList = idList.stream().map(id -> { + MwBox mwBox = new MwBox(); + mwBox.setStatus(dto.getStatus()); + mwBox.setRemark(dto.getRemark()); + return mwBox; + }).collect(Collectors.toList()); + this.updateBatchById(boxList); } } 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 2f61d37..58e3dac 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 @@ -17,6 +17,7 @@ import com.sinata.system.domain.vo.MwCheckoutRecordVO; import com.sinata.system.domain.vo.MwCollectRecordVO; import com.sinata.system.domain.vo.MwMedicalWasteBoxVO; +import com.sinata.system.domain.vo.MwTransitCarWarningVO; import com.sinata.system.domain.vo.MwTransitRecordVO; import com.sinata.system.domain.vo.TransformVO; import com.sinata.system.mapper.MwCheckoutRecordMapper; @@ -194,4 +195,14 @@ String treeCode = sysDepartmentService.getTreeCodeByDepartmentId(query.getDepartmentId()); return baseMapper.getRegulationReportList(query, treeCode); } + + /** + * 车辆转运异常预警 + * + * @return + */ + @Override + public List<MwTransitCarWarningVO> queryWarningList() { + return baseMapper.queryWarningList(); + } } 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 be6be7d..00ddb23 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 @@ -14,6 +14,7 @@ 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.domain.vo.MwCollectRecordWarningVO; import com.sinata.system.mapper.MwCollectRecordMapper; import com.sinata.system.service.MwCollectRecordService; import com.sinata.system.service.SysDepartmentService; @@ -152,4 +153,29 @@ public List<CollectCarTotalUpDto> carGroup(Long carId) { return this.baseMapper.carGroup(carId); } + + /** + * 查询日产废记录 + * + * @return + */ + @Override + public List<MwCollectRecordWarningVO> queryListByDay() { + return baseMapper.queryListTimeType(1); + } + + /** + * 查询月产废记录 + * + * @return + */ + @Override + public List<MwCollectRecordWarningVO> queryListByMonth() { + return baseMapper.queryListTimeType(2); + } + + @Override + public List<MwCollectRecordWarningVO> queryListGroupByDepartment() { + return baseMapper.queryListGroupByDepartment(); + } } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwContractServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwContractServiceImpl.java index 65e21a8..ea835fe 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwContractServiceImpl.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwContractServiceImpl.java @@ -6,9 +6,9 @@ import com.sinata.common.exception.ServiceException; import com.sinata.common.utils.BeanUtils; import com.sinata.common.utils.CollUtils; +import com.sinata.common.utils.StringUtils; import com.sinata.system.domain.MwAttachment; import com.sinata.system.domain.MwContract; -import com.sinata.system.domain.SysDepartment; import com.sinata.system.domain.dto.MwContractDTO; import com.sinata.system.domain.query.MwContractQuery; import com.sinata.system.domain.vo.MwAttachmentVO; @@ -22,6 +22,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Date; import java.util.List; import java.util.Objects; @@ -47,14 +48,11 @@ */ @Override public PageDTO<MwContractVO> pageList(MwContractQuery query) { - if (Objects.isNull(query.getDepartmentId())) { - SysDepartment myDepartment = sysDepartmentService.getMyDepartment(); - if (Objects.isNull(myDepartment)) { - return PageDTO.empty(0L, 0L); - } - query.setDepartmentId(myDepartment.getId()); + String treeCode = sysDepartmentService.getTreeCodeByDepartmentId(query.getDepartmentId()); + if (StringUtils.isBlank(treeCode)) { + return PageDTO.empty(0L, 0L); } - Page<MwContractVO> page = baseMapper.pageList(new Page<>(query.getPageCurr(), query.getPageSize()), query); + Page<MwContractVO> page = baseMapper.pageList(new Page<>(query.getPageCurr(), query.getPageSize()), query, treeCode); return PageDTO.of(page); } @@ -84,6 +82,7 @@ @Transactional(rollbackFor = Exception.class) public void add(MwContractDTO dto) { MwContract mwContract = BeanUtils.copyBean(dto, MwContract.class); + save(mwContract); if (CollUtils.isNotEmpty(dto.getAttachmentList())) { List<MwAttachment> mwAttachments = BeanUtils.copyToList(dto.getAttachmentList(), MwAttachment.class); mwAttachments.forEach(attachment -> { @@ -132,4 +131,15 @@ //执行删除 removeById(id); } + + /** + * 查询未过期合同列表 + * + * @param date + * @return + */ + @Override + public List<MwContractVO> queryListTerminationDateBeforeNow(Date date) { + return baseMapper.queryListTerminationDateBeforeNow(date); + } } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwDisposalRecordServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwDisposalRecordServiceImpl.java index fd72934..8973ef5 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwDisposalRecordServiceImpl.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwDisposalRecordServiceImpl.java @@ -13,6 +13,7 @@ import com.sinata.system.domain.vo.MwDisposalRecordItemVO; import com.sinata.system.domain.vo.MwDisposalRecordReportVO; import com.sinata.system.domain.vo.MwDisposalRecordVO; +import com.sinata.system.domain.vo.MwDisposalRecordWarningVO; import com.sinata.system.mapper.MwDisposalHandleRecordMapper; import com.sinata.system.mapper.MwDisposalRecordMapper; import com.sinata.system.service.MwDisposalRecordService; @@ -102,4 +103,14 @@ String treeCode = sysDepartmentService.getTreeCodeByDepartmentId(query.getDepartmentId()); return baseMapper.getRegulationReportList(query, treeCode); } + + /** + * 处置单位存储量预警数据 + * + * @return + */ + @Override + public List<MwDisposalRecordWarningVO> queryDisposalListByDepartment() { + return baseMapper.queryDisposalListByDepartment(); + } } 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 5814221..bd656d2 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 @@ -7,26 +7,34 @@ import com.google.common.collect.Lists; import com.sinata.common.core.domain.entity.SysDictData; import com.sinata.common.entity.PageDTO; +import com.sinata.common.utils.BeanUtils; import com.sinata.common.utils.CollUtils; import com.sinata.common.utils.DateUtils; import com.sinata.common.utils.SecurityUtils; import com.sinata.common.utils.StringUtils; import com.sinata.system.domain.MwCollectRecord; +import com.sinata.system.domain.MwMicroEquipment; import com.sinata.system.domain.MwMicroEquipmentRecord; import com.sinata.system.domain.MwMicroEquipmentRecordItem; +import com.sinata.system.domain.SysDepartment; import com.sinata.system.domain.dto.MwMicroEquipmentRecordDTO; import com.sinata.system.domain.query.MwMicroEquipmentRecordQuery; import com.sinata.system.domain.query.MwMicroEquipmentStaticsQuery; +import com.sinata.system.domain.vo.DepartmentReportItemVO; +import com.sinata.system.domain.vo.DepartmentReportVO; import com.sinata.system.domain.vo.MwCollectRecordVO; import com.sinata.system.domain.vo.MwMicroEquipmentRecordVO; import com.sinata.system.domain.vo.MwMicroEquipmentStaticsTitleVO; import com.sinata.system.domain.vo.MwMicroEquipmentStaticsVO; +import com.sinata.system.domain.vo.SysDictDataVO; import com.sinata.system.enums.MedicalWasteStatusEnum; import com.sinata.system.mapper.MwMicroEquipmentRecordMapper; import com.sinata.system.service.ISysDictDataService; import com.sinata.system.service.MwCollectRecordService; import com.sinata.system.service.MwMicroEquipmentRecordItemService; import com.sinata.system.service.MwMicroEquipmentRecordService; +import com.sinata.system.service.MwMicroEquipmentService; +import com.sinata.system.service.MwStagingRoomService; import com.sinata.system.service.SysDepartmentService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -41,6 +49,8 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; /** * <p> @@ -57,6 +67,8 @@ private final MwCollectRecordService mwCollectRecordService; private final MwMicroEquipmentRecordItemService mwMicroEquipmentRecordItemService; private final ISysDictDataService sysDictDataService; + private final MwStagingRoomService mwStagingRoomService; + private final MwMicroEquipmentService mwMicroEquipmentService; /** * 设备使用记录分页列表 @@ -71,6 +83,15 @@ return PageDTO.empty(0L, 0L); } return PageDTO.of(baseMapper.pageList(new Page<>(query.getPageCurr(), query.getPageSize()), query, treeCode)); + } + + @Override + public MwMicroEquipmentRecordVO detail(Long id) { + MwMicroEquipmentRecordVO mwMicroEquipmentRecordVO = BeanUtils.copyBean(this.getById(id), MwMicroEquipmentRecordVO.class); + if (Objects.nonNull(mwMicroEquipmentRecordVO)) { + mwMicroEquipmentRecordVO.setMedicalWasteList(mwStagingRoomService.queryMedicalWasteList(mwMicroEquipmentRecordVO.getId())); + } + return mwMicroEquipmentRecordVO; } /** @@ -172,9 +193,24 @@ * @return */ @Override - public List<List<String>> getStaticsData(MwMicroEquipmentStaticsQuery query) { + public DepartmentReportVO getStaticsData(MwMicroEquipmentStaticsQuery query) { + DepartmentReportVO vo = new DepartmentReportVO(); + SysDepartment department = sysDepartmentService.getById(query.getDepartmentId()); + if (Objects.nonNull(department)) { + vo.setDepartmentName(department.getDepartmentName()); + } + MwMicroEquipment microEquipment = mwMicroEquipmentService.getById(query.getEquipmentId()); + vo.setEquipmentName(microEquipment.getEquipmentName()); + List<SysDictDataVO> wasteTypeList = sysDictDataService.medicalWasteTypeList(); + + if (CollUtils.isEmpty(wasteTypeList)) { + return vo; + } + 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<MwMicroEquipmentStaticsVO> staticsData = baseMapper.getStaticsData(query, treeCode); SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.YYYY_MM_DD_HH_MM_SS); switch (query.getDateType()) { @@ -189,29 +225,33 @@ break; } List<String> dateList = DateUtils.getDayBetween(query.getStartTime(), query.getEndTime(), query.getDateType()); - List<List<String>> result = new ArrayList<>(); if (CollUtils.isNotEmpty(staticsData)) { + List<DepartmentReportItemVO> result = new ArrayList<>(); for (String date : dateList) { - List<String> list = new ArrayList<>(); - list.add(date); + 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::add).orElse(BigDecimal.ZERO).setScale(2, RoundingMode.HALF_UP); + ).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(); - list.add(weight.toString()); - list.add(String.valueOf(count)); + departmentReportItemVO.getData().add(weight); + departmentReportItemVO.getData().add(BigDecimal.valueOf(count)); + totalWeight = totalWeight.add(weight); + totalCount = totalCount.add(BigDecimal.valueOf(count)); } - staticsData.stream().filter(e -> finalSdf.format(e.getUseTime()).equals(date)).findFirst().ifPresent(item -> { - list.add(item.getTotalWeight().toString()); - list.add(String.valueOf(item.getBagNum())); - }); - result.add(list); + departmentReportItemVO.getData().add(totalWeight); + departmentReportItemVO.getData().add(totalCount); + result.add(departmentReportItemVO); } + vo.setList(result); } - return result; + return vo; } @Override @@ -230,9 +270,35 @@ .head(head) .autoCloseStream(Boolean.TRUE) .sheet("处置分析报表") - .doWrite(getStaticsData(query)); + .doWrite(getStaticsReportData(query)); } + /** + * 导出报表数据 + * + * @param query + * @return + */ + private List<List<Object>> getStaticsReportData(MwMicroEquipmentStaticsQuery query) { + DepartmentReportVO vo = getStaticsData(query); + if (CollUtils.isNotEmpty(vo.getList())) { + List<List<Object>> result = new ArrayList<>(); + for (DepartmentReportItemVO departmentReportItemVO : vo.getList()) { + List<Object> data = new ArrayList<>(); + data.add(departmentReportItemVO.getName()); + data.addAll(departmentReportItemVO.getData()); + result.add(data); + } + return result; + } + return CollUtils.emptyList(); + } + + /** + * 导出报表表头 + * + * @return + */ private List<List<String>> head() { List<SysDictData> medicalWasteTypeList = sysDictDataService.lambdaQuery().eq(SysDictData::getDictType, "medical_waste_type").list(); List<List<String>> headTitles = Lists.newArrayList(); @@ -245,4 +311,5 @@ headTitles.add(Lists.newArrayList("小计", "总数量")); return headTitles; } + } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwMicroEquipmentServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwMicroEquipmentServiceImpl.java index d9f095d..c0fe593 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwMicroEquipmentServiceImpl.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwMicroEquipmentServiceImpl.java @@ -3,9 +3,7 @@ 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.common.exception.ServiceException; import com.sinata.common.utils.BeanUtils; -import com.sinata.common.utils.CollUtils; import com.sinata.common.utils.StringUtils; import com.sinata.system.domain.MwMicroEquipment; import com.sinata.system.domain.SysDepartment; @@ -14,7 +12,6 @@ import com.sinata.system.domain.query.StorageRecordQuery; import com.sinata.system.domain.vo.MwMedicalWasteBoxVO; import com.sinata.system.domain.vo.MwMicroEquipmentVO; -import com.sinata.system.enums.DepartmentEnum; import com.sinata.system.enums.MicroEquipmentStatusEnum; import com.sinata.system.mapper.MwMicroEquipmentMapper; import com.sinata.system.service.MwMicroEquipmentService; @@ -105,7 +102,11 @@ @Override public List<MwMicroEquipmentVO> getList() { SysDepartment myDepartment = sysDepartmentService.getMyDepartment(); - if (Objects.nonNull(myDepartment)) { + //TODO 待完善 + List<MwMicroEquipment> list = this.lambdaQuery() + .eq(MwMicroEquipment::getStatus, MicroEquipmentStatusEnum.NORMAL.getCode()).list(); + return BeanUtils.copyList(list, MwMicroEquipmentVO.class); + /*if (Objects.nonNull(myDepartment)) { if (myDepartment.getOrgType().equals(DepartmentEnum.MEDICAL_INSTITUTION.getCode())) { List<MwMicroEquipment> list = this.lambdaQuery() .eq(MwMicroEquipment::getStatus, MicroEquipmentStatusEnum.NORMAL.getCode()) @@ -113,6 +114,7 @@ return BeanUtils.copyList(list, MwMicroEquipmentVO.class); } } - return CollUtils.emptyList(); + return CollUtils.emptyList();*/ + } } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwProtectionEquipmentRecordServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwProtectionEquipmentRecordServiceImpl.java index 06bde56..1e4f0d5 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwProtectionEquipmentRecordServiceImpl.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwProtectionEquipmentRecordServiceImpl.java @@ -1,11 +1,13 @@ package com.sinata.system.service.impl; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.sinata.system.domain.MwProtectionEquipmentRecord; -import com.sinata.system.domain.dto.MwProtectionEquipmentRecordDTO; +import com.sinata.system.domain.vo.MwProtectionEquipmentRecordVO; import com.sinata.system.mapper.MwProtectionEquipmentRecordMapper; import com.sinata.system.service.MwProtectionEquipmentRecordService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; + +import java.util.List; /** * <p> @@ -17,5 +19,15 @@ */ @Service public class MwProtectionEquipmentRecordServiceImpl extends ServiceImpl<MwProtectionEquipmentRecordMapper, MwProtectionEquipmentRecord> implements MwProtectionEquipmentRecordService { - + /** + * 查询指定器具一个月的使用记录 + * + * @param id + * @param oneMonthAgo + * @return + */ + @Override + public List<MwProtectionEquipmentRecordVO> findByEquipmentIdAndUsageTimeAfter(Long id) { + return baseMapper.findByEquipmentIdAndUsageTimeAfter(id); + } } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwProtectionEquipmentServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwProtectionEquipmentServiceImpl.java index 2c2eb6d..1d80e97 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwProtectionEquipmentServiceImpl.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwProtectionEquipmentServiceImpl.java @@ -178,4 +178,13 @@ return PageDTO.of(page); } + /** + * 防护器具列表 + * + * @return + */ + @Override + public List<MwProtectionEquipmentVO> queryList() { + return baseMapper.queryList(); + } } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwStaffServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwStaffServiceImpl.java index d038313..6e12850 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwStaffServiceImpl.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwStaffServiceImpl.java @@ -17,6 +17,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.List; import java.util.Objects; /** @@ -101,4 +102,14 @@ } updateById(mwStaff); } + + /** + * 职工列表 + * + * @return + */ + @Override + public List<MwStaffVO> queryList() { + return baseMapper.queryList(); + } } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwStagingRoomServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwStagingRoomServiceImpl.java index f9c2742..61e047f 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwStagingRoomServiceImpl.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwStagingRoomServiceImpl.java @@ -83,6 +83,8 @@ if (Objects.isNull(dto.getId())) { throw new ServiceException("暂存间id不能为空"); } + MwStagingRoom mwStagingRoom = BeanUtils.copyBean(dto, MwStagingRoom.class); + updateById(mwStagingRoom); } /** @@ -172,4 +174,31 @@ response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); FastExcel.write(response.getOutputStream(), MwCheckoutRecordVO.class).sheet("暂存间出库记录").doWrite(list); } + + @Override + public List<MwStagingRoomVO> queryStagingRoomList() { + return baseMapper.queryStagingRoomList(); + } + + /** + * 暂存间待处理医废分页列表 + * + * @param query + * @return + */ + @Override + public PageDTO<MwStorageRecordVO> temporarilyStoredMedicalWaste(StorageRecordQuery query) { + return PageDTO.of(baseMapper.temporarilyStoredMedicalWaste(query)); + } + + /** + * 根据医废查询使用列表 + * + * @param id 微波设备id + * @return + */ + @Override + public List<MwStorageRecordVO> queryMedicalWasteList(Long id) { + return baseMapper.queryMedicalWasteList(id); + } } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwWarningConfigServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwWarningConfigServiceImpl.java index 063af5a..88910fb 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwWarningConfigServiceImpl.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwWarningConfigServiceImpl.java @@ -9,17 +9,19 @@ import com.sinata.system.domain.dto.MwWarningConfigDTO; import com.sinata.system.domain.vo.MwWarningConfigItemVO; import com.sinata.system.domain.vo.MwWarningConfigVO; +import com.sinata.system.domain.vo.SysDictDataVO; import com.sinata.system.enums.WarningConfigTypeEnum; import com.sinata.system.mapper.MwWarningConfigMapper; +import com.sinata.system.service.ISysDictDataService; import com.sinata.system.service.MwWarningConfigItemService; import com.sinata.system.service.MwWarningConfigService; import lombok.RequiredArgsConstructor; -import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * <p> @@ -33,7 +35,7 @@ @RequiredArgsConstructor public class MwWarningConfigServiceImpl extends ServiceImpl<MwWarningConfigMapper, MwWarningConfig> implements MwWarningConfigService { private final MwWarningConfigItemService mwWarningConfigItemService; - + private final ISysDictDataService sysDictDataService; /** * 保存设置 * @@ -43,8 +45,11 @@ @Override @Transactional(rollbackFor = Exception.class) public void saveConfig(MwWarningConfigDTO dto) { - MwWarningConfig mwWarningConfig = lambdaQuery().eq(MwWarningConfig::getType, dto.getType()).last("limit 1").oneOpt().orElse(new MwWarningConfig()); - BeanUtils.copyProperties(dto, mwWarningConfig); + MwWarningConfig mwWarningConfig = BeanUtil.copyProperties(dto, MwWarningConfig.class); + MwWarningConfig config = lambdaQuery().eq(MwWarningConfig::getType, dto.getType()).last("limit 1").one(); + if (Objects.nonNull(config)) { + mwWarningConfig.setId(config.getId()); + } saveOrUpdate(mwWarningConfig); if (dto.getType().equals(WarningConfigTypeEnum.MEDICAL_WASTE.getCode()) || dto.getType().equals(WarningConfigTypeEnum.STAGING_ROOM_CAPACITY.getCode())) { if (CollUtils.isEmpty(dto.getWarningConfigItemList())) { @@ -53,7 +58,10 @@ //清空配置项 mwWarningConfigItemService.lambdaUpdate().eq(MwWarningConfigItem::getConfigId, mwWarningConfig.getId()).remove(); List<MwWarningConfigItem> mwWarningConfigItems = BeanUtil.copyToList(dto.getWarningConfigItemList(), MwWarningConfigItem.class); - mwWarningConfigItems.forEach(item -> item.setConfigId(mwWarningConfig.getId())); + mwWarningConfigItems.forEach(item -> { + item.setConfigId(mwWarningConfig.getId()); + item.setId(null); + }); mwWarningConfigItemService.saveBatch(mwWarningConfigItems); } } @@ -70,8 +78,22 @@ MwWarningConfigVO mwWarningConfigVO = null; if (Objects.nonNull(mwWarningConfig)) { mwWarningConfigVO = BeanUtil.copyProperties(mwWarningConfig, MwWarningConfigVO.class); - if (type.equals(WarningConfigTypeEnum.MEDICAL_WASTE.getCode()) || type.equals(WarningConfigTypeEnum.STAGING_ROOM_CAPACITY.getCode())) { - List<MwWarningConfigItem> mwWarningConfigItems = mwWarningConfigItemService.lambdaQuery().eq(MwWarningConfigItem::getConfigId, mwWarningConfig.getId()).list(); + List<MwWarningConfigItem> mwWarningConfigItems = mwWarningConfigItemService.lambdaQuery().eq(MwWarningConfigItem::getConfigId, mwWarningConfig.getId()).list(); + if (type.equals(WarningConfigTypeEnum.MEDICAL_WASTE.getCode())) { + mwWarningConfigVO.setWarningConfigItemList(BeanUtil.copyToList(mwWarningConfigItems, MwWarningConfigItemVO.class)); + if (CollUtils.isEmpty(mwWarningConfigItems)) { + List<SysDictDataVO> sysDictDataVOS = sysDictDataService.medicalWasteTypeList(); + List<MwWarningConfigItemVO> res = sysDictDataVOS.stream().map(item -> { + MwWarningConfigItemVO vo = new MwWarningConfigItemVO(); + vo.setWasteType(item.getDictCode()); + vo.setWasteTypeStr(item.getDictLabel()); + return vo; + }).collect(Collectors.toList()); + mwWarningConfigVO.setWarningConfigItemList(res); + } + + } + if (type.equals(WarningConfigTypeEnum.STAGING_ROOM_CAPACITY.getCode())) { mwWarningConfigVO.setWarningConfigItemList(BeanUtil.copyToList(mwWarningConfigItems, MwWarningConfigItemVO.class)); } } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwWarningRecordServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwWarningRecordServiceImpl.java index 4246a9c..7c9d579 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwWarningRecordServiceImpl.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwWarningRecordServiceImpl.java @@ -1,10 +1,24 @@ package com.sinata.system.service.impl; +import cn.idev.excel.FastExcel; +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.common.utils.StringUtils; import com.sinata.system.domain.MwWarningRecord; +import com.sinata.system.domain.query.MwWarningRecordQuery; +import com.sinata.system.domain.vo.MwWarningRecordVO; +import com.sinata.system.enums.WarningStatusEnum; import com.sinata.system.mapper.MwWarningRecordMapper; import com.sinata.system.service.MwWarningRecordService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.sinata.system.service.SysDepartmentService; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.List; /** * <p> @@ -15,6 +29,48 @@ * @since 2024-12-02 */ @Service +@RequiredArgsConstructor public class MwWarningRecordServiceImpl extends ServiceImpl<MwWarningRecordMapper, MwWarningRecord> implements MwWarningRecordService { + private final SysDepartmentService sysDepartmentService; + private final HttpServletResponse response; + /** + * 预警信息分页列表 + * + * @param query + * @return + */ + @Override + public PageDTO<MwWarningRecordVO> pageList(MwWarningRecordQuery query) { + String treeCode = sysDepartmentService.getTreeCodeByDepartmentId(query.getDepartmentId()); + Page<MwWarningRecordVO> page = baseMapper.pageList(new Page<>(query.getPageCurr(), query.getPageSize()), query, treeCode); + return PageDTO.of(page); + } + + /** + * 解除预警 + * + * @param id + */ + @Override + public void relieve(Long id) { + lambdaUpdate().set(MwWarningRecord::getStatus, WarningStatusEnum.RESOLVED.getCode()).eq(MwWarningRecord::getId, id).update(); + } + + @Override + public void export(MwWarningRecordQuery query) throws IOException { + String treeCode = sysDepartmentService.getTreeCodeByDepartmentId(query.getDepartmentId()); + if (StringUtils.isBlank(treeCode)) { + return; + } + List<MwWarningRecordVO> list = baseMapper.queryList(new Page<>(query.getPageCurr(), query.getPageSize()), query, treeCode); + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("预警信息", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); + + FastExcel.write(response.getOutputStream(), MwWarningRecordVO.class) + .sheet("预警信息") + .doWrite(list); + } } 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 bd1c738..2c02fab 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 @@ -668,6 +668,7 @@ .like(StringUtils.isNotEmpty(query.getDepartmentName()), SysDepartment::getDepartmentName, query.getDepartmentName()) .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()) .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 0687962..952eecf 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 @@ -1,15 +1,16 @@ package com.sinata.system.service.impl; +import cn.idev.excel.util.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.sinata.common.core.domain.entity.SysDictData; import com.sinata.common.core.domain.entity.SysDictType; -import com.sinata.common.entity.BasePage; import com.sinata.common.entity.PageDTO; import com.sinata.common.exception.ServiceException; import com.sinata.common.utils.BeanUtils; import com.sinata.common.utils.DictUtils; import com.sinata.system.domain.dto.SysDictDataDTO; +import com.sinata.system.domain.query.KeyWordQuery; import com.sinata.system.domain.vo.SysDictDataVO; import com.sinata.system.mapper.SysDictDataMapper; import com.sinata.system.mapper.SysDictTypeMapper; @@ -125,8 +126,8 @@ } @Override - public PageDTO<SysDictDataVO> pageList(BasePage page) { - Page<SysDictData> result = this.lambdaQuery().page(new Page<>(page.getPageCurr(), page.getPageSize())); + public PageDTO<SysDictDataVO> pageList(KeyWordQuery query) { + Page<SysDictData> result = this.lambdaQuery().like(StringUtils.isNotBlank(query.getKeyword()), SysDictData::getDictLabel, query.getKeyword()).page(new Page<>(query.getPageCurr(), query.getPageSize())); return PageDTO.of(result, SysDictDataVO.class); } @@ -184,4 +185,14 @@ public List<SysDictDataVO> workTypeList() { return getSysDictDataVOListByType("protective_work_type"); } + + @Override + public List<SysDictDataVO> institutionLevelList() { + return getSysDictDataVOListByType("institution_level"); + } + + @Override + public List<SysDictDataVO> institutionTypeList() { + return getSysDictDataVOListByType("institution_type"); + } } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysMenuServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysMenuServiceImpl.java index 1d70c5c..e9b6381 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysMenuServiceImpl.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysMenuServiceImpl.java @@ -546,4 +546,9 @@ public List<SysMenu> selectListByRoleId(Long roleId) { return menuMapper.selectListByRoleId(roleId); } + + @Override + public List<SysMenu> selectList() { + return menuMapper.selectList(); + } } diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysRoleServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysRoleServiceImpl.java index cdb4916..c7194ea 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysRoleServiceImpl.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysRoleServiceImpl.java @@ -1,5 +1,6 @@ package com.sinata.system.service.impl; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.sinata.common.annotation.DataScope; @@ -468,11 +469,14 @@ if (!this.checkRoleNameUnique(sysRole)) { throw new ServiceException("保存角色'" + sysRole.getRoleName() + "'失败,角色名称已存在"); } - if (Objects.nonNull(sysRole.getRoleId())) { + if (Objects.isNull(sysRole.getRoleId())) { baseMapper.insert(sysRole); } else { + // 删除角色与菜单关联 + roleMenuMapper.deleteRoleMenuByRoleId(sysRole.getRoleId()); baseMapper.updateById(sysRole); } + insertRoleMenu(sysRole); } /** @@ -502,12 +506,15 @@ @Override public List<SysRoleVO> getManageRoleList(LoginUser loginUser) { List<SysRoleVO> res = CollUtils.emptyList(); - Long roleId = loginUser.getUser().getRoleId(); - SysRole role = this.getById(roleId); - if (Objects.nonNull(role)) { - List<SysRole> list = this.lambdaQuery().in(SysRole::getRoleId, Arrays.asList(role.getManageRoleIdStr().split(","))).list(); - if (CollUtils.isNotEmpty(list)) { - res = BeanUtils.copyToList(list, SysRoleVO.class); + Long userId = loginUser.getUserId(); + SysUserRole sysUserRole = userRoleMapper.selectOne(Wrappers.lambdaQuery(SysUserRole.class).eq(SysUserRole::getUserId, userId).last("LIMIT 1")); + if (Objects.nonNull(sysUserRole)) { + SysRole role = this.getById(sysUserRole.getRoleId()); + if (Objects.nonNull(role)) { + List<SysRole> list = this.lambdaQuery().in(SysRole::getRoleId, Arrays.asList(role.getManageRoleIdStr().split(","))).list(); + if (CollUtils.isNotEmpty(list)) { + res = BeanUtils.copyToList(list, SysRoleVO.class); + } } } return res; @@ -554,4 +561,15 @@ // 获取当前的权限菜单(有层级) return this.getMenuLevelList(menusId); } + + /** + * 角色列表 + * + * @return + */ + @Override + public List<SysRoleVO> queryList() { + List<SysRole> list = list(); + return BeanUtils.copyToList(list, SysRoleVO.class); + } } 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 c08b533..e3afc94 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,7 +576,7 @@ if (StringUtils.isBlank(treeCode)) { return PageDTO.empty(0L, 0L); } - Page<SysUserVO> page = baseMapper.pageList(new Page<>(query.getPageCurr(), query.getPageSize()), query.getDepartmentId(), query.getNickName(), query.getRoleId(), treeCode); + Page<SysUserVO> page = baseMapper.pageList(new Page<>(query.getPageCurr(), query.getPageSize()), 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 ecdb40b..2980849 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/MwCheckoutRecordMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/MwCheckoutRecordMapper.xml @@ -336,13 +336,30 @@ <if test="query.startTime != null and query.endTime != null"> AND MCR.CHECKOUT_TIME BETWEEN #{query.startTime} AND #{query.endTime} </if> - <if test="query.wasteTypeList != null and query.wasteTypeList.size()>0"> + <if test="query.wasteTypeCodeList != null and query.wasteTypeCodeList.size()>0"> AND MCR2.WASTE_TYPE IN - <foreach collection="query.wasteTypeList" item="wasteType" separator="," open="(" close=")"> + <foreach collection="query.wasteTypeCodeList" item="wasteType" separator="," open="(" close=")"> #{wasteType} </foreach> </if> </where> </select> + <select id="queryWarningList" resultType="com.sinata.system.domain.vo.MwTransitCarWarningVO"> + SELECT MTC.ID, + MTC.LICENSE_PLATE_NUMBER, + MTC.MAXIMUM_LOAD, + MTC.DEPARTMENT_ID, SD.DEPARTMENT_NAME, SUM(MCR.TOTAL_WEIGHT) AS currentLoad + FROM MW_TRANSIT_ROUTE_CAR MTRC + LEFT JOIN MW_CHECKOUT_RECORD MCR ON MCR.CAR_ID = MTRC.CAR_ID + LEFT JOIN MW_TRANSIT_CAR MTC ON MTC.ID = MCR.CAR_ID + LEFT JOIN MW_CHECKOUT_RECORD_ITEM MCRI ON MCRI.CHECKOUT_RECORD_ID = MCR.ID + LEFT JOIN MW_COLLECT_RECORD MCR2 ON MCR2.ID = MCRI.COLLECT_RECORD_ID + LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MTC.DEPARTMENT_ID + <where> + MCR.DEL_FLAG = 0 + AND MCR2.STATUS = 2 + </where> + GROUP BY MTRC.ROUTE_ID,MTRC.CAR_ID + </select> </mapper> diff --git a/medicalWaste-system/src/main/resources/mapper/system/MwCollectRecordMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/MwCollectRecordMapper.xml index 6de589d..75a58d5 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/MwCollectRecordMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/MwCollectRecordMapper.xml @@ -128,24 +128,26 @@ mcr.WASTE_TYPE_STR, mcr.STAGING_ROOM_ID, mcr.WEIGHT, - su.NICK_NAME AS COLLECT_USER_NAME + 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 + su3.NICK_NAME AS RECEIVER_NAME, mdr.DISPOSAL_UNIT_NAME, - mdr.DISPOSAL_TIME, + MDHR.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 SYS_USER su2 ON su2.USER_ID = mcr2.DRIVER_ID + LEFT JOIN MW_DISPOSAL_RECORD_ITEM 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 + LEFT JOIN MW_DISPOSAL_HANDLE_RECORD_ITEM mdhri ON mdhri.COLLECT_RECORD_ID= mcr.ID + LEFT JOIN MW_DISPOSAL_HANDLE_RECORD mdhr ON mdhr.ID= mdhri.DISPOSAL_HANDLE_RECORD_ID + LEFT JOIN SYS_USER su3 ON su3.USER_ID = mdr.RECEIVER_ID + LEFT JOIN SYS_USER su4 ON su4.USER_ID = mdr.DISPOSAL_USER_ID <where> mcr.ID = #{id} </where> @@ -332,5 +334,73 @@ </if> </where> </select> + <select id="queryListTimeType" resultType="com.sinata.system.domain.vo.MwCollectRecordWarningVO" + parameterType="java.lang.Integer"> + SELECT mcr.ID, + mcr.DEPARTMENT_ID, + mcr.HOSPITAL_NAME, + mcr.STAGING_ROOM_ID, + mcr.MEDICAL_WASTE_NUMBER, + SUM(mcr.WEIGHT) AS totalWeight, + mcr.COLLECT_TIME, + sdi.DAILY_MIN_WASTE_QUANTITY, + sdi.DAILY_MAX_WASTE_QUANTITY, + sdi.MONTHLY_MIN_WASTE_QUANTITY, + sdi.MONTHLY_MAX_WASTE_QUANTITY + FROM MW_COLLECT_RECORD mcr + LEFT JOIN SYS_DEPARTMENT sd ON mcr.DEPARTMENT_ID = sd.ID + LEFT JOIN SYS_DEPARTMENT_INFO sdi ON sdi.DEPARTMENT_ID = sd.ID + <where> + mcr.DEL_FLAG = 0 + <if test="timeType != null and timeType == 1"> + AND mcr.COLLECT_TIME BETWEEN TRUNC(TRUNC(SYSDATE - 1,'dd'), 'dd') + AND TRUNC(TRUNC(SYSDATE - 1,'dd'), 'dd') + INTERVAL '1' DAY - INTERVAL '1' SECOND + </if> + <if test="timeType != null and timeType == 2"> + AND mcr.COLLECT_TIME BETWEEN TRUNC(ADD_MONTHS(SYSDATE, -1), 'mm') + AND TRUNC(ADD_MONTHS(SYSDATE, 0), 'mm') - INTERVAL '1' SECOND + </if> + </where> + GROUP BY sd.ID + ORDER BY mcr.CREATE_TIME DESC + </select> + <select id="queryListGroupByDepartment" resultType="com.sinata.system.domain.vo.MwCollectRecordWarningVO"> + 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, + SUM(MCR.WEIGHT) totalWeight, + 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, + MCR.DISPOSAL_HANDLE_RECORD_ID, + MCR.RECEIVE_TIME, + MCR.RECEIVE_USER_ID, + MCR.DRIVER_ID, + MCR.CAR_ID, + MCR.DISPOSAL_TIME, + MCR.DISPOSAL_USER_ID, + MCR.RECEIVE_DEPARTMENT_ID, + SDI.MAXIMUM_STORAGE_CAPACITY + FROM MW_COLLECT_RECORD MCR + LEFT JOIN SYS_DEPARTMENT_INFO SDI ON SDI.DEPARTMENT_ID = MCR.DEPARTMENT_ID + <where> + MCR.DEL_FLAG = 0 + </where> + GROUP BY MCR.DEPARTMENT_ID + </select> </mapper> diff --git a/medicalWaste-system/src/main/resources/mapper/system/MwContractMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/MwContractMapper.xml index 6028c2c..7938e69 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/MwContractMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/MwContractMapper.xml @@ -51,13 +51,14 @@ MC.PARTY_B_PHONE, MC.REMARK, MC.CREATE_TIME, + MC.RELATION, SD.DEPARTMENT_NAME FROM MW_CONTRACT MC LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MC.DEPARTMENT_ID <where> MC.DEL_FLAG = 0 - <if test="query.departmentId != null "> - AND MC.DEPARTMENT_ID = #{query.departmentId} + <if test="treeCode != null and treeCode != ''"> + AND SD.TREE_CODE LIKE CONCAT(#{treeCode},'%') </if> <if test="query.contractNumber != null and query.contractNumber != ''"> AND MC.CONTRACT_NUMBER LIKE CONCAT('%',#{query.contractNumber},'%') @@ -67,5 +68,33 @@ </if> </where> </select> + <select id="queryListTerminationDateBeforeNow" resultType="com.sinata.system.domain.vo.MwContractVO" + parameterType="java.util.Date"> + SELECT MC.ID, + MC.DEPARTMENT_ID, + MC.CONTRACT_NUMBER, + MC.CONTRACT_NAME, + MC.CONTRACT_AMOUNT, + MC.EFFECTIVE_DATE, + MC.TERMINATION_DATE, + MC.PARTY_A_NAME, + MC.PARTY_A_CONTACT, + MC.PARTY_A_PHONE, + MC.PARTY_B_NAME, + MC.PARTY_B_CONTACT, + MC.PARTY_B_PHONE, + MC.REMARK, + MC.CREATE_TIME, + MC.RELATION, + SD.DEPARTMENT_NAME + FROM MW_CONTRACT MC + LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MC.DEPARTMENT_ID + <where> + MC.DEL_FLAG = 0 + <if test="date !=null"> + AND MC.TERMINATION_DATE > #{date} + </if> + </where> + </select> </mapper> diff --git a/medicalWaste-system/src/main/resources/mapper/system/MwDisposalHandleRecordMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/MwDisposalHandleRecordMapper.xml index c120c17..432b177 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/MwDisposalHandleRecordMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/MwDisposalHandleRecordMapper.xml @@ -14,7 +14,6 @@ <result column="DISPOSAL_UNIT_NAME" property="disposalUnitName" /> <result column="DISPOSAL_TIME" property="disposalTime" /> <result column="DISPOSAL_USER_ID" property="disposalUserId" /> - <result column="DISPOSAL_RECORD_ID" property="disposalRecordId" /> </resultMap> <!-- 通用查询结果列 --> @@ -35,7 +34,8 @@ MCR.WEIGHT, MCR.WASTE_TYPE FROM MW_DISPOSAL_HANDLE_RECORD MDHR - LEFT JOIN MW_COLLECT_RECORD MCR ON MCR.DISPOSAL_HANDLE_RECORD_ID = MDHR.ID + LEFT JOIN MW_DISPOSAL_HANDLE_RECORD_ITEM MDHRI ON MDHRI.DISPOSAL_HANDLE_RECORD_ID = MDHR.ID + LEFT JOIN MW_COLLECT_RECORD MCR ON MCR.ID = MDHRI.COLLECT_RECORD_ID <where> <if test="query.departmentId != null"> AND MDHR.DEPARTMENT_ID = #{query.departmentId} diff --git a/medicalWaste-system/src/main/resources/mapper/system/MwDisposalRecordMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/MwDisposalRecordMapper.xml index a7d53a5..e47cf72 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/MwDisposalRecordMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/MwDisposalRecordMapper.xml @@ -77,8 +77,7 @@ COUNT(DISTINCT MCR.BOX_NUMBER) AS totalHandledQuantity FROM MW_DISPOSAL_RECORD MDR LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MDR.DEPARTMENT_ID - LEFT JOIN MW_DISPOSAL_HANDLE_RECORD MDHR ON MDHR.DISPOSAL_RECORD_ID = MDR.ID - LEFT JOIN MW_COLLECT_RECORD MCR ON MCR.DISPOSAL_HANDLE_RECORD_ID = MDHR.ID + LEFT JOIN MW_DISPOSAL_HANDLE_RECORD_ITEM MDHRI ON MDHRI.DISPOSAL_RECORD_ID = MDR.ID <where> MDR.DEL_FLAG = 0 <if test="treeCode != null and treeCode !=''"> @@ -95,8 +94,9 @@ COUNT(MCR.ID) AS bagNum, IFNULL(SUM(MCR.WEIGHT), 0) AS weight, MDHR.DISPOSAL_TIME - FROM MW_DISPOSAL_HANDLE_RECORD MDHR - LEFT JOIN MW_COLLECT_RECORD MCR ON MCR.DISPOSAL_HANDLE_RECORD_ID = MDHR.ID + FROM MW_DISPOSAL_HANDLE_RECORD_ITEM MDHRI + LEFT JOIN MW_COLLECT_RECORD MCR ON MCR.ID = MDHRI.COLLECT_RECORD_ID + LEFT JOIN MW_DISPOSAL_HANDLE_RECORD MDHR ON MDHR.ID= MDHRI.DISPOSAL_HANDLE_RECORD_ID <where> <if test="disposalRecordId != null"> AND MDHR.DISPOSAL_RECORD_ID = #{disposalRecordId} @@ -133,20 +133,35 @@ LEFT JOIN MW_COLLECT_RECORD MCR ON MCR.DISPOSAL_HANDLE_RECORD_ID = MDHR.ID LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MDHR.DEPARTMENT_ID <where> - MDR.DEL_FLAG = 0 + MDHR.DEL_FLAG = 0 <if test="treeCode != null and treeCode != ''"> AND SD.TREE_CODE LIKE CONCAT(#{treeCode}, '%') </if> <if test="query.startTime != null and query.endTime != null"> AND MDHR.DISPOSAL_TIME BETWEEN #{query.startTime} AND #{query.endTime} </if> - <if test="query.wasteTypeList != null and query.wasteTypeList.size()>0"> + <if test="query.wasteTypeCodeList != null and query.wasteTypeCodeList.size()>0"> AND MCR.WASTE_TYPE IN - <foreach collection="query.wasteTypeList" item="wasteType" separator="," open="(" close=")"> + <foreach collection="query.wasteTypeCodeList" item="wasteType" separator="," open="(" close=")"> #{wasteType} </foreach> </if> </where> </select> + <select id="queryDisposalListByDepartment" + resultType="com.sinata.system.domain.vo.MwDisposalRecordWarningVO"> + SELECT SUM(MDR.RECEIVE_WEIGHT) AS totalWeight, + SDI.MAXIMUM_STORAGE_CAPACITY, + MDR.DEPARTMENT_ID, + MDR.DISPOSAL_UNIT_NAME + FROM MW_COLLECT_RECORD MCR + LEFT JOIN MW_DISPOSAL_RECORD_ITEM MDRI ON MDRI.COLLECT_RECORD_ID = MCR.ID AND MCR.STATUS = 3 + LEFT JOIN MW_DISPOSAL_RECORD MDR ON MDR.ID = MDRI.DISPOSAL_RECORD_ID + LEFT JOIN SYS_DEPARTMENT_INFO SDI ON SDI.DEPARTMENT_ID = MDR.DEPARTMENT_ID + <where> + MDR.DEL_FLAG = 0 + </where> + GROUP BY MDR.DEPARTMENT_ID + </select> </mapper> diff --git a/medicalWaste-system/src/main/resources/mapper/system/MwMicroEquipmentMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/MwMicroEquipmentMapper.xml index a93bedc..78d726c 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/MwMicroEquipmentMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/MwMicroEquipmentMapper.xml @@ -33,13 +33,14 @@ mme.EQUIPMENT_NUMBER, mme.STATUS, mme.REMARK, + mme.RELATION, SD.DEPARTMENT_NAME AS hospitalName FROM MW_MICRO_EQUIPMENT mme LEFT JOIN SYS_DEPARTMENT sd ON SD.ID = mme.DEPARTMENT_ID <where> mme.DEL_FLAG = 0 <if test="treeCode != null and treeCode != ''"> - sd.TREE_CODE LIKE concat(#{treeCode}, '%') + AND sd.TREE_CODE LIKE concat(#{treeCode}, '%') </if> <if test="equipmentName != null and equipmentName != ''"> AND mme.EQUIPMENT_NAME LIKE concat('%',#{equipmentName},'%') diff --git a/medicalWaste-system/src/main/resources/mapper/system/MwProtectionEquipmentMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/MwProtectionEquipmentMapper.xml index 27e0330..5592f03 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/MwProtectionEquipmentMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/MwProtectionEquipmentMapper.xml @@ -31,15 +31,16 @@ SELECT MPE.ID, MPE.DEPARTMENT_ID, MPE.PROTECTION_EQUIPMENT_TYPE, + MPE.PROTECTION_EQUIPMENT_TYPE_STR, MPE.EQUIPMENT_NAME, MPE.STOCK, MPE.REMARK, - MPE.ATTACHMENT, MPE.DEL_FLAG, MPE.CREATE_BY, MPE.CREATE_TIME, MPE.UPDATE_BY, MPE.UPDATE_TIME, + MPE.RELATION, SD.DEPARTMENT_NAME FROM MW_PROTECTION_EQUIPMENT MPE LEFT JOIN SYS_DEPARTMENT SD ON MPE.DEPARTMENT_ID = SD.ID @@ -55,6 +56,7 @@ AND MPE.EQUIPMENT_NAME LIKE CONCAT('%',#{query.equipmentName},'%') </if> </where> + ORDER BY MPE.CREATE_TIME DESC </select> <select id="recordPage" resultType="com.sinata.system.domain.vo.MwProtectionEquipmentRecordVO"> SELECT MPER.ID, @@ -74,5 +76,27 @@ MPER.DEL_FLAG = 0 AND MPER.PROTECTION_EQUIPMENT_ID = #{id} </where> </select> + <select id="queryList" resultType="com.sinata.system.domain.vo.MwProtectionEquipmentVO"> + SELECT MPE.ID, + MPE.DEPARTMENT_ID, + MPE.PROTECTION_EQUIPMENT_TYPE, + MPE.PROTECTION_EQUIPMENT_TYPE_STR, + MPE.EQUIPMENT_NAME, + MPE.STOCK, + MPE.REMARK, + MPE.DEL_FLAG, + MPE.CREATE_BY, + MPE.CREATE_TIME, + MPE.UPDATE_BY, + MPE.UPDATE_TIME, + MPE.RELATION, + SD.DEPARTMENT_NAME + FROM MW_PROTECTION_EQUIPMENT MPE + LEFT JOIN SYS_DEPARTMENT SD ON MPE.DEPARTMENT_ID = SD.ID + <where> + MPE.DEL_FLAG = 0 + </where> + ORDER BY MPE.CREATE_TIME DESC + </select> </mapper> diff --git a/medicalWaste-system/src/main/resources/mapper/system/MwProtectionEquipmentRecordMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/MwProtectionEquipmentRecordMapper.xml index 7a53ee6..10047be 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/MwProtectionEquipmentRecordMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/MwProtectionEquipmentRecordMapper.xml @@ -25,5 +25,28 @@ UPDATE_TIME, ID, PROTECTION_EQUIPMENT_ID, CHANGE_QUANTITY, TYPE, OPERATOR </sql> + <select id="findByEquipmentIdAndUsageTimeAfter" + resultType="com.sinata.system.domain.vo.MwProtectionEquipmentRecordVO"> + SELECT MPER.ID, + MPER.PROTECTION_EQUIPMENT_ID, + MPER.CHANGE_QUANTITY, + MPER.TYPE, + MPER.OPERATOR, + MPER.CREATE_TIME, + MPER.REMARK, + MPE.EQUIPMENT_NAME, + SD.DEPARTMENT_NAME + FROM MW_PROTECTION_EQUIPMENT_RECORD MPER + LEFT JOIN MW_PROTECTION_EQUIPMENT MPE ON MPE.ID = MPER.PROTECTION_EQUIPMENT_ID + LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MPE.DEPARTMENT_ID + <where> + MPE.DEL_FLAG = 0 + AND MPER.PROTECTION_EQUIPMENT_ID = #{id} + AND MPER.CREATE_TIME >= SYSDATE - INTERVAL '1' MONTH -- 最近一个月 + ORDER BY CREATE_TIME DESC + </where> + + + </select> </mapper> diff --git a/medicalWaste-system/src/main/resources/mapper/system/MwProtectionRegulationMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/MwProtectionRegulationMapper.xml index 908819c..f9bd0ef 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/MwProtectionRegulationMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/MwProtectionRegulationMapper.xml @@ -36,8 +36,9 @@ MPR.REMARK, MPR.CREATE_TIME, SD.DEPARTMENT_NAME, - LISTAGG(MA.FILE_NAME, ',') WITHIN GROUP (ORDER BY MA.FILE_NAME) AS fileName - FROM MW_PROTECTION_REQULATION MPR + WM_CONCAT(MA.FILE_NAME) AS fileName, + MPR.RELATION + FROM MW_PROTECTION_REGULATION MPR LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MPR.DEPARTMENT_ID LEFT JOIN (SELECT * FROM MW_ATTACHMENT WHERE "TYPE" = 3) MA ON MA.TARGET_ID = MPR.ID <where> @@ -52,6 +53,8 @@ AND MPR.REGULATION_NAME LIKE CONCAT('%',#{query.regulationName},'%') </if> </where> + GROUP BY MA.TARGET_ID + ORDER BY MPR.CREATE_TIME DESC </select> </mapper> diff --git a/medicalWaste-system/src/main/resources/mapper/system/MwProtectionTaskEquipmentMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/MwProtectionTaskEquipmentMapper.xml index 774f924..48c9d6f 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/MwProtectionTaskEquipmentMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/MwProtectionTaskEquipmentMapper.xml @@ -16,7 +16,7 @@ </sql> <select id="getUsageEquipmentListByTaskId" resultType="com.sinata.system.domain.vo.MwProtectionTaskEquipmentVO"> - SELECT MPTE.ID, + SELECT MPE.ID, MPTE.PROTECTION_EQUIPMENT_ID, MPTE.PROTECTION_TASK_ID, MPTE.USAGE_QUANTITY, diff --git a/medicalWaste-system/src/main/resources/mapper/system/MwProtectionTaskMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/MwProtectionTaskMapper.xml index 00226aa..5249a23 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/MwProtectionTaskMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/MwProtectionTaskMapper.xml @@ -36,7 +36,8 @@ MPT.REMARK, MPT.CREATE_TIME, SD.DEPARTMENT_NAME, - LISTAGG(MA.FILE_NAME, ',') WITHIN GROUP (ORDER BY MA.FILE_NAME) AS fileName + WM_CONCAT(MA.FILE_NAME) AS fileName, + MPT.RELATION FROM MW_PROTECTION_TASK MPT LEFT JOIN SYS_DEPARTMENT SD ON MPT.DEPARTMENT_ID = SD.ID LEFT JOIN (SELECT * FROM MW_ATTACHMENT WHERE "TYPE" = 2) MA ON MA.TARGET_ID = MPT.ID @@ -55,6 +56,8 @@ AND MPT.CREATE_TIME BETWEEN #{query.startTime} AND #{query.endTime} </if> </where> + GROUP BY MA.TARGET_ID + ORDER BY MPT.CREATE_TIME DESC </select> </mapper> diff --git a/medicalWaste-system/src/main/resources/mapper/system/MwStaffMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/MwStaffMapper.xml index a907646..18f49ff 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/MwStaffMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/MwStaffMapper.xml @@ -60,6 +60,22 @@ AND MS.VACCINE_CERTIFICATE IS NULL </if> </where> + ORDER BY MS.CREATE_TIME DESC + </select> + <select id="queryList" resultType="com.sinata.system.domain.vo.MwStaffVO"> + SELECT MS.ID, + MS.DEPARTMENT_ID, + MS.STAFF_NAME, + MS.PHONE, + MS.HEALTH_CERTIFICATE, + MS.VACCINE_CERTIFICATE, + SD.DEPARTMENT_NAME + FROM MW_STAFF MS + LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MS.DEPARTMENT_ID + <where> + MS.DEL_FLAG = 0 + </where> + ORDER BY MS.CREATE_TIME DESC </select> </mapper> diff --git a/medicalWaste-system/src/main/resources/mapper/system/MwStagingRoomMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/MwStagingRoomMapper.xml index 67358d9..407ad4d 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/MwStagingRoomMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/MwStagingRoomMapper.xml @@ -30,22 +30,18 @@ msr.ROOM_NAME, msr.MAX_CAPACITY, msr.CREATE_TIME, + msr.RELATION, COUNT(mr.ID) AS usedNum, (msr.MAX_CAPACITY - COUNT(mr.ID)) AS unUsedNum, sd.DEPARTMENT_NAME AS hospitalName FROM MW_STAGING_ROOM msr - LEFT JOIN (SELECT ID, - BOX_ID, - STAGING_ROOM_ID - FROM MW_COLLECT_RECORD - WHERE STATUS != 4 - GROUP BY BOX_ID) mr + LEFT JOIN (SELECT ID, BOX_ID, STAGING_ROOM_ID FROM MW_COLLECT_RECORD WHERE STATUS = 1 GROUP BY BOX_ID) mr ON msr.ID = mr.STAGING_ROOM_ID LEFT JOIN SYS_DEPARTMENT sd ON msr.DEPARTMENT_ID = sd.ID <where> msr.DEL_FLAG = 0 <if test="treeCode != null and treeCode != ''"> - sd.TREE_CODE LIKE CONCAT('%', #{tree}) + AND sd.TREE_CODE LIKE CONCAT(#{treeCode}, '%') </if> </where> ORDER BY msr.CREATE_TIME DESC @@ -95,6 +91,9 @@ </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.collectTimeStart != null and query.collectTimeEnd != null"> and mcr.COLLECT_TIME between #{query.collectTimeStart} and #{query.collectTimeEnd} @@ -220,5 +219,112 @@ </where> ORDER BY mcr.CHECKOUT_TIME DESC </select> + <select id="queryStagingRoomList" resultType="com.sinata.system.domain.vo.MwStagingRoomVO"> + SELECT msr.ID, + msr.DEPARTMENT_ID, + msr.ROOM_NAME, + msr.MAX_CAPACITY, + msr.CREATE_TIME, + msr.RELATION, + COUNT(mr.ID) AS usedNum, + (msr.MAX_CAPACITY - COUNT(mr.ID)) AS unUsedNum, + (COUNT(mr.ID) * 1.0 / msr.MAX_CAPACITY * 100) AS useRate, + sd.DEPARTMENT_NAME AS hospitalName + FROM MW_STAGING_ROOM msr + LEFT JOIN (SELECT ID, BOX_ID, STAGING_ROOM_ID FROM MW_COLLECT_RECORD WHERE STATUS = 1 GROUP BY BOX_ID) mr + ON msr.ID = mr.STAGING_ROOM_ID + LEFT JOIN SYS_DEPARTMENT sd ON msr.DEPARTMENT_ID = sd.ID + <where> + msr.DEL_FLAG = 0 + </where> + ORDER BY msr.CREATE_TIME DESC + </select> + <select id="temporarilyStoredMedicalWaste" resultType="com.sinata.system.domain.vo.MwStorageRecordVO" + parameterType="com.sinata.system.domain.query.StorageRecordQuery"> + SELECT + mcr.BOX_ID AS id, + mcr.DEPARTMENT_ID, + mcr.HOSPITAL_NAME, + mcr.STAGING_ROOM_ID, + mcr.MEDICAL_WASTE_NUMBER, + mcr.BOX_NUMBER, + mcr.WASTE_TYPE, + mcr.WASTE_TYPE_STR, + SUM(mcr.WEIGHT) AS 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, + msr.ROOM_NAME, + su.NICK_NAME AS COLLECT_USER_NAME, + (SELECT COUNT(*) FROM MW_COLLECT_RECORD WHERE BOX_ID = mcr.BOX_ID) bagNum + 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 + LEFT JOIN MW_STAGING_ROOM msr ON msr.ID = mcr.STAGING_ROOM_ID + <where> + mcr.DEL_FLAG = 0 + <if test="query.departmentId != null "> + and mcr.DEPARTMENT_ID = #{query.departmentId} + </if> + <if test="query.stagingRoomId != null and query.stagingRoomId != ''"> + and mcr.STAGING_ROOM_ID = #{query.stagingRoomId} + </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.collectTimeStart != null and query.collectTimeEnd != null"> + and mcr.COLLECT_TIME between #{query.collectTimeStart} and #{query.collectTimeEnd} + </if> + </where> + GROUP BY mcr.BOX_ID + ORDER BY mcr.CREATE_TIME DESC + </select> + <select id="queryMedicalWasteList" resultType="com.sinata.system.domain.vo.MwStorageRecordVO" + parameterType="java.lang.Long"> + SELECT mcr.BOX_ID AS id, + mcr.DEPARTMENT_ID, + mcr.HOSPITAL_NAME, + mcr.STAGING_ROOM_ID, + mcr.MEDICAL_WASTE_NUMBER, + mcr.BOX_NUMBER, + mcr.WASTE_TYPE, + mcr.WASTE_TYPE_STR, + SUM(mcr.WEIGHT) AS 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, + msr.ROOM_NAME, + su.NICK_NAME AS collectUserName, + (SELECT COUNT(*) FROM MW_COLLECT_RECORD WHERE BOX_ID = mcr.BOX_ID) bagNum + FROM MW_MICRO_EQUIPMENT_RECORD_ITEM mmeri + LEFT JOIN MW_COLLECT_RECORD mcr ON mcr.ID = mmeri.COLLECT_RECORD_ID + LEFT JOIN SYS_USER su ON mcr.COLLECT_USER_ID = su.USER_ID + LEFT JOIN MW_STAGING_ROOM msr ON msr.ID = mcr.STAGING_ROOM_ID + <where> + mcr.DEL_FLAG = 0 AND mmeri.EQUIPMENT_RECORD_ID =#{id} + </where> + GROUP BY mcr.BOX_ID + ORDER BY mcr.CREATE_TIME DESC + </select> </mapper> diff --git a/medicalWaste-system/src/main/resources/mapper/system/MwTransitCarMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/MwTransitCarMapper.xml index 4babfe6..b38e97c 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/MwTransitCarMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/MwTransitCarMapper.xml @@ -48,13 +48,14 @@ MTC.CREATE_TIME, MTC.UPDATE_BY, MTC.UPDATE_TIME, + MTC.RELATION, SD.DEPARTMENT_NAME AS DEPARTMENT_NAME FROM MW_TRANSIT_CAR MTC LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MTC.DEPARTMENT_ID <where> MTC.DEL_FLAG = 0 <if test="treeCode != null and treeCode != ''"> - AND SD.TREE_CODE = #{treeCode} + AND SD.TREE_CODE LIKE CONCAT(#{treeCode},'%') </if> <if test="query.licensePlateNumber !=null and query.licensePlateNumber != ''"> AND MTC.LICENSE_PLATE_NUMBER LIKE CONCAT('%',#{query.licensePlateNumber},'%') @@ -85,6 +86,7 @@ MTC.CREATE_TIME, MTC.UPDATE_BY, MTC.UPDATE_TIME, + MTC.RELATION, SD.DEPARTMENT_NAME AS DEPARTMENT_NAME FROM MW_TRANSIT_CAR MTC LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MTC.DEPARTMENT_ID diff --git a/medicalWaste-system/src/main/resources/mapper/system/MwTransitRouteMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/MwTransitRouteMapper.xml index 484a0b5..217761d 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/MwTransitRouteMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/MwTransitRouteMapper.xml @@ -31,6 +31,7 @@ MTR.CREATE_TIME, MTR.HOSPITAL_QUANTITY, MTR.REMARK, + MTR.RELATION, SD.DEPARTMENT_NAME FROM MW_TRANSIT_ROUTE MTR LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MTR.DEPARTMENT_ID @@ -49,6 +50,7 @@ MTR.CREATE_TIME, MTR.HOSPITAL_QUANTITY, MTR.REMARK, + MTR.RELATION, SD.DEPARTMENT_NAME FROM MW_TRANSIT_ROUTE MTR LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MTR.DEPARTMENT_ID diff --git a/medicalWaste-system/src/main/resources/mapper/system/MwWarningRecordMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/MwWarningRecordMapper.xml index c09b60b..a723afa 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/MwWarningRecordMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/MwWarningRecordMapper.xml @@ -27,5 +27,77 @@ UPDATE_TIME, ID, WARN_TIME, WARNING_TARGET_ID, WARNING_TARGET_NAME, TYPE, MESSAGE, STATUS </sql> + <select id="pageList" resultType="com.sinata.system.domain.vo.MwWarningRecordVO"> + SELECT MWR.ID, + MWR.WARN_TIME, + MWR.WARNING_TARGET_ID, + MWR.WARNING_TARGET_NAME, + MWR.TYPE, + MWR.MESSAGE, + MWR.STATUS, + MWR.DEL_FLAG, + MWR.CREATE_BY, + MWR.CREATE_TIME, + MWR.UPDATE_BY, + MWR.UPDATE_TIME, + MWR.DEPARTMENT_ID, + MWR.CURRENT_VALUE, + MWR.NORMAL_RANGE, + MWR.DEPARTMENT_NAME + FROM MW_WARNING_RECORD MWR + LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MWR.DEPARTMENT_ID + <where> + MWR.DEL_FLAG = 0 + <if test="treeCode != null and treeCode != ''"> + AND SD.TREE_CODE LIKE CONCAT(#{treeCode}, '%') + </if> + <if test="query.type !=null"> + AND MWR.TYPE = #{query.type} + </if> + <if test="query.status != null"> + AND MWR.STATUS = #{query.status} + </if> + </where> + ORDER BY MWR.CREATE_TIME DESC + </select> + <select id="queryList" resultType="com.sinata.system.domain.vo.MwWarningRecordVO"> + SELECT MWR.ID, + MWR.WARN_TIME, + MWR.WARNING_TARGET_ID, + MWR.WARNING_TARGET_NAME, + MWR.TYPE, + MWR.MESSAGE, + MWR.STATUS, + MWR.DEL_FLAG, + MWR.CREATE_BY, + MWR.CREATE_TIME, + MWR.UPDATE_BY, + MWR.UPDATE_TIME, + MWR.DEPARTMENT_ID, + MWR.CURRENT_VALUE, + MWR.NORMAL_RANGE, + MWR.DEPARTMENT_NAME + FROM MW_WARNING_RECORD MWR + LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MWR.DEPARTMENT_ID + <where> + MWR.DEL_FLAG = 0 + <if test="treeCode != null and treeCode != ''"> + AND SD.TREE_CODE LIKE CONCAT(#{treeCode}, '%') + </if> + <if test="query.type !=null"> + AND MWR.TYPE = #{query.type} + </if> + <if test="query.status != null"> + AND MWR.STATUS = #{query.status} + </if> + <if test="query.idList != null and query.idList.size()>0"> + AND MWR.ID IN + <foreach collection="query.idList" item="id" open="(" separator="," close=")"> + #{id} + </foreach> + </if> + </where> + ORDER BY MWR.CREATE_TIME DESC + </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 6e0570b..21c9b1f 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/SysDepartmentMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/SysDepartmentMapper.xml @@ -65,7 +65,7 @@ LEFT JOIN SYS_DICT_DATA sdd2 ON sdi.INSTITUTION_TYPE = sdd2.DICT_CODE <where> - sd.ORG_TYPE = 2 + sd.DEL_FLAG =0 AND sd.ORG_TYPE = 2 <if test="departmentName != null and departmentName != ''"> AND sd.DEPARTMENT_NAME LIKE CONCAT('%', #{departmentName}, '%') </if> @@ -151,7 +151,7 @@ LEFT JOIN SYS_DEPARTMENT_INFO sdi ON sd.ID = sdi.DEPARTMENT_ID <where> - sd.ORG_TYPE = 3 + sd.DEL_FLAG = 0 AND sd.ORG_TYPE = 3 <if test="departmentId != null"> AND sd.PARENT_ID = #{departmentId} </if> @@ -217,7 +217,7 @@ FROM MW_TRANSIT_ROUTE_POINTS MTRP INNER JOIN SYS_DEPARTMENT SD ON MTRP.DEPARTMENT_ID = SD.ID <where> - SD.ORG_TYPE = 2 AND MTRP.ID = #{id} + SD.ORG_TYPE = 2 AND MTRP.ROUTE_ID = #{id} </where> ORDER BY MTRP.SORT_ORDER ASC </select> diff --git a/medicalWaste-system/src/main/resources/mapper/system/SysMenuMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/SysMenuMapper.xml index c8ee64a..add5553 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -244,4 +244,23 @@ #{id} </foreach> </select> + <select id="selectList" resultType="com.sinata.common.core.domain.entity.SysMenu"> + select menu_id AS menuId, + menu_name AS menuName, + parent_id AS parentId, + order_num AS orderNum, + `path` AS path, + component AS component, + `query` AS query, + is_frame AS isFrame, + is_cache AS isCache, + menu_type AS menuType, + visible AS visible, + STATUS AS STATUS, + IFNULL(perms, '') AS perms, + icon AS icon, + create_time AS createTime + from sys_menu + </select> + </mapper> diff --git a/medicalWaste-system/src/main/resources/mapper/system/SysRoleMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/SysRoleMapper.xml index 68312d7..98006a7 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/SysRoleMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/SysRoleMapper.xml @@ -23,7 +23,11 @@ <sql id="selectRoleVo"> select distinct r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.menu_check_strictly, r.dept_check_strictly, - r.status, r.del_flag, r.create_time, r.remark + r.status, + r.del_flag, + r.create_time, + r.remark, + r.manage_role_id_str from sys_role r left join sys_user_role ur on ur.role_id = r.role_id left join sys_user u on u.user_id = ur.user_id @@ -106,8 +110,7 @@ r.UPDATE_TIME, r.REMARK, r.MANAGE_ROLE_ID_STR, - -- 使用 LISTAGG 拼接可管理角色的角色ID,使用 ';' 分隔 - LISTAGG(r2.ROLE_NAME, ';') WITHIN GROUP (ORDER BY r2.ROLE_ID) AS manageRoleStr, + WM_CONCAT(r2.ROLE_NAME) AS manageRoleStr, u.NICK_NAME FROM SYS_ROLE r @@ -121,8 +124,8 @@ </where> 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; - + r.UPDATE_TIME, r.REMARK, r.MANAGE_ROLE_ID_STR + ORDER BY r.CREATE_TIME DESC </select> <insert id="insertRole" parameterType="SysRole" useGeneratedKeys="true" keyProperty="roleId"> diff --git a/medicalWaste-system/src/main/resources/mapper/system/SysUserMapper.xml b/medicalWaste-system/src/main/resources/mapper/system/SysUserMapper.xml index 66853c6..616079a 100644 --- a/medicalWaste-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/medicalWaste-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -146,7 +146,9 @@ su.USER_NAME, su.STATUS, sd.DEPARTMENT_NAME, - sr.ROLE_NAME + sr.ROLE_NAME, + su.DEPARTMENT_ID, + su.RELATION FROM SYS_USER su LEFT JOIN SYS_DEPARTMENT sd ON su.DEPARTMENT_ID = sd.ID @@ -155,17 +157,15 @@ LEFT JOIN SYS_ROLE sr ON sr.ROLE_ID = sur.ROLE_ID <where> - <if test="departmentId != null and departmentId != ''">] - sud.DEPARTMENT_ID = #{departmentId} + su.DEL_FLAG = 0 + <if test="nickName != null and nickName != ''"> + AND su.NICK_NAME LIKE CONCAT('%',#{nickName},'%') </if> - <if test="nickName != null and nickName != ''">] - su.NICK_NAME LIKE CONCAT('%',#{nickName},'%') - </if> - <if test="roleId != null and roleId != ''">] - sur.ROLE_ID = #{roleId} + <if test="roleId != null and roleId != ''"> + AND sur.ROLE_ID = #{roleId} </if> <if test="treeCode != null and treeCode != ''"> - sd.TREE_CODE LIKE CONCAT(#{treeCode},'%') + AND sd.TREE_CODE LIKE CONCAT(#{treeCode},'%') </if> </where> </select> -- Gitblit v1.7.1