zhangback
23 小时以前 ba87fd72f14c5ed0caf14e9d8ff116d254a8c113
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;
@@ -117,6 +119,9 @@
    @Resource
    private TmsShelfMapper tmsShelfMapper;
    @Autowired
    private ITmsDispatchOrderImportLogService tmsDispatchOrderImportLogService;
    /**
@@ -276,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{
@@ -285,23 +298,54 @@
        }
    }
    //填写委托报关信息
    @Override
    public int customsOrder(TmsDispatchOrder tmsDispatchOrder) {
        return tmsDispatchOrderMapper.update(new LambdaUpdateWrapper<TmsDispatchOrder>()
                .eq(TmsDispatchOrder::getId, tmsDispatchOrder.getId())
                .set(TmsDispatchOrder::getCustomsServiceProviderId, tmsDispatchOrder.getCustomsServiceProviderId())
                .set(TmsDispatchOrder::getCustomsServiceProviderName, tmsDispatchOrder.getCustomsServiceProviderName())
        );
    public int customsOrder(List<TmsDispatchOrder> tmsDispatchOrders) {
        int totalResult = 0;
        for (TmsDispatchOrder tmsDispatchOrder : tmsDispatchOrders) {
            int result = tmsDispatchOrderMapper.update(new LambdaUpdateWrapper<TmsDispatchOrder>()
                    .eq(TmsDispatchOrder::getId, tmsDispatchOrder.getId())
                    .set(TmsDispatchOrder::getCustomsServiceProviderId, tmsDispatchOrder.getCustomsServiceProviderId())
                    .set(TmsDispatchOrder::getCustomsServiceProviderName, tmsDispatchOrder.getCustomsServiceProviderName())
            );
            totalResult += result;
            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 totalResult;
    }
    //填写委托装卸信息
    @Override
    public int loadingOrder(TmsDispatchOrder tmsDispatchOrder) {
        return tmsDispatchOrderMapper.update(new LambdaUpdateWrapper<TmsDispatchOrder>()
                .eq(TmsDispatchOrder::getId, tmsDispatchOrder.getId())
                .set(TmsDispatchOrder::getLoadingServiceProviderId, tmsDispatchOrder.getLoadingServiceProviderId())
                .set(TmsDispatchOrder::getLoadingServiceProviderName, tmsDispatchOrder.getLoadingServiceProviderName())
        );
    public int loadingOrder(List<TmsDispatchOrder> tmsDispatchOrders) {
        int totalResult = 0;
        for (TmsDispatchOrder tmsDispatchOrder : tmsDispatchOrders) {
            int result = tmsDispatchOrderMapper.update(new LambdaUpdateWrapper<TmsDispatchOrder>()
                    .eq(TmsDispatchOrder::getId, tmsDispatchOrder.getId())
                    .set(TmsDispatchOrder::getLoadingServiceProviderId, tmsDispatchOrder.getLoadingServiceProviderId())
                    .set(TmsDispatchOrder::getLoadingServiceProviderName, tmsDispatchOrder.getLoadingServiceProviderName())
            );
            totalResult += result;
            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 totalResult;
    }
    @Override
@@ -314,7 +358,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 ->{
@@ -344,7 +388,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()){
@@ -356,6 +400,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());
@@ -548,7 +630,17 @@
        int failureNum = 0;
        StringBuilder successMsg = new StringBuilder();
        StringBuilder failureMsg = new StringBuilder();
        StringBuilder failureDescription = new StringBuilder();
        int line = 1;
        // 创建导入日志对象
        TmsDispatchOrderImportLog importLog = new TmsDispatchOrderImportLog();
        importLog.setImportTime(DateUtils.getNowDate());
        importLog.setFileName("调度单导入文件"); // 这里需要根据实际情况获取文件名
        importLog.setOperator(SecurityUtils.getUsername());
        importLog.setCreateBy(SecurityUtils.getUsername());
        importLog.setCreateTime(DateUtils.getNowDate());
        for (TmsDispatchOrderImport tmsDispatchOrderImport : list){
            try
            {
@@ -722,10 +814,26 @@
                failureNum++;
                String msg = "<br/>" +  "调度单第"+line+"行导入失败:";
                failureMsg.append(msg + e.getMessage());
                // 记录失败说明,包含行号和失败原因
                failureDescription.append("第" + line + "行:" + e.getMessage()).append("\n");
                log.error(msg, e);
            }finally {
                line++;
            }
        }
        // 设置导入日志的统计信息
        importLog.setSuccessCount(list.size() - failureNum);
        importLog.setFailureCount(failureNum);
        importLog.setFailureDescription(failureDescription.toString());
        // 保存导入日志
        try {
            tmsDispatchOrderImportLogService.insertTmsDispatchOrderImportLog(importLog);
        } catch (Exception e) {
            log.error("保存导入日志失败:", e);
        }
        if (failureNum > 0)
@@ -755,6 +863,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);
    }
@@ -783,7 +912,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
@@ -811,10 +970,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")
@@ -829,7 +989,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;
    }
    /**
@@ -1035,6 +1207,7 @@
                // 2、 获取实报实销费用
                List<TmsFinanceDetail> tmsFinanceDetails = tmsFinanceDetailService.selectTmsFinanceDetailList(new TmsFinanceDetail() {{
                    setDispatchOrderId(tmsDispatchOrder.getId());
                    setStatus(0);
                }});
                if (tmsFinanceDetails != null && !tmsFinanceDetails.isEmpty()){
@@ -1154,6 +1327,7 @@
                // 2、 获取实报实销费用
                List<TmsFinanceDetail> tmsFinanceDetails = tmsFinanceDetailService.selectTmsFinanceDetailList(new TmsFinanceDetail() {{
                    setDispatchOrderId(tmsDispatchOrder.getId());
                    setStatus(0);
                    setIsYF(1);
                }});
@@ -1536,4 +1710,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")
        );
    }
}