package com.sinata.web.controller.applet;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson2.JSONArray;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sinata.common.core.domain.R;
import com.sinata.common.core.domain.entity.SysDictData;
import com.sinata.common.core.domain.entity.SysUser;
import com.sinata.common.utils.SecurityUtils;
import com.sinata.system.domain.MwBox;
import com.sinata.system.domain.MwCheckoutRecord;
import com.sinata.system.domain.MwCheckoutRecordItem;
import com.sinata.system.domain.MwCollectRecord;
import com.sinata.system.domain.MwDisposalHandleRecord;
import com.sinata.system.domain.MwDisposalHandleRecordItem;
import com.sinata.system.domain.MwDisposalRecord;
import com.sinata.system.domain.MwDisposalRecordItem;
import com.sinata.system.domain.MwStagingRoom;
import com.sinata.system.domain.MwTransitCar;
import com.sinata.system.domain.MwTransitCarCollectPoint;
import com.sinata.system.domain.MwTransitRoute;
import com.sinata.system.domain.SysDepartment;
import com.sinata.system.domain.dto.BoxListDto;
import com.sinata.system.domain.dto.CarDto;
import com.sinata.system.domain.dto.CollectCarTotalUpDto;
import com.sinata.system.domain.dto.CollectDto;
import com.sinata.system.domain.dto.CollectTotalDto;
import com.sinata.system.domain.dto.CollectTotalUpDto;
import com.sinata.system.domain.dto.HospitalCollectTotalUp1Dto;
import com.sinata.system.domain.dto.HospitalCollectTotalUpDto;
import com.sinata.system.domain.dto.SignCollectDto;
import com.sinata.system.service.ISysDictDataService;
import com.sinata.system.service.ISysUserService;
import com.sinata.system.service.MwBoxService;
import com.sinata.system.service.MwCheckoutRecordItemService;
import com.sinata.system.service.MwCheckoutRecordService;
import com.sinata.system.service.MwCollectRecordService;
import com.sinata.system.service.MwDisposalHandleRecordItemService;
import com.sinata.system.service.MwDisposalHandleRecordService;
import com.sinata.system.service.MwDisposalRecordItemService;
import com.sinata.system.service.MwDisposalRecordService;
import com.sinata.system.service.MwStagingRoomService;
import com.sinata.system.service.MwTransitCarCollectPointService;
import com.sinata.system.service.MwTransitCarService;
import com.sinata.system.service.MwTransitRouteService;
import com.sinata.system.service.SysDepartmentService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Random;
import java.util.Set;
import java.util.stream.Collectors;
import javax.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
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.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
*
* 暂存间入库记录 前端控制器
*
*
* @author mitao
* @since 2024-12-02
*/
@Validated
@RestController
@Api(tags = {"医院工作人员"})
@RequiredArgsConstructor
@RequestMapping("/applet/mwCollectRecord")
public class AppMwCollectRecordController {
private final MwCollectRecordService collectRecordService;
@Autowired
private ISysUserService userService;
private final MwBoxService boxService;
private final MwCheckoutRecordService checkoutRecordService;
private final MwCheckoutRecordItemService checkoutRecordItemService;
private final SysDepartmentService departmentService;
private final MwDisposalRecordService disposalRecordService;
private final MwDisposalRecordItemService disposalRecordItemService;
private final MwDisposalHandleRecordService disposalHandleRecordService;
private final MwDisposalHandleRecordItemService disposalHandleRecordItemService;
private final MwStagingRoomService roomService;
private final ISysDictDataService dictDataService;
private final MwTransitCarService carService;
private final MwTransitCarCollectPointService mwTransitCarCollectPointService;
private final MwTransitRouteService transitRouteService;
@ApiOperation(value = "新增医废记录")
@PostMapping("/add")
public R> add(@Valid @RequestBody MwCollectRecord mwCollectRecord) {
SysUser sysUser1 = SecurityUtils.getLoginUser().getUser();
SysUser sysUser = userService.getById(sysUser1.getUserId());
MwBox one = boxService.lambdaQuery().eq(MwBox::getBoxNumber, mwCollectRecord.getBoxNumber()).one();
if (one==null){
return R.fail("当前转运箱不存在");
}
one.setLink(1);
one.setLastUseTime(new Date());
boxService.updateById(one);
mwCollectRecord.setBoxId(one.getId());
MwStagingRoom one1 = roomService.lambdaQuery().eq(MwStagingRoom::getDepartmentId, sysUser.getDepartmentId()).one();
if (one1==null){
return R.fail("当前单位没有暂存间");
}
mwCollectRecord.setStagingRoomId(one1.getId());
mwCollectRecord.setDepartmentId(sysUser.getDepartmentId());
mwCollectRecord.setBoxTime(new Date());
mwCollectRecord.setCollectUserId(sysUser.getUserId());
// 创建一个随机数生成器实例
Random random = new Random();
// 生成一个6位数范围内的随机整数(100000 到 999999)
int randomNumber = 10000000 + random.nextInt(90000000);
mwCollectRecord.setMedicalWasteNumber(String.valueOf(randomNumber));
SysDictData medicalWasteType = dictDataService.getById(mwCollectRecord.getWasteType());
if (medicalWasteType!=null){
mwCollectRecord.setWasteTypeStr(medicalWasteType.getDictLabel());
}
collectRecordService.save(mwCollectRecord);
return R.ok();
}
@ApiOperation(value = "扫描箱号获取医废",tags = "运输人员")
@PostMapping("/box/list")
public R> boxlist(@RequestParam String boxNumber) {
List list = collectRecordService.lambdaQuery().eq(MwCollectRecord::getStatus,1).eq(MwCollectRecord::getBoxNumber, boxNumber).list();
if (list.isEmpty()){
return R.ok();
}
Long departmentId = list.get(0).getDepartmentId();
List collectDtos = collectRecordService.getGroup1(boxNumber,departmentId);
for (CollectDto collectDto : collectDtos) {
collectDto.setDepartmentName(departmentService.getById(departmentId).getDepartmentName());
}
return R.ok(collectDtos);
}
@ApiOperation(value = "装车",tags = "运输人员")
@PostMapping("/box/collect")
@Transactional(rollbackFor = Exception.class)
public R> collect(@RequestBody SignCollectDto signCollectDto) {
SysUser sysUser1 = SecurityUtils.getLoginUser().getUser();
SysUser sysUser = userService.getById(sysUser1.getUserId());
//将收集记录的状态改变
List list = collectRecordService.lambdaQuery().eq(MwCollectRecord::getStatus,1).in(MwCollectRecord::getBoxNumber, signCollectDto.getBoxNumbers()).list();
if (list.isEmpty()){
return R.ok();
}
Set boxes = new HashSet<>();
BigDecimal sum = new BigDecimal(0);
for (MwCollectRecord mwCollectRecord : list) {
mwCollectRecord.setStatus(2);
mwCollectRecord.setCheckoutUserId(sysUser.getUserId());
mwCollectRecord.setCheckoutTime(new Date());
mwCollectRecord.setDriverId(sysUser.getUserId());
mwCollectRecord.setCarId(sysUser.getCarId());
boxes.add(mwCollectRecord.getBoxNumber());
sum= sum.add(mwCollectRecord.getWeight());
}
//插入入库记录以及中间表数据
MwCheckoutRecord mwCheckoutRecord = new MwCheckoutRecord();
mwCheckoutRecord.setCheckoutTime(new Date());
mwCheckoutRecord.setDepartmentId(list.get(0).getDepartmentId());
mwCheckoutRecord.setHospitalName(list.get(0).getHospitalName());
mwCheckoutRecord.setStagingRoomId(list.get(0).getStagingRoomId());
mwCheckoutRecord.setHospitalSignature(signCollectDto.getSignUrl());
mwCheckoutRecord.setDriverId(sysUser.getUserId());
mwCheckoutRecord.setCarId(sysUser.getCarId());
mwCheckoutRecord.setBoxNum(boxes.size());
mwCheckoutRecord.setBagNum(list.size());
mwCheckoutRecord.setTotalWeight(sum);
checkoutRecordService.save(mwCheckoutRecord);
//插入中间表数据
List recordItems = new ArrayList<>();
for (MwCollectRecord mwCollectRecord : list) {
MwCheckoutRecordItem mwCheckoutRecordItem = new MwCheckoutRecordItem();
mwCheckoutRecordItem.setCollectRecordId(mwCollectRecord.getId());
mwCheckoutRecordItem.setCheckoutRecordId(mwCheckoutRecord.getId());
recordItems.add(mwCheckoutRecordItem);
}
checkoutRecordItemService.saveBatch(recordItems);
collectRecordService.updateBatchById(list);
MwBox byId = boxService.getById(list.get(0).getStagingRoomId());
byId.setLink(2);
boxService.updateById(byId);
//查询当前医废收集路线
Long departmentId = list.get(0).getDepartmentId();
MwTransitRoute route = transitRouteService.queryRouteByDepartmentId(departmentId);
if (Objects.nonNull(route)){
//查询当前车辆已运输路线记录
MwTransitCarCollectPoint carCollectPoint = mwTransitCarCollectPointService.lambdaQuery().eq(MwTransitCarCollectPoint::getCarId, sysUser.getCarId())
.eq(MwTransitCarCollectPoint::getRouteId, route.getId())
.eq(MwTransitCarCollectPoint::getTransitDate, DateUtil.format(new Date(), DatePattern.NORM_DATE_PATTERN))
.last("LIMIT 1").one();
List departmentIdList = new ArrayList<>();
//如果当前收集医院不是第一家且当前收集医院未被记录
if (Objects.nonNull(carCollectPoint) && !carCollectPoint.getPointList().contains(departmentId.toString())){
departmentIdList = JSONArray.parseArray(carCollectPoint.getPointList(), Long.class);
departmentIdList.add(departmentId);
}else if (Objects.isNull(carCollectPoint) ){//当前医院为第一个收集的医院
carCollectPoint = new MwTransitCarCollectPoint();
carCollectPoint.setCarId(carCollectPoint.getCarId());
carCollectPoint.setRouteId(route.getId());
carCollectPoint.setTransitDate(new Date());
departmentIdList.add(departmentId);
}
carCollectPoint.setPointList(JSONArray.toJSONString(departmentIdList));
mwTransitCarCollectPointService.saveOrUpdate(carCollectPoint);
}
return R.ok();
}
@ApiOperation(value = "运输统计上",tags = "运输人员")
@PostMapping("/trans/collect/total")
public R> tanscollecttotal1(@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)LocalDate date) {
SysUser sysUser = SecurityUtils.getLoginUser().getUser();
return R.ok(collectRecordService.collectTotal1(date,sysUser.getUserId(),null));
}
@ApiOperation(value = "运输统计上(医院数量)",tags = "运输人员")
@PostMapping("/trans/collect/hospital/count")
public R tanscollecttotal12(@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)LocalDate date) {
SysUser sysUser = SecurityUtils.getLoginUser().getUser();
List list = collectRecordService.lambdaQuery().ge(date != null, MwCollectRecord::getCheckoutTime, date.atStartOfDay()).le(date != null, MwCollectRecord::getCheckoutTime, date.atTime(23, 59, 59)).eq(MwCollectRecord::getCheckoutUserId, sysUser.getUserId()).groupBy(MwCollectRecord::getDepartmentId).list();
return R.ok(list.size());
}
@ApiOperation(value = "运输统计下",tags = "运输人员")
@PostMapping("/trans/down/collect/total")
public R> tanscollecttotal2(@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)LocalDate date) {
SysUser sysUser = SecurityUtils.getLoginUser().getUser();
//先获取医院ids
List list = collectRecordService.lambdaQuery().ge(MwCollectRecord::getCheckoutTime, date.atStartOfDay())
.le(MwCollectRecord::getCheckoutTime, date.atTime(23,59,59))
.eq(MwCollectRecord::getCheckoutUserId, sysUser.getUserId()).groupBy(MwCollectRecord::getDepartmentId).list();
//循环医院,然后放入
List list1 = new ArrayList<>();
for (MwCollectRecord mwCollectRecord : list) {
List collectTotalUpDtos = collectRecordService.collectTotal1(date, sysUser.getUserId(), mwCollectRecord.getDepartmentId());
HospitalCollectTotalUpDto hospitalCollectTotalUpDto = new HospitalCollectTotalUpDto();
hospitalCollectTotalUpDto.setHospitalName(mwCollectRecord.getHospitalName());
hospitalCollectTotalUpDto.setCollectTotalUpDtos(collectTotalUpDtos);
list1.add(hospitalCollectTotalUpDto);
}
return R.ok(list1);
}
@ApiOperation(value = "扫码接收列表",tags = "处置人员")
@PostMapping("/end/down/collect/total")
public R> tanscollecttotal3(String boxNum) {
MwCollectRecord one = collectRecordService.lambdaQuery().eq(MwCollectRecord::getBoxNumber, boxNum).eq(MwCollectRecord::getStatus, 2).last("limit 1").one();
if (one==null){
return R.ok();
}
//先获取医院ids
List list = collectRecordService.lambdaQuery().eq(MwCollectRecord::getStatus,2).eq(MwCollectRecord::getCheckoutUserId, one.getCheckoutUserId()).groupBy(MwCollectRecord::getDepartmentId).list();
//循环医院,然后放入
List list1 = new ArrayList<>();
for (MwCollectRecord mwCollectRecord : list) {
List collectTotalUpDtos = collectRecordService.getGroup2(null, mwCollectRecord.getDepartmentId());
HospitalCollectTotalUp1Dto hospitalCollectTotalUpDto = new HospitalCollectTotalUp1Dto();
hospitalCollectTotalUpDto.setHospitalName(mwCollectRecord.getHospitalName());
hospitalCollectTotalUpDto.setCollectTotalUpDtos(collectTotalUpDtos);
list1.add(hospitalCollectTotalUpDto);
}
return R.ok(list1);
}
@ApiOperation(value = "获取车辆",tags = "处置人员")
@PostMapping("/end/down/collect/car")
public R tanscollecttotal7(String boxNum) {
MwCollectRecord one = collectRecordService.lambdaQuery().eq(MwCollectRecord::getBoxNumber, boxNum).eq(MwCollectRecord::getStatus, 2).last("limit 1").one();
if (one == null) {
return R.ok();
}
MwTransitCar byId = carService.getById(one.getCarId());
SysUser one1 = userService.lambdaQuery().eq(SysUser::getCarId, byId.getId()).last("limit 1").one();
CarDto carDto = new CarDto();
carDto.setLicensePlateNumber(byId.getLicensePlateNumber());
carDto.setUserName(one1.getNickName());
return R.ok(carDto);
}
@ApiOperation(value = "扫码接收列表上获取医院",tags = "处置人员")
@PostMapping("/end/down/collect/up")
public R tanscollecttotal4(String boxNum) {
MwCollectRecord one = collectRecordService.lambdaQuery().eq(MwCollectRecord::getBoxNumber, boxNum).eq(MwCollectRecord::getStatus, 2).last("limit 1").one();
if (one == null) {
return R.ok();
}
SysDepartment byId = departmentService.getById(one.getDepartmentId());
return R.ok(byId);
}
@ApiOperation(value = "确认接受",tags = "处置人员")
@PostMapping("/end/down/collect/confirm")
@Transactional(rollbackFor = Exception.class)
public R tanscollecttotal4(@RequestBody BoxListDto boxListDto) {
Long userId = SecurityUtils.getUserId();
SysUser sysUser = userService.getById(userId);
SysDepartment byId = departmentService.getById(sysUser.getDepartmentId());
//将record变为已接受
List list = collectRecordService.lambdaQuery().eq(MwCollectRecord::getStatus,2).in(MwCollectRecord::getBoxNumber, boxListDto.getBoxNum()).list();
if (list.isEmpty()){
return R.ok();
}
Set boxes = new HashSet<>();
BigDecimal receiveQuantity = BigDecimal.ZERO;
for (MwCollectRecord mwCollectRecord : list) {
mwCollectRecord.setStatus(3);
boxes.add(mwCollectRecord.getBoxNumber());
mwCollectRecord.setReceiveUserId(sysUser.getUserId());
mwCollectRecord.setReceiveTime(new Date());
mwCollectRecord.setReceiveDepartmentId(sysUser.getDepartmentId());
receiveQuantity = receiveQuantity.add(mwCollectRecord.getWeight());
}
collectRecordService.updateBatchById(list);
//插入接收记录以及子表
MwDisposalRecord mwDisposalRecord = new MwDisposalRecord();
mwDisposalRecord.setDepartmentId(sysUser.getDepartmentId());
mwDisposalRecord.setDisposalUnitName(byId.getDepartmentName());
mwDisposalRecord.setReceiveQuantity(boxes.size());
mwDisposalRecord.setReceiveTime(new Date());
mwDisposalRecord.setReceiveWeight(receiveQuantity);
mwDisposalRecord.setReceiverId(sysUser.getUserId());
mwDisposalRecord.setUnloadQuantity(boxes.size());
mwDisposalRecord.setUnloadWeight(receiveQuantity);
mwDisposalRecord.setTotalHandledQuantity(list.size());
mwDisposalRecord.setDisposalFlag(0);
mwDisposalRecord.setTotalHandledWeight(receiveQuantity);
mwDisposalRecord.setDriverId(list.get(0).getDriverId());
mwDisposalRecord.setCarId(list.get(0).getCarId());
disposalRecordService.save(mwDisposalRecord);
//插入子表
List items = new ArrayList<>();
for (MwCollectRecord mwCollectRecord : list) {
MwDisposalRecordItem mwDisposalRecordItem = new MwDisposalRecordItem();
mwDisposalRecordItem.setCollectRecordId(mwCollectRecord.getId());
mwDisposalRecordItem.setDisposalRecordId(mwDisposalRecord.getId());
items.add(mwDisposalRecordItem);
}
disposalRecordItemService.saveBatch(items);
MwTransitRoute route = transitRouteService.queryRouteByDepartmentId(list.get(0).getDepartmentId());
if (Objects.nonNull(route)) {
//查询当前车辆已运输路线记录
MwTransitCarCollectPoint carCollectPoint = mwTransitCarCollectPointService.lambdaQuery().eq(MwTransitCarCollectPoint::getCarId, sysUser.getCarId())
.eq(MwTransitCarCollectPoint::getRouteId, route.getId())
.eq(MwTransitCarCollectPoint::getTransitDate, DateUtil.format(new Date(), DatePattern.NORM_DATE_PATTERN))
.last("LIMIT 1").one();
List departmentIdList = new ArrayList<>();
if (Objects.nonNull(carCollectPoint)) {
departmentIdList = JSONArray.parseArray(carCollectPoint.getPointList(), Long.class);
departmentIdList.add(byId.getId());
carCollectPoint.setPointList(JSONArray.toJSONString(departmentIdList));
mwTransitCarCollectPointService.updateById(carCollectPoint);
}
}
return R.ok();
}
@ApiOperation(value = "待处置列表",tags = "处置人员")
@PostMapping("/wait/list")
public R> list1(String boxNumber) {
SysUser sysUser = SecurityUtils.getLoginUser().getUser();
SysUser byId = userService.getById(sysUser.getUserId());
List collectDtos = collectRecordService.getGroupWithStatus(boxNumber,byId.getDepartmentId(),3);
return R.ok(collectDtos);
}
@Transactional(rollbackFor = Exception.class)
@ApiOperation(value = "处置操作",tags = "处置人员")
@PostMapping("/wait/out")
public R> list2(@RequestBody BoxListDto boxListDto) {
Long userId = SecurityUtils.getUserId();
SysUser sysUser = userService.getById(userId);
SysDepartment byId = departmentService.getById(sysUser.getDepartmentId());
List list = collectRecordService.lambdaQuery().eq(MwCollectRecord::getStatus, 3).in(MwCollectRecord::getBoxNumber, boxListDto.getBoxNum()).list();
if (list.isEmpty()){
return R.ok();
}
//新增处置记录
MwDisposalHandleRecord mwDisposalHandleRecord = new MwDisposalHandleRecord();
mwDisposalHandleRecord.setDepartmentId(byId.getId());
mwDisposalHandleRecord.setDisposalUnitName(byId.getDepartmentName());
mwDisposalHandleRecord.setDisposalTime(new Date());
mwDisposalHandleRecord.setDisposalUserId(sysUser.getUserId());
mwDisposalHandleRecord.setDriverId(list.get(0).getDriverId());
mwDisposalHandleRecord.setCarId(list.get(0).getCarId());
disposalHandleRecordService.save(mwDisposalHandleRecord);
List collectIdList = list.stream().map(MwCollectRecord::getId).collect(Collectors.toList());
//查询收集记录对应的接收记录
List disposalRecordItems = disposalRecordItemService.lambdaQuery().in(MwDisposalRecordItem::getCollectRecordId, collectIdList).list();
Map disposalRecordItemMap = disposalRecordItems.stream().collect(Collectors.toMap(MwDisposalRecordItem::getCollectRecordId, MwDisposalRecordItem::getDisposalRecordId));
//将收集记录以及子表改变为已处置
if (!list.isEmpty()) {
List ids = new ArrayList<>();
List mwDisposalHandleRecordItems = new ArrayList<>();
for (MwCollectRecord mwCollectRecord : list) {
ids.add(mwCollectRecord.getId());
mwCollectRecord.setStatus(4);
mwCollectRecord.setDisposalUserId(sysUser.getUserId());
mwCollectRecord.setDisposalTime(new Date());
MwDisposalHandleRecordItem mwDisposalHandleRecordItem = new MwDisposalHandleRecordItem();
mwDisposalHandleRecordItem.setCollectRecordId(mwCollectRecord.getId());
mwDisposalHandleRecordItem.setDisposalHandleRecordId(mwDisposalHandleRecord.getId());
mwDisposalHandleRecordItem.setDisposalRecordId(disposalRecordItemMap.getOrDefault(mwCollectRecord.getId(), null));
mwDisposalHandleRecordItems.add(mwDisposalHandleRecordItem);
}
disposalHandleRecordItemService.saveBatch(mwDisposalHandleRecordItems);
collectRecordService.updateBatchById(list);
}
// //将接收记录以及子表变为已处置
// List list1 = disposalRecordItemService.lambdaQuery().in(MwDisposalRecordItem::getCollectRecordId, ids).list();
// if (!list1.isEmpty()){
// List ids2 = new ArrayList<>();
// for (MwDisposalRecordItem mwDisposalRecordItem : list1) {
// mwDisposalRecordItem.setDisposalFlag(1);
// mwDisposalRecordItem.setDisposalUserId(sysUser.getUserId());
// mwDisposalRecordItem.setDisposalTime(new Date());
// ids2.add(mwDisposalRecordItem.getId());
// }
// disposalRecordItemService.updateBatchById(list1);
// List list2 = disposalRecordService.lambdaQuery().in(MwDisposalRecord::getId, ids2).list();
// for (MwDisposalRecord mwDisposalRecord : list2) {
// mwDisposalRecord.setDisposalFlag(1);
// mwDisposalRecord.setDisposalTime(new Date());
// mwDisposalRecord.setDisposalUserId(sysUser.getUserId());
// }
// disposalRecordService.updateBatchById(list2);
// }
// }
// MwBox byId1 = boxService.getById(list.get(0).getStagingRoomId());
// byId1.setLink(4);
// boxService.updateById(byId1);
return R.ok();
}
@ApiOperation(value = "已装车列表",tags = "运输人员")
@PostMapping("/box/has/collect")
public R> hascollect(String name) {
//获取车辆id
SysUser sysUser = SecurityUtils.getLoginUser().getUser();
SysUser byId = userService.getById(sysUser.getUserId());
//通过车辆id查询列表
List list = collectRecordService.carGroup(byId.getCarId(),name);
return R.ok(list);
}
@ApiOperation(value = "已装车列表详情",tags = "运输人员")
@PostMapping("/box/has/collect/detail")
public R> hascollectdetail(@RequestParam Long hospitalId) {
SysUser sysUser = SecurityUtils.getLoginUser().getUser();
SysUser byId = userService.getById(sysUser.getUserId());
List collectDtos = collectRecordService.getGroup3(null,hospitalId,byId.getCarId());
return R.ok(collectDtos);
}
@ApiOperation("库存信息")
@PostMapping("/list")
public R> list(String boxNumber) {
Long userId = SecurityUtils.getUserId();
SysUser sysUser = userService.getById(userId);
List collectDtos = collectRecordService.getGroup(boxNumber,sysUser.getDepartmentId());
return R.ok(collectDtos);
}
@ApiOperation("收集详情")
@PostMapping("/record")
public R> record(@RequestParam String boxNumber) {
List list = collectRecordService.lambdaQuery().eq(MwCollectRecord::getBoxNumber, boxNumber).orderByDesc(MwCollectRecord::getCollectTime).list();
return R.ok(list);
}
@ApiOperation("库存详情")
@PostMapping("/record1")
public R> record1(@RequestParam String boxNumber) {
List list = collectRecordService.lambdaQuery().isNull(MwCollectRecord::getCheckoutTime).eq(MwCollectRecord::getStatus ,1).eq(MwCollectRecord::getBoxNumber, boxNumber).orderByDesc(MwCollectRecord::getCollectTime).list();
return R.ok(list);
}
@ApiOperation("收集统计上")
@PostMapping("/collect/total")
public R> collecttotal1(@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)LocalDate date) {
SysUser sysUser = SecurityUtils.getLoginUser().getUser();
SysUser byId = userService.getById(sysUser.getUserId());
if (date==null){
date = LocalDate.now();
}
return R.ok(collectRecordService.collectTotal(date,byId.getDepartmentId()));
}
@ApiOperation("收集统计下")
@PostMapping("/collect/down/total")
public R> collecttotal2(@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)LocalDate date,@RequestParam Integer pageNum, @RequestParam Integer pageSize) {
SysUser sysUser = SecurityUtils.getLoginUser().getUser();
SysUser byId = userService.getById(sysUser.getUserId());
Page page = collectRecordService.lambdaQuery()
.ge(MwCollectRecord::getCollectTime, date.atStartOfDay())
.le(MwCollectRecord::getCollectTime, date.atTime(23,59,59))
.eq(MwCollectRecord::getDepartmentId, byId.getDepartmentId())
.orderByDesc(MwCollectRecord::getCollectTime)
.page(Page.of(pageNum, pageSize));
return R.ok(page);
}
@ApiOperation("库存信息底部统计")
@PostMapping("/total")
public R total(String boxNumber) {
SysUser sysUser = SecurityUtils.getLoginUser().getUser();
SysUser byId = userService.getById(sysUser.getUserId());
CollectTotalDto collectTotalDto = new CollectTotalDto();
List collectDtos = collectRecordService.getGroup(boxNumber,byId.getDepartmentId());
for (CollectDto collectDto : collectDtos) {
collectTotalDto.setBoxNum(collectTotalDto.getBoxNum()+1);
collectTotalDto.setCarNum(collectTotalDto.getCarNum()+collectDto.getNum());
collectTotalDto.setWeight(collectTotalDto.getWeight().add(collectDto.getWeight()));
}
return R.ok(collectTotalDto);
}
}