huminmin
3 天以前 02452f33ce18738c10a79566afb025cd03362393
厂家管理
已添加8个文件
已修改3个文件
698 ■■■■■ 文件已修改
doc/万通新型建材.sql 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/controller/ManufacturerController.java 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/dto/ManufacturerDto.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/execl/ManufacturerExcelDto.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/mapper/ManufacturerMapper.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/pojo/Manufacturer.java 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/pojo/StockInventory.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/service/ManufacturerService.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/service/impl/ManufacturerServiceImpl.java 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/stock/ManufacturerMapper.xml 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
doc/ÍòͨÐÂÐͽ¨²Ä.sql
@@ -1,3 +1,4 @@
## è¡¥è´´é…ç½®
drop table if exists subsidy_configuration;
create table subsidy_configuration
(
@@ -14,3 +15,31 @@
    add night_days decimal(16, 4) default 0 not null comment '夜班天数',
    add meal_amount decimal(16, 4) default 0 not null comment '餐补',
    add night_amount decimal(16, 4) default 0 not null comment '夜班补贴';
## ç”Ÿäº§åނ商
drop table if exists manufacturer;
create table manufacturer
(
    id                          bigint auto_increment
        primary key,
    name               varchar(255) not null default '' comment '厂商名称',
    taxpayer_identification_num varchar(128) not null default '' comment '纳税人识别号',
    company_address             varchar(255) not null default '' comment '厂商地址',
    type                        varchar(25) not null default '' comment '厂商类型',
    company_phone               varchar(64) not null default '' comment '厂商电话',
    bank_account_name           varchar(128) not null default '' comment '银行账户名称',
    bank_account_num            varchar(128) not null default '' comment '银行账户号码',
    contact_user_name           varchar(255) not null default '' comment '联系人姓名',
    contact_user_phone          varchar(128) not null default '' comment '联系人电话',
    maintain_user_id            bigint not null default 0 comment '维护人ID',
    maintain_time               datetime null comment '维护时间',
    create_time                 datetime null comment '创建时间',
    create_user                 bigint not null default 0 comment '创建人ID',
    update_time                 datetime null comment '更新时间',
    update_user                 bigint not null default 0 comment '更新人ID',
    tenant_id                   bigint not null default 0 comment '租户ID',
    is_white                    bigint not null default 0 comment '是否白名单'
);
alter table stock_inventory
    add manufacturer_id bigint not null default 0 comment '厂商id';
src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java
@@ -33,6 +33,7 @@
    STOCK_UNINVENTORY("stock_uninventory"),
    STOCK_INVENTORY("stock_inventory"),
    STOCK_IN_RECORD("stock_in_record"),
    MANUFACTURER("manufacturer"),
    // Staff
    STAFF_WORK_EXPERIENCE("staff_work_experience"),
    STAFF_SALARY_MAIN("staff_salary_main"),
src/main/java/com/ruoyi/stock/controller/ManufacturerController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,152 @@
package com.ruoyi.stock.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.stock.dto.ManufacturerDto;
import com.ruoyi.stock.pojo.Manufacturer;
import com.ruoyi.stock.service.ManufacturerService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import lombok.AllArgsConstructor;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
 * <p>
 * åŽ‚å®¶å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-05-28 09:52:35
 */
@RestController
@RequestMapping("/stock/manufacturer")
@AllArgsConstructor
@Tag(name = "厂家管理")
public class ManufacturerController {
    private ManufacturerService manufacturerService;
    /**
     * åŽ‚å®¶æ–°å¢ž
     * @param manufacturer
     * @return
     */
    @PostMapping("/add")
    @Log(title = "厂家-新增", businessType = BusinessType.INSERT)
    @Operation(summary = "新增厂家")
    public AjaxResult add(@RequestBody Manufacturer manufacturer) {
        manufacturerService.saveManufacturer(manufacturer);
        return AjaxResult.success();
    }
    /**
     * åŽ‚å®¶åˆ é™¤
     * @param ids
     * @return
     */
    @DeleteMapping("/del")
    @Log(title = "厂家-删除", businessType = BusinessType.DELETE)
    @Operation(summary = "删除厂家")
    public AjaxResult delManufacturer(@RequestBody List<Long> ids) {
        if(CollectionUtils.isEmpty(ids)){
            return AjaxResult.error("请选择至少一条数据");
        }
        manufacturerService.delManufacturer(ids);
        return AjaxResult.success();
    }
    /**
     * åŽ‚å®¶è¯¦æƒ…
     * @param id
     * @return
     */
    @GetMapping("/{id}")
    @Log(title = "厂家-详情", businessType = BusinessType.OTHER)
    @Operation(summary = "厂家详情")
    public AjaxResult manufacturerDetail(@PathVariable("id") Long id) {
        return AjaxResult.success(manufacturerService.manufacturerDetail(id));
    }
    /**
     * åŽ‚å®¶ä¿®æ”¹
     * @param manufacturer
     * @return
     */
    @PostMapping("/update")
    @Log(title = "厂家-修改", businessType = BusinessType.UPDATE)
    @Operation(summary = "修改厂家")
    public AjaxResult update(@RequestBody Manufacturer manufacturer) {
        manufacturerService.manufacturerUpdate(manufacturer);
        return AjaxResult.success();
    }
    /**
     * åŽ‚å®¶ç®¡ç†åˆ†é¡µæŸ¥è¯¢
     * @param page
     * @param manufacturerDto
     * @return
     */
    @GetMapping("/listPage")
    @Log(title = "厂家-分页查询", businessType = BusinessType.OTHER)
    @Operation(summary = "厂家分页查询")
    public AjaxResult manufacturerListPage(Page page, ManufacturerDto manufacturerDto) {
        return AjaxResult.success(manufacturerService.manufacturerListPage(page, manufacturerDto));
    }
    /**
     * åŽ‚å®¶å¯¼å‡º
     * @param response
     * @param manufacturerDto
     */
    @PostMapping("/export")
    @Log(title = "厂家-导出", businessType = BusinessType.EXPORT)
    @Operation(summary = "厂家导出")
    public void manufacturerExport(HttpServletResponse response, ManufacturerDto manufacturerDto) {
        manufacturerService.manufacturerExport(response, manufacturerDto);
    }
    /**
     * ä¸‹è½½æ¨¡æ¿
     * @param response
     */
    @PostMapping("/downloadTemplate")
    @Log(title = "厂家-下载模板", businessType = BusinessType.EXPORT)
    @Operation(summary = "下载厂家模板")
    public void downloadTemplate(HttpServletResponse response) {
        ExcelUtil<Manufacturer> util = new ExcelUtil<>(Manufacturer.class);
        util.importTemplateExcel(response, "厂家档案模板");
    }
    /**
     * åނ家坼入
     */
    @PostMapping("/import")
    @Log(title = "厂家-导入", businessType = BusinessType.IMPORT)
    @Operation(summary = "导入厂家")
    public AjaxResult importData(MultipartFile file) {
        Boolean b = manufacturerService.importData(file);
        if (b) {
            return AjaxResult.success("导入成功");
        }
        return AjaxResult.error("导入失败");
    }
    /**
     * åŽ‚å®¶é€‰é¡¹æŽ¥å£
     * @return
     */
    @GetMapping("/getOptions")
    @Log(title = "厂家-选项接口", businessType = BusinessType.OTHER)
    @Operation(summary = "获取厂家选项")
    public AjaxResult getOptions() {
        return AjaxResult.success(manufacturerService.list());
    }
}
src/main/java/com/ruoyi/stock/dto/ManufacturerDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
package com.ruoyi.stock.dto;
import com.ruoyi.stock.pojo.Manufacturer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class ManufacturerDto extends Manufacturer {
    @Schema(description = "维护人员名称")
    private String maintainUserName;
}
src/main/java/com/ruoyi/stock/execl/ManufacturerExcelDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
package com.ruoyi.stock.execl;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import lombok.Data;
@Data
public class ManufacturerExcelDto {
    @Excel(name = "厂家名称")
    private String name;
    @Excel(name = "纳税人识别号")
    private String taxpayerIdentificationNum;
    @Excel(name = "公司地址")
    private String companyAddress;
    @Excel(name = "公司电话")
    private String companyPhone;
    @Excel(name = "开户行")
    private String bankAccountName;
    @Excel(name = "账号")
    private String bankAccountNum;
    @Excel(name = "联系人")
    private String contactUserName;
    @Excel(name = "联系电话")
    private String contactUserPhone;
    @Excel(name = "维护人")
    private String maintainUserName;
}
src/main/java/com/ruoyi/stock/mapper/ManufacturerMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
package com.ruoyi.stock.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.basic.dto.SupplierManageDto;
import com.ruoyi.basic.pojo.SupplierManage;
import com.ruoyi.stock.dto.ManufacturerDto;
import com.ruoyi.stock.execl.ManufacturerExcelDto;
import com.ruoyi.stock.pojo.Manufacturer;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * <p>
 *  Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-05-28 09:52:35
 */
@Mapper
public interface ManufacturerMapper extends BaseMapper<Manufacturer> {
    IPage<Manufacturer> manufacturerListPage(Page page, @Param("manufacturerDto") ManufacturerDto manufacturerDto);
    List<ManufacturerExcelDto> manufacturerExportList(@Param("manufacturerDto") ManufacturerDto manufacturerDto);
}
src/main/java/com/ruoyi/stock/pojo/Manufacturer.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,143 @@
package com.ruoyi.stock.pojo;
import com.baomidou.mybatisplus.annotation.FieldFill;
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 io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * <p>
 *
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-05-28 09:52:35
 */
@Getter
@Setter
@ToString
@TableName("manufacturer")
@ApiModel(value = "Manufacturer对象", description = "")
public class Manufacturer implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * åŽ‚å•†åç§°
     */
    @ApiModelProperty("厂商名称")
    private String name;
    /**
     * çº³ç¨Žäººè¯†åˆ«å·
     */
    @ApiModelProperty("纳税人识别号")
    private String taxpayerIdentificationNum;
    /**
     * åŽ‚å•†åœ°å€
     */
    @ApiModelProperty("厂商地址")
    private String companyAddress;
    /**
     * åŽ‚å•†ç±»åž‹
     */
    @ApiModelProperty("厂商类型")
    private String type;
    /**
     * åŽ‚å•†ç”µè¯
     */
    @ApiModelProperty("厂商电话")
    private String companyPhone;
    /**
     * é“¶è¡Œè´¦æˆ·åç§°
     */
    @ApiModelProperty("银行账户名称")
    private String bankAccountName;
    /**
     * é“¶è¡Œè´¦æˆ·å·ç 
     */
    @ApiModelProperty("银行账户号码")
    private String bankAccountNum;
    /**
     * è”系人姓名
     */
    @ApiModelProperty("联系人姓名")
    private String contactUserName;
    /**
     * è”系人电话
     */
    @ApiModelProperty("联系人电话")
    private String contactUserPhone;
    /**
     * ç»´æŠ¤äººID
     */
    @ApiModelProperty("维护人ID")
    private Long maintainUserId;
    /**
     * ç»´æŠ¤æ—¶é—´
     */
    @ApiModelProperty("维护时间")
    private LocalDateTime maintainTime;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    /**
     * åˆ›å»ºäººID
     */
    @ApiModelProperty("创建人ID")
    @TableField(fill = FieldFill.INSERT)
    private Long createUser;
    /**
     * æ›´æ–°æ—¶é—´
     */
    @ApiModelProperty("更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    /**
     * æ›´æ–°äººID
     */
    @ApiModelProperty("更新人ID")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updateUser;
    /**
     * ç§Ÿæˆ·ID
     */
    @ApiModelProperty("租户ID")
    @TableField(fill = FieldFill.INSERT)
    private Long tenantId;
    /**
     * æ˜¯å¦ç™½åå•
     */
    @ApiModelProperty("是否白名单")
    private Long isWhite;
}
src/main/java/com/ruoyi/stock/pojo/StockInventory.java
@@ -72,4 +72,7 @@
    @TableField(fill = FieldFill.INSERT)
    private Long deptId;
    @Schema(description = "厂商id")
    private Long manufacturerId;
}
src/main/java/com/ruoyi/stock/service/ManufacturerService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,71 @@
package com.ruoyi.stock.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.stock.dto.ManufacturerDto;
import com.ruoyi.stock.pojo.Manufacturer;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
 * <p>
 * åŽ‚å•†æœåŠ¡æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-05-28 09:52:35
 */
public interface ManufacturerService extends IService<Manufacturer> {
    /**
     * åŽ‚å•†æ–°å¢ž
     * @param manufacturer
     */
    void saveManufacturer(Manufacturer manufacturer);
    /**
     * åŽ‚å•†åˆ é™¤
     * @param ids
     * @return
     */
    int delManufacturer(List<Long> ids);
    /**
     * åŽ‚å•†è¯¦æƒ…
     * @param id
     * @return
     */
    Manufacturer manufacturerDetail(Long id);
    /**
     * åŽ‚å•†ä¿®æ”¹
     * @param manufacturer
     * @return
     */
    int manufacturerUpdate(Manufacturer manufacturer);
    /**
     * åŽ‚å•†åˆ†é¡µæŸ¥è¯¢
     * @param page
     * @param manufacturerDto
     * @return
     */
    IPage<Manufacturer> manufacturerListPage(Page page, ManufacturerDto manufacturerDto);
    /**
     * åŽ‚å•†å¯¼å‡º
     * @param response
     * @param manufacturerDto
     */
    void manufacturerExport(HttpServletResponse response, ManufacturerDto manufacturerDto);
    /**
     * åނ商坼入
     * @param file
     * @return
     */
    Boolean importData(MultipartFile file);
}
src/main/java/com/ruoyi/stock/service/impl/ManufacturerServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,130 @@
package com.ruoyi.stock.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.excel.SupplierManageExcelDto;
import com.ruoyi.basic.pojo.SupplierManage;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.stock.dto.ManufacturerDto;
import com.ruoyi.stock.execl.ManufacturerExcelDto;
import com.ruoyi.stock.mapper.ManufacturerMapper;
import com.ruoyi.stock.mapper.StockInventoryMapper;
import com.ruoyi.stock.pojo.Manufacturer;
import com.ruoyi.stock.pojo.StockInventory;
import com.ruoyi.stock.service.ManufacturerService;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
 * <p>
 * åŽ‚å•†æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-05-28 09:52:35
 */
@Service
@RequiredArgsConstructor
public class ManufacturerServiceImpl extends ServiceImpl<ManufacturerMapper, Manufacturer> implements ManufacturerService {
    private final StockInventoryMapper stockInventoryMapper;
    private final ManufacturerMapper manufacturerMapper;
    /**
     * åŽ‚å•†æ–°å¢ž
     */
    @Override
    @Transactional
    public void saveManufacturer(Manufacturer manufacturer) {
        LambdaQueryWrapper<Manufacturer> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(Manufacturer::getName,manufacturer.getName());
        if (baseMapper.selectCount(queryWrapper) > 0) {
            throw new RuntimeException("供应商已存在");
        }
        baseMapper.insert(manufacturer);
    }
    /**
     * åŽ‚å•†åˆ é™¤
     */
    @Override
    @Transactional
    public int delManufacturer(List<Long> ids) {
        // æ‰¹é‡æ£€æŸ¥æ˜¯å¦å…³è”库存
        LambdaQueryWrapper<StockInventory> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.in(StockInventory::getManufacturerId, ids);
        List<StockInventory> inventoryList = stockInventoryMapper.selectList(queryWrapper);
        if (!inventoryList.isEmpty()) {
            throw new RuntimeException("厂商已关联库存,无法删除");
        }
        return baseMapper.deleteBatchIds(ids);
    }
    /**
     * åŽ‚å•†è¯¦æƒ…
     */
    @Override
    public Manufacturer manufacturerDetail(Long id) {
        return baseMapper.selectById(id);
    }
    /**
     * åŽ‚å•†ä¿®æ”¹
     */
    @Override
    @Transactional
    public int manufacturerUpdate(Manufacturer manufacturer) {
        return baseMapper.updateById(manufacturer);
    }
    /**
     * åŽ‚å•†åˆ†é¡µæŸ¥è¯¢
     */
    @Override
    public IPage<Manufacturer> manufacturerListPage(Page page, ManufacturerDto manufacturerDto) {
        return manufacturerMapper.manufacturerListPage(page,manufacturerDto);
    }
    /**
     * åŽ‚å•†å¯¼å‡º
     */
    @Override
    public void manufacturerExport(HttpServletResponse response, ManufacturerDto manufacturerDto) {
        List<ManufacturerExcelDto> list = manufacturerMapper.manufacturerExportList(manufacturerDto);
        ExcelUtil<ManufacturerExcelDto> util = new ExcelUtil<>(ManufacturerExcelDto.class);
        util.exportExcel(response, list, "厂商数据");
    }
    /**
     * åނ商坼入
     */
    @Override
    @Transactional
    public Boolean importData(MultipartFile file) {
        try {
            ExcelUtil<Manufacturer> util = new ExcelUtil<>(Manufacturer.class);
            List<Manufacturer> list = util.importExcel(file.getInputStream());
            if (list != null && !list.isEmpty()) {
                this.saveBatch(list);
            }
            return true;
        } catch (Exception e) {
            log.error("导入失败", e);
            return false;
        }
    }
}
src/main/resources/mapper/stock/ManufacturerMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,93 @@
<?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.ruoyi.stock.mapper.ManufacturerMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.stock.pojo.Manufacturer">
        <id column="id" property="id" />
        <result column="name" property="name" />
        <result column="taxpayer_identification_num" property="taxpayerIdentificationNum" />
        <result column="company_address" property="companyAddress" />
        <result column="type" property="type" />
        <result column="company_phone" property="companyPhone" />
        <result column="bank_account_name" property="bankAccountName" />
        <result column="bank_account_num" property="bankAccountNum" />
        <result column="contact_user_name" property="contactUserName" />
        <result column="contact_user_phone" property="contactUserPhone" />
        <result column="maintain_user_id" property="maintainUserId" />
        <result column="maintain_time" property="maintainTime" />
        <result column="create_time" property="createTime" />
        <result column="create_user" property="createUser" />
        <result column="update_time" property="updateTime" />
        <result column="update_user" property="updateUser" />
        <result column="tenant_id" property="tenantId" />
        <result column="is_white" property="isWhite" />
    </resultMap>
    <select id="manufacturerListPage" resultType="com.ruoyi.stock.dto.ManufacturerDto">
        SELECT
        T1.id,
        T1.name,
        T1.taxpayer_identification_num,
        T1.company_address,
        T1.company_phone,
        T1.bank_account_name,
        T1.bank_account_num,
        T1.contact_user_name,
        T1.contact_user_phone,
        T1.maintain_user_id,
        T1.maintain_time,
        T1.create_time,
        T1.create_user,
        T1.update_time,
        T1.update_user,
        T1.tenant_id,
        T1.is_white,
        T2.nick_name AS maintainUserName,
        T1.type
        FROM manufacturer T1
        LEFT JOIN sys_user T2 ON T1.maintain_user_id = T2.user_id
        <where>
            <if test="manufacturerDto.name != null and manufacturerDto.name != '' ">
                AND T1.name LIKE CONCAT('%',#{manufacturerDto.name},'%')
            </if>
            <if test="manufacturerDto.isWhite != null">
                AND T1.is_white = #{manufacturerDto.isWhite}
            </if>
        </where>
        order by T1.create_time desc
    </select>
    <select id="manufacturerExportList" resultType="com.ruoyi.stock.execl.ManufacturerExcelDto">
        SELECT
        T1.id,
        T1.name,
        T1.type,
        T1.taxpayer_identification_num,
        T1.company_address,
        T1.company_phone,
        T1.bank_account_name,
        T1.bank_account_num,
        T1.contact_user_name,
        T1.contact_user_phone,
        T1.maintain_user_id,
        T1.maintain_time,
        T1.create_time,
        T1.create_user,
        T1.update_time,
        T1.update_user,
        T1.tenant_id,
        T1.is_white,
        T2.nick_name AS maintainUserName
        FROM manufacturer T1
        LEFT JOIN sys_user T2 ON T1.maintain_user_id = T2.user_id
        <where>
            <if test="manufacturerDto.name != null and manufacturerDto.name != '' ">
                AND T1.name LIKE CONCAT('%',#{manufacturerDto.name},'%')
            </if>
            <if test="manufacturerDto.isWhite != null">
                AND T1.is_white = #{manufacturerDto.isWhite}
            </if>
        </where>
    </select>
</mapper>