|
@@ -1,10 +1,14 @@
|
|
|
package com.ruoyi.web.controller.zhdd;
|
|
|
|
|
|
import cn.afterturn.easypoi.entity.vo.NormalExcelConstants;
|
|
|
+import cn.afterturn.easypoi.excel.ExcelImportUtil;
|
|
|
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
|
|
+import cn.afterturn.easypoi.excel.entity.ImportParams;
|
|
|
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
|
|
import cn.afterturn.easypoi.view.PoiBaseView;
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.convert.Convert;
|
|
|
+import cn.hutool.core.util.IdcardUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.ruoyi.common.annotation.Log;
|
|
@@ -44,11 +48,14 @@ import org.springframework.web.bind.annotation.PutMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
+import org.springframework.web.multipart.MultipartHttpServletRequest;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import javax.validation.constraints.NotEmpty;
|
|
|
import javax.validation.constraints.NotNull;
|
|
|
+import java.io.IOException;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.List;
|
|
@@ -188,6 +195,62 @@ public class ResourceDetailController extends BaseController {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ @ApiOperation("导入队伍人员数据")
|
|
|
+ @Log(title = "导入队伍人员数据", businessType = BusinessType.IMPORT)
|
|
|
+ @PostMapping("/importUser")
|
|
|
+ public AjaxResult<?> importExcel(HttpServletRequest request) {
|
|
|
+ MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
|
|
|
+ String resourceId = request.getParameter("resourceId");
|
|
|
+ if (StrUtil.isBlank(resourceId)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ // 查询应急资源是否为应急队伍的类型
|
|
|
+ ResourceVo resourceVo = resourceService.getVoById(resourceId);
|
|
|
+ if (resourceVo == null || resourceVo.getResourceType() != 2) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
|
|
|
+ for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
|
|
|
+ MultipartFile file = entity.getValue();// 获取上传文件对象
|
|
|
+ ImportParams params = new ImportParams();
|
|
|
+ params.setTitleRows(1);
|
|
|
+ params.setHeadRows(1);
|
|
|
+ try {
|
|
|
+ List<ResourceDetail> list = ExcelImportUtil.importExcel(file.getInputStream(), ResourceDetail.class, params);
|
|
|
+ List<ResourceDetail> newList = new ArrayList<>();
|
|
|
+ for (ResourceDetail resourceDetail : list) {
|
|
|
+ if (StrUtil.isBlank(resourceDetail.getName())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ resourceDetail.setResourceId(resourceId);
|
|
|
+ resourceDetail.setResourceType(resourceVo.getResourceType());
|
|
|
+ // 计算性别、年龄(1 : 男 , 0 : 女)、出生年月
|
|
|
+ if (StrUtil.isNotBlank(resourceDetail.getIdcard()) && IdcardUtil.isValidCard(resourceDetail.getIdcard())) {
|
|
|
+ int age = IdcardUtil.getAgeByIdCard(resourceDetail.getIdcard());
|
|
|
+ int gender = IdcardUtil.getGenderByIdCard(resourceDetail.getIdcard());
|
|
|
+ String birth = IdcardUtil.getBirth(resourceDetail.getIdcard());
|
|
|
+ resourceDetail.setSex(gender == 1 ? "男" : gender == 0 ? "女" : "未知");
|
|
|
+ resourceDetail.setAge(Convert.toStr(age));
|
|
|
+ resourceDetail.setBirth(birth.substring(0, 4) + "-" + birth.substring(4, 6) + "-" + birth.substring(6));
|
|
|
+ }
|
|
|
+ newList.add(resourceDetail);
|
|
|
+ }
|
|
|
+ iResourceDetailService.saveAll(newList);
|
|
|
+ return AjaxResult.success("导入成功" + newList.size() + "条");
|
|
|
+ } catch (Exception e) {
|
|
|
+ return AjaxResult.error("文件导入失败:" + e.getMessage());
|
|
|
+ } finally {
|
|
|
+ try {
|
|
|
+ file.getInputStream().close();
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return AjaxResult.error("文件导入失败!");
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获取应急资源明细详细信息
|
|
|
*/
|