admin-web/public/static/config.js
@@ -9,8 +9,8 @@ // æ¥å£è¯·æ±å°å ftpUrl: 'http://172.16.60.172:8083/lowConsum',//å¼å apiBaseURL: 'http://172.16.60.172:8083/lowConsum',//å¼å ftpUrl: 'http://172.16.20.9:8083/lowConsum',//å¼å apiBaseURL: 'http://172.16.20.9:8083/lowConsum',//å¼å // apiBaseURL: 'http://172.16.60.110:8083/lowConsum',//å¼å admin-web/src/views/departmentitem/itemdis/distribution/index.vue
@@ -11,6 +11,7 @@ <!--å表--> <div class="table-tool-bar" style="margin-bottom: 15px"> <my-button name="æ°å¢" @click="handleAdd" site="tools" size="medium"/> <my-button name="å¯¼å ¥" @click="openImport()" site="tools" size="medium" /> </div> <div :style="{ 'overflow-y': 'auto', height: `calc(100vh - 320px)` }" v-loading="loading"> <el-row v-if="list.length" class="card" :gutter="5"> @@ -22,19 +23,19 @@ <span>åååå·ï¼</span> <span class="value">{{ item.businessFormCode }}</span> <span style="padding-left: 30px">ååç¶æï¼</span> <span style="color: red" v-if="item.states === 0" class="value">æªåå</span> <span v-if="item.states === 2" class="value">å·²åå</span> <!-- <span style="padding-left: 30px">ååç¶æï¼</span>--> <!-- <span style="color: red" v-if="item.states === 0" class="value">æªåå</span>--> <!-- <span v-if="item.states === 2" class="value">å·²åå</span>--> </div> <div class="card-header-right"> <!-- 导åºåå --> <el-button v-if="item.states === 0" name="ä¸è½½" site="form" type="primary" size="mini" @click="handleDetail(item)"> ä¸è½½ </el-button> <!-- <el-button v-if="item.states === 0" name="ä¸è½½" site="form" type="primary" size="mini" @click="handleDetail(item)">--> <!-- ä¸è½½--> <!-- </el-button>--> <el-button v-if="item.states === 0" name="ä¸ä¼ " site="form" type="primary" size="mini" @click="handleUploadPage(item)"> ä¸ä¼ </el-button> <!-- <el-button v-if="item.states === 0" name="ä¸ä¼ " site="form" type="primary" size="mini" @click="handleUploadPage(item)">--> <!-- ä¸ä¼ --> <!-- </el-button>--> <el-button name="æ¥ç详æ " site="form" type="primary" size="mini" @click="handleDetail(item)"> æ¥ç详æ @@ -45,7 +46,7 @@ <div class="box"><span class="span-two">é¨é¨ï¼</span>{{ item.inWarehouseName }}</div> <div class="box"><span class="span-two">åå人ï¼</span>{{ item.outOperatorName }}</div> <div class="box"> <span class="span-two">ååæ¶é´ï¼</span>{{ item.inTime | formatTime }} <span class="span-two">ååæ¶é´ï¼</span>{{ item.createTime | formatTime }} </div> </div> <div class="card-end"> @@ -104,6 +105,13 @@ @close="detailSetting.show = false" ref="detailRef" ></detail> <my-import :import-setting="importSetting" :dialog-show="importSetting.dialogShow" :dialog-title="importSetting.dialogTitle" /> </div> </template> @@ -117,6 +125,7 @@ import uploadPage from './uploadPage'; import listPage from '@/views/mixins/listPage'; import {getUserDetail} from "@/utils/auth"; import {getBaseUrl} from '@/utils/base'; export default { name: 'index', @@ -127,6 +136,26 @@ loading: false, adddialog: false, list: [], // å¯¼å ¥ importSetting: { dialogTitle: 'å¯¼å ¥', dialogShow: false, fileSettings: { data: {}, uploadUrl: getBaseUrl() + '/pc/l/wh/form/transfer/import2', // ä¸ä¼ å°å accept: '.xls', // æ ¼å¼ type: 'text', // åæ¾å½¢å¼ loading: true, // å¯¼å ¥ææ }, /* 模æ¿ä¸è½½ */ templateSettings: { templateName: 'å¯¼å ¥æ¨¡æ¿.xls', // åç§° templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate?type=distribute', // ä¸è½½å°å }, onSuccess: null, }, // æç´¢æ¡ items: [ { @@ -203,7 +232,23 @@ this.total = res.totalRows; this.loading = false; }); }, openImport(){ this.importOrg(); }, //å¯¼å ¥ importOrg() { this.importSetting.dialogShow = true; this.importSetting.onSuccess = (response, callBack) => { if (response.code === 1) { this.$message.success(response.msg); this.search(1); } else { this.$message.warning(response.msg); } callBack(); }; }, }, }; </script> admin-web/src/views/foundation/classification/index.vue
@@ -69,15 +69,15 @@ dialogShow: false, fileSettings: { data: {}, uploadUrl: getBaseUrl() + '/pc/fin/sys/tenant/import', // ä¸ä¼ å°å uploadUrl: getBaseUrl() + '/pc/base/category/import', // ä¸ä¼ å°å accept: '.xls', // æ ¼å¼ type: 'text', // åæ¾å½¢å¼ loading: false, // å¯¼å ¥ææ loading: true, // å¯¼å ¥ææ }, /* 模æ¿ä¸è½½ */ templateSettings: { templateName: 'å¯¼å ¥æ¨¡æ¿.xls', // åç§° templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate', // ä¸è½½å°å templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate?type=classification', // ä¸è½½å°å }, onSuccess: null, }, @@ -108,6 +108,12 @@ name: 'æ°å¢', click: () => { this.showAdd(null); }, }, { name: 'å¯¼å ¥', click: () => { this.openImport(null); }, }, ], @@ -288,6 +294,10 @@ this.filterFrom = Object.assign(this.filterFrom, params); this.search(1); }, openImport(){ this.importOrg(); }, }, }; </script> admin-web/src/views/stock/procure/purchaseOrder/index.vue
@@ -12,7 +12,7 @@ <div class="table-tool-bar" style="margin-bottom: 15px"> <!-- <my-button name="æ°å¢" check-permission="procure:order:add" @click="handleAdd" site="tools" size="medium" />--> <my-button name="æ°å¢" @click="handleAdd" site="tools" size="medium" /> <my-button name="å¯¼å ¥" @click="importSetting.dialogShow = true" site="tools" size="medium" /> <my-button name="å¯¼å ¥" @click="openImport()" site="tools" size="medium" /> </div> <div v-loading="loading" style="margin-bottom: 15px"> <div :style="{ 'overflow-y': 'auto', height: 'calc(100vh - 352px)' }"> @@ -226,7 +226,7 @@ uploadUrl: getBaseUrl() + '/pc/whForm/procure/import', // ä¸ä¼ å°å accept: '.xls', // æ ¼å¼ type: 'text', // åæ¾å½¢å¼ loading: false, // å¯¼å ¥ææ loading: true, // å¯¼å ¥ææ }, /* 模æ¿ä¸è½½ */ templateSettings: { @@ -300,6 +300,10 @@ .catch(() => {}); }); }, openImport(){ this.importOrg(); } }, }; </script> consum-base/pom.xml
@@ -145,6 +145,10 @@ <artifactId>hutool-core</artifactId> <version>4.5.3</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> </dependencies> </project> consum-base/src/main/java/com/consum/base/controller/BaseCategoryController.java
@@ -1,7 +1,19 @@ package com.consum.base.controller; import java.io.IOException; import java.util.List; import java.util.Map; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.excel.EasyExcelFactory; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.excel.exception.ExcelAnalysisException; import com.alibaba.excel.exception.ExcelDataConvertException; import com.consum.base.pojo.*; import com.consum.base.pojo.excel.ImportClassificationTemplate; import com.consum.model.po.*; import org.apache.commons.compress.utils.Lists; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.DeleteMapping; @@ -9,20 +21,16 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.consum.base.BaseController; import com.consum.base.core.utils.CommonUtil; import com.consum.base.pojo.BaseCategoryParam; import com.consum.base.pojo.ProjectTreeResult; import com.consum.base.service.BaseCategoryService; import com.consum.base.service.BaseGoodsTemplateService; import com.consum.model.po.BaseCategory; import com.iplatform.model.po.S_user_core; import com.walker.db.page.GenericPager; import com.walker.infrastructure.utils.StringUtils; import com.walker.web.ResponseValue; import io.swagger.annotations.Api; import org.springframework.web.multipart.MultipartFile; /** * @Description ç©ååç±» @@ -214,4 +222,184 @@ return ResponseValue.success(baseCategories); } /** * å¯¼å ¥ç©ååç±» * * @param file * @return * @throws IOException */ @PostMapping("/import") public ResponseValue importData(MultipartFile file) { String originalFilename = file.getOriginalFilename(); // if (!".xls".endsWith(originalFilename)) { // return ResponseValue.error("æä»¶æ ¼å¼æè¯¯!"); // } FinSysTenantUser sysInfo = this.getSysInfo(); if (sysInfo == null) { return ResponseValue.error("å½åç»å½ç¨æ·ä¸ºç©º"); } // å½åç»å½ç¨æ· S_user_core currentUser = this.getCurrentUser(); try { EasyExcelFactory.read(file.getInputStream(), ImportClassificationTemplate.class, new AnalysisEventListener<ImportClassificationTemplate>() { /** * æ¯æ¡åå¨çlist */ final List<ImportClassificationTemplate> importData = Lists.newArrayList(); /** * 读åçè¡å· */ Integer rowIndex = 0; /** * è¡¨å¤´ä¿¡æ¯ * @param headMap * @param context */ @Override public void invokeHeadMap(Map headMap, AnalysisContext context) { // éªè¯è¡¨å¤´æ°é logger.info("è§£æåååç表头é¿åº¦: {}", headMap.size()); if (headMap.size() != 4) { throw new ExcelAnalysisException("ä¸ä¼ çæä»¶ä¸ç¬¦!"); } } /** * æ°æ®å¤ç * @param data * @param analysisContext */ @Override public void invoke(ImportClassificationTemplate data, AnalysisContext analysisContext) { rowIndex++; // è·³è¿ if (data.getCategoryOne().contains("说æï¼")) { return; } if (StrUtil.isEmpty(data.getCategoryOne())) { throw new ExcelAnalysisException("第" + rowIndex + "æ¡æ°æ®ï¼ä¸çº§åç±»ä¸è½ä¸ºç©ºï¼" + data.getCategoryOne()); } if (StrUtil.isEmpty(data.getCategoryTwo())) { throw new ExcelAnalysisException("第" + rowIndex + "æ¡æ°æ®ï¼äºçº§åç±»ä¸è½ä¸ºç©ºï¼" + data.getCategoryTwo()); } if (StrUtil.isEmpty(data.getCategoryThree())) { throw new ExcelAnalysisException("第" + rowIndex + "æ¡æ°æ®ï¼åç±»åç§°ä¸è½ä¸ºç©ºï¼" + data.getCategoryThree()); } if (StrUtil.isEmpty(data.getType())) { throw new ExcelAnalysisException("第" + rowIndex + "æ¡æ°æ®ï¼ç®¡çåç±»ä¸è½ä¸ºç©ºï¼" + data.getType()); } importData.add(data); } /** * æ°æ®å¤çå¯¼å ¥ä¸»æ¹æ³ * @param analysisContext */ @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { for (ImportClassificationTemplate data : importData) { String h1 = data.getCategoryOne(); String h2 = data.getCategoryTwo(); String h3 = data.getCategoryThree(); String type = data.getType(); BaseCategoryParam baseCategoryParam1 = new BaseCategoryParam(); baseCategoryParam1.setFatherCategoryId(0L); baseCategoryParam1.setCategoryName(h1); GenericPager<BaseCategory> baseCategoryGenericPager = baseCategoryService.queryBaseCategoryList2(baseCategoryParam1); List<BaseCategory> datas = baseCategoryGenericPager.getDatas(); // ä¸çº§åç±» BaseCategory D1 = null; if (!CollectionUtil.isEmpty(datas)) { D1 = datas.get(0); } else { // æ°å¢ç¶çº§ BaseCategoryParam param = new BaseCategoryParam(); param.setCategoryName(h1); param.setStates(1); int getIndex = baseCategoryService.selIndexByPid(0L); param.setOrderNumber(getIndex + 1); baseCategoryService.add(param, currentUser); GenericPager<BaseCategory> baseCategoryGenericPager2 = baseCategoryService.queryBaseCategoryList2(baseCategoryParam1); List<BaseCategory> datas2 = baseCategoryGenericPager2.getDatas(); D1 = datas2.get(0); } // 2ãäºçº§åç±» æ¥è¯¢ç¬¬äºå±æ°æ® BaseCategoryParam baseCategoryParam2 = new BaseCategoryParam(); baseCategoryParam2.setCategoryName(h2); baseCategoryParam2.setFatherCategoryId(D1.getId()); GenericPager<BaseCategory> baseCategoryGenericPager2 = baseCategoryService.queryBaseCategoryList2(baseCategoryParam2); List<BaseCategory> datas2 = baseCategoryGenericPager2.getDatas(); BaseCategory D2 = null; if (!CollectionUtil.isEmpty(datas2)) { D2 = datas2.get(0); } else { // æ°å¢ç¶2级 BaseCategoryParam param = new BaseCategoryParam(); param.setCategoryName(h2); param.setStates(1); param.setFatherCategoryId(D1.getId()); int getIndex = baseCategoryService.selIndexByPid(D1.getId()); param.setOrderNumber(getIndex + 1); baseCategoryService.add(param, currentUser); GenericPager<BaseCategory> baseCategoryGenericPager4 = baseCategoryService.queryBaseCategoryList2(baseCategoryParam2); List<BaseCategory> datas4 = baseCategoryGenericPager4.getDatas(); D2 = datas4.get(0); } // 3ãä¸çº§åç±»(妿已ç»åå¨ï¼é£ä¹ä¸å¤çï¼ä¸å卿°å¢) BaseCategoryParam baseCategoryParam3 = new BaseCategoryParam(); baseCategoryParam3.setCategoryName(h3); baseCategoryParam3.setClassification(type); baseCategoryParam3.setFatherCategoryId(D2.getId()); GenericPager<BaseCategory> baseCategoryGenericPager3 = baseCategoryService.queryBaseCategoryList2(baseCategoryParam3); List<BaseCategory> datas3 = baseCategoryGenericPager3.getDatas(); if (!CollectionUtil.isEmpty(datas3)) { } else { // æ°å¢ç¶2级 BaseCategoryParam param = new BaseCategoryParam(); param.setCategoryName(h3); param.setStates(1); param.setFatherCategoryId(D2.getId()); int getIndex = baseCategoryService.selIndexByPid(D2.getId()); param.setOrderNumber(getIndex + 1); param.setClassification(type); baseCategoryService.add(param, currentUser); //GenericPager<BaseCategory> baseCategoryGenericPager4 = baseCategoryService.queryBaseCategoryList2(baseCategoryParam3); //List<BaseCategory> datas4 = baseCategoryGenericPager4.getDatas(); //D3 = datas4.get(0); } } } @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 ExcelAnalysisException("第" + row + "è¡ï¼ç¬¬" + column + "åè§£æå¼å¸¸ï¼è¯·æ£ç¡®å¡«å"); } else { throw new ExcelAnalysisException(exception.getMessage()); } } }).sheet(0).doRead(); } catch (ExcelAnalysisException e) { return ResponseValue.error(e.getMessage()); }catch (RuntimeException e) { e.printStackTrace(); return ResponseValue.error("ç³»ç»é误"); }catch (Exception e) { e.printStackTrace(); return ResponseValue.error("ç³»ç»é误"); } return ResponseValue.success("å¯¼å ¥æå!"); } } consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java
@@ -7,7 +7,9 @@ import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; import cn.hutool.core.util.StrUtil; import com.alibaba.excel.exception.ExcelAnalysisException; import com.consum.base.service.*; import org.apache.commons.compress.utils.Lists; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; @@ -17,7 +19,6 @@ 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; @@ -30,11 +31,6 @@ 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.BaseCategoryService; 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.BaseCategory; import com.consum.model.po.BaseGoodsModels; import com.consum.model.po.BaseGoodsTemplate; @@ -76,6 +72,9 @@ @Autowired private BaseCategoryService baseCategoryService; @Autowired private BaseGoodsModelsService baseGoodsModelsService; /** * @Description æ°å¢ç©åæ¨¡æ¿ @@ -294,38 +293,112 @@ return ResponseValue.success("æ¥è¯¢æå!", resultList); } /** * å¯¼å ¥ç©åæ°æ® * @param file * @return */ @PostMapping("/import") public ResponseValue upload(MultipartFile file) throws IOException { public ResponseValue importData(MultipartFile file) { String originalFilename = file.getOriginalFilename(); if (!".xls".endsWith(originalFilename)) { return ResponseValue.error("æä»¶æ ¼å¼æè¯¯!"); } // if (!".xls".endsWith(originalFilename)) { // return ResponseValue.error("æä»¶æ ¼å¼æè¯¯!"); // } FinSysTenantUser sysInfo = this.getSysInfo(); if (sysInfo == null) { return ResponseValue.error("å½åç»å½ç¨æ·ä¸ºç©º"); } try { EasyExcelFactory.read(file.getInputStream(), ImportGoodsInfoTemplate.class, new AnalysisEventListener<ImportGoodsInfoTemplate>() { List<BaseGoodsTemplateParam> list = Lists.newArrayList(); /** * ä¸»æ°æ® */ final List<BaseGoodsTemplateParam> list = Lists.newArrayList(); /** * æ¨¡åæ°æ® */ final List<BaseGoodsModels> baseGoodsModelsArrayList = Lists.newArrayList(); /** * 读åçè¡å· */ Integer rowIndex = 0; /** * è¡¨å¤´ä¿¡æ¯ * @param headMap * @param context */ @Override public void invokeHeadMap(Map headMap, AnalysisContext context) { // éªè¯è¡¨å¤´æ°é logger.info("è§£æåååç表头é¿åº¦: {}", headMap.size()); if (headMap.size() != 7) { throw new ExcelAnalysisException("ä¸ä¼ çæä»¶ä¸ç¬¦!"); } } /** * æ°æ®å¤ç * @param data * @param analysisContext */ @Override public void invoke(ImportGoodsInfoTemplate data, AnalysisContext analysisContext) { rowIndex++; String categoryOne = data.getCategoryOne(); String categoryTwo = data.getCategoryTwo(); String categoryThree = data.getCategoryThree(); if (StrUtil.isEmpty(categoryThree)) { throw new ExcelAnalysisException("第" + rowIndex + "æ¡æ°æ®ï¼åç±»åç§°ä¸è½ä¸ºç©ºï¼" + categoryThree); } String goodsName = data.getGoodsName(); if (StrUtil.isEmpty(goodsName)) { throw new ExcelAnalysisException("第" + rowIndex + "æ¡æ°æ®ï¼ååä¸è½ä¸ºç©ºï¼" + goodsName); } String goodModelName = data.getGoodModelName(); if (StrUtil.isEmpty(goodModelName)) { throw new ExcelAnalysisException("第" + rowIndex + "æ¡æ°æ®ï¼è§æ ¼åå·ä¸è½ä¸ºç©ºï¼" + goodModelName); } String unit = data.getUnit(); String type = data.getType(); if (StrUtil.isEmpty(unit)) { throw new ExcelAnalysisException("第" + rowIndex + "æ¡æ°æ®ï¼åä½ä¸è½ä¸ºç©ºï¼" + unit); } //String type = data.getType(); String agencyName = data.getAgencyName(); if (StrUtil.isEmpty(agencyName)) { throw new ExcelAnalysisException("第" + rowIndex + "æ¡æ°æ®ï¼åå»ºæºæä¸è½ä¸ºç©ºï¼" + agencyName); } BaseCategory baseCategory = baseCategoryService.getByCategoryByName(categoryThree); if (baseCategory == null) { throw new ExcelAnalysisException("第" + rowIndex + "æ¡æ°æ®ï¼æªæ¥è¯¢å°æ¤åç±»åç§°ï¼" + categoryThree); } Long categoryId = baseCategory.getId(); // 夿åä¸åç±»ä¸çç©ååç§°æ¯å¦éå¤ BaseGoodsTemplate goodsTemplate = baseGoodsTemplateService.getByGoodsNameAndCategoryId(goodsName, categoryId); if (goodsTemplate != null) { // æ¥çæ¤æ¹æ¬¡åæ°é BaseGoodsModels baseGoodsModelsAdd = new BaseGoodsModels(); baseGoodsModelsAdd.setGoodsTemplatesId(goodsTemplate.getId()); baseGoodsModelsAdd.setStates(1); baseGoodsModelsAdd.setModelName(goodModelName); baseGoodsModelsAdd.setUnit(unit); // 夿åä¸ç©å模æ¿idä¸ç è§æ ¼åå·åç§°æ¯å¦éå¤ BaseGoodsModels baseGoodsModels = baseGoodsModelsService.getByModelNameAndGoodsTemplatesId(baseGoodsModelsAdd); if (baseGoodsModels == null) { baseGoodsModelsArrayList.add(baseGoodsModelsAdd); return; } else { throw new ExcelAnalysisException("第" + rowIndex + "æ¡æ°æ®" + "ç©ååç§°ï¼" + goodsName + "å·²åå¨ï¼è§æ ¼ï¼" + goodModelName + "ï¼åä½ï¼" + unit); } } Optional<BaseGoodsTemplateParam> optional = list.stream().filter(item -> item.getCategoryId().equals(categoryId)).findFirst(); if (optional.isPresent()) { Optional<BaseGoodsTemplateParam> optional2 = list.stream().filter(item -> item.getGoodsName().equals(goodsName)).findFirst(); if (optional.isPresent() && optional2.isPresent()) { BaseGoodsModels baseGoodsModels = new BaseGoodsModels(); baseGoodsModels.setModelName(goodModelName); baseGoodsModels.setUnit(unit); @@ -336,24 +409,34 @@ baseGoodsTemplate.setGoodsName(goodsName); baseGoodsTemplate.setStates(1); FinSysTenant finSysTenant = finSysTenantService.selectByName(agencyName); if (finSysTenant == null) { throw new ExcelAnalysisException("第" + rowIndex + "æ¡æ°æ®ï¼æªæ¥è¯¢å°æ¤æºæï¼" + 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); } } /** * å¤çåå¯¼å ¥æ°æ® * @param analysisContext */ @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { // ä¸»æ°æ®åå¨ for (BaseGoodsTemplateParam baseGoodsTemplate : list) { baseGoodsTemplateService.add(baseGoodsTemplate, null); } // æ¨¡åæ°æ®åå¨ for (BaseGoodsModels baseGoodsModels : baseGoodsModelsArrayList) { baseGoodsModelsService.add(baseGoodsModels); } } @@ -363,13 +446,21 @@ ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException)exception; Integer row = excelDataConvertException.getRowIndex() + 1; Integer column = excelDataConvertException.getColumnIndex() + 1; throw new RuntimeException("第" + row + "è¡ï¼ç¬¬" + column + "åè§£æå¼å¸¸ï¼è¯·æ£ç¡®å¡«å"); throw new ExcelAnalysisException("第" + row + "è¡ï¼ç¬¬" + column + "åè§£æå¼å¸¸ï¼è¯·æ£ç¡®å¡«å"); } else { throw new RuntimeException(exception.getMessage()); throw new ExcelAnalysisException(exception.getMessage()); } } }).sheet(0).doRead(); } catch (ExcelAnalysisException e) { return ResponseValue.error(e.getMessage()); } catch (RuntimeException e) { e.printStackTrace(); return ResponseValue.error("ç³»ç»é误"); }catch (Exception e) { e.printStackTrace(); return ResponseValue.error("ç³»ç»é误"); } return ResponseValue.success("å¯¼å ¥æå!"); } } consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java
@@ -408,6 +408,10 @@ fileName = "ç©åä¿¡æ¯.xls"; } else if ("procure".equals(type)) { fileName = "éè´å¯¼å ¥.xls"; } else if ("distribute".equals(type)) { fileName = "ååå¯¼å ¥.xls"; } else if ("classification".equals(type)) { fileName = "ç©ååç±».xls"; } Resource resource = new ClassPathResource("import/" + fileName); // è·åæä»¶è¾å ¥æµ consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java
@@ -2,25 +2,34 @@ import java.io.IOException; import java.lang.reflect.Field; import java.math.BigDecimal; 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 cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.excel.exception.ExcelAnalysisException; import com.alibaba.fastjson.JSONObject; import com.consum.base.core.utils.IdUtil; import com.consum.base.pojo.*; import com.consum.base.service.*; import com.consum.base.util.DateUtil; import com.consum.model.po.*; import org.apache.commons.compress.utils.Lists; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; 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; @@ -28,8 +37,6 @@ 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; @@ -39,21 +46,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.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; import com.iplatform.model.po.S_user_core; import com.walker.db.page.GenericPager; 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; @@ -83,6 +81,24 @@ private LWhProcureModelService lWhProcureModelService; @Resource private BaseCategoryService baseCategoryService; /** * ä»åºæå¡ */ @Autowired private BaseWarehouseService baseWarehouseService; /** * å ¥åºid */ @Autowired private BaseGoodsTemplateService baseGoodsTemplateService; /** * ç©åmodelæå¡ */ @Autowired private BaseGoodsModelsService baseGoodsModelsService; /** * @Description æ°å¢ @@ -334,72 +350,244 @@ } /** * éè´åå¯¼å ¥ * * @param file * @return */ @ApiOperation(value = "éè´åå¯¼å ¥", notes = "éè´åå¯¼å ¥") @PostMapping("/import") public ResponseValue upload(MultipartFile file) throws IOException { public ResponseValue upload(MultipartFile file) { String originalFilename = file.getOriginalFilename(); if (!".xls".endsWith(originalFilename)) { return ResponseValue.error("æä»¶æ ¼å¼æè¯¯!"); } // æä»¶æ ¼å¼æ ¡éª // if (!".xls".endsWith(originalFilename)) { // return ResponseValue.error("æä»¶æ ¼å¼æè¯¯!"); // } FinSysTenantUser sysInfo = this.getSysInfo(); if (sysInfo == null) { return ResponseValue.error("å½åç»å½ç¨æ·ä¸ºç©º"); } try { EasyExcelFactory.read(file.getInputStream(), ImportProcureOrderTemplate.class, new AnalysisEventListener<ImportProcureOrderTemplate>() { List<LWhFormProcureParam> list = Lists.newArrayList(); /** * èªééè´åçå 屿°æ® */ final List<LWhFormProcureGoodsInfoParam> zcList = Lists.newArrayList(); /** * éééè´åçå 屿°æ® */ final List<LWhFormProcureGoodsInfoParam> jcList = Lists.newArrayList(); /** * éè´åçä¸»æ°æ® */ final LWhFormProcureParam lWhFormProcureParam = new LWhFormProcureParam(); /** * ç¬¬å æ¡æ°æ® */ Integer index = 0; /** * è¡¨å¤´ä¿¡æ¯ * @param headMap * @param context */ @Override public void invokeHeadMap(Map headMap, AnalysisContext context) { // éªè¯è¡¨å¤´æ°é logger.info("è§£æåååç表头é¿åº¦: {}", headMap.size()); if (headMap.size() != 12) { throw new ExcelAnalysisException("ä¸ä¼ çæä»¶ä¸ç¬¦!"); } } /** * æ°æ®å¤ç * @param data * @param analysisContext */ @Override public void invoke(ImportProcureOrderTemplate data, AnalysisContext analysisContext) { index++; String categoryOne = data.getCategoryOne(); String categoryTwo = data.getCategoryTwo(); String categoryThree = data.getCategoryThree(); if (StrUtil.isEmpty(categoryThree)) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®ï¼åç±»åç§°ä¸è½ä¸ºç©ºï¼" + categoryThree); } String goodsName = data.getGoodsName(); if (StrUtil.isEmpty(goodsName)) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®ï¼ååä¸è½ä¸ºç©ºï¼" + goodsName); } String goodModelName = data.getGoodModelName(); if (StrUtil.isEmpty(goodModelName)) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®ï¼è§æ ¼åå·ä¸è½ä¸ºç©ºï¼" + goodModelName); } String unit = data.getUnit(); if (StrUtil.isEmpty(unit)) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®ï¼åä½ä¸è½ä¸ºç©ºï¼" + unit); } String type = data.getType(); String agencyName = data.getAgencyName(); //String agencyName = data.getAgencyName(); String warehouseName = data.getWarehouseName(); if (StrUtil.isEmpty(warehouseName)) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®ï¼æå¨ä»åºä¸è½ä¸ºç©ºï¼" + warehouseName); } 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); // } if (StrUtil.isEmpty(supplierName)) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®ï¼ä¾è´§åä¸è½ä¸ºç©ºï¼" + supplierName); } String price = data.getPrice(); if (StrUtil.isEmpty(price)) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®ï¼åä»·(å )ä¸è½ä¸ºç©ºï¼" + price); } String num = data.getNum(); if (StrUtil.isEmpty(num)) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®ï¼åºåæ°éä¸è½ä¸ºç©ºï¼" + num); } // ç©åç±»å(èªééé) String goodsType = data.getGoodsType(); if (StrUtil.isEmpty(goodsType)) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®ï¼ç©åç±»åä¸è½ä¸ºç©ºï¼" + goodsType); } // ç¬¬ä¸æ¬¡è¿æ¥æå¤å±çå¼è®¾ç½®ä¸ä¸ if (lWhFormProcureParam.getAgencyId() == null) { // [éè¿ä»åºåï¼æ¥æ¾å¯¹åºçä»åºid] FinSysTenantUser currentUser = getSysInfo(); BaseWarehouseParam baseWarehouseParam = new BaseWarehouseParam(); baseWarehouseParam.setStates(1); baseWarehouseParam.setWarehouseName(warehouseName); GenericPager<BaseWarehouse> pager = baseWarehouseService.queryList(baseWarehouseParam, currentUser); List<BaseWarehouse> datas = pager.getDatas(); Long ckId = null; if (!CollectionUtil.isEmpty(datas)) { BaseWarehouse baseWarehouse = datas.get(0); ckId = baseWarehouse.getId(); } else { // æ¥é ä»åºä¸åå¨ throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®ï¼ä»åºä¸åå¨ï¼" + warehouseName); } lWhFormProcureParam.setProcureDoc(""); lWhFormProcureParam.setWarehouseId(ckId); lWhFormProcureParam.setProcureTime(DateUtil.getNowDate() + ""); lWhFormProcureParam.setBuyType(2); } // æ¥è¯¢åç±»id BaseCategory baseCategory = baseCategoryService.getByCategoryByName(categoryThree); if (baseCategory == null) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®ï¼æ¤åç±»ä¸åå¨ï¼" + categoryThree); } Long categoryId = baseCategory.getId(); // ä¸åééç±»åï¼ä¸åçé Optional<LWhFormProcureGoodsInfoParam> optional = null; if ("èªé".equals(goodsType)) { optional = zcList.stream().filter(item -> item.getCategoryId().equals(categoryId)).findFirst(); } else if ("éé".equals(goodsType)) { optional = jcList.stream().filter(item -> item.getCategoryId().equals(categoryId)).findFirst(); } Optional<LWhFormProcureGoodsInfoParam> optional1 = null; if ("èªé".equals(goodsType)) { optional1 = zcList.stream().filter(item -> item.getGoodsTemplateName().equals(goodsName)).findFirst(); } else if ("éé".equals(goodsType)) { optional1 = jcList.stream().filter(item -> item.getGoodsTemplateName().equals(goodsName)).findFirst(); } // åç±» å åååå®å ¨ä¸æ ·æå å ¥ if (optional.isPresent() && optional1.isPresent()) { LWhProcureModelParam lWhProcureModelParam = new LWhProcureModelParam(); lWhProcureModelParam.setCounts(StrUtil.isEmpty(num) ? 0 : Integer.valueOf(num)); lWhProcureModelParam.setPrice(new BigDecimal(price).multiply(new BigDecimal("100")).longValue()); lWhProcureModelParam.setBaseUnit(unit); // æ°æ®ç¬¬äºå±-ç©åçid BaseGoodsTemplate goodsTemplate = baseGoodsTemplateService.getByGoodsNameAndCategoryId(goodsName, categoryId); if (goodsTemplate == null) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®ï¼æ¤ç©åä¸åå¨ï¼" + goodsName); } BaseGoodsModels baseGoodsModels = new BaseGoodsModels(); baseGoodsModels.setModelName(goodModelName); baseGoodsModels.setGoodsTemplatesId(goodsTemplate.getId()); BaseGoodsModels byModelNameAndGoodsTemplatesId = baseGoodsModelsService.getByModelNameAndGoodsTemplatesId(baseGoodsModels); if (byModelNameAndGoodsTemplatesId == null) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®" + "ååï¼" + goodsName + "ï¼è§æ ¼åå·ï¼" + goodModelName + "æªæ¾å°"); } lWhProcureModelParam.setBaseGoodsModelsId(byModelNameAndGoodsTemplatesId.getId()); optional.get().getModels().add(lWhProcureModelParam); } else { LWhFormProcureGoodsInfoParam lWhFormProcureGoodsInfoParam = new LWhFormProcureGoodsInfoParam(); // æ°æ®ç¬¬äºå±-ç©åä¸çº§å类第ä¸çº§çid lWhFormProcureGoodsInfoParam.setCategoryId(categoryId); // æ°æ®ç¬¬äºå±-ç©åçid BaseGoodsTemplate goodsTemplate = baseGoodsTemplateService.getByGoodsNameAndCategoryId(goodsName, categoryId); if (goodsTemplate == null) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®ï¼æ¤ç©åä¸åå¨ï¼" + goodsName); } lWhFormProcureGoodsInfoParam.setBaseGoodsTemplateId(goodsTemplate.getId()); // æ°æ®ç¬¬äºå±-ä¾åºå lWhFormProcureGoodsInfoParam.setSupplier(supplierName); // æ°æ®ç¬¬äºå±-ç©åå lWhFormProcureGoodsInfoParam.setGoodsTemplateName(goodsName); // æ°æ®ç¬¬ä¸å±æ°æ® List<LWhProcureModelParam> lWhProcureModelParams = new ArrayList<>(); LWhProcureModelParam lWhProcureModelParam = new LWhProcureModelParam(); lWhProcureModelParam.setCounts(StrUtil.isEmpty(num) ? 0 : Integer.valueOf(num)); BigDecimal multiply = new BigDecimal(price).multiply(new BigDecimal("100")); lWhProcureModelParam.setPrice(multiply.longValue()); lWhProcureModelParam.setBaseUnit(unit); BaseGoodsModels baseGoodsModels = new BaseGoodsModels(); baseGoodsModels.setModelName(goodModelName); baseGoodsModels.setGoodsTemplatesId(goodsTemplate.getId()); BaseGoodsModels byModelNameAndGoodsTemplatesId = baseGoodsModelsService.getByModelNameAndGoodsTemplatesId(baseGoodsModels); if (byModelNameAndGoodsTemplatesId == null) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®" + "ååï¼" + goodsName + "ï¼è§æ ¼åå·ï¼" + goodModelName + "æªæ¾å°"); } lWhProcureModelParam.setBaseGoodsModelsId(byModelNameAndGoodsTemplatesId.getId()); lWhProcureModelParams.add(lWhProcureModelParam); lWhFormProcureGoodsInfoParam.setModels(lWhProcureModelParams); // ä¸åééç±»åå°ä¸ålist if ("èªé".equals(goodsType)) { zcList.add(lWhFormProcureGoodsInfoParam); } else if ("éé".equals(goodsType)) { jcList.add(lWhFormProcureGoodsInfoParam); } } } /** * å¤çåçæ°æ®å¯¼å ¥ * @param analysisContext */ @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { for (LWhFormProcureParam procureParam : list) { // lWhFormProcureService.add(procureParam, null); } lWhFormProcureParam.setProcureGoods(zcList); // éè´å-èªé long zcId = IdUtil.generateId(); lWhFormProcureParam.setId(zcId); String zcJsonString = JSONObject.toJSONString(lWhFormProcureParam); logger.info("å¯¼å ¥éè´å(èªé)jsonæ°æ® --------------------"); logger.info(zcJsonString); add(lWhFormProcureParam); // éè´å-éé long jcId = IdUtil.generateId(); lWhFormProcureParam.setId(jcId); lWhFormProcureParam.setBuyType(1); lWhFormProcureParam.setProcureGoods(jcList); String jcJsonString = JSONObject.toJSONString(lWhFormProcureParam); logger.info("å¯¼å ¥éè´å(éé)jsonæ°æ® --------------------"); logger.info(jcJsonString); add(lWhFormProcureParam); // èªéåééå ¥åº income(zcId); income(jcId); } @Override @@ -408,13 +596,21 @@ ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException)exception; Integer row = excelDataConvertException.getRowIndex() + 1; Integer column = excelDataConvertException.getColumnIndex() + 1; throw new RuntimeException("第" + row + "è¡ï¼ç¬¬" + column + "åè§£æå¼å¸¸ï¼è¯·æ£ç¡®å¡«å"); throw new ExcelAnalysisException("第" + row + "è¡ï¼ç¬¬" + column + "åè§£æå¼å¸¸ï¼è¯·æ£ç¡®å¡«å"); } else { throw new RuntimeException(exception.getMessage()); throw new ExcelAnalysisException(exception.getMessage()); } } }).sheet(0).doRead(); }catch (ExcelAnalysisException e) { return ResponseValue.error(e.getMessage()); }catch (RuntimeException e) { e.printStackTrace(); return ResponseValue.error("ç³»ç»é误"); } catch (Exception e) { e.printStackTrace(); return ResponseValue.error("ç³»ç»é误"); } return ResponseValue.success("å¯¼å ¥æå!"); } consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java
@@ -1,6 +1,7 @@ package com.consum.base.controller; import java.lang.reflect.Field; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Comparator; import java.util.HashMap; @@ -10,10 +11,24 @@ import java.util.Set; import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.StrUtil; import com.alibaba.excel.EasyExcelFactory; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.excel.exception.ExcelAnalysisException; import com.alibaba.excel.exception.ExcelDataConvertException; import com.alibaba.fastjson.JSONObject; import com.consum.base.pojo.*; import com.consum.base.pojo.excel.ImportProcureOrderTemplate; import com.consum.base.pojo.excel.LWhFormTransferTemplate; import com.consum.base.pojo.query.WarehouseQry; import com.consum.base.service.*; import com.consum.base.util.DateUtil; import com.consum.base.util.ExcelStyleUtil; import com.consum.model.po.*; import org.apache.commons.compress.utils.Lists; import org.apache.commons.lang3.ObjectUtils; import org.apache.poi.ss.usermodel.Workbook; @@ -27,10 +42,6 @@ import com.consum.base.core.type.TransferStatesType; import com.consum.base.core.utils.CommonUtil; import com.consum.base.core.utils.IdUtil; import com.consum.base.pojo.GoodsUseRecordVO; import com.consum.base.pojo.LWhFormTransferGoodsInfoParam; import com.consum.base.pojo.RecordUserInfoVO; import com.consum.base.pojo.UseRecordSkuVO; import com.consum.base.pojo.dto.GoodsInfoDTO; import com.consum.base.pojo.dto.UseRecordDTO; import com.consum.base.pojo.excel.TransferExcelTemplate; @@ -42,20 +53,7 @@ import com.consum.base.pojo.response.GoodsTemplateCountVO; import com.consum.base.pojo.response.LWHFromTransferExtendVO; import com.consum.base.pojo.response.TransferInfoVO; import com.consum.base.service.BaseWarehouseService; import com.consum.base.service.LGoodsUserRecordCoreService; import com.consum.base.service.LWhFormTransferService; import com.consum.base.service.LWhGoodsService; import com.consum.base.service.LWhProcureModelService; import com.consum.base.service.LWhProcureModelUserRecordService; import com.consum.base.service.LWhProcureModelUserService; import com.consum.base.service.core.LWhFormTransferCoreService; import com.consum.model.po.BaseWarehouse; import com.consum.model.po.FinSysTenantUser; import com.consum.model.po.LWhFormTransfer; import com.consum.model.po.LWhProcureModel; import com.consum.model.po.LWhProcureModelUser; import com.consum.model.po.LWhProcureModelUserRecord; import com.iplatform.model.po.S_user_core; import com.walker.db.page.GenericPager; import com.walker.infrastructure.utils.CollectionUtils; @@ -68,6 +66,7 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.web.multipart.MultipartFile; /** * @Description è°æ¨ç®¡ç @@ -95,6 +94,14 @@ private LWhGoodsService lWhGoodsService; @Autowired private BaseWarehouseService baseWarehouseService; @Autowired private FinSysTenantDepartmentService departmentService; @Autowired private BaseCategoryService baseCategoryService; @Autowired private BaseGoodsTemplateService baseGoodsTemplateService; @Autowired private BaseGoodsModelsService baseGoodsModelsService; /** * @Description æ°å¢ @@ -118,6 +125,65 @@ return ResponseValue.error("è°æ¨åä¸è½ä¸ºç©º"); } long id = this.lWhFormTransferService.add(param, this.getSysInfo(), StrUtil.isEmpty(param.getProcureDoc())); if (id == -1L) { return ResponseValue.error("æ¨ä¸æ¯åºç®¡å"); } if (id == -2L) { return ResponseValue.error("ä»åºä¸åå¨"); } Integer transferBusinessType = param.getTransferBusinessType(); // é¨é¨ååä¸å¡éè¦å¤ç // æå æ°é»è¾ if (transferBusinessType == 1 && !StrUtil.isEmpty(param.getProcureDoc())) { // å åºåºï¼åå ¥åº // åºåºå 设置åºåºä»åº List<LWhProcureModel> modelByForm = lWhProcureModelService.getModelByForm(WhBusinessEnum.BUMENFENFA, id); Set<Long> baseModelIds = modelByForm.stream().map(LWhProcureModel::getBaseGoodsModelsId).collect(Collectors.toSet()); FinSysTenantUser sysTenantUser = this.getSysInfo(); String agencyId = sysTenantUser.getTenantId(); List<BaseWarehouse> baseWarehouseList = baseWarehouseService.getBaseWareHouseList(Long.valueOf(agencyId), StatesType.NORMAL.getValue()); Set<Long> wareHouseIds = baseWarehouseList.stream().map(BaseWarehouse::getId).collect(Collectors.toSet()); // éè¿è°æ¨åä¸çåå·idæ¥è¯¢åºè¯¥åå·ç©åæå¨çä»åºä½ç½® List<GoodsInfoDTO> goodsInfoDTOS = lWhGoodsService.queryGoodsInfo(baseModelIds, wareHouseIds, null); GoodsInfoDTO goodsInfoDTO = goodsInfoDTOS.stream().findFirst().orElse(null); if (ObjectUtils.isEmpty(goodsInfoDTO)) { return ResponseValue.error("该åå·æ²¡æåºåå¯ä½¿ç¨"); } Long wareHouseId = goodsInfoDTO.getWarehouseId(); String warehouseName = goodsInfoDTO.getWarehouseName(); LWhFormTransfer lWhFormTransfer = new LWhFormTransfer(id); lWhFormTransfer.setOutWarehouseId(wareHouseId); lWhFormTransfer.setOutWarehouseName(warehouseName); lWhFormTransferService.update(lWhFormTransfer); Long l = lWhFormTransferCoreService.doTransferOutPutNew(id, getCurrentUser(), WhBusinessEnum.BUMENFENFA); if (l == -1L) { return ResponseValue.error("ä»åºæ°éä¸è¶³"); } lWhFormTransferCoreService.doTransferInPut(id, getCurrentUser(), param.getOperatorName()); } return ResponseValue.success(); } public ResponseValue add2(LWhFormTransferParam param) throws Exception { S_user_core currentUser = this.getCurrentUser(); if (currentUser == null) { return ResponseValue.error("ç»å½ç¨æ·ä¿¡æ¯ä¸åå¨"); } List<LWhFormTransferGoodsInfoParam> transferGoods = param.getTransferGoods(); if (CollectionUtils.isEmpty(transferGoods)) { return ResponseValue.error("è°æ¨åä¸è½ä¸ºç©º"); } FinSysTenantUser sysInfo = this.getSysInfo(); long id = this.lWhFormTransferService.add(param, sysInfo, true); if(id == -1L){ return ResponseValue.error("æ¨ä¸æ¯åºç®¡å"); } @@ -614,4 +680,330 @@ lWhFormTransferService.queryDepartmentTransferOrder(); return ResponseValue.success(transferInfoVO); } /** * åååå¯¼å ¥ * * @param file * @return */ @ApiOperation(value = "åååå¯¼å ¥", notes = "åååå¯¼å ¥") @PostMapping("/import2") public ResponseValue import2(MultipartFile file) { String originalFilename = file.getOriginalFilename(); // æä»¶æ ¼å¼æ ¡éª // if (!".xls".endsWith(originalFilename)) { // return ResponseValue.error("æä»¶æ ¼å¼æè¯¯!"); // } FinSysTenantUser sysInfo = this.getSysInfo(); if (sysInfo == null) { return ResponseValue.error("å½åç»å½ç¨æ·ä¸ºç©º"); } try { EasyExcelFactory.read(file.getInputStream(), LWhFormTransferTemplate.class, new AnalysisEventListener<LWhFormTransferTemplate>() { /** * åååä¸»æ°æ® */ final List<LWhFormTransferGoodsInfoParam> list = Lists.newArrayList(); /** * åååçå¤å±çä¸»æ°æ® */ final LWhFormTransferParam lWhFormTransferParam = new LWhFormTransferParam(); /** * è¡ç´¢å¼ */ Integer index = 0; /** * è¡¨å¤´ä¿¡æ¯ * @param headMap * @param context */ @Override public void invokeHeadMap(Map headMap, AnalysisContext context) { // éªè¯è¡¨å¤´æ°é logger.info("è§£æåååç表头é¿åº¦: {}", headMap.size()); if (headMap.size() != 15) { throw new ExcelAnalysisException("ä¸ä¼ çæä»¶ä¸ç¬¦!"); } } /** * å¯¼å ¥ä¸»(æä»¶æ°æ®å¤ç) * @param data * @param analysisContext */ @Override public void invoke(LWhFormTransferTemplate data, AnalysisContext analysisContext) { index++; String categoryOne = data.getCategoryOne(); String categoryTwo = data.getCategoryTwo(); String categoryThree = data.getCategoryThree(); if (StrUtil.isEmpty(categoryThree)) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®ï¼åç±»åç§°ä¸è½ä¸ºç©ºï¼" + categoryThree); } String goodsName = data.getGoodsName(); if (StrUtil.isEmpty(goodsName)) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®ï¼ååä¸è½ä¸ºç©ºï¼" + goodsName); } String goodModelName = data.getGoodModelName(); if (StrUtil.isEmpty(goodModelName)) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®ï¼è§æ ¼åå·ä¸è½ä¸ºç©ºï¼" + goodModelName); } String unit = data.getUnit(); String type = data.getType(); if (StrUtil.isEmpty(type)) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®ï¼ç®¡çåç±»ä¸è½ä¸ºç©ºï¼" + type); } String agencyName = data.getAgencyName(); if (StrUtil.isEmpty(agencyName)) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®ï¼åå»ºæºæä¸è½ä¸ºç©ºï¼" + agencyName); } //String warehouseName = data.getWarehouseName(); String supplierName = data.getSupplierName(); //String price = data.getPrice(); String num = data.getNum(); if (StrUtil.isEmpty(num)) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®ï¼é¢ç¨æ°éä¸è½ä¸ºç©ºï¼" + num); } // ç©åç±»å(èªééé) //String goodsType = data.getGoodsType(); // 使ç¨äººé¨é¨ String userDepartment = data.getUserDepartment(); if (StrUtil.isEmpty(userDepartment)) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®ï¼ä½¿ç¨äººé¨é¨ä¸è½ä¸ºç©ºï¼" + userDepartment); } // å¡«æ¥äºº String reportedBy = data.getReportedBy(); if (StrUtil.isEmpty(reportedBy)) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®ï¼å¡«æ¥äººä¸è½ä¸ºç©ºï¼" + reportedBy); } // 使ç¨äºº String user = data.getUser(); if (StrUtil.isEmpty(user)) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®ï¼ä½¿ç¨äººä¸è½ä¸ºç©ºï¼" + user); } // èç³»çµè¯ String userContactPhone = data.getUserContactPhone(); if (StrUtil.isEmpty(userContactPhone)) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®ï¼èç³»çµè¯ä¸è½ä¸ºç©ºï¼" + userContactPhone); } // ç¬¬ä¸æ¬¡è¿æ¥æå¤å±çå¼è®¾ç½®ä¸ä¸ if (StrUtil.isEmpty(lWhFormTransferParam.getDepartmentName())) { // æºæid (æ ¹æ® æºæåç§°åé¨é¨åç§° æ¥æ¾å¯¹åºçid) FinSysTenantDepartment finSysTenantDepartment = departmentService.queryIdByTenDepName(agencyName, userDepartment); if (finSysTenantDepartment == null) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ® " + "æºæ-é¨é¨æªæ¾å°ï¼[" + agencyName + "-" + userDepartment + "]"); } lWhFormTransferParam.setTransferBusinessType(1); lWhFormTransferParam.setDepartmentId(finSysTenantDepartment.getId()); lWhFormTransferParam.setDepartmentName(userDepartment); lWhFormTransferParam.setOperatorName(reportedBy); lWhFormTransferParam.setTel(0L); lWhFormTransferParam.setCreateTime(DateUtil.getNowDate()); lWhFormTransferParam.setProcureDoc(""); lWhFormTransferParam.setOutAgencyId(finSysTenantDepartment.getTenantId()); } // æ¥è¯¢åç±»id BaseCategory baseCategory = baseCategoryService.getByCategoryByName(categoryThree); if (baseCategory == null) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®" + "æ¤åç±»æªæ¾å°ï¼" + categoryThree); } Long categoryId = baseCategory.getId(); // ä¸åééç±»åï¼ä¸åçé Optional<LWhFormTransferGoodsInfoParam> optional = null; // çéç±»å optional = list.stream().filter(item -> item.getBaseCategoryId().equals(categoryId)).findFirst(); // çéç©åå Optional<LWhFormTransferGoodsInfoParam> optional2 = list.stream().filter(item -> item.getGoodsTemplateName().equals(goodsName)).findFirst(); // æ°æ®ç¬¬äºå±-ç©åçid BaseGoodsTemplate goodsTemplate = baseGoodsTemplateService.getByGoodsNameAndCategoryId(goodsName, categoryId); if (goodsTemplate == null) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®" + "æ¤ç©åæªæ¾å°ï¼" + goodsName); } if (optional.isPresent() && optional2.isPresent()) { // å å±list(é¢ç¨äºº) List<LWhTransferModelParam> models3 = optional.get().getModels(); // æ¾åå·åå䏿 ·ç Optional<LWhTransferModelParam> optional3 = models3.stream().filter(item -> item.getBaseGoodsModelsName().equals(goodModelName)).findFirst(); int counts = 0; for (LWhTransferModelParam m : models3) { int addNum = 0; if (m.getNum() != null) { addNum = m.getCounts(); } counts += addNum; } // åä¸ä¸ªåå·ç if (optional3.isPresent()) { if ("A".equals(type)) { LWhProcureModelUserParam lWhProcureModelUserParam = new LWhProcureModelUserParam(); lWhProcureModelUserParam.setGoodsNum(Integer.valueOf(num)); lWhProcureModelUserParam.setNowUserName(user); lWhProcureModelUserParam.setNowUserPhone(new Long(userContactPhone)); Integer counts1 = optional3.get().getCounts(); Integer num1 = optional3.get().getNum(); optional3.get().setCounts(Integer.valueOf(num) + counts1); optional3.get().setNum(Integer.valueOf(num) + num1); optional3.get().getProcureModelUserList().add(lWhProcureModelUserParam); } else { Integer counts1 = optional3.get().getCounts(); Integer num1 = optional3.get().getNum(); optional3.get().setCounts(Integer.valueOf(num) + counts1); optional3.get().setNum(Integer.valueOf(num) + num1); } } else { // æ¤ç©åå¦å¤çè§æ ¼åå· LWhTransferModelParam lWhTransferModelParam = new LWhTransferModelParam(); // 模æ¿çid BaseGoodsModels selBaseGoodsModels = new BaseGoodsModels(); selBaseGoodsModels.setModelName(goodModelName); selBaseGoodsModels.setGoodsTemplatesId(goodsTemplate.getId()); BaseGoodsModels selByModelNameAndGoodsTemplatesId = baseGoodsModelsService.getByModelNameAndGoodsTemplatesId(selBaseGoodsModels); if (selByModelNameAndGoodsTemplatesId == null) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®" + "ååï¼" + goodsName + "ï¼è§æ ¼åå·ï¼" + goodModelName + "æªæ¾å°"); } lWhTransferModelParam.setBaseGoodsModelsId(selByModelNameAndGoodsTemplatesId.getId()); // å å±listçæ°éä¹å lWhTransferModelParam.setCounts(Integer.valueOf(num)); // 模æ¿åç§° lWhTransferModelParam.setBaseGoodsModelsName(goodModelName); List<LWhProcureModelUserParam> addLWhProcureModelUserParam = new ArrayList<>(); LWhProcureModelUserParam lWhProcureModelUserParam = new LWhProcureModelUserParam(); lWhProcureModelUserParam.setGoodsNum(Integer.valueOf(num)); // æ¥è¯¢åºåæ°é Integer nowNum = selectAllNumber(lWhFormTransferParam.getOutAgencyId(), selByModelNameAndGoodsTemplatesId.getId()); if(nowNum<new Integer(num)){ throw new ExcelAnalysisException("第" + index + "æ¡æ°æ®" + "ååï¼[" + goodsName + "] è§æ ¼åå·ï¼[" + goodModelName + "] åºåæ°éä¸è¶³ï¼["+nowNum+"]"); } lWhProcureModelUserParam.setNowUserName(user); lWhProcureModelUserParam.setNowUserPhone(new Long(userContactPhone)); addLWhProcureModelUserParam.add(lWhProcureModelUserParam); lWhTransferModelParam.setProcureModelUserList(addLWhProcureModelUserParam); optional.get().getModels().add(lWhTransferModelParam); } } else { LWhFormTransferGoodsInfoParam lWhFormTransferGoodsInfoParam = new LWhFormTransferGoodsInfoParam(); // åç±»id lWhFormTransferGoodsInfoParam.setBaseCategoryId(categoryId); // æ°æ®ç¬¬äºå±-ç©åçid //BaseGoodsTemplate goodsTemplate = baseGoodsTemplateService.getByGoodsNameAndCategoryId(goodsName, categoryId); BaseGoodsModels selBaseGoodsModels = new BaseGoodsModels(); selBaseGoodsModels.setModelName(goodModelName); selBaseGoodsModels.setGoodsTemplatesId(goodsTemplate.getId()); BaseGoodsModels selByModelNameAndGoodsTemplatesId = baseGoodsModelsService.getByModelNameAndGoodsTemplatesId(selBaseGoodsModels); if (selByModelNameAndGoodsTemplatesId == null) { throw new ExcelAnalysisException("第" + index + "æ¡æ°æ® " + "ååï¼" + goodsName + "ï¼è§æ ¼åå·ï¼" + goodModelName + "æªæ¾å°"); } // ç©åçid ï¼ç±ççµå¨è½¦ lWhFormTransferGoodsInfoParam.setBaseGoodsTemplateId(goodsTemplate.getId()); lWhFormTransferGoodsInfoParam.setGoodsTemplateName(goodsName); // å å± LWhTransferModelParam lWhTransferModelParam = new LWhTransferModelParam(); // è§æ ¼id lWhTransferModelParam.setBaseGoodsModelsId(selByModelNameAndGoodsTemplatesId.getId()); // æ°å¢çæ¶åé»è®¤ä¸æ¡ lWhTransferModelParam.setCounts(new Integer(num)); lWhTransferModelParam.setNum(new Integer(num)); List<LWhProcureModelUserParam> lWhFormProcureGoodsInfoParam = new ArrayList<>(); LWhProcureModelUserParam lWhProcureModelUserParam = new LWhProcureModelUserParam(); lWhProcureModelUserParam.setGoodsNum(Integer.valueOf(num)); // æ¥è¯¢åºåæ°é Integer nowNum = selectAllNumber(lWhFormTransferParam.getOutAgencyId(), selByModelNameAndGoodsTemplatesId.getId()); if(nowNum<new Integer(num)){ throw new ExcelAnalysisException("第" + index + "æ¡æ°æ® " + "ååï¼[" + goodsName + "] è§æ ¼åå·ï¼[" + goodModelName + "] åºåæ°éä¸è¶³ï¼["+nowNum+"]"); } lWhProcureModelUserParam.setNowUserName(user); lWhProcureModelUserParam.setNowUserPhone(new Long(userContactPhone)); lWhFormProcureGoodsInfoParam.add(lWhProcureModelUserParam); lWhTransferModelParam.setProcureModelUserList(lWhFormProcureGoodsInfoParam); lWhTransferModelParam.setBaseGoodsModelsName(goodModelName); List<LWhTransferModelParam> lWhTransferModelParams = new ArrayList<>(); lWhTransferModelParams.add(lWhTransferModelParam); lWhFormTransferGoodsInfoParam.setModels(lWhTransferModelParams); lWhFormTransferGoodsInfoParam.setType(type); list.add(lWhFormTransferGoodsInfoParam); } } /** * åååå¯¼å ¥ä¸»æ¹æ³ * @param analysisContext */ @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { lWhFormTransferParam.setTransferGoods(list); long id = IdUtil.generateId(); //lWhFormTransferParam.setProcureDoc("[{\"fileType\":\"png\",\"id\":\"883654049218335\",\"name\":\"微信æªå¾_20240426143552.png\",\"url\":\"http://172.16.60.172:8083/lowConsum/file/2024/5/883654049218335.png\",\"path\":\"2024/5/883654049218335.png\",\"attSize\":6772}]"); lWhFormTransferParam.setProcureDoc("-"); lWhFormTransferParam.setId(id); String jsonString = JSONObject.toJSONString(lWhFormTransferParam); logger.info("å¯¼å ¥åååjsonæ°æ® --------------------"); logger.info(jsonString); // åååæ® try { ResponseValue responseValue = add2(lWhFormTransferParam); logger.info(responseValue.toString()); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } } @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 ExcelAnalysisException("第" + row + "è¡ï¼ç¬¬" + column + "åè§£æå¼å¸¸ï¼è¯·æ£ç¡®å¡«å"); } else { throw new ExcelAnalysisException(exception.getMessage()); } } }).sheet(0).doRead(); } catch (ExcelAnalysisException e) { return ResponseValue.error(e.getMessage()); } catch (RuntimeException e) { e.printStackTrace(); return ResponseValue.error("ç³»ç»é误"); } catch (Exception e) { e.printStackTrace(); return ResponseValue.error("ç³»ç»é误"); } return ResponseValue.success("å¯¼å ¥æå!"); } /** * æ¥è¯¢åºåId * @param agencyId * @param baseGoodsModelsId * @return */ public Integer selectAllNumber(Long agencyId,Long baseGoodsModelsId) { WarehouseQry warehouseQry = new WarehouseQry(); warehouseQry.setAgencyId(agencyId); warehouseQry.setBaseGoodsModelsId(baseGoodsModelsId); List<BaseWarehouse> baseWarehouseList = baseWarehouseService.getBaseWareHouseList(agencyId, StatesType.NORMAL.getValue()); List<Long> warehouseIdList = baseWarehouseList.stream().map(BaseWarehouse::getId).collect(Collectors.toList()); Integer warehouseType = warehouseQry.getWarehouseType(); Integer states = warehouseQry.getStates(); Integer buyType = warehouseQry.getBuyType(); // è°æ¨æ¶åªæ¥æºæç±»åçééä»åºåºå // é¨é¨ååæ¶ä¸åæºæåé¨é¨ï¼å ä¸ºè°æ¨è¿æ¥çç©åä¹ç®å¨åºåéåªæ¯ç±»å为é¨é¨ï¼åæ ·æ£è§ææä»åºè¯¥åå·çæ°é int num = lWhGoodsService.queryGoodsModelInWareHouseNum(warehouseType, warehouseIdList, baseGoodsModelsId, states, buyType); return num; } } consum-base/src/main/java/com/consum/base/listener/EasyExcelListener.java
New file @@ -0,0 +1,39 @@ package com.consum.base.listener; import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.excel.context.AnalysisContext; import java.util.ArrayList; import java.util.List; import java.util.Map; public class EasyExcelListener extends AnalysisEventListener<Map<Integer, String>> { //è¡¨å¤´æ°æ®ï¼å卿æçè¡¨å¤´æ°æ®ï¼ private List<Map<Integer, String>> headList = new ArrayList<>(); //æ°æ®ä½ private List<Map<Integer, String>> dataList = new ArrayList<>(); @Override//è¿éä¼ä¸è¡è¡çè¿å头 public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) { //åå¨å ¨é¨è¡¨å¤´æ°æ® System.out.println("1"); headList.add(headMap); } @Override// å¤çæ¯ä¸è¡æ°æ® public void invoke(Map<Integer, String> data, AnalysisContext context) { dataList.add(data); } @Override// å ¨é¨å¤çç»ææ§è¡ public void doAfterAllAnalysed(AnalysisContext context) { } public List<Map<Integer, String>> getHeadList() { return headList; } public List<Map<Integer, String>> getDataList() { return dataList; } } consum-base/src/main/java/com/consum/base/pojo/LWhFormProcureGoodsInfoParam.java
@@ -32,5 +32,8 @@ private Integer sort = null; /** * åç±»id */ private Long categoryId; } consum-base/src/main/java/com/consum/base/pojo/excel/ImportClassificationTemplate.java
New file @@ -0,0 +1,26 @@ package com.consum.base.pojo.excel; import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; /** * åè½æè¿°: åç±»æ¨¡æ¿ * * @author lxk * @date 2024/5/11 10:43 * @version 1.0 **/ @Data public class ImportClassificationTemplate { @ExcelProperty("ä¸çº§åç±»") private String categoryOne; @ExcelProperty("äºçº§åç±»") private String categoryTwo; @ExcelProperty("åç±»åç§°") private String categoryThree; @ExcelProperty("管çåç±»") private String type; } consum-base/src/main/java/com/consum/base/pojo/excel/ImportGoodsInfoTemplate.java
@@ -1,5 +1,6 @@ package com.consum.base.pojo.excel; import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; @@ -12,22 +13,20 @@ */ @Data public class ImportGoodsInfoTemplate { @ExcelProperty("ä¸çº§åç±»") private String categoryOne; @ExcelProperty("äºçº§åç±»") private String categoryTwo; @ExcelProperty("ä¸çº§åç±»") @ExcelProperty("åç±»åç§°") private String categoryThree; @ExcelProperty("ç©ååç§°") @ExcelProperty("åå") private String goodsName; @ExcelProperty("è§æ ¼åå·") private String goodModelName; @ExcelProperty("åä½") private String unit; @ExcelProperty("éè´ç±»å") private String type; // @ExcelProperty("ç©åç±»å") // private String type; @ExcelProperty("æå±æºæ") private String agencyName; } consum-base/src/main/java/com/consum/base/pojo/excel/ImportProcureOrderTemplate.java
@@ -13,28 +13,33 @@ @Data public class ImportProcureOrderTemplate { @ExcelProperty("å ¥åºæºæ") private String agencyName; @ExcelProperty("å ¥åºä»åº") private String warehouseName; @ExcelProperty("éè´ç±»å") private String type; @ExcelProperty("ç©åä¸çº§åç±»") @ExcelProperty("ä¸çº§åç±»") private String categoryOne; @ExcelProperty("ç©åäºçº§åç±»") @ExcelProperty("äºçº§åç±»") private String categoryTwo; @ExcelProperty("ç©åä¸çº§åç±»") @ExcelProperty("åç±»åç§°") private String categoryThree; @ExcelProperty("ç©ååç§°") @ExcelProperty("管çåç±»") private String type; @ExcelProperty("åå") private String goodsName; @ExcelProperty("è§æ ¼åå·") private String goodModelName; @ExcelProperty("åä½") private String unit; @ExcelProperty("ç©åç±»å") private String goodsType; @ExcelProperty("æå¨ä»åº") private String warehouseName; // @ExcelProperty("åå»ºæºæ") // private String agencyName; @ExcelProperty("ä¾è´§å") private String supplierName; @ExcelProperty("æ°éåä½") private String unit; @ExcelProperty("åä»·(å )") private String price; @ExcelProperty("å ¥åºæ°é") @ExcelProperty("åºåæ°é") private String num; // @ExcelProperty("åºç®¡å") // private String warehouseKeeper; } consum-base/src/main/java/com/consum/base/pojo/excel/LWhFormTransferTemplate.java
New file @@ -0,0 +1,53 @@ package com.consum.base.pojo.excel; import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; /** * åè½æè¿°: åå忍¡æ¿ * * @author lxk * @version 1.0 * @date 2024/5/10 10:15 **/ @Data public class LWhFormTransferTemplate { @ExcelProperty("ä¸çº§åç±»") private String categoryOne; @ExcelProperty("äºçº§åç±»") private String categoryTwo; @ExcelProperty("åç±»åç§°") private String categoryThree; @ExcelProperty("管çåç±»") private String type; @ExcelProperty("åå") private String goodsName; @ExcelProperty("è§æ ¼åå·") private String goodModelName; @ExcelProperty("åä½") private String unit; // @ExcelProperty("ç©åç±»å") // private String goodsType; // @ExcelProperty("æå¨ä»åº") // private String warehouseName; @ExcelProperty("æå±æºæ") private String agencyName; @ExcelProperty("ä¾è´§å") private String supplierName; // @ExcelProperty("åä»·(å )") // private String price; @ExcelProperty("åºç®¡å") private String warehouseKeeper; @ExcelProperty("使ç¨äºº") private String user; @ExcelProperty("使ç¨äººé¨é¨") private String userDepartment; @ExcelProperty("使ç¨äººèç³»çµè¯") private String userContactPhone; @ExcelProperty("é¢ç¨æ°é") private String num; @ExcelProperty("å¡«æ¥äºº") private String reportedBy; } consum-base/src/main/java/com/consum/base/service/BaseCategoryService.java
@@ -36,4 +36,19 @@ * @return */ BaseCategory getByCategoryByName(String categoryName); /** * æ¥è¯¢æå¤§çæåºå·By id * @param id åç±»id * @return */ int selIndexByPid(Long id); /** * ç©ååç±»å表æ¥è¯¢ç²¾ç¡®æ¥è¯¢ * @param baseCategoryParam1 * @return */ GenericPager<BaseCategory> queryBaseCategoryList2(BaseCategoryParam baseCategoryParam1); } consum-base/src/main/java/com/consum/base/service/FinSysTenantDepartmentService.java
@@ -63,5 +63,13 @@ List<FinSysTenantDepartment> queryDataList(FinSysTenantDepartmentParam finSysTenantDepartmentParam1); /** * æ¥è¯¢id byæºæåé¨é¨å * @param tenantName * @param departmentName * @return */ FinSysTenantDepartment queryIdByTenDepName(String tenantName, String departmentName); } consum-base/src/main/java/com/consum/base/service/impl/BaseCategoryServiceImpl.java
@@ -3,6 +3,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -102,6 +103,42 @@ if (!StringUtils.isEmpty(param.getCategoryName())) { sql.append(" and category_name like:category_name "); paramts.put("category_name", StringUtils.CHAR_PERCENT + param.getCategoryName() + StringUtils.CHAR_PERCENT); } // ç±»å« if (!StringUtils.isEmpty(param.getClassification())) { sql.append(" and classification =:classification "); paramts.put("classification", param.getClassification()); } // ç¶æ if (param.getStates() != null) { sql.append(" and states =:states "); paramts.put("states", param.getStates()); } else { sql.append(" and states !=3 "); } sql.append(" ORDER BY ORDER_NUMBER,CREATE_TIME DESC "); return selectSplit(sql.toString(), paramts, new BaseCategory()); } /** * ç©ååç±»å表æ¥è¯¢ç²¾ç¡®æ¥è¯¢ * @param param * @return */ public GenericPager<BaseCategory> queryBaseCategoryList2(BaseCategoryParam param) { StringBuilder sql = new StringBuilder("SELECT * FROM base_category WHERE 1 = 1 "); HashMap<String, Object> paramts = new HashMap<>(); // åç±»åç§° if (param.getFatherCategoryId() != null) { sql.append("and father_category_id =:fatherCategoryId "); paramts.put("fatherCategoryId", param.getFatherCategoryId()); } else { sql.append("and levels =1 "); } // åç±»åç§° if (!StringUtils.isEmpty(param.getCategoryName())) { sql.append(" and category_name =:category_name "); paramts.put("category_name", param.getCategoryName()); } // ç±»å« if (!StringUtils.isEmpty(param.getClassification())) { @@ -236,4 +273,25 @@ BaseCategory baseCategory = this.get(sql.toString(), paramts, new BaseCategory()); return baseCategory; } /** * æ¥è¯¢åç±»å级å«çæå¤§æåºå· * @param id åç±» * @return */ @Override public int selIndexByPid(Long id) { StringBuilder sql = new StringBuilder("SELECT max(ORDER_NUMBER) maxNum FROM base_category WHERE 1 = 1 "); HashMap<String, Object> paramts = new HashMap<>(); // åç±»åç§° sql.append(" and FATHER_CATEGORY_ID =:FATHER_CATEGORY_ID "); paramts.put("FATHER_CATEGORY_ID", id); Map getMap = this.get(sql.toString(), paramts); Object obj = getMap.get("maxNum"); if(obj!=null){ return new Integer(obj.toString()); } return 0; } } consum-base/src/main/java/com/consum/base/service/impl/FinSysTenantDepartmentServiceImpl.java
@@ -203,4 +203,19 @@ List<FinSysTenantDepartment> select = this.select(sql.toString(), paramts, new FinSysTenantDepartment()); return select; } /** * æ ¹æ®é¨é¨åæºæåæ¥æ¾å¯¹åºçé¨é¨ä¿¡æ¯ * @param tenantName * @param departmentName * @return */ @Override public FinSysTenantDepartment queryIdByTenDepName(String tenantName, String departmentName ) { StringBuilder sql = new StringBuilder("SELECT * FROM fin_sys_tenant_department \n" + "WHERE TENANT_ID = ( SELECT id FROM fin_sys_tenant WHERE NAME = '"+tenantName+"' LIMIT 1 ) AND NAME = '"+departmentName+"' LIMIT 1 "); HashMap<String, Object> paramts = new HashMap<>(); return this.get(sql.toString(), paramts, new FinSysTenantDepartment()); } } consum-base/src/main/java/com/consum/base/util/DateUtil.java
New file @@ -0,0 +1,250 @@ package com.consum.base.util; import org.apache.commons.lang3.StringUtils; import java.sql.Timestamp; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.format.DateTimeFormatter; import java.util.Calendar; import java.util.Date; /** * åè½æè¿°: æ¶é´å¤ç * * @author lxk * @date 2024/4/9 10:34 * @version 1.0 **/ public class DateUtil { /** * @author: hyf * @create: 2023/4/26 0026 * @description: è·åå½åæ¶é´ * **/ public static Timestamp getNowTimestamp(){ return new Timestamp(System.currentTimeMillis()); } /** * è·åå½åæ¶é´çlongå¼ * * @return è¿åå½åæ¶é´çlongå¼ï¼ä¾ 20230101101010 */ public static Long getNowDate() { DateFormat df = new SimpleDateFormat("yyyyMMddHHmmss"); long currentTimeMillis = System.currentTimeMillis(); Date date = new Date(currentTimeMillis); String format = df.format(date); return new Long(format); } /** * æ14ä½çæ¶é´longï¼è½¬åæ¶é´å符串 * @param dateLong longæ¶é´14ä½ * @param format è¦è½¬çæ¶é´æ ¼å¼ * @return */ public static String getStrDateByLong(Long dateLong,String format) { String dateStr = dateLong.toString(); DateFormat df = new SimpleDateFormat("yyyyMMddHHmmss"); DateFormat df2 = new SimpleDateFormat(format); try { Date parse = df.parse(dateStr); String format1 = df2.format(parse); return format1; } catch (ParseException e) { throw new RuntimeException(e); } } public static Long DateToLong(Date date) { DateFormat df = new SimpleDateFormat("yyyyMMddHHmmss"); String format = df.format(date); return new Long(format); } /** * è·åå½åæ¶å * @return */ public static Long getNowTime4HHMM() { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HHmm"); LocalTime localTime = LocalTime.now(); String format = localTime.format(formatter); return Long.parseLong(format); } /** * 夿å½åæ¶é´å¨æä¸ªåºé´ * @param startTime * @param endTime * @return */ public static Boolean betweenNowTime(Long startTime, Long endTime) { Long nowTime4HHMM = DateUtil.getNowTime4HHMM(); if (startTime <= nowTime4HHMM && endTime >= nowTime4HHMM) { return true; } return false; } /** * æ¶é´æ·»å 天 * @param time * @param day * @return */ public static Long addDay(Long time, Long day) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); LocalDateTime localDateTime = LocalDateTime.parse(time.toString(time), formatter); LocalDateTime newTime = localDateTime.plusDays(day); String format = newTime.format(formatter); return Long.parseLong(format); } /** * æ¶é´åå°å¤© * @param time * @param day * @return */ public static Long subDay(Long time, Long day) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); LocalDateTime localDateTime = LocalDateTime.parse(time.toString(time), formatter); LocalDateTime newTime = localDateTime.minusDays(day); String format = newTime.format(formatter); return Long.parseLong(format); } private static final DateTimeFormatter dayFormatter = DateTimeFormatter.ofPattern("yyyyMMdd"); private static final DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); private static final SimpleDateFormat birthdayFormat = new SimpleDateFormat("yyyy-MM-dd"); /** * æ¹æ³æè¿°: æ¥æç±»åæ ¼å¼è½¬æ¢ * egï¼20240428163146 转æ¢ä¸º èªå®ä¹æ¥ææ ¼å¼ * **/ public static String longToStr(Long time,String fmt) { DateTimeFormatter defaultFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); if(StringUtils.isNotBlank(fmt)){ defaultFormatter = DateTimeFormatter.ofPattern(fmt); } if(time.toString().length() == 8) { LocalDate start = LocalDate.parse(time.toString(), dayFormatter); return start.format(defaultFormatter); } else { LocalDateTime start = LocalDateTime.parse(time.toString(), timeFormatter); return start.format(defaultFormatter); } } /** * æ ¹æ®çæ¥è·åå¹´é¾ * egï¼åºçå¹´ææ¥=2000-04-30ï¼å½åæ¶é´=2024-04-29ï¼åage=24 * @param birthday åºçæ¥æ * @return */ private static int getAgeByBirth(String birthday) { int age = 0; try { Date date = birthdayFormat.parse(birthday); Calendar now = Calendar.getInstance(); // å½åæ¶é´ now.setTime(new Date()); Calendar birth = Calendar.getInstance(); birth.setTime(date); //å¦æä¼ å ¥çæ¶é´ï¼å¨å½åæ¶é´çåé¢ï¼è¿å0å² if (birth.after(now)) { age = 0; } else { age = now.get(Calendar.YEAR) - birth.get(Calendar.YEAR); if (now.get(Calendar.DAY_OF_YEAR) > birth.get(Calendar.DAY_OF_YEAR)) { age += 1; } } return age; } catch (Exception e) { e.getStackTrace(); return 0; } } /** * æ ¹æ®å¹´é¾è·åçæ¥ * egï¼age=24ï¼å½åæ¶é´=2024-04-30ï¼ååºçå¹´ææ¥=2000-04-30ï¼ * @param age å¹´é¾ * @return */ public static LocalDate getBirthByAge(int age){ LocalDate localDate = LocalDate.now(); return localDate.minusYears(age); } /** * è·åå½åæ¥æ */ public static Long getNowTime(String fmt) { if(StringUtils.isBlank(fmt)){ fmt = "yyyyMMddHHmmss"; } DateTimeFormatter formatter = DateTimeFormatter.ofPattern(fmt); if(fmt.length() == 8) { LocalDate localTime = LocalDate.now(); String format = localTime.format(formatter); return Long.parseLong(format); } else { LocalDateTime localTime = LocalDateTime.now(); String format = localTime.format(formatter); return Long.parseLong(format); } } /** * 夿å½åæ¥æå¨æä¸ªåºé´ * @param startDate å¼å§æ¥æ * @param endDate æªæ¢æ¥æ * @param fmt èªå®ä¹æ ¼å¼ï¼é»è®¤=yyyyMMddHHmmss */ public static Boolean betweenNowDateTime(Long startDate, Long endDate,String fmt) { Long nowDate = DateUtil.getNowTime(fmt); if (startDate <= nowDate && endDate >= nowDate) { return true; } return false; } /** * è·åå½åæ¶é´çlongå¼ * @param fmt èªå®ä¹æ ¼å¼ * @return */ public static Long getNowDateLong(String fmt) { if(StringUtils.isBlank(fmt)) { fmt = "yyyyMMddHHmmss"; } DateFormat df = new SimpleDateFormat(fmt); long currentTimeMillis = System.currentTimeMillis(); Date date = new Date(currentTimeMillis); String format = df.format(date); return new Long(format); } public static void main(String aaa[]){ //System.out.println(getAgeByBirth("2025-04-30")); // System.out.println(betweenNowDateTime(20240429135709L,20240429170909L,"")); // System.out.println(getBirthByAge(23).toString()); // System.out.println(longToStr(20240515L,"yyyy-MM-dd")); System.out.println(getNowDateLong("yyyyMMdd")); } } deploy-jar-single/src/main/resources/import/·Ö·¢µ¼Èë.xlsBinary files differ
deploy-jar-single/src/main/resources/import/ÎïÆ·ÐÅÏ¢.xlsBinary files differ
deploy-jar-single/src/main/resources/import/ÎïÆ·ÐÅÏ¢old.xlsBinary files differ
deploy-jar-single/src/main/resources/import/ÎïÆ··ÖÀà.xlsBinary files differ
deploy-jar-single/src/main/resources/import/²É¹ºµ¼Èë.xlsBinary files differ
deploy-jar-single/src/main/resources/import/²É¹ºµ¼Èëold.xlsBinary files differ