From a76e1d17d67641993dea6335cb8e1465a94df58d Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 21 五月 2026 15:39:05 +0800
Subject: [PATCH] feat(stock): 优化库存管理和成品树结构功能 1- 为ApproveProcessMapper.xml和ProductBomMapper.xml添加排序功能 2- 在ProductionProductMainDto中新增bomInputQty字段用于产品结构投入数量 3- 修改ProductionProductMainServiceImpl中投入数量计算逻辑,使用前端传入的bomInputQty值 4- 在ProductWorkOrderDto中添加bomInputQty字段并在服务实现中计算标准投入数量 5- 更新SalesLedgerMapper.xml查询逻辑,从product_summary获取电压信息 6- 为SalesLedgerProduct添加stockId字段并修改库存扣减逻辑使用具体库存ID 7- 重构StockInventoryController中的成品库存树查询接口和导入导出功能 8- 新增成品和非成品库存导入导出的数据模型和Excel工具类 9- 优化StockInventoryServiceImpl中的库存扣减逻辑,支持按特定库存ID操作 10- 更新库存导入导出功能,区分成品和非成品类型并提供相应模板
---
src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java | 100 +++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 94 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java b/src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java
index 7580833..baefa12 100644
--- a/src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java
+++ b/src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java
@@ -8,13 +8,25 @@
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.framework.web.page.TableDataInfo;
+import com.ruoyi.purchase.dto.PaymentRegistrationDto;
+import com.ruoyi.purchase.dto.ProductRecordDto;
import com.ruoyi.purchase.dto.TicketRegistrationDto;
+import com.ruoyi.purchase.pojo.PaymentRegistration;
import com.ruoyi.purchase.pojo.ProductRecord;
import com.ruoyi.purchase.pojo.TicketRegistration;
+import com.ruoyi.purchase.service.IPaymentRegistrationService;
import com.ruoyi.purchase.service.IProductRecordService;
import com.ruoyi.purchase.service.ITicketRegistrationService;
+import com.ruoyi.purchase.service.impl.PaymentRegistrationServiceImpl;
import com.ruoyi.sales.service.ICommonFileService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.core.parameters.P;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -31,13 +43,18 @@
@RestController
@RequestMapping("/purchase/registration")
@AllArgsConstructor
+@Api(tags = "鏉ョエ鐧昏")
public class TicketRegistrationController extends BaseController {
+ private final PaymentRegistrationServiceImpl paymentRegistrationServiceImpl;
private ITicketRegistrationService ticketRegistrationService;
private ICommonFileService commonFileService;
private IProductRecordService productRecordService;
+
+ @Autowired
+ private IPaymentRegistrationService paymentRegistrationService;
/**
* 鏌ヨ鏉ョエ鐧昏鍒楄〃
@@ -49,6 +66,33 @@
return getDataTable(list);
}
+ @ApiOperation("鏍规嵁id鏌ヨ浠樻娴佹按淇℃伅")
+ @GetMapping("/getById")
+ public List<PaymentRegistrationDto> getById( Long id ) {
+ return ticketRegistrationService.getPaymentRegistrationDtoById(id);
+ }
+
+ @ApiOperation("鏍规嵁id鏌ヨ浠樻娴佹按")
+ @GetMapping("/getPaymentRegistrationById")
+ public AjaxResult getPaymentRegistrationById(Long id) {
+ PaymentRegistration byId = paymentRegistrationService.getById(id);
+ return AjaxResult.success(byId);
+ }
+
+ @ApiOperation("淇敼浠樻娴佹按")
+ @PutMapping("/updatePaymentRegistration")
+ @Log(title = "淇敼浠樻娴佹按", businessType = BusinessType.UPDATE)
+ public AjaxResult updatePaymentRegistration(@RequestBody PaymentRegistration paymentRegistratio) {
+ return AjaxResult.success(paymentRegistrationService.updatePaymentRegistration(paymentRegistratio));
+ }
+
+ @ApiOperation("鍒犻櫎浠樻娴佹按")
+ @DeleteMapping("/delPaymentRegistration")
+ @Transactional(rollbackFor = Exception.class)
+ public AjaxResult delPaymentRegistration(@RequestBody List<Long> id) {
+ return toAjax(paymentRegistrationService.delPaymentRegistration(id));
+ }
+
/**
* 瀵煎嚭鏉ョエ鐧昏鍒楄〃
*/
@@ -58,6 +102,18 @@
List<TicketRegistration> list = ticketRegistrationService.selectTicketRegistrationList(ticketRegistration);
ExcelUtil<TicketRegistration> util = new ExcelUtil<TicketRegistration>(TicketRegistration.class);
util.exportExcel(response, list, "鏉ョエ鐧昏鏁版嵁");
+ }
+
+ /**
+ * 浠樻鐧昏瀵煎嚭
+ */
+ @Log(title = "浠樻鐧昏瀵煎嚭", businessType = BusinessType.EXPORT)
+ @PostMapping("/exportOne")
+ public void exportOne(HttpServletResponse response, TicketRegistration ticketRegistration) {
+ Page page = new Page<>(-1, -1);
+ IPage<TicketRegistration> ticketRegistrationIPage = listPage(page, ticketRegistration);
+ ExcelUtil<TicketRegistration> util = new ExcelUtil<TicketRegistration>(TicketRegistration.class);
+ util.exportExcel(response, ticketRegistrationIPage.getRecords(), "浠樻鐧昏瀵煎嚭");
}
/**
@@ -73,21 +129,43 @@
*/
@Log(title = "鏉ョエ鐧昏", businessType = BusinessType.INSERT)
@PostMapping("/addOrUpdateRegistration")
- public AjaxResult addOrUpdateRegistration(@RequestBody TicketRegistrationDto ticketRegistrationDto) throws IOException {
- return toAjax(ticketRegistrationService.addOrUpdateRegistration(ticketRegistrationDto));
+ @Transactional(rollbackFor = Exception.class)
+ public AjaxResult addOrUpdateRegistration(@RequestBody List<TicketRegistrationDto> ticketRegistrationDto) throws IOException {
+ if(CollectionUtils.isEmpty(ticketRegistrationDto)) return AjaxResult.error("璇烽�夋嫨瑕佷繚瀛樼殑璁板綍");
+ for (TicketRegistrationDto ticketRegistrationDto1 : ticketRegistrationDto) {
+ ticketRegistrationService.addOrUpdateRegistration(ticketRegistrationDto1);
+ }
+ return toAjax(1);
+ }
+
+
+ @PostMapping("/getProductRecordById")
+ public AjaxResult getProductRecordById(@RequestBody ProductRecordDto productRecordDto) {
+ if (productRecordDto.getId() == null) {
+ return AjaxResult.error("鍙傛暟閿欒");
+ }
+ return AjaxResult.success(productRecordService.getProductRecordById(productRecordDto));
+ }
+
+ @ApiModelProperty("淇敼鏉ョエ鐧昏")
+ @PostMapping("/updateRegistration")
+ public AjaxResult updateRegistration(@RequestBody ProductRecordDto productRecordDto) {
+
+ return productRecordService.updateRecord(productRecordDto);
}
/**
- * 鍒犻櫎鏉ョエ鐧昏
+ * 鍒犻櫎鏉ョエ鐧昏(鏉ョエ鍙拌处)
*/
- @Log(title = "鏉ョエ鐧昏", businessType = BusinessType.DELETE)
+ @Log(title = "鍒犻櫎鏉ョエ鐧昏(鏉ョエ鍙拌处)", businessType = BusinessType.DELETE)
@DeleteMapping("/delRegistration")
+ @Transactional(rollbackFor = Exception.class)
public AjaxResult delRegistration(@RequestBody Long[] ids) {
return toAjax(ticketRegistrationService.delRegistration(ids));
}
@PostMapping("/upload")
- public AjaxResult uploadFile(MultipartFile file, Long id, String type) {
+ public AjaxResult uploadFile(MultipartFile file, Long id, Integer type) {
try {
return AjaxResult.success(commonFileService.uploadFile(file, id, type));
} catch (Exception e) {
@@ -109,7 +187,8 @@
*/
@GetMapping("/productRecordPage")
public AjaxResult productRecordPage(Page page, TicketRegistrationDto ticketRegistrationDto) {
- IPage<ProductRecord> list = productRecordService.productRecordPage(page,ticketRegistrationDto);
+
+ IPage<ProductRecordDto> list = productRecordService.productRecordPage(page,ticketRegistrationDto);
return AjaxResult.success(list);
}
@@ -128,4 +207,13 @@
public IPage<TicketRegistration> listPage(Page page, TicketRegistration ticketRegistration) {
return ticketRegistrationService.selectTicketRegistrationListPage(page,ticketRegistration);
}
+
+ @ApiModelProperty("鏍规嵁id鏌ヨ鏉ユ紓鐧昏")
+ @GetMapping("/getPuargeById")
+ public AjaxResult getPuargeById(Long id) {
+ return AjaxResult.success(ticketRegistrationService.getPuargeById( id));
+ }
+
+
+
}
--
Gitblit v1.9.3