From 45847670fea5d7354c2bfb4b53a321887271dcd4 Mon Sep 17 00:00:00 2001
From: shiyunteng <shiyunteng@example.com>
Date: 星期四, 11 六月 2026 17:26:00 +0800
Subject: [PATCH] feat:产品页面体验优化
---
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ProductServiceImpl.java | 8 ++++
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ProductController.java | 9 +++-
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ProductService.java | 2 +
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractInvoiceServiceImpl.java | 40 ++++++++++++--------
platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/Product.java | 10 ++---
platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/vo/ProductTreeVo.java | 16 ++++++++
6 files changed, 61 insertions(+), 24 deletions(-)
diff --git a/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/Product.java b/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/Product.java
index 530d04a..f38ec7e 100644
--- a/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/Product.java
+++ b/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/Product.java
@@ -7,20 +7,18 @@
import jakarta.persistence.Entity;
import jakarta.persistence.Transient;
import lombok.Data;
-import org.hibernate.annotations.Comment;
-import jakarta.persistence.Table;
import java.util.List;
/**
- * @author wjli
+ * @author
* @description
* @date 2026/4/29 10:51
**/
@Data
-@Entity
-@Table(name = "product")
-@Comment("浜у搧淇℃伅")
+@Entity//鍔犱簡鎵嶈兘鑷姩鐢熸垚琛�
+@org.hibernate.annotations.Table(appliesTo="product",comment = "浜у搧")//缁欒〃鍔犳敞閲�
+@jakarta.persistence.Table(name = "product")//鏁版嵁搴撳垱寤虹殑琛ㄦ槑
public class Product extends BaseModel<Product> {
//浜у搧鍚嶇О銆佷骇鍝佺紪鐮侊紙涓绘暟鎹�丒RP锛夈�佷骇鍝佷环鏍笺�佺◣鐐广�佹墍灞炰笂绾�
diff --git a/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/vo/ProductTreeVo.java b/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/vo/ProductTreeVo.java
new file mode 100644
index 0000000..9a2bed2
--- /dev/null
+++ b/platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/vo/ProductTreeVo.java
@@ -0,0 +1,16 @@
+package com.by4cloud.platformx.business.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Data
+public class ProductTreeVo {
+
+ private Long id;
+
+ @Schema(description = "浜у搧鍚嶇О")
+ private String productName;
+
+ private Long parentId;
+
+}
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ProductController.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ProductController.java
index a56adf7..d3c0ffa 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ProductController.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ProductController.java
@@ -1,11 +1,14 @@
package com.by4cloud.platformx.business.controller;
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.by4cloud.platformx.business.vo.ProductTreeVo;
import com.by4cloud.platformx.common.core.util.R;
import com.by4cloud.platformx.common.log.annotation.SysLog;
import com.by4cloud.platformx.business.entity.Product;
@@ -95,8 +98,7 @@
LambdaQueryWrapper<Product> wrapper = Wrappers.lambdaQuery();
wrapper.like(StrUtil.isNotEmpty(product.getProductName()),Product::getProductName,product.getProductName());
wrapper.eq(product.getParentId()!=null,Product::getParentId,product.getParentId());
- wrapper.last("limit 30");
- return R.ok(productService.listByScope(wrapper));
+ return R.ok(BeanUtil.copyToList(productService.listByScope(wrapper), ProductTreeVo.class));
}
/**
@@ -135,6 +137,9 @@
@PostMapping
@PreAuthorize("@pms.hasPermission('business_product_add')" )
public R save(@RequestBody Product product) {
+ if (ArrayUtil.isNotEmpty(productService.listByScope(Wrappers.lambdaQuery(product).eq(Product::getErpCode,product.getErpCode())).toArray())){
+ return R.failed("浜у搧Erp缂栫爜宸插瓨鍦�");
+ }
return R.ok(productService.save(product));
}
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ProductService.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ProductService.java
index bcd5860..476912f 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ProductService.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ProductService.java
@@ -3,6 +3,7 @@
import cn.hutool.core.lang.tree.Tree;
import com.baomidou.mybatisplus.extension.service.IService;
import com.by4cloud.platformx.business.entity.Product;
+import com.by4cloud.platformx.common.core.util.R;
import com.by4cloud.platformx.common.data.mybatis.IIService;
import java.util.List;
@@ -12,4 +13,5 @@
List<Tree<Long>> treeList(Long parentId, String productName);
List<Product> getProductList(Product product);
+
}
\ No newline at end of file
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractInvoiceServiceImpl.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractInvoiceServiceImpl.java
index 675e5aa..b3e084a 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractInvoiceServiceImpl.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractInvoiceServiceImpl.java
@@ -627,11 +627,12 @@
}
}
}
- //鏇存柊鍚堝悓寮�绁ㄧ姸鎬�
- contract.setBillingStatus("2");
- contract.setBillingAmout(contract.getBillingAmout().subtract(invoice.getInvoiceTotalPriceTax()));
- contractMapper.updateById(contract);
-
+ //鏇存柊鍚堝悓寮�绁ㄧ姸鎬� 鍓嶆彁鍑哄簱瀹屾垚
+ if (StrUtil.equals(contract.getBillingStatus(),"3")) {
+ contract.setBillingStatus("2");
+ contract.setBillingAmout(contract.getBillingAmout().subtract(invoice.getInvoiceTotalPriceTax()));
+ contractMapper.updateById(contract);
+ }
blueInvoice.setRedReversal("1");
baseMapper.updateById(blueInvoice);
@@ -652,18 +653,25 @@
@Override
public void refuseApproval(Long id) {
ContractInvoice invoice = baseMapper.selectById(id);
- //鏇存柊鍚堝悓鍑哄簱鍗曠姸鎬�
- String[] outBoundIds = invoice.getOutBoundId().split(",");
- Arrays.stream(outBoundIds).forEach(outBoundId -> {
- ContractOutBound bound = contractOutBoundMapper.selectById(outBoundId);
- bound.setInvoiceStatus("0");
- contractOutBoundMapper.updateById(bound);
- });
invoice.setApprovalStatus("2");
baseMapper.updateById(invoice);
-
- ContractInvoice blueInvoice = baseMapper.selectById(invoice.getBlueInvoiceId());
- blueInvoice.setRedReversal("0");
- baseMapper.updateById(blueInvoice);
+ //钃濈エ
+ if (invoice.getInvoiceCategory().equals("1")) {
+ //鏇存柊鍚堝悓鍑哄簱鍗曠姸鎬�
+ List<ContractOutBoundInvoiceVo> outBoundInvoiceVoList = BeanUtil.copyToList(JSONArray.parseArray(invoice.getInvoicePreviewParam()),ContractOutBoundInvoiceVo.class);
+ if (ArrayUtil.isNotEmpty(outBoundInvoiceVoList.toArray())){
+ outBoundInvoiceVoList.stream().forEach(contractOutBoundInvoiceVo -> {
+ ContractOutBound contractOutBound = contractOutBoundMapper.selectById(contractOutBoundInvoiceVo.getContractOutBoundId());
+ contractOutBound.setInvoiceNum(contractOutBound.getInvoiceNum().subtract(contractOutBoundInvoiceVo.getInvoiceNum()));
+ contractOutBoundMapper.updateById(contractOutBound);
+ });
+ }
+ }
+ //绾㈢エ
+ if (invoice.getInvoiceCategory().equals("2")) {
+ ContractInvoice blueInvoice = baseMapper.selectById(invoice.getBlueInvoiceId());
+ blueInvoice.setRedReversal("0");
+ baseMapper.updateById(blueInvoice);
+ }
}
}
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ProductServiceImpl.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ProductServiceImpl.java
index 331d6da..1f9588f 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ProductServiceImpl.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ProductServiceImpl.java
@@ -1,19 +1,26 @@
package com.by4cloud.platformx.business.service.impl;
+import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.tree.Tree;
import cn.hutool.core.lang.tree.TreeNode;
import cn.hutool.core.lang.tree.TreeUtil;
+import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.by4cloud.platformx.business.entity.Product;
import com.by4cloud.platformx.business.mapper.ProductMapper;
import com.by4cloud.platformx.business.service.ProductService;
+import com.by4cloud.platformx.business.vo.ProductTreeVo;
+import com.by4cloud.platformx.common.core.util.R;
import com.by4cloud.platformx.common.data.datascope.DataScope;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
import jakarta.validation.constraints.NotNull;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -56,6 +63,7 @@
return baseMapper.getProductListByScope(product,DataScope.of("comp_id"));
}
+
@NotNull
private Function<Product, TreeNode<Long>> getNodeFunction() {
return product -> {
--
Gitblit v1.9.1