From ca0565e53494417b3779759f8d3898e07bfd5929 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期二, 20 一月 2026 14:09:16 +0800
Subject: [PATCH] Merge remote-tracking branch 'refs/remotes/origin/jtwy' into sqd-hb
---
src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java | 129 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 129 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java b/src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java
new file mode 100644
index 0000000..a34f809
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java
@@ -0,0 +1,129 @@
+package com.ruoyi.sales.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.web.controller.BaseController;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.procurementrecord.dto.ProcurementAddDto;
+import com.ruoyi.procurementrecord.dto.ProcurementRecordOutAdd;
+import com.ruoyi.procurementrecord.pojo.ProcurementRecordOut;
+import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage;
+import com.ruoyi.procurementrecord.service.ProcurementRecordOutService;
+import com.ruoyi.procurementrecord.service.ProcurementRecordService;
+import com.ruoyi.sales.mapper.ShipmentApprovalMapper;
+import com.ruoyi.sales.mapper.ShippingInfoMapper;
+import com.ruoyi.sales.pojo.SalesLedgerProduct;
+import com.ruoyi.sales.pojo.ShipmentApproval;
+import com.ruoyi.sales.pojo.ShippingInfo;
+import com.ruoyi.sales.service.ISalesLedgerProductService;
+import com.ruoyi.sales.service.ShipmentApprovalService;
+import com.ruoyi.sales.service.ShippingInfoService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@RestController
+@RequestMapping("/shipmentApproval")
+@Api(tags = "鍙戣揣瀹℃壒绠$悊")
+public class ShipmentApprovalController extends BaseController {
+
+ @Autowired
+ private ShipmentApprovalService shipmentApprovalService;
+ @Autowired
+ private ShipmentApprovalMapper shipmentApprovalMapper;
+
+ @Autowired
+ private ISalesLedgerProductService salesLedgerProductService;
+ @Autowired
+ private ProcurementRecordOutService procurementRecordOutService;
+ @Autowired
+ private ProcurementRecordService procurementRecordStorageService;
+
+ @GetMapping("/listPage")
+ @ApiOperation("鍙戣揣瀹℃壒鍒楄〃")
+ public AjaxResult listPage(Page page, ShipmentApproval req) {
+ IPage<ShipmentApproval> listPage = shipmentApprovalService.listPage(page,req);
+ return AjaxResult.success(listPage);
+ }
+
+ @PostMapping("/update")
+ @ApiOperation("鍙戣揣瀹℃壒,鏇存柊鍙戣揣瀹℃壒鐘舵��")
+ @Transactional(rollbackFor = Exception.class)
+ public AjaxResult update(@RequestBody ShipmentApproval req) {
+
+ // 鏌ヨ鍙戣揣瀹℃壒
+ ShipmentApproval shipmentApproval = shipmentApprovalMapper.selectById(req.getId());
+ if (shipmentApproval == null) {
+ return AjaxResult.error("鍙戣揣瀹℃壒涓嶅瓨鍦�");
+ }
+
+ // 鏇存柊鍙戣揣瀹℃壒鐘舵��
+ shipmentApproval.setApproveStatus(req.getApproveStatus());
+ boolean update = shipmentApprovalService.updateById(shipmentApproval);
+ if (!update) {
+ // 浜嬪姟鍥炴粴
+ throw new ServiceException("鍙戣揣瀹℃壒鏇存柊澶辫触");
+ }
+ // 鏌ヨ鍏宠仈鐨勯攢鍞彴璐︿骇鍝�
+ SalesLedgerProduct salesLedgerProduct = salesLedgerProductService.getById(shipmentApproval.getSalesLedgerProductId());
+ if (salesLedgerProduct == null) {
+ // 鎶涘紓甯镐簨鍔″洖婊�
+ throw new ServiceException("閿�鍞彴璐︿笉瀛樺湪锛屽鎵瑰洖婊�");
+ }
+
+ // 鍚屾鏇存柊閿�鍞彴璐︿骇鍝佺殑瀹℃壒鐘舵��
+ salesLedgerProduct.setApproveStatus(req.getApproveStatus());
+ salesLedgerProductService.updateById(salesLedgerProduct);
+
+ // 瀹℃壒閫氳繃
+ if (req.getApproveStatus() == 3) {
+ // 鏌ヨ閲囪喘鍏ュ簱璁板綍
+ LambdaQueryWrapper<ProcurementRecordStorage> lambdaQueryWrapper = new LambdaQueryWrapper<ProcurementRecordStorage>()
+ .eq(ProcurementRecordStorage::getSalesLedgerProductId, req.getSalesLedgerProductId());
+ ProcurementRecordStorage procurementRecordStorage = procurementRecordStorageService.getOne(lambdaQueryWrapper);
+
+ if (procurementRecordStorage == null) {
+ // 淇濊瘉鍓嶉潰鐨勪慨鏀瑰叏閮ㄥ洖婊�
+ throw new ServiceException("閲囪喘璁板綍涓嶅瓨鍦紝瀹℃壒鍥炴粴");
+ }
+
+ // 鐢熸垚鍑哄簱璁板綍
+ ProcurementRecordOutAdd procurementRecordOutAdd = new ProcurementRecordOutAdd();
+ procurementRecordOutAdd.setId(procurementRecordStorage.getId());
+ procurementRecordOutAdd.setSalesLedgerProductId(Math.toIntExact(salesLedgerProduct.getId()));
+ procurementRecordOutAdd.setType(2);
+ procurementRecordOutAdd.setUserId(Math.toIntExact(getUserId()));
+ procurementRecordOutAdd.setQuantity(salesLedgerProduct.getQuantity().toPlainString());
+ procurementRecordOutAdd.setTime(LocalDate.now().toString());
+
+ procurementRecordOutService.stockout(procurementRecordOutAdd);
+ }
+
+ return AjaxResult.success();
+ }
+
+
+
+ /**
+ * 瀵煎嚭鍙戣揣淇℃伅绠$悊
+ */
+ @PostMapping("/export")
+ @ApiOperation("瀵煎嚭鍙戣揣瀹℃壒")
+ public void export(HttpServletResponse response) {
+ List<ShipmentApproval> list = shipmentApprovalService.list(null);
+ ExcelUtil<ShipmentApproval> util = new ExcelUtil<ShipmentApproval>(ShipmentApproval.class);
+ util.exportExcel(response, list, "鍙戣揣瀹℃壒");
+ }
+
+}
--
Gitblit v1.9.3