From e804d20b0793eeefc8e298e93d05cce9b38f58f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?yinjinlu-pc=5C=E5=B0=B9=E9=87=91=E8=B7=AF?= <411641505@qq.com> Date: Mon, 8 Jan 2024 17:56:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BE=9B=E5=BA=94=E5=95=86=E7=9A=84=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E5=AF=BC=E5=87=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/md/controller/MdVendorController.java | 22 ++++++++ .../ktg/mes/md/service/IMdVendorService.java | 10 ++++ .../md/service/impl/MdVendorServiceImpl.java | 56 +++++++++++++++++++ 3 files changed, 88 insertions(+) diff --git a/ktg-mes/src/main/java/com/ktg/mes/md/controller/MdVendorController.java b/ktg-mes/src/main/java/com/ktg/mes/md/controller/MdVendorController.java index 951f0ef..a4d359c 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/md/controller/MdVendorController.java +++ b/ktg-mes/src/main/java/com/ktg/mes/md/controller/MdVendorController.java @@ -4,6 +4,7 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; import com.ktg.common.constant.UserConstants; +import com.ktg.common.core.domain.entity.SysUser; import com.ktg.mes.wm.utils.WmBarCodeUtil; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; @@ -23,6 +24,7 @@ import com.ktg.mes.md.domain.MdVendor; import com.ktg.mes.md.service.IMdVendorService; import com.ktg.common.utils.poi.ExcelUtil; import com.ktg.common.core.page.TableDataInfo; +import org.springframework.web.multipart.MultipartFile; /** * 供应商Controller @@ -64,6 +66,26 @@ public class MdVendorController extends BaseController util.exportExcel(response, list, "供应商数据"); } + @PostMapping("/importTemplate") + public void importTemplate(HttpServletResponse response) + { + ExcelUtil util = new ExcelUtil(MdVendor.class); + util.importTemplateExcel(response, "供应商数据"); + } + + + @Log(title = "供应商", businessType = BusinessType.IMPORT) + @PreAuthorize("@ss.hasPermi('system:user:import')") + @PostMapping("/importData") + public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception + { + ExcelUtil util = new ExcelUtil(MdVendor.class); + List vendorList = util.importExcel(file.getInputStream()); + String operName = getUsername(); + String message = mdVendorService.importVendor(vendorList, updateSupport, operName); + return AjaxResult.success(message); + } + /** * 获取供应商详细信息 */ diff --git a/ktg-mes/src/main/java/com/ktg/mes/md/service/IMdVendorService.java b/ktg-mes/src/main/java/com/ktg/mes/md/service/IMdVendorService.java index 11802f6..435556b 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/md/service/IMdVendorService.java +++ b/ktg-mes/src/main/java/com/ktg/mes/md/service/IMdVendorService.java @@ -31,6 +31,16 @@ public interface IMdVendorService public String checkVendorNameUnique(MdVendor mdVendor); public String checkVendorNickUnique(MdVendor mdVendor); + /** + * 导入供应商信息 + * @param vendorList + * @param isUpdateSupport + * @param operName + * @return + */ + public String importVendor(List vendorList, Boolean isUpdateSupport, String operName); + + /** * 新增供应商 * diff --git a/ktg-mes/src/main/java/com/ktg/mes/md/service/impl/MdVendorServiceImpl.java b/ktg-mes/src/main/java/com/ktg/mes/md/service/impl/MdVendorServiceImpl.java index 873e50a..96101e6 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/md/service/impl/MdVendorServiceImpl.java +++ b/ktg-mes/src/main/java/com/ktg/mes/md/service/impl/MdVendorServiceImpl.java @@ -3,8 +3,11 @@ package com.ktg.mes.md.service.impl; import java.util.List; import com.ktg.common.constant.UserConstants; +import com.ktg.common.core.domain.entity.SysUser; +import com.ktg.common.exception.ServiceException; import com.ktg.common.utils.DateUtils; import com.ktg.common.utils.StringUtils; +import com.ktg.common.utils.bean.BeanValidators; import org.apache.catalina.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -12,6 +15,8 @@ import com.ktg.mes.md.mapper.MdVendorMapper; import com.ktg.mes.md.domain.MdVendor; import com.ktg.mes.md.service.IMdVendorService; +import javax.validation.Validator; + /** * 供应商Service业务层处理 * @@ -24,6 +29,9 @@ public class MdVendorServiceImpl implements IMdVendorService @Autowired private MdVendorMapper mdVendorMapper; + @Autowired + protected Validator validator; + /** * 查询供应商 * @@ -78,6 +86,54 @@ public class MdVendorServiceImpl implements IMdVendorService return UserConstants.UNIQUE; } + @Override + public String importVendor(List vendorList, Boolean isUpdateSupport, String operName) { + if (StringUtils.isNull(vendorList) || vendorList.size() == 0) + { + throw new ServiceException("导入供应商数据不能为空!"); + } + int successNum = 0; + int failureNum = 0; + StringBuilder successMsg = new StringBuilder(); + StringBuilder failureMsg = new StringBuilder(); + for (MdVendor vendor : vendorList) + { + try{ + //是否存在 + MdVendor v = mdVendorMapper.checkVendorCodeUnique(vendor); + if(StringUtils.isNull(v)){ + BeanValidators.validateWithException(validator, vendor); + this.insertMdVendor(vendor); + successNum++; + }else if (isUpdateSupport){ + BeanValidators.validateWithException(validator, vendor); + vendor.setUpdateBy(operName); + vendor.setVendorId(v.getVendorId()); + this.updateMdVendor(vendor); + successNum++; + }else { + failureNum++; + failureMsg.append("
" + failureNum + "、供应商 " + vendor.getVendorName() + " 已存在"); + } + + }catch (Exception e){ + failureNum++; + String msg = "
" + failureNum + "、供应商 " + vendor.getVendorName() + " 导入失败:"; + failureMsg.append(msg + e.getMessage()); + } + if (failureNum > 0) + { + failureMsg.insert(0, "导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); + throw new ServiceException(failureMsg.toString()); + } + else + { + successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:"); + } + } + return successMsg.toString(); + } + /** * 新增供应商 *