From 33032d320cb75854def7391026b0401f1bfb8360 Mon Sep 17 00:00:00 2001 From: 黎星凯 <13949086503@163.com> Date: 星期六, 11 五月 2024 17:26:02 +0800 Subject: [PATCH] 20240511修改: 分发单优化, 分类,物品,分发单明细,采购单明细数据导入 --- consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java | 238 +++++++++++++++++++++++++++++++++------------------------- 1 files changed, 135 insertions(+), 103 deletions(-) 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 88718da..0607533 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 @@ -9,6 +9,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.TreeMap; import org.springframework.beans.factory.annotation.Autowired; @@ -27,17 +28,19 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; -import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.EasyExcelFactory; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.excel.exception.ExcelDataConvertException; +import com.alibaba.excel.read.metadata.holder.ReadSheetHolder; import com.consum.base.BaseController; import com.consum.base.core.utils.CommonUtil; import com.consum.base.core.utils.FinSysTenantUtils; import com.consum.base.pojo.FinSysTenantParam; import com.consum.base.pojo.FinSysTenantSearchParam; +import com.consum.base.pojo.excel.ImportTenantTemplate; import com.consum.base.service.FinSysTenantService; -import com.consum.base.service.FinSysTenantUserServiceImpl; +import com.consum.base.service.FinSysTenantUserService; import com.consum.model.po.FinSysTenant; import com.consum.model.po.FinSysTenantUser; import com.consum.model.vo.FinSysTenantUserResult; @@ -46,15 +49,17 @@ import com.walker.infrastructure.utils.StringUtils; import com.walker.web.ResponseValue; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; /** - * @Description 鍖哄垝 + * @Description 鏈烘瀯 * @Author wh * @Date 2023/7/13 19:51 */ +@Api(value = "鏈烘瀯绠$悊", tags = "鏈烘瀯绠$悊") @RestController @RequestMapping("/pc/fin/sys/tenant") public class FinSysTenantController extends BaseController { @@ -62,7 +67,7 @@ private FinSysTenantService finSysTenantService; @Autowired - private FinSysTenantUserServiceImpl finSysTenantUserService; + private FinSysTenantUserService finSysTenantUserService; @Autowired public FinSysTenantController(FinSysTenantService finSysTenantService) { @@ -79,36 +84,33 @@ private long defaultParentId = 0L; /** - * @Description 鑾峰彇鍖哄垝鏍� + * @Description 鑾峰彇鏈烘瀯鏍� * @Author wh * @Date 2023/7/11 11:15 */ @GetMapping("/select/tree_fin_tenant") public ResponseValue listOrgRootTree() { - List<FinSysTenant> finSysTenantList = null; - FinSysTenantUser finSysTenantUser = new FinSysTenantUser(); - finSysTenantUser.setSysUserId(this.getCurrentUser().getId()); - List<FinSysTenantUser> finSysTenantUserList = finSysTenantUserService.select(finSysTenantUser); - FinSysTenantUser user = null; // 绯荤粺鐢ㄦ埛 - FinSysTenant finSysTenant1 = null; - List<TreeNode> treeRootList = null; // 鏁板垪琛� - FinSysTenant finSysTenant = new FinSysTenant(); - // 鑾峰彇鍦板尯鐖剁骇 - finSysTenantList = this.finSysTenantService.queryForTree(); - // 鏍规嵁鐧婚檰浜篿d鑾峰彇绯荤粺鐢ㄦ埛锛屽鏋滄湁绯荤粺鐢ㄦ埛鏃� - if (finSysTenantUserList.size() > 0) { - // 鑾峰彇褰撳墠鐢ㄦ埛淇℃伅 - user = finSysTenantUserList.get(0); - String tenantId = user.getTenantId(); - finSysTenant.setId(new Long(tenantId)); - // 鏌ヨ鍖哄煙 - List<FinSysTenant> select = finSysTenantService.select(finSysTenant); - if (select.size() > 0) { - finSysTenant1 = select.get(0); - } + // 绯荤粺鐢ㄦ埛 + FinSysTenantUser user = this.getSysInfo(); + if (Objects.isNull(user)) { + return ResponseValue.error("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�"); } - if (finSysTenant1 != null) { - if (finSysTenant1.getLv() != 1 && finSysTenant1.getParentId() != 0 && user != null) { + + // 鑾峰彇鎵�鏈夋満鏋� + List<FinSysTenant> finSysTenantList = this.finSysTenantService.queryForTree(); + // 鏍规嵁鐧婚檰浜篿d鑾峰彇绯荤粺鐢ㄦ埛锛屽鏋滄湁绯荤粺鐢ㄦ埛鏃� + // 鑾峰彇褰撳墠鐢ㄦ埛淇℃伅 + String tenantId = user.getTenantId(); + FinSysTenant finSysTenant = new FinSysTenant(); + finSysTenant.setId(new Long(tenantId)); + // 涓婚敭鏄疶empId + finSysTenant.setTempId(new Long(tenantId)); + // 鏌ヨ褰撳墠鐢ㄦ埛鐨勬満鏋� + FinSysTenant userTenant = finSysTenantService.get(finSysTenant); + // 鏍戝垪琛� + List<TreeNode> treeRootList; + if (userTenant != null) { + if (userTenant.getLv() != 1 && userTenant.getParentId() != 0) { rootMap.clear(); this.childMap.clear(); this.defaultParentId = new Long(user.getTenantId()); @@ -163,11 +165,11 @@ whStr.append(" and parent_id=:parent_id"); paramts.put("parent_id", param.getTenantId()); } - if (param.getName() != null && !param.getName().equals("")) { + if (StringUtils.isNotEmpty(param.getName())) { whStr.append(" and name like:name"); paramts.put("name", "%" + param.getName() + "%"); } - if (param.getCode() != null && !param.getCode().equals("")) { + if (StringUtils.isNotEmpty(param.getCode())) { whStr.append(" and code=:code"); paramts.put("code", param.getCode()); } @@ -185,12 +187,12 @@ // 鐪佽繘鍏� 鏌ヨ 鐪佸拰鍦板競 锛涘湴甯傝繘鍏� 鏌ヨ鑷繁鍦板競 // TODO Long.valueOf(getSysInfo().getTenantId()) FinSysTenant finSysTenant = - this.finSysTenantService.get(new FinSysTenant(Long.valueOf(getSysInfo().getTenantId()))); + this.finSysTenantService.get(new FinSysTenant(Long.valueOf(getSysInfo().getTenantId()))); if (finSysTenant.getLv() == 3) { return ResponseValue.error("鍘垮尯绾у埆鏃犳硶鏌ョ湅"); } List<FinSysTenant> finSysTenantList = - this.finSysTenantService.queryTreeById(finSysTenant.getId(), finSysTenant.getLv()); + this.finSysTenantService.queryTreeById(finSysTenant.getId(), finSysTenant.getLv()); List<TreeNode> treeNodeList = new ArrayList<>(); // 鐪佹煡鏈韩鍙婁互涓� 甯傛煡鏈骇 鍘挎棤鏉冩煡鐪� if (finSysTenant.getLv() == 1) { @@ -202,7 +204,7 @@ } } else { TreeNode treeNode = new TreeNode(finSysTenantList.get(0).getId(), finSysTenantList.get(0).getName(), - new ArrayList<>(), finSysTenantList.get(0).getParentId(), finSysTenantList.get(0).getCode()); + new ArrayList<>(), finSysTenantList.get(0).getParentId(), finSysTenantList.get(0).getCode()); treeNodeList.add(treeNode); } return ResponseValue.success(treeNodeList); @@ -217,12 +219,12 @@ // 鐪佽繘鍏� 鏌ヨ 鐪佸拰鍦板競 锛涘湴甯傝繘鍏� 鏌ヨ鑷繁鍦板競 // TODO Long.valueOf(getSysInfo().getTenantId()) FinSysTenant finSysTenant = - this.finSysTenantService.get(new FinSysTenant(Long.valueOf(getSysInfo().getTenantId()))); + this.finSysTenantService.get(new FinSysTenant(Long.valueOf(getSysInfo().getTenantId()))); if (finSysTenant.getLv() == 3) { return ResponseValue.error("鍘垮尯绾у埆鏃犳硶鏌ョ湅"); } Map<Long, List<FinSysTenant>> finSysTenantList = - this.finSysTenantService.queryCountyByCityCode(finSysTenant.getId(), finSysTenant.getLv()); + this.finSysTenantService.queryCountyByCityCode(finSysTenant.getId(), finSysTenant.getLv()); return ResponseValue.success(finSysTenantList); } @@ -234,7 +236,7 @@ while (var3.hasNext()) { Object obj = var3.next(); - node = this.toTreeNode((FinSysTenant)obj); + node = this.toTreeNode((FinSysTenant) obj); if (node.getId() == this.defaultParentId) { this.rootMap.put(node.getId(), node); @@ -254,7 +256,7 @@ var3 = this.rootMap.values().iterator(); while (var3.hasNext()) { - TreeNode n = (TreeNode)var3.next(); + TreeNode n = (TreeNode) var3.next(); n.setParentId(this.defaultParentId); this.dummyRoot.addChild(n); } @@ -269,16 +271,16 @@ Iterator i = childMap.values().iterator(); while (i.hasNext()) { - _node = (TreeNode)i.next(); + _node = (TreeNode) i.next(); this.mountMiddleNode(_node, childMap); } } private void mountMiddleNode(TreeNode currentNode, Map<Long, TreeNode> childMap) { - TreeNode _parentNode = (TreeNode)this.rootMap.get(currentNode.getParentId()); + TreeNode _parentNode = (TreeNode) this.rootMap.get(currentNode.getParentId()); if (_parentNode == null) { - _parentNode = (TreeNode)childMap.get(currentNode.getId()); + _parentNode = (TreeNode) childMap.get(currentNode.getId()); if (_parentNode == null) { throw new NullPointerException("parent node not found, current: " + currentNode); } @@ -293,7 +295,7 @@ protected TreeNode toTreeNode(FinSysTenant entity) { TreeNode treeNode = - new TreeNode(entity.getId(), entity.getName(), (List)null, entity.getParentId(), entity.getCode()); + new TreeNode(entity.getId(), entity.getName(), (List) null, entity.getParentId(), entity.getCode()); return treeNode; } @@ -305,7 +307,7 @@ Iterator var2 = this.rootMap.values().iterator(); while (var2.hasNext()) { - TreeNode node = (TreeNode)var2.next(); + TreeNode node = (TreeNode) var2.next(); list.add(node); } return list; @@ -324,11 +326,11 @@ StringBuilder whStr = new StringBuilder("where 1=1 and status = 1 and is_delete = 0 "); HashMap parameter = new HashMap<>(); - if (param.getFirstZmS() != null && !param.getFirstZmS().equals("")) { + if (StringUtils.isNotEmpty(param.getFirstZmS())) { whStr.append(" and name is not null and("); String upperCase = param.getFirstZmS().toUpperCase(); whStr.append( - "instr(:upperFirstZmS,F_PINYIN( SUBSTR(name, 1, 1)))>0 or instr(:upperFirstZmS2,SUBSTR(name, 1, 1))>0"); + "instr(:upperFirstZmS,F_PINYIN( SUBSTR(name, 1, 1)))>0 or instr(:upperFirstZmS2,SUBSTR(name, 1, 1))>0"); parameter.put("upperFirstZmS", upperCase); parameter.put("upperFirstZmS2", upperCase); whStr.append(")"); @@ -404,6 +406,12 @@ fileName = "鏈烘瀯瀵煎叆妯℃澘.xls"; } else if ("goods".equals(type)) { 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); // 鑾峰彇鏂囦欢杈撳叆娴� @@ -422,7 +430,7 @@ @PostMapping("import") public ResponseValue upload(@RequestParam Long pid, MultipartFile file) throws IOException { String originalFilename = file.getOriginalFilename(); - if (!"xls".equals(originalFilename.substring(originalFilename.lastIndexOf(".") + 1))) { + if (!originalFilename.endsWith("xls")) { return ResponseValue.error("鏂囦欢鏍煎紡鏈夎!"); } FinSysTenantUser sysInfo = this.getSysInfo(); @@ -435,55 +443,62 @@ return ResponseValue.error("涓嶈兘鍒涘缓鍘匡紙鍖猴級绾т互涓嬫満鏋�"); } - EasyExcel.read(file.getInputStream(), FinSysTenantParam.class, new AnalysisEventListener<FinSysTenantParam>() { - LinkedList<FinSysTenantParam> finSysTenantParams = new LinkedList<>(); + EasyExcelFactory + .read(file.getInputStream(), ImportTenantTemplate.class, new AnalysisEventListener<ImportTenantTemplate>() { + LinkedList<FinSysTenantParam> finSysTenantParams = new LinkedList<>(); - @Override - public void invoke(FinSysTenantParam finSysTenantParam, AnalysisContext analysisContext) { - if (StringUtils.isEmpty(finSysTenantParam.getCode()) || finSysTenantParam.getCode().length() > 20) { - IllegalStateException exception = new IllegalStateException( - "绗�" + analysisContext.readSheetHolder().getRowIndex() + "琛�,鏈烘瀯缂栧彿涓嶈兘涓虹┖鎴栭暱搴﹀ぇ浜�20"); - throw exception; - } - if (null != finSysTenantService.queryOneByCode(finSysTenantParam.getCode())) { - throw new IllegalStateException( - "绗�" + analysisContext.readSheetHolder().getRowIndex() + "琛�,鏈烘瀯缂栧彿宸插瓨鍦�"); - } - if (StringUtils.isEmpty(finSysTenantParam.getName()) || finSysTenantParam.getName().length() > 100) { - IllegalStateException exception = new IllegalStateException( - "绗�" + analysisContext.readSheetHolder().getRowIndex() + "琛�,鏈烘瀯鍚嶇О涓嶈兘涓虹┖鎴栭暱搴﹀ぇ浜�100"); - throw exception; - } - finSysTenantParam.setParentId(pid); - finSysTenantParam.setStatus(1); - finSysTenantParam.setSummary("绯荤粺瀵煎叆"); - finSysTenantParams.add(finSysTenantParam); - } + @Override + public void invoke(ImportTenantTemplate finSysTenantParam, AnalysisContext analysisContext) { + String code = finSysTenantParam.getCode(); + String tenantName = finSysTenantParam.getTenantName(); + ReadSheetHolder readSheetHolder = analysisContext.readSheetHolder(); + Integer rowIndex = readSheetHolder.getRowIndex() + 1; + if (StringUtils.isEmpty(code) || code.length() > 20) { + IllegalStateException exception = + new IllegalStateException("绗�" + rowIndex + "琛�,鏈烘瀯缂栧彿涓嶈兘涓虹┖鎴栭暱搴﹀ぇ浜�20"); + throw exception; + } + if (null != finSysTenantService.queryOneByCode(code)) { + throw new IllegalStateException("绗�" + rowIndex + "琛�,鏈烘瀯缂栧彿宸插瓨鍦�"); + } + if (StringUtils.isEmpty(tenantName) || tenantName.length() > 100) { + IllegalStateException exception = + new IllegalStateException("绗�" + rowIndex + "琛�,鏈烘瀯鍚嶇О涓嶈兘涓虹┖鎴栭暱搴﹀ぇ浜�100"); + throw exception; + } + FinSysTenantParam tenantParam = new FinSysTenantParam(); + tenantParam.setParentId(pid); + tenantParam.setStatus(1); + tenantParam.setSummary("绯荤粺瀵煎叆"); + tenantParam.setCode(code); + tenantParam.setName(tenantName); + finSysTenantParams.add(tenantParam); + } - @Override - public void doAfterAllAnalysed(AnalysisContext analysisContext) { - finSysTenantService.insertFinSysTenantBatch(finSysTenantParams, sysInfo, lv); - } + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + finSysTenantService.insertFinSysTenantBatch(finSysTenantParams, sysInfo, lv); + } - @Override - public void onException(Exception exception, AnalysisContext context) { - // 濡傛灉鏄煇涓�涓崟鍏冩牸鐨勮浆鎹㈠紓甯� 鑳借幏鍙栧埌鍏蜂綋琛屽彿 - if (exception instanceof ExcelDataConvertException) { - ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException)exception; - logger.error("绗瑊}琛岋紝绗瑊}鍒楄В鏋愬紓甯革紝鏁版嵁涓�:{}", excelDataConvertException.getRowIndex(), - excelDataConvertException.getColumnIndex() + 1, - excelDataConvertException.getCellData().getStringValue()); - throw new IllegalStateException("绗�" + (excelDataConvertException.getRowIndex() + 1) + "琛岋紝绗�" - + (excelDataConvertException.getColumnIndex() + 1) + "鍒楄В鏋愬紓甯�,寮傚父鏁版嵁涓�:[ " - + excelDataConvertException.getCellData().getStringValue() + " ]"); - } - if (exception instanceof IllegalStateException) { - throw (IllegalStateException)exception; - } + @Override + public void onException(Exception exception, AnalysisContext context) { + // 濡傛灉鏄煇涓�涓崟鍏冩牸鐨勮浆鎹㈠紓甯� 鑳借幏鍙栧埌鍏蜂綋琛屽彿 + if (exception instanceof ExcelDataConvertException) { + ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException) exception; + Integer rowIndex = excelDataConvertException.getRowIndex() + 1; + Integer columnIndex = excelDataConvertException.getColumnIndex(); + String stringValue = excelDataConvertException.getCellData().getStringValue(); + logger.error("绗瑊}琛岋紝绗瑊}鍒楄В鏋愬紓甯革紝鏁版嵁涓�:{}", rowIndex, columnIndex, stringValue); + throw new IllegalStateException( + "绗�" + rowIndex + "琛岋紝绗�" + columnIndex + "鍒楄В鏋愬紓甯�,寮傚父鏁版嵁涓�:[ " + stringValue + " ]"); + } + if (exception instanceof IllegalStateException) { + throw (IllegalStateException) exception; + } - } + } - }).doReadAll(); + }).doReadAll(); return ResponseValue.success("瀵煎叆鎴愬姛!", 1); } @@ -509,10 +524,31 @@ if (sysInfo == null) { return ResponseValue.error("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�"); } - // FinSysTenant finSysTenant1 = this.finSysTenantService.selectByTenantId(sysInfo.getTenantCode()); - // if (finSysTenant1.getLv() != 1) { - // return ResponseValue.error("鏆傛棤淇敼鏉冮檺"); - // } + + int num = this.finSysTenantService.updateFinSysTenant(param, this.getSysInfo()); + return num > 0 ? ResponseValue.success(1) : ResponseValue.error("缂栬緫澶辫触锛�"); + } + + /** + * 淇敼鍚敤绂佺敤鐘舵�� + * + * @return + */ + @PostMapping("/editState") + public ResponseValue editState() { + FinSysTenant param = CommonUtil.getObjFromReqBody(FinSysTenant.class); + FinSysTenant selFinSysTenant = finSysTenantService.selectById(param.getId()); + selFinSysTenant.setStatus(param.getStatus()); + //FinSysTenant finSysTenant = new FinSysTenant(); + param = selFinSysTenant; + Long id = param.getId(); + if (id == null || id.longValue() <= 0) { + return ResponseValue.error("缂栬緫鐨勬満鏋勪笉瀛樺湪"); + } + FinSysTenantUser sysInfo = getSysInfo(); + if (sysInfo == null) { + return ResponseValue.error("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�"); + } int num = this.finSysTenantService.updateFinSysTenant(param, this.getSysInfo()); return num > 0 ? ResponseValue.success(1) : ResponseValue.error("缂栬緫澶辫触锛�"); } @@ -554,7 +590,7 @@ // 鐪� FinSysTenant finSysTenant1 = this.finSysTenantService.get(new FinSysTenant(finSysTenant.getParentId())); List<FinSysTenantUser> finSysTenantUserList = - this.finSysTenantUserService.getByOrgId(finSysTenant1.getId()); + this.finSysTenantUserService.getByOrgId(finSysTenant1.getId()); if (!StringUtils.isEmptyList(finSysTenantUserList)) { FinSysTenantUserResult finSysTenantUserResult = new FinSysTenantUserResult(); finSysTenantUserResult.setOrgId(finSysTenant1.getId()); @@ -576,7 +612,7 @@ // 甯� FinSysTenant finSysTenant2 = this.finSysTenantService.get(new FinSysTenant(finSysTenant.getParentId())); List<FinSysTenantUser> finSysTenantUserList2 = - this.finSysTenantUserService.getByOrgId(finSysTenant2.getId()); + this.finSysTenantUserService.getByOrgId(finSysTenant2.getId()); if (!StringUtils.isEmptyList(finSysTenantUserList2)) { FinSysTenantUserResult finSysTenantUserResult = new FinSysTenantUserResult(); finSysTenantUserResult.setOrgId(finSysTenant2.getId()); @@ -587,7 +623,7 @@ // 鐪� FinSysTenant finSysTenant1 = this.finSysTenantService.get(new FinSysTenant(finSysTenant2.getParentId())); List<FinSysTenantUser> finSysTenantUserList = - this.finSysTenantUserService.getByOrgId(finSysTenant1.getId()); + this.finSysTenantUserService.getByOrgId(finSysTenant1.getId()); if (!StringUtils.isEmptyList(finSysTenantUserList)) { FinSysTenantUserResult finSysTenantUserResult = new FinSysTenantUserResult(); finSysTenantUserResult.setOrgId(finSysTenant1.getId()); @@ -601,7 +637,7 @@ @ApiOperation(value = "鑾峰彇鐖剁骇鏈烘瀯", notes = "鑾峰彇鐖剁骇鏈烘瀯") @ApiImplicitParams({ - @ApiImplicitParam(name = "Authorization", value = "token", dataType = "String", paramType = "header"),}) + @ApiImplicitParam(name = "Authorization", value = "token", dataType = "String", paramType = "header"),}) @GetMapping("/get/parent/tenant") public ResponseValue getParentTenant() { FinSysTenantUser sysInfo = getSysInfo(); @@ -609,17 +645,13 @@ return ResponseValue.error("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�"); } String tenantId = sysInfo.getTenantId(); - FinSysTenant finSysTenant = new FinSysTenant(); - finSysTenant.setTempId(Long.valueOf(tenantId)); - FinSysTenant userTenant = this.finSysTenantService.get(finSysTenant); + FinSysTenant userTenant = finSysTenantService.selectById(Long.valueOf(tenantId)); Long parentId = userTenant.getParentId(); // 绗竴绾� if (parentId == 0) { return ResponseValue.success(userTenant); } else { - FinSysTenant param = new FinSysTenant(); - param.setTempId(Long.valueOf(parentId)); - FinSysTenant result = this.finSysTenantService.get(param); + FinSysTenant result = finSysTenantService.selectById(parentId); return ResponseValue.success(result); } } -- Gitblit v1.9.1