From 2c42c9540fd3e841076d14f23dad7a99439b443b Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Wed, 15 May 2024 17:23:24 +0800
Subject: [PATCH] 场所导出新增

---
 src/main/java/org/springblade/modules/place/mapper/PlaceMapper.java            |   12 +
 src/main/java/org/springblade/modules/place/service/IPlaceService.java         |    8 +
 src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java |   17 ++
 src/main/java/org/springblade/modules/place/controller/PlaceController.java    |   12 ++
 src/main/java/org/springblade/modules/place/excel/ExportPlaceExcel.java        |  130 +++++++++++++++++++++
 src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml             |  135 ++++++++++++++++++++++
 6 files changed, 313 insertions(+), 1 deletions(-)

diff --git a/src/main/java/org/springblade/modules/place/controller/PlaceController.java b/src/main/java/org/springblade/modules/place/controller/PlaceController.java
index b5df254..952870c 100644
--- a/src/main/java/org/springblade/modules/place/controller/PlaceController.java
+++ b/src/main/java/org/springblade/modules/place/controller/PlaceController.java
@@ -260,6 +260,18 @@
 	}
 
 	/**
+	 * 导出场所信息
+	 */
+	@GetMapping("export-place")
+	@ApiOperationSupport(order = 13)
+	@ApiLog("导出场所信息")
+	@ApiOperation(value = "导出场所信息", notes = "传入place")
+	public void exportPlace(PlaceVO place, HttpServletResponse response) {
+		List<ExportPlaceExcel> list = placeService.exportPlaceList(place);
+		ExcelUtil.export(response, "场所数据管理" + DateUtil.time(), "场所数据表", list, ExportPlaceExcel.class);
+	}
+
+	/**
 	 * 导出模板
 	 */
 	@GetMapping("export-template")
diff --git a/src/main/java/org/springblade/modules/place/excel/ExportPlaceExcel.java b/src/main/java/org/springblade/modules/place/excel/ExportPlaceExcel.java
new file mode 100644
index 0000000..7fa9c67
--- /dev/null
+++ b/src/main/java/org/springblade/modules/place/excel/ExportPlaceExcel.java
@@ -0,0 +1,130 @@
+package org.springblade.modules.place.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+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;
+
+/**
+ * ExportPlaceExcel
+ *
+ * @author Chill
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class ExportPlaceExcel implements Serializable {
+
+	private static final long serialVersionUID = 2L;
+
+	/** 场所名称 */
+	@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(25)
+	@ExcelProperty( "地址")
+	private String location;
+
+	/** 经度 */
+	@ColumnWidth(25)
+	@ExcelProperty( "经度")
+	private String lng;
+
+	/** 纬度 */
+	@ColumnWidth(25)
+	@ExcelProperty( "纬度")
+	private String lat;
+
+	/** 街道名称 */
+	@ExcelProperty( "街道名称")
+	private String streetName;
+
+	/** 社区名称 */
+	@ExcelProperty( "社区名称")
+	private String communityName;
+
+	/** 网格名称 */
+	@ExcelProperty( "网格名称")
+	private String gridName;
+
+//
+//	/** 企业法定代表 */
+//	@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;
+
+	/** 备注 */
+	@ExcelProperty( "备注")
+	private String remark;
+
+	/** 审核状态 */
+	@ExcelProperty( "审核状态")
+	private String confirmFlag;
+
+	/** 是否有二维码 */
+	@ExcelProperty( "是否有二维码")
+	private String source;
+
+
+}
+
diff --git a/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.java b/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.java
index 0a00735..2342e7b 100644
--- a/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.java
+++ b/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.java
@@ -19,6 +19,7 @@
 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.ExportPlaceExcel;
 import org.springblade.modules.place.excel.NinePlaceExcel;
 import org.springblade.modules.place.excel.PlaceAndRelExcel;
 import org.springblade.modules.place.vo.PlaceVO;
@@ -41,7 +42,6 @@
 	 *
 	 * @param page
 	 * @param place
-	 * @param houseCodeList
 	 * @param regionChildCodesList
 	 * @param isAdministrator
 	 * @return
@@ -233,4 +233,14 @@
 	 * @return
 	 */
 	String getCommunityCode(@Param("id") Long id);
+
+	/**
+	 * 导出场所信息
+	 * @param place
+	 * @return
+	 */
+    List<ExportPlaceExcel> exportPlaceList(@Param("place") PlaceVO place,
+										   @Param("gridCodeList") List<String> gridCodeList,
+										   @Param("regionChildCodesList") List<String> regionChildCodesList,
+										   @Param("isAdministrator") Integer isAdministrator);
 }
diff --git a/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml b/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml
index a129d74..ac6b359 100644
--- a/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml
+++ b/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml
@@ -944,4 +944,139 @@
         and jp.id = #{id}
     </select>
 
+    <!--导出场所信息-->
+    <select id="exportPlaceList" resultType="org.springblade.modules.place.excel.ExportPlaceExcel">
+        select
+        jp.id,
+        jp.location,
+        jp.lng,
+        jp.lat,
+        jp.place_name,
+        jp.principal,
+        jp.principal_phone,
+        jp.principal_id_card,
+        jp.nine_type,
+        jp.front_type,
+        jp.no_explosion_category,
+        jp.remark,
+        case when jp.source=1 then '是'
+        else '否' end as source,
+        case when jp.three_fire_protection=1 then '是'
+        when jp.three_fire_protection=2 then '否'
+        end as threeFireProtection,
+        jpe.legal_person,
+        jpe.legal_tel,
+        jpe.legal_id_card,
+        jppl.labelCode,
+        br.town_name as streetName,
+        br.name as communityName,
+        jg.grid_name as gridName,
+        case when jpe.confirm_flag = 1 then '待审核'
+        when jpe.confirm_flag = 2 then '审核通过'
+        when jpe.confirm_flag = 3 then '审核不通过'
+        when jpe.confirm_flag = 4 then '待完善'
+        end as confirmFlag
+        from jczz_place jp
+        left join blade_user bu on bu.id = jp.principal_user_id and bu.is_deleted = 0
+        left join jczz_place_ext jpe on jpe.place_id=jp.id and jpe.is_deleted = 0
+        left join jczz_grid jg on jg.grid_code = jp.grid_code and jg.is_deleted = 0
+        LEFT JOIN jczz_police_affairs_grid jpag on jp.jw_grid_code= jpag.jw_grid_code and jpag.is_deleted = 0
+        left join blade_region br on br.code = jpag.community_code
+        left join (
+            select place_id,GROUP_CONCAT(poi_code) as labelCode from jczz_place_poi_label group by place_id
+        ) jppl on jppl.place_id = jp.id
+        where jp.is_deleted = 0 and jp.source!=3
+        and jp.place_name != ''
+        <if test="place.placeName!=null and place.placeName!=''">
+            and jp.place_name like concat('%',#{place.placeName},'%')
+        </if>
+        <if test="place.principal!=null and place.principal!=''">
+            and jp.principal like concat('%',#{place.principal},'%')
+        </if>
+        <if test="place.principalPhone!=null and place.principalPhone!=''">
+            and jp.principal_phone like concat('%',#{place.principalPhone},'%')
+        </if>
+        <if test="place.houseCode!=null and place.houseCode!=''">
+            and jp.house_code like concat('%',#{place.houseCode},'%')
+        </if>
+        <if test="place.townStreetName!=null and place.townStreetName!=''">
+            and br.town_name like concat('%',#{place.townStreetName},'%')
+        </if>
+        <if test="place.neiName!=null and place.neiName!=''">
+            and br.name like concat('%',#{place.neiName},'%')
+        </if>
+        <if test="place.id!=null">
+            and jp.id = #{place.id}
+        </if>
+        <if test="place.isNine!=null">
+            and jp.is_nine = #{place.isNine}
+        </if>
+        <if test="place.source!=null">
+            and jp.source = #{place.source}
+        </if>
+        <if test="place.isPerfect==1">
+            and jp.status = 1
+        </if>
+        <if test="place.isPerfect==2">
+            and jp.status = 2
+        </if>
+        <if test="isAdministrator==2">
+            <choose>
+                <when test="place.roleName != null and place.roleName != ''">
+                    <if test="place.roleName=='wgy'">
+                        <choose>
+                            <when test="gridCodeList !=null and gridCodeList.size()>0">
+                                and jp.grid_code in
+                                <foreach collection="gridCodeList" item="code" open="(" close=")" separator=",">
+                                    #{code}
+                                </foreach>
+                            </when>
+                            <otherwise>
+                                and jp.grid_code in ('')
+                            </otherwise>
+                        </choose>
+                    </if>
+                    <if test="place.roleName=='mj'">
+                        <choose>
+                            <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+                                and jpag.community_code in
+                                <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                                    #{code}
+                                </foreach>
+                            </when>
+                            <otherwise>
+                                and jpag.community_code in ('')
+                            </otherwise>
+                        </choose>
+                    </if>
+                </when>
+                <otherwise>
+                    <choose>
+                        <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+                            and
+                            (
+                            jg.grid_code in
+                            <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                                #{code}
+                            </foreach>
+                            or
+                            jpag.community_code in
+                            <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                                #{code}
+                            </foreach>
+                            )
+                        </when>
+                        <otherwise>
+                            and
+                            (
+                            jg.grid_code in ('') or jpag.community_code in ('')
+                            )
+                        </otherwise>
+                    </choose>
+                </otherwise>
+            </choose>
+        </if>
+        order by jp.create_time desc,jp.id desc
+    </select>
+
 </mapper>
diff --git a/src/main/java/org/springblade/modules/place/service/IPlaceService.java b/src/main/java/org/springblade/modules/place/service/IPlaceService.java
index ff81d13..6ec5163 100644
--- a/src/main/java/org/springblade/modules/place/service/IPlaceService.java
+++ b/src/main/java/org/springblade/modules/place/service/IPlaceService.java
@@ -19,6 +19,7 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.springblade.common.node.TreeStringNode;
 import org.springblade.modules.place.entity.PlaceEntity;
+import org.springblade.modules.place.excel.ExportPlaceExcel;
 import org.springblade.modules.place.excel.NinePlaceExcel;
 import org.springblade.modules.place.excel.PlaceAndRelExcel;
 import org.springblade.modules.place.excel.ImportPlaceExcel;
@@ -209,4 +210,11 @@
 	 * @return
 	 */
 	String getCommunityCode(Long id);
+
+	/**
+	 * 导出场所信息
+	 * @param place
+	 * @return
+	 */
+	List<ExportPlaceExcel> exportPlaceList(PlaceVO place);
 }
diff --git a/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java b/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
index f0adab3..49f0ab7 100644
--- a/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
+++ b/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
@@ -41,6 +41,7 @@
 import org.springblade.modules.house.entity.HouseholdEntity;
 import org.springblade.modules.house.service.IHouseholdService;
 import org.springblade.modules.place.entity.*;
+import org.springblade.modules.place.excel.ExportPlaceExcel;
 import org.springblade.modules.place.excel.NinePlaceExcel;
 import org.springblade.modules.place.excel.PlaceAndRelExcel;
 import org.springblade.modules.place.excel.ImportPlaceExcel;
@@ -1789,4 +1790,20 @@
 	public String getCommunityCode(Long id) {
 		return baseMapper.getCommunityCode(id);
 	}
+
+	/**
+	 * 导出场所信息
+	 * @param place
+	 * @return
+	 */
+	@Override
+	public List<ExportPlaceExcel> exportPlaceList(PlaceVO place) {
+		// 公共参数设置
+		CommonParamSet commonParamSet = new CommonParamSet().invoke(PlaceVO.class, place);
+		return baseMapper.exportPlaceList(place,
+			commonParamSet.getGridCodeList(),
+			commonParamSet.getRegionChildCodesList(),
+			commonParamSet.getIsAdministrator()
+		);
+	}
 }

--
Gitblit v1.9.3