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); } }