|
@@ -2,6 +2,7 @@ package org.springblade.factory.api.controller;
|
|
|
|
|
|
|
|
|
import com.alibaba.cloud.commons.lang.StringUtils;
|
|
|
+import com.alibaba.excel.util.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
@@ -11,6 +12,12 @@ import org.springblade.core.mp.support.Query;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.factory.entity.*;
|
|
|
import org.springblade.factory.service.*;
|
|
|
+import org.springblade.factory.vo.PcBladeOrderInvoiceVO;
|
|
|
+import org.springblade.factory.vo.PcBladeOrderShipmentVO;
|
|
|
+import org.springblade.factory.vo.PcBladeShipmentTrackingVO;
|
|
|
+import org.springblade.factory.wrapper.PcBladeOrderInvoiceWrapper;
|
|
|
+import org.springblade.factory.wrapper.PcBladeOrderShipmentWrapper;
|
|
|
+import org.springblade.factory.wrapper.PcBladeShipmentTrackingWrapper;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
@@ -241,11 +248,229 @@ public class SalesOrderController {
|
|
|
|
|
|
|
|
|
|
|
|
- @Autowired
|
|
|
- private ZcrmViewWhqohSelService whqohService;
|
|
|
- // 获取品牌 -- 接口
|
|
|
+
|
|
|
+
|
|
|
+ // 获取品牌 -- 接口 ------ 待定接口
|
|
|
+
|
|
|
+
|
|
|
+ // 获取品牌 -- 接口 END ------ 待定接口
|
|
|
+
|
|
|
+
|
|
|
+ // 物流跟踪 -- 接口
|
|
|
+ private final PcBladeShipmentTrackingService pcBladeShipmentTrackingService;
|
|
|
+
|
|
|
+ @GetMapping("/getPcBladeShipmentTrackingByPid")
|
|
|
+ public R<List<PcBladeShipmentTracking>> getPcBladeShipmentTrackingByPid(Long pid) {
|
|
|
+ // 校验参数
|
|
|
+ if (pid == null) {
|
|
|
+ return R.fail("pid不能为空");
|
|
|
+ }
|
|
|
+ // 调用服务层方法查询数据
|
|
|
+ List<PcBladeShipmentTracking> trackingList = pcBladeShipmentTrackingService.selectPcBladeShipmentTrackingByPid(pid);
|
|
|
+ // 返回成功响应及数据
|
|
|
+ return R.data(trackingList);
|
|
|
+ }
|
|
|
+
|
|
|
+ @GetMapping("/getPcBladeShipmentTrackingByCid")
|
|
|
+ public R<List<PcBladeShipmentTracking>> getPcBladeShipmentTrackingByCid(Long cid) {
|
|
|
+ // 校验参数
|
|
|
+ if (cid == null) {
|
|
|
+ return R.fail("cid不能为空");
|
|
|
+ }
|
|
|
+ // 调用服务层方法查询数据
|
|
|
+ List<PcBladeShipmentTracking> trackingList = pcBladeShipmentTrackingService.selectPcBladeShipmentTrackingByCid(cid);
|
|
|
+ // 返回成功响应及数据
|
|
|
+ return R.data(trackingList);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 新增
|
|
|
+ */
|
|
|
+ @PostMapping("/addPcBladeShipmentTracking")
|
|
|
+ public R<Boolean> save(@RequestBody PcBladeShipmentTracking pcBladeShipmentTracking) {
|
|
|
+ return R.data(200, pcBladeShipmentTrackingService.insertPcBladeShipmentTracking(pcBladeShipmentTracking),"添加成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改
|
|
|
+ */
|
|
|
+ @PutMapping("/updatePcBladeShipmentTracking")
|
|
|
+ public R<Boolean> update(@RequestBody PcBladeShipmentTracking pcBladeShipmentTracking) {
|
|
|
+ return R.data(200,pcBladeShipmentTrackingService.updatePcBladeShipmentTracking(pcBladeShipmentTracking),"修改成功");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // 发货单 -- 接口
|
|
|
+ private final PcBladeOrderShipmentService shipmentService;
|
|
|
+ private final PcBladeOrderShipmentItemService shipmentItemService;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据订单ID查询发货单列表
|
|
|
+ */
|
|
|
+ @GetMapping("/getPcBladeOrderShipmentByOrderId")
|
|
|
+ @ApiOperation(value = "根据订单ID查询发货单", notes = "通过订单ID(orderId)查询对应的发货单列表")
|
|
|
+ public R<List<PcBladeOrderShipmentVO>> getByOrderId(@RequestParam Long orderId) {
|
|
|
+ // 参数校验
|
|
|
+ if (orderId == null) {
|
|
|
+ return R.fail("参数错误:orderId不能为空");
|
|
|
+ }
|
|
|
+ // 调用服务层方法查询
|
|
|
+ List<PcBladeOrderShipmentVO> result = shipmentService.getByOrderId(orderId);
|
|
|
+ return R.data(result);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据订单编号查询发货单列表
|
|
|
+ */
|
|
|
+ @GetMapping("/getPcBladeOrderShipmentByOrderCode")
|
|
|
+ @ApiOperation(value = "根据订单编号查询发货单", notes = "通过订单编号(orderCode)查询对应的发货单列表")
|
|
|
+ public R<List<PcBladeOrderShipmentVO>> getByOrderCode(@RequestParam String orderCode) {
|
|
|
+ // 参数校验
|
|
|
+ if (orderCode == null || orderCode.trim().isEmpty()) {
|
|
|
+ return R.fail("参数错误:orderCode不能为空");
|
|
|
+ }
|
|
|
+ // 调用服务层方法查询
|
|
|
+ List<PcBladeOrderShipmentVO> result = shipmentService.getByOrderCode(orderCode.trim());
|
|
|
+ return R.data(result);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 新增订单发货单及明细
|
|
|
+ */
|
|
|
+ @PostMapping("/addPcBladeOrderShipmentPro")
|
|
|
+ public R<Boolean> addPcBladeOrderShipmentPro(@RequestBody PcBladeOrderShipment pcBladeOrderShipment) {
|
|
|
+ // 校验主表和明细表数据
|
|
|
+ if (pcBladeOrderShipment == null) {
|
|
|
+ return R.fail("发货单数据不能为空");
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isEmpty(pcBladeOrderShipment.getPcBladeOrderShipmentItem())) {
|
|
|
+ return R.fail("请至少添加一条发货明细");
|
|
|
+ }
|
|
|
+ boolean result = shipmentService.insertPcBladeOrderShipmentPro(pcBladeOrderShipment);
|
|
|
+ return R.data(result, result ? "添加成功" : "添加失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改订单发货单及明细
|
|
|
+ */
|
|
|
+ @PutMapping("/updatePcBladeOrderShipmentPro")
|
|
|
+ public R<Boolean> updatePcBladeOrderShipmentPro(@RequestBody PcBladeOrderShipment pcBladeOrderShipment) {
|
|
|
+ // 校验ID和数据
|
|
|
+ if (pcBladeOrderShipment.getId() == null) {
|
|
|
+ return R.fail("发货单ID不能为空");
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isEmpty(pcBladeOrderShipment.getPcBladeOrderShipmentItem())) {
|
|
|
+ return R.fail("请至少添加一条发货明细");
|
|
|
+ }
|
|
|
+ boolean result = shipmentService.updatePcBladeOrderShipmentPro(pcBladeOrderShipment);
|
|
|
+ return R.data(result, result ? "修改成功" : "修改失败");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改订单发货单明细(根据ID)
|
|
|
+ * 针对单个明细项进行修改操作
|
|
|
+ */
|
|
|
+ @PutMapping("/updatePcBladeOrderShipmentItemProFind")
|
|
|
+ public R<Boolean> updatePcBladeOrderShipmentItemProFind(
|
|
|
+ @RequestBody PcBladeOrderShipmentItem pcBladeOrderShipmentItem) {
|
|
|
+ // 1. 参数校验:确保明细ID存在
|
|
|
+ if (pcBladeOrderShipmentItem.getId() == null) {
|
|
|
+ return R.fail("明细ID不能为空");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 2. 校验明细是否存在
|
|
|
+ PcBladeOrderShipmentItem existingItem = shipmentItemService.getById(pcBladeOrderShipmentItem.getId());
|
|
|
+ if (existingItem == null) {
|
|
|
+ return R.fail("未找到ID为" + pcBladeOrderShipmentItem.getId() + "的发货明细");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 3. 调用服务层执行修改操作
|
|
|
+ boolean result = shipmentItemService.updateShipmentItemById(pcBladeOrderShipmentItem);
|
|
|
+
|
|
|
+ // 4. 返回结果
|
|
|
+ return result ? R.data(true, "修改成功") : R.fail("修改失败");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // 发票 -- 接口
|
|
|
+ private final PcBladeOrderInvoiceService pcBladeOrderInvoiceService;
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据订单ID获取发票信息(包含明细)
|
|
|
+ */
|
|
|
+ @GetMapping("/getPcBladeOrderInvoiceByIdFind")
|
|
|
+ public R<PcBladeOrderInvoiceVO> getPcBladeOrderInvoiceByIdFind(@RequestParam Long orderId) {
|
|
|
+ // 参数校验
|
|
|
+ if (orderId == null) {
|
|
|
+ return R.fail("订单ID不能为空");
|
|
|
+ }
|
|
|
+ PcBladeOrderInvoiceVO invoiceVO = pcBladeOrderInvoiceService.getByOrderId(orderId);
|
|
|
+ return invoiceVO != null ? R.data(invoiceVO) : R.fail("未找到对应发票信息");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据订单编号获取发票信息(包含明细)
|
|
|
+ */
|
|
|
+ @GetMapping("/getPcBladeOrderInvoiceByCodeFind")
|
|
|
+ public R<PcBladeOrderInvoiceVO> getPcBladeOrderInvoiceByCodeFind(@RequestParam String orderCode) {
|
|
|
+ // 参数校验
|
|
|
+ if (StringUtils.isBlank(orderCode)) {
|
|
|
+ return R.fail("订单编号不能为空");
|
|
|
+ }
|
|
|
+ PcBladeOrderInvoiceVO invoiceVO = pcBladeOrderInvoiceService.getByOrderCode(orderCode.trim());
|
|
|
+ return invoiceVO != null ? R.data(invoiceVO) : R.fail("未找到对应发票信息");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加一条发票信息及明细
|
|
|
+ */
|
|
|
+ @PostMapping("/addPcBladeOrderInvoice")
|
|
|
+ public R<Boolean> addPcBladeOrderInvoice(@RequestBody PcBladeOrderInvoice pcBladeOrderInvoice) {
|
|
|
+ // 参数校验
|
|
|
+ if (pcBladeOrderInvoice == null || pcBladeOrderInvoice.getOrderId() == null) {
|
|
|
+ return R.fail("发票信息或订单ID不能为空");
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isEmpty(pcBladeOrderInvoice.getShipmentList())) {
|
|
|
+ return R.fail("至少添加一条发票明细");
|
|
|
+ }
|
|
|
+ boolean result = pcBladeOrderInvoiceService.saveInvoiceWithItems(pcBladeOrderInvoice);
|
|
|
+ return result ? R.success("添加成功") : R.fail("添加失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改发票信息及多个明细
|
|
|
+ */
|
|
|
+ @PutMapping("/updatePcBladeOrderInvoice")
|
|
|
+ public R<Boolean> updatePcBladeOrderInvoice(@RequestBody PcBladeOrderInvoice pcBladeOrderInvoice) {
|
|
|
+ // 参数校验
|
|
|
+ if (pcBladeOrderInvoice == null || pcBladeOrderInvoice.getId() == null) {
|
|
|
+ return R.fail("发票ID不能为空");
|
|
|
+ }
|
|
|
+ boolean result = pcBladeOrderInvoiceService.updateInvoiceWithItems(pcBladeOrderInvoice);
|
|
|
+ return result ? R.success("修改成功") : R.fail("修改失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改单条发票明细
|
|
|
+ */
|
|
|
+ @PutMapping("/updatePcBladeOrderInvoiceItemFind")
|
|
|
+ public R<Boolean> updatePcBladeOrderInvoiceItemFind(@RequestBody PcBladeOrderInvoiceItem pcBladeOrderInvoiceItem) {
|
|
|
+ // 参数校验
|
|
|
+ if (pcBladeOrderInvoiceItem == null || pcBladeOrderInvoiceItem.getId() == null) {
|
|
|
+ return R.fail("明细ID不能为空");
|
|
|
+ }
|
|
|
+ boolean result = pcBladeOrderInvoiceService.updateInvoiceItem(pcBladeOrderInvoiceItem);
|
|
|
+ return result ? R.success("修改成功") : R.fail("修改失败");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
// 检查库存 -- 接口
|
|
|
+ private final ZcrmViewWhqohSelService whqohService;
|
|
|
/**
|
|
|
* 仓库库存列表
|
|
|
*/
|