mitao
2024-12-18 ae265295dd977b0d64309b0471e8d3b0d626ccf3
运输管理接口
30个文件已修改
14个文件已添加
1720 ■■■■■ 已修改文件
medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwCheckoutRecordController.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwProtectionEquipmentController.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwTransitCarAnnualInspectionController.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwTransitCarController.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwTransitCarMaintenanceController.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/domain/MwProtectionEquipment.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/domain/MwProtectionEquipmentRecord.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/domain/MwTransitCar.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwProtectionEquipmentDTO.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwProtectionEquipmentRecordDTO.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitCarAnnualInspectionDTO.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitCarDTO.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitCarMaintenanceDTO.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/domain/query/CheckoutRecordQuery.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/domain/query/MwProtectionEquipmentQuery.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/domain/query/MwTransitCarAnnualInspectionQuery.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/domain/query/MwTransitCarMaintenanceQuery.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/domain/query/MwTransitRecordQuery.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/domain/query/TransitCarQuery.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwCheckoutRecordExcelVO.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwCheckoutRecordVO.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwProtectionEquipmentVO.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitCarAnnualInspectionVO.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitCarMaintenanceVO.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitCarVO.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitRecordVO.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/mapper/MwCheckoutRecordMapper.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/mapper/MwProtectionEquipmentMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/mapper/MwTransitCarMapper.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/service/MwCheckoutRecordService.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/service/MwProtectionEquipmentRecordService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/service/MwProtectionEquipmentService.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/service/MwTransitCarAnnualInspectionService.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/service/MwTransitCarMaintenanceService.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/service/MwTransitCarService.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwCheckoutRecordServiceImpl.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwProtectionEquipmentRecordServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwProtectionEquipmentServiceImpl.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwTransitCarAnnualInspectionServiceImpl.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwTransitCarMaintenanceServiceImpl.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwTransitCarServiceImpl.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/resources/mapper/system/MwCheckoutRecordMapper.xml 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/resources/mapper/system/MwProtectionEquipmentMapper.xml 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/resources/mapper/system/MwTransitCarMapper.xml 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwCheckoutRecordController.java
@@ -21,7 +21,9 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
/**
 * <p>
@@ -51,6 +53,21 @@
        return R.ok(mwCheckoutRecordService.pageHospitalTransitList(query));
    }
    /**
     * 转运记录导出
     *
     * @param query
     * @param response
     */
    @PostMapping("/hospital/export")
    @ApiOperation("转运记录导出")
    public void checkoutRecordExport(@RequestBody CheckoutRecordQuery query, HttpServletResponse response) {
        try {
            mwCheckoutRecordService.checkoutRecordExport(query, response);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
    /**
     * 转运记录详情
     *
@@ -86,4 +103,28 @@
    public R<PageDTO<MwTransitRecordVO>> transitPageList(@Valid @RequestBody MwTransitRecordQuery query) {
        return R.ok(mwCheckoutRecordService.transitPageList(query));
    }
    /**
     * 运输记录详情
     *
     * @param id
     * @return
     */
    @GetMapping("/transit/detail/{id}")
    @ApiOperation("运输记录详情")
    public R<MwTransitRecordVO> transitDetail(@ApiParam(name = "id", value = "运输记录id", required = true) @PathVariable("id") Long id) {
        return R.ok(mwCheckoutRecordService.transitDetail(id));
    }
    /**
     * 运输记录详情分页列表
     *
     * @param query
     * @return
     */
    @PostMapping("/transit/detailPage")
    @ApiOperation("运输记录详情分页列表")
    public R<PageDTO<MwMedicalWasteBoxVO>> transitDetailPage(@Valid @RequestBody MwTransitRecordQuery query) {
        return R.ok(mwCheckoutRecordService.transitDetailPageList(query));
    }
}
medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwProtectionEquipmentController.java
@@ -1,7 +1,26 @@
package com.sinata.web.controller.backend;
import com.sinata.common.core.domain.R;
import com.sinata.common.entity.PageDTO;
import com.sinata.system.domain.dto.MwProtectionEquipmentDTO;
import com.sinata.system.domain.dto.MwProtectionEquipmentRecordDTO;
import com.sinata.system.domain.query.MwProtectionEquipmentQuery;
import com.sinata.system.domain.vo.MwProtectionEquipmentVO;
import com.sinata.system.service.MwProtectionEquipmentService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
/**
 * <p>
@@ -11,8 +30,85 @@
 * @author mitao
 * @since 2024-12-02
 */
@Validated
@RestController
@RequiredArgsConstructor
@Api(tags = {"防护器具相关接口"})
@RequestMapping("/backend/mwProtectionEquipment")
public class MwProtectionEquipmentController {
    private final MwProtectionEquipmentService mwProtectionEquipmentService;
    /**
     * 防护器具分页列表
     *
     * @param query
     * @return
     */
    @PostMapping("/page")
    @ApiOperation("防护器具分页列表")
    public R<PageDTO<MwProtectionEquipmentVO>> pageList(@Valid @RequestBody MwProtectionEquipmentQuery query) {
        return R.ok(mwProtectionEquipmentService.pageList(query));
    }
    /**
     * 详情
     *
     * @param id
     * @return
     */
    @GetMapping("/{id}")
    @ApiOperation("详情")
    public R<MwProtectionEquipmentVO> detail(@ApiParam(name = "id", value = "防护器具id", required = true) @PathVariable("id") Long id) {
        return R.ok(mwProtectionEquipmentService.detail(id));
    }
    /**
     * 新增防护器具
     *
     * @param dto
     * @return
     */
    @PostMapping("/add")
    @ApiOperation("新增防护器具")
    public R<?> add(@Valid @RequestBody MwProtectionEquipmentDTO dto) {
        mwProtectionEquipmentService.add(dto);
        return R.ok();
    }
    /**
     * 编辑
     *
     * @param dto
     * @return
     */
    @PostMapping("/edit")
    @ApiOperation("编辑")
    public R<?> edit(@Valid @RequestBody MwProtectionEquipmentDTO dto) {
        mwProtectionEquipmentService.edit(dto);
        return R.ok();
    }
    /**
     * @param id
     * @return
     */
    @DeleteMapping("/{id}")
    @ApiOperation("删除")
    public R<?> delete(@ApiParam(name = "id", value = "防护器具id", required = true) @PathVariable("id") Long id) {
        mwProtectionEquipmentService.removeById(id);
        return R.ok();
    }
    /**
     * 增加库存
     *
     * @param dto
     */
    @PostMapping("/addStock")
    @ApiOperation("增加库存")
    public R<?> addStock(@Valid @RequestBody MwProtectionEquipmentRecordDTO dto) {
        mwProtectionEquipmentService.addStock(dto);
        return R.ok();
    }
}
medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwTransitCarAnnualInspectionController.java
@@ -1,7 +1,25 @@
package com.sinata.web.controller.backend;
import com.sinata.common.core.domain.R;
import com.sinata.common.entity.PageDTO;
import com.sinata.system.domain.dto.MwTransitCarAnnualInspectionDTO;
import com.sinata.system.domain.query.MwTransitCarAnnualInspectionQuery;
import com.sinata.system.domain.vo.MwTransitCarAnnualInspectionVO;
import com.sinata.system.service.MwTransitCarAnnualInspectionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
/**
 * <p>
@@ -11,8 +29,73 @@
 * @author mitao
 * @since 2024-12-02
 */
@Api(tags = {"车辆年检记录相关接口"})
@Validated
@RestController
@RequiredArgsConstructor
@RequestMapping("/backend/mwTransitCarAnnualInspection")
public class MwTransitCarAnnualInspectionController {
    private final MwTransitCarAnnualInspectionService mwTransitCarAnnualInspectionService;
    /**
     * 年检记录分页列表
     *
     * @param query
     * @return
     */
    @PostMapping("/page")
    @ApiOperation("年检记录分页列表")
    public R<PageDTO<MwTransitCarAnnualInspectionVO>> pageList(@Valid @RequestBody MwTransitCarAnnualInspectionQuery query) {
        return R.ok(mwTransitCarAnnualInspectionService.pageList(query));
    }
    /**
     * 详情
     *
     * @param id
     * @return
     */
    @GetMapping("/{id}")
    @ApiOperation("详情")
    public R<MwTransitCarAnnualInspectionVO> detail(@ApiParam(name = "id", value = "年检记录id", required = true) @PathVariable("id") Long id) {
        return R.ok(mwTransitCarAnnualInspectionService.detail(id));
    }
    /**
     * 新增年检记录
     *
     * @param dto
     */
    @PostMapping("/add")
    @ApiOperation("新增年检记录")
    public R<?> add(@Valid @RequestBody MwTransitCarAnnualInspectionDTO dto) {
        mwTransitCarAnnualInspectionService.add(dto);
        return R.ok();
    }
    /**
     * 编辑年检记录
     *
     * @param dto
     * @return
     */
    @PostMapping("/edit")
    @ApiOperation("编辑年检记录")
    public R<?> edit(@Valid @RequestBody MwTransitCarAnnualInspectionDTO dto) {
        mwTransitCarAnnualInspectionService.edit(dto);
        return R.ok();
    }
    /**
     * 删除
     *
     * @param id
     * @return
     */
    @DeleteMapping("/{id}")
    @ApiOperation("删除")
    public R<?> delete(@ApiParam(name = "id", value = "年检记录id", required = true) @PathVariable("id") Long id) {
        mwTransitCarAnnualInspectionService.removeById(id);
        return R.ok();
    }
}
medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwTransitCarController.java
@@ -1,7 +1,25 @@
package com.sinata.web.controller.backend;
import com.sinata.common.core.domain.R;
import com.sinata.common.entity.PageDTO;
import com.sinata.system.domain.dto.MwTransitCarDTO;
import com.sinata.system.domain.query.TransitCarQuery;
import com.sinata.system.domain.vo.MwTransitCarVO;
import com.sinata.system.service.MwTransitCarService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
/**
 * <p>
@@ -11,8 +29,76 @@
 * @author mitao
 * @since 2024-12-02
 */
@Validated
@RestController
@RequiredArgsConstructor
@Api(tags = {"车辆管理相关接口"})
@RequestMapping("/backend/mwTransitCar")
public class MwTransitCarController {
    private final MwTransitCarService mwTransitCarService;
    /**
     * 车辆分页列表
     *
     * @param query
     * @return
     */
    @PostMapping("/page")
    @ApiOperation("车辆分页列表")
    public R<PageDTO<MwTransitCarVO>> pageList(@Valid @RequestBody TransitCarQuery query) {
        return R.ok(mwTransitCarService.pageList(query));
    }
    /**
     * 详情
     *
     * @param id
     * @return
     */
    @GetMapping("/{id}")
    @ApiOperation("详情")
    public R<MwTransitCarVO> detail(@ApiParam(name = "id", value = "车辆id", required = true) @PathVariable("id") Long id) {
        return R.ok(mwTransitCarService.detail(id));
    }
    /**
     * 新增车辆
     *
     * @param dto
     * @return
     */
    @PostMapping("/add")
    @ApiOperation("新增车辆")
    public R<?> add(@Valid @RequestBody MwTransitCarDTO dto) {
        mwTransitCarService.add(dto);
        return R.ok();
    }
    /**
     * 编辑车辆
     *
     * @param dto
     * @return
     */
    @PostMapping("/edit")
    @ApiOperation("编辑车辆")
    public R<?> edit(@Valid @RequestBody MwTransitCarDTO dto) {
        mwTransitCarService.edit(dto);
        return R.ok();
    }
    /**
     * 删除
     *
     * @param id
     * @return
     */
    @DeleteMapping("/{id}")
    @ApiOperation("删除")
    public R<?> delete(@ApiParam(name = "id", value = "车辆id", required = true) @PathVariable("id") Long id) {
        mwTransitCarService.removeById(id);
        return R.ok();
    }
}
medicalWaste-admin/src/main/java/com/sinata/web/controller/backend/MwTransitCarMaintenanceController.java
@@ -1,7 +1,25 @@
package com.sinata.web.controller.backend;
import com.sinata.common.core.domain.R;
import com.sinata.common.entity.PageDTO;
import com.sinata.system.domain.dto.MwTransitCarMaintenanceDTO;
import com.sinata.system.domain.query.MwTransitCarMaintenanceQuery;
import com.sinata.system.domain.vo.MwTransitCarMaintenanceVO;
import com.sinata.system.service.MwTransitCarMaintenanceService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
/**
 * <p>
@@ -11,8 +29,75 @@
 * @author mitao
 * @since 2024-12-02
 */
@Validated
@RestController
@RequiredArgsConstructor
@Api(tags = {"车辆保养记录相关接口"})
@RequestMapping("/backend/mwTransitCarMaintenance")
public class MwTransitCarMaintenanceController {
    private final MwTransitCarMaintenanceService mwTransitCarMaintenanceService;
    /**
     * 保养记录分页列表
     *
     * @param query
     * @return
     */
    @PostMapping("/page")
    @ApiOperation("保养记录分页列表")
    public R<PageDTO<MwTransitCarMaintenanceVO>> pageList(@Valid @RequestBody MwTransitCarMaintenanceQuery query) {
        return R.ok(mwTransitCarMaintenanceService.pageList(query));
    }
    /**
     * 详情
     *
     * @param id
     * @return
     */
    @GetMapping("/{id}")
    @ApiOperation("详情")
    public R<MwTransitCarMaintenanceVO> detail(@ApiParam(name = "id", value = "保养记录id", required = true) @PathVariable Long id) {
        return R.ok(mwTransitCarMaintenanceService.detail(id));
    }
    /**
     * 新增
     *
     * @param dto
     * @return
     */
    @PostMapping("/add")
    @ApiOperation("新增")
    public R<?> add(@Valid @RequestBody MwTransitCarMaintenanceDTO dto) {
        mwTransitCarMaintenanceService.add(dto);
        return R.ok();
    }
    /**
     * 编辑
     *
     * @param dto
     * @return
     */
    @PostMapping("/edit")
    @ApiOperation("编辑")
    public R<?> edit(@Valid @RequestBody MwTransitCarMaintenanceDTO dto) {
        mwTransitCarMaintenanceService.edit(dto);
        return R.ok();
    }
    /**
     * 删除
     *
     * @param id
     * @return
     */
    @DeleteMapping("/{id}")
    @ApiOperation("删除")
    public R<?> delete(@ApiParam(name = "id", value = "保养记录id", required = true) @PathVariable("id") Long id) {
        mwTransitCarMaintenanceService.removeById(id);
        return R.ok();
    }
}
medicalWaste-system/src/main/java/com/sinata/system/domain/MwProtectionEquipment.java
@@ -38,6 +38,10 @@
    @TableField("PROTECTION_EQUIPMENT_TYPE")
    private Long protectionEquipmentType;
    @ApiModelProperty("器具类型名称")
    @TableField("PROTECTION_EQUIPMENT_TYPE_STR")
    private String protectionEquipmentTypeStr;
    @ApiModelProperty("器具名称")
    @TableField("EQUIPMENT_NAME")
    private String equipmentName;
medicalWaste-system/src/main/java/com/sinata/system/domain/MwProtectionEquipmentRecord.java
@@ -46,5 +46,9 @@
    @TableField("OPERATOR")
    private String operator;
    @ApiModelProperty("备注")
    @TableField("REMARK")
    private String remark;
}
medicalWaste-system/src/main/java/com/sinata/system/domain/MwTransitCar.java
@@ -10,6 +10,8 @@
import lombok.Getter;
import lombok.Setter;
import java.math.BigDecimal;
/**
 * <p>
 * 运输车辆
@@ -64,7 +66,7 @@
    @ApiModelProperty("最大载重")
    @TableField("MAXIMUM_LOAD")
    private Double maximumLoad;
    private BigDecimal maximumLoad;
    @ApiModelProperty("备注")
    @TableField("REMARK")
medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwProtectionEquipmentDTO.java
New file
@@ -0,0 +1,37 @@
package com.sinata.system.domain.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
 * @author mitao
 * @date 2024/12/18
 */
@Data
@ApiModel("防护器具数据传输对象")
public class MwProtectionEquipmentDTO {
    @ApiModelProperty("防护器具id")
    private Long id;
    @ApiModelProperty("区域id(处置单位id)")
    @NotNull(message = "区域id不能为空")
    private Long departmentId;
    @ApiModelProperty("器具类型(数据字典)")
    @NotNull(message = "器具类型不能为空")
    private Long protectionEquipmentType;
    @ApiModelProperty("器具名称")
    @NotNull(message = "器具名称不能为空")
    private String equipmentName;
    @ApiModelProperty("备注")
    private String remark;
    @ApiModelProperty("附件,多个使用英文逗号拼接")
    private String attachment;
}
medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwProtectionEquipmentRecordDTO.java
New file
@@ -0,0 +1,26 @@
package com.sinata.system.domain.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author mitao
 * @date 2024/12/18
 */
@Data
@ApiModel("防护器具增减记录数据传输对象")
public class MwProtectionEquipmentRecordDTO {
    @ApiModelProperty("防护器具id")
    private Long protectionEquipmentId;
    @ApiModelProperty("库存变动数量")
    private Integer changeQuantity;
    @ApiModelProperty("经办人")
    private String operator;
    @ApiModelProperty("备注")
    private String remark;
}
medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitCarAnnualInspectionDTO.java
New file
@@ -0,0 +1,43 @@
package com.sinata.system.domain.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * @author mitao
 * @date 2024/12/18
 */
@Data
@ApiModel("车辆年检记录数据传输对象")
public class MwTransitCarAnnualInspectionDTO {
    @ApiModelProperty("车辆年检记录id")
    private Long id;
    @ApiModelProperty("车辆id")
    private Long carId;
    @ApiModelProperty("年检日期")
    private Date inspectionDate;
    @ApiModelProperty("下次年检到期日")
    private Date nextInspectionDate;
    @ApiModelProperty("检验机构名称")
    private String inspectionAgency;
    @ApiModelProperty("检验结果 1:合格 0:不合格")
    private Integer inspectionResult;
    @ApiModelProperty("经办人姓名")
    private String operator;
    @ApiModelProperty("检验证明图片")
    private String certificateImageUrl;
    @ApiModelProperty("备注")
    private String remark;
}
medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitCarDTO.java
New file
@@ -0,0 +1,48 @@
package com.sinata.system.domain.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
 * @author mitao
 * @date 2024/12/18
 */
@Data
@ApiModel("车辆数据传输对象")
public class MwTransitCarDTO {
    @ApiModelProperty("车辆id")
    private Long id;
    @ApiModelProperty("区域id(处置单位id)")
    private Long departmentId;
    @ApiModelProperty("车辆图片")
    private String imageUrl;
    @ApiModelProperty("车牌号")
    private String licensePlateNumber;
    @ApiModelProperty("负责人")
    private String personInCharge;
    @ApiModelProperty("负责人联系方式")
    private String phoneNumber;
    @ApiModelProperty("车辆品牌")
    private String brand;
    @ApiModelProperty("车辆颜色")
    private String color;
    @ApiModelProperty("车辆识别代码")
    private String code;
    @ApiModelProperty("最大载重")
    private BigDecimal maximumLoad;
    @ApiModelProperty("备注")
    private String remark;
}
medicalWaste-system/src/main/java/com/sinata/system/domain/dto/MwTransitCarMaintenanceDTO.java
New file
@@ -0,0 +1,45 @@
package com.sinata.system.domain.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
 * @author mitao
 * @date 2024/12/18
 */
@Data
@ApiModel("车辆保养记录数据传输对象")
public class MwTransitCarMaintenanceDTO {
    @ApiModelProperty("车辆保养记录id")
    private Long id;
    @ApiModelProperty("车辆id")
    @NotNull(message = "车辆id不能为空")
    private Long carId;
    @ApiModelProperty("保养日期")
    private Date maintenanceDate;
    @ApiModelProperty("保养项目")
    private String maintenanceItem;
    @ApiModelProperty("保养时里程数")
    private Double mileage;
    @ApiModelProperty("保养地点")
    private String maintenanceLocation;
    @ApiModelProperty("经办人姓名")
    private String operator;
    @ApiModelProperty("附加图片")
    private String imageUrl;
    @ApiModelProperty("备注")
    private String remark;
}
medicalWaste-system/src/main/java/com/sinata/system/domain/query/CheckoutRecordQuery.java
@@ -7,6 +7,7 @@
import lombok.EqualsAndHashCode;
import java.util.Date;
import java.util.List;
/**
 * @author mitao
@@ -30,4 +31,9 @@
    @ApiModelProperty("出库时间-结束")
    private Date checkoutTimeEnd;
    @ApiModelProperty("id列表")
    private List<Long> ids;
}
medicalWaste-system/src/main/java/com/sinata/system/domain/query/MwProtectionEquipmentQuery.java
New file
@@ -0,0 +1,28 @@
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;
/**
 * @author mitao
 * @date 2024/12/18
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("防护器具查询数据传输对象")
public class MwProtectionEquipmentQuery extends BasePage {
    private static final long serialVersionUID = 5232781881563841706L;
    @ApiModelProperty("机构id")
    private Long departmentId;
    @ApiModelProperty("器具类型(数据字典)")
    private Long protectionEquipmentType;
    @ApiModelProperty("器具名称")
    private String equipmentName;
}
medicalWaste-system/src/main/java/com/sinata/system/domain/query/MwTransitCarAnnualInspectionQuery.java
New file
@@ -0,0 +1,25 @@
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 javax.validation.constraints.NotNull;
/**
 * @author mitao
 * @date 2024/12/18
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("车辆年检记录查询数据传输对象")
public class MwTransitCarAnnualInspectionQuery extends BasePage {
    private static final long serialVersionUID = 377102013493203764L;
    @ApiModelProperty("车辆id")
    @NotNull(message = "车辆id不能为空")
    private Long id;
}
medicalWaste-system/src/main/java/com/sinata/system/domain/query/MwTransitCarMaintenanceQuery.java
New file
@@ -0,0 +1,25 @@
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 javax.validation.constraints.NotNull;
/**
 * @author mitao
 * @date 2024/12/18
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("车辆保养记录查询数据传输对象")
public class MwTransitCarMaintenanceQuery extends BasePage {
    private static final long serialVersionUID = 566706371010982081L;
    @ApiModelProperty("车辆id")
    @NotNull(message = "车辆id不能为空")
    private Long id;
}
medicalWaste-system/src/main/java/com/sinata/system/domain/query/MwTransitRecordQuery.java
@@ -18,6 +18,9 @@
public class MwTransitRecordQuery extends BasePage {
    private static final long serialVersionUID = 3585169031300259198L;
    
    @ApiModelProperty("路线id")
    private Long id;
    @ApiModelProperty("机构id")
    private Long departmentId;
medicalWaste-system/src/main/java/com/sinata/system/domain/query/TransitCarQuery.java
New file
@@ -0,0 +1,32 @@
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;
/**
 * @author mitao
 * @date 2024/12/18
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("车辆查询数据传输对象")
public class TransitCarQuery extends BasePage {
    private static final long serialVersionUID = -7535232627331851047L;
    @ApiModelProperty("机构id")
    private Long departmentId;
    @ApiModelProperty("车牌号")
    private String licensePlateNumber;
    @ApiModelProperty("负责人")
    private String personInCharge;
    @ApiModelProperty("负责人联系方式")
    private String phoneNumber;
}
medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwCheckoutRecordExcelVO.java
New file
@@ -0,0 +1,57 @@
package com.sinata.system.domain.vo;
import cn.idev.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
 * @author mitao
 * @date 2024/12/13
 */
@Data
@ApiModel("转运记录视图对象")
public class MwCheckoutRecordExcelVO implements Serializable {
    private static final long serialVersionUID = -851971023455890457L;
    @ApiModelProperty("记录id")
    private Long id;
    @ExcelProperty(value = "转运时间", index = 1)
    private Date checkoutTime;
    @ApiModelProperty("医院名称")
    @ExcelProperty(value = "医院名称", index = 2)
    private String hospitalName;
    @ApiModelProperty("箱数")
    @ExcelProperty(value = "箱数", index = 3)
    private Integer boxNum;
    @ApiModelProperty("袋数")
    @ExcelProperty(value = "袋数", index = 4)
    private Integer bagNum;
    @ApiModelProperty("总重量")
    @ExcelProperty(value = "重量", index = 5)
    private BigDecimal totalWeight;
    @ApiModelProperty("司机姓名")
    @ExcelProperty(value = "司机姓名", index = 6)
    private String driverName;
    @ApiModelProperty("车牌号")
    @ExcelProperty(value = "车牌号", index = 7)
    private String licensePlateNumber;
    @ApiModelProperty("转运线路")
    @ExcelProperty(value = "转运路线", index = 8)
    private String routeName;
}
medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwCheckoutRecordVO.java
@@ -23,6 +23,7 @@
    private Long id;
    @ApiModelProperty("出库时间")
    @ExcelProperty(value = "出库时间", index = 1)
    private Date checkoutTime;
    @ApiModelProperty("区域id")
@@ -33,24 +34,31 @@
    private String hospitalName;
    @ApiModelProperty("暂存间名称")
    @ExcelProperty(value = "暂存间", index = 3)
    private String roomName;
    @ApiModelProperty("箱数")
    @ExcelProperty(value = "箱数", index = 4)
    private Integer boxNum;
    @ApiModelProperty("袋数")
    @ExcelProperty(value = "袋数", index = 5)
    private Integer bagNum;
    @ApiModelProperty("总重量")
    @ExcelProperty(value = "总重量", index = 6)
    private BigDecimal totalWeight;
    
    @ApiModelProperty("医院签名")
    @ExcelProperty(value = "医院签名", index = 7)
    private String hospitalSignature;
    @ApiModelProperty("司机姓名")
    @ExcelProperty(value = "司机姓名", index = 8)
    private String driverName;
    @ApiModelProperty("车牌号")
    @ExcelProperty(value = "车牌号", index = 9)
    private String licensePlateNumber;
    @ApiModelProperty("转运线路")
medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwProtectionEquipmentVO.java
New file
@@ -0,0 +1,41 @@
package com.sinata.system.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author mitao
 * @date 2024/12/18
 */
@Data
@ApiModel("防护器具视图对象")
public class MwProtectionEquipmentVO {
    @ApiModelProperty("防护器具id")
    private Long id;
    @ApiModelProperty("区域id(处置单位id)")
    private Long departmentId;
    @ApiModelProperty("所属单位")
    private String departmentName;
    @ApiModelProperty("器具类型(数据字典)")
    private Long protectionEquipmentType;
    @ApiModelProperty("器具类型名称")
    private Long protectionEquipmentTypeStr;
    @ApiModelProperty("器具名称")
    private String equipmentName;
    @ApiModelProperty("库存")
    private Integer stock;
    @ApiModelProperty("备注")
    private String remark;
    @ApiModelProperty("附件,多个使用英文逗号拼接")
    private String attachment;
}
medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitCarAnnualInspectionVO.java
New file
@@ -0,0 +1,41 @@
package com.sinata.system.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * @author mitao
 * @date 2024/12/18
 */
@Data
@ApiModel("车辆年检记录视图对象")
public class MwTransitCarAnnualInspectionVO {
    @ApiModelProperty("车辆年检记录id")
    private Long id;
    @ApiModelProperty("年检日期")
    private Date inspectionDate;
    @ApiModelProperty("下次年检到期日")
    private Date nextInspectionDate;
    @ApiModelProperty("检验机构名称")
    private String inspectionAgency;
    @ApiModelProperty("检验结果 1:合格 0:不合格")
    private Integer inspectionResult;
    @ApiModelProperty("经办人姓名")
    private String operator;
    @ApiModelProperty("检验证明图片")
    private String certificateImageUrl;
    @ApiModelProperty("备注")
    private String remark;
}
medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitCarMaintenanceVO.java
New file
@@ -0,0 +1,40 @@
package com.sinata.system.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * @author mitao
 * @date 2024/12/18
 */
@Data
@ApiModel("车辆保养记录视图对象")
public class MwTransitCarMaintenanceVO {
    @ApiModelProperty("车辆保养记录id")
    private Long id;
    @ApiModelProperty("保养日期")
    private Date maintenanceDate;
    @ApiModelProperty("保养项目")
    private String maintenanceItem;
    @ApiModelProperty("保养时里程数")
    private Double mileage;
    @ApiModelProperty("保养地点")
    private String maintenanceLocation;
    @ApiModelProperty("经办人姓名")
    private String operator;
    @ApiModelProperty("附加图片")
    private String imageUrl;
    @ApiModelProperty("备注")
    private String remark;
}
medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitCarVO.java
New file
@@ -0,0 +1,52 @@
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/18
 */
@Data
@ApiModel("车辆视图对象")
public class MwTransitCarVO {
    @ApiModelProperty("车辆id")
    private Long id;
    @ApiModelProperty("区域id(处置单位id)")
    private Long departmentId;
    @ApiModelProperty("处置单位")
    private String departmentName;
    @ApiModelProperty("车辆图片")
    private String imageUrl;
    @ApiModelProperty("车牌号")
    private String licensePlateNumber;
    @ApiModelProperty("负责人")
    private String personInCharge;
    @ApiModelProperty("负责人联系方式")
    private String phoneNumber;
    @ApiModelProperty("车辆品牌")
    private String brand;
    @ApiModelProperty("车辆颜色")
    private String color;
    @ApiModelProperty("车辆识别代码")
    private String code;
    @ApiModelProperty("最大载重")
    private BigDecimal maximumLoad;
    @ApiModelProperty("备注")
    private String remark;
}
medicalWaste-system/src/main/java/com/sinata/system/domain/vo/MwTransitRecordVO.java
@@ -15,7 +15,7 @@
@ApiModel("运输记录视图对象")
public class MwTransitRecordVO {
    @ApiModelProperty("车辆id")
    @ApiModelProperty("路线id")
    private Long id;
    @ApiModelProperty("单位名称")
@@ -38,4 +38,7 @@
    @ApiModelProperty("运输结束时间")
    private Date endTime;
    @ApiModelProperty("状态 1:暂存中; 2:运输中; 3:已接收; 4:已处置;")
    private Integer status;
}
medicalWaste-system/src/main/java/com/sinata/system/mapper/MwCheckoutRecordMapper.java
@@ -11,6 +11,8 @@
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * <p>
 * 暂存间出库记录 Mapper 接口
@@ -57,4 +59,29 @@
     * @return
     */
    Page<MwTransitRecordVO> transitPageList(Page<MwTransitRecordVO> page, @Param("query") MwTransitRecordQuery query, String treeCode);
    /**
     * 运输记录详情
     *
     * @param id
     * @return
     */
    MwTransitRecordVO transitDetail(Long id);
    /**
     * 运输记录详情分页列表
     *
     * @param objectPage
     * @param id
     * @return
     */
    Page<MwMedicalWasteBoxVO> transitDetailPageList(Page<MwMedicalWasteBoxVO> objectPage, Long id);
    /**
     * 转运记录导出
     *
     * @param query
     * @param treeCode
     */
    List<MwCheckoutRecordVO> hospitalTransitList(@Param("query") CheckoutRecordQuery query, @Param("treeCode") String treeCode);
}
medicalWaste-system/src/main/java/com/sinata/system/mapper/MwProtectionEquipmentMapper.java
@@ -1,8 +1,12 @@
package com.sinata.system.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sinata.system.domain.MwProtectionEquipment;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sinata.system.domain.query.MwProtectionEquipmentQuery;
import com.sinata.system.domain.vo.MwProtectionEquipmentVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
@@ -14,5 +18,13 @@
 */
@Mapper
public interface MwProtectionEquipmentMapper extends BaseMapper<MwProtectionEquipment> {
    /**
     * 防护器具分页列表
     *
     * @param page
     * @param query
     * @param treeCode
     * @return
     */
    Page<MwProtectionEquipmentVO> pageList(Page<MwProtectionEquipmentVO> page, @Param("query") MwProtectionEquipmentQuery query, @Param("treeCode") String treeCode);
}
medicalWaste-system/src/main/java/com/sinata/system/mapper/MwTransitCarMapper.java
@@ -1,8 +1,12 @@
package com.sinata.system.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sinata.system.domain.MwTransitCar;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sinata.system.domain.query.TransitCarQuery;
import com.sinata.system.domain.vo.MwTransitCarVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
@@ -14,5 +18,21 @@
 */
@Mapper
public interface MwTransitCarMapper extends BaseMapper<MwTransitCar> {
    /**
     * 车辆分页列表
     *
     * @param page
     * @param query
     * @param treeCode
     * @return
     */
    Page<MwTransitCarVO> pageList(Page<MwTransitCarVO> page, @Param("query") TransitCarQuery query, @Param("treeCode") String treeCode);
    /**
     * 详情
     *
     * @param id
     * @return
     */
    MwTransitCarVO detail(Long id);
}
medicalWaste-system/src/main/java/com/sinata/system/service/MwCheckoutRecordService.java
@@ -10,6 +10,9 @@
import com.sinata.system.domain.vo.MwMedicalWasteBoxVO;
import com.sinata.system.domain.vo.MwTransitRecordVO;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
 * <p>
 * 暂存间出库记录 服务类
@@ -50,4 +53,28 @@
     * @return
     */
    PageDTO<MwTransitRecordVO> transitPageList(MwTransitRecordQuery query);
    /**
     * 运输记录详情
     *
     * @param id
     * @return
     */
    MwTransitRecordVO transitDetail(Long id);
    /**
     * 运输记录详情分页列表
     *
     * @param query
     * @return
     */
    PageDTO<MwMedicalWasteBoxVO> transitDetailPageList(MwTransitRecordQuery query);
    /**
     * 转运记录导出
     *
     * @param query
     * @param response
     */
    void checkoutRecordExport(CheckoutRecordQuery query, HttpServletResponse response) throws IOException;
}
medicalWaste-system/src/main/java/com/sinata/system/service/MwProtectionEquipmentRecordService.java
@@ -1,7 +1,7 @@
package com.sinata.system.service;
import com.sinata.system.domain.MwProtectionEquipmentRecord;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sinata.system.domain.MwProtectionEquipmentRecord;
/**
 * <p>
medicalWaste-system/src/main/java/com/sinata/system/service/MwProtectionEquipmentService.java
@@ -1,7 +1,12 @@
package com.sinata.system.service;
import com.sinata.common.entity.PageDTO;
import com.sinata.system.domain.MwProtectionEquipment;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sinata.system.domain.dto.MwProtectionEquipmentDTO;
import com.sinata.system.domain.dto.MwProtectionEquipmentRecordDTO;
import com.sinata.system.domain.query.MwProtectionEquipmentQuery;
import com.sinata.system.domain.vo.MwProtectionEquipmentVO;
/**
 * <p>
@@ -12,5 +17,42 @@
 * @since 2024-12-02
 */
public interface MwProtectionEquipmentService extends IService<MwProtectionEquipment> {
    /**
     * 防护器具分页列表
     *
     * @param query
     * @return
     */
    PageDTO<MwProtectionEquipmentVO> pageList(MwProtectionEquipmentQuery query);
    /**
     * 详情
     *
     * @param id
     * @return
     */
    MwProtectionEquipmentVO detail(Long id);
    /**
     * 新增防护器具
     *
     * @param dto
     * @return
     */
    void add(MwProtectionEquipmentDTO dto);
    /**
     * 编辑
     *
     * @param dto
     * @return
     */
    void edit(MwProtectionEquipmentDTO dto);
    /**
     * 增加库存
     *
     * @param dto
     */
    void addStock(MwProtectionEquipmentRecordDTO dto);
}
medicalWaste-system/src/main/java/com/sinata/system/service/MwTransitCarAnnualInspectionService.java
@@ -1,7 +1,11 @@
package com.sinata.system.service;
import com.sinata.common.entity.PageDTO;
import com.sinata.system.domain.MwTransitCarAnnualInspection;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sinata.system.domain.dto.MwTransitCarAnnualInspectionDTO;
import com.sinata.system.domain.query.MwTransitCarAnnualInspectionQuery;
import com.sinata.system.domain.vo.MwTransitCarAnnualInspectionVO;
/**
 * <p>
@@ -12,5 +16,34 @@
 * @since 2024-12-02
 */
public interface MwTransitCarAnnualInspectionService extends IService<MwTransitCarAnnualInspection> {
    /**
     * 年检记录分页列表
     *
     * @param query
     * @return
     */
    PageDTO<MwTransitCarAnnualInspectionVO> pageList(MwTransitCarAnnualInspectionQuery query);
    /**
     * 新增年检记录
     *
     * @param dto
     */
    void add(MwTransitCarAnnualInspectionDTO dto);
    /**
     * 编辑年检记录
     *
     * @param dto
     * @return
     */
    void edit(MwTransitCarAnnualInspectionDTO dto);
    /**
     * 详情
     *
     * @param id
     * @return
     */
    MwTransitCarAnnualInspectionVO detail(Long id);
}
medicalWaste-system/src/main/java/com/sinata/system/service/MwTransitCarMaintenanceService.java
@@ -1,7 +1,11 @@
package com.sinata.system.service;
import com.sinata.common.entity.PageDTO;
import com.sinata.system.domain.MwTransitCarMaintenance;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sinata.system.domain.dto.MwTransitCarMaintenanceDTO;
import com.sinata.system.domain.query.MwTransitCarMaintenanceQuery;
import com.sinata.system.domain.vo.MwTransitCarMaintenanceVO;
/**
 * <p>
@@ -12,5 +16,35 @@
 * @since 2024-12-02
 */
public interface MwTransitCarMaintenanceService extends IService<MwTransitCarMaintenance> {
    /**
     * 保养记录分页列表
     *
     * @param query
     * @return
     */
    PageDTO<MwTransitCarMaintenanceVO> pageList(MwTransitCarMaintenanceQuery query);
    /**
     * 详情
     *
     * @param id
     * @return
     */
    MwTransitCarMaintenanceVO detail(Long id);
    /**
     * 新增
     *
     * @param dto
     * @return
     */
    void add(MwTransitCarMaintenanceDTO dto);
    /**
     * 编辑
     *
     * @param dto
     * @return
     */
    void edit(MwTransitCarMaintenanceDTO dto);
}
medicalWaste-system/src/main/java/com/sinata/system/service/MwTransitCarService.java
@@ -1,7 +1,11 @@
package com.sinata.system.service;
import com.sinata.common.entity.PageDTO;
import com.sinata.system.domain.MwTransitCar;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sinata.system.domain.dto.MwTransitCarDTO;
import com.sinata.system.domain.query.TransitCarQuery;
import com.sinata.system.domain.vo.MwTransitCarVO;
/**
 * <p>
@@ -12,5 +16,37 @@
 * @since 2024-12-02
 */
public interface MwTransitCarService extends IService<MwTransitCar> {
    /**
     * 车辆分页列表
     *
     * @param query
     * @return
     */
    PageDTO<MwTransitCarVO> pageList(TransitCarQuery query);
    /**
     * 详情
     *
     * @param id
     * @return
     */
    MwTransitCarVO detail(Long id);
    /**
     * 新增车辆
     *
     * @param dto
     * @return
     */
    void add(MwTransitCarDTO dto);
    /**
     * 编辑车辆
     *
     * @param dto
     * @return
     */
    void edit(MwTransitCarDTO dto);
}
medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwCheckoutRecordServiceImpl.java
@@ -1,13 +1,16 @@
package com.sinata.system.service.impl;
import cn.idev.excel.EasyExcel;
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.BeanUtils;
import com.sinata.common.utils.StringUtils;
import com.sinata.system.domain.MwCheckoutRecord;
import com.sinata.system.domain.query.CheckoutRecordQuery;
import com.sinata.system.domain.query.MwCheckoutRecordItemQuery;
import com.sinata.system.domain.query.MwTransitRecordQuery;
import com.sinata.system.domain.vo.MwCheckoutRecordExcelVO;
import com.sinata.system.domain.vo.MwCheckoutRecordVO;
import com.sinata.system.domain.vo.MwMedicalWasteBoxVO;
import com.sinata.system.domain.vo.MwTransitRecordVO;
@@ -16,6 +19,11 @@
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>
@@ -44,6 +52,29 @@
        }
        Page<MwCheckoutRecordVO> page = baseMapper.pageHospitalTransitList(new Page<>(query.getPageCurr(), query.getPageSize()), query, treeCode);
        return PageDTO.of(page);
    }
    /**
     * 转运记录导出
     *
     * @param query
     * @param response
     */
    @Override
    public void checkoutRecordExport(CheckoutRecordQuery query, HttpServletResponse response) throws IOException {
        String treeCode = sysDepartmentService.getTreeCode(query.getDepartmentId());
        if (StringUtils.isBlank(treeCode)) {
            return;
        }
        List<MwCheckoutRecordVO> list = baseMapper.hospitalTransitList(query, treeCode);
        List<MwCheckoutRecordExcelVO> mwCheckoutRecordExcelVOS = BeanUtils.copyToList(list, MwCheckoutRecordExcelVO.class);
        // 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        response.setCharacterEncoding("utf-8");
        // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
        String fileName = URLEncoder.encode("转运记录", "UTF-8").replaceAll("\\+", "%20");
        response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
        EasyExcel.write(response.getOutputStream(), MwCheckoutRecordExcelVO.class).sheet("转运记录").doWrite(mwCheckoutRecordExcelVOS);
    }
    /**
@@ -81,4 +112,27 @@
        Page<MwTransitRecordVO> page = baseMapper.transitPageList(new Page<>(query.getPageCurr(), query.getPageSize()), query, treeCode);
        return PageDTO.of(page);
    }
    /**
     * 运输记录详情
     *
     * @param id
     * @return
     */
    @Override
    public MwTransitRecordVO transitDetail(Long id) {
        return baseMapper.transitDetail(id);
    }
    /**
     * 运输记录详情分页列表
     *
     * @param query
     * @return
     */
    @Override
    public PageDTO<MwMedicalWasteBoxVO> transitDetailPageList(MwTransitRecordQuery query) {
        Page<MwMedicalWasteBoxVO> page = baseMapper.transitDetailPageList(new Page<>(query.getPageCurr(), query.getPageSize()), query.getId());
        return PageDTO.of(page);
    }
}
medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwProtectionEquipmentRecordServiceImpl.java
@@ -1,6 +1,7 @@
package com.sinata.system.service.impl;
import com.sinata.system.domain.MwProtectionEquipmentRecord;
import com.sinata.system.domain.dto.MwProtectionEquipmentRecordDTO;
import com.sinata.system.mapper.MwProtectionEquipmentRecordMapper;
import com.sinata.system.service.MwProtectionEquipmentRecordService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwProtectionEquipmentServiceImpl.java
@@ -1,10 +1,26 @@
package com.sinata.system.service.impl;
import com.sinata.system.domain.MwProtectionEquipment;
import com.sinata.system.mapper.MwProtectionEquipmentMapper;
import com.sinata.system.service.MwProtectionEquipmentService;
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.entity.PageDTO;
import com.sinata.common.exception.ServiceException;
import com.sinata.common.utils.BeanUtils;
import com.sinata.system.domain.MwProtectionEquipment;
import com.sinata.system.domain.MwProtectionEquipmentRecord;
import com.sinata.system.domain.dto.MwProtectionEquipmentDTO;
import com.sinata.system.domain.dto.MwProtectionEquipmentRecordDTO;
import com.sinata.system.domain.query.MwProtectionEquipmentQuery;
import com.sinata.system.domain.vo.MwProtectionEquipmentVO;
import com.sinata.system.mapper.MwProtectionEquipmentMapper;
import com.sinata.system.service.ISysDictDataService;
import com.sinata.system.service.MwProtectionEquipmentRecordService;
import com.sinata.system.service.MwProtectionEquipmentService;
import com.sinata.system.service.SysDepartmentService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Objects;
/**
 * <p>
@@ -15,6 +31,82 @@
 * @since 2024-12-02
 */
@Service
@RequiredArgsConstructor
public class MwProtectionEquipmentServiceImpl extends ServiceImpl<MwProtectionEquipmentMapper, MwProtectionEquipment> implements MwProtectionEquipmentService {
    private final SysDepartmentService sysDepartmentService;
    private final ISysDictDataService sysDictDataService;
    private final MwProtectionEquipmentRecordService mwProtectionEquipmentRecordService;
    /**
     * 防护器具分页列表
     *
     * @param query
     * @return
     */
    @Override
    public PageDTO<MwProtectionEquipmentVO> pageList(MwProtectionEquipmentQuery query) {
        String treeCode = sysDepartmentService.getTreeCode(query.getDepartmentId());
        Page<MwProtectionEquipmentVO> page = baseMapper.pageList(new Page<>(query.getPageCurr(), query.getPageSize()), query, treeCode);
        return PageDTO.of(page);
    }
    /**
     * 详情
     *
     * @param id
     * @return
     */
    @Override
    public MwProtectionEquipmentVO detail(Long id) {
        return BeanUtils.copyBean(this.getById(id), MwProtectionEquipmentVO.class);
    }
    /**
     * 新增防护器具
     *
     * @param dto
     * @return
     */
    @Override
    public void add(MwProtectionEquipmentDTO dto) {
        MwProtectionEquipment mwProtectionEquipment = BeanUtils.copyBean(dto, MwProtectionEquipment.class);
        SysDictData dictData = sysDictDataService.lambdaQuery().eq(SysDictData::getDictCode, dto.getProtectionEquipmentType()).one();
        if (Objects.nonNull(dictData)) {
            mwProtectionEquipment.setProtectionEquipmentTypeStr(dictData.getDictLabel());
        }
        save(mwProtectionEquipment);
    }
    /**
     * 编辑
     *
     * @param dto
     * @return
     */
    @Override
    public void edit(MwProtectionEquipmentDTO dto) {
        if (Objects.isNull(dto.getId())) {
            throw new ServiceException("防护器具id不能为空");
        }
        MwProtectionEquipment mwProtectionEquipment = BeanUtils.copyBean(dto, MwProtectionEquipment.class);
        SysDictData dictData = sysDictDataService.lambdaQuery().eq(SysDictData::getDictCode, dto.getProtectionEquipmentType()).one();
        if (Objects.nonNull(dictData)) {
            mwProtectionEquipment.setProtectionEquipmentTypeStr(dictData.getDictLabel());
        }
        updateById(mwProtectionEquipment);
    }
    @Override
    public void addStock(MwProtectionEquipmentRecordDTO dto) {
        MwProtectionEquipment equipment = getById(dto.getProtectionEquipmentId());
        if (Objects.isNull(equipment)) {
            throw new ServiceException("防护器具不存在");
        }
        equipment.setStock(equipment.getStock() + dto.getChangeQuantity());
        updateById(equipment);
        // 新增库存记录
        MwProtectionEquipmentRecord mwProtectionEquipmentRecord = BeanUtils.copyBean(dto, MwProtectionEquipmentRecord.class);
        mwProtectionEquipmentRecord.setType(1);
        mwProtectionEquipmentRecordService.save(mwProtectionEquipmentRecord);
    }
}
medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwTransitCarAnnualInspectionServiceImpl.java
@@ -1,10 +1,19 @@
package com.sinata.system.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sinata.common.entity.PageDTO;
import com.sinata.common.exception.ServiceException;
import com.sinata.common.utils.BeanUtils;
import com.sinata.system.domain.MwTransitCarAnnualInspection;
import com.sinata.system.domain.dto.MwTransitCarAnnualInspectionDTO;
import com.sinata.system.domain.query.MwTransitCarAnnualInspectionQuery;
import com.sinata.system.domain.vo.MwTransitCarAnnualInspectionVO;
import com.sinata.system.mapper.MwTransitCarAnnualInspectionMapper;
import com.sinata.system.service.MwTransitCarAnnualInspectionService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.Objects;
/**
 * <p>
@@ -16,5 +25,55 @@
 */
@Service
public class MwTransitCarAnnualInspectionServiceImpl extends ServiceImpl<MwTransitCarAnnualInspectionMapper, MwTransitCarAnnualInspection> implements MwTransitCarAnnualInspectionService {
    /**
     * 年检记录分页列表
     *
     * @param query
     * @return
     */
    @Override
    public PageDTO<MwTransitCarAnnualInspectionVO> pageList(MwTransitCarAnnualInspectionQuery query) {
        Page<MwTransitCarAnnualInspection> page = this.lambdaQuery()
                .eq(MwTransitCarAnnualInspection::getCarId, query.getId())
                .orderByDesc(MwTransitCarAnnualInspection::getCreateTime)
                .page(new Page<>(query.getPageCurr(), query.getPageSize()));
        return PageDTO.of(page, MwTransitCarAnnualInspectionVO.class);
    }
    /**
     * 详情
     *
     * @param id
     * @return
     */
    @Override
    public MwTransitCarAnnualInspectionVO detail(Long id) {
        return BeanUtils.copyBean(getById(id), MwTransitCarAnnualInspectionVO.class);
    }
    /**
     * 新增年检记录
     *
     * @param dto
     */
    @Override
    public void add(MwTransitCarAnnualInspectionDTO dto) {
        MwTransitCarAnnualInspection mwTransitCarAnnualInspection = BeanUtils.copyBean(dto, MwTransitCarAnnualInspection.class);
        save(mwTransitCarAnnualInspection);
    }
    /**
     * 编辑年检记录
     *
     * @param dto
     * @return
     */
    @Override
    public void edit(MwTransitCarAnnualInspectionDTO dto) {
        if (Objects.isNull(dto.getId())) {
            throw new ServiceException("年检记录id不能为空");
        }
        MwTransitCarAnnualInspection mwTransitCarAnnualInspection = BeanUtils.copyBean(dto, MwTransitCarAnnualInspection.class);
        updateById(mwTransitCarAnnualInspection);
    }
}
medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwTransitCarMaintenanceServiceImpl.java
@@ -1,10 +1,19 @@
package com.sinata.system.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sinata.common.entity.PageDTO;
import com.sinata.common.exception.ServiceException;
import com.sinata.common.utils.BeanUtils;
import com.sinata.system.domain.MwTransitCarMaintenance;
import com.sinata.system.domain.dto.MwTransitCarMaintenanceDTO;
import com.sinata.system.domain.query.MwTransitCarMaintenanceQuery;
import com.sinata.system.domain.vo.MwTransitCarMaintenanceVO;
import com.sinata.system.mapper.MwTransitCarMaintenanceMapper;
import com.sinata.system.service.MwTransitCarMaintenanceService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.Objects;
/**
 * <p>
@@ -16,5 +25,57 @@
 */
@Service
public class MwTransitCarMaintenanceServiceImpl extends ServiceImpl<MwTransitCarMaintenanceMapper, MwTransitCarMaintenance> implements MwTransitCarMaintenanceService {
    /**
     * 保养记录分页列表
     *
     * @param query
     * @return
     */
    @Override
    public PageDTO<MwTransitCarMaintenanceVO> pageList(MwTransitCarMaintenanceQuery query) {
        Page<MwTransitCarMaintenance> page = this.lambdaQuery()
                .eq(MwTransitCarMaintenance::getCarId, query.getId())
                .orderByDesc(MwTransitCarMaintenance::getCreateTime)
                .page(new Page<>(query.getPageCurr(), query.getPageSize()));
        return PageDTO.of(page, MwTransitCarMaintenanceVO.class);
    }
    /**
     * 详情
     *
     * @param id
     * @return
     */
    @Override
    public MwTransitCarMaintenanceVO detail(Long id) {
        return BeanUtils.copyBean(getById(id), MwTransitCarMaintenanceVO.class);
    }
    /**
     * 新增
     *
     * @param dto
     * @return
     */
    @Override
    public void add(MwTransitCarMaintenanceDTO dto) {
        MwTransitCarMaintenance mwTransitCarMaintenance = BeanUtils.copyBean(dto, MwTransitCarMaintenance.class);
        save(mwTransitCarMaintenance);
    }
    /**
     * 编辑
     *
     * @param dto
     * @return
     */
    @Override
    public void edit(MwTransitCarMaintenanceDTO dto) {
        if (Objects.isNull(dto.getId())) {
            throw new ServiceException("保养记录id不能为空");
        }
        MwTransitCarMaintenance mwTransitCarMaintenance = BeanUtils.copyBean(dto, MwTransitCarMaintenance.class);
        updateById(mwTransitCarMaintenance);
    }
}
medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwTransitCarServiceImpl.java
@@ -1,10 +1,21 @@
package com.sinata.system.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sinata.common.entity.PageDTO;
import com.sinata.common.exception.ServiceException;
import com.sinata.common.utils.BeanUtils;
import com.sinata.system.domain.MwTransitCar;
import com.sinata.system.domain.dto.MwTransitCarDTO;
import com.sinata.system.domain.query.TransitCarQuery;
import com.sinata.system.domain.vo.MwTransitCarVO;
import com.sinata.system.mapper.MwTransitCarMapper;
import com.sinata.system.service.MwTransitCarService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sinata.system.service.SysDepartmentService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Objects;
/**
 * <p>
@@ -15,6 +26,62 @@
 * @since 2024-12-02
 */
@Service
@RequiredArgsConstructor
public class MwTransitCarServiceImpl extends ServiceImpl<MwTransitCarMapper, MwTransitCar> implements MwTransitCarService {
    private final SysDepartmentService sysDepartmentService;
    /**
     * 车辆分页列表
     *
     * @param query
     * @return
     */
    @Override
    public PageDTO<MwTransitCarVO> pageList(TransitCarQuery query) {
        String treeCode = sysDepartmentService.getTreeCode(query.getDepartmentId());
        Page<MwTransitCarVO> page = baseMapper.pageList(new Page<>(query.getPageCurr(), query.getPageSize()), query, treeCode);
        return PageDTO.of(page);
    }
    /**
     * 详情
     *
     * @param id
     * @return
     */
    @Override
    public MwTransitCarVO detail(Long id) {
        return baseMapper.detail(id);
    }
    /**
     * 新增车辆
     *
     * @param dto
     * @return
     */
    @Override
    public void add(MwTransitCarDTO dto) {
        MwTransitCar mwTransitCar = BeanUtils.copyBean(dto, MwTransitCar.class);
        Long count = lambdaQuery().eq(MwTransitCar::getLicensePlateNumber, dto.getLicensePlateNumber()).count();
        if (count > 0) {
            throw new ServiceException("车牌号已存在");
        }
        save(mwTransitCar);
    }
    /**
     * 编辑车辆
     *
     * @param dto
     * @return
     */
    @Override
    public void edit(MwTransitCarDTO dto) {
        if (Objects.isNull(dto.getId())) {
            throw new ServiceException("车辆id不能为空");
        }
        MwTransitCar mwTransitCar = BeanUtils.copyBean(dto, MwTransitCar.class);
        updateById(mwTransitCar);
    }
}
medicalWaste-system/src/main/resources/mapper/system/MwCheckoutRecordMapper.xml
@@ -89,6 +89,7 @@
        LEFT JOIN SYS_USER su ON mcr.COLLECT_USER_ID = su.USER_ID
        LEFT JOIN SYS_DEPARTMENT sd ON su.DEPARTMENT_ID = sd.ID
        <where>
            mcr.STATUS = 2
            <if test="departmentId != null and departmentId != ''">
                AND mcr.DEPARTMENT_ID = #{departmentId}
            </if>
@@ -97,21 +98,24 @@
        ORDER BY mcr.CREATE_TIME DESC
    </select>
    <select id="transitPageList" resultType="com.sinata.system.domain.vo.MwTransitRecordVO">
        SELECT MDR.DISPOSAL_UNIT_NAME,
        SELECT
        MTRC.ROUTE_ID AS id,
        MDR.DISPOSAL_UNIT_NAME,
        MTC.LICENSE_PLATE_NUMBER,
        SU.NICK_NAME,
        SUM(MCR.BOX_NUM) AS boxNum,
        SUM(MCR.TOTAL_WEIGHT) AS weight,
        MIN(MCR2.BOX_TIME) AS startTime,
        MDR.RECEIVE_TIME AS endTime
        FROM MW_DISPOSAL_RECORD MDR
        LEFT JOIN MW_DISPOSAL_RECORD_ITEM MDRI ON MDR.ID = MDRI.DISPOSAL_RECORD_ID
        LEFT JOIN MW_CHECKOUT_RECORD_ITEM MCRI ON MDRI.COLLECT_RECORD_ID = MCRI.COLLECT_RECORD_ID
        LEFT JOIN MW_CHECKOUT_RECORD MCR ON MCRI.CHECKOUT_RECORD_ID = MCR.ID
        FROM MW_CHECKOUT_RECORD MCR
        LEFT JOIN MW_CHECKOUT_RECORD_ITEM MCRI ON MCRI.CHECKOUT_RECORD_ID = MCR.ID
        LEFT JOIN MW_DISPOSAL_RECORD_ITEM MDRI ON MDRI.COLLECT_RECORD_ID = MCRI.COLLECT_RECORD_ID
        LEFT JOIN MW_DISPOSAL_RECORD MDR ON MDR.ID = MDRI.DISPOSAL_RECORD_ID
        LEFT JOIN MW_COLLECT_RECORD MCR2 ON MCRI.COLLECT_RECORD_ID = MCR2.ID
        LEFT JOIN MW_TRANSIT_CAR MTC ON MCR.CAR_ID = MTC.ID
        LEFT JOIN SYS_USER SU ON MCR.DRIVER_ID = SU.USER_ID
        LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MDR.DEPARTMENT_ID
        LEFT JOIN MW_TRANSIT_ROUTE_CAR MTRC ON MTRC.CAR_ID = MCR.CAR_ID
        <where>
            <if test="treeCode != null and treeCode != null">
                AND SD.TREE_CODE LIKE CONCAT(#{treeCode},'%')
@@ -126,7 +130,79 @@
                AND MDR.RECEIVE_TIME BETWEEN #{query.startTime} AND #{query.endTime}
            </if>
        </where>
        GROUP BY MCR.CAR_ID
        GROUP BY MTRC.ROUTE_ID
        ORDER BY startTime DESC
    </select>
    <select id="transitDetail" resultType="com.sinata.system.domain.vo.MwTransitRecordVO">
        SELECT
        MTRC.ROUTE_ID AS id,
        MDR.DISPOSAL_UNIT_NAME,
        MTC.LICENSE_PLATE_NUMBER,
        SU.NICK_NAME,
        SUM(MCR.BOX_NUM) AS boxNum,
        SUM(MCR.TOTAL_WEIGHT) AS weight,
        MIN(MCR2.BOX_TIME) AS startTime,
        MDR.RECEIVE_TIME AS endTime
        FROM MW_CHECKOUT_RECORD MCR
        LEFT JOIN MW_CHECKOUT_RECORD_ITEM MCRI ON MCRI.CHECKOUT_RECORD_ID = MCR.ID
        LEFT JOIN MW_DISPOSAL_RECORD_ITEM MDRI ON MDRI.COLLECT_RECORD_ID = MCRI.COLLECT_RECORD_ID
        LEFT JOIN MW_DISPOSAL_RECORD MDR ON MDR.ID = MDRI.DISPOSAL_RECORD_ID
        LEFT JOIN MW_COLLECT_RECORD MCR2 ON MCRI.COLLECT_RECORD_ID = MCR2.ID
        LEFT JOIN MW_TRANSIT_CAR MTC ON MCR.CAR_ID = MTC.ID
        LEFT JOIN SYS_USER SU ON MCR.DRIVER_ID = SU.USER_ID
        LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MDR.DEPARTMENT_ID
        LEFT JOIN MW_TRANSIT_ROUTE_CAR MTRC ON MTRC.CAR_ID = MCR.CAR_ID
        <where>
            MTRC.ROUTE_ID = #{id}
        </where>
        GROUP BY MTRC.ROUTE_ID
    </select>
    <select id="transitDetailPageList" resultType="com.sinata.system.domain.vo.MwMedicalWasteBoxVO">
        SELECT MCR2.HOSPITAL_NAME,
               MCR2.BOX_NUMBER,
               MCR2.WASTE_TYPE_STR,
               COUNT(MCR2.ID)         AS bagNum,
               SUM(MCR2.WEIGHT)       AS totalWeight,
               MAX(MCR.CHECKOUT_TIME) AS latestCheckoutTime
        FROM MW_TRANSIT_ROUTE_CAR MTRC
                 LEFT JOIN MW_CHECKOUT_RECORD MCR on MTRC.CAR_ID = MCR.CAR_ID
                 LEFT JOIN MW_CHECKOUT_RECORD_ITEM MCRI on MCR.ID = MCRI.CHECKOUT_RECORD_ID
                 LEFT JOIN MW_COLLECT_RECORD MCR2 ON MCR2.ID = MCRI.COLLECT_RECORD_ID
        WHERE MTRC.ROUTE_ID = #{id}
        GROUP BY MCR2.BOX_ID
        ORDER BY latestCheckoutTime DESC
    </select>
    <select id="hospitalTransitList" resultType="com.sinata.system.domain.vo.MwCheckoutRecordVO">
        SELECT mcr.ID,
        mcr.CHECKOUT_TIME,
        mcr.HOSPITAL_NAME,
        SUM(mcr.BOX_NUM) AS boxNum,
        SUM(mcr.BAG_NUM) AS bagNum,
        SUM(mcr.TOTAL_WEIGHT) AS totalWeight,
        su.NICK_NAME AS driverName,
        mtc.LICENSE_PLATE_NUMBER
        FROM MW_CHECKOUT_RECORD mcr
        LEFT JOIN SYS_USER su
        ON mcr.DRIVER_ID = su.USER_ID
        LEFT JOIN MW_TRANSIT_CAR mtc
        ON mcr.CAR_ID = mtc.ID
        LEFT JOIN SYS_DEPARTMENT sd
        ON mcr.DEPARTMENT_ID = sd.ID
        <where>
            <if test="treeCode != null and treeCode != ''">
                AND sd.TREE_CODE LIKE CONCAT(#{treeCode},'%')
            </if>
            <if test="query.checkoutTimeStart != null and query.checkoutTimeEnd!=null">
                AND mcr.CHECKOUT_TIME BETWEEN #{query.checkoutTimeStart} AND #{query.checkoutTimeEnd}
            </if>
            <if test="query.ids != null and ids.size() > 0">
                AND mcr.ID IN
                <foreach collection="query.ids" item="id" separator="," open="(" close=")">
                    #{id}
                </foreach>
            </if>
        </where>
        GROUP BY mcr.DEPARTMENT_ID
    </select>
</mapper>
medicalWaste-system/src/main/resources/mapper/system/MwProtectionEquipmentMapper.xml
@@ -27,5 +27,33 @@
        UPDATE_TIME,
        ID, DEPARTMENT_ID, PROTECTION_EQUIPMENT_TYPE, EQUIPMENT_NAME, STOCK, REMARK, ATTACHMENT
    </sql>
    <select id="pageList" resultType="com.sinata.system.domain.vo.MwProtectionEquipmentVO">
        SELECT MPE.ID,
        MPE.DEPARTMENT_ID,
        MPE.PROTECTION_EQUIPMENT_TYPE,
        MPE.EQUIPMENT_NAME,
        MPE.STOCK,
        MPE.REMARK,
        MPE.ATTACHMENT,
        MPE.DEL_FLAG,
        MPE.CREATE_BY,
        MPE.CREATE_TIME,
        MPE.UPDATE_BY,
        MPE.UPDATE_TIME,
        SD.DEPARTMENT_NAME
        FROM MW_PROTECTION_EQUIPMENT MPE
        LEFT JOIN SYS_DEPARTMENT SD ON MPE.DEPARTMENT_ID = SD.ID
        <where>
            <if test="treeCode != null and treeCode != ''">
                AND SD.TREE_CODE LIKE CONCAT(#{treeCode},'%')
            </if>
            <if test="query.protectionEquipmentType != null">
                AND MPE.PROTECTION_EQUIPMENT_TYPE = #{query.protectionEquipmentType}
            </if>
            <if test="query.equipmentName !=null and query.equipmentName!= ''">
                AND MPE.EQUIPMENT_NAME LIKE CONCAT('%',#{query.equipmentName},'%')
            </if>
        </where>
    </select>
</mapper>
medicalWaste-system/src/main/resources/mapper/system/MwTransitCarMapper.xml
@@ -31,5 +31,65 @@
        UPDATE_TIME,
        ID, DEPARTMENT_ID, IMAGE_URL, LICENSE_PLATE_NUMBER, PERSON_IN_CHARGE, PHONE_NUMBER, BRAND, COLOR, CODE, MAXIMUM_LOAD, REMARK
    </sql>
    <select id="pageList" resultType="com.sinata.system.domain.vo.MwTransitCarVO">
        SELECT MTC.ID,
        MTC.DEPARTMENT_ID,
        MTC.IMAGE_URL,
        MTC.LICENSE_PLATE_NUMBER,
        MTC.PERSON_IN_CHARGE,
        MTC.PHONE_NUMBER,
        MTC.BRAND,
        MTC.COLOR,
        MTC.CODE,
        MTC.MAXIMUM_LOAD,
        MTC.REMARK,
        MTC.DEL_FLAG,
        MTC.CREATE_BY,
        MTC.CREATE_TIME,
        MTC.UPDATE_BY,
        MTC.UPDATE_TIME,
        SD.DEPARTMENT_NAME AS DEPARTMENT_NAME
        FROM MW_TRANSIT_CAR MTC
        LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MTC.DEPARTMENT_ID
        <where>
            <if test="treeCode != null and treeCode != ''">
                AND SD.TREE_CODE = #{treeCode}
            </if>
            <if test="query.licensePlateNumber !=null and query.licensePlateNumber != ''">
                AND MTC.LICENSE_PLATE_NUMBER LIKE CONCAT('%',#{query.licensePlateNumber},'%')
            </if>
            <if test="query.personInCharge != null and query.personInCharge !=''">
                AND MTC.PERSON_IN_CHARGE LIKE CONCAT('%',#{query.personInCharge},'%')
            </if>
            <if test="query.phoneNumber!=null and query.phoneNumber!=''">
                AND MTC.PHONE_NUMBER LIKE CONCAT('%',#{query.phoneNumber},'%')
            </if>
        </where>
        ORDER BY MTC.CREATE_TIME DESC
    </select>
    <select id="detail" resultType="com.sinata.system.domain.vo.MwTransitCarVO">
        SELECT MTC.ID,
        MTC.DEPARTMENT_ID,
        MTC.IMAGE_URL,
        MTC.LICENSE_PLATE_NUMBER,
        MTC.PERSON_IN_CHARGE,
        MTC.PHONE_NUMBER,
        MTC.BRAND,
        MTC.COLOR,
        MTC.CODE,
        MTC.MAXIMUM_LOAD,
        MTC.REMARK,
        MTC.DEL_FLAG,
        MTC.CREATE_BY,
        MTC.CREATE_TIME,
        MTC.UPDATE_BY,
        MTC.UPDATE_TIME,
        SD.DEPARTMENT_NAME AS DEPARTMENT_NAME
        FROM MW_TRANSIT_CAR MTC
        LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MTC.DEPARTMENT_ID
        <where>
            MTC.ID = #{id}
        </where>
    </select>
</mapper>