Browse Source

增加组织导入功能;

feature/dangjian
luyan 2 years ago
parent
commit
96346d77f2
  1. 20
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java
  2. 41
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/excel/SysDeptImportExcel.java
  3. 2
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java
  4. 59
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java

20
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java

@ -35,6 +35,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.util.Arrays;
@ -52,17 +53,22 @@ import java.util.Map;
@RequestMapping("dept")
@Api(tags = "部门管理")
public class SysDeptController {
@Autowired
private SysDeptService sysDeptService;
@Autowired
private GisService gisService;
@Resource
private SysDeptDao sysDeptDao;
@Resource
private CustomerAgencyDao customerAgencyDao;
@Resource
private CustomerDepartmentDao customerDepartmentDao;
@Resource
private CustomerGridDao customerGridDao;
@ -397,11 +403,11 @@ public class SysDeptController {
}
/**
*
* 根据部门id和部门类型查询 所属网格
*
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.SysDeptDTO>>
* @author wk
* @date 2020-12-08 11:16
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.dto.SysDeptDTO>>
*/
@PostMapping("getKpiGridIds")
public Result<List<SysDeptDTO>> getKpiGridIds(@RequestBody KpiGridIdsFormDTO dto) {
@ -538,4 +544,14 @@ public class SysDeptController {
DeptInfoCodeDTO dto = sysDeptService.guessDeptId(deptId);
return new Result<DeptInfoCodeDTO>().ok(dto);
}
/**
* 导入部门
*
* @param file
*/
@PostMapping("importExcel")
public Result importExcel(@RequestParam("file") MultipartFile file) {
return sysDeptService.importExcel(file);
}
}

41
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/excel/SysDeptImportExcel.java

@ -0,0 +1,41 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.excel;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
/**
* 部门管理
*
* @author elink elink@elink-cn.com
* @since v1.0.0 2023-07-07
*/
@Data
public class SysDeptImportExcel {
@Excel(name = "社区")
private String streetName;
@Excel(name = "网格")
private String gridName;
@Excel(name = "微网格")
private String name;
}

2
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java

@ -20,6 +20,7 @@ import com.elink.esua.epdc.dto.epdc.result.ExportKpiResultDTO;
import com.elink.esua.epdc.dto.epdc.result.SysDeptAreaCodeResultDTO;
import com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO;
import com.elink.esua.epdc.entity.SysDeptEntity;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Map;
@ -429,4 +430,5 @@ public interface SysDeptService extends BaseService<SysDeptEntity> {
*/
DeptInfoCodeDTO guessDeptId(Long deptId);
Result importExcel(MultipartFile file);
}

59
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java

@ -8,7 +8,10 @@
package com.elink.esua.epdc.service.impl;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.PinyinUtil;
import cn.hutool.json.XML;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
@ -29,6 +32,7 @@ import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.utils.StreamUtils;
import com.elink.esua.epdc.commons.tools.utils.TreeUtils;
import com.elink.esua.epdc.constant.RoleTypeKeyConstant;
import com.elink.esua.epdc.dao.*;
@ -41,6 +45,7 @@ import com.elink.esua.epdc.dto.epdc.result.ExportKpiResultDTO;
import com.elink.esua.epdc.dto.epdc.result.SysDeptAreaCodeResultDTO;
import com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO;
import com.elink.esua.epdc.entity.*;
import com.elink.esua.epdc.excel.SysDeptImportExcel;
import com.elink.esua.epdc.feign.GroupFeignClient;
import com.elink.esua.epdc.rocketmq.dto.OrganizationModifyDTO;
import com.elink.esua.epdc.rocketmq.producer.OrganizationModifyProducer;
@ -64,8 +69,10 @@ import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.File;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
@ -85,6 +92,7 @@ import java.util.stream.Stream;
@Slf4j
@Service
public class SysDeptServiceImpl extends BaseServiceImpl<SysDeptDao, SysDeptEntity> implements SysDeptService {
@Autowired
private SysUserService sysUserService;
@ -1557,6 +1565,57 @@ public class SysDeptServiceImpl extends BaseServiceImpl<SysDeptDao, SysDeptEntit
return resultDTO;
}
@Override
public Result importExcel(MultipartFile file) {
File f = StreamUtils.conversionFile(file);
ImportParams importParams = new ImportParams();
List<SysDeptImportExcel> deptExcelList = ExcelImportUtil.importExcel(f, SysDeptImportExcel.class, importParams);
String typekey = "grid_micro";
Map<String, Object> params = new HashMap<>();
params.put("typeKey", "grid_party");
List<SysDeptEntity> deptList = baseDao.getList(params);
Map<String, SysDeptEntity> deptMap = new HashMap<>();
if (null != deptList && deptList.size() > 0) {
deptMap = deptList.stream().collect(Collectors.toMap(SysDeptEntity::getName, dept -> dept, (k1, k2) -> k1));
}
Set<String> okList = new HashSet<>();
Set<String> errList = new HashSet<>();
if (null != deptExcelList && deptExcelList.size() > 0) {
List<SysDeptEntity> entityList = new ArrayList<>();
int sort = 0;
String tempName = "";
for (SysDeptImportExcel ex : deptExcelList) {
String key = ex.getStreetName().concat(ex.getGridName());
if (StringUtils.isEmpty(tempName)) {
tempName = key;
} else if (StringUtils.isNotEmpty(tempName) && tempName.equals(key)) {
sort++;
} else {
sort = 0;
}
if (null != deptMap.get(key)) {
String streetName = key.length() == 4 ? deptMap.get(key).getParentName().concat(key) : key;
if (streetName.equals(ex.getStreetName().concat(ex.getGridName()))) {
SysDeptEntity entity = new SysDeptEntity();
entity.setName(streetName.concat(ex.getName()));
entity.setPid(deptMap.get(key).getId());
entity.setPids(deptMap.get(key).getPids() + "," + deptMap.get(key).getId());
entity.setSort(sort);
entity.setTypeKey(typekey);
entity.setPartyCode(PinyinUtil.getAllFirstLetter(entity.getName()));
entityList.add(entity);
okList.add(key);
}
} else {
errList.add(key);
}
}
insertBatch(entityList);
}
System.out.println("成功比对=" + okList.toString());
return new Result();
}
/**
* @return java.lang.String
* @describe: 访问外部接口获取部门社区地区编码

Loading…
Cancel
Save