liding
18 小时以前 befc0e5606ab7c913dda0346152a4150d0ee5f79
供应商,客户优化
已修改12个文件
已添加1个文件
485 ■■■■ 文件已修改
basic-server/src/main/java/com/ruoyi/basic/controller/CustomerController.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/controller/SupplyController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/dto/CustomerDto.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/dto/SupplyDto.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/entity/Customer.java 187 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/entity/Supply.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/CustomerService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/SupplyService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/impl/SupplyServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/resources/db/migration/postgresql/V20250530152701__create_table_supply.sql 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/resources/db/migration/postgresql/V20250530171701__create_table_customer.sql 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/service/impl/PurchaseRegistrationServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/controller/CustomerController.java
@@ -1,12 +1,20 @@
package com.ruoyi.basic.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.basic.dto.CustomerDto;
import com.ruoyi.basic.entity.Customer;
import com.ruoyi.basic.service.CustomerService;
import com.ruoyi.common.core.domain.R;
import jakarta.servlet.http.HttpServletResponse;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * <p>
 * å‰ç«¯æŽ§åˆ¶å™¨
 * å®¢æˆ·ä¿¡æ¯ å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author ruoyi
@@ -18,4 +26,46 @@
@RequestMapping("/customer")
public class CustomerController {
    private CustomerService customerService;
    /**
     * æŸ¥è¯¢
     */
    @GetMapping("/list")
    public R<IPage<Customer>> list(Page page, CustomerDto customerDto) {
        IPage<Customer> list = customerService.selectCustomerList(page, customerDto);
        return R.ok(list);
    }
    /**
     * å®¢æˆ·list
     */
    @GetMapping("/customerList")
    public R<List<Customer>> list() {
        return R.ok(customerService.customerList());
    }
    /**
     * æ–°å¢žä¿®æ”¹
     */
    @PostMapping("/addOrEditCustomer")
    public R addOrEditSupply(@RequestBody CustomerDto customerDto) {
        return R.ok(customerService.addOrEditCustomer(customerDto));
    }
    /**
     * åˆ é™¤
     */
    @DeleteMapping("/delCustomer")
    public R remove(@RequestBody Long[] ids) {
        return R.ok(customerService.delCustomerByIds(ids));
    }
    /**
     * å®¢æˆ·ä¿¡æ¯å¯¼å‡º
     */
    @PostMapping("/export")
    public void supplierExport(HttpServletResponse response, CustomerDto customerDto) {
        customerService.customerExport(response, customerDto);
    }
}
basic-server/src/main/java/com/ruoyi/basic/controller/SupplyController.java
@@ -6,6 +6,7 @@
import com.ruoyi.basic.entity.Supply;
import com.ruoyi.basic.service.SupplyService;
import com.ruoyi.common.core.domain.R;
import jakarta.servlet.http.HttpServletResponse;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
@@ -60,4 +61,12 @@
        return R.ok(supplyService.delSupplyByIds(ids));
    }
    /**
     * ä¾›åº”商导出
     */
    @PostMapping("/export")
    public void supplierExport(HttpServletResponse response, SupplyDto supplyDto) {
        supplyService.supplyExport(response, supplyDto);
    }
}
basic-server/src/main/java/com/ruoyi/basic/dto/CustomerDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.ruoyi.basic.dto;
import com.ruoyi.basic.entity.Customer;
import lombok.Data;
import java.util.List;
@Data
public class CustomerDto extends Customer {
    /**
     * ç»è¥åœ°å€çœå¸‚区ids
     */
    private List<Long> bids;
    /**
     * è”系地址省市区ids
     */
    private List<Long> cids;
    private String searchAll;
    private List<Long> ids;
}
basic-server/src/main/java/com/ruoyi/basic/dto/SupplyDto.java
@@ -19,4 +19,6 @@
    private List<Long> cids;
    private String searchAll;
    private List<Long> ids;
}
basic-server/src/main/java/com/ruoyi/basic/entity/Customer.java
@@ -1,105 +1,106 @@
package com.ruoyi.basic.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.MyBaseEntity;
import lombok.Data;
    import com.ruoyi.common.core.domain.BaseEntity;
/**
*  å®žä½“ç±»
*
* @author ruoyi
* @date 2025-06-03
*/
 * å®žä½“ç±»
 *
 * @author ruoyi
 * @date 2025-06-03
 */
@Data
@TableName("customer")
public class Customer extends MyBaseEntity {
private static final long serialVersionUID = 1L;
    private static final long serialVersionUID = 1L;
        /**
        * å®¢æˆ·å”¯ä¸€æ ‡è¯†ï¼Œä¸»é”®
        */
            @TableId(value = "id", type = IdType.AUTO)
        private Long id;
        /**
        * å®¢æˆ·åç§°ï¼Œä¸èƒ½ä¸ºç©º
        */
            @TableField(value = "customer_name")
        private String customerName;
        /**
        * çº³ç¨Žäººè¯†åˆ«å·ï¼Œä¸­å›½å¤§é™†ä¸ºç»Ÿä¸€ç¤¾ä¼šä¿¡ç”¨ä»£ç ï¼Œä¸èƒ½ä¸ºç©º
        */
            @TableField(value = "taxpayer_id")
        private String taxpayerId;
        /**
        * ç»è¥åœ°å€æ‰€åœ¨çœä»½çš„地区ID,默认0
        */
            @TableField(value = "business_province_id")
        private Long businessProvinceId;
        /**
        * ç»è¥åœ°å€æ‰€åœ¨åŸŽå¸‚的地区ID,默认0
        */
            @TableField(value = "business_city_id")
        private Long businessCityId;
        /**
        * ç»è¥åœ°å€æ‰€åœ¨åŒºåŽ¿çš„åœ°åŒºID,默认0
        */
            @TableField(value = "business_district_id")
        private Long businessDistrictId;
        /**
        * ç»è¥è¯¦ç»†åœ°å€ï¼Œé»˜è®¤ç©ºå­—符串
        */
            @TableField(value = "business_address")
        private String businessAddress;
        /**
        * é“¶è¡Œè´¦æˆ·å·ç ï¼Œé»˜è®¤ç©ºå­—符串
        */
            @TableField(value = "bank_account")
        private String bankAccount;
        /**
        * å¼€æˆ·é“¶è¡Œåç§°ï¼Œé»˜è®¤ç©ºå­—符串
        */
            @TableField(value = "bank_name")
        private String bankName;
        /**
        * å®¢æˆ·è”系人姓名,默认空字符串
        */
            @TableField(value = "contact_person")
        private String contactPerson;
        /**
        * è”系人电话号码,默认空字符串
        */
            @TableField(value = "contact_phone")
        private String contactPhone;
        /**
        * è”系地址所在省份的地区ID,默认0
        */
            @TableField(value = "province_id")
        private Long provinceId;
        /**
        * è”系地址所在城市的地区ID,默认0
        */
            @TableField(value = "city_id")
        private Long cityId;
        /**
        * è”系地址所在区县的地区ID,默认0
        */
            @TableField(value = "district_id")
        private Long districtId;
        /**
        * è”系详细地址,默认空字符串
        */
            @TableField(value = "contact_address")
        private String contactAddress;
        /**
        * åˆ›å»ºè¯¥è®°å½•的用户ID,默认0
        */
            @TableField(value = "create_user")
        private Long createUser;
        /**
        * æœ€åŽä¿®æ”¹è¯¥è®°å½•的用户ID,默认0
        */
            @TableField(value = "update_user")
        private Long updateUser;
    /**
     * å®¢æˆ·å”¯ä¸€æ ‡è¯†ï¼Œä¸»é”®
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * å®¢æˆ·åç§°ï¼Œä¸èƒ½ä¸ºç©º
     */
    @Excel(name = "客户名称")
    @TableField(value = "customer_name")
    private String customerName;
    /**
     * çº³ç¨Žäººè¯†åˆ«å·ï¼Œä¸­å›½å¤§é™†ä¸ºç»Ÿä¸€ç¤¾ä¼šä¿¡ç”¨ä»£ç ï¼Œä¸èƒ½ä¸ºç©º
     */
    @Excel(name = "纳税人识别号")
    @TableField(value = "taxpayer_id")
    private String taxpayerId;
    /**
     * ç»è¥åœ°å€æ‰€åœ¨çœä»½çš„地区ID,默认0
     */
    @TableField(value = "business_province_id")
    private Long businessProvinceId;
    /**
     * ç»è¥åœ°å€æ‰€åœ¨åŸŽå¸‚的地区ID,默认0
     */
    @TableField(value = "business_city_id")
    private Long businessCityId;
    /**
     * ç»è¥åœ°å€æ‰€åœ¨åŒºåŽ¿çš„åœ°åŒºID,默认0
     */
    @TableField(value = "business_district_id")
    private Long businessDistrictId;
    /**
     * ç»è¥è¯¦ç»†åœ°å€ï¼Œé»˜è®¤ç©ºå­—符串
     */
    @Excel(name = "经营详细地址")
    @TableField(value = "business_address")
    private String businessAddress;
    /**
     * é“¶è¡Œè´¦æˆ·å·ç ï¼Œé»˜è®¤ç©ºå­—符串
     */
    @Excel(name = "银行账户")
    @TableField(value = "bank_account")
    private String bankAccount;
    /**
     * å¼€æˆ·é“¶è¡Œåç§°ï¼Œé»˜è®¤ç©ºå­—符串
     */
    @Excel(name = "开户行")
    @TableField(value = "bank_name")
    private String bankName;
    /**
     * å®¢æˆ·è”系人姓名,默认空字符串
     */
    @Excel(name = "联系人")
    @TableField(value = "contact_person")
    private String contactPerson;
    /**
     * è”系人电话号码,默认空字符串
     */
    @Excel(name = "联系人电话")
    @TableField(value = "contact_phone")
    private String contactPhone;
    /**
     * è”系地址所在省份的地区ID,默认0
     */
    @TableField(value = "province_id")
    private Long provinceId;
    /**
     * è”系地址所在城市的地区ID,默认0
     */
    @TableField(value = "city_id")
    private Long cityId;
    /**
     * è”系地址所在区县的地区ID,默认0
     */
    @TableField(value = "district_id")
    private Long districtId;
    /**
     * è”系详细地址,默认空字符串
     */
    @Excel(name = "联系详细地址")
    @TableField(value = "contact_address")
    private String contactAddress;
}
basic-server/src/main/java/com/ruoyi/basic/entity/Supply.java
@@ -1,6 +1,10 @@
package com.ruoyi.basic.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.MyBaseEntity;
import lombok.Data;
@@ -25,42 +29,50 @@
     * ä¾›åº”商全称,业务场景中唯一识别的名称,
     */
    @TableField(value = "supplier_name")
    @Excel(name = "供应商")
    private String supplierName;
    /**
     * ä¾›åº”商税务登记唯一标识(如统一社会信用代码),用于财税管理
     */
    @TableField(value = "taxpayer_id")
    @Excel(name = "税号")
    private String taxpayerId;
    /**
     * ä¾›åº”商营业执照注册地址或主要经营场所,默认空字符串
     */
    @TableField(value = "business_address")
    @Excel(name = "注册地址")
    private String businessAddress;
    /**
     * ä¾›åº”商收款银行账户信息,默认空字符串,用于资金往来
     */
    @TableField(value = "bank_account")
    @Excel(name = "银行账户")
    private String bankAccount;
    /**
     * ä¾›åº”商银行账户的开户机构名称,默认空字符串,
     */
    @TableField(value = "bank_name")
    @Excel(name = "银行账户")
    private String bankName;
    /**
     * ä¾›åº”商业务对接人姓名
     */
    @TableField(value = "contact_person")
    @Excel(name = "联系人")
    private String contactPerson;
    /**
     * ä¾›åº”商联系人的联系地址
     */
    @TableField(value = "contact_address")
    @Excel(name = "联系地址")
    private String contactAddress;
    /**
     * è”系人的电话
     */
    @TableField(value = "contact_phone")
    @Excel(name = "联系电话")
    private String contactPhone;
    /**
     * ä¾›åº”商所在省份的ID(关联地址字典表),默认0
basic-server/src/main/java/com/ruoyi/basic/service/CustomerService.java
@@ -1,7 +1,13 @@
package com.ruoyi.basic.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.basic.dto.CustomerDto;
import com.ruoyi.basic.entity.Customer;
import jakarta.servlet.http.HttpServletResponse;
import java.util.List;
/**
 * <p>
@@ -13,4 +19,13 @@
 */
public interface CustomerService extends IService<Customer> {
    IPage<Customer> selectCustomerList(Page page, CustomerDto customerDto);
    List<Customer> customerList();
    int addOrEditCustomer(CustomerDto customerDto);
    int delCustomerByIds(Long[] ids);
    void customerExport(HttpServletResponse response, CustomerDto customerDto);
}
basic-server/src/main/java/com/ruoyi/basic/service/SupplyService.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.basic.dto.SupplyDto;
import com.ruoyi.basic.entity.Supply;
import jakarta.servlet.http.HttpServletResponse;
import java.util.List;
@@ -25,4 +26,6 @@
    int delSupplyByIds(Long[] ids);
    List<Supply> supplyList();
    void supplyExport(HttpServletResponse response, SupplyDto supplyDto);
}
basic-server/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
@@ -1,11 +1,23 @@
package com.ruoyi.basic.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.dto.CustomerDto;
import com.ruoyi.basic.entity.Customer;
import com.ruoyi.basic.mapper.CustomerMapper;
import com.ruoyi.basic.service.CustomerService;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.util.List;
import java.util.Objects;
/**
 * <p>
@@ -18,5 +30,95 @@
@Service
@RequiredArgsConstructor
public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> implements CustomerService {
    private final CustomerMapper customerMapper;
    @Override
    public IPage<Customer> selectCustomerList(Page page, CustomerDto customerDto) {
        LambdaQueryWrapper<Customer> queryWrapper = new LambdaQueryWrapper<>();
        // å…¨å±€æ¨¡ç³Šæœç´¢å­—段
        if (StringUtils.hasText(customerDto.getSearchAll())) {
            String keyword = customerDto.getSearchAll();
            queryWrapper.and(wrapper -> wrapper
                    .like(Customer::getCustomerName, keyword)
                    .or()
                    .like(Customer::getTaxpayerId, keyword)
                    .or()
                    .like(Customer::getBusinessAddress, keyword)
            );
        } else {
            // å•独条件查询
            if (StringUtils.hasText(customerDto.getCustomerName())) {
                queryWrapper.like(Customer::getCustomerName, customerDto.getCustomerName());
            }
            if (StringUtils.hasText(customerDto.getTaxpayerId())) {
                queryWrapper.like(Customer::getTaxpayerId, customerDto.getTaxpayerId());
            }
            if (StringUtils.hasText(customerDto.getBusinessAddress())) {
                queryWrapper.like(Customer::getBusinessAddress, customerDto.getBusinessAddress());
            }
        }
        // é»˜è®¤æŒ‰åˆ›å»ºæ—¶é—´å€’序排列
        queryWrapper.orderByDesc(Customer::getCreateTime);
        return customerMapper.selectPage(page, queryWrapper);
    }
    @Override
    public List<Customer> customerList() {
        return customerMapper.selectList(null);
    }
    @Override
    public int addOrEditCustomer(CustomerDto customerDto) {
        Customer customer = new Customer();
        BeanUtils.copyProperties(customerDto, customer);
        if (customerDto.getBids().size() != 3) {
            throw new RuntimeException("请选择经营地址省市区");
        }
        if (customerDto.getCids().size() != 3) {
            throw new RuntimeException("请选择联系地址省市区");
        }
        customer.setBusinessProvinceId(customerDto.getBids().get(0));
        customer.setBusinessCityId(customerDto.getBids().get(1));
        customer.setBusinessDistrictId(customerDto.getBids().get(2));
        customer.setProvinceId(customerDto.getCids().get(0));
        customer.setCityId(customerDto.getCids().get(1));
        customer.setDistrictId(customerDto.getCids().get(2));
        if (Objects.isNull(customerDto.getId())) {
            return customerMapper.insert(customer);
        } else {
            return customerMapper.updateById(customer);
        }
    }
    @Override
    public int delCustomerByIds(Long[] ids) {
        // æ£€æŸ¥å‚æ•°
        if (ids == null || ids.length == 0) {
            return 0;
        }
        // æž„造更新条件
        UpdateWrapper<Customer> updateWrapper = new UpdateWrapper<>();
        updateWrapper.in("id", ids)
                .set("deleted", 1);  // è®¾ç½® deleted ä¸º 1 è¡¨ç¤ºå·²åˆ é™¤
        // æ‰§è¡Œæ‰¹é‡é€»è¾‘删除
        return customerMapper.update(null, updateWrapper);
    }
    @Override
    public void customerExport(HttpServletResponse response, CustomerDto customerDto) {
        List<Long> ids = customerDto.getIds();
        List<Customer> list;
        if (ids != null && ids.size() > 0) {
            list = customerMapper.selectByIds(ids);
        } else {
            list = customerMapper.selectList(null);
        }
        ExcelUtil<Customer> util = new ExcelUtil<>(Customer.class);
        util.exportExcel(response, list, "客户数据");
    }
}
basic-server/src/main/java/com/ruoyi/basic/service/impl/SupplyServiceImpl.java
@@ -10,6 +10,8 @@
import com.ruoyi.basic.mapper.SupplyMapper;
import com.ruoyi.basic.service.SupplyService;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
@@ -104,6 +106,19 @@
    }
    @Override
    public void supplyExport(HttpServletResponse response, SupplyDto supplyDto) {
        List<Long> ids = supplyDto.getIds();
        List<Supply> list;
        if (ids != null && ids.size() > 0) {
            list = supplyMapper.selectByIds(ids);
        } else {
            list = supplyMapper.selectList(null);
        }
        ExcelUtil<Supply> util = new ExcelUtil<>(Supply.class);
        util.exportExcel(response, list, "供应商数据");
    }
    @Override
    public List<Supply> supplyList() {
        return supplyMapper.selectList(null);
    }
basic-server/src/main/resources/db/migration/postgresql/V20250530152701__create_table_supply.sql
@@ -3,24 +3,25 @@
CREATE TABLE supply
(
    id               BIGSERIAL PRIMARY KEY,
    supplier_name    VARCHAR(255) NOT NULL,                             -- ä¾›åº”商名称
    taxpayer_id      VARCHAR(255) NOT NULL,                             -- çº³ç¨Žäººè¯†åˆ«å·
    business_address VARCHAR(255) NOT NULL    DEFAULT '',               -- ç»è¥åœ°å€
    bank_account     VARCHAR(255) NOT NULL    DEFAULT '',               -- é“¶è¡Œè´¦å·
    bank_name        VARCHAR(255) NOT NULL    DEFAULT '',               -- å¼€æˆ·è¡Œ
    contact_person   VARCHAR(255) NOT NULL    DEFAULT '',               -- è”系人
    contact_address  VARCHAR(255) NOT NULL    DEFAULT '',               -- è”系地址
    b_province_id      BIGINT       NOT NULL    DEFAULT 0,              -- ç»è¥åœ°å€çœid
    b_city_id          BIGINT       NOT NULL    DEFAULT 0,              -- ç»è¥åœ°å€å¸‚id
    b_district_id      BIGINT       NOT NULL    DEFAULT 0,              -- ç»è¥åœ°å€åŒºid
    c_province_id      BIGINT       NOT NULL    DEFAULT 0,              -- è”系地址省id
    c_city_id          BIGINT       NOT NULL    DEFAULT 0,              -- è”系地址市id
    c_district_id      BIGINT       NOT NULL    DEFAULT 0,              -- è”系地址区id
    deleted          int4         NOT NULL DEFAULT 0,                 -- æ˜¯å¦åˆ é™¤ï¼ˆè½¯åˆ é™¤æ ‡å¿—)
    create_by        VARCHAR(255),                                    -- åˆ›å»ºäºº
    supplier_name    VARCHAR(255) NOT NULL,                              -- ä¾›åº”商名称
    taxpayer_id      VARCHAR(255) NOT NULL,                              -- çº³ç¨Žäººè¯†åˆ«å·
    business_address VARCHAR(255) NOT NULL    DEFAULT '',                -- ç»è¥åœ°å€
    bank_account     VARCHAR(255) NOT NULL    DEFAULT '',                -- é“¶è¡Œè´¦å·
    bank_name        VARCHAR(255) NOT NULL    DEFAULT '',                -- å¼€æˆ·è¡Œ
    contact_person   VARCHAR(255) NOT NULL    DEFAULT '',                -- è”系人
    contact_address  VARCHAR(255) NOT NULL    DEFAULT '',                -- è”系地址
    b_province_id    BIGINT       NOT NULL    DEFAULT 0,                 -- ç»è¥åœ°å€çœid
    b_city_id        BIGINT       NOT NULL    DEFAULT 0,                 -- ç»è¥åœ°å€å¸‚id
    b_district_id    BIGINT       NOT NULL    DEFAULT 0,                 -- ç»è¥åœ°å€åŒºid
    c_province_id    BIGINT       NOT NULL    DEFAULT 0,                 -- è”系地址省id
    c_city_id        BIGINT       NOT NULL    DEFAULT 0,                 -- è”系地址市id
    c_district_id    BIGINT       NOT NULL    DEFAULT 0,                 -- è”系地址区id
    deleted          int4         NOT NULL    DEFAULT 0,                 -- æ˜¯å¦åˆ é™¤ï¼ˆè½¯åˆ é™¤æ ‡å¿—)
    create_by        VARCHAR(255),                                       -- åˆ›å»ºäºº
    create_time      TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, -- åˆ›å»ºæ—¶é—´ï¼Œé»˜è®¤å½“前时间
    update_by        VARCHAR(255),                                    -- æœ€åŽæ›´æ–°äºº
    update_time      TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP  -- æœ€åŽæ›´æ–°æ—¶é—´ï¼Œé»˜è®¤å½“前时间
    update_by        VARCHAR(255),                                       -- æœ€åŽæ›´æ–°äºº
    update_time      TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, -- æœ€åŽæ›´æ–°æ—¶é—´ï¼Œé»˜è®¤å½“前时间
    contact_phone    VARCHAR(255)                                        -- è”系人电话
);
-- è¡¨æ³¨é‡Šï¼šä¾›åº”商信息表,存储供应商基本信息(含地址层级关联)
basic-server/src/main/resources/db/migration/postgresql/V20250530171701__create_table_customer.sql
@@ -17,11 +17,12 @@
    city_id          INT8       NOT NULL    DEFAULT 0,                  -- è”系地址市
    district_id      INT8       NOT NULL    DEFAULT 0,                  -- è”系地址区
    contact_address  VARCHAR(255) NOT NULL    DEFAULT '',               -- è”系详细地址
    create_time      TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,-- åˆ›å»ºæ—¶é—´
    update_time      TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,-- ä¿®æ”¹æ—¶é—´
    create_user      INT8       NOT NULL    ,                           -- åˆ›å»ºç”¨æˆ·
    update_user      INT8       NOT NULL    ,                           -- ä¿®æ”¹ç”¨æˆ·
    deleted          INT2         NOT NULL    DEFAULT 0                 -- åˆ é™¤æ ‡è®° 0未删除 1已删除
    deleted           INT          NOT NULL    DEFAULT 0,                 -- è½¯åˆ é™¤æ ‡å¿—:0=未删除,1=已删除
    create_by         VARCHAR(255),                                       -- åˆ›å»ºäººç”¨æˆ·å
    create_time       TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, -- åˆ›å»ºæ—¶é—´ï¼Œé»˜è®¤å½“前时间
    update_by         VARCHAR(255),                                       -- æœ€åŽæ›´æ–°äººç”¨æˆ·å
    update_time       TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP  -- æœ€åŽæ›´æ–°æ—¶é—´ï¼Œé»˜è®¤å½“前时间
);
COMMENT ON COLUMN customer.id IS '客户唯一标识,主键';
@@ -39,9 +40,10 @@
COMMENT ON COLUMN customer.city_id IS '联系地址所在城市的地区ID,默认0';
COMMENT ON COLUMN customer.district_id IS '联系地址所在区县的地区ID,默认0';
COMMENT ON COLUMN customer.contact_address IS '联系详细地址,默认空字符串';
COMMENT ON COLUMN customer.create_time IS '记录创建时间,默认当前时间';
COMMENT ON COLUMN customer.update_time IS '记录最后修改时间,默认当前时间';
COMMENT ON COLUMN customer.create_user IS '创建该记录的用户ID,默认0';
COMMENT ON COLUMN customer.update_user IS '最后修改该记录的用户ID,默认0';
COMMENT ON COLUMN customer.deleted IS '软删除标志,0=未删除,1=已删除';
-- æ–°å¢žå­—段的注释
COMMENT ON COLUMN customer.deleted IS '软删除标志,true表示已删除';
COMMENT ON COLUMN customer.create_by IS '创建人用户名';
COMMENT ON COLUMN customer.create_time IS '记录创建时间';
COMMENT ON COLUMN customer.update_by IS '最后更新人用户名';
COMMENT ON COLUMN customer.update_time IS '记录最后更新时间';
main-business/src/main/java/com/ruoyi/business/service/impl/PurchaseRegistrationServiceImpl.java
@@ -41,6 +41,7 @@
    public int addOrEditPR(PurchaseRegistrationDto purchaseRegistrationDto) {
        PurchaseRegistration purchaseRegistration = new PurchaseRegistration();
        BeanUtils.copyProperties(purchaseRegistrationDto,purchaseRegistration);
        if (Objects.isNull(purchaseRegistrationDto.getId())) {
            return purchaseRegistrationMapper.insert(purchaseRegistration);
        } else {