From 0d704977a91adb83c3ff9c1769fe4b73fc54a565 Mon Sep 17 00:00:00 2001 From: futian.liu <liufutianyoo@163.com> Date: 星期四, 21 十二月 2023 17:29:38 +0800 Subject: [PATCH] 采购单模板下载和导入 --- deploy-jar-single/src/main/resources/import/采购导入.xls | 0 admin-web/src/views/stock/procure/purchaseOrder/index.vue | 4 consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java | 96 ++++++++++++++++++++++++++++++++ consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java | 2 consum-base/src/main/java/com/consum/base/pojo/excel/ImportProcureOrderTemplate.java | 40 +++++++++++++ 5 files changed, 140 insertions(+), 2 deletions(-) diff --git a/admin-web/src/views/stock/procure/purchaseOrder/index.vue b/admin-web/src/views/stock/procure/purchaseOrder/index.vue index 41c550d..fa78cbb 100644 --- a/admin-web/src/views/stock/procure/purchaseOrder/index.vue +++ b/admin-web/src/views/stock/procure/purchaseOrder/index.vue @@ -223,7 +223,7 @@ dialogShow: false, fileSettings: { data: {}, - uploadUrl: getBaseUrl() + '/pc/fin/sys/tenant/import', // 涓婁紶鍦板潃 + uploadUrl: getBaseUrl() + '/pc/whForm/procure/import', // 涓婁紶鍦板潃 accept: '.xls', // 鏍煎紡 type: 'text', // 鍥炴樉褰㈠紡 loading: false, // 瀵煎叆鏁堟灉 @@ -231,7 +231,7 @@ /* 妯℃澘涓嬭浇 */ templateSettings: { templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О - templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate', // 涓嬭浇鍦板潃 + templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate?type=procure', // 涓嬭浇鍦板潃 }, onSuccess: null, }, diff --git a/consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java b/consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java index 963bfc0..0020fdd 100644 --- a/consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java +++ b/consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java @@ -406,6 +406,8 @@ fileName = "鏈烘瀯瀵煎叆妯℃澘.xls"; } else if ("goods".equals(type)) { fileName = "鐗╁搧淇℃伅.xls"; + } else if ("procure".equals(type)) { + fileName = "閲囪喘瀵煎叆.xls"; } Resource resource = new ClassPathResource("import/" + fileName); // 鑾峰彇鏂囦欢杈撳叆娴� 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("瀵煎叆鎴愬姛!"); + } + } diff --git a/consum-base/src/main/java/com/consum/base/pojo/excel/ImportProcureOrderTemplate.java b/consum-base/src/main/java/com/consum/base/pojo/excel/ImportProcureOrderTemplate.java new file mode 100644 index 0000000..bb8e692 --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/pojo/excel/ImportProcureOrderTemplate.java @@ -0,0 +1,40 @@ +package com.consum.base.pojo.excel; + +import com.alibaba.excel.annotation.ExcelProperty; + +import lombok.Data; + +/** + * @author asus + * @version 1.0 + * @description: 閲囪喘鍗曞鍏� + * @date 2023/12/21 16:51 + */ +@Data +public class ImportProcureOrderTemplate { + + @ExcelProperty("鍏ュ簱鏈烘瀯") + private String agencyName; + @ExcelProperty("鍏ュ簱浠撳簱") + private String warehouseName; + @ExcelProperty("閲囪喘绫诲瀷") + private String type; + @ExcelProperty("鐗╁搧涓�绾у垎绫�") + private String categoryOne; + @ExcelProperty("鐗╁搧浜岀骇鍒嗙被") + private String categoryTwo; + @ExcelProperty("鐗╁搧涓夌骇鍒嗙被") + private String categoryThree; + @ExcelProperty("鐗╁搧鍚嶇О") + private String goodsName; + @ExcelProperty("瑙勬牸鍨嬪彿") + private String goodModelName; + @ExcelProperty("渚涜揣鍟�") + private String supplierName; + @ExcelProperty("鏁伴噺鍗曚綅") + private String unit; + @ExcelProperty("鍗曚环(鍏�)") + private String price; + @ExcelProperty("鍏ュ簱鏁伴噺") + private String num; +} diff --git "a/deploy-jar-single/src/main/resources/import/\351\207\207\350\264\255\345\257\274\345\205\245.xls" "b/deploy-jar-single/src/main/resources/import/\351\207\207\350\264\255\345\257\274\345\205\245.xls" new file mode 100644 index 0000000..3a7ca55 --- /dev/null +++ "b/deploy-jar-single/src/main/resources/import/\351\207\207\350\264\255\345\257\274\345\205\245.xls" Binary files differ -- Gitblit v1.9.1