wujianwei
2026-03-30 34669fa71bd2cc4a4ff57d7d2440a95da998b6b5
tms/src/main/java/com/ruoyi/tms/service/impl/TmsDispatchOrderServiceImpl.java
@@ -62,6 +62,8 @@
    private ISysUserService userService;
    @Autowired
    private ITmsDriverDispatchService tmsDriverDispatchService;
    @Autowired
    private ITmsDispatchOrderLogService tmsDispatchOrderLogService;
    @Resource
    private TmsQuoteDetailMapper tmsQuoteDetailMapper;
@@ -279,8 +281,16 @@
            tmsDispatchOrder.setCloseTime(DateUtils.getNowDate());
            tmsDispatchOrder.setCloseRemark(tmsDispatchOrder.getCloseRemark());
            tmsDispatchOrder.setCloseWhy(tmsDispatchOrder.getCloseWhy());
            tmsDispatchOrderMapper.updateTmsDispatchOrder(tmsDispatchOrder);
            // TODO 加日志
            int result = tmsDispatchOrderMapper.updateTmsDispatchOrder(tmsDispatchOrder);
            if (result > 0) {
                TmsDispatchOrderLog log = new TmsDispatchOrderLog();
                log.setHeadId(tmsDispatchOrder.getId());
                log.setCreateBy(SecurityUtils.getUsername());
                log.setCreateTime(DateUtils.getNowDate());
                log.setNode("作废调度单");
                tmsDispatchOrderLogService.insertTmsDispatchOrderLog(log);
            }
            return AjaxResult.success("操作成功");
        }else{
@@ -288,23 +298,49 @@
        }
    }
    //填写委托报关信息
    @Override
    public int customsOrder(TmsDispatchOrder tmsDispatchOrder) {
        return tmsDispatchOrderMapper.update(new LambdaUpdateWrapper<TmsDispatchOrder>()
        int result = tmsDispatchOrderMapper.update(new LambdaUpdateWrapper<TmsDispatchOrder>()
                .eq(TmsDispatchOrder::getId, tmsDispatchOrder.getId())
                .set(TmsDispatchOrder::getCustomsServiceProviderId, tmsDispatchOrder.getCustomsServiceProviderId())
                .set(TmsDispatchOrder::getCustomsServiceProviderName, tmsDispatchOrder.getCustomsServiceProviderName())
        );
        if (result > 0) {
            TmsDispatchOrderLog log = new TmsDispatchOrderLog();
            log.setHeadId(tmsDispatchOrder.getId());
            log.setCreateBy(SecurityUtils.getUsername());
            log.setCreateTime(DateUtils.getNowDate());
            log.setNode("填写委托报关信息");
            tmsDispatchOrderLogService.insertTmsDispatchOrderLog(log);
        }
        return result;
    }
    //填写委托装卸信息
    @Override
    public int loadingOrder(TmsDispatchOrder tmsDispatchOrder) {
        return tmsDispatchOrderMapper.update(new LambdaUpdateWrapper<TmsDispatchOrder>()
        int result = tmsDispatchOrderMapper.update(new LambdaUpdateWrapper<TmsDispatchOrder>()
                .eq(TmsDispatchOrder::getId, tmsDispatchOrder.getId())
                .set(TmsDispatchOrder::getLoadingServiceProviderId, tmsDispatchOrder.getLoadingServiceProviderId())
                .set(TmsDispatchOrder::getLoadingServiceProviderName, tmsDispatchOrder.getLoadingServiceProviderName())
        );
        if (result > 0) {
            TmsDispatchOrderLog log = new TmsDispatchOrderLog();
            log.setHeadId(tmsDispatchOrder.getId());
            log.setCreateBy(SecurityUtils.getUsername());
            log.setCreateTime(DateUtils.getNowDate());
            log.setNode("填写委托装卸信息");
            tmsDispatchOrderLogService.insertTmsDispatchOrderLog(log);
        }
        return result;
    }
    @Override
@@ -317,7 +353,7 @@
        DriverDispatchVo vo = new DriverDispatchVo();
        vo.setDriverId(deviceId);
        vo.setInStatusList(Arrays.asList(0, 1, 2,4));
        vo.setInTdoStatusList(Arrays.asList(1, 2));
        vo.setInTdoStatusList(Arrays.asList(1, 2,6,7));
        List<DriverDispatchVo> driverDispatchVos = tmsDispatchOrderMapper.selectAssignedItineraryList(vo);
        if (driverDispatchVos != null && !driverDispatchVos.isEmpty()){
            driverDispatchVos.forEach(item ->{
@@ -347,7 +383,7 @@
        DriverDispatchVo vo = new DriverDispatchVo();
        vo.setDriverId(deviceId);
        vo.setInStatusList(Arrays.asList(3,5));
        vo.setInStatusList(Arrays.asList(2,3,5));
//        vo.setInTdoStatusList(Arrays.asList(1, 2));
        List<DriverDispatchVo> driverDispatchVos = tmsDispatchOrderMapper.selectAssignedItineraryList(vo);
        if (driverDispatchVos != null && !driverDispatchVos.isEmpty()){
@@ -359,6 +395,44 @@
        return AjaxResult.success(driverDispatchVos);
    }
    @Override
    public Map<String, Object> assignedItineraryLogListPage(Integer pageNum, Integer pageSize) {
        Integer deviceId = userService.getDeviceId(SecurityUtils.getUserId());
        Map<String, Object> result = new HashMap<>();
        if (deviceId == null) {
            result.put("rows", Collections.emptyList());
            result.put("total", 0);
            return result;
        }
        DriverDispatchVo vo = new DriverDispatchVo();
        vo.setDriverId(deviceId);
       // vo.setInStatusList(Arrays.asList(3, 5));
        // 先查总数
        List<DriverDispatchVo> allList = tmsDispatchOrderMapper.selectAssignedItineraryList(vo);
        int total = allList != null ? allList.size() : 0;
        // 手动分页(SQL 已加 ORDER BY)
        int fromIndex = (pageNum - 1) * pageSize;
        List<DriverDispatchVo> pageList;
        if (allList == null || fromIndex >= total) {
            pageList = Collections.emptyList();
        } else {
            int toIndex = Math.min(fromIndex + pageSize, total);
            pageList = allList.subList(fromIndex, toIndex);
        }
        if (!pageList.isEmpty()) {
            pageList.forEach(item -> item.setStatusStr("完成行程"));
        }
        result.put("rows", pageList);
        result.put("total", total);
        return result;
    }
    @Override
    public AjaxResult selectAssignedItineraryDetail(Integer dispatchId) {
        Integer deviceId = userService.getDeviceId(SecurityUtils.getUserId());
@@ -553,7 +627,7 @@
        StringBuilder failureMsg = new StringBuilder();
        StringBuilder failureDescription = new StringBuilder();
        int line = 1;
        // 创建导入日志对象
        TmsDispatchOrderImportLog importLog = new TmsDispatchOrderImportLog();
        importLog.setImportTime(DateUtils.getNowDate());
@@ -561,7 +635,7 @@
        importLog.setOperator(SecurityUtils.getUsername());
        importLog.setCreateBy(SecurityUtils.getUsername());
        importLog.setCreateTime(DateUtils.getNowDate());
        for (TmsDispatchOrderImport tmsDispatchOrderImport : list){
            try
            {
@@ -735,10 +809,10 @@
                failureNum++;
                String msg = "<br/>" +  "调度单第"+line+"行导入失败:";
                failureMsg.append(msg + e.getMessage());
                // 记录失败说明,包含行号和失败原因
                failureDescription.append("第" + line + "行:" + e.getMessage()).append("\n");
                log.error(msg, e);
            }finally {
                line++;
@@ -749,7 +823,7 @@
        importLog.setSuccessCount(list.size() - failureNum);
        importLog.setFailureCount(failureNum);
        importLog.setFailureDescription(failureDescription.toString());
        // 保存导入日志
        try {
            tmsDispatchOrderImportLogService.insertTmsDispatchOrderImportLog(importLog);
@@ -784,6 +858,27 @@
        tmsDispatchOrder.setDispatchNo(noByKey);
        tmsDispatchOrder.setCreateBy(SecurityUtils.getUsername());
        tmsDispatchOrder.setCreateTime(DateUtils.getNowDate());
        int result = tmsDispatchOrderMapper.insertTmsDispatchOrder(tmsDispatchOrder);
        if (result > 0) {
            TmsDispatchOrderLog log = new TmsDispatchOrderLog();
            log.setHeadId(tmsDispatchOrder.getId());
            log.setCreateBy(SecurityUtils.getUsername());
            log.setCreateTime(DateUtils.getNowDate());
            log.setNode("新增调度单");
            tmsDispatchOrderLogService.insertTmsDispatchOrderLog(log);
        }
        return result;
    }
    @Override
    public int insertTmsDispatchOrder2(TmsDispatchOrder tmsDispatchOrder)
    {
        String noByKey = systemDataNoService.getNoByKey(SystemDataNoEnum.DL);
        tmsDispatchOrder.setDispatchNo(noByKey);
        tmsDispatchOrder.setCreateBy("AGENTS");
        tmsDispatchOrder.setCreateTime(DateUtils.getNowDate());
        return tmsDispatchOrderMapper.insertTmsDispatchOrder(tmsDispatchOrder);
    }
@@ -812,7 +907,37 @@
        tmsDispatchOrder.setUpdateBy(SecurityUtils.getUsername());
        tmsDispatchOrder.setUpdateTime(DateUtils.getNowDate());
        return tmsDispatchOrderMapper.updateTmsDispatchOrder(tmsDispatchOrder);
        int result = tmsDispatchOrderMapper.updateTmsDispatchOrder(tmsDispatchOrder);
        if (result > 0) {
            TmsDispatchOrderLog log = new TmsDispatchOrderLog();
            log.setHeadId(tmsDispatchOrder.getId());
            log.setCreateBy(SecurityUtils.getUsername());
            log.setCreateTime(DateUtils.getNowDate());
            log.setNode("编辑调度单");
            tmsDispatchOrderLogService.insertTmsDispatchOrderLog(log);
        }
        return result;
    }
    @Override
    public int updateTmsDispatchOrder2(TmsDispatchOrder tmsDispatchOrder)
    {
        tmsDispatchOrder.setUpdateBy(SecurityUtils.getUsername());
        tmsDispatchOrder.setUpdateTime(DateUtils.getNowDate());
        int result = tmsDispatchOrderMapper.updateTmsDispatchOrder(tmsDispatchOrder);
        if (result > 0) {
            TmsDispatchOrderLog log = new TmsDispatchOrderLog();
            log.setHeadId(tmsDispatchOrder.getId());
            log.setCreateBy(SecurityUtils.getUsername());
            log.setCreateTime(DateUtils.getNowDate());
            log.setNode("填写实际运输记录");
            tmsDispatchOrderLogService.insertTmsDispatchOrderLog(log);
        }
        return result;
    }
    @Override
@@ -840,10 +965,11 @@
    }
    //承运单打印
    @Override
    public int printDispatchOrder(TmsDispatchOrder tmsDispatchOrder)
    {
        return tmsDispatchOrderMapper.update(null,new LambdaUpdateWrapper<TmsDispatchOrder>()
        int result = tmsDispatchOrderMapper.update(null,new LambdaUpdateWrapper<TmsDispatchOrder>()
                .eq(TmsDispatchOrder::getId,tmsDispatchOrder.getId())
                .set(TmsDispatchOrder::getIsPrint,0)
                        .setSql("print_count = IFNULL(print_count, 0) + 1")
@@ -858,7 +984,19 @@
                        .set(TmsDispatchOrder::getWeight,tmsDispatchOrder.getWeight())
                        .set(TmsDispatchOrder::getContactName,tmsDispatchOrder.getContactName())
                        .set(TmsDispatchOrder::getContactPhone,tmsDispatchOrder.getContactPhone())
                );
        );
        if (result > 0) {
            TmsDispatchOrderLog log = new TmsDispatchOrderLog();
            log.setHeadId(tmsDispatchOrder.getId());
            log.setCreateBy(SecurityUtils.getUsername());
            log.setCreateTime(DateUtils.getNowDate());
            log.setNode("承运单打印");
            tmsDispatchOrderLogService.insertTmsDispatchOrderLog(log);
        }
        return result;
    }
    /**
@@ -1565,4 +1703,13 @@
    public List<DpItineraryLogVo> selectItineraryLog() {
        return tmsDispatchOrderMapper.selectItineraryLog();
    }
    @Override
    public TmsDispatchOrder getLastLicensePlateByDriverName(String driverName) {
        return tmsDispatchOrderMapper.selectOne(new LambdaQueryWrapper<TmsDispatchOrder>()
                .eq(TmsDispatchOrder::getMainDriverName, driverName)
                .orderByDesc(TmsDispatchOrder::getCreateTime)
                .last("limit 1")
        );
    }
}