From 2c706a5d58e8315980ea92d6b82e0e4959bad8ca Mon Sep 17 00:00:00 2001 From: futian.liu <liufutianyoo@163.com> Date: 星期一, 11 十二月 2023 17:44:40 +0800 Subject: [PATCH] 1.修改单据导出 2.修改物品信息导入 --- consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java | 97 +++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 95 insertions(+), 2 deletions(-) diff --git a/consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java b/consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java index d37cff6..da2fb8c 100644 --- a/consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java +++ b/consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java @@ -1,5 +1,6 @@ package com.consum.base.controller; +import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -12,23 +13,32 @@ 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.MapUtils; import com.consum.base.core.utils.MapperUtil; import com.consum.base.pojo.BaseGoodsTemplateParam; +import com.consum.base.pojo.excel.ImportGoodsInfoTemplate; import com.consum.base.pojo.response.GoodsTemplateVO; import com.consum.base.service.BaseGoodsTemplateService; import com.consum.base.service.BaseWarehouseService; +import com.consum.base.service.FinSysTenantService; import com.consum.base.service.LWhGoodsService; import com.consum.model.po.BaseGoodsModels; import com.consum.model.po.BaseGoodsTemplate; import com.consum.model.po.BaseWarehouse; +import com.consum.model.po.FinSysTenant; import com.consum.model.po.FinSysTenantUser; import com.consum.model.po.SDictData; import com.consum.model.vo.BaseGoodsTemplateVo; import com.walker.db.page.GenericPager; +import com.walker.infrastructure.utils.DateUtils; import com.walker.infrastructure.utils.StringUtils; import com.walker.web.ResponseValue; @@ -53,6 +63,9 @@ @Autowired private BaseWarehouseService baseWarehouseService; + + @Autowired + private FinSysTenantService finSysTenantService; /** * @Description 鏂板鐗╁搧妯℃澘 @@ -220,8 +233,9 @@ @GetMapping("/query/goodsTemplate") public ResponseValue queryGoodsTemplateByCategoryId(Long agencyId, Long categoryId) { + // TODO 涓嶉檺鍒舵満鏋� List<BaseGoodsTemplate> list = - this.baseGoodsTemplateService.queryGoodsTemplateByCategoryId(agencyId, categoryId, null, null); + this.baseGoodsTemplateService.queryGoodsTemplateByCategoryId(null, categoryId, null, null); if (list == null) { return ResponseValue.error("鏌ヨ澶辫触锛�"); } @@ -250,7 +264,9 @@ String sql = "SELECT DISTINCT bgt.id,bgt.GOODS_NAME, CLASSIFICATION type FROM l_wh_goods g LEFT JOIN base_goods_template bgt ON g.BASE_GOODS_TEMPLATE_ID = bgt.id " - + "WHERE WAREHOUSE_TYPE = 0 " + "AND WAREHOUSE_ID = :warehouseId " + "AND CATEGORY_ID = :categoryId " + + "WHERE WAREHOUSE_TYPE = 0 " + "AND WAREHOUSE_ID = :warehouseId " + // TODO 涓存椂瑙e喅 + /*+ "AND CATEGORY_ID = :categoryId "*/ // 1:闆嗛噰,2:鑷噰 + "AND BUY_TYPE =1"; @@ -263,4 +279,81 @@ return ResponseValue.success("鏌ヨ鎴愬姛!", resultList); } + @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(), ImportGoodsInfoTemplate.class, + new AnalysisEventListener<ImportGoodsInfoTemplate>() { + List<BaseGoodsTemplateParam> list = Lists.newArrayList(); + + @Override + public void invoke(ImportGoodsInfoTemplate data, AnalysisContext analysisContext) { + String categoryOne = data.getCategoryOne(); + String categoryTwo = data.getCategoryTwo(); + String categoryThree = data.getCategoryThree(); + String goodName = data.getGoodName(); + String goodModel = data.getGoodModel(); + String unit = data.getUnit(); + String type = data.getType(); + String agencyName = data.getAgencyName(); + + list.stream().forEach(item -> { + if (!item.getCategoryId().equals(categoryThree)) { + BaseGoodsTemplateParam baseGoodsTemplate = new BaseGoodsTemplateParam(); + baseGoodsTemplate.setCategoryId(Long.valueOf(categoryThree)); + baseGoodsTemplate.setGoodsName(goodName); + baseGoodsTemplate.setStates(1); + FinSysTenant finSysTenant = finSysTenantService.selectByName(agencyName); + baseGoodsTemplate.setAgencyId(finSysTenant.getId()); + + List<BaseGoodsModels> models = Lists.newArrayList(); + BaseGoodsModels baseGoodsModels = new BaseGoodsModels(); + baseGoodsModels.setModelName(goodModel); + baseGoodsModels.setStates(1); + baseGoodsModels.setGoodsTemplatesId(item.getId()); + baseGoodsModels.setUnit(unit); + baseGoodsModels.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); + models.add(baseGoodsModels); + baseGoodsTemplate.setModels(models); + } else { + List<BaseGoodsModels> models = item.getModels(); + BaseGoodsModels baseGoodsModels = new BaseGoodsModels(); + baseGoodsModels.setModelName(goodModel); + baseGoodsModels.setStates(1); + baseGoodsModels.setGoodsTemplatesId(item.getId()); + baseGoodsModels.setUnit(unit); + baseGoodsModels.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); + models.add(baseGoodsModels); + } + }); + + } + + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + for (BaseGoodsTemplateParam a : list) { + baseGoodsTemplateService.add(a, sysInfo); + } + } + + @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 + "鍒楄В鏋愬紓甯革紝璇锋纭~鍐�"); + } + } + }).sheet(0).doRead(); + + return ResponseValue.success("瀵煎叆鎴愬姛!", 1); + } } -- Gitblit v1.9.1