From 02452f33ce18738c10a79566afb025cd03362393 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期四, 28 五月 2026 10:37:32 +0800
Subject: [PATCH] 厂家管理
---
src/main/java/com/ruoyi/stock/pojo/StockInventory.java | 3
src/main/java/com/ruoyi/stock/service/impl/ManufacturerServiceImpl.java | 130 ++++++++++
src/main/java/com/ruoyi/stock/execl/ManufacturerExcelDto.java | 35 ++
src/main/java/com/ruoyi/stock/dto/ManufacturerDto.java | 12 +
src/main/java/com/ruoyi/stock/mapper/ManufacturerMapper.java | 29 ++
src/main/java/com/ruoyi/stock/pojo/Manufacturer.java | 143 +++++++++++
src/main/java/com/ruoyi/stock/controller/ManufacturerController.java | 152 ++++++++++++
doc/万通新型建材.sql | 29 ++
src/main/java/com/ruoyi/stock/service/ManufacturerService.java | 71 +++++
src/main/resources/mapper/stock/ManufacturerMapper.xml | 93 +++++++
src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java | 1
11 files changed, 698 insertions(+), 0 deletions(-)
diff --git "a/doc/\344\270\207\351\200\232\346\226\260\345\236\213\345\273\272\346\235\220.sql" "b/doc/\344\270\207\351\200\232\346\226\260\345\236\213\345\273\272\346\235\220.sql"
index 508e3d5..d9a8a9b 100644
--- "a/doc/\344\270\207\351\200\232\346\226\260\345\236\213\345\273\272\346\235\220.sql"
+++ "b/doc/\344\270\207\351\200\232\346\226\260\345\236\213\345\273\272\346\235\220.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 '缁存姢浜篒D',
+ maintain_time datetime null comment '缁存姢鏃堕棿',
+ create_time datetime null comment '鍒涘缓鏃堕棿',
+ create_user bigint not null default 0 comment '鍒涘缓浜篒D',
+ update_time datetime null comment '鏇存柊鏃堕棿',
+ update_user bigint not null default 0 comment '鏇存柊浜篒D',
+ 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';
diff --git a/src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java b/src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java
index 506a9d8..a9929b4 100644
--- a/src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java
+++ b/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"),
diff --git a/src/main/java/com/ruoyi/stock/controller/ManufacturerController.java b/src/main/java/com/ruoyi/stock/controller/ManufacturerController.java
new file mode 100644
index 0000000..2c567a4
--- /dev/null
+++ b/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, "鍘傚妗f妯℃澘");
+ }
+
+ /**
+ * 鍘傚瀵煎叆
+ */
+ @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());
+ }
+}
diff --git a/src/main/java/com/ruoyi/stock/dto/ManufacturerDto.java b/src/main/java/com/ruoyi/stock/dto/ManufacturerDto.java
new file mode 100644
index 0000000..ee06ccb
--- /dev/null
+++ b/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;
+}
diff --git a/src/main/java/com/ruoyi/stock/execl/ManufacturerExcelDto.java b/src/main/java/com/ruoyi/stock/execl/ManufacturerExcelDto.java
new file mode 100644
index 0000000..39c6b39
--- /dev/null
+++ b/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;
+}
diff --git a/src/main/java/com/ruoyi/stock/mapper/ManufacturerMapper.java b/src/main/java/com/ruoyi/stock/mapper/ManufacturerMapper.java
new file mode 100644
index 0000000..d519f8d
--- /dev/null
+++ b/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);
+}
diff --git a/src/main/java/com/ruoyi/stock/pojo/Manufacturer.java b/src/main/java/com/ruoyi/stock/pojo/Manufacturer.java
new file mode 100644
index 0000000..56adea9
--- /dev/null
+++ b/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;
+
+ /**
+ * 缁存姢浜篒D
+ */
+ @ApiModelProperty("缁存姢浜篒D")
+ private Long maintainUserId;
+
+ /**
+ * 缁存姢鏃堕棿
+ */
+ @ApiModelProperty("缁存姢鏃堕棿")
+ private LocalDateTime maintainTime;
+
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ /**
+ * 鍒涘缓浜篒D
+ */
+ @ApiModelProperty("鍒涘缓浜篒D")
+ @TableField(fill = FieldFill.INSERT)
+ private Long createUser;
+
+ /**
+ * 鏇存柊鏃堕棿
+ */
+ @ApiModelProperty("鏇存柊鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ /**
+ * 鏇存柊浜篒D
+ */
+ @ApiModelProperty("鏇存柊浜篒D")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Long updateUser;
+
+ /**
+ * 绉熸埛ID
+ */
+ @ApiModelProperty("绉熸埛ID")
+ @TableField(fill = FieldFill.INSERT)
+ private Long tenantId;
+
+ /**
+ * 鏄惁鐧藉悕鍗�
+ */
+ @ApiModelProperty("鏄惁鐧藉悕鍗�")
+ private Long isWhite;
+}
diff --git a/src/main/java/com/ruoyi/stock/pojo/StockInventory.java b/src/main/java/com/ruoyi/stock/pojo/StockInventory.java
index 5652ec7..fde3329 100644
--- a/src/main/java/com/ruoyi/stock/pojo/StockInventory.java
+++ b/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;
+
}
diff --git a/src/main/java/com/ruoyi/stock/service/ManufacturerService.java b/src/main/java/com/ruoyi/stock/service/ManufacturerService.java
new file mode 100644
index 0000000..dded3ee
--- /dev/null
+++ b/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);
+}
diff --git a/src/main/java/com/ruoyi/stock/service/impl/ManufacturerServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/ManufacturerServiceImpl.java
new file mode 100644
index 0000000..c0b859a
--- /dev/null
+++ b/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;
+ }
+ }
+}
diff --git a/src/main/resources/mapper/stock/ManufacturerMapper.xml b/src/main/resources/mapper/stock/ManufacturerMapper.xml
new file mode 100644
index 0000000..794ac6e
--- /dev/null
+++ b/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>
--
Gitblit v1.9.3