|
@@ -1,5 +1,6 @@
|
|
package com.idea.buildManage.excel;
|
|
package com.idea.buildManage.excel;
|
|
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.util.IdUtil;
|
|
import cn.hutool.core.util.IdUtil;
|
|
import com.alibaba.excel.context.AnalysisContext;
|
|
import com.alibaba.excel.context.AnalysisContext;
|
|
import com.alibaba.excel.event.AnalysisEventListener;
|
|
import com.alibaba.excel.event.AnalysisEventListener;
|
|
@@ -66,116 +67,208 @@ public class MnpBuildingListener extends AnalysisEventListener<MnpBuildingExcel>
|
|
Map<String, String> discNameIdMap = floorDiscService.getNameIdMap();
|
|
Map<String, String> discNameIdMap = floorDiscService.getNameIdMap();
|
|
Map<String, String> parkNameIdMap = parkInfoService.getNameIdMap();
|
|
Map<String, String> parkNameIdMap = parkInfoService.getNameIdMap();
|
|
for(int i = 0; i < excelList.size(); i++){
|
|
for(int i = 0; i < excelList.size(); i++){
|
|
|
|
+
|
|
|
|
+ boolean groupNameFlag = true;
|
|
|
|
+ boolean discNameFlag = true;
|
|
|
|
+ boolean buildNumFlag = true;
|
|
|
|
+ boolean constructionNumFlag = true;
|
|
|
|
+ boolean areaFlag = true;
|
|
|
|
+ boolean residentialAreaFlag = true;
|
|
|
|
+ boolean unResidentialAreaFlag = true;
|
|
|
|
+ boolean coverAnAreaFlag = true;
|
|
|
|
+ boolean undergroundAreaFlag = true;
|
|
|
|
+ boolean roomNumFlag = true;
|
|
|
|
+ boolean numberInfoFlag = true;
|
|
|
|
+ boolean floorsFlag = true;
|
|
|
|
+ boolean overgroundFloorsFlag = true;
|
|
|
|
+ boolean undergroundFloorsFlag = true;
|
|
|
|
+ boolean structureFlag = true;
|
|
|
|
+ boolean regionalismCodeFlag = true;
|
|
|
|
+ boolean landCodeFlag = true;
|
|
|
|
+ StringBuilder builder = new StringBuilder();
|
|
|
|
+
|
|
try {
|
|
try {
|
|
data = new MnpBuilding();
|
|
data = new MnpBuilding();
|
|
excel = excelList.get(i);
|
|
excel = excelList.get(i);
|
|
if (StringUtils.isEmpty(excel.getGroupName())) {
|
|
if (StringUtils.isEmpty(excel.getGroupName())) {
|
|
- throw new RuntimeException("楼盘/小区名称为空");
|
|
|
|
|
|
+ groupNameFlag = false;
|
|
|
|
+ builder.append("楼盘/小区名称为空").append(",");
|
|
|
|
+ excel.setGroupName("{" + excel.getGroupName() + "}");
|
|
}
|
|
}
|
|
data.setGroupName(excel.getGroupName());
|
|
data.setGroupName(excel.getGroupName());
|
|
|
|
+
|
|
if (StringUtils.isEmpty(excel.getDiscName())) {
|
|
if (StringUtils.isEmpty(excel.getDiscName())) {
|
|
- throw new RuntimeException("分期名称为空");
|
|
|
|
|
|
+ discNameFlag = false;
|
|
|
|
+ builder.append("分期名称为空").append(",");
|
|
|
|
+ excel.setDiscName("{" + excel.getDiscName() + "}");
|
|
}
|
|
}
|
|
data.setDiscName(excel.getDiscName());
|
|
data.setDiscName(excel.getDiscName());
|
|
- if (StringUtils.isEmpty(excel.getBuildNum())) {
|
|
|
|
- throw new RuntimeException("单元楼栋号为空");
|
|
|
|
- }
|
|
|
|
- data.setBuildNum(excel.getBuildNum());
|
|
|
|
|
|
+
|
|
// 判断小区是否存在
|
|
// 判断小区是否存在
|
|
if(StringUtils.isEmpty(parkNameIdMap.get(excel.getGroupName()))){
|
|
if(StringUtils.isEmpty(parkNameIdMap.get(excel.getGroupName()))){
|
|
- throw new RuntimeException("楼盘/小区不存在");
|
|
|
|
|
|
+ groupNameFlag = false;
|
|
|
|
+ builder.append("楼盘/小区不存在").append(",");
|
|
|
|
+ excel.setGroupName("{" + excel.getGroupName() + "}");
|
|
}
|
|
}
|
|
data.setGroupId(parkNameIdMap.get(excel.getGroupName()));
|
|
data.setGroupId(parkNameIdMap.get(excel.getGroupName()));
|
|
|
|
+
|
|
// 判断分期是否存在
|
|
// 判断分期是否存在
|
|
if(StringUtils.isEmpty(discNameIdMap.get(excel.getDiscName()))){
|
|
if(StringUtils.isEmpty(discNameIdMap.get(excel.getDiscName()))){
|
|
- throw new RuntimeException("分期不存在");
|
|
|
|
|
|
+ discNameFlag = false;
|
|
|
|
+ builder.append("分期不存在").append(",");
|
|
|
|
+ excel.setDiscName("{" + excel.getDiscName() + "}");
|
|
}
|
|
}
|
|
data.setDiscId(discNameIdMap.get(excel.getDiscName()));
|
|
data.setDiscId(discNameIdMap.get(excel.getDiscName()));
|
|
|
|
+
|
|
|
|
+ // 楼栋号
|
|
|
|
+ if (StringUtils.isEmpty(excel.getBuildNum())) {
|
|
|
|
+ buildNumFlag = false;
|
|
|
|
+ builder.append("单元楼栋号为空").append(",");
|
|
|
|
+ excel.setBuildNum("{" + excel.getBuildNum() + "}");
|
|
|
|
+ }
|
|
|
|
+ data.setBuildNum(excel.getBuildNum());
|
|
|
|
+
|
|
|
|
+ // 施工号
|
|
|
|
+ if (StringUtils.isEmpty(excel.getConstructionNum())) {
|
|
|
|
+ constructionNumFlag = false;
|
|
|
|
+ builder.append("施工号为空").append(",");
|
|
|
|
+ excel.setConstructionNum("{" + excel.getConstructionNum() + "}");
|
|
|
|
+ }
|
|
|
|
+ data.setConstructionNum(excel.getConstructionNum());
|
|
|
|
+
|
|
// 总面积
|
|
// 总面积
|
|
if (StringUtils.isEmpty(excel.getArea())) {
|
|
if (StringUtils.isEmpty(excel.getArea())) {
|
|
- throw new RuntimeException("总面积为空");
|
|
|
|
|
|
+ areaFlag = false;
|
|
|
|
+ builder.append("总面积为空").append(",");
|
|
|
|
+ excel.setArea("{" + excel.getArea() + "}");
|
|
}
|
|
}
|
|
try {
|
|
try {
|
|
data.setArea(Double.valueOf(excel.getArea()));
|
|
data.setArea(Double.valueOf(excel.getArea()));
|
|
}catch (NumberFormatException e){
|
|
}catch (NumberFormatException e){
|
|
- throw new RuntimeException("总面积格式有误");
|
|
|
|
|
|
+ areaFlag = false;
|
|
|
|
+ builder.append("总面积格式有误").append(",");
|
|
|
|
+ excel.setArea("{" + excel.getArea() + "}");
|
|
}
|
|
}
|
|
|
|
+
|
|
// 住宅面积
|
|
// 住宅面积
|
|
if (StringUtils.isEmpty(excel.getResidentialArea())) {
|
|
if (StringUtils.isEmpty(excel.getResidentialArea())) {
|
|
- throw new RuntimeException("住宅面积为空");
|
|
|
|
|
|
+ residentialAreaFlag = false;
|
|
|
|
+ builder.append("住宅面积为空").append(",");
|
|
|
|
+ excel.setResidentialArea("{" + excel.getResidentialArea() + "}");
|
|
}
|
|
}
|
|
try {
|
|
try {
|
|
data.setResidentialArea(Double.valueOf(excel.getResidentialArea()));
|
|
data.setResidentialArea(Double.valueOf(excel.getResidentialArea()));
|
|
}catch (NumberFormatException e){
|
|
}catch (NumberFormatException e){
|
|
- throw new RuntimeException("住宅面积格式有误");
|
|
|
|
|
|
+ residentialAreaFlag = false;
|
|
|
|
+ builder.append("住宅面积格式有误").append(",");
|
|
|
|
+ excel.setResidentialArea("{" + excel.getResidentialArea() + "}");
|
|
}
|
|
}
|
|
|
|
+
|
|
// 非住宅面积
|
|
// 非住宅面积
|
|
if (StringUtils.isEmpty(excel.getUnResidentialArea())) {
|
|
if (StringUtils.isEmpty(excel.getUnResidentialArea())) {
|
|
- throw new RuntimeException("非住宅面积为空");
|
|
|
|
|
|
+ unResidentialAreaFlag = false;
|
|
|
|
+ builder.append("非住宅面积为空").append(",");
|
|
|
|
+ excel.setUnResidentialArea("{" + excel.getUnResidentialArea() + "}");
|
|
}
|
|
}
|
|
try {
|
|
try {
|
|
data.setUnResidentialArea(Double.valueOf(excel.getUnResidentialArea()));
|
|
data.setUnResidentialArea(Double.valueOf(excel.getUnResidentialArea()));
|
|
}catch (NumberFormatException e){
|
|
}catch (NumberFormatException e){
|
|
- throw new RuntimeException("非住宅面积格式有误");
|
|
|
|
|
|
+ unResidentialAreaFlag = false;
|
|
|
|
+ builder.append("非住宅面积格式有误").append(",");
|
|
|
|
+ excel.setUnResidentialArea("{" + excel.getUnResidentialArea() + "}");
|
|
}
|
|
}
|
|
|
|
+
|
|
// 占地面积
|
|
// 占地面积
|
|
if (StringUtils.isEmpty(excel.getCoverAnArea())) {
|
|
if (StringUtils.isEmpty(excel.getCoverAnArea())) {
|
|
- throw new RuntimeException("占地面积为空");
|
|
|
|
|
|
+ coverAnAreaFlag = false;
|
|
|
|
+ builder.append("占地面积为空").append(",");
|
|
|
|
+ excel.setCoverAnArea("{" + excel.getCoverAnArea() + "}");
|
|
}
|
|
}
|
|
try {
|
|
try {
|
|
data.setCoverAnArea(Double.valueOf(excel.getCoverAnArea()));
|
|
data.setCoverAnArea(Double.valueOf(excel.getCoverAnArea()));
|
|
}catch (NumberFormatException e){
|
|
}catch (NumberFormatException e){
|
|
- throw new RuntimeException("占地面积格式有误");
|
|
|
|
|
|
+ coverAnAreaFlag = false;
|
|
|
|
+ builder.append("占地面积格式有误").append(",");
|
|
|
|
+ excel.setCoverAnArea("{" + excel.getCoverAnArea() + "}");
|
|
}
|
|
}
|
|
|
|
+
|
|
// 地下面积
|
|
// 地下面积
|
|
if (StringUtils.isEmpty(excel.getUndergroundArea())) {
|
|
if (StringUtils.isEmpty(excel.getUndergroundArea())) {
|
|
- throw new RuntimeException("地下面积为空");
|
|
|
|
|
|
+ undergroundAreaFlag = false;
|
|
|
|
+ builder.append("地下面积为空").append(",");
|
|
|
|
+ excel.setUndergroundArea("{" + excel.getUndergroundArea() + "}");
|
|
}
|
|
}
|
|
try {
|
|
try {
|
|
data.setUndergroundArea(Double.valueOf(excel.getUndergroundArea()));
|
|
data.setUndergroundArea(Double.valueOf(excel.getUndergroundArea()));
|
|
}catch (NumberFormatException e){
|
|
}catch (NumberFormatException e){
|
|
- throw new RuntimeException("地下面积格式有误");
|
|
|
|
|
|
+ undergroundAreaFlag = false;
|
|
|
|
+ builder.append("地下面积格式有误").append(",");
|
|
|
|
+ excel.setUndergroundArea("{" + excel.getUndergroundArea() + "}");
|
|
}
|
|
}
|
|
|
|
+
|
|
// 房号
|
|
// 房号
|
|
if (StringUtils.isEmpty(excel.getRoomNum())) {
|
|
if (StringUtils.isEmpty(excel.getRoomNum())) {
|
|
- throw new RuntimeException("房号为空");
|
|
|
|
|
|
+ roomNumFlag = false;
|
|
|
|
+ builder.append("房号为空").append(",");
|
|
|
|
+ excel.setRoomNum("{" + excel.getRoomNum() + "}");
|
|
}
|
|
}
|
|
data.setRoomNum(excel.getRoomNum());
|
|
data.setRoomNum(excel.getRoomNum());
|
|
|
|
+
|
|
// 套数
|
|
// 套数
|
|
if (StringUtils.isEmpty(excel.getNumberInfo())) {
|
|
if (StringUtils.isEmpty(excel.getNumberInfo())) {
|
|
- throw new RuntimeException("套数为空");
|
|
|
|
|
|
+ numberInfoFlag = false;
|
|
|
|
+ builder.append("套数为空").append(",");
|
|
|
|
+ excel.setNumberInfo("{" + excel.getNumberInfo() + "}");
|
|
}
|
|
}
|
|
data.setNumberInfo(excel.getNumberInfo());
|
|
data.setNumberInfo(excel.getNumberInfo());
|
|
|
|
+
|
|
// 总层数
|
|
// 总层数
|
|
if (StringUtils.isEmpty(excel.getFloors())) {
|
|
if (StringUtils.isEmpty(excel.getFloors())) {
|
|
- throw new RuntimeException("总层数为空");
|
|
|
|
|
|
+ floorsFlag = false;
|
|
|
|
+ builder.append("总层数为空").append(",");
|
|
|
|
+ excel.setFloors("{" + excel.getFloors() + "}");
|
|
}
|
|
}
|
|
try {
|
|
try {
|
|
data.setFloors(Integer.valueOf(excel.getFloors()));
|
|
data.setFloors(Integer.valueOf(excel.getFloors()));
|
|
}catch (NumberFormatException e){
|
|
}catch (NumberFormatException e){
|
|
- throw new RuntimeException("总层数格式有误");
|
|
|
|
|
|
+ floorsFlag = false;
|
|
|
|
+ builder.append("总层数格式有误").append(",");
|
|
|
|
+ excel.setFloors("{" + excel.getFloors() + "}");
|
|
}
|
|
}
|
|
|
|
+
|
|
// 地上层数
|
|
// 地上层数
|
|
if (StringUtils.isEmpty(excel.getOvergroundFloors())) {
|
|
if (StringUtils.isEmpty(excel.getOvergroundFloors())) {
|
|
- throw new RuntimeException("地上层数为空");
|
|
|
|
|
|
+ overgroundFloorsFlag = false;
|
|
|
|
+ builder.append("地上层数为空").append(",");
|
|
|
|
+ excel.setOvergroundFloors("{" + excel.getOvergroundFloors() + "}");
|
|
}
|
|
}
|
|
try {
|
|
try {
|
|
data.setOvergroundFloors(Integer.valueOf(excel.getOvergroundFloors()));
|
|
data.setOvergroundFloors(Integer.valueOf(excel.getOvergroundFloors()));
|
|
}catch (NumberFormatException e){
|
|
}catch (NumberFormatException e){
|
|
- throw new RuntimeException("地上层数格式有误");
|
|
|
|
|
|
+ overgroundFloorsFlag = false;
|
|
|
|
+ builder.append("地上层数格式有误").append(",");
|
|
|
|
+ excel.setOvergroundFloors("{" + excel.getOvergroundFloors() + "}");
|
|
}
|
|
}
|
|
|
|
+
|
|
// 地下层数
|
|
// 地下层数
|
|
if (StringUtils.isEmpty(excel.getUndergroundFloors())) {
|
|
if (StringUtils.isEmpty(excel.getUndergroundFloors())) {
|
|
- throw new RuntimeException("地下层数为空");
|
|
|
|
|
|
+ undergroundFloorsFlag = false;
|
|
|
|
+ builder.append("地下层数为空").append(",");
|
|
|
|
+ excel.setUndergroundFloors("{" + excel.getUndergroundFloors() + "}");
|
|
}
|
|
}
|
|
try {
|
|
try {
|
|
data.setUndergroundFloors(Integer.valueOf(excel.getUndergroundFloors()));
|
|
data.setUndergroundFloors(Integer.valueOf(excel.getUndergroundFloors()));
|
|
}catch (NumberFormatException e){
|
|
}catch (NumberFormatException e){
|
|
- throw new RuntimeException("地下层数格式有误");
|
|
|
|
|
|
+ undergroundFloorsFlag = false;
|
|
|
|
+ builder.append("地下层数格式有误").append(",");
|
|
|
|
+ excel.setUndergroundFloors("{" + excel.getUndergroundFloors() + "}");
|
|
}
|
|
}
|
|
|
|
+
|
|
// 结构
|
|
// 结构
|
|
if (StringUtils.isEmpty(excel.getStructure())) {
|
|
if (StringUtils.isEmpty(excel.getStructure())) {
|
|
- throw new RuntimeException("结构为空");
|
|
|
|
|
|
+ structureFlag = false;
|
|
|
|
+ builder.append("结构为空").append(",");
|
|
|
|
+ excel.setStructure("{" + excel.getStructure() + "}");
|
|
}
|
|
}
|
|
for (Map<String, String> stringStringMap : buildStructure) {
|
|
for (Map<String, String> stringStringMap : buildStructure) {
|
|
if (stringStringMap.get("label").equals(excel.getStructure())) {
|
|
if (stringStringMap.get("label").equals(excel.getStructure())) {
|
|
@@ -184,24 +277,42 @@ public class MnpBuildingListener extends AnalysisEventListener<MnpBuildingExcel>
|
|
}
|
|
}
|
|
// 没匹配上的情况
|
|
// 没匹配上的情况
|
|
if(StringUtils.isEmpty(data.getStructure())){
|
|
if(StringUtils.isEmpty(data.getStructure())){
|
|
- throw new RuntimeException("结构格式有误");
|
|
|
|
|
|
+ structureFlag = false;
|
|
|
|
+ builder.append("结构格式有误").append(",");
|
|
|
|
+ excel.setStructure("{" + excel.getStructure() + "}");
|
|
}
|
|
}
|
|
|
|
+
|
|
// 行政区划
|
|
// 行政区划
|
|
if (StringUtils.isEmpty(excel.getRegionalismCode())) {
|
|
if (StringUtils.isEmpty(excel.getRegionalismCode())) {
|
|
- throw new RuntimeException("行政区划为空");
|
|
|
|
|
|
+ regionalismCodeFlag = false;
|
|
|
|
+ builder.append("行政区划为空").append(",");
|
|
|
|
+ excel.setRegionalismCode("{" + excel.getRegionalismCode() + "}");
|
|
}
|
|
}
|
|
data.setRegionalismCode(excel.getRegionalismCode());
|
|
data.setRegionalismCode(excel.getRegionalismCode());
|
|
|
|
+
|
|
// 地号
|
|
// 地号
|
|
if (StringUtils.isEmpty(excel.getLandCode())) {
|
|
if (StringUtils.isEmpty(excel.getLandCode())) {
|
|
- throw new RuntimeException("地号为空");
|
|
|
|
|
|
+ landCodeFlag = false;
|
|
|
|
+ builder.append("地号为空").append(",");
|
|
|
|
+ excel.setLandCode("{" + excel.getLandCode() + "}");
|
|
}
|
|
}
|
|
data.setLandCode(excel.getLandCode());
|
|
data.setLandCode(excel.getLandCode());
|
|
- data.setRemark(excel.getRemark());
|
|
|
|
- data.setPriceRemark(excel.getPriceRemark());
|
|
|
|
- data.setId(IdUtil.simpleUUID());
|
|
|
|
- data.setCreatedId(ShiroUtils.getUserId());
|
|
|
|
- data.setCreatedAt(new Date());
|
|
|
|
- list.add(data);
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ if (groupNameFlag && discNameFlag && buildNumFlag && constructionNumFlag && areaFlag && residentialAreaFlag
|
|
|
|
+ && unResidentialAreaFlag && coverAnAreaFlag && undergroundAreaFlag && roomNumFlag && numberInfoFlag
|
|
|
|
+ && floorsFlag && overgroundFloorsFlag && undergroundFloorsFlag && structureFlag && regionalismCodeFlag
|
|
|
|
+ && landCodeFlag
|
|
|
|
+ ) {
|
|
|
|
+ data.setRemark(excel.getRemark());
|
|
|
|
+ data.setPriceRemark(excel.getPriceRemark());
|
|
|
|
+ data.setId(IdUtil.simpleUUID());
|
|
|
|
+ data.setCreatedId(ShiroUtils.getUserId());
|
|
|
|
+ data.setCreatedAt(new Date());
|
|
|
|
+ list.add(data);
|
|
|
|
+ }else {
|
|
|
|
+ throw new RuntimeException(builder.toString());
|
|
|
|
+ }
|
|
|
|
|
|
}catch (Exception e){
|
|
}catch (Exception e){
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|