From 0fdac321828bffa833f7d0155a5c147d23bd78d8 Mon Sep 17 00:00:00 2001 From: futian.liu <liufutianyoo@163.com> Date: 星期五, 15 十二月 2023 12:26:25 +0800 Subject: [PATCH] 1.修改调拨查询物品分类接口 2.解决超级管理员无法登录 3.修改手机号 --- consum-base/src/main/java/com/consum/base/controller/LWhWarningConfigController.java | 230 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 221 insertions(+), 9 deletions(-) diff --git a/consum-base/src/main/java/com/consum/base/controller/LWhWarningConfigController.java b/consum-base/src/main/java/com/consum/base/controller/LWhWarningConfigController.java index 4143c23..7f45179 100644 --- a/consum-base/src/main/java/com/consum/base/controller/LWhWarningConfigController.java +++ b/consum-base/src/main/java/com/consum/base/controller/LWhWarningConfigController.java @@ -1,28 +1,52 @@ package com.consum.base.controller; +import cn.afterturn.easypoi.excel.ExcelImportUtil; +import cn.afterturn.easypoi.excel.entity.ImportParams; +import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; import cn.hutool.core.convert.Convert; import com.consum.base.BaseController; +import com.consum.base.handler.WhWarningImportVerifyHandler; import com.consum.base.core.utils.CommonUtil; +import com.consum.base.core.utils.IdUtil; +import com.consum.base.pojo.WarnConfImEntity; import com.consum.base.pojo.WhWarningConfigParam; import com.consum.base.pojo.query.WhWarningConfigQry; -import com.consum.base.service.BaseWarehouseServiceImpl; +import com.consum.base.service.BaseWarehouseService; import com.consum.base.service.LWhWarningConfigServiceImpl; import com.consum.model.po.BaseWarehouse; import com.consum.model.po.FinSysTenantUser; import com.consum.model.po.WhWarningConfig; import com.fasterxml.jackson.databind.ObjectMapper; import com.walker.db.page.GenericPager; +import com.walker.file.FileInfo; import com.walker.infrastructure.utils.NumberGenerator; +import com.walker.web.ResponseCode; import com.walker.web.ResponseValue; import io.swagger.annotations.Api; -import org.apache.commons.lang3.StringUtils; -import org.springframework.util.CollectionUtils; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; +import javax.annotation.Resource; +import org.apache.commons.lang3.StringUtils; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.InputStreamResource; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.util.CollectionUtils; +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; /** * @ClassName LWhWarningConfigController @@ -39,7 +63,7 @@ @Resource private LWhWarningConfigServiceImpl lWhWarningConfigService; @Resource - private BaseWarehouseServiceImpl baseWarehouseService; + private BaseWarehouseService baseWarehouseService; private ObjectMapper mapper = new ObjectMapper(); /** @@ -48,6 +72,10 @@ @PostMapping("/add") public ResponseValue add() throws Exception { WhWarningConfigParam param = CommonUtil.getObjFromReqBody(WhWarningConfigParam.class); + WhWarningConfigParam param2 = new WhWarningConfigParam(); + CommonUtil.copyProperties(param, param2); + param = param2; + String modelConfigStr = param.getModelConfigStr(); Long baseWarehouseId = param.getBaseWarehouseId(); Long baseGoodsTemplateId = param.getBaseGoodsTemplateId(); @@ -99,7 +127,7 @@ return ResponseValue.error("搴撳瓨涓婇檺涓嶈兘灏忎簬涓嬮檺锛�"); } WhWarningConfig whWarningConfig = new WhWarningConfig(); - whWarningConfig.setId(NumberGenerator.getLongSequenceNumber()); + whWarningConfig.setId(IdUtil.generateId()); whWarningConfig.setWarehouseType(0); whWarningConfig.setBaseWarehouseId(baseWarehouseId); whWarningConfig.setBaseGoodsTemplateId(baseGoodsTemplateId); @@ -124,6 +152,10 @@ @PostMapping("/upd") public ResponseValue upd() { WhWarningConfig param = CommonUtil.getObjFromReqBody(WhWarningConfig.class); + WhWarningConfig param2 = new WhWarningConfig(); + CommonUtil.copyProperties(param, param2); + param = param2; + if (param.getId() == null || (param.getUpperLimit() == null && param.getLowerLimit() == null)) { return ResponseValue.error("搴撳瓨涓婇檺銆佷笅闄愪笉鑳藉叏涓虹┖锛�"); } @@ -140,6 +172,9 @@ @DeleteMapping("del") public ResponseValue delById() { WhWarningConfig param = CommonUtil.getObjFromReqBody(WhWarningConfig.class); + WhWarningConfig param2 = new WhWarningConfig(); + CommonUtil.copyProperties(param, param2); + param = param2; if (param.getId() == null) { return ResponseValue.error("id涓虹┖"); } @@ -150,6 +185,9 @@ @GetMapping("/getList") public ResponseValue getConfigList() { WhWarningConfigQry param = CommonUtil.getObjFromReq(WhWarningConfigQry.class); + WhWarningConfigQry param2 = new WhWarningConfigQry(); + CommonUtil.copyProperties(param, param2); + param = param2; /*褰撳墠鐧诲綍浜哄彧鑳界湅鍒拌嚜宸辨満鏋勪笅鐨勫垪琛�*/ FinSysTenantUser sysInfo = this.getSysInfo(); String tenantId = sysInfo.getTenantId(); @@ -164,15 +202,189 @@ @GetMapping("/getById") public ResponseValue getById() { WhWarningConfig param = CommonUtil.getObjFromReq(WhWarningConfig.class); + WhWarningConfig param2 = new WhWarningConfig(); + CommonUtil.copyProperties(param, param2); + param = param2; WhWarningConfig whWarningConfig = lWhWarningConfigService.get(param); return ResponseValue.success(whWarningConfig); } @GetMapping("/getConfigList") - public ResponseValue getConfigList(WhWarningConfig param) { + public ResponseValue getWarnConfigList() { + WhWarningConfig param = CommonUtil.getObjFromReq(WhWarningConfig.class); + WhWarningConfig param2 = new WhWarningConfig(); + CommonUtil.copyProperties(param, param2); + param = param2; + if (param.getBaseWarehouseId() == null || param.getWarehouseType() == null || (param.getBaseGoodsModelsId() == null || param.getBaseGoodsTemplateId() == null)) { return ResponseValue.error("缂哄皯蹇呰鍙傛暟"); } return ResponseValue.success(lWhWarningConfigService.select(param)); } + + /** + * @return 鑾峰彇椤圭洰瀵煎叆鐨勬ā鏉� + * @throws IOException + */ + @GetMapping("getWarnConfImportTemplate") + public ResponseEntity<InputStreamResource> getProjectImportTemplate() throws IOException { + // 浠庡綋鍓嶉」鐩祫婧愮洰褰曡幏鍙栨枃浠� + org.springframework.core.io.Resource resource = new ClassPathResource("import/warningConfImp.xls"); + // 鑾峰彇鏂囦欢杈撳叆娴� + InputStream inputStream = resource.getInputStream(); + // 璁剧疆HTTP鍝嶅簲澶� + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); + String encodedFilename = URLEncoder.encode("搴撳瓨棰勮閰嶇疆瀵煎叆妯℃澘.xls", "UTF-8"); + headers.setContentDispositionFormData("attachment", encodedFilename); + // 鍒涘缓InputStreamResource瀵硅薄锛屽皢鏂囦欢杈撳叆娴佸寘瑁呰捣鏉� + InputStreamResource resourceToDownload = new InputStreamResource(inputStream); + // 杩斿洖甯︽湁鏂囦欢杈撳叆娴佺殑ResponseEntity瀵硅薄 + return ResponseEntity + .status(HttpStatus.OK) + .headers(headers) + .body(resourceToDownload); + } + + + @PostMapping("import") + public ResponseValue warnConfImport(MultipartFile multipartFile) throws Exception { + String originalFilename = multipartFile.getOriginalFilename(); + if (!"xls".equals(originalFilename.substring(originalFilename.lastIndexOf(".") + 1))) { + return ResponseValue.error(ResponseCode.ERROR.getCode(), "鏂囦欢鏍煎紡鏈夎!"); + } + FinSysTenantUser sysInfo = this.getSysInfo(); + if (sysInfo == null) { + return ResponseValue.error(ResponseCode.ERROR.getCode(), "褰撳墠鐧诲綍鐢ㄦ埛涓虹┖"); + } + + ImportParams params = new ImportParams(); + params.setHeadRows(1); + params.setNeedVerify(true); + WhWarningImportVerifyHandler whWarningImportVerifyHandler = new WhWarningImportVerifyHandler(Long.valueOf(sysInfo.getTenantId())); + params.setVerifyHandler(whWarningImportVerifyHandler); + + ExcelImportResult<WarnConfImEntity> result = ExcelImportUtil.importExcelMore(multipartFile.getInputStream(), WarnConfImEntity.class, params); + + boolean verfiyFail = result.isVerfiyFail(); + if (verfiyFail) { + StringBuilder errmsg = new StringBuilder(); + List<WarnConfImEntity> failList = result.getFailList(); + for (int i = 0; i < failList.size() && i < 20; i++) { + WarnConfImEntity entity = failList.get(i); + errmsg.append("绗�") + .append(entity.getRowNum()) + .append("琛岀殑閿欒鏄細") + .append(entity.getErrorMsg()) + .append("\r\n"); + } + InputStream inputStream = new ByteArrayInputStream(errmsg.toString().getBytes(StandardCharsets.UTF_8)); + FileInfo fileInfo = uploadFileToLocal(inputStream, NumberGenerator.generatorHexUUID() + ".txt", "-1", 111, 0, "-1"); + String url = fileInfo.getUrl(); + return ResponseValue.error(ResponseCode.PARAM_NOT_VALID.getCode(), url); + } + + + List<WarnConfImEntity> excelList = result.getList(); + ArrayList<WhWarningConfig> configArrayList = new ArrayList<>(excelList.size()); + // 鎸塨aseWarehouseId灞炴�у垎缁� + Map<Long, List<WarnConfImEntity>> groupedData = excelList.stream().collect(Collectors.groupingBy(WarnConfImEntity::getBaseWarehouseId)); + for (Map.Entry<Long, List<WarnConfImEntity>> entry : groupedData.entrySet()) { + Long baseWarehouseId = entry.getKey(); + List<WarnConfImEntity> houseModelList = entry.getValue(); + // 鎻愬彇id骞跺瓨鍌ㄥ埌鏂板垪琛� + List<Long> modelIdList = houseModelList.stream() + .map(WarnConfImEntity::getBaseGoodsModelsId) + .collect(Collectors.toList()); + + List<Map<String, Object>> queryModelIsExistList = lWhWarningConfigService.queryModelIsExist(0, baseWarehouseId, modelIdList); + if (CollectionUtils.isEmpty(queryModelIsExistList)) { + // 鍏ㄩ儴涓烘柊澧� + for (WarnConfImEntity warnConfImEntity : houseModelList) { + // 鏂板 + WhWarningConfig whWarningConfig = new WhWarningConfig(); + whWarningConfig.setId(IdUtil.generateId()); + whWarningConfig.setWarehouseType(0); + whWarningConfig.setBaseWarehouseId(warnConfImEntity.getBaseWarehouseId()); + whWarningConfig.setBaseGoodsTemplateId(warnConfImEntity.getGoodsTemplateId()); + whWarningConfig.setBaseGoodsModelsId(warnConfImEntity.getBaseGoodsModelsId()); + whWarningConfig.setUpperLimit(warnConfImEntity.getUpperLimit()); + whWarningConfig.setLowerLimit(warnConfImEntity.getLowerLimit()); + if (whWarningConfig.getBaseGoodsModelsId() == null) { + whWarningConfig.setGoodsType(1); + } else { + whWarningConfig.setGoodsType(2); + } + configArrayList.add(whWarningConfig); + } + } else { + // 鎻愬彇id骞跺瓨鍌ㄥ埌鏂板垪琛� + List<Long> dbExistModelIdList = queryModelIsExistList.stream() + .map(map -> Convert.toLong(map.get("baseGoodsModelsId"))) + .collect(Collectors.toList()); + for (WarnConfImEntity warnConfImEntity : houseModelList) { + Long baseGoodsModelsId = warnConfImEntity.getBaseGoodsModelsId(); + WhWarningConfig whWarningConfig = new WhWarningConfig(); + whWarningConfig.setWarehouseType(0); + whWarningConfig.setBaseWarehouseId(warnConfImEntity.getBaseWarehouseId()); + whWarningConfig.setBaseGoodsModelsId(warnConfImEntity.getBaseGoodsModelsId()); + whWarningConfig.setUpperLimit(warnConfImEntity.getUpperLimit()); + whWarningConfig.setLowerLimit(warnConfImEntity.getLowerLimit()); + + if (dbExistModelIdList.contains(baseGoodsModelsId)) { + // 淇敼 + limitEditByModeInfo(whWarningConfig); + } else { + // 鏂板 + whWarningConfig.setId(IdUtil.generateId()); + whWarningConfig.setBaseGoodsTemplateId(warnConfImEntity.getGoodsTemplateId()); + if (whWarningConfig.getBaseGoodsModelsId() == null) { + whWarningConfig.setGoodsType(1); + } else { + whWarningConfig.setGoodsType(2); + } + configArrayList.add(whWarningConfig); + } + } + } + } + if (!CollectionUtils.isEmpty(configArrayList)) { + int flag = lWhWarningConfigService.insertBatch(configArrayList); + } + return ResponseValue.success("瀵煎叆鎴愬姛!", 1); + } + + + private String KU_CUN_UPD_BY_MODE_INFO = "update WH_WARNING_CONFIG set "; + + public int limitEditByModeInfo(WhWarningConfig config) { + StringBuilder sql = new StringBuilder(KU_CUN_UPD_BY_MODE_INFO); + Integer lowerLimit = config.getLowerLimit(); + if (lowerLimit == null) { + sql.append("lower_limit=null"); + } else { + sql.append("lower_limit=" + lowerLimit); + } + Integer upperLimit = config.getUpperLimit(); + if (upperLimit == null) { + sql.append(",upper_Limit=null"); + } else { + sql.append(",upper_Limit=" + upperLimit); + } + sql.append(" where 1=1"); + Integer warehouseType = config.getWarehouseType(); + if (warehouseType != null) { + sql.append(" and warehouse_Type=" + warehouseType); + } + Long baseWarehouseId = config.getBaseWarehouseId(); + if (baseWarehouseId != null) { + sql.append(" and BASE_WAREHOUSE_ID=" + baseWarehouseId); + } + Long baseGoodsModelsId = config.getBaseGoodsModelsId(); + if (baseGoodsModelsId != null) { + sql.append(" and BASE_GOODS_MODELS_ID=" + baseGoodsModelsId); + } + lWhWarningConfigService.update(sql.toString()); + return 1; + } } -- Gitblit v1.9.1