1个文件已修改
24个文件已添加
1034 ■■■■■ 已修改文件
platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/BusinessCustomer.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/Contract.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/Product.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/ProductionPlan.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/SalesMan.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/BusinessCustomerController.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ProductController.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ProductionPlanController.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/SalesManController.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/mapper/BusinessCustomerMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/mapper/ProductMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/mapper/ProductionPlanMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/mapper/SalesManMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/BusinessCustomerService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ProductService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ProductionPlanService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/SalesManService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/BusinessCustomerServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ProductServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ProductionPlanServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/SalesManServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/resources/mapper/BusinessCustomerMapper.xml 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/resources/mapper/ProductMapper.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/resources/mapper/ProductionPlanMapper.xml 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/resources/mapper/SalesManMapper.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/BusinessCustomer.java
New file
@@ -0,0 +1,98 @@
package com.by4cloud.platformx.business.entity;
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 lombok.Data;
import jakarta.persistence.Table;
import org.hibernate.annotations.Comment;
/**
 * @author wjli
 * @description
 * @date 2026/4/29 10:51
 **/
@Data
@Entity
@Table(name = "business_customer")
@Comment("客商信息")
public class BusinessCustomer extends BaseModel<BusinessCustomer> {
    @Schema(description = "统一社会信用代码")
    @Column(columnDefinition = "VARCHAR(30) comment '统一社会信用代码'")
    private String creditCode;
    @Schema(description = "企业名称")
    @Column(columnDefinition = "VARCHAR(100) comment '企业名称'")
    private String companyName;
    @Schema(description = "公司类型")
    @Column(columnDefinition = "VARCHAR(50) comment '公司类型'")
    private String companyType;
    @Schema(description = "法定代表人")
    @Column(columnDefinition = "VARCHAR(20) comment '法定代表人'")
    private String legalPerson;
    @Schema(description = "注册资本")
    @Column(columnDefinition = "VARCHAR(30) comment '注册资本'")
    private String registeredCapital;
    @Schema(description = "成立日期")
    @Column(columnDefinition = "VARCHAR(20) comment '成立日期'")
    private String establishDate;
    @Schema(description = "注册地址")
    @Column(columnDefinition = "VARCHAR(200) comment '注册地址'")
    private String address;
    @Schema(description = "经营范围")
    @Column(columnDefinition = "TEXT comment '经营范围'")
    private String businessScope;
    @Schema(description = "登记机关")
    @Column(columnDefinition = "VARCHAR(50) comment '登记机关'")
    private String registerOrg;
    @Schema(description = "签发日期")
    @Column(columnDefinition = "VARCHAR(20) comment '签发日期'")
    private String issueDate;
    @Schema(description = "状态")
    @Column(columnDefinition = "VARCHAR(20) default '正常' comment '状态'")
    private String status;
    @Schema(description = "行业Id")
    @Column(columnDefinition = "VARCHAR(50) comment '行业Id'")
    private String industryId;
    @Schema(description = "行业")
    @Column(columnDefinition = "VARCHAR(50) comment '行业'")
    private String industry;
    @Schema(description = "联系电话")
    @Column(columnDefinition = "VARCHAR(20) comment '联系电话'")
    private String contactPhone;
    @Schema(description = "邮箱")
    @Column(columnDefinition = "VARCHAR(50) comment '邮箱'")
    private String email;
    @Schema(description = "省")
    @Column(columnDefinition = "VARCHAR(50) comment '省'")
    private String province;
    @Schema(description = "市")
    @Column(columnDefinition = "VARCHAR(50) comment '市'")
    private String city;
    @Schema(description = "区")
    @Column(columnDefinition = "VARCHAR(50) comment '区'")
    private String district;
    @Schema(description = "所属区域Id")
    @Column(columnDefinition = "bigint comment '所属区域Id'")
    private Long areaId;
}
platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/Contract.java
@@ -37,19 +37,19 @@
    private String contractName;
    @Schema(description = "甲方id")
    @Column(columnDefinition = "bigint comment '甲方id'")
    @Column(name = "party_a_id",columnDefinition = "bigint comment '甲方id'")
    private Long partyAId;
    @Schema(description = "甲方名称")
    @Column(columnDefinition = "VARCHAR(100) comment '甲方名称'")
    @Column(name = "party_a",columnDefinition = "VARCHAR(100) comment '甲方名称'")
    private String partyA;
    @Schema(description = "乙方id")
    @Column(columnDefinition = "bigint comment '乙方id'")
    @Column(name = "party_b_id",columnDefinition = "bigint comment '乙方id'")
    private Long partyBId;
    @Schema(description = "乙方名称")
    @Column(columnDefinition = "VARCHAR(100) comment '乙方名称'")
    @Column(name = "party_b",columnDefinition = "VARCHAR(100) comment '乙方名称'")
    private String partyB;
    @Schema(description = "合同金额")
@@ -140,4 +140,5 @@
    @Transient
    @TableField(exist = false)
    private Long remainingDays;
}
platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/Product.java
New file
@@ -0,0 +1,45 @@
package com.by4cloud.platformx.business.entity;
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 lombok.Data;
import org.hibernate.annotations.Comment;
import jakarta.persistence.Table;
/**
 * @author wjli
 * @description
 * @date 2026/4/29 10:51
 **/
@Data
@Entity
@Table(name = "product")
@Comment("产品信息")
public class Product extends BaseModel<Product> {
    //产品名称、产品编码(主数据、ERP)、产品价格、税点、所属上级
    @Schema(description = "产品名称")
    @Column(columnDefinition = "VARCHAR(50) comment '产品名称'")
    private String productName;
    @Schema(description = "产品集团编码")
    @Column(columnDefinition = "VARCHAR(50) comment '产品集团编码'")
    private String mainCode;
    @Schema(description = "产品Erp编码")
    @Column(columnDefinition = "VARCHAR(50) comment '产品Erp编码'")
    private String erpCode;
    @Schema(description = "产品价格")
    @Column(columnDefinition = "double comment '产品价格'")
    private Double price;
    @Schema(description = "税率(百分比,如13表示13%)")
    @Column(columnDefinition = "double default 0.00 comment '税率'")
    private Double taxRate;
    @Schema(description = "分类ID")
    @Column(columnDefinition = "bigint comment '分类ID'")
    private Long categoryId;
}
platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/ProductionPlan.java
New file
@@ -0,0 +1,119 @@
package com.by4cloud.platformx.business.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.by4cloud.platformx.common.data.mybatis.BaseModel;
import com.fasterxml.jackson.annotation.JsonFormat;
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 org.springframework.format.annotation.DateTimeFormat;
import jakarta.persistence.Table;
import java.util.List;
/**
 * @author wjli
 * @description
 * @date 2026/4/29 10:51
 **/
@Data
@Entity
@Table(name = "production_plan")
@Comment("排产计划")
public class ProductionPlan  extends BaseModel<BusinessCustomer> {
    @Schema(description = "所属合同编号")
    @Column(columnDefinition = "VARCHAR(64) comment '合同编号'")
    private String contractNo;
    @Schema(description = "所属合同名称")
    @Column(columnDefinition = "VARCHAR(200) comment '合同名称'")
    private String contractName;
    @Schema(description = "排产计划编号")
    @Column(columnDefinition = "VARCHAR(64) comment '排产计划编号'")
    private String productionPlanNo;
    @Schema(description = "排产计划名称")
    @Column(columnDefinition = "VARCHAR(200) comment '排产计划名称'")
    private String productionPlanName;
    @Schema(description = "甲方id")
    @Column(columnDefinition = "bigint comment '甲方id'")
    private Long partyAId;
    @Schema(description = "甲方名称")
    @Column(columnDefinition = "VARCHAR(100) comment '甲方名称'")
    private String partyA;
    @Schema(description = "乙方id")
    @Column(columnDefinition = "bigint comment '乙方id'")
    private Long partyBId;
    @Schema(description = "乙方名称")
    @Column(columnDefinition = "VARCHAR(100) comment '乙方名称'")
    private String partyB;
    @Schema(description = "金额")
    @Column(columnDefinition = "double comment '金额'")
    private Double amount;
    @Schema(description = "币种(CNY/USD等)")
    @Column(columnDefinition = "VARCHAR(10) default 'CNY' comment '币种'")
    private String currency;
    @Schema(description = "类型(0-生成式 1-备案式)")
    @Column(columnDefinition = "tinyint(2) default 0 comment '类型'")
    private Integer contractType;
    @Schema(description = "供应属性 0-成品 1-备件 2-大修 3-其他")
    @Column(columnDefinition = "tinyint(2) default 0 comment '供应属性 0-成品 1-备件 2-大修 3-其他'")
    private Integer supplyAttribute;
    @Schema(description = "计划状态(0-草稿 1-已生效 2-已终止 3-已过期)")
    @Column(columnDefinition = "tinyint(2) default 0 comment '计划状态'")
    private Integer status;
    @Schema(description = "服务属性(0-产品销售 1-无形服务)")
    @Column(columnDefinition = "tinyint(2) default 0 comment '服务属性'")
    private Integer attribute;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Schema(description = "签署日期")
    @Column(columnDefinition = "VARCHAR(64) comment '签署日期'")
    private String signDate;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Schema(description = "生效日期")
    @Column(columnDefinition = "VARCHAR(64) comment '生效日期'")
    private String effectiveDate;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Schema(description = "到期日期")
    @Column(columnDefinition = "VARCHAR(64) comment '到期日期'")
    private String expirationDate;
    @Schema(description = "备注")
    @Column(columnDefinition = "TEXT comment '备注'")
    private String remark;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Schema(description = "审批时间")
    @Column(columnDefinition = "datetime comment '审批时间'")
    private String approveTime;
    /**
     * 标的物
     */
    @Transient
    @TableField(exist = false)
    private List<ContractSubjectMatter> contractSubjectMatterList;
}
platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/SalesMan.java
New file
@@ -0,0 +1,39 @@
package com.by4cloud.platformx.business.entity;
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 lombok.Data;
import jakarta.persistence.Table;
import org.hibernate.annotations.Comment;
/**
 * @author wjli
 * @description
 * @date 2026/4/29 10:51
 **/
@Data
@Entity
@Table(name = "sales_man")
@Comment("销售人员")
public class SalesMan extends BaseModel<SalesMan> {
    @Schema(description = "所属客商Id")
    @Column(columnDefinition = "bigint comment '所属客商Id'")
    private Long customerId;
    @Schema(description = "员工编号")
    @Column(columnDefinition = "VARCHAR(50) comment '员工编号'")
    private String salesNo;
    @Schema(description = "销售员姓名")
    @Column(columnDefinition = "VARCHAR(50) comment '销售员姓名'")
    private String salesName;
    @Schema(description = "联系电话")
    @Column(columnDefinition = "VARCHAR(20) comment '联系电话'")
    private String phone;
}
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/BusinessCustomerController.java
New file
@@ -0,0 +1,119 @@
package com.by4cloud.platformx.business.controller;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.collection.CollUtil;
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.common.core.util.R;
import com.by4cloud.platformx.common.log.annotation.SysLog;
import com.by4cloud.platformx.business.entity.BusinessCustomer;
import com.by4cloud.platformx.business.service.BusinessCustomerService;
import org.springframework.security.access.prepost.PreAuthorize;
import com.by4cloud.platformx.common.excel.annotation.ResponseExcel;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import org.springdoc.core.annotations.ParameterObject;
import org.springframework.http.HttpHeaders;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Objects;
/**
 * 客商信息
 *
 * @author platformx
 * @date 2026-05-07 10:13:22
 */
@RestController
@RequiredArgsConstructor
@RequestMapping("/businessCustomer" )
@Tag(description = "businessCustomer" , name = "客商信息管理" )
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
public class BusinessCustomerController {
    private final  BusinessCustomerService businessCustomerService;
    /**
     * 分页查询
     * @param page 分页对象
     * @param businessCustomer 客商信息
     * @return
     */
    @Operation(summary = "分页查询" , description = "分页查询" )
    @GetMapping("/page" )
    @PreAuthorize("@pms.hasPermission('business_businessCustomer_view')" )
    public R getBusinessCustomerPage(@ParameterObject Page page, @ParameterObject BusinessCustomer businessCustomer) {
        LambdaQueryWrapper<BusinessCustomer> wrapper = Wrappers.lambdaQuery();
        return R.ok(businessCustomerService.page(page, wrapper));
    }
    /**
     * 通过id查询客商信息
     * @param id id
     * @return R
     */
    @Operation(summary = "通过id查询" , description = "通过id查询" )
    @GetMapping("/{id}" )
    @PreAuthorize("@pms.hasPermission('business_businessCustomer_view')" )
    public R getById(@PathVariable("id" ) Long id) {
        return R.ok(businessCustomerService.getById(id));
    }
    /**
     * 新增客商信息
     * @param businessCustomer 客商信息
     * @return R
     */
    @Operation(summary = "新增客商信息" , description = "新增客商信息" )
    @SysLog("新增客商信息" )
    @PostMapping
    @PreAuthorize("@pms.hasPermission('business_businessCustomer_add')" )
    public R save(@RequestBody BusinessCustomer businessCustomer) {
        return R.ok(businessCustomerService.save(businessCustomer));
    }
    /**
     * 修改客商信息
     * @param businessCustomer 客商信息
     * @return R
     */
    @Operation(summary = "修改客商信息" , description = "修改客商信息" )
    @SysLog("修改客商信息" )
    @PutMapping
    @PreAuthorize("@pms.hasPermission('business_businessCustomer_edit')" )
    public R updateById(@RequestBody BusinessCustomer businessCustomer) {
        return R.ok(businessCustomerService.updateById(businessCustomer));
    }
    /**
     * 通过id删除客商信息
     * @param ids id列表
     * @return R
     */
    @Operation(summary = "通过id删除客商信息" , description = "通过id删除客商信息" )
    @SysLog("通过id删除客商信息" )
    @DeleteMapping
    @PreAuthorize("@pms.hasPermission('business_businessCustomer_del')" )
    public R removeById(@RequestBody Long[] ids) {
        return R.ok(businessCustomerService.removeBatchByIds(CollUtil.toList(ids)));
    }
    /**
     * 导出excel 表格
     * @param businessCustomer 查询条件
        * @param ids 导出指定ID
     * @return excel 文件流
     */
    @ResponseExcel
    @GetMapping("/export")
    @PreAuthorize("@pms.hasPermission('business_businessCustomer_export')" )
    public List<BusinessCustomer> export(BusinessCustomer businessCustomer,Long[] ids) {
        return businessCustomerService.list(Wrappers.lambdaQuery(businessCustomer).in(ArrayUtil.isNotEmpty(ids), BusinessCustomer::getId, ids));
    }
}
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ProductController.java
New file
@@ -0,0 +1,119 @@
package com.by4cloud.platformx.business.controller;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.collection.CollUtil;
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.common.core.util.R;
import com.by4cloud.platformx.common.log.annotation.SysLog;
import com.by4cloud.platformx.business.entity.Product;
import com.by4cloud.platformx.business.service.ProductService;
import org.springframework.security.access.prepost.PreAuthorize;
import com.by4cloud.platformx.common.excel.annotation.ResponseExcel;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import org.springdoc.core.annotations.ParameterObject;
import org.springframework.http.HttpHeaders;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Objects;
/**
 * 产品信息
 *
 * @author platformx
 * @date 2026-05-07 10:17:52
 */
@RestController
@RequiredArgsConstructor
@RequestMapping("/product" )
@Tag(description = "product" , name = "产品信息管理" )
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
public class ProductController {
    private final  ProductService productService;
    /**
     * 分页查询
     * @param page 分页对象
     * @param product 产品信息
     * @return
     */
    @Operation(summary = "分页查询" , description = "分页查询" )
    @GetMapping("/page" )
    @PreAuthorize("@pms.hasPermission('business_product_view')" )
    public R getProductPage(@ParameterObject Page page, @ParameterObject Product product) {
        LambdaQueryWrapper<Product> wrapper = Wrappers.lambdaQuery();
        return R.ok(productService.page(page, wrapper));
    }
    /**
     * 通过id查询产品信息
     * @param id id
     * @return R
     */
    @Operation(summary = "通过id查询" , description = "通过id查询" )
    @GetMapping("/{id}" )
    @PreAuthorize("@pms.hasPermission('business_product_view')" )
    public R getById(@PathVariable("id" ) Long id) {
        return R.ok(productService.getById(id));
    }
    /**
     * 新增产品信息
     * @param product 产品信息
     * @return R
     */
    @Operation(summary = "新增产品信息" , description = "新增产品信息" )
    @SysLog("新增产品信息" )
    @PostMapping
    @PreAuthorize("@pms.hasPermission('business_product_add')" )
    public R save(@RequestBody Product product) {
        return R.ok(productService.save(product));
    }
    /**
     * 修改产品信息
     * @param product 产品信息
     * @return R
     */
    @Operation(summary = "修改产品信息" , description = "修改产品信息" )
    @SysLog("修改产品信息" )
    @PutMapping
    @PreAuthorize("@pms.hasPermission('business_product_edit')" )
    public R updateById(@RequestBody Product product) {
        return R.ok(productService.updateById(product));
    }
    /**
     * 通过id删除产品信息
     * @param ids id列表
     * @return R
     */
    @Operation(summary = "通过id删除产品信息" , description = "通过id删除产品信息" )
    @SysLog("通过id删除产品信息" )
    @DeleteMapping
    @PreAuthorize("@pms.hasPermission('business_product_del')" )
    public R removeById(@RequestBody Long[] ids) {
        return R.ok(productService.removeBatchByIds(CollUtil.toList(ids)));
    }
    /**
     * 导出excel 表格
     * @param product 查询条件
        * @param ids 导出指定ID
     * @return excel 文件流
     */
    @ResponseExcel
    @GetMapping("/export")
    @PreAuthorize("@pms.hasPermission('business_product_export')" )
    public List<Product> export(Product product,Long[] ids) {
        return productService.list(Wrappers.lambdaQuery(product).in(ArrayUtil.isNotEmpty(ids), Product::getId, ids));
    }
}
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ProductionPlanController.java
New file
@@ -0,0 +1,119 @@
package com.by4cloud.platformx.business.controller;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.collection.CollUtil;
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.common.core.util.R;
import com.by4cloud.platformx.common.log.annotation.SysLog;
import com.by4cloud.platformx.business.entity.ProductionPlan;
import com.by4cloud.platformx.business.service.ProductionPlanService;
import org.springframework.security.access.prepost.PreAuthorize;
import com.by4cloud.platformx.common.excel.annotation.ResponseExcel;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import org.springdoc.core.annotations.ParameterObject;
import org.springframework.http.HttpHeaders;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Objects;
/**
 * 排产计划
 *
 * @author platformx
 * @date 2026-05-07 10:27:42
 */
@RestController
@RequiredArgsConstructor
@RequestMapping("/productionPlan" )
@Tag(description = "productionPlan" , name = "排产计划管理" )
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
public class ProductionPlanController {
    private final  ProductionPlanService productionPlanService;
    /**
     * 分页查询
     * @param page 分页对象
     * @param productionPlan 排产计划
     * @return
     */
    @Operation(summary = "分页查询" , description = "分页查询" )
    @GetMapping("/page" )
    @PreAuthorize("@pms.hasPermission('business_productionPlan_view')" )
    public R getProductionPlanPage(@ParameterObject Page page, @ParameterObject ProductionPlan productionPlan) {
        LambdaQueryWrapper<ProductionPlan> wrapper = Wrappers.lambdaQuery();
        return R.ok(productionPlanService.page(page, wrapper));
    }
    /**
     * 通过id查询排产计划
     * @param id id
     * @return R
     */
    @Operation(summary = "通过id查询" , description = "通过id查询" )
    @GetMapping("/{id}" )
    @PreAuthorize("@pms.hasPermission('business_productionPlan_view')" )
    public R getById(@PathVariable("id" ) Long id) {
        return R.ok(productionPlanService.getById(id));
    }
    /**
     * 新增排产计划
     * @param productionPlan 排产计划
     * @return R
     */
    @Operation(summary = "新增排产计划" , description = "新增排产计划" )
    @SysLog("新增排产计划" )
    @PostMapping
    @PreAuthorize("@pms.hasPermission('business_productionPlan_add')" )
    public R save(@RequestBody ProductionPlan productionPlan) {
        return R.ok(productionPlanService.save(productionPlan));
    }
    /**
     * 修改排产计划
     * @param productionPlan 排产计划
     * @return R
     */
    @Operation(summary = "修改排产计划" , description = "修改排产计划" )
    @SysLog("修改排产计划" )
    @PutMapping
    @PreAuthorize("@pms.hasPermission('business_productionPlan_edit')" )
    public R updateById(@RequestBody ProductionPlan productionPlan) {
        return R.ok(productionPlanService.updateById(productionPlan));
    }
    /**
     * 通过id删除排产计划
     * @param ids id列表
     * @return R
     */
    @Operation(summary = "通过id删除排产计划" , description = "通过id删除排产计划" )
    @SysLog("通过id删除排产计划" )
    @DeleteMapping
    @PreAuthorize("@pms.hasPermission('business_productionPlan_del')" )
    public R removeById(@RequestBody Long[] ids) {
        return R.ok(productionPlanService.removeBatchByIds(CollUtil.toList(ids)));
    }
    /**
     * 导出excel 表格
     * @param productionPlan 查询条件
        * @param ids 导出指定ID
     * @return excel 文件流
     */
    @ResponseExcel
    @GetMapping("/export")
    @PreAuthorize("@pms.hasPermission('business_productionPlan_export')" )
    public List<ProductionPlan> export(ProductionPlan productionPlan,Long[] ids) {
        return productionPlanService.list(Wrappers.lambdaQuery(productionPlan).in(ArrayUtil.isNotEmpty(ids), ProductionPlan::getId, ids));
    }
}
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/SalesManController.java
New file
@@ -0,0 +1,119 @@
package com.by4cloud.platformx.business.controller;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.collection.CollUtil;
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.common.core.util.R;
import com.by4cloud.platformx.common.log.annotation.SysLog;
import com.by4cloud.platformx.business.entity.SalesMan;
import com.by4cloud.platformx.business.service.SalesManService;
import org.springframework.security.access.prepost.PreAuthorize;
import com.by4cloud.platformx.common.excel.annotation.ResponseExcel;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import org.springdoc.core.annotations.ParameterObject;
import org.springframework.http.HttpHeaders;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Objects;
/**
 * 销售人员
 *
 * @author platformx
 * @date 2026-05-07 10:15:31
 */
@RestController
@RequiredArgsConstructor
@RequestMapping("/salesMan" )
@Tag(description = "salesMan" , name = "销售人员管理" )
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
public class SalesManController {
    private final  SalesManService salesManService;
    /**
     * 分页查询
     * @param page 分页对象
     * @param salesMan 销售人员
     * @return
     */
    @Operation(summary = "分页查询" , description = "分页查询" )
    @GetMapping("/page" )
    @PreAuthorize("@pms.hasPermission('business_salesMan_view')" )
    public R getSalesManPage(@ParameterObject Page page, @ParameterObject SalesMan salesMan) {
        LambdaQueryWrapper<SalesMan> wrapper = Wrappers.lambdaQuery();
        return R.ok(salesManService.page(page, wrapper));
    }
    /**
     * 通过id查询销售人员
     * @param id id
     * @return R
     */
    @Operation(summary = "通过id查询" , description = "通过id查询" )
    @GetMapping("/{id}" )
    @PreAuthorize("@pms.hasPermission('business_salesMan_view')" )
    public R getById(@PathVariable("id" ) Long id) {
        return R.ok(salesManService.getById(id));
    }
    /**
     * 新增销售人员
     * @param salesMan 销售人员
     * @return R
     */
    @Operation(summary = "新增销售人员" , description = "新增销售人员" )
    @SysLog("新增销售人员" )
    @PostMapping
    @PreAuthorize("@pms.hasPermission('business_salesMan_add')" )
    public R save(@RequestBody SalesMan salesMan) {
        return R.ok(salesManService.save(salesMan));
    }
    /**
     * 修改销售人员
     * @param salesMan 销售人员
     * @return R
     */
    @Operation(summary = "修改销售人员" , description = "修改销售人员" )
    @SysLog("修改销售人员" )
    @PutMapping
    @PreAuthorize("@pms.hasPermission('business_salesMan_edit')" )
    public R updateById(@RequestBody SalesMan salesMan) {
        return R.ok(salesManService.updateById(salesMan));
    }
    /**
     * 通过id删除销售人员
     * @param ids id列表
     * @return R
     */
    @Operation(summary = "通过id删除销售人员" , description = "通过id删除销售人员" )
    @SysLog("通过id删除销售人员" )
    @DeleteMapping
    @PreAuthorize("@pms.hasPermission('business_salesMan_del')" )
    public R removeById(@RequestBody Long[] ids) {
        return R.ok(salesManService.removeBatchByIds(CollUtil.toList(ids)));
    }
    /**
     * 导出excel 表格
     * @param salesMan 查询条件
        * @param ids 导出指定ID
     * @return excel 文件流
     */
    @ResponseExcel
    @GetMapping("/export")
    @PreAuthorize("@pms.hasPermission('business_salesMan_export')" )
    public List<SalesMan> export(SalesMan salesMan,Long[] ids) {
        return salesManService.list(Wrappers.lambdaQuery(salesMan).in(ArrayUtil.isNotEmpty(ids), SalesMan::getId, ids));
    }
}
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/mapper/BusinessCustomerMapper.java
New file
@@ -0,0 +1,11 @@
package com.by4cloud.platformx.business.mapper;
import com.by4cloud.platformx.common.data.datascope.PlatformxBaseMapper;
import com.by4cloud.platformx.business.entity.BusinessCustomer;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface BusinessCustomerMapper extends PlatformxBaseMapper<BusinessCustomer> {
}
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/mapper/ProductMapper.java
New file
@@ -0,0 +1,11 @@
package com.by4cloud.platformx.business.mapper;
import com.by4cloud.platformx.common.data.datascope.PlatformxBaseMapper;
import com.by4cloud.platformx.business.entity.Product;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface ProductMapper extends PlatformxBaseMapper<Product> {
}
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/mapper/ProductionPlanMapper.java
New file
@@ -0,0 +1,11 @@
package com.by4cloud.platformx.business.mapper;
import com.by4cloud.platformx.common.data.datascope.PlatformxBaseMapper;
import com.by4cloud.platformx.business.entity.ProductionPlan;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface ProductionPlanMapper extends PlatformxBaseMapper<ProductionPlan> {
}
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/mapper/SalesManMapper.java
New file
@@ -0,0 +1,11 @@
package com.by4cloud.platformx.business.mapper;
import com.by4cloud.platformx.common.data.datascope.PlatformxBaseMapper;
import com.by4cloud.platformx.business.entity.SalesMan;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface SalesManMapper extends PlatformxBaseMapper<SalesMan> {
}
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/BusinessCustomerService.java
New file
@@ -0,0 +1,8 @@
package com.by4cloud.platformx.business.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.by4cloud.platformx.business.entity.BusinessCustomer;
public interface BusinessCustomerService extends IService<BusinessCustomer> {
}
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ProductService.java
New file
@@ -0,0 +1,8 @@
package com.by4cloud.platformx.business.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.by4cloud.platformx.business.entity.Product;
public interface ProductService extends IService<Product> {
}
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ProductionPlanService.java
New file
@@ -0,0 +1,8 @@
package com.by4cloud.platformx.business.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.by4cloud.platformx.business.entity.ProductionPlan;
public interface ProductionPlanService extends IService<ProductionPlan> {
}
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/SalesManService.java
New file
@@ -0,0 +1,8 @@
package com.by4cloud.platformx.business.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.by4cloud.platformx.business.entity.SalesMan;
public interface SalesManService extends IService<SalesMan> {
}
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/BusinessCustomerServiceImpl.java
New file
@@ -0,0 +1,16 @@
package com.by4cloud.platformx.business.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.by4cloud.platformx.business.entity.BusinessCustomer;
import com.by4cloud.platformx.business.mapper.BusinessCustomerMapper;
import com.by4cloud.platformx.business.service.BusinessCustomerService;
import org.springframework.stereotype.Service;
/**
 * 客商信息
 *
 * @author platformx
 * @date 2026-05-07 10:13:22
 */
@Service
public class BusinessCustomerServiceImpl extends ServiceImpl<BusinessCustomerMapper, BusinessCustomer> implements BusinessCustomerService {
}
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ProductServiceImpl.java
New file
@@ -0,0 +1,16 @@
package com.by4cloud.platformx.business.service.impl;
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 org.springframework.stereotype.Service;
/**
 * 产品信息
 *
 * @author platformx
 * @date 2026-05-07 10:17:52
 */
@Service
public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> implements ProductService {
}
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ProductionPlanServiceImpl.java
New file
@@ -0,0 +1,16 @@
package com.by4cloud.platformx.business.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.by4cloud.platformx.business.entity.ProductionPlan;
import com.by4cloud.platformx.business.mapper.ProductionPlanMapper;
import com.by4cloud.platformx.business.service.ProductionPlanService;
import org.springframework.stereotype.Service;
/**
 * 排产计划
 *
 * @author platformx
 * @date 2026-05-07 10:27:42
 */
@Service
public class ProductionPlanServiceImpl extends ServiceImpl<ProductionPlanMapper, ProductionPlan> implements ProductionPlanService {
}
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/SalesManServiceImpl.java
New file
@@ -0,0 +1,16 @@
package com.by4cloud.platformx.business.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.by4cloud.platformx.business.entity.SalesMan;
import com.by4cloud.platformx.business.mapper.SalesManMapper;
import com.by4cloud.platformx.business.service.SalesManService;
import org.springframework.stereotype.Service;
/**
 * 销售人员
 *
 * @author platformx
 * @date 2026-05-07 10:15:31
 */
@Service
public class SalesManServiceImpl extends ServiceImpl<SalesManMapper, SalesMan> implements SalesManService {
}
platformx-business-finance-biz/src/main/resources/mapper/BusinessCustomerMapper.xml
New file
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.by4cloud.platformx.business.mapper.BusinessCustomerMapper">
  <resultMap id="businessCustomerMap" type="com.by4cloud.platformx.business.entity.BusinessCustomer">
        <id property="id" column="id"/>
        <result property="companyName" column="company_name"/>
        <result property="creditCode" column="credit_code"/>
        <result property="companyType" column="company_type"/>
        <result property="legalPerson" column="legal_person"/>
        <result property="establishDate" column="establish_date"/>
        <result property="address" column="address"/>
        <result property="registeredCapital" column="registered_capital"/>
        <result property="businessScope" column="business_scope"/>
        <result property="registerOrg" column="register_org"/>
        <result property="issueDate" column="issue_date"/>
        <result property="contactPhone" column="contact_phone"/>
        <result property="email" column="email"/>
        <result property="status" column="status"/>
        <result property="areaId" column="area_id"/>
        <result property="province" column="province"/>
        <result property="city" column="city"/>
        <result property="district" column="district"/>
        <result property="industry" column="industry"/>
        <result property="industryId" column="industry_id"/>
        <result property="compId" column="comp_id"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
        <result property="delFlag" column="del_flag"/>
  </resultMap>
</mapper>
platformx-business-finance-biz/src/main/resources/mapper/ProductMapper.xml
New file
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.by4cloud.platformx.business.mapper.ProductMapper">
  <resultMap id="productMap" type="com.by4cloud.platformx.business.entity.Product">
        <id property="id" column="id"/>
        <result property="categoryId" column="category_id"/>
        <result property="productName" column="product_name"/>
        <result property="erpCode" column="erp_code"/>
        <result property="mainCode" column="main_code"/>
        <result property="price" column="price"/>
        <result property="taxRate" column="tax_rate"/>
        <result property="compId" column="comp_id"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
        <result property="delFlag" column="del_flag"/>
  </resultMap>
</mapper>
platformx-business-finance-biz/src/main/resources/mapper/ProductionPlanMapper.xml
New file
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.by4cloud.platformx.business.mapper.ProductionPlanMapper">
  <resultMap id="productionPlanMap" type="com.by4cloud.platformx.business.entity.ProductionPlan">
        <id property="id" column="id"/>
        <result property="productionPlanName" column="production_plan_name"/>
        <result property="productionPlanNo" column="production_plan_no"/>
        <result property="contractName" column="contract_name"/>
        <result property="contractNo" column="contract_no"/>
        <result property="contractType" column="contract_type"/>
        <result property="partyaid" column="partyaid"/>
        <result property="partya" column="partya"/>
        <result property="partybid" column="partybid"/>
        <result property="partyb" column="partyb"/>
        <result property="attribute" column="attribute"/>
        <result property="supplyAttribute" column="supply_attribute"/>
        <result property="currency" column="currency"/>
        <result property="amount" column="amount"/>
        <result property="signDate" column="sign_date"/>
        <result property="approveTime" column="approve_time"/>
        <result property="effectiveDate" column="effective_date"/>
        <result property="expirationDate" column="expiration_date"/>
        <result property="remark" column="remark"/>
        <result property="status" column="status"/>
        <result property="compId" column="comp_id"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
        <result property="delFlag" column="del_flag"/>
  </resultMap>
</mapper>
platformx-business-finance-biz/src/main/resources/mapper/SalesManMapper.xml
New file
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.by4cloud.platformx.business.mapper.SalesManMapper">
  <resultMap id="salesManMap" type="com.by4cloud.platformx.business.entity.SalesMan">
        <id property="id" column="id"/>
        <result property="customerId" column="customer_id"/>
        <result property="salesName" column="sales_name"/>
        <result property="salesNo" column="sales_no"/>
        <result property="phone" column="phone"/>
        <result property="compId" column="comp_id"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
        <result property="delFlag" column="del_flag"/>
  </resultMap>
</mapper>