luodangjia
2025-01-07 d0542b6f8b7ead9cea467f12d989eaabb8ec6e60
添加车辆运输路线记录
3个文件已修改
83 ■■■■■ 已修改文件
medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppMwCollectRecordController.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/service/MwTransitRouteService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwTransitRouteServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppMwCollectRecordController.java
@@ -3,13 +3,18 @@
import java.math.BigDecimal;
import java.util.*;
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.fasterxml.jackson.annotation.JsonFormat;
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.entity.PageDTO;
import com.sinata.common.utils.DateUtils;
import com.sinata.common.utils.SecurityUtils;
import com.sinata.common.utils.StringUtils;
import com.sinata.system.domain.*;
import com.sinata.system.domain.dto.*;
import com.sinata.system.domain.query.MwCollectRecordQuery;
@@ -29,6 +34,7 @@
import javax.validation.Valid;
import java.io.IOException;
import java.time.LocalDate;
import java.util.stream.Collectors;
/**
 * <p>
@@ -59,6 +65,8 @@
    private final MwStagingRoomService roomService;
    private final ISysDictDataService dictDataService;
    private final MwTransitCarService carService;
    private final MwTransitCarCollectPointService mwTransitCarCollectPointService;
    private final MwTransitRouteService transitRouteService;
    @ApiOperation(value = "新增医废记录")
@@ -82,6 +90,7 @@
        mwCollectRecord.setStagingRoomId(one1.getId());
        mwCollectRecord.setDepartmentId(sysUser.getDepartmentId());
        mwCollectRecord.setBoxTime(new Date());
        mwCollectRecord.setCollectUserId(sysUser.getUserId());
        // 创建一个随机数生成器实例
        Random random = new Random();
@@ -160,6 +169,32 @@
        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<Long> 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();
    }
@@ -294,10 +329,22 @@
            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<Long> 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();
    }
@@ -327,6 +374,11 @@
        mwDisposalHandleRecord.setDriverId(list.get(0).getDriverId());
        mwDisposalHandleRecord.setCarId(list.get(0).getCarId());
        disposalHandleRecordService.save(mwDisposalHandleRecord);
        List<Long> collectIdList = list.stream().map(MwCollectRecord::getId).collect(Collectors.toList());
        //查询收集记录对应的接收记录
        List<MwDisposalRecordItem> disposalRecordItems = disposalRecordItemService.lambdaQuery().in(MwDisposalRecordItem::getCollectRecordId, collectIdList).list();
        Map<Long, Long> disposalRecordItemMap = disposalRecordItems.stream().collect(Collectors.toMap(MwDisposalRecordItem::getCollectRecordId, MwDisposalRecordItem::getDisposalRecordId));
        //将收集记录以及子表改变为已处置
        if (!list.isEmpty()) {
            List<Long> ids = new ArrayList<>();
@@ -338,10 +390,11 @@
                mwCollectRecord.setDisposalTime(new Date());
                MwDisposalHandleRecordItem mwDisposalHandleRecordItem = new MwDisposalHandleRecordItem();
                mwDisposalHandleRecordItem.setCollectRecordId(mwCollectRecord.getId());
                mwDisposalHandleRecordItem.setDisposalRecordId(mwDisposalHandleRecord.getId());
                mwDisposalHandleRecordItem.setDisposalHandleRecordId(mwDisposalHandleRecord.getId());
                mwDisposalHandleRecordItem.setDisposalRecordId(disposalRecordItemMap.getOrDefault(mwCollectRecord.getId(), null));
                mwDisposalHandleRecordItems.add(mwDisposalHandleRecordItem);
            }
//            disposalHandleRecordItemService.saveBatch(mwDisposalHandleRecordItems);
            disposalHandleRecordItemService.saveBatch(mwDisposalHandleRecordItems);
            collectRecordService.updateBatchById(list);
        }
//            //将接收记录以及子表变为已处置
medicalWaste-system/src/main/java/com/sinata/system/service/MwTransitRouteService.java
@@ -54,4 +54,11 @@
     * @param id
     */
    void delete(Long id);
    /**
     * 根据医院查询路线
     * @param departmentId
     * @return
     */
    MwTransitRoute queryRouteByDepartmentId(Long departmentId);
}
medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwTransitRouteServiceImpl.java
@@ -146,4 +146,17 @@
        mwTransitRouteCarService.lambdaUpdate().eq(MwTransitRouteCar::getRouteId, id).remove();
        removeById(id);
    }
    /**
     * 根据医院查询路线
     * @param departmentId
     * @return
     */
    @Override
    public MwTransitRoute queryRouteByDepartmentId(Long departmentId) {
        MwTransitRoutePoints routePoint = mwTransitRoutePointsService.lambdaQuery().eq(MwTransitRoutePoints::getDepartmentId, departmentId).last("LIMIT 1").one();
        if (Objects.nonNull(routePoint)) {
            return this.getById(routePoint.getRouteId());
        }
        return null;
    }
}