platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/BusinessCustomer.java
@@ -95,4 +95,8 @@ @Column(columnDefinition = "bigint comment '所属区域Id'") private Long areaId; @Schema(description = "所属区域") @Column(columnDefinition = "bigint comment '所属区域'") private Long areaName; } platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/Product.java
@@ -1,12 +1,16 @@ package com.by4cloud.platformx.business.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.by4cloud.platformx.common.data.mybatis.BaseModel; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.persistence.Column; 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 @@ -39,7 +43,14 @@ @Column(columnDefinition = "double default 0.00 comment '税率'") private Double taxRate; @Schema(description = "分类ID") @Column(columnDefinition = "bigint comment '分类ID'") private Long categoryId; @Schema(description = "父ID") @Column(columnDefinition = "bigint comment '父ID'") private Long parentId; /** * 标的物 */ @Transient @TableField(exist = false) private List<Product> children; } platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/SalesMan.java
@@ -35,5 +35,4 @@ @Column(columnDefinition = "VARCHAR(20) comment '联系电话'") private String phone; } platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/BusinessCustomerController.java
@@ -51,6 +51,18 @@ return R.ok(businessCustomerService.page(page, wrapper)); } /** * 分页查询 * @param businessCustomer 客商信息 * @return */ @Operation(summary = "分页查询" , description = "分页查询" ) @GetMapping("/list" ) @PreAuthorize("@pms.hasPermission('business_businessCustomer_view')" ) public R getBusinessCustomerList(@ParameterObject BusinessCustomer businessCustomer) { LambdaQueryWrapper<BusinessCustomer> wrapper = Wrappers.lambdaQuery(); return R.ok(businessCustomerService.list(wrapper)); } /** * 通过id查询客商信息 platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ProductController.java
@@ -9,6 +9,7 @@ import com.by4cloud.platformx.common.log.annotation.SysLog; import com.by4cloud.platformx.business.entity.Product; import com.by4cloud.platformx.business.service.ProductService; import com.by4cloud.platformx.common.security.annotation.Inner; import org.springframework.security.access.prepost.PreAuthorize; import com.by4cloud.platformx.common.excel.annotation.ResponseExcel; import io.swagger.v3.oas.annotations.security.SecurityRequirement; @@ -51,6 +52,33 @@ return R.ok(productService.page(page, wrapper)); } /** * 分页查询 * @param product 产品信息 * @return */ @Operation(summary = "分页查询" , description = "分页查询" ) @GetMapping("/list" ) @PreAuthorize("@pms.hasPermission('business_product_view')" ) @Inner(value = false) public R getProductList(@ParameterObject Product product) { LambdaQueryWrapper<Product> wrapper = Wrappers.lambdaQuery(); return R.ok(productService.list(wrapper)); } /** * 层级查询 * @param product 商品表 * @return */ @Operation(summary = "层级查询" , description = "层级查询" ) @GetMapping("/treeList" ) //@PreAuthorize("@pms.hasPermission('business_product_view')" ) @Inner(value = false) public R getNewsCategoryTree(@ParameterObject Product product) { return R.ok(productService.treeList(product.getParentId(), product.getProductName())); } /** * 通过id查询产品信息 platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ProductionPlanController.java
@@ -51,6 +51,18 @@ return R.ok(productionPlanService.page(page, wrapper)); } /** * 分页查询 * @param productionPlan 排产计划 * @return */ @Operation(summary = "分页查询" , description = "分页查询" ) @GetMapping("/list" ) @PreAuthorize("@pms.hasPermission('business_productionPlan_view')" ) public R getProductionPlanList(@ParameterObject ProductionPlan productionPlan) { LambdaQueryWrapper<ProductionPlan> wrapper = Wrappers.lambdaQuery(); return R.ok(productionPlanService.list(wrapper)); } /** * 通过id查询排产计划 platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/SalesManController.java
@@ -51,6 +51,19 @@ return R.ok(salesManService.page(page, wrapper)); } /** * 分页查询 * @param salesMan 销售人员 * @return */ @Operation(summary = "分页查询" , description = "分页查询" ) @GetMapping("/list" ) @PreAuthorize("@pms.hasPermission('business_salesMan_view')" ) public R getSalesManList(@ParameterObject SalesMan salesMan) { LambdaQueryWrapper<SalesMan> wrapper = Wrappers.lambdaQuery(); return R.ok(salesManService.list(wrapper)); } /** * 通过id查询销售人员 platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ProductService.java
@@ -1,8 +1,12 @@ package com.by4cloud.platformx.business.service; import cn.hutool.core.lang.tree.Tree; import com.baomidou.mybatisplus.extension.service.IService; import com.by4cloud.platformx.business.entity.Product; import java.util.List; public interface ProductService extends IService<Product> { List<Tree<Long>> treeList(Long parentId, String productName); } platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ProductServiceImpl.java
@@ -1,10 +1,24 @@ package com.by4cloud.platformx.business.service.impl; 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.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 jakarta.validation.constraints.NotNull; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; /** * 产品信息 * @@ -13,4 +27,53 @@ */ @Service public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> implements ProductService { @Override public List<Tree<Long>> treeList(Long parentId, String productName) { Long parent = parentId == null ? 0l : parentId; List<TreeNode<Long>> collect = baseMapper .selectList(Wrappers.<Product>lambdaQuery() .like(StrUtil.isNotBlank(productName), Product::getProductName, productName) .orderByAsc(Product::getCreateTime)) .stream().map(getNodeFunction()).collect(Collectors.toList()); // 模糊查询 不组装树结构 直接返回 表格方便编辑 if (StrUtil.isNotBlank(productName)) { return collect.stream().map(node -> { Tree<Long> tree = new Tree<>(); tree.putAll(node.getExtra()); BeanUtils.copyProperties(node, tree); return tree; }).collect(Collectors.toList()); } return TreeUtil.build(collect, parent); } @NotNull private Function<Product, TreeNode<Long>> getNodeFunction() { return product -> { TreeNode<Long> node = new TreeNode<>(); node.setId(product.getId()); node.setName(product.getProductName()); node.setParentId(product.getParentId()); node.setWeight(product.getParentId()); // 扩展属性 Map<String, Object> extra = new HashMap<>(); // extra.put("picPath", category.getPicPath()); // extra.put("Type", category.getType()); // extra.put("isShow", category.getIsShow()); // extra.put("iconPicPath", category.getIconPath()); // extra.put("status", category.getStatus()); // 适配 vue3 Map<String, Object> meta = new HashMap<>(); meta.put("title", product.getProductName()); meta.put("icon", product.getPrice()); extra.put("meta", meta); node.setExtra(extra); return node; }; } }