From b517f13cf3f23deb5ed4f72f99da009f4a7efbb6 Mon Sep 17 00:00:00 2001 From: luojian <1327479187@qq.com> Date: Fri, 20 Dec 2024 18:17:02 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=AE=9A=E6=97=B6=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E7=BB=B4=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/biz/BizOrderController.java | 89 +++- .../biz/BizOrderTaskController.java | 105 ++++ cpxt-admin/src/main/resources/application.yml | 2 +- cpxt-system/pom.xml | 6 + .../com/cpxt/biz/domain/BizCustomerRoute.java | 5 + .../com/cpxt/biz/domain/BizOrderTask.java | 102 ++++ .../com/cpxt/biz/domain/vo/BizOrderVo.java | 223 +++++++++ .../biz/domain/vo/BizOrderVoCustomer.java | 219 +++++++++ .../cpxt/biz/mapper/BizCustomerMapper.java | 4 + .../mapper/BizCustomerRouteShopMapper.java | 10 +- .../com/cpxt/biz/mapper/BizDriverMapper.java | 7 +- .../com/cpxt/biz/mapper/BizOrderMapper.java | 6 +- .../cpxt/biz/mapper/BizOrderTaskMapper.java | 19 + .../cpxt/biz/service/IBizOrderService.java | 8 + .../biz/service/IBizOrderTaskService.java | 61 +++ .../impl/BizCustomerRouteServiceImpl.java | 38 +- .../biz/service/impl/BizOrderServiceImpl.java | 461 ++++++++++++++---- .../service/impl/BizOrderTaskServiceImpl.java | 144 ++++++ 18 files changed, 1397 insertions(+), 112 deletions(-) create mode 100644 cpxt-admin/src/main/java/com/cpxt/web/controller/biz/BizOrderTaskController.java create mode 100644 cpxt-system/src/main/java/com/cpxt/biz/domain/BizOrderTask.java create mode 100644 cpxt-system/src/main/java/com/cpxt/biz/domain/vo/BizOrderVo.java create mode 100644 cpxt-system/src/main/java/com/cpxt/biz/domain/vo/BizOrderVoCustomer.java create mode 100644 cpxt-system/src/main/java/com/cpxt/biz/mapper/BizOrderTaskMapper.java create mode 100644 cpxt-system/src/main/java/com/cpxt/biz/service/IBizOrderTaskService.java create mode 100644 cpxt-system/src/main/java/com/cpxt/biz/service/impl/BizOrderTaskServiceImpl.java diff --git a/cpxt-admin/src/main/java/com/cpxt/web/controller/biz/BizOrderController.java b/cpxt-admin/src/main/java/com/cpxt/web/controller/biz/BizOrderController.java index 2b51b36..2faf16e 100644 --- a/cpxt-admin/src/main/java/com/cpxt/web/controller/biz/BizOrderController.java +++ b/cpxt-admin/src/main/java/com/cpxt/web/controller/biz/BizOrderController.java @@ -4,7 +4,12 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.cpxt.biz.domain.vo.BizOrderVo; +import com.cpxt.biz.domain.vo.BizOrderVoCustomer; import com.cpxt.common.constant.HttpStatus; +import com.cpxt.common.core.domain.entity.SysUser; +import com.cpxt.common.utils.SecurityUtils; +import com.cpxt.system.service.ISysUserService; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -16,20 +21,23 @@ import com.cpxt.biz.domain.BizOrder; import com.cpxt.biz.service.IBizOrderService; import com.cpxt.common.utils.poi.ExcelUtil; import com.cpxt.common.core.page.TableDataInfo; +import org.springframework.web.multipart.MultipartFile; /** * 订单Controller - * + * * @author YIN * @date 2024-12-16 */ @RestController @RequestMapping("/biz/order") -public class BizOrderController extends BaseController -{ +public class BizOrderController extends BaseController { @Autowired private IBizOrderService bizOrderService; + @Autowired + private ISysUserService sysUserService; + /** * 查询订单列表(分页) */ @@ -37,9 +45,8 @@ public class BizOrderController extends BaseController @GetMapping("/list") public TableDataInfo list(BizOrder bizOrder, @RequestParam(defaultValue = "1") int pageNum, - @RequestParam(defaultValue = "10") int pageSize) - { - Page recordPage = bizOrderService.selectBizOrderPage(bizOrder,pageNum,pageSize); + @RequestParam(defaultValue = "10") int pageSize) { + Page recordPage = bizOrderService.selectBizOrderPage(bizOrder, pageNum, pageSize); TableDataInfo rspData = new TableDataInfo(); rspData.setCode(HttpStatus.SUCCESS); rspData.setMsg("查询成功"); @@ -53,19 +60,67 @@ public class BizOrderController extends BaseController */ @PreAuthorize("@ss.hasPermi('biz:order:list')") @GetMapping("/list2") - public AjaxResult list(BizOrder bizOrder) - { + public AjaxResult list(BizOrder bizOrder) { return AjaxResult.success(bizOrderService.selectBizOrderList(bizOrder)); } + /** + * 查询订单列表(主驾司机或者副驾司机是当前用户 - 分页) + */ + @PreAuthorize("@ss.hasPermi('biz:order:list')") + @GetMapping("/listByDriver") + public TableDataInfo list(String orderStatus, + @RequestParam(defaultValue = "1") int pageNum, + @RequestParam(defaultValue = "10") int pageSize) { + Page recordPage = bizOrderService.selectBizOrderPageByDriver(orderStatus, pageNum, pageSize); + TableDataInfo rspData = new TableDataInfo(); + rspData.setCode(HttpStatus.SUCCESS); + rspData.setMsg("查询成功"); + rspData.setRows(recordPage.getRecords()); + rspData.setTotal(recordPage.getTotal()); + return rspData; + } + + /** + * 订单导入模板 + */ + @PostMapping("/importTemplate") + public void importTemplate(HttpServletResponse response) { + SysUser user = sysUserService.selectUserById(SecurityUtils.getLoginUser().getUserId()); + if ("0".equals(user.getUserType())) { + ExcelUtil util = new ExcelUtil(BizOrderVo.class); + util.importTemplateExcel(response, "订单数据"); + } else { + ExcelUtil util = new ExcelUtil(BizOrderVoCustomer.class); + util.importTemplateExcel(response, "订单数据"); + } + } + + @Log(title = "订单管理", businessType = BusinessType.IMPORT) + @PreAuthorize("@ss.hasPermi('system:user:import')") + @PostMapping("/importData") + public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { + SysUser user = sysUserService.selectUserById(SecurityUtils.getLoginUser().getUserId()); + String message; + if ("0".equals(user.getUserType())) { + ExcelUtil util = new ExcelUtil(BizOrderVo.class); + List orderList = util.importExcel(file.getInputStream()); + message = bizOrderService.importOrder(orderList, updateSupport); + } else { + ExcelUtil util = new ExcelUtil(BizOrderVoCustomer.class); + List orderList = util.importExcel(file.getInputStream()); + message = bizOrderService.importOrderCustomer(orderList, updateSupport); + } + return success(message); + } + /** * 导出订单列表 */ @PreAuthorize("@ss.hasPermi('biz:order:export')") @Log(title = "订单", businessType = BusinessType.EXPORT) @PostMapping("/export") - public void export(HttpServletResponse response, BizOrder bizOrder) - { + public void export(HttpServletResponse response, BizOrder bizOrder) { List list = bizOrderService.selectBizOrderList(bizOrder); ExcelUtil util = new ExcelUtil(BizOrder.class); util.exportExcel(response, list, "订单数据"); @@ -76,8 +131,7 @@ public class BizOrderController extends BaseController */ @PreAuthorize("@ss.hasPermi('biz:order:query')") @GetMapping(value = "/{id}") - public AjaxResult getInfo(@PathVariable("id") Long id) - { + public AjaxResult getInfo(@PathVariable("id") Long id) { return success(bizOrderService.selectBizOrderById(id)); } @@ -87,8 +141,7 @@ public class BizOrderController extends BaseController @PreAuthorize("@ss.hasPermi('biz:order:add')") @Log(title = "订单", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@RequestBody BizOrder bizOrder) - { + public AjaxResult add(@RequestBody BizOrder bizOrder) { return toAjax(bizOrderService.insertBizOrder(bizOrder)); } @@ -98,8 +151,7 @@ public class BizOrderController extends BaseController @PreAuthorize("@ss.hasPermi('biz:order:edit')") @Log(title = "订单", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@RequestBody BizOrder bizOrder) - { + public AjaxResult edit(@RequestBody BizOrder bizOrder) { return toAjax(bizOrderService.updateBizOrder(bizOrder)); } @@ -108,9 +160,8 @@ public class BizOrderController extends BaseController */ @PreAuthorize("@ss.hasPermi('biz: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(bizOrderService.deleteBizOrderByIds(ids)); } } diff --git a/cpxt-admin/src/main/java/com/cpxt/web/controller/biz/BizOrderTaskController.java b/cpxt-admin/src/main/java/com/cpxt/web/controller/biz/BizOrderTaskController.java new file mode 100644 index 0000000..af3d878 --- /dev/null +++ b/cpxt-admin/src/main/java/com/cpxt/web/controller/biz/BizOrderTaskController.java @@ -0,0 +1,105 @@ +package com.cpxt.web.controller.biz; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import com.cpxt.biz.domain.BizOrderTask; +import com.cpxt.biz.service.IBizOrderTaskService; +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 com.cpxt.common.annotation.Log; +import com.cpxt.common.core.controller.BaseController; +import com.cpxt.common.core.domain.AjaxResult; +import com.cpxt.common.enums.BusinessType; +import com.cpxt.common.utils.poi.ExcelUtil; +import com.cpxt.common.core.page.TableDataInfo; + +/** + * 订单任务Controller + * + * @author ruoyi + * @date 2024-12-20 + */ +@RestController +@RequestMapping("/system/task") +public class BizOrderTaskController extends BaseController +{ + @Autowired + private IBizOrderTaskService bizOrderTaskService; + + /** + * 查询订单任务列表 + */ + @PreAuthorize("@ss.hasPermi('system:task:list')") + @GetMapping("/list") + public TableDataInfo list(BizOrderTask bizOrderTask) + { + startPage(); + List list = bizOrderTaskService.selectBizOrderTaskList(bizOrderTask); + return getDataTable(list); + } + + /** + * 导出订单任务列表 + */ + @PreAuthorize("@ss.hasPermi('system:task:export')") + @Log(title = "订单任务", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, BizOrderTask bizOrderTask) + { + List list = bizOrderTaskService.selectBizOrderTaskList(bizOrderTask); + ExcelUtil util = new ExcelUtil(BizOrderTask.class); + util.exportExcel(response, list, "订单任务数据"); + } + + /** + * 获取订单任务详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:task:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Integer id) + { + return success(bizOrderTaskService.selectBizOrderTaskById(id)); + } + + /** + * 新增订单任务 + */ + @PreAuthorize("@ss.hasPermi('system:task:add')") + @Log(title = "订单任务", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody BizOrderTask bizOrderTask) + { + return toAjax(bizOrderTaskService.insertBizOrderTask(bizOrderTask)); + } + + /** + * 修改订单任务 + */ + @PreAuthorize("@ss.hasPermi('system:task:edit')") + @Log(title = "订单任务", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody BizOrderTask bizOrderTask) + { + return toAjax(bizOrderTaskService.updateBizOrderTask(bizOrderTask)); + } + + /** + * 删除订单任务 + */ + @PreAuthorize("@ss.hasPermi('system:task:remove')") + @Log(title = "订单任务", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Integer[] ids) + { + return toAjax(bizOrderTaskService.deleteBizOrderTaskByIds(ids)); + } +} diff --git a/cpxt-admin/src/main/resources/application.yml b/cpxt-admin/src/main/resources/application.yml index 2bb8417..ae41fde 100644 --- a/cpxt-admin/src/main/resources/application.yml +++ b/cpxt-admin/src/main/resources/application.yml @@ -95,7 +95,7 @@ token: # 令牌密钥 secret: abcdefghijk # 令牌有效期(默认30分钟) - expireTime: 30 + expireTime: 300 # MyBatis Plus配置 mybatis-plus: diff --git a/cpxt-system/pom.xml b/cpxt-system/pom.xml index 252aadd..0bafa38 100644 --- a/cpxt-system/pom.xml +++ b/cpxt-system/pom.xml @@ -22,12 +22,18 @@ com.cpxt cpxt-common + com.baomidou mybatis-plus-extension 3.5.4 + + com.cpxt + cpxt-quartz + + \ No newline at end of file diff --git a/cpxt-system/src/main/java/com/cpxt/biz/domain/BizCustomerRoute.java b/cpxt-system/src/main/java/com/cpxt/biz/domain/BizCustomerRoute.java index 4814ec0..84b6120 100644 --- a/cpxt-system/src/main/java/com/cpxt/biz/domain/BizCustomerRoute.java +++ b/cpxt-system/src/main/java/com/cpxt/biz/domain/BizCustomerRoute.java @@ -1,5 +1,6 @@ package com.cpxt.biz.domain; +import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import org.apache.commons.lang3.builder.ToStringBuilder; @@ -8,6 +9,7 @@ import com.cpxt.common.annotation.Excel; import com.cpxt.common.core.domain.BaseEntity; import java.util.Date; +import java.util.List; /** * 路线对象 biz_customer_route @@ -51,4 +53,7 @@ public class BizCustomerRoute /** 备注 */ private String remark; + + @TableField(exist = false) + private List shops; } diff --git a/cpxt-system/src/main/java/com/cpxt/biz/domain/BizOrderTask.java b/cpxt-system/src/main/java/com/cpxt/biz/domain/BizOrderTask.java new file mode 100644 index 0000000..941a38a --- /dev/null +++ b/cpxt-system/src/main/java/com/cpxt/biz/domain/BizOrderTask.java @@ -0,0 +1,102 @@ +package com.cpxt.biz.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.cpxt.common.annotation.Excel; +import com.cpxt.common.core.domain.BaseEntity; + +import java.util.Date; + +/** + * 订单任务对象 biz_order_task + * + * @author ruoyi + * @date 2024-12-20 + */ +@Data +public class BizOrderTask +{ + private static final long serialVersionUID = 1L; + + /** ID */ + private Integer id; + + /** 任务code */ + private String code; + + /** 任务名称 */ + @Excel(name = "任务名称") + private String name; + + /** 客户ID */ + @Excel(name = "客户ID") + private Long customerId; + + /** 客户名称 */ + @Excel(name = "客户名称") + private String customerName; + + /** 路线ID */ + @Excel(name = "路线ID") + private Long routeId; + + /** 路线名称 */ + @Excel(name = "路线名称") + private String routeName; + + /** 司机ID */ + @Excel(name = "司机ID") + private Long driverId; + + /** 司机名称 */ + @Excel(name = "司机名称") + private String driverName; + + /** 副驾司机ID */ + @Excel(name = "副驾司机ID") + private Long copilotId; + + /** 副驾司机名称 */ + @Excel(name = "副驾司机名称") + private String copilotName; + + /** cron执行表达式 */ + @Excel(name = "cron执行表达式") + private String cronExpression; + + /** 计划执行策略(1立即执行 2执行一次 3放弃执行) */ + @Excel(name = "计划执行策略", readConverterExp = "1=立即执行,2=执行一次,3=放弃执行") + private String misfirePolicy; + + /** 是否并发执行(0允许 1禁止) */ + @Excel(name = "是否并发执行", readConverterExp = "0=允许,1=禁止") + private String concurrent; + + /** 状态(0正常 1暂停) */ + @Excel(name = "状态", readConverterExp = "0=正常,1=暂停") + private String status; + + /** 对应定时任务ID */ + @Excel(name = "对应定时任务ID") + private Long jobId; + + /** 创建者 */ + private String createBy; + + /** 创建时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + /** 更新时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + /** 备注 */ + private String remark; + + /** 更新者 */ + private String updateBy; + +} diff --git a/cpxt-system/src/main/java/com/cpxt/biz/domain/vo/BizOrderVo.java b/cpxt-system/src/main/java/com/cpxt/biz/domain/vo/BizOrderVo.java new file mode 100644 index 0000000..6840e92 --- /dev/null +++ b/cpxt-system/src/main/java/com/cpxt/biz/domain/vo/BizOrderVo.java @@ -0,0 +1,223 @@ +package com.cpxt.biz.domain.vo; + +import com.cpxt.common.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 订单导入模板对象(调度员) + * + * @author YIN + * @date 2024-12-16 + */ +@Data +public class BizOrderVo +{ + private static final long serialVersionUID = 1L; + + /** ID */ + private Long id; + + /** 订单号 */ + private String orderSn; + + /** 订单状态 */ + private String orderStatus; + + /** 订单类型 */ + private String orderType; + + /** 客户ID */ + private Long customerId; + + /** 客户名称 */ + @Excel(name = "客户名称") + private String customerName; + + /** 路线ID */ + private Long routeId; + + /** 路线名称 */ + @Excel(name = "路线名称") + private String routeName; + + /** 仓库ID */ + private Long warehouseId; + + /** 仓库名称 */ + @Excel(name = "仓库名称") + private String warehouseName; + + /** 店铺ID */ + private Long shopId; + + /** 店铺名称 */ + @Excel(name = "店铺名称") + private String shopName; + + /** 配送车辆ID */ + private Long carId; + + /** 配送车牌号 */ + @Excel(name = "配送车牌号") + private String carNo; + + /** 配送司机ID */ + private Long driverId; + + /** 配送司机名称 */ + @Excel(name = "配送司机名称") + private String driverName; + + /** 副驾司机ID */ + private Long copilotId; + + /** 副驾司机名称 */ + @Excel(name = "副驾司机名称") + private String copilotName; + + /** 发件人名称 */ + private String senderName; + + /** 发件联系人 */ + private String senderLinkman; + + /** 发件人电话 */ + private String senderPhone; + + /** 发件人地址 */ + private String senderAddress; + + /** 发件人经度 */ + private BigDecimal senderLng; + + /** 发件人纬度 */ + private BigDecimal senderLat; + + /** 发件人公司名称 */ + private String senderCompany; + + /** 收件人名称 */ + private String receiverName; + + /** 收件联系人 */ + private String receiverLinkman; + + /** 收件人电话 */ + private String receiverPhone; + + /** 收件人地址 */ + private String receiverAddress; + + /** 收件人经度 */ + private BigDecimal receiverLng; + + /** 收件人纬度 */ + private BigDecimal receiverLat; + + /** 收件人公司名称 */ + private String receiverCompany; + + /** 物品类型 */ + @Excel(name = "物品类型",dictType = "sys_goods_type") + private String goodsType; + + /** 物品名称 */ + @Excel(name = "物品名称") + private String goodsName; + + /** 重量 */ + @Excel(name = "重量") + private BigDecimal weight; + + /** 体积 */ + private BigDecimal volume; + + /** 长(米) */ + @Excel(name = "长") + private BigDecimal length; + + /** 宽(米) */ + @Excel(name = "宽") + private BigDecimal width; + + /** 高(米) */ + @Excel(name = "高") + private BigDecimal height; + + /** 包裹总件数 */ + private Integer totalQuantity; + + /** 是否保价 */ + private Integer insured; + + /** 保价金额 */ + private BigDecimal insuredMoney; + + /** 保价费用 */ + private BigDecimal insuredFee; + + /** 订单费用 */ + private BigDecimal orderFee; + + /** 是否取消 */ + private Integer isCancel; + + /** 取消原因 */ + private String cancelReason; + + /** 取消时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date cancelTime; + + /** 支付类型 寄付,到付,月结 */ + private String payType; + + /** 支付方式 支付宝,微信 */ + private String payMode; + + /** 支付系统订单号 */ + private String payId; + + /** 支付状态 */ + private Integer payStatus; + + /** 支付时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date payTime; + + /** 状态 */ + private Integer status; + + /** 开始配送时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date startTime; + + /** 到达时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date arriveTime; + + /** 到达备注 */ + private String arriveRemark; + + /** 到达经度 */ + private BigDecimal arriveLng; + + /** 到达纬度 */ + private BigDecimal arriveLat; + + /** 创建时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + /** 更新时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + /** 备注 */ + @Excel(name = "备注") + private String remark; +} diff --git a/cpxt-system/src/main/java/com/cpxt/biz/domain/vo/BizOrderVoCustomer.java b/cpxt-system/src/main/java/com/cpxt/biz/domain/vo/BizOrderVoCustomer.java new file mode 100644 index 0000000..9f33dcd --- /dev/null +++ b/cpxt-system/src/main/java/com/cpxt/biz/domain/vo/BizOrderVoCustomer.java @@ -0,0 +1,219 @@ +package com.cpxt.biz.domain.vo; + +import com.cpxt.common.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 订单导入模板对象(调度员) + * + * @author YIN + * @date 2024-12-16 + */ +@Data +public class BizOrderVoCustomer +{ + private static final long serialVersionUID = 1L; + + /** ID */ + private Long id; + + /** 订单号 */ + private String orderSn; + + /** 订单状态 */ + private String orderStatus; + + /** 订单类型 */ + private String orderType; + + /** 客户ID */ + private Long customerId; + + /** 客户名称 */ + private String customerName; + + /** 路线ID */ + private Long routeId; + + /** 路线名称 */ + @Excel(name = "路线名称") + private String routeName; + + /** 仓库ID */ + private Long warehouseId; + + /** 仓库名称 */ + @Excel(name = "仓库名称") + private String warehouseName; + + /** 店铺ID */ + private Long shopId; + + /** 店铺名称 */ + @Excel(name = "店铺名称") + private String shopName; + + /** 配送车辆ID */ + private Long carId; + + /** 配送车牌号 */ + private String carNo; + + /** 配送司机ID */ + private Long driverId; + + /** 配送司机名称 */ + private String driverName; + + /** 副驾司机ID */ + private Long copilotId; + + /** 副驾司机名称 */ + private String copilotName; + + /** 发件人名称 */ + private String senderName; + + /** 发件联系人 */ + private String senderLinkman; + + /** 发件人电话 */ + private String senderPhone; + + /** 发件人地址 */ + private String senderAddress; + + /** 发件人经度 */ + private BigDecimal senderLng; + + /** 发件人纬度 */ + private BigDecimal senderLat; + + /** 发件人公司名称 */ + private String senderCompany; + + /** 收件人名称 */ + private String receiverName; + + /** 收件联系人 */ + private String receiverLinkman; + + /** 收件人电话 */ + private String receiverPhone; + + /** 收件人地址 */ + private String receiverAddress; + + /** 收件人经度 */ + private BigDecimal receiverLng; + + /** 收件人纬度 */ + private BigDecimal receiverLat; + + /** 收件人公司名称 */ + private String receiverCompany; + + /** 物品类型 */ + @Excel(name = "物品类型",dictType = "sys_goods_type") + private String goodsType; + + /** 物品名称 */ + @Excel(name = "物品名称") + private String goodsName; + + /** 重量 */ + @Excel(name = "重量") + private BigDecimal weight; + + /** 体积 */ + private BigDecimal volume; + + /** 长(米) */ + @Excel(name = "长") + private BigDecimal length; + + /** 宽(米) */ + @Excel(name = "宽") + private BigDecimal width; + + /** 高(米) */ + @Excel(name = "高") + private BigDecimal height; + + /** 包裹总件数 */ + private Integer totalQuantity; + + /** 是否保价 */ + private Integer insured; + + /** 保价金额 */ + private BigDecimal insuredMoney; + + /** 保价费用 */ + private BigDecimal insuredFee; + + /** 订单费用 */ + private BigDecimal orderFee; + + /** 是否取消 */ + private Integer isCancel; + + /** 取消原因 */ + private String cancelReason; + + /** 取消时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date cancelTime; + + /** 支付类型 寄付,到付,月结 */ + private String payType; + + /** 支付方式 支付宝,微信 */ + private String payMode; + + /** 支付系统订单号 */ + private String payId; + + /** 支付状态 */ + private Integer payStatus; + + /** 支付时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date payTime; + + /** 状态 */ + private Integer status; + + /** 开始配送时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date startTime; + + /** 到达时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date arriveTime; + + /** 到达备注 */ + private String arriveRemark; + + /** 到达经度 */ + private BigDecimal arriveLng; + + /** 到达纬度 */ + private BigDecimal arriveLat; + + /** 创建时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + /** 更新时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + /** 备注 */ + @Excel(name = "备注") + private String remark; +} diff --git a/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizCustomerMapper.java b/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizCustomerMapper.java index 4746122..452092b 100644 --- a/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizCustomerMapper.java +++ b/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizCustomerMapper.java @@ -18,4 +18,8 @@ public interface BizCustomerMapper extends BaseMapper { @Select("select * from biz_customer where linkphone = #{username}") BizCustomer selectByLinkPhone(String username); + + @Select("select * from biz_customer where name = #{customerName} and status = 1") + BizCustomer selectByName(String customerName); } + diff --git a/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizCustomerRouteShopMapper.java b/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizCustomerRouteShopMapper.java index fae5583..b540942 100644 --- a/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizCustomerRouteShopMapper.java +++ b/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizCustomerRouteShopMapper.java @@ -5,7 +5,9 @@ import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.cpxt.biz.domain.BizCustomerRoute; import com.cpxt.biz.domain.BizCustomerRouteShop; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; /** * 路线店铺关联Mapper接口 @@ -15,4 +17,10 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface BizCustomerRouteShopMapper extends BaseMapper -{ } +{ + @Select("select shop_id from biz_customer_route_shop where route_id = ${id}") + List selectShopIdListByRouteId(Long id); + + @Delete("delete from biz_customer_route_shop where route_id = ${id}") + void deleteByRouteId(Long id); +} diff --git a/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizDriverMapper.java b/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizDriverMapper.java index dd54535..5d85c88 100644 --- a/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizDriverMapper.java +++ b/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizDriverMapper.java @@ -5,6 +5,7 @@ import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.cpxt.biz.domain.BizDriver; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; /** * 司机Mapper接口 @@ -14,4 +15,8 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface BizDriverMapper extends BaseMapper -{ } +{ + @Select("select * from biz_driver where user_id = ${userId} and status = 1") + BizDriver selectByUserId(Long userId); + +} diff --git a/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizOrderMapper.java b/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizOrderMapper.java index c33d49c..4eec992 100644 --- a/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizOrderMapper.java +++ b/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizOrderMapper.java @@ -5,6 +5,7 @@ import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.cpxt.biz.domain.BizOrder; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; /** * 订单Mapper接口 @@ -14,4 +15,7 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface BizOrderMapper extends BaseMapper -{ } +{ + @Select("select * from biz_order order by id desc limit 1") + BizOrder selectLastestOrder(); +} diff --git a/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizOrderTaskMapper.java b/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizOrderTaskMapper.java new file mode 100644 index 0000000..458810c --- /dev/null +++ b/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizOrderTaskMapper.java @@ -0,0 +1,19 @@ +package com.cpxt.biz.mapper; + +import java.util.List; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cpxt.biz.domain.BizOrderTask; +import org.apache.ibatis.annotations.Mapper; + +/** + * 订单任务Mapper接口 + * + * @author ruoyi + * @date 2024-12-20 + */ +@Mapper +public interface BizOrderTaskMapper extends BaseMapper +{ + +} diff --git a/cpxt-system/src/main/java/com/cpxt/biz/service/IBizOrderService.java b/cpxt-system/src/main/java/com/cpxt/biz/service/IBizOrderService.java index 45553fa..1a57043 100644 --- a/cpxt-system/src/main/java/com/cpxt/biz/service/IBizOrderService.java +++ b/cpxt-system/src/main/java/com/cpxt/biz/service/IBizOrderService.java @@ -4,6 +4,8 @@ import java.util.List; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.cpxt.biz.domain.BizOrder; +import com.cpxt.biz.domain.vo.BizOrderVo; +import com.cpxt.biz.domain.vo.BizOrderVoCustomer; /** * 订单Service接口 @@ -62,4 +64,10 @@ public interface IBizOrderService public int deleteBizOrderById(Long id); Page selectBizOrderPage(BizOrder bizOrder, int pageNum, int pageSize); + + String importOrder(List orderList, boolean updateSupport); + + String importOrderCustomer(List orderList, boolean updateSupport); + + Page selectBizOrderPageByDriver(String orderStatus,int pageNum, int pageSize); } diff --git a/cpxt-system/src/main/java/com/cpxt/biz/service/IBizOrderTaskService.java b/cpxt-system/src/main/java/com/cpxt/biz/service/IBizOrderTaskService.java new file mode 100644 index 0000000..48f0599 --- /dev/null +++ b/cpxt-system/src/main/java/com/cpxt/biz/service/IBizOrderTaskService.java @@ -0,0 +1,61 @@ +package com.cpxt.biz.service; + +import com.cpxt.biz.domain.BizOrderTask; +import java.util.List; + +/** + * 订单任务Service接口 + * + * @author ruoyi + * @date 2024-12-20 + */ +public interface IBizOrderTaskService +{ + /** + * 查询订单任务 + * + * @param id 订单任务主键 + * @return 订单任务 + */ + public BizOrderTask selectBizOrderTaskById(Integer id); + + /** + * 查询订单任务列表 + * + * @param bizOrderTask 订单任务 + * @return 订单任务集合 + */ + public List selectBizOrderTaskList(BizOrderTask bizOrderTask); + + /** + * 新增订单任务 + * + * @param bizOrderTask 订单任务 + * @return 结果 + */ + public int insertBizOrderTask(BizOrderTask bizOrderTask); + + /** + * 修改订单任务 + * + * @param bizOrderTask 订单任务 + * @return 结果 + */ + public int updateBizOrderTask(BizOrderTask bizOrderTask); + + /** + * 批量删除订单任务 + * + * @param ids 需要删除的订单任务主键集合 + * @return 结果 + */ + public int deleteBizOrderTaskByIds(Integer[] ids); + + /** + * 删除订单任务信息 + * + * @param id 订单任务主键 + * @return 结果 + */ + public int deleteBizOrderTaskById(Integer id); +} diff --git a/cpxt-system/src/main/java/com/cpxt/biz/service/impl/BizCustomerRouteServiceImpl.java b/cpxt-system/src/main/java/com/cpxt/biz/service/impl/BizCustomerRouteServiceImpl.java index a478ff2..903c8c6 100644 --- a/cpxt-system/src/main/java/com/cpxt/biz/service/impl/BizCustomerRouteServiceImpl.java +++ b/cpxt-system/src/main/java/com/cpxt/biz/service/impl/BizCustomerRouteServiceImpl.java @@ -6,6 +6,8 @@ import java.util.List; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.cpxt.biz.domain.BizCustomer; +import com.cpxt.biz.domain.BizCustomerRouteShop; +import com.cpxt.biz.mapper.BizCustomerRouteShopMapper; import com.cpxt.common.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -25,6 +27,9 @@ public class BizCustomerRouteServiceImpl implements IBizCustomerRouteService @Autowired private BizCustomerRouteMapper bizCustomerRouteMapper; + @Autowired + private BizCustomerRouteShopMapper bizCustomerRouteShopMapper; + /** * 查询路线 * @@ -34,7 +39,11 @@ public class BizCustomerRouteServiceImpl implements IBizCustomerRouteService @Override public BizCustomerRoute selectBizCustomerRouteById(Long id) { - return bizCustomerRouteMapper.selectById(id); + BizCustomerRoute bizCustomerRoute = bizCustomerRouteMapper.selectById(id); + // 根据路线id查询关联的店铺id + List ids = bizCustomerRouteShopMapper.selectShopIdListByRouteId(id); + bizCustomerRoute.setShops(ids); + return bizCustomerRoute; } /** @@ -60,7 +69,17 @@ public class BizCustomerRouteServiceImpl implements IBizCustomerRouteService @Override public int insertBizCustomerRoute(BizCustomerRoute bizCustomerRoute) { - return bizCustomerRouteMapper.insert(bizCustomerRoute); + int insert = bizCustomerRouteMapper.insert(bizCustomerRoute); + // 新增完路线将路线和店铺关联起来入关联表 + List shops = bizCustomerRoute.getShops(); + for (int i = 0; i < shops.size(); i++) { + BizCustomerRouteShop bizCustomerRouteShop = new BizCustomerRouteShop(); + bizCustomerRouteShop.setRouteId(bizCustomerRoute.getId()); + bizCustomerRouteShop.setShopId(shops.get(i)); + bizCustomerRouteShop.setSort(i); + bizCustomerRouteShopMapper.insert(bizCustomerRouteShop); + } + return insert; } /** @@ -72,6 +91,17 @@ public class BizCustomerRouteServiceImpl implements IBizCustomerRouteService @Override public int updateBizCustomerRoute(BizCustomerRoute bizCustomerRoute) { + // 修改完路线同步修改到路线和店铺的关联表 + List shops = bizCustomerRoute.getShops(); + // 先删除再新增 + bizCustomerRouteShopMapper.deleteByRouteId(bizCustomerRoute.getId()); + for (int i = 0; i < shops.size(); i++) { + BizCustomerRouteShop bizCustomerRouteShop = new BizCustomerRouteShop(); + bizCustomerRouteShop.setRouteId(bizCustomerRoute.getId()); + bizCustomerRouteShop.setShopId(shops.get(i)); + bizCustomerRouteShop.setSort(i); + bizCustomerRouteShopMapper.insert(bizCustomerRouteShop); + } return bizCustomerRouteMapper.updateById(bizCustomerRoute); } @@ -84,6 +114,10 @@ public class BizCustomerRouteServiceImpl implements IBizCustomerRouteService @Override public int deleteBizCustomerRouteByIds(Long[] ids) { + // 同步删除路线和店铺的关联表 + for (Long id : ids) { + bizCustomerRouteShopMapper.deleteByRouteId(id); + } UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.in("id", (Object[]) ids); updateWrapper.set("status","2"); //状态改为删除 diff --git a/cpxt-system/src/main/java/com/cpxt/biz/service/impl/BizOrderServiceImpl.java b/cpxt-system/src/main/java/com/cpxt/biz/service/impl/BizOrderServiceImpl.java index 21d0f4a..6a2753e 100644 --- a/cpxt-system/src/main/java/com/cpxt/biz/service/impl/BizOrderServiceImpl.java +++ b/cpxt-system/src/main/java/com/cpxt/biz/service/impl/BizOrderServiceImpl.java @@ -1,28 +1,44 @@ package com.cpxt.biz.service.impl; -import java.util.Arrays; +import java.math.BigDecimal; +import java.util.Date; import java.util.List; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.cpxt.biz.domain.*; +import com.cpxt.biz.domain.vo.BizOrderVo; +import com.cpxt.biz.domain.vo.BizOrderVoCustomer; import com.cpxt.biz.mapper.*; +import com.cpxt.common.exception.ServiceException; import com.cpxt.common.utils.SecurityUtils; +import com.cpxt.common.utils.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.cpxt.biz.service.IBizOrderService; +import javax.validation.Validator; + /** * 订单Service业务层处理 - * + * * @author YIN * @date 2024-12-16 */ @Service -public class BizOrderServiceImpl implements IBizOrderService -{ +public class BizOrderServiceImpl implements IBizOrderService { + + private static final Logger log = LoggerFactory.getLogger(BizOrderServiceImpl.class); + + @Autowired + protected Validator validator; + @Autowired private BizOrderMapper bizOrderMapper; @@ -46,13 +62,12 @@ public class BizOrderServiceImpl implements IBizOrderService /** * 查询订单 - * + * * @param id 订单主键 * @return 订单 */ @Override - public BizOrder selectBizOrderById(Long id) - { + public BizOrder selectBizOrderById(Long id) { return bizOrderMapper.selectById(id); } @@ -65,210 +80,225 @@ public class BizOrderServiceImpl implements IBizOrderService @Override public Page selectBizOrderPage(BizOrder bizOrder, int pageNum, int pageSize) { LambdaQueryWrapper queryWrapper = buildQueryWrapper(bizOrder); - return bizOrderMapper.selectPage(new Page<>(pageNum,pageSize),queryWrapper); + return bizOrderMapper.selectPage(new Page<>(pageNum, pageSize), queryWrapper); + } + + /** + * 查询订单列表(主驾司机或者副驾司机是当前用户 - 分页) + * + * @return 订单 + */ + @Override + public Page selectBizOrderPageByDriver(String orderStatus ,int pageNum, int pageSize) { + BizDriver bizDriver = bizDriverMapper.selectByUserId(SecurityUtils.getUserId()); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(BizOrder::getStatus,1); + queryWrapper.eq(BizOrder::getOrderStatus,orderStatus); + queryWrapper.and(wq -> wq.like(BizOrder::getDriverName,bizDriver.getName()).or().like(BizOrder::getCopilotName,bizDriver.getName())); + queryWrapper.orderByDesc(BizOrder::getCreateTime); + return bizOrderMapper.selectPage(new Page<>(pageNum, pageSize), queryWrapper); } /** * 查询订单列表 - * + * * @param bizOrder 订单 * @return 订单 */ @Override - public List selectBizOrderList(BizOrder bizOrder) - { + public List selectBizOrderList(BizOrder bizOrder) { LambdaQueryWrapper queryWrapper = buildQueryWrapper(bizOrder); return bizOrderMapper.selectList(queryWrapper); } private LambdaQueryWrapper buildQueryWrapper(BizOrder bizOrder) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - if (ObjectUtil.isNotEmpty(bizOrder.getOrderSn())){ + if (ObjectUtil.isNotEmpty(bizOrder.getOrderSn())) { queryWrapper.like(BizOrder::getOrderSn, bizOrder.getOrderSn()); } - if (ObjectUtil.isNotEmpty(bizOrder.getOrderStatus())){ + if (ObjectUtil.isNotEmpty(bizOrder.getOrderStatus())) { queryWrapper.eq(BizOrder::getOrderStatus, bizOrder.getOrderStatus()); } - if (ObjectUtil.isNotEmpty(bizOrder.getOrderType())){ + if (ObjectUtil.isNotEmpty(bizOrder.getOrderType())) { queryWrapper.eq(BizOrder::getOrderType, bizOrder.getOrderType()); } - if (ObjectUtil.isNotEmpty(bizOrder.getCustomerId())){ + if (ObjectUtil.isNotEmpty(bizOrder.getCustomerId())) { queryWrapper.eq(BizOrder::getCustomerId, bizOrder.getCustomerId()); } - if (ObjectUtil.isNotEmpty(bizOrder.getCustomerName())){ + if (ObjectUtil.isNotEmpty(bizOrder.getCustomerName())) { queryWrapper.like(BizOrder::getCustomerName, bizOrder.getCustomerName()); } - if (ObjectUtil.isNotEmpty(bizOrder.getRouteId())){ + if (ObjectUtil.isNotEmpty(bizOrder.getRouteId())) { queryWrapper.eq(BizOrder::getRouteId, bizOrder.getRouteId()); } - if (ObjectUtil.isNotEmpty(bizOrder.getRouteName())){ + if (ObjectUtil.isNotEmpty(bizOrder.getRouteName())) { queryWrapper.like(BizOrder::getRouteName, bizOrder.getRouteName()); } - if (ObjectUtil.isNotEmpty(bizOrder.getWarehouseId())){ + if (ObjectUtil.isNotEmpty(bizOrder.getWarehouseId())) { queryWrapper.eq(BizOrder::getWarehouseId, bizOrder.getWarehouseId()); } - if (ObjectUtil.isNotEmpty(bizOrder.getWarehouseName())){ + if (ObjectUtil.isNotEmpty(bizOrder.getWarehouseName())) { queryWrapper.like(BizOrder::getWarehouseName, bizOrder.getWarehouseName()); } - if (ObjectUtil.isNotEmpty(bizOrder.getShopId())){ + if (ObjectUtil.isNotEmpty(bizOrder.getShopId())) { queryWrapper.eq(BizOrder::getShopId, bizOrder.getShopId()); } - if (ObjectUtil.isNotEmpty(bizOrder.getShopName())){ + if (ObjectUtil.isNotEmpty(bizOrder.getShopName())) { queryWrapper.like(BizOrder::getShopName, bizOrder.getShopName()); } - if (ObjectUtil.isNotEmpty(bizOrder.getCarId())){ + if (ObjectUtil.isNotEmpty(bizOrder.getCarId())) { queryWrapper.eq(BizOrder::getCarId, bizOrder.getCarId()); } - if (ObjectUtil.isNotEmpty(bizOrder.getCarNo())){ + if (ObjectUtil.isNotEmpty(bizOrder.getCarNo())) { queryWrapper.like(BizOrder::getCarNo, bizOrder.getCarNo()); } - if (ObjectUtil.isNotEmpty(bizOrder.getDriverId())){ + if (ObjectUtil.isNotEmpty(bizOrder.getDriverId())) { queryWrapper.eq(BizOrder::getDriverId, bizOrder.getDriverId()); } - if (ObjectUtil.isNotEmpty(bizOrder.getDriverName())){ + if (ObjectUtil.isNotEmpty(bizOrder.getDriverName())) { queryWrapper.like(BizOrder::getDriverName, bizOrder.getDriverName()); } - if (ObjectUtil.isNotEmpty(bizOrder.getCopilotId())){ + if (ObjectUtil.isNotEmpty(bizOrder.getCopilotId())) { queryWrapper.eq(BizOrder::getCopilotId, bizOrder.getCopilotId()); } - if (ObjectUtil.isNotEmpty(bizOrder.getCopilotName())){ + if (ObjectUtil.isNotEmpty(bizOrder.getCopilotName())) { queryWrapper.like(BizOrder::getCopilotName, bizOrder.getCopilotName()); } - if (ObjectUtil.isNotEmpty(bizOrder.getSenderName())){ + if (ObjectUtil.isNotEmpty(bizOrder.getSenderName())) { queryWrapper.like(BizOrder::getSenderName, bizOrder.getSenderName()); } - if (ObjectUtil.isNotEmpty(bizOrder.getSenderLinkman())){ + if (ObjectUtil.isNotEmpty(bizOrder.getSenderLinkman())) { queryWrapper.like(BizOrder::getSenderLinkman, bizOrder.getSenderLinkman()); } - if (ObjectUtil.isNotEmpty(bizOrder.getSenderPhone())){ + if (ObjectUtil.isNotEmpty(bizOrder.getSenderPhone())) { queryWrapper.like(BizOrder::getSenderPhone, bizOrder.getSenderPhone()); } - if (ObjectUtil.isNotEmpty(bizOrder.getSenderAddress())){ + if (ObjectUtil.isNotEmpty(bizOrder.getSenderAddress())) { queryWrapper.like(BizOrder::getSenderAddress, bizOrder.getSenderAddress()); } - if (ObjectUtil.isNotEmpty(bizOrder.getSenderLng())){ + if (ObjectUtil.isNotEmpty(bizOrder.getSenderLng())) { queryWrapper.eq(BizOrder::getSenderLng, bizOrder.getSenderLng()); } - if (ObjectUtil.isNotEmpty(bizOrder.getSenderLat())){ + if (ObjectUtil.isNotEmpty(bizOrder.getSenderLat())) { queryWrapper.eq(BizOrder::getSenderLat, bizOrder.getSenderLat()); } - if (ObjectUtil.isNotEmpty(bizOrder.getSenderCompany())){ + if (ObjectUtil.isNotEmpty(bizOrder.getSenderCompany())) { queryWrapper.like(BizOrder::getSenderCompany, bizOrder.getSenderCompany()); } - if (ObjectUtil.isNotEmpty(bizOrder.getReceiverName())){ + if (ObjectUtil.isNotEmpty(bizOrder.getReceiverName())) { queryWrapper.like(BizOrder::getReceiverName, bizOrder.getReceiverName()); } - if (ObjectUtil.isNotEmpty(bizOrder.getReceiverLinkman())){ + if (ObjectUtil.isNotEmpty(bizOrder.getReceiverLinkman())) { queryWrapper.like(BizOrder::getReceiverLinkman, bizOrder.getReceiverLinkman()); } - if (ObjectUtil.isNotEmpty(bizOrder.getReceiverPhone())){ + if (ObjectUtil.isNotEmpty(bizOrder.getReceiverPhone())) { queryWrapper.like(BizOrder::getReceiverPhone, bizOrder.getReceiverPhone()); } - if (ObjectUtil.isNotEmpty(bizOrder.getReceiverAddress())){ + if (ObjectUtil.isNotEmpty(bizOrder.getReceiverAddress())) { queryWrapper.like(BizOrder::getReceiverAddress, bizOrder.getReceiverAddress()); } - if (ObjectUtil.isNotEmpty(bizOrder.getReceiverLng())){ + if (ObjectUtil.isNotEmpty(bizOrder.getReceiverLng())) { queryWrapper.eq(BizOrder::getReceiverLng, bizOrder.getReceiverLng()); } - if (ObjectUtil.isNotEmpty(bizOrder.getReceiverLat())){ + if (ObjectUtil.isNotEmpty(bizOrder.getReceiverLat())) { queryWrapper.eq(BizOrder::getReceiverLat, bizOrder.getReceiverLat()); } - if (ObjectUtil.isNotEmpty(bizOrder.getReceiverCompany())){ + if (ObjectUtil.isNotEmpty(bizOrder.getReceiverCompany())) { queryWrapper.like(BizOrder::getReceiverCompany, bizOrder.getReceiverCompany()); } - if (ObjectUtil.isNotEmpty(bizOrder.getGoodsType())){ + if (ObjectUtil.isNotEmpty(bizOrder.getGoodsType())) { queryWrapper.eq(BizOrder::getGoodsType, bizOrder.getGoodsType()); } - if (ObjectUtil.isNotEmpty(bizOrder.getGoodsName())){ + if (ObjectUtil.isNotEmpty(bizOrder.getGoodsName())) { queryWrapper.like(BizOrder::getGoodsName, bizOrder.getGoodsName()); } - if (ObjectUtil.isNotEmpty(bizOrder.getWeight())){ + if (ObjectUtil.isNotEmpty(bizOrder.getWeight())) { queryWrapper.eq(BizOrder::getWeight, bizOrder.getWeight()); } - if (ObjectUtil.isNotEmpty(bizOrder.getVolume())){ + if (ObjectUtil.isNotEmpty(bizOrder.getVolume())) { queryWrapper.eq(BizOrder::getVolume, bizOrder.getVolume()); } - if (ObjectUtil.isNotEmpty(bizOrder.getLength())){ + if (ObjectUtil.isNotEmpty(bizOrder.getLength())) { queryWrapper.eq(BizOrder::getLength, bizOrder.getLength()); } - if (ObjectUtil.isNotEmpty(bizOrder.getWidth())){ + if (ObjectUtil.isNotEmpty(bizOrder.getWidth())) { queryWrapper.eq(BizOrder::getWidth, bizOrder.getWidth()); } - if (ObjectUtil.isNotEmpty(bizOrder.getHeight())){ + if (ObjectUtil.isNotEmpty(bizOrder.getHeight())) { queryWrapper.eq(BizOrder::getHeight, bizOrder.getHeight()); } - if (ObjectUtil.isNotEmpty(bizOrder.getTotalQuantity())){ + if (ObjectUtil.isNotEmpty(bizOrder.getTotalQuantity())) { queryWrapper.eq(BizOrder::getTotalQuantity, bizOrder.getTotalQuantity()); } - if (ObjectUtil.isNotEmpty(bizOrder.getInsured())){ + if (ObjectUtil.isNotEmpty(bizOrder.getInsured())) { queryWrapper.eq(BizOrder::getInsured, bizOrder.getInsured()); } - if (ObjectUtil.isNotEmpty(bizOrder.getInsuredMoney())){ + if (ObjectUtil.isNotEmpty(bizOrder.getInsuredMoney())) { queryWrapper.eq(BizOrder::getInsuredMoney, bizOrder.getInsuredMoney()); } - if (ObjectUtil.isNotEmpty(bizOrder.getInsuredFee())){ + if (ObjectUtil.isNotEmpty(bizOrder.getInsuredFee())) { queryWrapper.eq(BizOrder::getInsuredFee, bizOrder.getInsuredFee()); } - if (ObjectUtil.isNotEmpty(bizOrder.getOrderFee())){ + if (ObjectUtil.isNotEmpty(bizOrder.getOrderFee())) { queryWrapper.eq(BizOrder::getOrderFee, bizOrder.getOrderFee()); } - if (ObjectUtil.isNotEmpty(bizOrder.getIsCancel())){ + if (ObjectUtil.isNotEmpty(bizOrder.getIsCancel())) { queryWrapper.eq(BizOrder::getIsCancel, bizOrder.getIsCancel()); } - if (ObjectUtil.isNotEmpty(bizOrder.getCancelReason())){ + if (ObjectUtil.isNotEmpty(bizOrder.getCancelReason())) { queryWrapper.like(BizOrder::getCancelReason, bizOrder.getCancelReason()); } - if (ObjectUtil.isNotEmpty(bizOrder.getCancelTime())){ + if (ObjectUtil.isNotEmpty(bizOrder.getCancelTime())) { queryWrapper.like(BizOrder::getCancelTime, bizOrder.getCancelTime()); } - if (ObjectUtil.isNotEmpty(bizOrder.getPayType())){ + if (ObjectUtil.isNotEmpty(bizOrder.getPayType())) { queryWrapper.eq(BizOrder::getPayType, bizOrder.getPayType()); } - if (ObjectUtil.isNotEmpty(bizOrder.getPayMode())){ + if (ObjectUtil.isNotEmpty(bizOrder.getPayMode())) { queryWrapper.eq(BizOrder::getPayMode, bizOrder.getPayMode()); } - if (ObjectUtil.isNotEmpty(bizOrder.getPayId())){ + if (ObjectUtil.isNotEmpty(bizOrder.getPayId())) { queryWrapper.eq(BizOrder::getPayId, bizOrder.getPayId()); } - if (ObjectUtil.isNotEmpty(bizOrder.getPayStatus())){ + if (ObjectUtil.isNotEmpty(bizOrder.getPayStatus())) { queryWrapper.eq(BizOrder::getPayStatus, bizOrder.getPayStatus()); } - if (ObjectUtil.isNotEmpty(bizOrder.getPayTime())){ + if (ObjectUtil.isNotEmpty(bizOrder.getPayTime())) { queryWrapper.like(BizOrder::getPayTime, bizOrder.getPayTime()); } - if (ObjectUtil.isNotEmpty(bizOrder.getStatus())){ + if (ObjectUtil.isNotEmpty(bizOrder.getStatus())) { queryWrapper.eq(BizOrder::getStatus, bizOrder.getStatus()); } - if (ObjectUtil.isNotEmpty(bizOrder.getStartTime())){ + if (ObjectUtil.isNotEmpty(bizOrder.getStartTime())) { queryWrapper.like(BizOrder::getStartTime, bizOrder.getStartTime()); } - if (ObjectUtil.isNotEmpty(bizOrder.getArriveTime())){ + if (ObjectUtil.isNotEmpty(bizOrder.getArriveTime())) { queryWrapper.like(BizOrder::getArriveTime, bizOrder.getArriveTime()); } - if (ObjectUtil.isNotEmpty(bizOrder.getArriveRemark())){ + if (ObjectUtil.isNotEmpty(bizOrder.getArriveRemark())) { queryWrapper.like(BizOrder::getArriveRemark, bizOrder.getArriveRemark()); } - if (ObjectUtil.isNotEmpty(bizOrder.getArriveLng())){ + if (ObjectUtil.isNotEmpty(bizOrder.getArriveLng())) { queryWrapper.eq(BizOrder::getArriveLng, bizOrder.getArriveLng()); } - if (ObjectUtil.isNotEmpty(bizOrder.getArriveLat())){ + if (ObjectUtil.isNotEmpty(bizOrder.getArriveLat())) { queryWrapper.eq(BizOrder::getArriveLat, bizOrder.getArriveLat()); } - queryWrapper.eq(BizOrder::getStatus,1); + queryWrapper.eq(BizOrder::getStatus, 1); + queryWrapper.orderByDesc(BizOrder::getCreateTime); return queryWrapper; } /** * 新增订单 - * + * * @param bizOrder 订单 * @return 结果 */ @Override - public int insertBizOrder(BizOrder bizOrder) - { + public int insertBizOrder(BizOrder bizOrder) { Long customerId = bizOrder.getCustomerId(); // 客户id - if (ObjectUtil.isEmpty(customerId)){ + if (ObjectUtil.isEmpty(customerId)) { String username = SecurityUtils.getUsername(); BizCustomer bizCustomer = bizCustomerMapper.selectByLinkPhone(username); customerId = bizCustomer.getId(); @@ -280,9 +310,12 @@ public class BizOrderServiceImpl implements IBizOrderService Long driverId = bizOrder.getDriverId(); // 配送司机id Long copilotId = bizOrder.getCopilotId(); // 副驾司机id + setBizOrderSn(bizOrder); // 填充订单编号 + bizOrder.setCustomerName(bizCustomerMapper.selectById(customerId).getName()); if (ObjectUtil.isNotEmpty(routeId)) bizOrder.setRouteName(bizCustomerRouteMapper.selectById(routeId).getName()); - if (ObjectUtil.isNotEmpty(warehouseId)) bizOrder.setWarehouseName(bizCustomerWarehouseMapper.selectById(warehouseId).getName()); + if (ObjectUtil.isNotEmpty(warehouseId)) + bizOrder.setWarehouseName(bizCustomerWarehouseMapper.selectById(warehouseId).getName()); if (ObjectUtil.isNotEmpty(shopId)) bizOrder.setShopName(bizCustomerShopMapper.selectById(shopId).getName()); if (ObjectUtil.isNotEmpty(carId)) bizOrder.setCarNo(bizCarMapper.selectById(carId).getCarNo()); if (ObjectUtil.isNotEmpty(driverId)) bizOrder.setDriverName(bizDriverMapper.selectById(driverId).getName()); @@ -292,44 +325,298 @@ public class BizOrderServiceImpl implements IBizOrderService /** * 修改订单 - * + * * @param bizOrder 订单 * @return 结果 */ @Override - public int updateBizOrder(BizOrder bizOrder) - { + public int updateBizOrder(BizOrder bizOrder) { return bizOrderMapper.updateById(bizOrder); } /** * 批量删除订单 - * + * * @param ids 需要删除的订单主键 * @return 结果 */ @Override - public int deleteBizOrderByIds(Long[] ids) - { + public int deleteBizOrderByIds(Long[] ids) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.in("id", (Object[]) ids); - updateWrapper.set("status","2"); //状态改为删除 - return bizOrderMapper.update(null,updateWrapper); + updateWrapper.set("status", "2"); //状态改为删除 + return bizOrderMapper.update(null, updateWrapper); } /** * 删除订单信息 - * + * * @param id 订单主键 * @return 结果 */ @Override - public int deleteBizOrderById(Long id) - { + public int deleteBizOrderById(Long id) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.eq("id", id); - updateWrapper.set("status","2"); //状态改为删除 - return bizOrderMapper.update(null,updateWrapper); + updateWrapper.set("status", "2"); //状态改为删除 + return bizOrderMapper.update(null, updateWrapper); } + /** + * 导入订单数据(调度员) + * + * @param orderList 订单数据列表 + * @param updateSupport 是否更新支持,如果已存在,则进行更新数据 + * @return 结果 + */ + @Override + public String importOrder(List orderList, boolean updateSupport) { + if (StringUtils.isNull(orderList) || orderList.size() == 0) { + throw new ServiceException("导入订单数据不能为空!"); + } + int successNum = 0; + int failureNum = 0; + StringBuilder successMsg = new StringBuilder(); + StringBuilder failureMsg = new StringBuilder(); + for (BizOrderVo vo : orderList) { + BizOrder bizOrder = new BizOrder(); + BeanUtils.copyProperties(vo,bizOrder); + // 设置订单属性 + setBizOrder(bizOrder); + try { + bizOrderMapper.insert(bizOrder); + successNum++; + successMsg.append("
").append(successNum).append("、订单 ").append(bizOrder.getOrderSn()).append(" 导入成功"); + } catch (Exception e) { + failureNum++; + String msg = "
" + failureNum + "、订单 " + bizOrder.getOrderSn() + " 导入失败:"; + failureMsg.append(msg).append(e.getMessage()); + log.error(msg, e); + } + } + if (failureNum > 0) { + failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); + throw new ServiceException(failureMsg.toString()); + } else { + successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:"); + } + return successMsg.toString(); + } + + /** + * 导入订单数据(客户) + * + * @param orderList 订单数据列表 + * @param updateSupport 是否更新支持,如果已存在,则进行更新数据 + * @return 结果 + */ + @Override + public String importOrderCustomer(List orderList, boolean updateSupport) { + if (StringUtils.isNull(orderList) || orderList.size() == 0) { + throw new ServiceException("导入订单数据不能为空!"); + } + int successNum = 0; + int failureNum = 0; + StringBuilder successMsg = new StringBuilder(); + StringBuilder failureMsg = new StringBuilder(); + for (BizOrderVoCustomer voCustomer : orderList) { + BizOrder bizOrder = new BizOrder(); + BeanUtils.copyProperties(voCustomer,bizOrder); + // 设置订单属性 + setBizOrderCustomer(bizOrder); + try { + bizOrderMapper.insert(bizOrder); + successNum++; + successMsg.append("
").append(successNum).append("、订单 ").append(bizOrder.getOrderSn()).append(" 导入成功"); + } catch (Exception e) { + failureNum++; + String msg = "
" + failureNum + "、订单 " + bizOrder.getOrderSn() + " 导入失败:"; + failureMsg.append(msg).append(e.getMessage()); + log.error(msg, e); + } + } + if (failureNum > 0) { + failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); + throw new ServiceException(failureMsg.toString()); + } else { + successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:"); + } + return successMsg.toString(); + } + + // 设置订单相关属性(调度员导入) + private void setBizOrder(BizOrder bizOrder) { + setBizOrderSn(bizOrder); + + String customerName = bizOrder.getCustomerName(); // 客户名称 + String routeName = bizOrder.getRouteName(); // 路线名称 + String warehouseName = bizOrder.getWarehouseName(); // 仓库名称 + String shopName = bizOrder.getShopName(); // 店铺名称 + String carNo = bizOrder.getCarNo(); // 配送车牌号 + String driverName = bizOrder.getDriverName(); // 配送司机名称 + String copilotName = bizOrder.getCopilotName(); // 副驾司机名称 + String goodsType = bizOrder.getGoodsType(); // 物品类型 + String goodsName = bizOrder.getGoodsName(); // 物品名称 + BigDecimal weight = bizOrder.getWeight(); // 重量 + BigDecimal length = bizOrder.getLength(); // 长 + BigDecimal width = bizOrder.getWidth(); // 宽 + BigDecimal height = bizOrder.getHeight(); // 高 + String remark = bizOrder.getRemark(); // 备注 + + BizCustomer bizCustomer = bizCustomerMapper.selectByName(customerName); + Long customerId = bizCustomer.getId(); + bizOrder.setCustomerId(customerId); + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(BizCustomerRoute::getCustomerId,customerId); + queryWrapper.eq(BizCustomerRoute::getName,routeName); + queryWrapper.eq(BizCustomerRoute::getStatus,"1"); + BizCustomerRoute bizCustomerRoute = bizCustomerRouteMapper.selectOne(queryWrapper); + bizOrder.setRouteId(bizCustomerRoute.getId()); + + LambdaQueryWrapper queryWrapper1 = new LambdaQueryWrapper<>(); + queryWrapper1.eq(BizCustomerWarehouse::getCustomerId,customerId); + queryWrapper1.eq(BizCustomerWarehouse::getName,warehouseName); + queryWrapper1.eq(BizCustomerWarehouse::getStatus,1); + BizCustomerWarehouse bizCustomerWarehouse = bizCustomerWarehouseMapper.selectOne(queryWrapper1); + bizOrder.setWarehouseId(bizCustomerWarehouse.getId()); + // 发件人信息就是仓库信息 + bizOrder.setSenderName(bizCustomerWarehouse.getName()); + bizOrder.setSenderLinkman(bizCustomerWarehouse.getLinkman()); + bizOrder.setSenderPhone(bizCustomerWarehouse.getLinkphone()); + bizOrder.setSenderAddress(bizCustomerWarehouse.getAddress()); + bizOrder.setSenderLng(bizCustomerWarehouse.getLng()); + bizOrder.setSenderLat(bizCustomerWarehouse.getLat()); + + LambdaQueryWrapper queryWrapper2 = new LambdaQueryWrapper<>(); + queryWrapper2.eq(BizCustomerShop::getCustomerId,customerId); + queryWrapper2.eq(BizCustomerShop::getName,shopName); + queryWrapper2.eq(BizCustomerShop::getStatus,1); + BizCustomerShop bizCustomerShop = bizCustomerShopMapper.selectOne(queryWrapper2); + bizOrder.setShopId(bizCustomerShop.getId()); + // 收件人信息就是店铺信息 + bizOrder.setReceiverName(bizCustomerShop.getName()); + bizOrder.setReceiverLinkman(bizCustomerShop.getLinkman()); + bizOrder.setReceiverPhone(bizCustomerShop.getLinkphone()); + bizOrder.setReceiverAddress(bizCustomerShop.getAddress()); + bizOrder.setReceiverLng(bizCustomerShop.getLng()); + bizOrder.setReceiverLat(bizCustomerShop.getLat()); + + if (ObjectUtil.isNotEmpty(carNo)){ + LambdaQueryWrapper queryWrapper3 = new LambdaQueryWrapper<>(); + queryWrapper3.eq(BizCar::getCarNo,carNo); + queryWrapper3.eq(BizCar::getStatus,1); + BizCar bizCar = bizCarMapper.selectOne(queryWrapper3); + bizOrder.setCarId(bizCar.getId()); + } + if (ObjectUtil.isNotEmpty(driverName)){ + LambdaQueryWrapper queryWrapper4= new LambdaQueryWrapper<>(); + queryWrapper4.eq(BizDriver::getName,driverName); + queryWrapper4.eq(BizDriver::getStatus,1); + BizDriver bizDriver = bizDriverMapper.selectOne(queryWrapper4); + bizOrder.setDriverId(bizDriver.getId()); + } + if (ObjectUtil.isNotEmpty(copilotName)){ + LambdaQueryWrapper queryWrapper5= new LambdaQueryWrapper<>(); + queryWrapper5.eq(BizDriver::getName,copilotName); + queryWrapper5.eq(BizDriver::getStatus,1); + BizDriver copilot = bizDriverMapper.selectOne(queryWrapper5); + bizOrder.setCopilotId(copilot.getId()); + } + + bizOrder.setGoodsType(goodsType); + bizOrder.setGoodsName(goodsName); + bizOrder.setWeight(weight); + bizOrder.setLength(length); + bizOrder.setWidth(width); + bizOrder.setHeight(height); + if (ObjectUtil.isNotEmpty(length) && ObjectUtil.isNotEmpty(width) && ObjectUtil.isNotEmpty(height)){ + bizOrder.setVolume(length.multiply(width).multiply(height)); + } + bizOrder.setRemark(remark); + } + + // 设置订单相关属性(客户导入) + private void setBizOrderCustomer(BizOrder bizOrder) { + setBizOrderSn(bizOrder); + + String routeName = bizOrder.getRouteName(); // 路线名称 + String warehouseName = bizOrder.getWarehouseName(); // 仓库名称 + String shopName = bizOrder.getShopName(); // 店铺名称 + String goodsType = bizOrder.getGoodsType(); // 物品类型 + String goodsName = bizOrder.getGoodsName(); // 物品名称 + BigDecimal weight = bizOrder.getWeight(); // 重量 + BigDecimal length = bizOrder.getLength(); // 长 + BigDecimal width = bizOrder.getWidth(); // 宽 + BigDecimal height = bizOrder.getHeight(); // 高 + String remark = bizOrder.getRemark(); // 备注 + + BizCustomer bizCustomer = bizCustomerMapper.selectByLinkPhone(SecurityUtils.getUsername()); + Long customerId = bizCustomer.getId(); + bizOrder.setCustomerId(customerId); + bizOrder.setCustomerName(bizCustomer.getName()); + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(BizCustomerRoute::getCustomerId,customerId); + queryWrapper.eq(BizCustomerRoute::getName,routeName); + queryWrapper.eq(BizCustomerRoute::getStatus,"1"); + BizCustomerRoute bizCustomerRoute = bizCustomerRouteMapper.selectOne(queryWrapper); + bizOrder.setRouteId(bizCustomerRoute.getId()); + + LambdaQueryWrapper queryWrapper1 = new LambdaQueryWrapper<>(); + queryWrapper1.eq(BizCustomerWarehouse::getCustomerId,customerId); + queryWrapper1.eq(BizCustomerWarehouse::getName,warehouseName); + queryWrapper1.eq(BizCustomerWarehouse::getStatus,1); + BizCustomerWarehouse bizCustomerWarehouse = bizCustomerWarehouseMapper.selectOne(queryWrapper1); + bizOrder.setWarehouseId(bizCustomerWarehouse.getId()); + // 发件人信息就是仓库信息 + bizOrder.setSenderName(bizCustomerWarehouse.getName()); + bizOrder.setSenderLinkman(bizCustomerWarehouse.getLinkman()); + bizOrder.setSenderPhone(bizCustomerWarehouse.getLinkphone()); + bizOrder.setSenderAddress(bizCustomerWarehouse.getAddress()); + bizOrder.setSenderLng(bizCustomerWarehouse.getLng()); + bizOrder.setSenderLat(bizCustomerWarehouse.getLat()); + + LambdaQueryWrapper queryWrapper2 = new LambdaQueryWrapper<>(); + queryWrapper2.eq(BizCustomerShop::getCustomerId,customerId); + queryWrapper2.eq(BizCustomerShop::getName,shopName); + queryWrapper2.eq(BizCustomerShop::getStatus,1); + BizCustomerShop bizCustomerShop = bizCustomerShopMapper.selectOne(queryWrapper2); + bizOrder.setShopId(bizCustomerShop.getId()); + // 收件人信息就是店铺信息 + bizOrder.setReceiverName(bizCustomerShop.getName()); + bizOrder.setReceiverLinkman(bizCustomerShop.getLinkman()); + bizOrder.setReceiverPhone(bizCustomerShop.getLinkphone()); + bizOrder.setReceiverAddress(bizCustomerShop.getAddress()); + bizOrder.setReceiverLng(bizCustomerShop.getLng()); + bizOrder.setReceiverLat(bizCustomerShop.getLat()); + + bizOrder.setGoodsType(goodsType); + bizOrder.setGoodsName(goodsName); + bizOrder.setWeight(weight); + bizOrder.setLength(length); + bizOrder.setWidth(width); + bizOrder.setHeight(height); + if (ObjectUtil.isNotEmpty(length) && ObjectUtil.isNotEmpty(width) && ObjectUtil.isNotEmpty(height)){ + bizOrder.setVolume(length.multiply(width).multiply(height)); + } + bizOrder.setRemark(remark); + } + + // 订单号生成规则 + private void setBizOrderSn(BizOrder bizOrder) { + String format = DateUtil.format(new Date(), "yyyyMMdd"); // 20241220 + String orderSn; + BizOrder order = bizOrderMapper.selectLastestOrder(); + if (order == null){ + orderSn = "Y" + format + "1001"; + }else { + String sn = order.getOrderSn(); + String substring = sn.substring(9); // 1001 + long aLong = Long.parseLong(substring); + aLong += 1L; + orderSn = "Y" + format + aLong; + } + bizOrder.setOrderSn(orderSn); + } } diff --git a/cpxt-system/src/main/java/com/cpxt/biz/service/impl/BizOrderTaskServiceImpl.java b/cpxt-system/src/main/java/com/cpxt/biz/service/impl/BizOrderTaskServiceImpl.java new file mode 100644 index 0000000..5dd8068 --- /dev/null +++ b/cpxt-system/src/main/java/com/cpxt/biz/service/impl/BizOrderTaskServiceImpl.java @@ -0,0 +1,144 @@ +package com.cpxt.biz.service.impl; + +import java.util.Arrays; +import java.util.List; +import java.util.UUID; + +import cn.hutool.captcha.generator.RandomGenerator; +import cn.hutool.core.util.RandomUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.cpxt.biz.domain.BizCar; +import com.cpxt.biz.domain.BizOrderTask; +import com.cpxt.biz.mapper.BizOrderTaskMapper; +import com.cpxt.biz.service.IBizOrderTaskService; +import com.cpxt.common.utils.DateUtils; +import com.cpxt.quartz.domain.SysJob; +import com.cpxt.quartz.mapper.SysJobMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * 订单任务Service业务层处理 + * + * @author ruoyi + * @date 2024-12-20 + */ +@Service +public class BizOrderTaskServiceImpl implements IBizOrderTaskService +{ + @Autowired + private BizOrderTaskMapper bizOrderTaskMapper; + + @Autowired + private SysJobMapper sysJobMapper; + + /** + * 查询订单任务 + * + * @param id 订单任务主键 + * @return 订单任务 + */ + @Override + public BizOrderTask selectBizOrderTaskById(Integer id) + { + return bizOrderTaskMapper.selectById(id); + } + + /** + * 查询订单任务列表 + * + * @param bizOrderTask 订单任务 + * @return 订单任务 + */ + @Override + public List selectBizOrderTaskList(BizOrderTask bizOrderTask) + { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + return bizOrderTaskMapper.selectList(queryWrapper); + } + + /** + * 新增订单任务 + * + * @param bizOrderTask 订单任务 + * @return 结果 + */ + @Override + public int insertBizOrderTask(BizOrderTask bizOrderTask) + { + String uuid = UUID.randomUUID().toString(); + + SysJob sysJob = new SysJob(); + sysJob.setJobName(bizOrderTask.getName()); + sysJob.setInvokeTarget("orderTask.generateOrder('" + uuid +"')"); + sysJob.setCronExpression(bizOrderTask.getCronExpression()); + sysJob.setMisfirePolicy(bizOrderTask.getMisfirePolicy()); + sysJob.setConcurrent(bizOrderTask.getConcurrent()); + sysJob.setStatus(bizOrderTask.getStatus()); + sysJob.setCreateBy(bizOrderTask.getCreateBy()); + sysJob.setCreateTime(bizOrderTask.getCreateTime()); + sysJob.setUpdateBy(bizOrderTask.getUpdateBy()); + sysJob.setUpdateTime(bizOrderTask.getUpdateTime()); + sysJob.setRemark(bizOrderTask.getRemark()); + sysJobMapper.insertJob(sysJob); + + bizOrderTask.setCode(uuid); + bizOrderTask.setJobId(sysJob.getJobId()); + return bizOrderTaskMapper.insert(bizOrderTask); + } + + /** + * 修改订单任务 + * + * @param bizOrderTask 订单任务 + * @return 结果 + */ + @Override + public int updateBizOrderTask(BizOrderTask bizOrderTask) + { + // 同步修改订单任务 + SysJob sysJob = sysJobMapper.selectJobById(bizOrderTask.getJobId()); + sysJob.setJobName(bizOrderTask.getName()); + sysJob.setCronExpression(bizOrderTask.getCronExpression()); + sysJob.setMisfirePolicy(bizOrderTask.getMisfirePolicy()); + sysJob.setConcurrent(bizOrderTask.getConcurrent()); + sysJob.setStatus(bizOrderTask.getStatus()); + sysJob.setCreateBy(bizOrderTask.getCreateBy()); + sysJob.setCreateTime(bizOrderTask.getCreateTime()); + sysJob.setUpdateBy(bizOrderTask.getUpdateBy()); + sysJob.setUpdateTime(bizOrderTask.getUpdateTime()); + sysJob.setRemark(bizOrderTask.getRemark()); + sysJobMapper.updateJob(sysJob); + return bizOrderTaskMapper.updateById(bizOrderTask); + } + + /** + * 批量删除订单任务 + * + * @param ids 需要删除的订单任务主键 + * @return 结果 + */ + @Override + public int deleteBizOrderTaskByIds(Integer[] ids) + { + // 同步删除job表中的任务 + for (Integer id : ids) { + Long jobId = bizOrderTaskMapper.selectById(id).getJobId(); + sysJobMapper.deleteJobById(jobId); + } + return bizOrderTaskMapper.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * 删除订单任务信息 + * + * @param id 订单任务主键 + * @return 结果 + */ + @Override + public int deleteBizOrderTaskById(Integer id) + { + return bizOrderTaskMapper.deleteById(id); + } +}