From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master
---
jnpf-lims/jnpf-lims-controller/src/main/java/jnpf/controller/ProductController.java | 178 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 178 insertions(+), 0 deletions(-)
diff --git a/jnpf-lims/jnpf-lims-controller/src/main/java/jnpf/controller/ProductController.java b/jnpf-lims/jnpf-lims-controller/src/main/java/jnpf/controller/ProductController.java
new file mode 100644
index 0000000..68b8292
--- /dev/null
+++ b/jnpf-lims/jnpf-lims-controller/src/main/java/jnpf/controller/ProductController.java
@@ -0,0 +1,178 @@
+package jnpf.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import io.swagger.v3.oas.annotations.Parameter;
+import jnpf.base.controller.SuperController;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import jnpf.base.ActionResult;
+import jnpf.base.vo.ListVO;
+import jnpf.base.vo.PageListVO;
+import jnpf.base.vo.PaginationVO;
+import jnpf.constant.MsgCode;
+import jnpf.entity.ProductEntity;
+import jnpf.entity.ProductEntryEntity;
+import jnpf.exception.DataException;
+import jnpf.model.product.*;
+import jnpf.model.productentry.ProductEntryInfoVO;
+import jnpf.model.productentry.ProductEntryListVO;
+import jnpf.model.productentry.ProductEntryMdoel;
+import jnpf.service.ProductEntryService;
+import jnpf.service.ProductService;
+import jnpf.util.JsonUtil;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import jakarta.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+/**
+ * 閿�鍞鍗�
+ *
+ * @鐗堟湰锛� V3.1.0
+ * @鐗堟潈锛� 寮曡繄淇℃伅鎶�鏈湁闄愬叕鍙革紙https://www.jnpfsoft.com锛�
+ * @浣滆�咃細 JNPF寮�鍙戝钩鍙扮粍
+ * @鏃ユ湡锛� 2021-07-10 10:40:59
+ */
+@Slf4j
+@RestController
+@Tag(name = "閿�鍞鍗�", description = "Product")
+@RequestMapping("/saleOrder/Product")
+@RequiredArgsConstructor
+public class ProductController extends SuperController<ProductService, ProductEntity> {
+
+ private final ProductService productService;
+
+ private final ProductEntryService productEntryService;
+
+ private final Random random = new Random();
+
+ /**
+ * 鍒楄〃
+ *
+ * @param productPagination 鍒嗛〉妯″瀷
+ * @return
+ */
+ @Operation(summary = "鍒楄〃")
+ @GetMapping
+ @SaCheckPermission("extend.orderDemo")
+ public ActionResult<PageListVO<ProductListVO>> list(ProductPagination productPagination) {
+ List<ProductEntity> list = productService.getList(productPagination);
+ List<ProductListVO> listVO = JsonUtil.getJsonToList(list, ProductListVO.class);
+ PageListVO<ProductListVO> vo = new PageListVO<>();
+ vo.setList(listVO);
+ PaginationVO page = JsonUtil.getJsonToBean(productPagination, PaginationVO.class);
+ vo.setPagination(page);
+ return ActionResult.success(vo);
+ }
+
+ /**
+ * 鍒涘缓
+ *
+ * @param productCrForm 閿�鍞ā鍨�
+ * @return
+ */
+ @Operation(summary = "鍒涘缓")
+ @PostMapping
+ @Parameter(name = "productCrForm", description = "閿�鍞ā鍨�", required = true)
+ @SaCheckPermission("extend.orderDemo")
+ public ActionResult<Object> create(@RequestBody @Valid ProductCrForm productCrForm) throws DataException {
+ ProductEntity entity = JsonUtil.getJsonToBean(productCrForm, ProductEntity.class);
+ List<ProductEntryEntity> productEntryList = JsonUtil.getJsonToList(productCrForm.getProductEntryList(), ProductEntryEntity.class);
+ productService.create(entity, productEntryList);
+ return ActionResult.success(MsgCode.SU001.get());
+ }
+
+ /**
+ * 淇℃伅
+ *
+ * @param id 涓婚敭
+ * @return
+ */
+ @Operation(summary = "淇℃伅")
+ @GetMapping("/{id}")
+ @Parameter(name = "id", description = "涓婚敭", required = true)
+ @SaCheckPermission("extend.orderDemo")
+ public ActionResult<ProductInfoVO> info(@PathVariable("id") String id) {
+ ProductEntity entity = productService.getInfo(id);
+ ProductInfoVO vo = JsonUtil.getJsonToBean(entity, ProductInfoVO.class);
+ List<ProductEntryEntity> productEntryList = productEntryService.getProductentryEntityList(id);
+ List<ProductEntryInfoVO> productList = JsonUtil.getJsonToList(productEntryList, ProductEntryInfoVO.class);
+ vo.setProductEntryList(productList);
+ return ActionResult.success(vo);
+ }
+
+ /**
+ * 鏇存柊
+ *
+ * @param productUpForm 閿�鍞ā鍨�
+ * @param id 涓婚敭
+ * @return
+ */
+ @Operation(summary = "鏇存柊")
+ @PutMapping("/{id}")
+ @Parameter(name = "id", description = "涓婚敭", required = true)
+ @Parameter(name = "productUpForm", description = "閿�鍞ā鍨�", required = true)
+ @SaCheckPermission("extend.orderDemo")
+ public ActionResult<Object> update(@PathVariable("id") String id, @RequestBody @Valid ProductUpForm productUpForm) {
+ ProductEntity entity = productService.getInfo(id);
+ if (entity != null) {
+ List<ProductEntryEntity> productEntryList = JsonUtil.getJsonToList(productUpForm.getProductEntryList(), ProductEntryEntity.class);
+ productService.update(id, entity, productEntryList);
+ return ActionResult.success(MsgCode.SU004.get());
+ } else {
+ return ActionResult.fail(MsgCode.FA002.get());
+ }
+ }
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param id 涓婚敭
+ * @return
+ */
+ @Operation(summary = "鍒犻櫎")
+ @DeleteMapping("/{id}")
+ @Parameter(name = "id", description = "涓婚敭", required = true)
+ @SaCheckPermission("extend.orderDemo")
+ public ActionResult<Object> delete(@PathVariable("id") String id) {
+ ProductEntity entity = productService.getInfo(id);
+ if (entity != null) {
+ productService.delete(entity);
+ }
+ return ActionResult.success(MsgCode.SU003.get());
+ }
+
+ /**
+ * 鑾峰彇閿�鍞骇鍝佹槑缁�
+ *
+ * @param id 涓婚敭
+ * @return
+ */
+ @Operation(summary = "鑾峰彇閿�鍞槑缁�")
+ @GetMapping("/ProductEntry/{id}")
+ @Parameter(name = "id", description = "涓婚敭", required = true)
+ @SaCheckPermission("extend.orderDemo")
+ public ActionResult<ListVO<ProductEntryListVO>> ProductEntryList(@PathVariable("id") String id) {
+ String data = "[{\"id\":\"37c995b4044541009fb7e285bcf9845d\",\"productSpecification\":\"120ml\",\"qty\":16,\"money\":510,\"price\":120,\"commandType\":\"鍞竴鐮乗",\"util\":\"鐩抃"},{\"id\":\"2dbb11d3cde04c299985ac944d130ba0\",\"productSpecification\":\"150ml\",\"qty\":15,\"money\":520,\"price\":310,\"commandType\":\"鍞竴鐮乗",\"util\":\"鐩抃"},{\"id\":\"f8ec261ccdf045e5a2e1f0e5485cda76\",\"productSpecification\":\"40ml\",\"qty\":13,\"money\":530,\"price\":140,\"commandType\":\"鍞竴鐮乗",\"util\":\"鐩抃"},{\"id\":\"6c110b57ae56445faa8ce9be501c8997\",\"productSpecification\":\"103ml\",\"qty\":2,\"money\":504,\"price\":150,\"commandType\":\"鍞竴鐮乗",\"util\":\"鐩抃"},{\"id\":\"f2ee981aaf934147a4d090a0eed2203f\",\"productSpecification\":\"120ml\",\"qty\":21,\"money\":550,\"price\":160,\"commandType\":\"鍞竴鐮乗",\"util\":\"鐩抃"}]";
+ List<ProductEntryMdoel> dataAll = JsonUtil.getJsonToList(data, ProductEntryMdoel.class);
+ List<ProductEntryEntity> productEntryList = productEntryService.getProductentryEntityList(id);
+ List<ProductEntryListVO> productList = JsonUtil.getJsonToList(productEntryList, ProductEntryListVO.class);
+ for (ProductEntryListVO entry : productList) {
+ List<ProductEntryMdoel> dataList = new ArrayList<>();
+
+ int num = random.nextInt(dataAll.size());
+ for (int i = 0; i < num; i++) {
+ dataList.add(dataAll.get(num));
+ }
+ entry.setDataList(dataList);
+ }
+ ListVO<ProductEntryListVO> vo = new ListVO<>();
+ vo.setList(productList);
+ return ActionResult.success(vo);
+ }
+
+}
--
Gitblit v1.8.0