From 0d704977a91adb83c3ff9c1769fe4b73fc54a565 Mon Sep 17 00:00:00 2001 From: futian.liu <liufutianyoo@163.com> Date: 星期四, 21 十二月 2023 17:29:38 +0800 Subject: [PATCH] 采购单模板下载和导入 --- consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java | 96 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 96 insertions(+), 0 deletions(-) diff --git a/consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java b/consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java index f485cc4..08d3500 100644 --- a/consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java +++ b/consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java @@ -1,5 +1,6 @@ package com.consum.base.controller; +import java.io.IOException; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.HashMap; @@ -18,13 +19,19 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import com.alibaba.excel.exception.ExcelDataConvertException; import com.consum.base.BaseController; import com.consum.base.core.utils.CommonUtil; import com.consum.base.core.utils.PageUtil; import com.consum.base.pojo.LWhFormProcureGoodsInfoParam; import com.consum.base.pojo.LWhFormProcureParam; import com.consum.base.pojo.dto.GoodModelInfoDTO; +import com.consum.base.pojo.excel.ImportProcureOrderTemplate; import com.consum.base.pojo.excel.ProcureExcelTemplate; import com.consum.base.pojo.query.FormProcureQry; import com.consum.base.pojo.response.FormProcureVO; @@ -32,10 +39,12 @@ import com.consum.base.pojo.response.GoodsTemplateCountVO; import com.consum.base.pojo.response.GoodsTemplateInfoVO; import com.consum.base.pojo.response.LWhFormProcureExtendVO; +import com.consum.base.service.BaseCategoryService; import com.consum.base.service.LWhFormProcureGoodsService; import com.consum.base.service.LWhFormProcureService; import com.consum.base.service.LWhProcureModelService; import com.consum.base.service.impl.LWhFormProcureCoreService; +import com.consum.model.po.BaseCategory; import com.consum.model.po.FinSysTenantUser; import com.consum.model.po.LWhFormProcure; import com.consum.model.po.LWhFormProcureGoods; @@ -72,6 +81,8 @@ private LWhFormProcureCoreService lWhFormProcureCoreService; @Resource private LWhProcureModelService lWhProcureModelService; + @Resource + private BaseCategoryService baseCategoryService; /** * @Description 鏂板 @@ -322,4 +333,89 @@ return ResponseValue.success("瀵煎嚭鎴愬姛", filePath); } + + @ApiOperation(value = "閲囪喘鍗曞鍏�", notes = "閲囪喘鍗曞鍏�") + @PostMapping("/import") + public ResponseValue upload(MultipartFile file) throws IOException { + String originalFilename = file.getOriginalFilename(); + if (!originalFilename.endsWith(".xls")) { + return ResponseValue.error("鏂囦欢鏍煎紡鏈夎!"); + } + FinSysTenantUser sysInfo = this.getSysInfo(); + if (sysInfo == null) { + return ResponseValue.error("褰撳墠鐧诲綍鐢ㄦ埛涓虹┖"); + } + EasyExcel.read(file.getInputStream(), ImportProcureOrderTemplate.class, + new AnalysisEventListener<ImportProcureOrderTemplate>() { + List<LWhFormProcureParam> list = Lists.newArrayList(); + + @Override + public void invoke(ImportProcureOrderTemplate data, AnalysisContext analysisContext) { + String categoryOne = data.getCategoryOne(); + String categoryTwo = data.getCategoryTwo(); + String categoryThree = data.getCategoryThree(); + String goodsName = data.getGoodsName(); + String goodModelName = data.getGoodModelName(); + String unit = data.getUnit(); + String type = data.getType(); + String agencyName = data.getAgencyName(); + String warehouseName = data.getWarehouseName(); + String supplierName = data.getSupplierName(); + String price = data.getPrice(); + String num = data.getNum(); + + BaseCategory baseCategory = baseCategoryService.getByCategoryByName(categoryThree); + Long categoryId = baseCategory.getId(); + + // Optional<BaseGoodsTemplateParam> optional = + // list.stream().filter(item -> item.getCategoryId().equals(categoryId)).findFirst(); + // + // if (optional.isPresent()) { + // BaseGoodsModels baseGoodsModels = new BaseGoodsModels(); + // baseGoodsModels.setModelName(goodModelName); + // baseGoodsModels.setUnit(unit); + // optional.get().getModels().add(baseGoodsModels); + // } else { + // BaseGoodsTemplateParam baseGoodsTemplate = new BaseGoodsTemplateParam(); + // baseGoodsTemplate.setCategoryId(categoryId); + // baseGoodsTemplate.setGoodsName(goodsName); + // baseGoodsTemplate.setStates(1); + // FinSysTenant finSysTenant = finSysTenantService.selectByName(agencyName); + // baseGoodsTemplate.setAgencyId(finSysTenant.getId()); + // baseGoodsTemplate.setAgencyName(agencyName); + // + // List<BaseGoodsModels> models = new ArrayList<>(); + // BaseGoodsModels baseGoodsModels = new BaseGoodsModels(); + // baseGoodsModels.setModelName(goodModelName); + // baseGoodsModels.setUnit(unit); + // models.add(baseGoodsModels); + // baseGoodsTemplate.setModels(models); + // + // list.add(baseGoodsTemplate); + // } + } + + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + for (LWhFormProcureParam procureParam : list) { + // lWhFormProcureService.add(procureParam, null); + } + } + + @Override + public void onException(Exception exception, AnalysisContext analysisContext) throws Exception { + if (exception instanceof ExcelDataConvertException) { + ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException)exception; + Integer row = excelDataConvertException.getRowIndex() + 1; + Integer column = excelDataConvertException.getColumnIndex() + 1; + throw new RuntimeException("绗�" + row + "琛岋紝绗�" + column + "鍒楄В鏋愬紓甯革紝璇锋纭~鍐�"); + } else { + throw new RuntimeException(exception.getMessage()); + } + } + }).sheet(0).doRead(); + + return ResponseValue.success("瀵煎叆鎴愬姛!"); + } + } -- Gitblit v1.9.1