From 858ddcd71b737c1e2d9f9c1fb9d009209cb97b4e Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Thu, 22 Feb 2024 16:47:26 +0800
Subject: [PATCH] 场所检查新增场所类型查询,安全自查查询调整,新增安全自查导出

---
 src/main/java/org/springblade/modules/place/service/impl/PlaceCheckServiceImpl.java                      |   67 ++++++++
 src/main/java/org/springblade/modules/taskPlaceSelfCheck/mapper/TaskPlaceSelfCheckMapper.xml             |  148 ++++++++++++++++++
 src/main/java/org/springblade/modules/place/mapper/PlaceCheckMapper.xml                                  |   14 +
 src/main/java/org/springblade/modules/taskPlaceSelfCheck/service/ITaskPlaceSelfCheckService.java         |    8 +
 src/main/java/org/springblade/modules/taskPlaceSelfCheck/controller/TaskPlaceSelfCheckController.java    |   24 ++
 src/main/java/org/springblade/modules/place/excel/PlaceCheckExcel.java                                   |   19 +
 src/main/java/org/springblade/modules/place/mapper/PlaceCheckMapper.java                                 |    6 
 src/main/java/org/springblade/modules/taskPlaceSelfCheck/excel/TaskPlaceSelfCheckExcel.java              |   65 ++++++++
 src/main/java/org/springblade/modules/taskPlaceSelfCheck/service/impl/TaskPlaceSelfCheckServiceImpl.java |   90 +++++++++++
 src/main/java/org/springblade/modules/taskPlaceSelfCheck/mapper/TaskPlaceSelfCheckMapper.java            |   18 ++
 10 files changed, 444 insertions(+), 15 deletions(-)

diff --git a/src/main/java/org/springblade/modules/place/excel/PlaceCheckExcel.java b/src/main/java/org/springblade/modules/place/excel/PlaceCheckExcel.java
index 00669b6..3518683 100644
--- a/src/main/java/org/springblade/modules/place/excel/PlaceCheckExcel.java
+++ b/src/main/java/org/springblade/modules/place/excel/PlaceCheckExcel.java
@@ -5,6 +5,9 @@
 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 java.io.Serializable;
 
 /**
@@ -21,7 +24,15 @@
 
 	private static final long serialVersionUID = 2L;
 
-	/** 街道名称 */
+	@ExcelProperty( value = "场所名称")
+	private String placeName;
+
+	@ExcelProperty(value = "场所地址")
+	private String location;
+
+	@ExcelProperty( value = "场所类别")
+	private String nineType;
+
 	@ExcelProperty( "所属街道")
 	private String streetName;
 
@@ -31,9 +42,6 @@
 	@ExcelProperty(value = "所属网格")
 	private String gridName;
 
-	@ExcelProperty( value = "场所名称")
-	private String placeName;
-
 	@ExcelProperty( value = "场所隐患")
 	private String remark;
 
@@ -42,9 +50,6 @@
 
 	@ExcelProperty(value = "场所负责人电话")
 	private String principalPhone;
-
-	@ExcelProperty(value = "场所地址")
-	private String location;
 
 	@ExcelProperty(value = "创建时间")
 	private String createTime;
diff --git a/src/main/java/org/springblade/modules/place/mapper/PlaceCheckMapper.java b/src/main/java/org/springblade/modules/place/mapper/PlaceCheckMapper.java
index 2d10b60..41698a6 100644
--- a/src/main/java/org/springblade/modules/place/mapper/PlaceCheckMapper.java
+++ b/src/main/java/org/springblade/modules/place/mapper/PlaceCheckMapper.java
@@ -44,7 +44,8 @@
 											@Param("placeCheck") PlaceCheckVO placeCheck,
 											@Param("isAdministrator") Integer isAdministrator,
 											@Param("regionChildCodesList") List<String> regionChildCodesList,
-											@Param("gridCodeList") List<String> gridCodeList);
+											@Param("gridCodeList") List<String> gridCodeList,
+											@Param("nineTypeList") List<String> nineTypeList);
 
 	/**
 	 * 查询场所检查表
@@ -74,5 +75,6 @@
 	List<PlaceCheckExcel> selectPlaceCheckListExcel(@Param("placeCheck") PlaceCheckVO placeCheck,
 													@Param("isAdministrator") Integer isAdministrator,
 													@Param("regionChildCodesList") List<String> regionChildCodesList,
-													@Param("gridCodeList") List<String> gridCodeList);
+													@Param("gridCodeList") List<String> gridCodeList,
+													@Param("nineTypeList") List<String> nineTypeList);
 }
diff --git a/src/main/java/org/springblade/modules/place/mapper/PlaceCheckMapper.xml b/src/main/java/org/springblade/modules/place/mapper/PlaceCheckMapper.xml
index 74dcbd3..bd1a7ff 100644
--- a/src/main/java/org/springblade/modules/place/mapper/PlaceCheckMapper.xml
+++ b/src/main/java/org/springblade/modules/place/mapper/PlaceCheckMapper.xml
@@ -128,6 +128,13 @@
             and jp.principal_phone like concat('%', #{placeCheck.principalPhone},'%')
         </if>
 
+        <if test="nineTypeList!=null and nineTypeList.size()>0">
+            and jp.nine_type in
+            <foreach collection="nineTypeList" separator="," open="(" close=")" item="nineType">
+                #{nineType}
+            </foreach>
+        </if>
+
         <if test="placeCheck.startTime!=null and placeCheck.startTime!=''">
             and date_format(jpc.create_time,'%Y-%m-%d') &gt;= #{placeCheck.startTime}
         </if>
@@ -306,6 +313,13 @@
             and jp.principal_phone like concat('%', #{placeCheck.principalPhone},'%')
         </if>
 
+        <if test="nineTypeList!=null and nineTypeList.size()>0">
+            and jp.nine_type in
+            <foreach collection="nineTypeList" separator="," open="(" close=")" item="nineType">
+                #{nineType}
+            </foreach>
+        </if>
+
         <if test="placeCheck.startTime!=null and placeCheck.startTime!=''">
             and date_format(jpc.create_time,'%Y-%m-%d') &gt;= #{placeCheck.startTime}
         </if>
diff --git a/src/main/java/org/springblade/modules/place/service/impl/PlaceCheckServiceImpl.java b/src/main/java/org/springblade/modules/place/service/impl/PlaceCheckServiceImpl.java
index c3d445b..4bfc32a 100644
--- a/src/main/java/org/springblade/modules/place/service/impl/PlaceCheckServiceImpl.java
+++ b/src/main/java/org/springblade/modules/place/service/impl/PlaceCheckServiceImpl.java
@@ -17,8 +17,10 @@
 package org.springblade.modules.place.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xxl.job.core.util.FileUtil;
+import liquibase.repackaged.org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.util.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -43,11 +45,13 @@
 import org.springblade.modules.place.service.IPlaceCheckService;
 import org.springblade.modules.police.service.IPoliceAffairsGridService;
 import org.springblade.modules.system.entity.DictBiz;
+import org.springblade.modules.system.service.IDictBizService;
 import org.springblade.modules.system.service.IRegionService;
 import org.springblade.modules.task.service.ITaskService;
 import org.springblade.modules.task.vo.TaskLabelReportingEventVO;
 import org.springblade.modules.taskPlaceRectification.entity.TaskPlaceRectificationEntity;
 import org.springblade.modules.taskPlaceRectification.service.ITaskPlaceRectificationService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.transaction.annotation.Transactional;
@@ -68,15 +72,34 @@
 
 	private static Logger logger = LoggerFactory.getLogger(PlaceCheckServiceImpl.class);
 
+	@Autowired
+	private IDictBizService dictBizService;
+
 	@Override
 	public IPage<PlaceCheckVO> selectPlaceCheckPage(IPage<PlaceCheckVO> page, PlaceCheckVO placeCheck) {
+		List<String> strings = new ArrayList<>();
+		if (null!=placeCheck.getNineType()){
+			QueryWrapper<DictBiz> queryWrapper = new QueryWrapper<>();
+			queryWrapper.eq("is_deleted",0).eq("dict_key",placeCheck.getNineType()).eq("code","nineType");
+			// 先查询当前
+			DictBiz one = dictBizService.getOne(queryWrapper);
+			// 查询本身和子集的key
+			List<DictBiz> list = dictBizService.getList("nineType", one.getId());
+			if (list.size()==0){
+				strings.add(placeCheck.getNineType().toString());
+			}else {
+				strings = list.stream().map(DictBiz::getDictKey).collect(Collectors.toList());
+			}
+		}
 		// 公共参数设置
 		CommonParamSet commonParamSet = new CommonParamSet().invoke(PlaceCheckVO.class,placeCheck);
 		List<PlaceCheckVO> placeCheckVOS = baseMapper.selectPlaceCheckPage(page,
 			placeCheck,
 			commonParamSet.getIsAdministrator(),
 			commonParamSet.getRegionChildCodesList(),
-			commonParamSet.getGridCodeList());
+			commonParamSet.getGridCodeList(),
+			strings);
+		List<DictBiz> nineType = dictBizService.list(Wrappers.<DictBiz>lambdaQuery().eq(DictBiz::getCode, "nineType").eq(DictBiz::getIsDeleted, 0));
 		for (PlaceCheckVO placeCheckVO : placeCheckVOS) {
 			int number = 0;
 			for (PatrolRecord patrolRecord : placeCheckVO.getPatrolRecordVOList()) {
@@ -85,6 +108,17 @@
 				}
 			}
 			placeCheckVO.setNumber(number);
+			for (DictBiz dictBiz : nineType) {
+				if (StringUtils.isNotBlank(placeCheckVO.getNineType()) && placeCheckVO.getNineType().equals(dictBiz.getDictKey())) {
+					if (placeCheckVO.getNineType().contains("10,11,12")) {
+						placeCheckVO.setNineType("小学校(幼儿园、校外培训机构)- " + dictBiz.getDictValue());
+					} else if (placeCheckVO.getNineType().contains("13,14,15")) {
+						placeCheckVO.setNineType("小医院(诊所、养老院)- " + dictBiz.getDictValue());
+					} else {
+						placeCheckVO.setNineType(dictBiz.getDictValue());
+					}
+				}
+			}
 		}
 		return page.setRecords(placeCheckVOS);
 	}
@@ -170,12 +204,41 @@
 	 */
 	@Override
 	public List<PlaceCheckExcel> exportPlaceCheck(PlaceCheckVO placeCheck) {
+		List<String> strings = new ArrayList<>();
+		if (null!=placeCheck.getNineType()){
+			QueryWrapper<DictBiz> queryWrapper = new QueryWrapper<>();
+			queryWrapper.eq("is_deleted",0).eq("dict_key",placeCheck.getNineType()).eq("code","nineType");
+			// 先查询当前
+			DictBiz one = dictBizService.getOne(queryWrapper);
+			// 查询本身和子集的key
+			List<DictBiz> list = dictBizService.getList("nineType", one.getId());
+			if (list.size()==0){
+				strings.add(placeCheck.getNineType());
+			}else {
+				strings = list.stream().map(DictBiz::getDictKey).collect(Collectors.toList());
+			}
+		}
 		// 公共参数设置
 		CommonParamSet commonParamSet = new CommonParamSet().invoke(PlaceCheckVO.class,placeCheck);
 		List<PlaceCheckExcel> placeCheckVOS = baseMapper.selectPlaceCheckListExcel(placeCheck,
 			commonParamSet.getIsAdministrator(),
 			commonParamSet.getRegionChildCodesList(),
-			commonParamSet.getGridCodeList());
+			commonParamSet.getGridCodeList(),
+			strings);
+		List<DictBiz> nineType = dictBizService.list(Wrappers.<DictBiz>lambdaQuery().eq(DictBiz::getCode, "nineType").eq(DictBiz::getIsDeleted, 0));
+		for (PlaceCheckExcel placeCheckVO : placeCheckVOS) {
+			for (DictBiz dictBiz : nineType) {
+				if (StringUtils.isNotBlank(placeCheckVO.getNineType()) && placeCheckVO.getNineType().equals(dictBiz.getDictKey())) {
+					if (placeCheckVO.getNineType().contains("10,11,12")) {
+						placeCheckVO.setNineType("小学校(幼儿园、校外培训机构)- " + dictBiz.getDictValue());
+					} else if (placeCheckVO.getNineType().contains("13,14,15")) {
+						placeCheckVO.setNineType("小医院(诊所、养老院)- " + dictBiz.getDictValue());
+					} else {
+						placeCheckVO.setNineType(dictBiz.getDictValue());
+					}
+				}
+			}
+		}
 		// 返回
 		return placeCheckVOS;
 	}
diff --git a/src/main/java/org/springblade/modules/taskPlaceSelfCheck/controller/TaskPlaceSelfCheckController.java b/src/main/java/org/springblade/modules/taskPlaceSelfCheck/controller/TaskPlaceSelfCheckController.java
index cbc0adb..cdc3cfd 100644
--- a/src/main/java/org/springblade/modules/taskPlaceSelfCheck/controller/TaskPlaceSelfCheckController.java
+++ b/src/main/java/org/springblade/modules/taskPlaceSelfCheck/controller/TaskPlaceSelfCheckController.java
@@ -21,15 +21,22 @@
 import io.swagger.annotations.ApiParam;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
+
+import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 
+import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.secure.BladeUser;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.DateUtil;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.modules.place.excel.PlaceCheckExcel;
+import org.springblade.modules.place.vo.PlaceCheckVO;
 import org.springblade.modules.taskPlaceSelfCheck.dto.TaskPlaceSelfCheckDTO;
+import org.springblade.modules.taskPlaceSelfCheck.excel.TaskPlaceSelfCheckExcel;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.modules.taskPlaceSelfCheck.entity.TaskPlaceSelfCheckEntity;
@@ -37,6 +44,8 @@
 import org.springblade.modules.taskPlaceSelfCheck.wrapper.TaskPlaceSelfCheckWrapper;
 import org.springblade.modules.taskPlaceSelfCheck.service.ITaskPlaceSelfCheckService;
 import org.springblade.core.boot.ctrl.BladeController;
+
+import java.util.List;
 
 /**
  * 消防自查记任务表 控制器
@@ -149,11 +158,24 @@
 	 * 消防自查记任务表 修改
 	 */
 	@PostMapping("/updateTaskPlaceSelfCheck")
-	@ApiOperationSupport(order = 5)
+	@ApiOperationSupport(order = 8)
 	@ApiOperation(value = "更新自查详情接口", notes = "传入taskPlaceSelfCheck")
 	public R updateTaskPlaceSelfCheck(@Valid @RequestBody TaskPlaceSelfCheckVO taskPlaceSelfCheck) throws Exception {
 		return R.status(taskPlaceSelfCheckService.updateTaskPlaceSelfCheck(taskPlaceSelfCheck));
 	}
 
 
+	/**
+	 * 导出消防自查信息
+	 * @param taskPlaceSelfCheck
+	 */
+	@GetMapping("export-taskPlaceSelfCheck")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导出消防自查", notes = "传入taskPlaceSelfCheck")
+	public void exportTaskPlaceSelfCheck(TaskPlaceSelfCheckVO taskPlaceSelfCheck, HttpServletResponse response) {
+		List<TaskPlaceSelfCheckExcel> list = taskPlaceSelfCheckService.exportTaskPlaceSelfCheck(taskPlaceSelfCheck);
+		ExcelUtil.export(response, "消防自查" + DateUtil.time(), "消防自查记录表", list, TaskPlaceSelfCheckExcel.class);
+	}
+
+
 }
diff --git a/src/main/java/org/springblade/modules/taskPlaceSelfCheck/excel/TaskPlaceSelfCheckExcel.java b/src/main/java/org/springblade/modules/taskPlaceSelfCheck/excel/TaskPlaceSelfCheckExcel.java
new file mode 100644
index 0000000..f91fc31
--- /dev/null
+++ b/src/main/java/org/springblade/modules/taskPlaceSelfCheck/excel/TaskPlaceSelfCheckExcel.java
@@ -0,0 +1,65 @@
+package org.springblade.modules.taskPlaceSelfCheck.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 java.io.Serializable;
+
+/**
+ * 消费自查检查
+ *
+ * @author zhongrj
+ * @date 2024/02/22
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class TaskPlaceSelfCheckExcel implements Serializable {
+
+	private static final long serialVersionUID = 2L;
+
+	@ExcelProperty( value = "场所名称")
+	private String placeName;
+
+	@ExcelProperty(value = "场所地址")
+	private String location;
+
+	@ExcelProperty( value = "场所类别")
+	private String nineType;
+
+	/** 街道名称 */
+	@ExcelProperty( "所属街道")
+	private String streetName;
+
+	@ExcelProperty(value = "所属社区")
+	private String communityName;
+
+	@ExcelProperty(value = "所属网格")
+	private String gridName;
+
+	@ExcelProperty( value = "场所隐患")
+	private String remark;
+
+	@ExcelProperty(value = "场所负责人")
+	private String principal;
+
+	@ExcelProperty(value = "场所负责人电话")
+	private String principalPhone;
+
+
+	@ExcelProperty(value = "创建时间")
+	private String createTime;
+
+	@ExcelProperty(value = "审核状态")
+	private String status;
+
+
+
+}
+
diff --git a/src/main/java/org/springblade/modules/taskPlaceSelfCheck/mapper/TaskPlaceSelfCheckMapper.java b/src/main/java/org/springblade/modules/taskPlaceSelfCheck/mapper/TaskPlaceSelfCheckMapper.java
index 0dfeb3c..a48d0c4 100644
--- a/src/main/java/org/springblade/modules/taskPlaceSelfCheck/mapper/TaskPlaceSelfCheckMapper.java
+++ b/src/main/java/org/springblade/modules/taskPlaceSelfCheck/mapper/TaskPlaceSelfCheckMapper.java
@@ -19,6 +19,7 @@
 import org.apache.ibatis.annotations.Param;
 import org.springblade.modules.taskPlaceSelfCheck.dto.TaskPlaceSelfCheckDTO;
 import org.springblade.modules.taskPlaceSelfCheck.entity.TaskPlaceSelfCheckEntity;
+import org.springblade.modules.taskPlaceSelfCheck.excel.TaskPlaceSelfCheckExcel;
 import org.springblade.modules.taskPlaceSelfCheck.vo.TaskPlaceSelfCheckVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -44,7 +45,8 @@
 															@Param("place") TaskPlaceSelfCheckVO taskPlaceSelfCheck,
 															@Param("isAdministrator") Integer isAdministrator,
 															@Param("regionChildCodesList") List<String> regionChildCodesList,
-															@Param("gridCodeList") List<String> gridCodeList);
+															@Param("gridCodeList") List<String> gridCodeList,
+															@Param("nineTypeList") List<String> nineTypeList);
 
 	/**
 	 * 查询消防自查记任务表
@@ -61,4 +63,18 @@
 	 * @return 消防自查记任务表集合
 	 */
 	public List<TaskPlaceSelfCheckDTO> selectTaskPlaceSelfCheckList(TaskPlaceSelfCheckDTO taskPlaceSelfCheckDTO);
+
+	/**
+	 * 导出消防自查信息
+	 * @param taskPlaceSelfCheck
+	 * @param isAdministrator
+	 * @param regionChildCodesList
+	 * @param gridCodeList
+	 * @return
+	 */
+	List<TaskPlaceSelfCheckExcel> exportTaskPlaceSelfCheck(@Param("nineTypeList") List<String> nineTypeList,
+														   @Param("place") TaskPlaceSelfCheckVO taskPlaceSelfCheck,
+														   @Param("isAdministrator") Integer isAdministrator,
+														   @Param("regionChildCodesList") List<String> regionChildCodesList,
+														   @Param("gridCodeList") List<String> gridCodeList);
 }
diff --git a/src/main/java/org/springblade/modules/taskPlaceSelfCheck/mapper/TaskPlaceSelfCheckMapper.xml b/src/main/java/org/springblade/modules/taskPlaceSelfCheck/mapper/TaskPlaceSelfCheckMapper.xml
index 47f8555..f329ed9 100644
--- a/src/main/java/org/springblade/modules/taskPlaceSelfCheck/mapper/TaskPlaceSelfCheckMapper.xml
+++ b/src/main/java/org/springblade/modules/taskPlaceSelfCheck/mapper/TaskPlaceSelfCheckMapper.xml
@@ -36,7 +36,7 @@
         </collection>
     </resultMap>
 
-
+    <!--自定义分页查询-->
     <select id="selectTaskPlaceSelfCheckPage" resultMap="taskPlaceSelfCheckResultMap">
         select jpc.*,
         jp.id jpid,
@@ -68,6 +68,13 @@
             </if>
             <if test="place.principal != null  and place.principal != ''">
                 and jp.principal like concat('%', #{place.principal},'%')
+            </if>
+
+            <if test="nineTypeList!=null and nineTypeList.size()>0">
+                and jp.nine_type in
+                <foreach collection="nineTypeList" separator="," open="(" close=")" item="nineType">
+                    #{nineType}
+                </foreach>
             </if>
             <if test="place.remark != null  and place.remark != ''">and jpc.remark = #{place.remark}</if>
             <if test="place.updateTime != null ">and jpc.update_time = #{place.updateTime}</if>
@@ -337,4 +344,143 @@
             <if test="deleteFlag != null ">and delete_flag = #{deleteFlag}</if>
         </where>
     </select>
+
+
+    <!--导出消防自查信息-->
+    <select id="exportTaskPlaceSelfCheck" resultType="org.springblade.modules.taskPlaceSelfCheck.excel.TaskPlaceSelfCheckExcel">
+        select
+        jpc.id,
+        case when jpc.status=1 then '待审核'
+        when jpc.status=2 then '审核通过'
+        when jpc.status=3 then '审核不通过'
+        else '待完成' end as status,
+        jpc.remark,
+        jpc.create_time,
+        jp.place_name,
+        jp.location,
+        jg.grid_name,
+        jp.principal,
+        jp.principal_phone,
+        jp.nine_type,
+        jp.is_nine,
+        br.town_name as streetName,
+        br.village_name as communityName,
+        bu.`name`,
+        jpe.legal_tel,
+        jpe.legal_person
+        FROM jczz_task_place_self_check jpc
+        LEFT JOIN jczz_place jp ON jpc.house_code = jp.house_code and jp.is_deleted = 0
+        LEFT JOIN jczz_grid jg ON jg.grid_code = jp.grid_code and jg.is_deleted = 0
+        LEFT JOIN blade_region br ON br.`code` = jg.community_code
+        LEFT JOIN jczz_place_ext jpe ON jpe.place_id = jp.id and jpe.is_deleted = 0
+        LEFT JOIN blade_user bu ON bu.id = jpc.create_user and bu.is_deleted = 0
+        LEFT JOIN jczz_police_affairs_grid jpag on jp.jw_grid_code= jpag.jw_grid_code and jpag.is_deleted = 0
+        <where>
+            <if test="place.id != null ">and jpc.id = #{place.id}</if>
+            <if test="place.taskId != null ">and jpc.task_id = #{place.taskId}</if>
+            <if test="place.taskName != null  and place.taskName != ''">and jpc.task_name = #{place.taskName}</if>
+            <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="nineTypeList!=null and nineTypeList.size()>0">
+                and jp.nine_type in
+                <foreach collection="nineTypeList" separator="," open="(" close=")" item="nineType">
+                    #{nineType}
+                </foreach>
+            </if>
+            <if test="place.remark != null  and place.remark != ''">and jpc.remark = #{place.remark}</if>
+            <if test="place.updateTime != null ">and jpc.update_time = #{place.updateTime}</if>
+            <if test="place.createTime != null ">and jpc.create_time = #{place.createTime}</if>
+            <if test="place.houseCode != null  and place.houseCode != ''">and jpc.house_code = #{place.houseCode}</if>
+            <if test="place.rectificationEndTime != null ">and jpc.rectification_end_time =
+                #{place.rectificationEndTime}
+            </if>
+            <if test="place.rectificationCompleteTime != null ">and jpc.rectification_complete_time =
+                #{place.rectificationCompleteTime}
+            </if>
+            <if test="place.rectificationFlag != null ">and jpc.rectification_flag = #{place.rectificationFlag}</if>
+            <if test="place.policeStation != null  and place.policeStation != ''">and jpc.police_station =
+                #{place.policeStation}
+            </if>
+            <if test="place.rectificationNoticeImgUrl != null  and place.rectificationNoticeImgUrl != ''">and
+                jpc.rectification_notice_img_url = #{place.rectificationNoticeImgUrl}
+            </if>
+            <if test="place.signaturePath != null  and place.signaturePath != ''">and jpc.signature_path =
+                #{place.signaturePath}
+            </if>
+
+            <if test="place.streetName!=null and place.streetName!=''">
+                and br.town_name like concat('%', #{place.streetName},'%')
+            </if>
+
+            <if test="place.communityName!=null and place.communityName!=''">
+                and br.village_name like concat('%', #{place.communityName},'%')
+            </if>
+            <if test="place.gridName!=null and place.gridName!=''">
+                and jg.grid_name like concat('%', #{place.gridName},'%')
+            </if>
+            <if test="place.createUser != null ">and jpc.create_user = #{place.createUser}</if>
+            <if test="place.imageUrls != null  and place.imageUrls != ''">and jpc.image_urls = #{place.imageUrls}</if>
+            <if test="place.status != null ">and jpc.status = #{place.status}</if>
+            <if test="place.deleteFlag != null ">and jpc.delete_flag = #{place.deleteFlag}</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>
+
+                            </otherwise>
+                        </choose>
+                    </otherwise>
+                </choose>
+            </if>
+        </where>
+    </select>
 </mapper>
diff --git a/src/main/java/org/springblade/modules/taskPlaceSelfCheck/service/ITaskPlaceSelfCheckService.java b/src/main/java/org/springblade/modules/taskPlaceSelfCheck/service/ITaskPlaceSelfCheckService.java
index bcceb0d..911c8fb 100644
--- a/src/main/java/org/springblade/modules/taskPlaceSelfCheck/service/ITaskPlaceSelfCheckService.java
+++ b/src/main/java/org/springblade/modules/taskPlaceSelfCheck/service/ITaskPlaceSelfCheckService.java
@@ -19,6 +19,7 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.springblade.modules.taskPlaceSelfCheck.dto.TaskPlaceSelfCheckDTO;
 import org.springblade.modules.taskPlaceSelfCheck.entity.TaskPlaceSelfCheckEntity;
+import org.springblade.modules.taskPlaceSelfCheck.excel.TaskPlaceSelfCheckExcel;
 import org.springblade.modules.taskPlaceSelfCheck.vo.TaskPlaceSelfCheckVO;
 import org.springblade.core.mp.base.BaseService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -61,4 +62,11 @@
 	Boolean savePlace(TaskPlaceSelfCheckVO taskPlaceSelfCheck) throws Exception;
 
 	Boolean updateTaskPlaceSelfCheck(TaskPlaceSelfCheckVO taskPlaceSelfCheck) throws Exception;
+
+	/**
+	 * 导出消防自查信息
+	 * @param taskPlaceSelfCheck
+	 * @return
+	 */
+	List<TaskPlaceSelfCheckExcel> exportTaskPlaceSelfCheck(TaskPlaceSelfCheckVO taskPlaceSelfCheck);
 }
diff --git a/src/main/java/org/springblade/modules/taskPlaceSelfCheck/service/impl/TaskPlaceSelfCheckServiceImpl.java b/src/main/java/org/springblade/modules/taskPlaceSelfCheck/service/impl/TaskPlaceSelfCheckServiceImpl.java
index 163a7bd..be205af 100644
--- a/src/main/java/org/springblade/modules/taskPlaceSelfCheck/service/impl/TaskPlaceSelfCheckServiceImpl.java
+++ b/src/main/java/org/springblade/modules/taskPlaceSelfCheck/service/impl/TaskPlaceSelfCheckServiceImpl.java
@@ -16,7 +16,10 @@
  */
 package org.springblade.modules.taskPlaceSelfCheck.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import liquibase.repackaged.org.apache.commons.lang3.StringUtils;
 import org.springblade.common.constant.CommonConstant;
 import org.springblade.common.constant.DictConstant;
 import org.springblade.common.param.CommonParamSet;
@@ -26,7 +29,10 @@
 import org.springblade.core.tool.utils.SpringUtil;
 import org.springblade.modules.patrol.entity.PatrolRecord;
 import org.springblade.modules.patrol.service.IPatrolRecordService;
+import org.springblade.modules.place.excel.NinePlaceExcel;
 import org.springblade.modules.place.vo.PlaceCheckVO;
+import org.springblade.modules.system.entity.DictBiz;
+import org.springblade.modules.system.service.IDictBizService;
 import org.springblade.modules.task.service.ITaskService;
 import org.springblade.modules.taskPlaceRecord.entity.TaskPlaceRecordEntity;
 import org.springblade.modules.taskPlaceRecord.service.ITaskPlaceRecordService;
@@ -35,14 +41,17 @@
 import org.springblade.modules.taskPlaceRectification.service.ITaskPlaceRectificationService;
 import org.springblade.modules.taskPlaceSelfCheck.dto.TaskPlaceSelfCheckDTO;
 import org.springblade.modules.taskPlaceSelfCheck.entity.TaskPlaceSelfCheckEntity;
+import org.springblade.modules.taskPlaceSelfCheck.excel.TaskPlaceSelfCheckExcel;
 import org.springblade.modules.taskPlaceSelfCheck.vo.TaskPlaceSelfCheckVO;
 import org.springblade.modules.taskPlaceSelfCheck.mapper.TaskPlaceSelfCheckMapper;
 import org.springblade.modules.taskPlaceSelfCheck.service.ITaskPlaceSelfCheckService;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
@@ -56,15 +65,35 @@
 @Service
 public class TaskPlaceSelfCheckServiceImpl extends ServiceImpl<TaskPlaceSelfCheckMapper, TaskPlaceSelfCheckEntity> implements ITaskPlaceSelfCheckService {
 
+
+	@Autowired
+	private IDictBizService dictBizService;
+
 	@Override
 	public IPage<TaskPlaceSelfCheckVO> selectTaskPlaceSelfCheckPage(IPage<TaskPlaceSelfCheckVO> page, TaskPlaceSelfCheckVO taskPlaceSelfCheck) {
+		List<String> strings = new ArrayList<>();
+		if (null!=taskPlaceSelfCheck.getNineType()){
+			QueryWrapper<DictBiz> queryWrapper = new QueryWrapper<>();
+			queryWrapper.eq("is_deleted",0).eq("dict_key",taskPlaceSelfCheck.getNineType()).eq("code","nineType");
+			// 先查询当前
+			DictBiz one = dictBizService.getOne(queryWrapper);
+			// 查询本身和子集的key
+			List<DictBiz> list = dictBizService.getList("nineType", one.getId());
+			if (list.size()==0){
+				strings.add(taskPlaceSelfCheck.getNineType().toString());
+			}else {
+				strings = list.stream().map(DictBiz::getDictKey).collect(Collectors.toList());
+			}
+		}
 		// 公共参数设置
 		CommonParamSet commonParamSet = new CommonParamSet().invoke(TaskPlaceSelfCheckVO.class,taskPlaceSelfCheck);
 		List<TaskPlaceSelfCheckVO> placeCheckVOS = baseMapper.selectTaskPlaceSelfCheckPage(page,
 			taskPlaceSelfCheck,
 			commonParamSet.getIsAdministrator(),
 			commonParamSet.getRegionChildCodesList(),
-			commonParamSet.getGridCodeList());
+			commonParamSet.getGridCodeList(),
+			strings);
+		List<DictBiz> nineType = dictBizService.list(Wrappers.<DictBiz>lambdaQuery().eq(DictBiz::getCode, "nineType").eq(DictBiz::getIsDeleted, 0));
 		for (TaskPlaceSelfCheckVO placeCheckVO : placeCheckVOS) {
 			int number = 0;
 			for (TaskPlaceRecordVO patrolRecord : placeCheckVO.getTaskPlaceRecordVOList()) {
@@ -73,7 +102,19 @@
 				}
 			}
 			placeCheckVO.setNumber(number);
+			for (DictBiz dictBiz : nineType) {
+				if (StringUtils.isNotBlank(placeCheckVO.getNineType()) && placeCheckVO.getNineType().equals(dictBiz.getDictKey())) {
+					if (placeCheckVO.getNineType().contains("10,11,12")) {
+						placeCheckVO.setNineType("小学校(幼儿园、校外培训机构)- " + dictBiz.getDictValue());
+					} else if (placeCheckVO.getNineType().contains("13,14,15")) {
+						placeCheckVO.setNineType("小医院(诊所、养老院)- " + dictBiz.getDictValue());
+					} else {
+						placeCheckVO.setNineType(dictBiz.getDictValue());
+					}
+				}
+			}
 		}
+		// 返回
 		return page.setRecords(placeCheckVOS);
 	}
 
@@ -160,4 +201,51 @@
 		}
 		throw new Exception("保存失败!");
 	}
+
+	/**
+	 * 导出消防自查信息
+	 * @param taskPlaceSelfCheck
+	 * @return
+	 */
+	@Override
+	public List<TaskPlaceSelfCheckExcel> exportTaskPlaceSelfCheck(TaskPlaceSelfCheckVO taskPlaceSelfCheck) {
+		List<String> strings = new ArrayList<>();
+		if (null!=taskPlaceSelfCheck.getNineType()){
+			QueryWrapper<DictBiz> queryWrapper = new QueryWrapper<>();
+			queryWrapper.eq("is_deleted",0).eq("dict_key",taskPlaceSelfCheck.getNineType()).eq("code","nineType");
+			// 先查询当前
+			DictBiz one = dictBizService.getOne(queryWrapper);
+			// 查询本身和子集的key
+			List<DictBiz> list = dictBizService.getList("nineType", one.getId());
+			if (list.size()==0){
+				strings.add(taskPlaceSelfCheck.getNineType().toString());
+			}else {
+				strings = list.stream().map(DictBiz::getDictKey).collect(Collectors.toList());
+			}
+		}
+		// 公共参数设置
+		CommonParamSet commonParamSet = new CommonParamSet().invoke(TaskPlaceSelfCheckVO.class,taskPlaceSelfCheck);
+		List<TaskPlaceSelfCheckExcel> taskPlaceSelfCheckExcels = baseMapper.exportTaskPlaceSelfCheck(
+			strings,
+			taskPlaceSelfCheck,
+			commonParamSet.getIsAdministrator(),
+			commonParamSet.getRegionChildCodesList(),
+			commonParamSet.getGridCodeList());
+		// 返回
+		List<DictBiz> nineType = dictBizService.list(Wrappers.<DictBiz>lambdaQuery().eq(DictBiz::getCode, "nineType").eq(DictBiz::getIsDeleted, 0));
+		for (TaskPlaceSelfCheckExcel ninePlaceExcel : taskPlaceSelfCheckExcels) {
+			for (DictBiz dictBiz : nineType) {
+				if (StringUtils.isNotBlank(ninePlaceExcel.getNineType()) && ninePlaceExcel.getNineType().equals(dictBiz.getDictKey())) {
+					if (ninePlaceExcel.getNineType().contains("10,11,12")) {
+						ninePlaceExcel.setNineType("小学校(幼儿园、校外培训机构)- " + dictBiz.getDictValue());
+					} else if (ninePlaceExcel.getNineType().contains("13,14,15")) {
+						ninePlaceExcel.setNineType("小医院(诊所、养老院)- " + dictBiz.getDictValue());
+					} else {
+						ninePlaceExcel.setNineType(dictBiz.getDictValue());
+					}
+				}
+			}
+		}
+		return taskPlaceSelfCheckExcels;
+	}
 }

--
Gitblit v1.9.3