From 4bcd65582775b7b8fe8cf1cf493dadbcc7f92a2d Mon Sep 17 00:00:00 2001 From: wenshijun Date: Sun, 7 Dec 2025 16:42:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=BB=9F=E8=AE=A1=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E6=8E=A5=E5=8F=A3=20=E6=96=B0=E5=A2=9Eocr=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=8A=9F=E8=83=BD=20=E5=8D=95=E6=8D=AE=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E4=BF=AE=E6=94=B9=E4=B8=BA/listWithDetail=EF=BC=8C?= =?UTF-8?q?=E4=B9=8B=E5=89=8D=E7=9A=84list=E5=92=8ClistGroup=E4=B8=8D?= =?UTF-8?q?=E5=86=8D=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DeliveryOrderController.java | 100 ++-- .../domain/dto/DeliveryOrderStatQuery.java | 40 ++ .../domain/vo/DeliveryDailyStatVO.java | 33 ++ .../document/domain/vo/DeliveryOrderVo.java | 124 ++++ .../domain/vo/DeliveryOverviewStatVO.java | 45 ++ .../domain/vo/DeliveryStatusStatVO.java | 30 + .../domain/vo/DeliveryVehicleTypeStatVO.java | 33 ++ .../document/mapper/DeliveryOrderMapper.java | 20 +- .../service/IDeliveryOrderService.java | 106 +--- .../impl/DeliveryOrderServiceImpl.java | 37 +- .../project/ocr/config/QwenProperties.java | 24 - src/main/resources/application.yml | 2 +- .../mybatis/document/DeliveryOrderMapper.xml | 532 ++++++++++++++++-- 13 files changed, 922 insertions(+), 204 deletions(-) create mode 100644 src/main/java/com/delivery/project/document/domain/dto/DeliveryOrderStatQuery.java create mode 100644 src/main/java/com/delivery/project/document/domain/vo/DeliveryDailyStatVO.java create mode 100644 src/main/java/com/delivery/project/document/domain/vo/DeliveryOrderVo.java create mode 100644 src/main/java/com/delivery/project/document/domain/vo/DeliveryOverviewStatVO.java create mode 100644 src/main/java/com/delivery/project/document/domain/vo/DeliveryStatusStatVO.java create mode 100644 src/main/java/com/delivery/project/document/domain/vo/DeliveryVehicleTypeStatVO.java diff --git a/src/main/java/com/delivery/project/document/controller/DeliveryOrderController.java b/src/main/java/com/delivery/project/document/controller/DeliveryOrderController.java index 68c6114..dfab382 100644 --- a/src/main/java/com/delivery/project/document/controller/DeliveryOrderController.java +++ b/src/main/java/com/delivery/project/document/controller/DeliveryOrderController.java @@ -5,18 +5,11 @@ import javax.servlet.http.HttpServletResponse; import com.delivery.project.document.domain.dto.DeliveryOrderCreateDTO; import com.delivery.project.document.domain.dto.DeliveryOrderSaveDTO; -import com.delivery.project.document.domain.vo.DeliveryBillVO; -import com.delivery.project.document.domain.vo.DeliveryOrderGroupVO; +import com.delivery.project.document.domain.dto.DeliveryOrderStatQuery; +import com.delivery.project.document.domain.vo.*; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import com.delivery.framework.aspectj.lang.annotation.Log; import com.delivery.framework.aspectj.lang.enums.BusinessType; import com.delivery.project.document.domain.DeliveryOrder; @@ -28,39 +21,51 @@ import com.delivery.framework.web.page.TableDataInfo; /** * 配送单据主Controller - * + * * @author delivery * @date 2025-10-15 */ @RestController @RequestMapping("/document/order") -public class DeliveryOrderController extends BaseController -{ +public class DeliveryOrderController extends BaseController { + @Autowired private IDeliveryOrderService deliveryOrderService; /** * 查询配送单据主列表 */ - @PreAuthorize("@ss.hasPermi('document:order:list')") - @GetMapping("/list") - public TableDataInfo list(DeliveryOrder deliveryOrder) - { +// @PreAuthorize("@ss.hasPermi('document:order:list')") + @PostMapping("/list") + public TableDataInfo list(@RequestBody DeliveryOrder deliveryOrder) { startPage(); List list = deliveryOrderService.selectDeliveryOrderList(deliveryOrder); return getDataTable(list); } + /** + * 新增:详细列表(表头 + 货物明细 + 照片),不分页 + */ +// @PreAuthorize("@ss.hasPermi('document:order:list')") + @GetMapping("/listWithDetail") + public TableDataInfo listWithDetail(DeliveryOrder deliveryOrder) { + + startPage(); + + List list = deliveryOrderService.selectDeliveryOrderVoList(deliveryOrder); + + return getDataTable(list); + } + /** * 导出配送单据主列表 */ @PreAuthorize("@ss.hasPermi('document:order:export')") @Log(title = "配送单据主", businessType = BusinessType.EXPORT) @PostMapping("/export") - public void export(HttpServletResponse response, DeliveryOrder deliveryOrder) - { + public void export(HttpServletResponse response, DeliveryOrder deliveryOrder) { List list = deliveryOrderService.selectDeliveryOrderList(deliveryOrder); - ExcelUtil util = new ExcelUtil(DeliveryOrder.class); + ExcelUtil util = new ExcelUtil<>(DeliveryOrder.class); util.exportExcel(response, list, "配送单据主数据"); } @@ -69,8 +74,7 @@ public class DeliveryOrderController extends BaseController */ @PreAuthorize("@ss.hasPermi('document:order:query')") @GetMapping(value = "/{id}") - public AjaxResult getInfo(@PathVariable("id") Long id) - { + public AjaxResult getInfo(@PathVariable("id") Long id) { return success(deliveryOrderService.selectDeliveryOrderById(id)); } @@ -80,8 +84,7 @@ public class DeliveryOrderController extends BaseController @PreAuthorize("@ss.hasPermi('document:order:add')") @Log(title = "配送单据主", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@RequestBody DeliveryOrder deliveryOrder) - { + public AjaxResult add(@RequestBody DeliveryOrder deliveryOrder) { return toAjax(deliveryOrderService.insertDeliveryOrder(deliveryOrder)); } @@ -100,17 +103,13 @@ public class DeliveryOrderController extends BaseController */ @PreAuthorize("@ss.hasPermi('document:order:remove')") @Log(title = "配送单据主", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public AjaxResult remove(@PathVariable Long[] ids) - { + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(deliveryOrderService.deleteDeliveryOrderByIds(ids)); } - /** - * 保存配送单 - * @param dto - * @return + * 保存配送单(含附件) */ @PreAuthorize("@ss.hasPermi('document:order:add')") @Log(title = "配送单据主-保存(含附件)", businessType = BusinessType.INSERT) @@ -121,7 +120,6 @@ public class DeliveryOrderController extends BaseController return toAjax(rows); } - /** 发布配送单据:同一单号多行写入 */ @PreAuthorize("@ss.hasPermi('document:order:add')") @Log(title = "配送单据", businessType = BusinessType.INSERT) @@ -144,19 +142,49 @@ public class DeliveryOrderController extends BaseController // @PreAuthorize("@ss.hasPermi('document:order:query')") @GetMapping("/detail/{orderNo}") public AjaxResult detail(@PathVariable String orderNo) { - return success(deliveryOrderService.listByOrderNo(orderNo)); - } - /** * 从智慧实物系统拉取待配送出库单据列表 */ @GetMapping("/wisdom/rk/list") public AjaxResult listRkFromWisdom() { - // 这里直接返回一对多结构 List list = deliveryOrderService.listWisdomRkForDelivery(); return AjaxResult.success(list); } + + // ======================== 统计接口 ======================== + + /** 总览统计 */ + //@PreAuthorize("@ss.hasPermi('document:order:stat')") + @PostMapping("/stat/overview") + public AjaxResult statOverview(@RequestBody DeliveryOrderStatQuery query) { + DeliveryOverviewStatVO vo = deliveryOrderService.statOverview(query); + return AjaxResult.success(vo); + } + + /** 按配送状态统计 */ + //@PreAuthorize("@ss.hasPermi('document:order:stat')") + @PostMapping("/stat/status") + public AjaxResult statByStatus(@RequestBody DeliveryOrderStatQuery query) { + List list = deliveryOrderService.statByStatus(query); + return AjaxResult.success(list); + } + + /** 按车辆类型统计 */ + //@PreAuthorize("@ss.hasPermi('document:order:stat')") + @PostMapping("/stat/vehicleType") + public AjaxResult statByVehicleType(@RequestBody DeliveryOrderStatQuery query) { + List list = deliveryOrderService.statByVehicleType(query); + return AjaxResult.success(list); + } + + /** 按日期(日维度)统计 */ + //@PreAuthorize("@ss.hasPermi('document:order:stat')") + @PostMapping("/stat/daily") + public AjaxResult statByDaily(@RequestBody DeliveryOrderStatQuery query) { + List list = deliveryOrderService.statByDaily(query); + return AjaxResult.success(list); + } } diff --git a/src/main/java/com/delivery/project/document/domain/dto/DeliveryOrderStatQuery.java b/src/main/java/com/delivery/project/document/domain/dto/DeliveryOrderStatQuery.java new file mode 100644 index 0000000..365889b --- /dev/null +++ b/src/main/java/com/delivery/project/document/domain/dto/DeliveryOrderStatQuery.java @@ -0,0 +1,40 @@ +package com.delivery.project.document.domain.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * 配送统计查询条件 + */ +@Data +public class DeliveryOrderStatQuery { + + /** 开始日期(按配送日期过滤) */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date beginDate; + + /** 结束日期(按配送日期过滤) */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date endDate; + + /** 配送状态(单选)0待接单 1已接单 2配送中 3已签收 */ + private String orderStatus; + + /** 配送状态(多选) */ + private List orderStatusList; + + /** 车辆类型ID */ + private Long vehicleTypeId; + + /** 车牌号(可选,用于后续扩展) */ + private String plateNo; + + /** 起始地点名称模糊查询 */ + private String originName; + + /** 目的地名称模糊查询 */ + private String destName; +} diff --git a/src/main/java/com/delivery/project/document/domain/vo/DeliveryDailyStatVO.java b/src/main/java/com/delivery/project/document/domain/vo/DeliveryDailyStatVO.java new file mode 100644 index 0000000..af16edf --- /dev/null +++ b/src/main/java/com/delivery/project/document/domain/vo/DeliveryDailyStatVO.java @@ -0,0 +1,33 @@ +package com.delivery.project.document.domain.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 按日期(日)统计 + */ +@Data +public class DeliveryDailyStatVO { + + /** 统计日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date statDate; + + /** 订单数 */ + private Long orderCount; + + /** 总配送吨位 */ + private BigDecimal totalDeliveryTon; + + /** 总货物面积 */ + private BigDecimal totalGoodsSize; + + /** 总实际费用 */ + private BigDecimal totalActualFee; + + /** 总行驶公里数 */ + private BigDecimal totalKm; +} diff --git a/src/main/java/com/delivery/project/document/domain/vo/DeliveryOrderVo.java b/src/main/java/com/delivery/project/document/domain/vo/DeliveryOrderVo.java new file mode 100644 index 0000000..59914a2 --- /dev/null +++ b/src/main/java/com/delivery/project/document/domain/vo/DeliveryOrderVo.java @@ -0,0 +1,124 @@ +package com.delivery.project.document.domain.vo; + +import com.delivery.project.document.domain.DeliveryAttachment; +import com.delivery.project.document.domain.dto.DeliveryOrderLineDTO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * 配送单据返回视图对象(头 + 行明细 + 照片) + */ +@Data +public class DeliveryOrderVo { + + /** 配送单据号(可空,后台自动生成) */ + private String orderNo; + + /** 出库单据号 */ + private String billNoCk; + + /** 起始地点名称 */ + private String originName; + + /** 起始地点经度 */ + private BigDecimal originLng; + + /** 起始地点纬度 */ + private BigDecimal originLat; + + /** 目的地点名称 */ + private String destName; + + /** 目的地点经度 */ + private BigDecimal destLng; + + /** 目的地点纬度 */ + private BigDecimal destLat; + + /** 配送日期 */ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date deliveryDate; + + /** 车牌号 */ + private String plateNo; + + /** 发货人名称 */ + private String shipperName; + + /** 发货人联系方式 */ + private String shipperPhone; + + /** 接收人名称 */ + private String receiverName; + + /** 接收人联系方式 */ + private String receiverPhone; + + /** 接收单位 */ + private String receiverOrgName; + + /** 配送吨位 */ + private BigDecimal deliveryTon; + + /** 货物尺寸 */ + private BigDecimal goodsSize; + + /** + * 接收物资状态: + * 1:数量齐全、状态完好(默认) + * 2:存在问题 + */ + private Integer receiveStatus; + + /** + * 接收物资问题描述(receiveStatus = 2 时必填) + */ + private String receiveProblem; + + /** 制单人ID(前端可传;如果为空则后台自动取当前登录用户ID) */ + private Long makerId; + + /** 配送状态(默认:1 已接单 / 后续会调整) */ + private String orderStatus; + + /** 车型 ID */ + private Long vehicleTypeId; + + /** 车型名称 */ + private String vehicleTypeName; + + /** 建议费用 */ + private BigDecimal suggestFee; + + /** 实际费用 */ + private BigDecimal actualFee; + + /** 高速费用 */ + private BigDecimal tollFee; + + /** 总公里数 */ + private BigDecimal totalKm; + + /** 备注 */ + private String remark; + + // ==================== 行明细(多物料行) ==================== + + /** + * 物料明细项列表(同一单号下多条记录) + * 每条记录包含项目、物料、数量、单位等信息 + */ + private List items; + + // ==================== 照片 / 附件 ==================== + + /** + * 当前配送单据下的所有附件 + * (现场照片 / 司机签字 / 收货签字 / 单据照片等) + */ + private List attachments; +} diff --git a/src/main/java/com/delivery/project/document/domain/vo/DeliveryOverviewStatVO.java b/src/main/java/com/delivery/project/document/domain/vo/DeliveryOverviewStatVO.java new file mode 100644 index 0000000..d29ff90 --- /dev/null +++ b/src/main/java/com/delivery/project/document/domain/vo/DeliveryOverviewStatVO.java @@ -0,0 +1,45 @@ +package com.delivery.project.document.domain.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 配送总览统计 + */ +@Data +public class DeliveryOverviewStatVO { + + /** 总订单数 */ + private Long totalOrderCount; + + /** 总配送吨位 */ + private BigDecimal totalDeliveryTon; + + /** 总货物面积(㎡) */ + private BigDecimal totalGoodsSize; + + /** 总建议费用 */ + private BigDecimal totalSuggestFee; + + /** 总实际费用 */ + private BigDecimal totalActualFee; + + /** 总高速费用 */ + private BigDecimal totalTollFee; + + /** 总行驶公里数 */ + private BigDecimal totalKm; + + /** 待接单数量(status=0) */ + private Long waitCount; + + /** 已接单数量(status=1) */ + private Long acceptedCount; + + /** 配送中数量(status=2) */ + private Long deliveringCount; + + /** 已签收数量(status=3) */ + private Long signedCount; +} diff --git a/src/main/java/com/delivery/project/document/domain/vo/DeliveryStatusStatVO.java b/src/main/java/com/delivery/project/document/domain/vo/DeliveryStatusStatVO.java new file mode 100644 index 0000000..43cf392 --- /dev/null +++ b/src/main/java/com/delivery/project/document/domain/vo/DeliveryStatusStatVO.java @@ -0,0 +1,30 @@ +package com.delivery.project.document.domain.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 按配送状态统计 + */ +@Data +public class DeliveryStatusStatVO { + + /** 配送状态(0待接单 1已接单 2配送中 3已签收) */ + private String orderStatus; + + /** 订单数 */ + private Long orderCount; + + /** 总配送吨位 */ + private BigDecimal totalDeliveryTon; + + /** 总货物面积 */ + private BigDecimal totalGoodsSize; + + /** 总实际费用 */ + private BigDecimal totalActualFee; + + /** 总行驶公里数 */ + private BigDecimal totalKm; +} diff --git a/src/main/java/com/delivery/project/document/domain/vo/DeliveryVehicleTypeStatVO.java b/src/main/java/com/delivery/project/document/domain/vo/DeliveryVehicleTypeStatVO.java new file mode 100644 index 0000000..8dcd2a1 --- /dev/null +++ b/src/main/java/com/delivery/project/document/domain/vo/DeliveryVehicleTypeStatVO.java @@ -0,0 +1,33 @@ +package com.delivery.project.document.domain.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 按车辆类型统计 + */ +@Data +public class DeliveryVehicleTypeStatVO { + + /** 车辆类型ID */ + private Long vehicleTypeId; + + /** 车辆类型名称 */ + private String vehicleTypeName; + + /** 订单数 */ + private Long orderCount; + + /** 总配送吨位 */ + private BigDecimal totalDeliveryTon; + + /** 总货物面积 */ + private BigDecimal totalGoodsSize; + + /** 总实际费用 */ + private BigDecimal totalActualFee; + + /** 总行驶公里数 */ + private BigDecimal totalKm; +} diff --git a/src/main/java/com/delivery/project/document/mapper/DeliveryOrderMapper.java b/src/main/java/com/delivery/project/document/mapper/DeliveryOrderMapper.java index fa1c912..4d39278 100644 --- a/src/main/java/com/delivery/project/document/mapper/DeliveryOrderMapper.java +++ b/src/main/java/com/delivery/project/document/mapper/DeliveryOrderMapper.java @@ -2,7 +2,8 @@ package com.delivery.project.document.mapper; import java.util.List; import com.delivery.project.document.domain.DeliveryOrder; -import com.delivery.project.document.domain.vo.DeliveryOrderGroupVO; +import com.delivery.project.document.domain.dto.DeliveryOrderStatQuery; +import com.delivery.project.document.domain.vo.*; import org.apache.ibatis.annotations.Param; /** @@ -92,4 +93,21 @@ public interface DeliveryOrderMapper * @return */ List selectDeliveryOrderByOrderNo(String orderNo); + + // ======================== 统计 ======================== + + /** 总览统计 */ + DeliveryOverviewStatVO selectOverviewStat(@Param("q") DeliveryOrderStatQuery query); + + /** 按配送状态统计 */ + List selectStatusStat(@Param("q") DeliveryOrderStatQuery query); + + /** 按车辆类型统计 */ + List selectVehicleTypeStat(@Param("q") DeliveryOrderStatQuery query); + + /** 按日期(日维度)统计 */ + List selectDailyStat(@Param("q") DeliveryOrderStatQuery query); + + /** 配送单VO列表 */ + List selectDeliveryOrderVoList(DeliveryOrder deliveryOrder); } diff --git a/src/main/java/com/delivery/project/document/service/IDeliveryOrderService.java b/src/main/java/com/delivery/project/document/service/IDeliveryOrderService.java index 4d95300..e1c14e7 100644 --- a/src/main/java/com/delivery/project/document/service/IDeliveryOrderService.java +++ b/src/main/java/com/delivery/project/document/service/IDeliveryOrderService.java @@ -1,107 +1,59 @@ package com.delivery.project.document.service; import java.util.List; + import com.delivery.project.document.domain.DeliveryOrder; import com.delivery.project.document.domain.dto.DeliveryOrderCreateDTO; import com.delivery.project.document.domain.dto.DeliveryOrderSaveDTO; -import com.delivery.project.document.domain.vo.DeliveryBillVO; -import com.delivery.project.document.domain.vo.DeliveryOrderDetailVO; -import com.delivery.project.document.domain.vo.DeliveryOrderGroupVO; +import com.delivery.project.document.domain.dto.DeliveryOrderStatQuery; +import com.delivery.project.document.domain.vo.*; /** * 配送单据主Service接口 - * + * * @author delivery * @date 2025-10-15 */ -public interface IDeliveryOrderService -{ - /** - * 查询配送单据主 - * - * @param id 配送单据主主键 - * @return 配送单据主 - */ - public DeliveryOrder selectDeliveryOrderById(Long id); +public interface IDeliveryOrderService { - /** - * 查询配送单据主列表 - * - * @param deliveryOrder 配送单据主 - * @return 配送单据主集合 - */ - public List selectDeliveryOrderList(DeliveryOrder deliveryOrder); + DeliveryOrder selectDeliveryOrderById(Long id); - /** - * 新增配送单据主 - * - * @param deliveryOrder 配送单据主 - * @return 结果 - */ - public int insertDeliveryOrder(DeliveryOrder deliveryOrder); + List selectDeliveryOrderList(DeliveryOrder deliveryOrder); - /** - * 修改配送单据主 - * - * @param deliveryOrder 配送单据主 - * @return 结果 - */ - public int updateDeliveryOrder(DeliveryOrder deliveryOrder); + int insertDeliveryOrder(DeliveryOrder deliveryOrder); - /** - * 批量删除配送单据主 - * - * @param ids 需要删除的配送单据主主键集合 - * @return 结果 - */ - public int deleteDeliveryOrderByIds(Long[] ids); + int updateDeliveryOrder(DeliveryOrder deliveryOrder); - /** - * 删除配送单据主信息 - * - * @param id 配送单据主主键 - * @return 结果 - */ - public int deleteDeliveryOrderById(Long id); + int deleteDeliveryOrderByIds(Long[] ids); + + int deleteDeliveryOrderById(Long id); - /** - * 保存配送单据,并保存附件 - * - * @param dto - * @param username - * @return - */ int saveOrderWithAttachments(DeliveryOrderSaveDTO dto, String username); - /** - * 新建配送单据:同一单号多行写入 - * @param dto - * @return - */ String createOrder(DeliveryOrderCreateDTO dto); - /** - * 列表:按单号分组(分页) - * @param query - * @return - */ List listGroup(DeliveryOrder query); - /** - * 详情:按单号查询所有行 - * @param plateNo - * @return - */ /** 详情:按单号查行 */ List listByOrderNo(String orderNo); - - - /** - * 从智慧实物系统查询待配送出库单据 - * - * @return rk_info 列表 - */ + /** 从智慧实物系统查询待配送出库单据 */ List listWisdomRkForDelivery(); + // ======================== 统计 ======================== + + /** 总览统计 */ + DeliveryOverviewStatVO statOverview(DeliveryOrderStatQuery query); + + /** 按配送状态统计 */ + List statByStatus(DeliveryOrderStatQuery query); + + /** 按车辆类型统计 */ + List statByVehicleType(DeliveryOrderStatQuery query); + + /** 按日期(日维度)统计 */ + List statByDaily(DeliveryOrderStatQuery query); + + /** 配送单VO列表 */ + List selectDeliveryOrderVoList(DeliveryOrder deliveryOrder); } diff --git a/src/main/java/com/delivery/project/document/service/impl/DeliveryOrderServiceImpl.java b/src/main/java/com/delivery/project/document/service/impl/DeliveryOrderServiceImpl.java index eefb625..f640156 100644 --- a/src/main/java/com/delivery/project/document/service/impl/DeliveryOrderServiceImpl.java +++ b/src/main/java/com/delivery/project/document/service/impl/DeliveryOrderServiceImpl.java @@ -15,13 +15,8 @@ import com.delivery.framework.web.domain.AjaxResult; import com.delivery.project.document.domain.DeliveryAttachment; import com.delivery.project.document.domain.Mtd; import com.delivery.project.document.domain.RkInfo; -import com.delivery.project.document.domain.dto.DeliveryAttachUploadDTO; -import com.delivery.project.document.domain.dto.DeliveryOrderCreateDTO; -import com.delivery.project.document.domain.dto.DeliveryOrderLineDTO; -import com.delivery.project.document.domain.dto.DeliveryOrderSaveDTO; -import com.delivery.project.document.domain.vo.DeliveryBillVO; -import com.delivery.project.document.domain.vo.DeliveryOrderDetailVO; -import com.delivery.project.document.domain.vo.DeliveryOrderGroupVO; +import com.delivery.project.document.domain.dto.*; +import com.delivery.project.document.domain.vo.*; import com.delivery.project.document.mapper.DeliveryAttachmentMapper; import com.delivery.project.document.mapper.MtdMapper; import com.delivery.project.document.mapper.RkInfoMapper; @@ -83,6 +78,12 @@ public class DeliveryOrderServiceImpl implements IDeliveryOrderService return deliveryOrderMapper.selectDeliveryOrderList(deliveryOrder); } + + @Override + public List selectDeliveryOrderVoList(DeliveryOrder deliveryOrder) { + return deliveryOrderMapper.selectDeliveryOrderVoList(deliveryOrder); + } + /** * 新增配送单据主 * @@ -472,4 +473,26 @@ public class DeliveryOrderServiceImpl implements IDeliveryOrderService return list; } + // ======================== 统计 ======================== + + @Override + public DeliveryOverviewStatVO statOverview(DeliveryOrderStatQuery query) { + return deliveryOrderMapper.selectOverviewStat(query); + } + + @Override + public List statByStatus(DeliveryOrderStatQuery query) { + return deliveryOrderMapper.selectStatusStat(query); + } + + @Override + public List statByVehicleType(DeliveryOrderStatQuery query) { + return deliveryOrderMapper.selectVehicleTypeStat(query); + } + + @Override + public List statByDaily(DeliveryOrderStatQuery query) { + return deliveryOrderMapper.selectDailyStat(query); + } + } diff --git a/src/main/java/com/delivery/project/ocr/config/QwenProperties.java b/src/main/java/com/delivery/project/ocr/config/QwenProperties.java index 1c3d94a..a2505b4 100644 --- a/src/main/java/com/delivery/project/ocr/config/QwenProperties.java +++ b/src/main/java/com/delivery/project/ocr/config/QwenProperties.java @@ -24,28 +24,4 @@ public class QwenProperties { * 模型名称,例如:qwen-vl-ocr-latest */ private String model; - - public String getApiKey() { - return apiKey; - } - - public void setApiKey(String apiKey) { - this.apiKey = apiKey; - } - - public String getBaseUrl() { - return baseUrl; - } - - public void setBaseUrl(String baseUrl) { - this.baseUrl = baseUrl; - } - - public String getModel() { - return model; - } - - public void setModel(String model) { - this.model = model; - } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 2fa9780..fb0fe5a 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -127,7 +127,7 @@ upload: base-url: http://192.168.1.250/files wisdom: - base-url: http://192.168.1.251:8086 + base-url: http://192.168.1.5:8086 # =============== OCR 服务核心配置 =============== ocr: diff --git a/src/main/resources/mybatis/document/DeliveryOrderMapper.xml b/src/main/resources/mybatis/document/DeliveryOrderMapper.xml index c7291a9..7720702 100644 --- a/src/main/resources/mybatis/document/DeliveryOrderMapper.xml +++ b/src/main/resources/mybatis/document/DeliveryOrderMapper.xml @@ -103,6 +103,62 @@ resultMap="DeliveryAttachmentInlineResult"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select @@ -181,94 +237,332 @@ from delivery_order + + + SELECT + dor.id, + dor.order_no, + + -- 制单人 / 接收状态 + dor.maker_id, + dor.receive_status, + dor.receive_problem, + + -- 起始 / 目的地点 + dor.origin_name, + dor.origin_lng, + dor.origin_lat, + dor.dest_name, + dor.dest_lng, + dor.dest_lat, + + -- 配送信息 + dor.delivery_date, + dor.plate_no, + dor.shipper_name, + dor.shipper_phone, + dor.receiver_name, + dor.receiver_phone, + dor.receiver_org_name, + dor.delivery_ton, + dor.goods_size, + dor.order_status, + + -- 车型 + dor.vehicle_type_id, + dor.vehicle_type_name, + + -- 费用 / 里程 + dor.suggest_fee, + dor.actual_fee, + dor.toll_fee, + dor.total_km, + + -- 备注 + 通用字段 + dor.remark, + dor.create_by, + dor.create_time, + dor.update_by, + dor.update_time, + dor.is_delete + + FROM delivery_order dor + + + + + + + + + + + @@ -573,4 +867,126 @@ #{id} + + + + + (dor.is_delete = '0' OR dor.is_delete = 0 OR dor.is_delete IS NULL) + + + + AND DATE(dor.delivery_date) =]]> DATE(#{q.beginDate}) + + + AND DATE(dor.delivery_date) DATE(#{q.endDate}) + + + + + AND dor.order_status IN + + #{st} + + + + + + AND dor.order_status = #{q.orderStatus} + + + + + AND dor.vehicle_type_id = #{q.vehicleTypeId} + + + + + AND dor.plate_no = #{q.plateNo} + + + + + AND dor.origin_name LIKE CONCAT('%', #{q.originName}, '%') + + + + + AND dor.dest_name LIKE CONCAT('%', #{q.destName}, '%') + + + + + + + + + + + + + + +