src/main/java/org/springblade/modules/house/excel/ImportHouseholdExcel.java
@@ -29,7 +29,7 @@ * 门牌地址编码 */ @ColumnWidth(25) @ExcelProperty( "门牌地址编码") @ExcelProperty( "门牌地址编码*") private String houseCode; /** 姓名 */ src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java
@@ -22,18 +22,15 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xxl.job.core.server.EmbedServer; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.util.Strings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springblade.common.cache.SysCache; import org.springblade.common.param.CommonParamSet; import org.springblade.common.utils.IdUtils; import org.springblade.common.utils.NodeTreeUtil; import org.springblade.common.utils.SpringUtils; import org.springblade.core.mp.support.Condition; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.modules.doorplateAddress.entity.DoorplateAddressEntity; @@ -57,8 +54,6 @@ import org.springblade.modules.label.entity.LabelEntity; import org.springblade.modules.label.service.ILabelService; import org.springblade.modules.label.vo.LabelVO; import org.springblade.modules.place.excel.PlaceExcel; import org.springblade.modules.place.vo.PlaceVO; import org.springblade.modules.police.entity.PoliceAffairsGridEntity; import org.springblade.modules.police.service.IPoliceAffairsGridService; import org.springblade.modules.system.entity.Region; src/main/java/org/springblade/modules/house/service/impl/HouseholdServiceImpl.java
@@ -338,7 +338,10 @@ for (ImportHouseholdExcel houseHoldExcel : data) { HouseholdEntity householdEntity = Objects.requireNonNull(BeanUtil.copy(houseHoldExcel, HouseholdEntity.class)); // 判断姓名,手机号 if (Strings.isBlank(householdEntity.getName()) || Strings.isBlank(householdEntity.getPhoneNumber())){ if (Strings.isBlank(householdEntity.getName()) || Strings.isBlank(householdEntity.getPhoneNumber()) || Strings.isBlank(householdEntity.getHouseCode()) ){ errorNum ++; continue; } @@ -431,10 +434,12 @@ } StringBuilder builder = new StringBuilder("导入完成!"); builder.append("其中本次表格共有 ").append(totalNum).append(" 条数据,") .append("成功导入 ").append(importNum).append(" 条数据,") .append("其中有 ").append(updateNum).append(" 条数据已存在。"); .append("成功导入 ").append(importNum).append(" 条数据。"); if (updateNum>0) { builder.append("其中有 ").append(updateNum).append(" 条数据已存在。"); } if (errorNum>0){ builder.append("共有 ").append(errorNum).append(" 条数据由于无姓名或手机号信息未导入!"); builder.append("共有 ").append(errorNum).append(" 条数据由于无姓名或手机号或门牌地址编码信息未导入!"); } return builder.toString(); } src/main/java/org/springblade/modules/place/controller/PlaceController.java
@@ -44,6 +44,7 @@ import org.springblade.core.boot.ctrl.BladeController; import org.springframework.web.multipart.MultipartFile; import java.util.ArrayList; import java.util.List; /** @@ -254,9 +255,43 @@ */ @PostMapping("/import-place") public R importPlace(MultipartFile file, Integer isCovered) { PlaceImporter placeImporter = new PlaceImporter(placeService, isCovered == 1); ExcelUtil.save(file, placeImporter, PlaceExcel.class); return R.success("操作成功"); String data = placeService.importPlace(ExcelUtil.read(file, ImportPlaceExcel.class),isCovered==1); return R.data(200,data,""); } /** * 导出模板 */ @GetMapping("export-template") @ApiOperationSupport(order = 13) @ApiLog("导出九小统计") @ApiOperation(value = "导出九小统计", notes = "传入place") public void exportTemplate(HttpServletResponse response) { List<ImportPlaceExcel> list = new ArrayList<>(); ImportPlaceExcel importPlaceExcel = new ImportPlaceExcel(); importPlaceExcel.setHouseCode("AdiEQ41254122****SXFDK44"); importPlaceExcel.setLocation("江西上饶**********"); importPlaceExcel.setLng("128.754451241"); importPlaceExcel.setLat("28.4521122441"); importPlaceExcel.setStreetName("西市街道"); importPlaceExcel.setCommunityName("万达社区"); importPlaceExcel.setGridName("第一网格"); importPlaceExcel.setPlaceName("***场所"); importPlaceExcel.setPrincipal("张三"); importPlaceExcel.setPrincipalPhone("13112341234"); importPlaceExcel.setPrincipalIdCard("360***********0001"); importPlaceExcel.setLegalPerson("张三"); importPlaceExcel.setLegalTel("13112341234"); importPlaceExcel.setLegalIdCard("360***********0001"); importPlaceExcel.setNineType("1"); importPlaceExcel.setFrontType("1"); importPlaceExcel.setThreeFireProtection("是"); importPlaceExcel.setNoExplosionCategory("2"); importPlaceExcel.setLabelCode("131120"); importPlaceExcel.setRemark("测试****"); list.add(importPlaceExcel); ExcelUtil.export(response, "场所数据" + DateUtil.time(), "场所数据表", list, ImportPlaceExcel.class); } /** src/main/java/org/springblade/modules/place/excel/ImportPlaceExcel.java
File was renamed from src/main/java/org/springblade/modules/place/excel/PlaceExcel.java @@ -6,6 +6,7 @@ import com.alibaba.excel.annotation.write.style.HeadRowHeight; import lombok.Data; import org.springblade.common.excel.ExcelDictConverter; import org.springblade.common.excel.ExcelDictItem; import org.springblade.common.excel.ExcelDictItemLabel; import java.io.Serializable; @@ -19,55 +20,13 @@ @ColumnWidth(25) @HeadRowHeight(20) @ContentRowHeight(18) public class PlaceExcel implements Serializable { public class ImportPlaceExcel implements Serializable { private static final long serialVersionUID = 2L; /** 门牌地址编码 */ @ExcelProperty( "门牌地址编码") @ExcelProperty( "门牌地址编码*") private String houseCode; /** 街道名称 */ @ExcelProperty( "街道名称") private String streetName; /** 社区名称 */ @ExcelProperty( "社区名称") private String communityName; /** 网格名称 */ @ExcelProperty( "网格名称") private String gridName; /** 场所负责人 */ @ColumnWidth(15) @ExcelProperty( "场所负责人") private String principal; /** 场所负责人联系电话 */ @ColumnWidth(15) @ExcelProperty( "场所负责人联系电话") private String principalPhone; /** 企业法定代表 */ @ColumnWidth(15) @ExcelProperty( "企业法定代表") private String legalPerson; /** 法定代表联系电话 */ @ColumnWidth(15) @ExcelProperty( "法定代表联系电话") private String legalTel; /** 企业法定代表身份证号码 */ @ColumnWidth(15) @ExcelProperty( "企业法定代表身份证号码") private String legalIdCard; /** 企业(店铺)名称 */ @ColumnWidth(25) @ExcelProperty( "企业(店铺)名称") private String placeName; /** 地址 */ @ColumnWidth(25) @@ -84,11 +43,75 @@ @ExcelProperty( "纬度") private String lat; /** 街道名称 */ @ExcelProperty( "街道名称") private String streetName; /** 社区名称 */ @ExcelProperty( "社区名称") private String communityName; /** 网格名称 */ @ExcelProperty( "网格名称") private String gridName; /** 场所名称 */ @ColumnWidth(25) @ExcelProperty( "场所名称*") private String placeName; /** 场所负责人 */ @ColumnWidth(15) @ExcelProperty( "场所负责人") private String principal; /** 场所负责人联系电话 */ @ColumnWidth(15) @ExcelProperty( "场所负责人联系电话") private String principalPhone; /** 场所负责人身份证号 */ @ColumnWidth(15) @ExcelProperty( "场所负责人身份证号") private String principalIdCard; /** 企业法定代表 */ @ColumnWidth(15) @ExcelProperty( "企业法定代表") private String legalPerson; /** 法定代表联系电话 */ @ColumnWidth(15) @ExcelProperty( "法定代表联系电话") private String legalTel; /** 企业法定代表身份证号码 */ @ColumnWidth(15) @ExcelProperty( "企业法定代表身份证号码") private String legalIdCard; /** 九小场所类型 */ @ExcelProperty( value = "九小场所类型",converter = ExcelDictConverter.class) @ExcelDictItem(type = "nineType") @ExcelDictItemLabel(type = "nineType") private String nineType; /** 阵地类型 */ @ExcelProperty( value = "阵地类型",converter = ExcelDictConverter.class) @ExcelDictItem(type = "frontType") @ExcelDictItemLabel(type = "frontType") private String frontType; /** 1:是 2:否 三级消防单位 */ @ExcelProperty("三级消防单位(是/否)") private String threeFireProtection; /** 无诈类别 */ @ExcelProperty(value = "无诈类别", converter = ExcelDictConverter.class) @ExcelDictItem(type = "noExplosionCategory") @ExcelDictItemLabel(type = "noExplosionCategory") private String noExplosionCategory; /** 标签分类代码 */ @ExcelProperty( "标签分类代码") private String labelCode; src/main/java/org/springblade/modules/place/excel/PlaceImporter.java
@@ -12,13 +12,13 @@ * @author Chill */ @RequiredArgsConstructor public class PlaceImporter implements ExcelImporter<PlaceExcel> { public class PlaceImporter implements ExcelImporter<ImportPlaceExcel> { private final IPlaceService placeService; private final Boolean isCovered; @Override public void save(List<PlaceExcel> data) { public void save(List<ImportPlaceExcel> data) { placeService.importPlace(data, isCovered); } } src/main/java/org/springblade/modules/place/service/IPlaceService.java
@@ -17,12 +17,11 @@ package org.springblade.modules.place.service; import com.baomidou.mybatisplus.extension.service.IService; import org.apache.ibatis.annotations.Param; import org.springblade.common.node.TreeStringNode; import org.springblade.modules.place.entity.PlaceEntity; import org.springblade.modules.place.excel.NinePlaceExcel; import org.springblade.modules.place.excel.PlaceAndRelExcel; import org.springblade.modules.place.excel.PlaceExcel; import org.springblade.modules.place.excel.ImportPlaceExcel; import org.springblade.modules.place.vo.PlaceVO; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -91,7 +90,7 @@ * @param data * @param isCovered */ void importPlace(List<PlaceExcel> data, Boolean isCovered); String importPlace(List<ImportPlaceExcel> data, Boolean isCovered); /** * 场所(商超)导入 src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
@@ -20,17 +20,12 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import liquibase.pro.packaged.P; import liquibase.pro.packaged.W; import liquibase.repackaged.org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.util.Strings; import org.springblade.common.cache.SysCache; import org.springblade.common.node.TreeStringNode; import org.springblade.common.param.CommonParamSet; import org.springblade.common.utils.IdUtils; import org.springblade.common.utils.SpringUtils; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.support.Condition; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.SpringUtil; @@ -43,34 +38,24 @@ import org.springblade.modules.grid.mapper.GridMapper; import org.springblade.modules.grid.service.IGridRangeService; import org.springblade.modules.grid.service.IGridService; import org.springblade.modules.grid.service.IGridmanService; import org.springblade.modules.grid.vo.GridVO; import org.springblade.modules.house.entity.HouseholdEntity; import org.springblade.modules.house.entity.UserHouseLabelEntity; import org.springblade.modules.house.service.IHouseholdService; import org.springblade.modules.house.vo.HouseholdVO; import org.springblade.modules.label.entity.LabelEntity; import org.springblade.modules.partyOrganization.vo.PartyOrganizationVO; import org.springblade.modules.place.entity.*; import org.springblade.modules.place.excel.NinePlaceExcel; import org.springblade.modules.place.excel.PlaceAndRelExcel; import org.springblade.modules.place.excel.PlaceExcel; import org.springblade.modules.place.excel.ImportPlaceExcel; import org.springblade.modules.place.service.*; import org.springblade.modules.place.vo.PlaceCheckVO; import org.springblade.modules.place.vo.PlacePoiLabelVO; import org.springblade.modules.place.vo.PlaceVO; import org.springblade.modules.place.mapper.PlaceMapper; import org.springblade.modules.police.entity.PoliceAffairsGridEntity; import org.springblade.modules.police.service.IPoliceAffairsGridService; import org.springblade.modules.system.entity.Dept; import org.springblade.modules.system.entity.DictBiz; import org.springblade.modules.system.entity.Region; import org.springblade.modules.system.entity.User; import org.springblade.modules.system.service.IDeptService; import org.springblade.modules.system.service.IDictBizService; import org.springblade.modules.system.service.IRegionService; import org.springblade.modules.system.service.IUserService; import org.springblade.modules.task.vo.TaskLabelReportingEventVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -1009,36 +994,58 @@ * @param isCovered */ @Override public void importPlace(List<PlaceExcel> data, Boolean isCovered) { for (PlaceExcel placeExcel : data) { public String importPlace(List<ImportPlaceExcel> data, Boolean isCovered) { int totalNum = data.size(); int importNum = 0; int updateNum = 0; int errorNum = 0; for (ImportPlaceExcel placeExcel : data) { if (Strings.isBlank(placeExcel.getPlaceName()) || Strings.isBlank(placeExcel.getHouseCode())){ errorNum++; continue; } PlaceEntity placeEntity = Objects.requireNonNull(BeanUtil.copy(placeExcel, PlaceEntity.class)); Long userId = updateUser(placeExcel); // 九小场所类型处理 if (!Strings.isBlank(placeExcel.getNineType())) { placeEntity.setIsNine(1); placeEntity.setNineType(Integer.parseInt(placeExcel.getNineType())); } // 阵地类型处理 if (!Strings.isBlank(placeExcel.getFrontType())) { placeEntity.setIsFront(1); placeEntity.setFrontType(Integer.parseInt(placeExcel.getFrontType())); } // 无诈类别 if (!Strings.isBlank(placeExcel.getNoExplosionCategory())){ placeEntity.setNoExplosionCategory(Integer.parseInt(placeExcel.getNoExplosionCategory())); } // 三级单位 if (!Strings.isBlank(placeExcel.getThreeFireProtection())){ if (placeExcel.getThreeFireProtection().equals("是")){ placeEntity.setThreeFireProtection(1); } if (placeExcel.getThreeFireProtection().equals("否")){ placeEntity.setThreeFireProtection(2); } } String[] split = placeExcel.getHouseCode().split(","); placeEntity.setHouseCode(split[0]); placeEntity.setHouseCodeBinds(placeExcel.getHouseCode()); placeEntity.setPrincipalUserId(userId); // houseCode 关联处理 来源 1:地址总表 2:国控采集 3:商超 houseCodeHandle(placeExcel, placeEntity); // 网格绑定处理 importGridHandle(placeExcel, placeEntity); // 判断是否存在,不存在则插入,否则不操作 QueryWrapper<PlaceEntity> wrapper = new QueryWrapper<>(); wrapper.eq("is_deleted", 0) .eq("house_code", placeExcel.getHouseCode()); PlaceEntity one = getOne(wrapper); Long userId = updateUser(placeExcel); if (null == one) { // 插入场所 String[] split = placeExcel.getHouseCode().split(","); placeEntity.setHouseCode(split[0]); placeEntity.setHouseCodeBinds(placeExcel.getHouseCode()); placeEntity.setPrincipalUserId(userId); // 默认为未完善 placeEntity.setStatus(1); // 是否现场采集 1:是 2:否 placeEntity.setIsScene(1); // houseCode 关联处理 来源 1:地址总表 2:国控采集 3:商超 houseCodeHandle(placeExcel, placeEntity); // 九小场所类型处理 if (!Strings.isBlank(placeExcel.getNineType())) { placeEntity.setIsNine(1); placeEntity.setNineType(Integer.parseInt(placeExcel.getNineType())); } // 网格绑定处理 importGridHandle(placeExcel, placeEntity); // 新增 save(placeEntity); importNum++; // 保存详情 savePlaceExt(placeEntity,placeExcel); // 场所标签信息处理 @@ -1052,35 +1059,35 @@ // 房屋编号绑定处理 houseCodeBindHandle(placeEntity); } else { // 更新场所 one.setPrincipalUserId(userId); one.setPrincipal(placeExcel.getPrincipal()); one.setPrincipalPhone(placeExcel.getPrincipalPhone()); // 默认为未完善 one.setStatus(1); // 是否现场采集 1:是 2:否 one.setIsScene(1); // 来源 1:地址总表 2:国控采集 3:商超 one.setSource(1); // 九小场所类型处理 if (!Strings.isBlank(placeExcel.getNineType())) { one.setIsNine(1); one.setNineType(Integer.parseInt(placeExcel.getNineType())); } // 网格绑定处理 importGridHandle(placeExcel, one); // 更新 updateById(one); // 场所标签信息处理 if (!Strings.isBlank(placeExcel.getLabelCode())) { PlaceVO placeVO = new PlaceVO(); placeVO.setId(one.getId()); placeVO.setLabel(placeExcel.getLabelCode()); // 处理 placeLabelBind(placeVO); updateNum++; // 是否覆盖更新 if (isCovered) { // 更新场所 placeEntity.setId(one.getId()); // 更新 updateById(placeEntity); importNum++; // 场所标签信息处理 if (!Strings.isBlank(placeExcel.getLabelCode())) { PlaceVO placeVO = new PlaceVO(); placeVO.setId(one.getId()); placeVO.setLabel(placeExcel.getLabelCode()); // 处理 placeLabelBind(placeVO); } } } } StringBuilder builder = new StringBuilder("导入完成!"); builder.append("其中本次表格共有 ").append(totalNum).append(" 条数据,") .append("成功导入 ").append(importNum).append(" 条数据。"); if (updateNum>0) { builder.append("其中有 ").append(updateNum).append(" 条数据已存在。"); } if (errorNum>0){ builder.append("共有 ").append(errorNum).append(" 条数据由于无企业(店铺)名称信息或无地址编号未导入!"); } return builder.toString(); } /** @@ -1089,7 +1096,7 @@ * @param placeExcel */ @Transactional(rollbackFor = Exception.class) public void savePlaceExt(PlaceEntity placeEntity,PlaceExcel placeExcel) { public void savePlaceExt(PlaceEntity placeEntity, ImportPlaceExcel placeExcel) { PlaceVO placeVO = new PlaceVO(); placeVO.setId(placeEntity.getId()); PlaceExtEntity placeExtEntity = new PlaceExtEntity(); @@ -1107,7 +1114,7 @@ * @param placeExcel * @param placeEntity */ public void houseCodeHandle(PlaceExcel placeExcel, PlaceEntity placeEntity) { public void houseCodeHandle(ImportPlaceExcel placeExcel, PlaceEntity placeEntity) { if (!Strings.isBlank(placeExcel.getHouseCode())) { placeEntity.setSource(1); // 设置经纬度及地址 @@ -1133,7 +1140,7 @@ * @param placeExcel * @param placeEntity */ private void importGridHandle(PlaceExcel placeExcel, PlaceEntity placeEntity) { private void importGridHandle(ImportPlaceExcel placeExcel, PlaceEntity placeEntity) { if (!Strings.isBlank(placeExcel.getCommunityName()) && !Strings.isBlank(placeExcel.getGridName())) { // 查询对应的网格信息 @@ -1160,7 +1167,7 @@ * @param placeExcel * @return */ public Long updateUser(PlaceExcel placeExcel) { public Long updateUser(ImportPlaceExcel placeExcel) { if (!Strings.isBlank(placeExcel.getPrincipal()) && !Strings.isBlank(placeExcel.getPrincipalPhone())) { PlaceVO placeVO = new PlaceVO();