From 2f80b7085c4eabce06d3491306b75eecc275275f Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 30 四月 2026 17:31:57 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New_pro' into dev_New_pro

---
 src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java |  126 +++++++++++++++++++----------------------
 1 files changed, 58 insertions(+), 68 deletions(-)

diff --git a/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java b/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
index c498b93..49ef859 100644
--- a/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
+++ b/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
@@ -1,30 +1,30 @@
 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.approve.service.impl.ApproveProcessServiceImpl;
+import com.ruoyi.approve.bean.vo.ApproveProcessVO;
+import com.ruoyi.common.utils.OrderUtils;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.aspectj.lang.annotation.Log;
 import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
+import com.ruoyi.framework.security.LoginUser;
 import com.ruoyi.framework.web.controller.BaseController;
 import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.sales.mapper.ShipmentApprovalMapper;
+import com.ruoyi.sales.dto.ShippingInfoDto;
 import com.ruoyi.sales.mapper.ShippingInfoMapper;
-import com.ruoyi.sales.pojo.SalesLedger;
-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.ISalesLedgerService;
 import com.ruoyi.sales.service.ShippingInfoService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.apache.commons.collections4.CollectionUtils;
-import org.springframework.beans.factory.annotation.Autowired;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.AllArgsConstructor;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
-import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.time.LocalDate;
 import java.util.List;
 
 /**
@@ -33,100 +33,90 @@
  */
 @RestController
 @RequestMapping("/shippingInfo")
-@Api(tags = "鍙戣揣淇℃伅绠$悊")
+@Tag(name = "鍙戣揣淇℃伅绠$悊")
+@AllArgsConstructor
 public class ShippingInfoController extends BaseController {
 
-    @Autowired
     private ShippingInfoService shippingInfoService;
-    @Autowired
-    private ShipmentApprovalMapper shipmentApprovalMapper;
-    @Autowired
-    private ISalesLedgerProductService salesLedgerProductService;
+    private ApproveProcessServiceImpl approveProcessService;
+    private ShippingInfoMapper shippingInfoMapper;
 
 
     @GetMapping("/listPage")
-    @ApiOperation("鍙戣揣淇℃伅鍒楄〃")
+    @Operation(summary = "鍙戣揣淇℃伅鍒楄〃")
     public AjaxResult listPage(Page page, ShippingInfo req) {
-        IPage<ShippingInfo> listPage = shippingInfoService.listPage(page,req);
+        IPage<ShippingInfoDto> listPage = shippingInfoService.listPage(page,req);
         return AjaxResult.success(listPage);
     }
 
     @PostMapping("/add")
-    @ApiOperation("娣诲姞鍙戣揣淇℃伅")
+    @Operation(summary = "娣诲姞鍙戣揣淇℃伅")
     @Transactional(rollbackFor = Exception.class)
-    public AjaxResult add(@RequestBody ShippingInfo req) {
-        LambdaQueryWrapper<ShippingInfo> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(ShippingInfo::getSalesLedgerId, req.getSalesLedgerId());
-        wrapper.eq(ShippingInfo::getSalesLedgerProductId, req.getSalesLedgerProductId());
-        List<ShippingInfo> list = shippingInfoService.list(wrapper);
-        if(!CollectionUtils.isEmpty(list)){
-            return AjaxResult.error("鍙戣揣淇℃伅宸插瓨鍦�");
-        }
+    @Log(title = "鍙戣揣淇℃伅绠$悊", businessType = BusinessType.INSERT)
+    public AjaxResult add(@RequestBody ShippingInfoDto req) throws Exception {
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        String sh = OrderUtils.countTodayByCreateTime(shippingInfoMapper, "SH","shipping_no");
+        // 鍙戣揣瀹℃壒
+        ApproveProcessVO approveProcessVO = new ApproveProcessVO();
+        approveProcessVO.setApproveType(7);
+        approveProcessVO.setApproveDeptId(loginUser.getCurrentDeptId());
+        approveProcessVO.setApproveReason(req.getType() + ":" +sh);
+        approveProcessVO.setApproveUserIds(req.getApproveUserIds());
+        approveProcessVO.setApproveUser(loginUser.getUserId());
+        approveProcessVO.setApproveTime(LocalDate.now().toString());
+        approveProcessService.addApprove(approveProcessVO);
+        // 娣诲姞鍙戣揣娑堟伅
+        req.setShippingNo(sh);
+        req.setStatus("寰呭鏍�");
         boolean save = shippingInfoService.save(req);
-        if(save){
-            ShippingInfo shippingInfo = shippingInfoService.getOne(wrapper);
-            ShipmentApproval shipmentApproval = new ShipmentApproval();
-            shipmentApproval.setSalesLedgerId(req.getSalesLedgerId());
-            shipmentApproval.setSalesLedgerProductId(req.getSalesLedgerProductId());
-            shipmentApproval.setApproveUserId(req.getApproverId());
-            shipmentApproval.setApproveStatus(2);
-            shipmentApproval.setShippingInfoId(shippingInfo.getId());
-            shipmentApprovalMapper.insert(shipmentApproval);
-
-            SalesLedgerProduct salesLedgerProduct = salesLedgerProductService.getById(req.getSalesLedgerProductId());
-            if(salesLedgerProduct != null){
-                salesLedgerProduct.setApproveStatus(2);
-                salesLedgerProductService.updateById(salesLedgerProduct);
-            }
-
-        }
         return save ? AjaxResult.success() : AjaxResult.error();
     }
 
+    @Operation(summary = "鍙戣揣鎵e簱瀛�")
+    @PostMapping("/deductStock")
+    @Transactional(rollbackFor = Exception.class)
+    @Log(title = "鍙戣揣淇℃伅绠$悊", businessType = BusinessType.UPDATE)
+    public AjaxResult deductStock(@RequestBody ShippingInfoDto req) throws IOException {
+        return shippingInfoService.deductStock( req) ? AjaxResult.success() : AjaxResult.error();
+    }
+
     @PostMapping("/update")
-    @ApiOperation("淇敼鍙戣揣淇℃伅")
+    @Operation(summary = "淇敼鍙戣揣淇℃伅")
+    @Transactional(rollbackFor = Exception.class)
+    @Log(title = "鍙戣揣淇℃伅绠$悊", businessType = BusinessType.UPDATE)
     public AjaxResult update(@RequestBody ShippingInfo req) {
         ShippingInfo byId = shippingInfoService.getById(req.getId());
         if (byId == null) {
             return AjaxResult.error("鍙戣揣淇℃伅涓嶅瓨鍦�");
-        }
-        Long userId = getLoginUser().getUserId();
-        if(!userId.equals(Long.parseLong(byId.getCreateUser().toString()))){
-            return AjaxResult.error("鎮ㄦ病鏈夋潈闄愪慨鏀规鍙戣揣淇℃伅");
         }
         boolean update = shippingInfoService.updateById(req);
         return update ? AjaxResult.success() : AjaxResult.error();
     }
 
     @DeleteMapping("/delete")
-    @ApiOperation("鍒犻櫎鍙戣揣淇℃伅")
+    @Operation(summary = "鍒犻櫎鍙戣揣淇℃伅")
+    @Transactional(rollbackFor = Exception.class)
+    @Log(title = "鍙戣揣淇℃伅绠$悊", businessType = BusinessType.DELETE)
     public AjaxResult delete(@RequestBody List<Long> ids) {
-        Long userId = getLoginUser().getUserId();
-        ids.forEach(id -> {
-            ShippingInfo byId = shippingInfoService.getById(id);
-            if (byId == null) {
-                throw new RuntimeException("鍙戣揣淇℃伅涓嶅瓨鍦�");
-            }
-            if(!userId.equals(Long.parseLong(byId.getCreateUser().toString()))){
-                throw new RuntimeException("鎮ㄦ病鏈夋潈闄愬垹闄ゆ鍙戣揣淇℃伅");
-            }
-        });
-        boolean delete = shippingInfoService.removeBatchByIds(ids);
-        return delete ? AjaxResult.success("鍒犻櫎鎴愬姛") : AjaxResult.error("鍒犻櫎澶辫触");
-    }
 
-    @Autowired
-    private ShippingInfoMapper shippingInfoMapper;
+        return shippingInfoService.delete(ids) ? AjaxResult.success("鍒犻櫎鎴愬姛") : AjaxResult.error("鍒犻櫎澶辫触");
+    }
 
     /**
      * 瀵煎嚭鍙戣揣淇℃伅绠$悊
      */
     @PostMapping("/export")
-    @ApiOperation("瀵煎嚭鍙戣揣淇℃伅")
+    @Operation(summary = "瀵煎嚭鍙戣揣淇℃伅")
     public void export(HttpServletResponse response) {
         List<ShippingInfo> list = shippingInfoMapper.listAll();
         ExcelUtil<ShippingInfo> util = new ExcelUtil<ShippingInfo>(ShippingInfo.class);
         util.exportExcel(response, list, "鍙戣揣淇℃伅");
     }
 
+
+    @GetMapping("/getByCustomerName")
+    @Operation(summary = "閫氳繃瀹㈡埛鍚嶇О鏌ヨ")
+    public AjaxResult getByCustomerName(String customerName) {
+        return AjaxResult.success(shippingInfoService.getShippingInfoByCustomerName(customerName));
+    }
 }

--
Gitblit v1.9.3