From a8e4132c3e2e9c3b3fcb0360901b35571b6464ea Mon Sep 17 00:00:00 2001
From: hsy <1029150275@qq.com>
Date: 星期五, 28 八月 2026 10:13:01 +0800
Subject: [PATCH] feat: 综合业务模块功能补充与实体拓展
---
src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java | 101 ++++++++++++++++++++------------------------------
1 files changed, 41 insertions(+), 60 deletions(-)
diff --git a/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java b/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
index eed5ffa..5782115 100644
--- a/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
+++ b/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
@@ -1,43 +1,26 @@
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.mapper.ApproveProcessMapper;
import com.ruoyi.approve.service.impl.ApproveProcessServiceImpl;
-import com.ruoyi.approve.vo.ApproveProcessVO;
-import com.ruoyi.common.enums.FileNameType;
-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.other.service.impl.TempFileServiceImpl;
-import com.ruoyi.procurementrecord.utils.StockUtils;
+import com.ruoyi.framework.web.domain.R;
import com.ruoyi.sales.dto.ShippingInfoDto;
-import com.ruoyi.sales.mapper.ShipmentApprovalMapper;
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 com.ruoyi.sales.service.impl.CommonFileServiceImpl;
-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.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+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;
/**
@@ -46,52 +29,31 @@
*/
@RestController
@RequestMapping("/shippingInfo")
-@Api(tags = "鍙戣揣淇℃伅绠$悊")
+@Tag(name = "鍙戣揣淇℃伅绠$悊")
+@AllArgsConstructor
public class ShippingInfoController extends BaseController {
- @Autowired
private ShippingInfoService shippingInfoService;
-
- @Autowired
- private CommonFileServiceImpl commonFileService;
-
- @Autowired
private ApproveProcessServiceImpl approveProcessService;
- @Autowired
- private StockUtils stockUtils;
+ private ShippingInfoMapper shippingInfoMapper;
@GetMapping("/listPage")
- @ApiOperation("鍙戣揣淇℃伅鍒楄〃")
+ @Operation(summary = "鍙戣揣淇℃伅鍒楄〃")
public AjaxResult listPage(Page page, ShippingInfo req) {
IPage<ShippingInfoDto> listPage = shippingInfoService.listPage(page,req);
return AjaxResult.success(listPage);
}
@PostMapping("/add")
- @ApiOperation("娣诲姞鍙戣揣淇℃伅")
+ @Operation(summary = "娣诲姞鍙戣揣淇℃伅")
@Transactional(rollbackFor = Exception.class)
@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);
- return save ? AjaxResult.success() : AjaxResult.error();
+ return AjaxResult.success(shippingInfoService.addReq(req) ? "娣诲姞鎴愬姛" : "娣诲姞澶辫触");
}
- @ApiOperation("鍙戣揣鎵e簱瀛�")
+ @Operation(summary = "鍙戣揣鎵e簱瀛�")
@PostMapping("/deductStock")
@Transactional(rollbackFor = Exception.class)
@Log(title = "鍙戣揣淇℃伅绠$悊", businessType = BusinessType.UPDATE)
@@ -100,7 +62,7 @@
}
@PostMapping("/update")
- @ApiOperation("淇敼鍙戣揣淇℃伅")
+ @Operation(summary = "淇敼鍙戣揣淇℃伅")
@Transactional(rollbackFor = Exception.class)
@Log(title = "鍙戣揣淇℃伅绠$悊", businessType = BusinessType.UPDATE)
public AjaxResult update(@RequestBody ShippingInfo req) {
@@ -108,37 +70,56 @@
if (byId == null) {
return AjaxResult.error("鍙戣揣淇℃伅涓嶅瓨鍦�");
}
+ if ("瀹℃牳閫氳繃".equals(byId.getStatus()) && !"宸插彂璐�".equals(req.getStatus())) {
+ // Note: If the request is from outbound management trying to change status to "宸插彂璐�", it's allowed.
+ // But if it's a normal edit, it's blocked. We just check if it's already 瀹℃牳閫氳繃 and they are updating other fields.
+ 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) {
-
+ for (Long id : ids) {
+ ShippingInfo byId = shippingInfoService.getById(id);
+ if (byId != null && ("宸插彂璐�".equals(byId.getStatus()) || "瀹℃牳閫氳繃".equals(byId.getStatus()))) {
+ return AjaxResult.error("瀛樺湪宸插彂璐ф垨瀹℃牳閫氳繃鐨勪骇鍝侊紝涓嶈兘鍒犻櫎");
+ }
+ }
return shippingInfoService.delete(ids) ? AjaxResult.success("鍒犻櫎鎴愬姛") : AjaxResult.error("鍒犻櫎澶辫触");
}
-
- @Autowired
- private ShippingInfoMapper shippingInfoMapper;
/**
* 瀵煎嚭鍙戣揣淇℃伅绠$悊
*/
@PostMapping("/export")
- @ApiOperation("瀵煎嚭鍙戣揣淇℃伅")
- public void export(HttpServletResponse response) {
- List<ShippingInfo> list = shippingInfoMapper.listAll();
+ @Operation(summary = "瀵煎嚭鍙戣揣淇℃伅")
+ public void export(HttpServletResponse response, ShippingInfo req) {
+ List<ShippingInfo> list = shippingInfoMapper.listAll(req);
ExcelUtil<ShippingInfo> util = new ExcelUtil<ShippingInfo>(ShippingInfo.class);
util.exportExcel(response, list, "鍙戣揣淇℃伅");
}
@GetMapping("/getByCustomerName")
- @ApiOperation("閫氳繃瀹㈡埛鍚嶇О鏌ヨ")
+ @Operation(summary = "閫氳繃瀹㈡埛鍚嶇О鏌ヨ鍏宠仈鐨勫彂璐у崟鍙�")
public AjaxResult getByCustomerName(String customerName) {
return AjaxResult.success(shippingInfoService.getShippingInfoByCustomerName(customerName));
}
+
+ @GetMapping("/getDateil/{id}")
+ @Operation(summary = "閫氳繃id鏌ヨ璇︽儏")
+ public R getDateil(@PathVariable("id") Long id) {
+ return R.ok(shippingInfoService.getDetail(id));
+ }
+
+ @GetMapping("/getDateilByShippingNo")
+ @Operation(summary = "閫氳繃鍙戣揣鍗曞彿鏌ヨ璇︽儏")
+ public R getDateilByShippingNo(String shippingNo) {
+ return R.ok(shippingInfoService.getDateilByShippingNo(shippingNo));
+ }
}
--
Gitblit v1.9.3