package com.sinata.web.controller.applet; import com.fasterxml.jackson.annotation.JsonFormat; import com.google.common.collect.Lists; import java.util.Date; import com.sinata.common.core.domain.R; import com.sinata.common.core.domain.entity.SysUser; import com.sinata.common.entity.PageDTO; import com.sinata.common.utils.SecurityUtils; import com.sinata.system.domain.*; import com.sinata.system.domain.dto.CheckOutDto; import com.sinata.system.domain.dto.CollectTotalUpDto; 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.MwCheckoutRecordVO; import com.sinata.system.domain.vo.MwMedicalWasteBoxVO; import com.sinata.system.domain.vo.MwTransitRecordVO; import com.sinata.system.service.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.naming.ldap.PagedResultsControl; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; /** *

* 暂存间出库记录 前端控制器 *

* * @author mitao * @since 2024-12-02 */ @Api(tags = {"医院工作人员"}) @Validated @RequiredArgsConstructor @RestController @RequestMapping("/applet/mwCheckoutRecord") public class AppMwCheckoutRecordController { private final MwCheckoutRecordService mwCheckoutRecordService; private final ISysUserService userService; private final MwTransitCarService carService; private final MwDisposalRecordService disposalRecordService; private final MwDisposalHandleRecordService handleRecordService; private final SysDepartmentService departmentService; @ApiOperation(value = "出库统计上") @PostMapping("/total") public R> total(@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)LocalDate date) { SysUser sysUser = SecurityUtils.getLoginUser().getUser(); SysUser byId = userService.getById(sysUser.getUserId()); return R.ok(mwCheckoutRecordService.totalUp(date,byId.getDepartmentId())); } @ApiOperation(value = "接收统计上",tags = "处置人员") @PostMapping("/out/total") public R> outtotal(@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)LocalDate date) { // SysUser sysUser = SecurityUtils.getLoginUser().getUser(); SysDepartment myDepartment = departmentService.getMyDepartment(); return R.ok(mwCheckoutRecordService.totalUp2(date,myDepartment.getId())); } @ApiOperation(value = "接收统计下",tags = "处置人员") @PostMapping("/out/record") public R> record1(@DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date) { // SysUser sysUser1 = SecurityUtils.getLoginUser().getUser(); // SysUser sysUser = userService.getById(sysUser1.getUserId()); // LocalDate now = LocalDate.now(); SysDepartment myDepartment = departmentService.getMyDepartment(); List list = disposalRecordService.lambdaQuery().ge(date!=null,MwDisposalRecord::getReceiveTime, date.atStartOfDay()).le(date!=null,MwDisposalRecord::getReceiveTime,date.atTime(23,59,59)).eq(MwDisposalRecord::getDepartmentId, myDepartment.getId()).orderByDesc(MwDisposalRecord::getReceiveTime).list(); List backList = new ArrayList<>(); for (MwDisposalRecord mwCheckoutRecord : list) { CheckOutDto checkOutDto = new CheckOutDto(); SysUser byId = userService.getById(mwCheckoutRecord.getDriverId()); checkOutDto.setDriverName(byId.getNickName()); MwTransitCar byId1 = carService.getById(mwCheckoutRecord.getCarId()); checkOutDto.setLicensePlateNumber(byId1.getLicensePlateNumber()); checkOutDto.setCheckoutTime(mwCheckoutRecord.getReceiveTime()); List records = mwCheckoutRecordService.totalUp6(mwCheckoutRecord.getId()); checkOutDto.setRecords(records); backList.add(checkOutDto); } return R.ok(backList); } @ApiOperation(value = "处置统计上",tags = "处置人员") @PostMapping("/end/total") public R> outtotal1(@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)LocalDate date) { SysDepartment myDepartment = departmentService.getMyDepartment(); List collectTotalUpDtos = mwCheckoutRecordService.totalUp2(date, myDepartment.getId()); return R.ok(collectTotalUpDtos); } @ApiOperation(value = "处置统下",tags = "处置人员") @PostMapping("/end/record") public R> record2(@DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date) { SysDepartment myDepartment = departmentService.getMyDepartment(); LocalDate now = LocalDate.now(); List list = handleRecordService.lambdaQuery().ge(date!=null,MwDisposalHandleRecord::getDisposalTime, date.atStartOfDay()).le(date!=null,MwDisposalHandleRecord::getDisposalTime,date.atTime(23,59,59)).eq(MwDisposalHandleRecord::getDepartmentId, myDepartment.getId()).orderByDesc(MwDisposalHandleRecord::getDisposalTime).list(); List backList = new ArrayList<>(); for (MwDisposalHandleRecord mwCheckoutRecord : list) { CheckOutDto checkOutDto = new CheckOutDto(); SysUser byId = userService.getById(mwCheckoutRecord.getDriverId()); checkOutDto.setDriverName(byId.getNickName()); MwTransitCar byId1 = carService.getById(mwCheckoutRecord.getCarId()); if (byId1!=null){ checkOutDto.setLicensePlateNumber(byId1.getLicensePlateNumber()); } checkOutDto.setCheckoutTime(mwCheckoutRecord.getDisposalTime()); List records = mwCheckoutRecordService.totalUp1(mwCheckoutRecord.getId()); checkOutDto.setRecords(records); backList.add(checkOutDto); } return R.ok(backList); } @ApiOperation(value = "出库统计下") @PostMapping("/record") public R> record(@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)LocalDate date) { SysUser sysUser = SecurityUtils.getLoginUser().getUser(); SysUser byId2 = userService.getById(sysUser.getUserId()); LocalDate now = LocalDate.now(); List list = mwCheckoutRecordService.lambdaQuery().ge(MwCheckoutRecord::getCreateTime, date.atStartOfDay()) .le(MwCheckoutRecord::getCreateTime, date.atTime(23,59,59)).eq(MwCheckoutRecord::getDepartmentId, byId2.getDepartmentId()).orderByDesc(MwCheckoutRecord::getCheckoutTime).list(); List backList = new ArrayList<>(); for (MwCheckoutRecord mwCheckoutRecord : list) { CheckOutDto checkOutDto = new CheckOutDto(); SysUser byId = userService.getById(mwCheckoutRecord.getDriverId()); checkOutDto.setDriverName(byId.getNickName()); MwTransitCar byId1 = carService.getById(mwCheckoutRecord.getCarId()); checkOutDto.setLicensePlateNumber(byId1.getLicensePlateNumber()); checkOutDto.setCheckoutTime(mwCheckoutRecord.getCheckoutTime()); List records = mwCheckoutRecordService.totalUp1(mwCheckoutRecord.getId()); checkOutDto.setRecords(records); backList.add(checkOutDto); } return R.ok(backList); } }