From 3be9cfcb6b59366b936821966d20a998a6895f9f Mon Sep 17 00:00:00 2001 From: 黎星凯 <13949086503@163.com> Date: 星期二, 30 四月 2024 14:38:13 +0800 Subject: [PATCH] bug41、42修改 --- consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java | 150 +++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 130 insertions(+), 20 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 f0cc2f3..e6538a8 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,21 +1,50 @@ package com.consum.base.controller; -import cn.afterturn.easypoi.excel.ExcelExportUtil; -import cn.afterturn.easypoi.excel.entity.TemplateExportParams; -import cn.hutool.core.util.ReflectUtil; +import java.io.IOException; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.compress.utils.Lists; +import org.apache.poi.ss.usermodel.Workbook; +import org.springframework.beans.BeanUtils; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +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.EasyExcelFactory; +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.*; +import com.consum.base.pojo.response.FormProcureVO; +import com.consum.base.pojo.response.GoodsModelVO; +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.base.service.core.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; @@ -24,19 +53,14 @@ import com.walker.infrastructure.utils.CollectionUtils; import com.walker.infrastructure.utils.DateUtils; import com.walker.web.ResponseValue; + +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.entity.TemplateExportParams; +import cn.hutool.core.util.ReflectUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; -import org.apache.commons.compress.utils.Lists; -import org.apache.poi.ss.usermodel.Workbook; -import org.springframework.beans.BeanUtils; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; -import java.lang.reflect.Field; -import java.util.*; /** * @ClassName LWhFormProcureController @@ -57,6 +81,8 @@ private LWhFormProcureCoreService lWhFormProcureCoreService; @Resource private LWhProcureModelService lWhProcureModelService; + @Resource + private BaseCategoryService baseCategoryService; /** * @Description 鏂板 @@ -125,8 +151,6 @@ } try { Field fieldDatas = GenericPager.class.getDeclaredField("datas"); - // fieldDatas.setAccessible(true); - // fieldDatas.set(genericPager, result); ReflectUtil.setFieldValue(genericPager, fieldDatas, result); } catch (Exception e) { e.printStackTrace(); @@ -192,7 +216,7 @@ * 鏍规嵁id鏌ヨ璇︽儏 */ @GetMapping("/detail") - public ResponseValue getById(Long id) throws IllegalAccessException { + public ResponseValue getById(Long id) throws Exception { if (id == null) { return ResponseValue.error("閲囪喘鍗昳d涓虹┖"); } @@ -265,7 +289,7 @@ if (sysInfo == null) { return ResponseValue.error("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�"); } - formProcureQry.setAgencyId(Long.valueOf(sysInfo.getTenantId())); + // formProcureQry.setAgencyId(Long.valueOf(sysInfo.getTenantId())); GenericPager genericPager = lWhFormProcureService.queryFormProcureDetailList(formProcureQry); return ResponseValue.success(genericPager); } @@ -274,7 +298,7 @@ @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "閲囪喘鍗昳d", required = true, dataType = "Long", paramType = "query")}) @GetMapping("/list/export") - public String export(Long id, HttpServletResponse response) throws Exception { + public ResponseValue<String> export(Long id, HttpServletResponse response) throws Exception { TemplateExportParams params = new TemplateExportParams("import/閲囪喘鍏ュ簱鍗�.xls"); params.setHeadingStartRow(2); FinSysTenantUser sysInfo = this.getSysInfo(); @@ -305,7 +329,93 @@ map.put("totalAmount", totalAmount); Workbook workbook = ExcelExportUtil.exportExcel(params, ProcureExcelTemplate.class, exportList, map); - return downLoadExcel("閲囪喘鍏ュ簱鍗�", response, workbook); + String filePath = downLoadExcel("閲囪喘鍏ュ簱鍗�", workbook); + return ResponseValue.success("瀵煎嚭鎴愬姛", filePath); } + + @ApiOperation(value = "閲囪喘鍗曞鍏�", notes = "閲囪喘鍗曞鍏�") + @PostMapping("/import") + public ResponseValue upload(MultipartFile file) throws IOException { + String originalFilename = file.getOriginalFilename(); + if (!".xls".endsWith(originalFilename)) { + return ResponseValue.error("鏂囦欢鏍煎紡鏈夎!"); + } + FinSysTenantUser sysInfo = this.getSysInfo(); + if (sysInfo == null) { + return ResponseValue.error("褰撳墠鐧诲綍鐢ㄦ埛涓虹┖"); + } + EasyExcelFactory.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