medicalWaste-admin/src/main/java/com/sinata/RuoYiApplication.java
@@ -3,12 +3,14 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.scheduling.annotation.EnableScheduling; /** * 启动程序 * * @author ruoyi */ @EnableScheduling @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) public class RuoYiApplication { medicalWaste-admin/src/main/java/com/sinata/task/WarningTask.java
@@ -2,15 +2,6 @@ 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; @@ -28,15 +19,6 @@ @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; /** medicalWaste-system/src/main/java/com/sinata/system/domain/MwApplication.java
@@ -80,5 +80,8 @@ @TableField(exist = false) private String code; @ApiModelProperty("层级关系") @TableField("RELATION") private String relation; } medicalWaste-system/src/main/java/com/sinata/system/domain/MwWarningRecord.java
@@ -3,16 +3,16 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import com.sinata.common.entity.BaseModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import java.io.Serializable; import java.util.Date; /** @@ -24,13 +24,12 @@ * @since 2024-12-02 */ @Data @EqualsAndHashCode(callSuper = true) @Builder @NoArgsConstructor @AllArgsConstructor @TableName("MW_WARNING_RECORD") @ApiModel(value = "MwWarningRecord对象", description = "预警记录表") public class MwWarningRecord extends BaseModel { public class MwWarningRecord implements Serializable { private static final long serialVersionUID = 1L; @@ -79,4 +78,40 @@ @ApiModelProperty("正常范围") @TableField("NORMAL_RANGE") private String normalRange; /** * 创建者 */ @ApiModelProperty(value = "记录创建人,前端忽略") @TableField(value = "create_by") private Long createBy; /** * 创建时间 */ @ApiModelProperty(value = "记录创建时间,前端忽略") @TableField(value = "create_time") private Date createTime; /** * 更新者 */ @ApiModelProperty(value = "记录修改人,前端忽略") @TableField(value = "update_by") private Long updateBy; /** * 更新时间 */ @ApiModelProperty(value = "记录修改时间,前端忽略") @TableField(value = "update_time") private Date updateTime; /** * 是否删除 0未删除 1已删除 */ @TableField("del_flag") @ApiModelProperty(value = "是否删除 0未删除 1已删除") @TableLogic private Integer delFlag; } medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MedicalWasteCollectVO.java
@@ -17,6 +17,9 @@ @ApiModelProperty("医废类型") private String wasteTypeStr; @ApiModelProperty("大屏统计颜色") private String cssClass; @ApiModelProperty("袋数") private Integer bagNum; medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwWarningRecordStaticsVO.java
@@ -12,7 +12,9 @@ @ApiModel("预警记录统计视图对象") public class MwWarningRecordStaticsVO { @ApiModelProperty("预警类型 1:出库超时预警;2:暂存间使用率预警;3:合同到期预警;4:健康记录预警;5:疫苗记录预警;6:防护用品使用预警;7:医疗机构产废日预警;8:医疗机构产废月预警;9:医疗机构存储量预警;10:车辆转运异常预警;11:处置单位存储量预警") @ApiModelProperty("预警类型 1:出库超时预警 2:暂存间使用率预警 3:合同到期预警 4:健康记录预警 \" +\n" + " \"5:疫苗记录预警 6:防护用品使用预警 7:防护用品库存预警 8:医疗机构产废日预警 \" +\n" + " \"9:医疗机构产废月预警 10:医疗机构存储量预警 11:车辆转运异常预警 12:处置单位存储量预警") private Integer type; @ApiModelProperty("预警类型名称") medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwWarningRecordVO.java
@@ -36,7 +36,9 @@ @ExcelProperty(value = "预警对象", index = 2) private String warningTargetName; @ApiModelProperty("预警类型 1:出库超时预警;2:暂存间使用率预警;3:合同到期预警;4:健康记录预警;5:疫苗记录预警;6:防护用品使用预警;7:医疗机构产废日预警;8:医疗机构产废月预警;9:医疗机构存储量预警;10:车辆转运异常预警;11:处置单位存储量预警") @ApiModelProperty("预警类型 1:出库超时预警 2:暂存间使用率预警 3:合同到期预警 4:健康记录预警 \" +\n" + " \"5:疫苗记录预警 6:防护用品使用预警 7:防护用品库存预警 8:医疗机构产废日预警 \" +\n" + " \"9:医疗机构产废月预警 10:医疗机构存储量预警 11:车辆转运异常预警 12:处置单位存储量预警") @ExcelProperty(value = "预警类型", index = 3, converter = EConverter.class) @FastExcel(type = WarningTypeEnum.class) private Integer type; medicalWaste-system/src/main/java/com/sinata/system/domain/vo/SysDictDataVO.java
@@ -22,6 +22,12 @@ @ApiModelProperty("字典类型") private String dictType; @ApiModelProperty("字典类型名称") private String dictTypeName; @ApiModelProperty("大屏统计颜色") private String cssClass; @ApiModelProperty("备注") private String remark; medicalWaste-system/src/main/java/com/sinata/system/domain/vo/TodayMedicalWastePieVO.java
@@ -17,6 +17,9 @@ @ApiModelProperty("医废类型名称") private String medicalWasteStr; @ApiModelProperty("大屏统计颜色") private String cssClass; @ApiModelProperty("数量") private Integer count; medicalWaste-system/src/main/java/com/sinata/system/domain/vo/TotalCollectWeightByTypeVO.java
@@ -20,7 +20,7 @@ private List<String> dateList; @ApiModelProperty("医废类型列表") private List<String> wasteTypeList = new ArrayList<>(); private List<SysDictDataVO> wasteTypeList = new ArrayList<>(); @ApiModelProperty("各日期各类型医废收集总量列表") private List<List<BigDecimal>> totalCollectWeightList = new ArrayList<>(); medicalWaste-system/src/main/java/com/sinata/system/service/SysDepartmentService.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.sinata.common.entity.PageDTO; import com.sinata.system.domain.MwApplication; import com.sinata.system.domain.SysDepartment; import com.sinata.system.domain.dto.DisposalUnitDTO; import com.sinata.system.domain.dto.MedicalInstitutionDTO; @@ -232,4 +233,11 @@ * @return */ List<MedicalInstitutionVO> getHospitalListByRouteId(Long id); /** * 创建机构 * * @param mwApplication */ void createDepartment(MwApplication mwApplication); } medicalWaste-system/src/main/java/com/sinata/system/service/biz/ScreenService.java
@@ -1,12 +1,15 @@ package com.sinata.system.service.biz; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson2.JSONArray; import com.sinata.common.exception.ServiceException; import com.sinata.common.utils.BeanUtils; import com.sinata.common.utils.CollUtils; import com.sinata.common.utils.DateUtils; import com.sinata.system.domain.MedicalWasteStaticsVO; import com.sinata.system.domain.MwCollectRecord; import com.sinata.system.domain.MwTransitCarCollectPoint; import com.sinata.system.domain.MwWarningRecord; import com.sinata.system.domain.SysDepartment; import com.sinata.system.domain.vo.CarDistributionVO; @@ -74,7 +77,7 @@ */ public DepartmentTagInfoVO getTagInfo(Long id) { SysDepartment department = sysDepartmentService.getById(id); DepartmentTagInfoVO vo = null; DepartmentTagInfoVO vo = new DepartmentTagInfoVO(); if (Objects.isNull(department)) { throw new ServiceException("单位不存在"); } @@ -127,18 +130,20 @@ return todayMedicalWastePieVOList; } int total = collectRecordList.size(); // 分组并统计每个 wasteTypeStr 对应的记录数 Map<String, Long> resultMap = collectRecordList.stream() .collect(Collectors.groupingBy(MwCollectRecord::getWasteTypeStr, Collectors.counting())); todayMedicalWastePieVOList = resultMap.entrySet().stream().map(entry -> { //查询医废类型列表 List<SysDictDataVO> sysDictDataVOS = sysDictDataService.medicalWasteTypeList(); // 分组并统计每个 wasteType 对应的记录数 Map<Long, Long> resultMap = collectRecordList.stream() .collect(Collectors.groupingBy(MwCollectRecord::getWasteType, Collectors.counting())); todayMedicalWastePieVOList = sysDictDataVOS.stream().map(sysDictDataVO -> { Long count = resultMap.getOrDefault(sysDictDataVO.getDictCode(), 0L); TodayMedicalWastePieVO todayMedicalWastePieVO = new TodayMedicalWastePieVO(); todayMedicalWastePieVO.setMedicalWasteStr(entry.getKey()); todayMedicalWastePieVO.setCount(entry.getValue().intValue()); todayMedicalWastePieVO.setProportion(BigDecimal.valueOf(entry.getValue()).divide(BigDecimal.valueOf(total), RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100))); todayMedicalWastePieVO.setMedicalWasteStr(sysDictDataVO.getDictLabel()); todayMedicalWastePieVO.setCssClass(sysDictDataVO.getCssClass()); todayMedicalWastePieVO.setCount(count.intValue()); todayMedicalWastePieVO.setProportion(BigDecimal.valueOf(count).divide(BigDecimal.valueOf(total), 4, RoundingMode.FLOOR).multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.FLOOR)); return todayMedicalWastePieVO; }).collect(Collectors.toList()); return todayMedicalWastePieVOList; } @@ -174,7 +179,7 @@ } //查询医废类型 List<SysDictDataVO> medicalWasteTypeList = sysDictDataService.medicalWasteTypeList(); vo.setWasteTypeList(medicalWasteTypeList); //查询南宁市下面的医疗机构 List<SysDepartment> list = sysDepartmentService.lambdaQuery() .likeRight(SysDepartment::getTreeCode, nanNingDepartment.getTreeCode()) @@ -273,16 +278,12 @@ medicalWasteCollectVO.setWasteTypeStr(sysDictDataVO.getDictLabel()); // 获取当前类型的医废记录 List<MwCollectRecord> mwCollectRecords = collectRecordGroupByWasteType.get(sysDictDataVO.getDictCode()); if (CollUtils.isNotEmpty(mwCollectRecords)) { List<MwCollectRecord> mwCollectRecords = collectRecordGroupByWasteType.getOrDefault(sysDictDataVO.getDictCode(), CollUtils.emptyList()); medicalWasteCollectVO.setCssClass(sysDictDataVO.getCssClass()); medicalWasteCollectVO.setBagNum(mwCollectRecords.size()); medicalWasteCollectVO.setWeight(mwCollectRecords.stream() .map(MwCollectRecord::getWeight) .reduce(BigDecimal.ZERO, BigDecimal::add)); } else { medicalWasteCollectVO.setBagNum(0); medicalWasteCollectVO.setWeight(BigDecimal.ZERO); } return medicalWasteCollectVO; } @@ -293,7 +294,15 @@ */ public List<MwWarningRecordStaticsVO> warningRecordStaticsList() { SysDepartment nanNingDepartment = getNanNingDepartment(); List<MwWarningRecord> warningRecordList = mwWarningRecordService.lambdaQuery().eq(MwWarningRecord::getDepartmentId, nanNingDepartment.getId()).list(); //查询南宁的所有单位 List<SysDepartment> list = sysDepartmentService.lambdaQuery() .likeRight(SysDepartment::getTreeCode, nanNingDepartment.getTreeCode()) .in(SysDepartment::getOrgType, DepartmentEnum.MEDICAL_INSTITUTION.getCode(), DepartmentEnum.DISPOSAL_UNIT.getCode()).list(); if (CollUtils.isEmpty(list)) { return CollUtils.emptyList(); } List<Long> departmentIds = list.stream().map(SysDepartment::getId).collect(Collectors.toList()); List<MwWarningRecord> warningRecordList = mwWarningRecordService.lambdaQuery().in(MwWarningRecord::getDepartmentId, departmentIds).list(); if (CollUtils.isEmpty(warningRecordList)) { return CollUtils.emptyList(); } @@ -323,7 +332,13 @@ */ public List<MwWarningRecordVO> queryWarningRecordDetailByType(Integer type) { SysDepartment nanNingDepartment = getNanNingDepartment(); List<MwWarningRecord> warningRecordList = mwWarningRecordService.lambdaQuery().eq(MwWarningRecord::getDepartmentId, nanNingDepartment.getId()).eq(MwWarningRecord::getType, type).list(); //查询南宁市所有单位信息 List<SysDepartment> list = sysDepartmentService.lambdaQuery().likeRight(SysDepartment::getTreeCode, nanNingDepartment.getTreeCode()).list(); if (CollUtils.isEmpty(list)) { return CollUtils.emptyList(); } List<Long> departmentIds = list.stream().map(SysDepartment::getId).collect(Collectors.toList()); List<MwWarningRecord> warningRecordList = mwWarningRecordService.lambdaQuery().in(MwWarningRecord::getDepartmentId, departmentIds).eq(MwWarningRecord::getType, type).list(); return BeanUtils.copyToList(warningRecordList, MwWarningRecordVO.class); } @@ -335,7 +350,24 @@ public List<CarDistributionVO> queryCarDistribution() { SysDepartment nanNingDepartment = getNanNingDepartment(); //查询车辆分布列表 return mwTransitCarCollectPointService.queryCarListByTreeCode(nanNingDepartment.getTreeCode()); List<CarDistributionVO> carDistributionVOS = mwTransitCarCollectPointService.queryCarListByTreeCode(nanNingDepartment.getTreeCode()); if (CollUtils.isNotEmpty(carDistributionVOS)) { for (CarDistributionVO carDistributionVO : carDistributionVOS) { MwTransitCarCollectPoint point = mwTransitCarCollectPointService.lambdaQuery().eq(MwTransitCarCollectPoint::getCarId, carDistributionVO.getId()).eq(MwTransitCarCollectPoint::getTransitDate, DateUtil.format(DateUtil.date(), DatePattern.NORM_DATE_PATTERN)).last("LIMIT 1").one(); if (Objects.nonNull(point)) { String pointList = point.getPointList(); List<Long> pointIdList = JSONArray.parseArray(pointList, Long.class); if (CollUtils.isNotEmpty(pointIdList)) { //查询最后一个点位 SysDepartment department = sysDepartmentService.getById(pointIdList.get(pointIdList.size() - 1)); carDistributionVO.setLatitude(department.getLatitude()); carDistributionVO.setLongitude(department.getLongitude()); } } } } return carDistributionVOS; } /** medicalWaste-system/src/main/java/com/sinata/system/service/biz/TaskService.java
@@ -97,7 +97,10 @@ log.info("【出库超时预警】:没有暂存的医废记录,跳过定时任务执行"); return; } //查询所有出库超时预警 List<MwWarningRecord> warningRecordList = mwWarningRecordService.lambdaQuery() .eq(MwWarningRecord::getType, WarningTypeEnum.CHECKOUT_TIMEOUT_WARNING.getCode()) .list(); // 遍历配置项并处理预警 for (MwWarningConfigItem configItem : configItems) { // 过滤出需要预警的记录 @@ -111,7 +114,9 @@ } // 创建预警记录并保存 List<MwWarningRecord> warningRecordList = recordList.stream().map(item -> { List<MwWarningRecord> warningRecordSaveList = recordList.stream().map(item -> { long count = warningRecordList.stream().filter(record -> record.getWarningTargetId().equals(item.getId())).count(); if (count == 0L) { Long id = item.getId(); String medicalWasteNumber = item.getMedicalWasteNumber(); String hospitalName = item.getHospitalName(); @@ -120,11 +125,13 @@ 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()); } return null; }).filter(Objects::nonNull).collect(Collectors.toList()); // 批量保存预警记录 if (!warningRecordList.isEmpty()) { mwWarningRecordService.saveBatch(warningRecordList); if (!warningRecordSaveList.isEmpty()) { mwWarningRecordService.saveBatch(warningRecordSaveList); } } } @@ -154,6 +161,7 @@ warningRecord.setNormalRange(normalRange); warningRecord.setStatus(WarningStatusEnum.UNRESOLVED.getCode()); warningRecord.setWarnTime(new Date()); warningRecord.setCreateTime(new Date()); return warningRecord; } medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwApplicationServiceImpl.java
@@ -74,6 +74,10 @@ mwApplication.setAuditStatus(dto.getAuditStatus() == 1 ? 2 : 3); mwApplication.setAuditOpinion(dto.getAuditOpinion()); updateById(mwApplication); //创建机构 if (dto.getAuditStatus() == 1) { sysDepartmentService.createDepartment(mwApplication); } //发送短信通知 aliSmsService.sendAuditResult(mwApplication.getPhone(), dto.getAuditStatus() == 1 ? "已通过" : "未通过"); } medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwWarningRecordServiceImpl.java
@@ -4,6 +4,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.utils.SecurityUtils; import com.sinata.common.utils.StringUtils; import com.sinata.system.domain.MwWarningRecord; import com.sinata.system.domain.query.MwWarningRecordQuery; @@ -18,6 +19,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.util.Date; import java.util.List; /** @@ -54,7 +56,10 @@ */ @Override public void relieve(Long id) { lambdaUpdate().set(MwWarningRecord::getStatus, WarningStatusEnum.RESOLVED.getCode()).eq(MwWarningRecord::getId, id).update(); lambdaUpdate().set(MwWarningRecord::getStatus, WarningStatusEnum.RESOLVED.getCode()) .set(MwWarningRecord::getUpdateTime, new Date()) .set(MwWarningRecord::getUpdateBy, SecurityUtils.getUserId()) .eq(MwWarningRecord::getId, id).update(); } @Override medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDepartmentServiceImpl.java
@@ -1,7 +1,6 @@ package com.sinata.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.constant.CacheConstants; @@ -12,6 +11,7 @@ import com.sinata.common.utils.CollUtils; import com.sinata.common.utils.SecurityUtils; import com.sinata.common.utils.StringUtils; import com.sinata.system.domain.MwApplication; import com.sinata.system.domain.SysDepartment; import com.sinata.system.domain.SysDepartmentInfo; import com.sinata.system.domain.SysUserDepartment; @@ -881,4 +881,28 @@ public List<MedicalInstitutionVO> getHospitalListByRouteId(Long id) { return baseMapper.getHospitalListByRouteId(id); } /** * 创建机构 * * @param mwApplication */ @Override public void createDepartment(MwApplication mwApplication) { SysDepartment parent = this.getById(mwApplication.getDepartmentId()); if (Objects.isNull(parent)) { throw new ServiceException("找不到对应父级组织"); } SysDepartment department = new SysDepartment(); department.setParentId(mwApplication.getDepartmentId()); department.setDepartmentName(mwApplication.getUnitName()); department.setContactPerson(mwApplication.getConcat()); department.setContactPhone(mwApplication.getPhone()); department.setOrgType(mwApplication.getUnitType().equals(1) ? DepartmentEnum.MEDICAL_INSTITUTION.getCode() : DepartmentEnum.DISPOSAL_UNIT.getCode()); department.setRegion(mwApplication.getRegion()); department.setRelation(mwApplication.getRelation()); department.setTreeCode(generateTreeCode(parent.getId())); department.setOrgCode(getOrgCode(parent.getId(), department.getOrgType())); save(department); } } medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDictDataServiceImpl.java
@@ -133,16 +133,18 @@ Page<SysDictData> result = this.lambdaQuery().like(StringUtils.isNotBlank(query.getKeyword()), SysDictData::getDictLabel, query.getKeyword()).page(new Page<>(query.getPageCurr(), query.getPageSize())); List<String> dictTypeList = result.getRecords().stream().map(SysDictData::getDictType).distinct().collect(Collectors.toList()); if (CollUtils.isNotEmpty(dictTypeList)) { PageDTO<SysDictDataVO> sysDictDataVOPageDTO = PageDTO.of(result, SysDictDataVO.class); List<SysDictType> sysDictTypes = dictTypeMapper.selectList(new LambdaQueryWrapper<SysDictType>().in(SysDictType::getDictType, dictTypeList)); result.getRecords().forEach(sysDictData -> { sysDictDataVOPageDTO.getList().forEach(vo -> { sysDictTypes.forEach(sysDictType -> { if (sysDictType.getDictType().equals(sysDictData.getDictType())) { sysDictData.setDictType(sysDictType.getDictName()); if (sysDictType.getDictType().equals(vo.getDictType())) { vo.setDictTypeName(sysDictType.getDictName()); } }); }); return sysDictDataVOPageDTO; } return PageDTO.of(result, SysDictDataVO.class); return PageDTO.empty(result); } @Override medicalWaste-system/src/main/resources/mapper/system/MwCollectRecordMapper.xml
@@ -477,10 +477,9 @@ COALESCE(SUM(IF(TRUNC(MCR.COLLECT_TIME) = TRUNC(SYSDATE), MCR.WEIGHT, 0)), 0) AS todayHandleWeight, COALESCE(COUNT(IF(TRUNC(MCR.COLLECT_TIME) = TRUNC(SYSDATE), MCR.ID, NULL)), 0) AS todayHandleBagNum FROM MW_COLLECT_RECORD MCR LEFT JOIN SYS_DEPARTMENT SD ON MCR.DEPARTMENT_ID todayHandleBagNum FROM MW_COLLECT_RECORD MCR LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MCR.DEPARTMENT_ID <where> MCR.DEL_FLAG = 0, MCR.DEPARTMENT_ID = #{id} MCR.DEL_FLAG = 0 AND MCR.DEPARTMENT_ID = #{id} </where> GROUP BY MCR.DEPARTMENT_ID </select> medicalWaste-system/src/main/resources/mapper/system/MwDisposalHandleRecordItemMapper.xml
medicalWaste-system/src/main/resources/mapper/system/MwDisposalRecordMapper.xml
@@ -174,13 +174,11 @@ todayHandleWeight, COALESCE(COUNT(IF(TRUNC(MCR.DISPOSAL_TIME) = TRUNC(SYSDATE) AND MCR.STATUS = 4, MCR.ID, NULL)), 0) AS todayHandleBagNum FROM MW_DISPOSAL_RECORD MDR FROM SYS_DEPARTMENT SD LEFT JOIN MW_DISPOSAL_RECORD MDR ON MDR.DEPARTMENT_ID = SD.ID LEFT JOIN MW_DISPOSAL_RECORD_ITEM MDRI ON MDR.ID = MDRI.DISPOSAL_RECORD_ID LEFT JOIN MW_COLLECT_RECORD MCR ON MCR.ID = MDRI.COLLECT_RECORD_ID LEFT JOIN SYS_DEPARTMENT SD ON MDR.DEPARTMENT_ID <where> MDR.DEL_FLAG = 0 AND MDR.DEPARTMENT_ID = #{id} SD.ID = #{id} </where> GROUP BY MDR.DEPARTMENT_ID </select> medicalWaste-system/src/main/resources/mapper/system/MwTransitCarCollectPointMapper.xml
File was renamed from medicalWaste-system/src/main/java/com/sinata/system/mapper/xml/MwTransitCarCollectPointMapper.xml @@ -21,30 +21,31 @@ </sql> <select id="queryCarListByTreeCode" resultType="com.sinata.system.domain.vo.CarDistributionVO" parameterType="java.lang.String"> SELECT MTC.ID, SELECT MTC.ID, MTC.LICENSE_PLATE_NUMBER, SD.DEPARTMENT_NAME, SUM(MCR.TOTAL_WEIGHT) AS currentLoad FROM MW_TRANSIT_CAR_COLLECT_POINT MTCCP LEFT JOIN MW_TRANSIT_CAR MTC ON MTC.ID = MTCCP.CAR_ID LEFT JOIN SYS_DEPARTMENT SD ON MTC.DEPARTMENT_ID LEFT JOIN SYS_DEPARTMENT SD ON MTC.DEPARTMENT_ID = SD.ID LEFT JOIN MW_CHECKOUT_RECORD MCR ON MCR.CAR_ID = MTCCP.CAR_ID <where> SD.ORG_TYPE = 3 AND MTCCP.TRANSIT_DATE = CURDATE() AND SD.TREE_CODE LIKE CONCAT(#{treeCode}, '%') AND MCR.DEL_FLAG = 0 </where> ORDER BY MTC.ID GROUP BY MTCCP.CAR_ID </select> <select id="queryCarDistributionDetail" resultType="com.sinata.system.domain.vo.CarDistributionVO" parameterType="java.lang.Long"> SELECT MTC.ID, SD.DEPARTMENT_NAME, MTC.LICENSE_PLATE_NUMBER,MTC.PERSON_IN_CHARGE,MTC.PHONE_NUMBER,MTC.MAXIMUM_LOAD, MTC.LICENSE_PLATE_NUMBER,MTC.PERSON_IN_CHARGE,MTC.PHONE_NUMBER,MTC.MAXIMUM_LOAD,MTC.IMAGE_URL, SUM(MCR.TOTAL_WEIGHT) AS currentLoad, MTCCP.POINT_LIST FROM MW_TRANSIT_CAR_COLLECT_POINT MTCCP LEFT JOIN MW_TRANSIT_CAR MTC ON MTC.ID = MTCCP.CAR_ID LEFT JOIN SYS_DEPARTMENT SD ON MTC.DEPARTMENT_ID LEFT JOIN SYS_DEPARTMENT SD ON MTC.DEPARTMENT_ID = SD.ID LEFT JOIN MW_CHECKOUT_RECORD MCR ON MCR.CAR_ID = MTCCP.CAR_ID <where> SD.ORG_TYPE = 3 AND MTCCP.TRANSIT_DATE = CURDATE() AND