From 6d8e9ef3653639275d262a975ad477fa0bf5e366 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期一, 30 三月 2026 10:51:53 +0800
Subject: [PATCH] fix: 加工编号缺失,发货修改为整个订单发货
---
src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java | 136 +++++++++++++++++++++++++++++++++++++++------
1 files changed, 118 insertions(+), 18 deletions(-)
diff --git a/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java b/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
index 56b3e15..1be6dce 100644
--- a/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
+++ b/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
@@ -1,22 +1,44 @@
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.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 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.ArrayList;
import java.util.List;
/**
@@ -31,31 +53,111 @@
@Autowired
private ShippingInfoService shippingInfoService;
+ // @Autowired
+ // private CommonFileServiceImpl commonFileService;
+
+ // @Autowired
+ // private ApproveProcessServiceImpl approveProcessService;
+
+ // @Autowired
+ // private StockUtils stockUtils;
+
+ @Autowired
+ private ISalesLedgerProductService salesLedgerProductService;
+
+ @Autowired
+ private ISalesLedgerService salesLedgerService;
+
@GetMapping("/listPage")
@ApiOperation("鍙戣揣淇℃伅鍒楄〃")
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("娣诲姞鍙戣揣淇℃伅")
- public AjaxResult add(@RequestBody ShippingInfo req) {
+ @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");
+
+ /* // 鍘熸湁鐨勫崟浜у搧鍙戣揣鍙婂鎵归�昏緫
+ // 鍙戣揣瀹℃壒
+ 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();
+ */
+
+ // 鎸夋暣涓鍗曞彂璐э紝涓嶉渶瀹℃壒
+ if (req.getSalesLedgerId() == null) {
+ return AjaxResult.error("璇烽�夋嫨鍙戣揣璁㈠崟");
+ }
+
+ // 鑾峰彇璇ヨ鍗曚笅鐨勬墍鏈変骇鍝�
+ SalesLedgerProduct query = new SalesLedgerProduct();
+ query.setSalesLedgerId(req.getSalesLedgerId());
+ List<SalesLedgerProduct> productList = salesLedgerProductService.selectSalesLedgerProductList(query);
+
+ if (CollectionUtils.isEmpty(productList)) {
+ return AjaxResult.error("璇ヨ鍗曚笅鏃犲緟鍙戣揣浜у搧");
+ }
+
+ // 涓烘瘡涓骇鍝佸垱寤哄彂璐т俊鎭�
+ List<ShippingInfo> shippingInfoList = new ArrayList<>();
+ for (SalesLedgerProduct product : productList) {
+ ShippingInfo shippingInfo = new ShippingInfo();
+ shippingInfo.setSalesLedgerId(req.getSalesLedgerId());
+ shippingInfo.setSalesLedgerProductId(product.getId());
+ shippingInfo.setShippingNo(sh);
+ shippingInfo.setStatus("瀹℃牳閫氳繃"); // 鐩存帴璁句负瀹℃牳閫氳繃锛岃烦杩囧鎵�
+ shippingInfo.setType(req.getType());
+ shippingInfo.setExpressCompany(req.getExpressCompany());
+ shippingInfo.setExpressNumber(req.getExpressNumber());
+ shippingInfo.setShippingDate(req.getShippingDate());
+ shippingInfo.setShippingCarNumber(req.getShippingCarNumber());
+ shippingInfoList.add(shippingInfo);
+ }
+
+ boolean save = shippingInfoService.saveBatch(shippingInfoList);
+ if (save) {
+ // 鏇存柊閿�鍞彴璐︾殑鍙戣揣鐘舵�佷负宸插彂璐�
+ SalesLedger salesLedger = new SalesLedger();
+ salesLedger.setId(req.getSalesLedgerId());
+ salesLedger.setDeliveryStatus(1);
+ salesLedgerService.updateById(salesLedger);
+ }
+ return save ? AjaxResult.success() : AjaxResult.error();
+ }
+
+ @ApiOperation("鍙戣揣鎵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("淇敼鍙戣揣淇℃伅")
+ @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();
@@ -63,19 +165,11 @@
@DeleteMapping("/delete")
@ApiOperation("鍒犻櫎鍙戣揣淇℃伅")
+ @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("鍒犻櫎澶辫触");
+
+ return shippingInfoService.delete(ids) ? AjaxResult.success("鍒犻櫎鎴愬姛") : AjaxResult.error("鍒犻櫎澶辫触");
}
@Autowired
@@ -92,4 +186,10 @@
util.exportExcel(response, list, "鍙戣揣淇℃伅");
}
+
+ @GetMapping("/getByCustomerName")
+ @ApiOperation("閫氳繃瀹㈡埛鍚嶇О鏌ヨ")
+ public AjaxResult getByCustomerName(String customerName) {
+ return AjaxResult.success(shippingInfoService.getShippingInfoByCustomerName(customerName));
+ }
}
--
Gitblit v1.9.3