From 09001482e420ec864cddba02499d9fc0e94bc44c Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Mon, 25 Mar 2024 11:24:43 +0800
Subject: [PATCH] 新增矛盾纠纷事发时间,导入,导出接口

---
 src/main/java/org/springblade/modules/disputeRecord/mapper/DisputeRecordMapper.java            |   12 +
 src/main/java/org/springblade/modules/disputeRecord/excel/DisputeRecordExcel.java              |  138 +++++++++++
 src/main/java/org/springblade/modules/disputeRecord/excel/DisputeRecordImporter.java           |   23 +
 src/main/java/org/springblade/modules/disputeRecord/service/IDisputeRecordService.java         |   17 +
 src/main/java/org/springblade/modules/disputeRecord/controller/DisputeRecordController.java    |   83 +++++-
 src/main/java/org/springblade/modules/disputeRecord/service/impl/DisputeRecordServiceImpl.java |  100 ++++++++
 src/main/java/org/springblade/modules/disputeRecord/excel/ExportDisputeRecordExcel.java        |  146 ++++++++++++
 src/main/java/org/springblade/modules/disputeRecord/entity/DisputeRecordEntity.java            |    8 
 src/main/java/org/springblade/modules/disputeRecord/mapper/DisputeRecordMapper.xml             |  151 ++++++++++++
 9 files changed, 657 insertions(+), 21 deletions(-)

diff --git a/src/main/java/org/springblade/modules/disputeRecord/controller/DisputeRecordController.java b/src/main/java/org/springblade/modules/disputeRecord/controller/DisputeRecordController.java
index e72a0af..44cd84f 100644
--- a/src/main/java/org/springblade/modules/disputeRecord/controller/DisputeRecordController.java
+++ b/src/main/java/org/springblade/modules/disputeRecord/controller/DisputeRecordController.java
@@ -1,19 +1,3 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 庄骞 (smallchill@163.com)
- */
 package org.springblade.modules.disputeRecord.controller;
 
 import io.swagger.annotations.Api;
@@ -21,20 +5,28 @@
 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.secure.BladeUser;
+import org.springblade.core.excel.util.ExcelUtil;
 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.DateUtil;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.modules.disputeRecord.excel.DisputeRecordExcel;
+import org.springblade.modules.disputeRecord.excel.DisputeRecordImporter;
+import org.springblade.modules.disputeRecord.excel.ExportDisputeRecordExcel;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.modules.disputeRecord.entity.DisputeRecordEntity;
 import org.springblade.modules.disputeRecord.vo.DisputeRecordVO;
 import org.springblade.modules.disputeRecord.wrapper.DisputeRecordWrapper;
 import org.springblade.modules.disputeRecord.service.IDisputeRecordService;
-import org.springblade.core.boot.ctrl.BladeController;
+import org.springframework.web.multipart.MultipartFile;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 矛盾纠纷记录表 控制器
@@ -147,5 +139,60 @@
 		return R.data(disputeRecordService.getDetail(disputeRecord));
 	}
 
+	/**
+	 * 导入矛盾纠纷记录表
+	 */
+	@PostMapping("import-disputeRecord")
+	@ApiOperationSupport(order = 10)
+	@ApiOperation(value = "导入矛盾纠纷记录表", notes = "传入excel")
+	public R importDisputeRecord(MultipartFile file, Integer isCovered) {
+		DisputeRecordImporter disputeRecordImporter = new DisputeRecordImporter(disputeRecordService, 1 == 1);
+		ExcelUtil.save(file, disputeRecordImporter, DisputeRecordExcel.class);
+		return R.success("操作成功");
+	}
+
+	/**
+	 * 导出矛盾纠纷记录表
+	 */
+	@GetMapping("export-disputeRecord")
+	@ApiOperationSupport(order = 11)
+	@ApiOperation(value = "导出矛盾纠纷记录表", notes = "传入disputeRecord")
+	public void exportDisputeRecord(DisputeRecordVO disputeRecord, HttpServletResponse response) {
+		List<ExportDisputeRecordExcel> list = disputeRecordService.exportDisputeRecordList(disputeRecord);
+		ExcelUtil.export(response, "矛盾纠纷记录数据" + DateUtil.time(), "矛盾纠纷记录数据表", list, ExportDisputeRecordExcel.class);
+	}
+
+	/**
+	 * 导出模板
+	 */
+	@GetMapping("/export-template")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导出模板")
+	public void exportTemplate(HttpServletResponse response) {
+		List<DisputeRecordExcel> list = new ArrayList<>();
+		DisputeRecordExcel disputeRecordExcel = new DisputeRecordExcel();
+		disputeRecordExcel.setAddress("江西省上饶市茅家岭街道***社区****");
+		disputeRecordExcel.setLng("117.12241224");
+		disputeRecordExcel.setLat("28.154412451");
+		disputeRecordExcel.setEventTime("2024-01-01 12:00:00");
+		disputeRecordExcel.setNameOne("张三");
+		disputeRecordExcel.setPhoneOne("131****1234");
+		disputeRecordExcel.setIdCardOne("360728*********0000");
+		disputeRecordExcel.setNameTwo("李四");
+		disputeRecordExcel.setPhoneTwo("132****1234");
+		disputeRecordExcel.setIdCardTwo("360728*********0001");
+		disputeRecordExcel.setDisputeType("2");
+		disputeRecordExcel.setDisputeContent("隔壁半夜放音乐太大声");
+		disputeRecordExcel.setInjuryFlag("否");
+		disputeRecordExcel.setInjuryDesc("");
+		disputeRecordExcel.setAlarmNum(3);
+		disputeRecordExcel.setSource("1");
+		disputeRecordExcel.setHandleResult("未化解");
+		// 加入集合
+		list.add(disputeRecordExcel);
+		// 写入返回
+		ExcelUtil.export(response, "矛盾纠纷记录数据模板", "矛盾纠纷记录数据表", list, DisputeRecordExcel.class);
+	}
+
 
 }
diff --git a/src/main/java/org/springblade/modules/disputeRecord/entity/DisputeRecordEntity.java b/src/main/java/org/springblade/modules/disputeRecord/entity/DisputeRecordEntity.java
index 02a24b5..682b41c 100644
--- a/src/main/java/org/springblade/modules/disputeRecord/entity/DisputeRecordEntity.java
+++ b/src/main/java/org/springblade/modules/disputeRecord/entity/DisputeRecordEntity.java
@@ -41,6 +41,12 @@
 	 */
 	@ApiModelProperty(value = "事发纬度")
 	private String lat;
+
+	/** 事发时间 */
+	@ApiModelProperty(value = "事发时间", example = "")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+	@TableField(value = "event_time")
+	private Date eventTime;
 	/**
 	 * 纠纷方1姓名
 	 */
@@ -90,7 +96,7 @@
 	 * 受伤情况描述
 	 */
 	@ApiModelProperty(value = "受伤情况描述")
-	private Integer injuryDesc;
+	private String injuryDesc;
 	/**
 	 * 报警次数
 	 */
diff --git a/src/main/java/org/springblade/modules/disputeRecord/excel/DisputeRecordExcel.java b/src/main/java/org/springblade/modules/disputeRecord/excel/DisputeRecordExcel.java
new file mode 100644
index 0000000..dd93b64
--- /dev/null
+++ b/src/main/java/org/springblade/modules/disputeRecord/excel/DisputeRecordExcel.java
@@ -0,0 +1,138 @@
+package org.springblade.modules.disputeRecord.excel;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+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 com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+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;
+import java.util.Date;
+
+/**
+ * DisputeRecordExcel
+ * 矛盾纠纷事件
+ * @author Chill
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class DisputeRecordExcel implements Serializable {
+
+	private static final long serialVersionUID = 2L;
+
+	/** 事发地址 */
+	@ExcelProperty( "事发地址")
+	private String address;
+	/**
+	 * 事发经度
+	 */
+	@ExcelProperty( "事发经度")
+	private String lng;
+	/**
+	 * 事发纬度
+	 */
+	@ExcelProperty( "事发纬度")
+	private String lat;
+
+	/**
+	 * 事发时间
+	 */
+	@ApiModelProperty(value = "创建时间", example = "")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+	@ExcelProperty( "事发时间")
+	private String eventTime;
+
+	/**
+	 * 纠纷方1姓名
+	 */
+	@ApiModelProperty(value = "纠纷方1姓名")
+	@ExcelProperty( "纠纷方1姓名")
+	private String nameOne;
+	/**
+	 * 纠纷方1电话
+	 */
+	@ApiModelProperty(value = "纠纷方1电话")
+	@ExcelProperty( "纠纷方1电话")
+	private String phoneOne;
+	/**
+	 * 纠纷方1身份证号码
+	 */
+	@ApiModelProperty(value = "纠纷方1身份证号码")
+	@ExcelProperty( "纠纷方1身份证号码")
+	private String idCardOne;
+	/**
+	 * 纠纷方2姓名
+	 */
+	@ApiModelProperty(value = "纠纷方2姓名")
+	@ExcelProperty( "纠纷方2姓名")
+	private String nameTwo;
+	/**
+	 * 纠纷方2电话
+	 */
+	@ApiModelProperty(value = "纠纷方2电话")
+	@ExcelProperty( "纠纷方2电话")
+	private String phoneTwo;
+	/**
+	 * 纠纷方2身份证号码
+	 */
+	@ApiModelProperty(value = "纠纷方2身份证号码")
+	@ExcelProperty( "纠纷方2身份证号码")
+	private String idCardTwo;
+
+	/**
+	 * 纠纷类型  业务字典:disputeType
+	 */
+	@ApiModelProperty(value = "纠纷类型  业务字典:disputeType")
+	@ExcelProperty( value = "纠纷类型(家庭婚恋纠纷/邻里纠纷/劳务劳资纠纷/经济纠纷/消防纠纷/医疗纠纷/交通纠纷/其他纠纷)",converter = ExcelDictConverter.class)
+	@ExcelDictItemLabel(type = "disputeType")
+	@ExcelDictItem(type = "disputeType")
+	private String disputeType;
+	/**
+	 * 纠纷内容
+	 */
+	@ApiModelProperty(value = "纠纷内容")
+	@ExcelProperty( "纠纷内容")
+	private String disputeContent;
+	/**
+	 * 0:否 1:是   是否受伤
+	 */
+	@ApiModelProperty(value = "0:否 1:是   是否受伤 ")
+	@ExcelProperty( "是否受伤(是/否)")
+	private String injuryFlag;
+	/**
+	 * 受伤情况描述
+	 */
+	@ApiModelProperty(value = "受伤情况描述")
+	@ExcelProperty( "受伤情况描述")
+	private String injuryDesc;
+	/**
+	 * 报警次数
+	 */
+	@ApiModelProperty(value = "报警次数")
+	@ExcelProperty( "报警次数")
+	private Integer alarmNum;
+	/**
+	 * 信息来源:1:群众报警  2:e呼即办推送 3:走访发现 业务字典:disputeSource
+	 */
+	@ApiModelProperty(value = "信息来源 业务字典:disputeSource")
+	@ExcelProperty( value = "信息来源(群众报警/e呼即办推送/走访发现/)",converter = ExcelDictConverter.class)
+	@ExcelDictItemLabel(type = "disputeSource")
+	@ExcelDictItem(type = "disputeSource")
+	private String source;
+	/**
+	 * 处理结果 1:已化解 2:未化解 3:移送e呼即办
+	 */
+	@ApiModelProperty(value = "处理结果 1:已化解 2:未化解 3:移送e呼即办")
+	@ExcelProperty( value = "处理结果(已化解/未化解/移送e呼即办)")
+	private String handleResult;
+}
+
diff --git a/src/main/java/org/springblade/modules/disputeRecord/excel/DisputeRecordImporter.java b/src/main/java/org/springblade/modules/disputeRecord/excel/DisputeRecordImporter.java
new file mode 100644
index 0000000..457b1ff
--- /dev/null
+++ b/src/main/java/org/springblade/modules/disputeRecord/excel/DisputeRecordImporter.java
@@ -0,0 +1,23 @@
+package org.springblade.modules.disputeRecord.excel;
+
+import lombok.RequiredArgsConstructor;
+import org.springblade.core.excel.support.ExcelImporter;
+import org.springblade.modules.disputeRecord.service.IDisputeRecordService;
+import java.util.List;
+
+/**
+ * 矛盾纠纷事件数据导入类
+ *
+ * @author Chill
+ */
+@RequiredArgsConstructor
+public class DisputeRecordImporter implements ExcelImporter<DisputeRecordExcel> {
+
+	private final IDisputeRecordService disputeRecordService;
+	private final Boolean isCovered;
+
+	@Override
+	public void save(List<DisputeRecordExcel> data) {
+		disputeRecordService.importDisputeRecord(data, isCovered);
+	}
+}
diff --git a/src/main/java/org/springblade/modules/disputeRecord/excel/ExportDisputeRecordExcel.java b/src/main/java/org/springblade/modules/disputeRecord/excel/ExportDisputeRecordExcel.java
new file mode 100644
index 0000000..227a016
--- /dev/null
+++ b/src/main/java/org/springblade/modules/disputeRecord/excel/ExportDisputeRecordExcel.java
@@ -0,0 +1,146 @@
+package org.springblade.modules.disputeRecord.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 com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springblade.common.excel.ExcelDictConverter;
+import org.springblade.common.excel.ExcelDictItem;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * DisputeRecordExcel
+ * 矛盾纠纷事件
+ * @author Chill
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class ExportDisputeRecordExcel implements Serializable {
+
+	private static final long serialVersionUID = 2L;
+
+	/** 事发地址 */
+	@ExcelProperty( "事发地址")
+	private String address;
+//	/**
+//	 * 事发经度
+//	 */
+//	@ExcelProperty( "事发经度")
+//	private String lng;
+//	/**
+//	 * 事发纬度
+//	 */
+//	@ExcelProperty( "事发纬度")
+//	private String lat;
+	/**
+     * 事发时间
+	 */
+	@ApiModelProperty(value = "创建时间", example = "")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+	@ExcelProperty( "事发时间")
+	private Date eventTime;
+
+	/**
+	 * 纠纷方1姓名
+	 */
+	@ApiModelProperty(value = "纠纷方1姓名")
+	@ExcelProperty( "纠纷方1姓名")
+	private String nameOne;
+	/**
+	 * 纠纷方1电话
+	 */
+	@ApiModelProperty(value = "纠纷方1电话")
+	@ExcelProperty( "纠纷方1电话")
+	private String phoneOne;
+	/**
+	 * 纠纷方1身份证号码
+	 */
+	@ApiModelProperty(value = "纠纷方1身份证号码")
+	@ExcelProperty( "纠纷方1身份证号码")
+	private String idCardOne;
+	/**
+	 * 纠纷方2姓名
+	 */
+	@ApiModelProperty(value = "纠纷方2姓名")
+	@ExcelProperty( "纠纷方2姓名")
+	private String nameTwo;
+	/**
+	 * 纠纷方2电话
+	 */
+	@ApiModelProperty(value = "纠纷方2电话")
+	@ExcelProperty( "纠纷方2电话")
+	private String phoneTwo;
+	/**
+	 * 纠纷方2身份证号码
+	 */
+	@ApiModelProperty(value = "纠纷方2身份证号码")
+	@ExcelProperty( "纠纷方2身份证号码")
+	private String idCardTwo;
+
+	/**
+	 * 纠纷类型  业务字典:disputeType
+	 */
+	@ApiModelProperty(value = "纠纷类型  业务字典:disputeType")
+	@ExcelProperty( value = "纠纷类型(家庭婚恋纠纷/邻里纠纷/劳务劳资纠纷/经济纠纷/消防纠纷/医疗纠纷/交通纠纷/其他纠纷)",converter = ExcelDictConverter.class)
+	@ExcelDictItem(type = "disputeType")
+	private String disputeType;
+	/**
+	 * 纠纷内容
+	 */
+	@ApiModelProperty(value = "纠纷内容")
+	@ExcelProperty( "纠纷内容")
+	private String disputeContent;
+	/**
+	 * 0:否 1:是   是否受伤
+	 */
+	@ApiModelProperty(value = "0:否 1:是   是否受伤 ")
+	@ExcelProperty( "是否受伤(是/否)")
+	private String injuryFlag;
+	/**
+	 * 受伤情况描述
+	 */
+	@ApiModelProperty(value = "受伤情况描述")
+	@ExcelProperty( "受伤情况描述")
+	private String injuryDesc;
+	/**
+	 * 报警次数
+	 */
+	@ApiModelProperty(value = "报警次数")
+	@ExcelProperty( "报警次数")
+	private Integer alarmNum;
+	/**
+	 * 信息来源:1:群众报警  2:e呼即办推送 3:走访发现 业务字典:disputeSource
+	 */
+	@ApiModelProperty(value = "信息来源 业务字典:disputeSource")
+	@ExcelProperty( value = "信息来源(群众报警/e呼即办推送/走访发现/)",converter = ExcelDictConverter.class)
+	@ExcelDictItem(type = "disputeSource")
+	private String source;
+	/**
+	 * 处理结果 1:已化解 2:未化解 3:移送e呼即办
+	 */
+	@ApiModelProperty(value = "处理结果 1:已化解 2:未化解 3:移送e呼即办")
+	@ExcelProperty( value = "处理结果(已化解/未化解/移送e呼即办)")
+	private String handleResult;
+
+
+	/**
+	 * 乡镇名称
+	 */
+	@ApiModelProperty(value = "乡镇名称", example = "")
+	@ExcelProperty( value = "地区")
+	private String townName;
+
+	/**
+	 * 派出所名称
+	 */
+	@ApiModelProperty(value = "派出所名称", example = "")
+	@ExcelProperty( value = "辖区派出所")
+	private String pcsName;
+}
+
diff --git a/src/main/java/org/springblade/modules/disputeRecord/mapper/DisputeRecordMapper.java b/src/main/java/org/springblade/modules/disputeRecord/mapper/DisputeRecordMapper.java
index f3b0aea..dfeb3b2 100644
--- a/src/main/java/org/springblade/modules/disputeRecord/mapper/DisputeRecordMapper.java
+++ b/src/main/java/org/springblade/modules/disputeRecord/mapper/DisputeRecordMapper.java
@@ -18,6 +18,8 @@
 
 import org.apache.ibatis.annotations.Param;
 import org.springblade.modules.disputeRecord.entity.DisputeRecordEntity;
+import org.springblade.modules.disputeRecord.excel.DisputeRecordExcel;
+import org.springblade.modules.disputeRecord.excel.ExportDisputeRecordExcel;
 import org.springblade.modules.disputeRecord.vo.DisputeRecordVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -51,4 +53,14 @@
 	 * @return
 	 */
 	DisputeRecordVO getDetail(@Param("disputeRecord") DisputeRecordVO disputeRecord);
+
+	/**
+	 * 导出矛盾纠纷记录表
+	 * @param disputeRecord
+	 * @return
+	 */
+	List<ExportDisputeRecordExcel> exportDisputeRecordList(@Param("disputeRecord") DisputeRecordVO disputeRecord,
+														   @Param("isAdministrator") Integer isAdministrator,
+														   @Param("regionChildCodesList") List<String> regionChildCodesList,
+														   @Param("gridCodeList") List<String> gridCodeList);
 }
diff --git a/src/main/java/org/springblade/modules/disputeRecord/mapper/DisputeRecordMapper.xml b/src/main/java/org/springblade/modules/disputeRecord/mapper/DisputeRecordMapper.xml
index d72a816..01d16cb 100644
--- a/src/main/java/org/springblade/modules/disputeRecord/mapper/DisputeRecordMapper.xml
+++ b/src/main/java/org/springblade/modules/disputeRecord/mapper/DisputeRecordMapper.xml
@@ -85,10 +85,10 @@
             and jdr.id_card_two like concat('%',#{disputeRecord.idCardTwo},'%')
         </if>
         <if test="disputeRecord.startTime != null and disputeRecord.startTime != ''">
-            and date_format(jdr.create_time,'%Y-%m-%d') &gt;= #{disputeRecord.startTime}
+            and date_format(jdr.event_time,'%Y-%m-%d') &gt;= #{disputeRecord.startTime}
         </if>
         <if test="disputeRecord.endTime != null and disputeRecord.endTime != ''">
-            and date_format(jdr.create_time,'%Y-%m-%d') &lt;= #{disputeRecord.endTime}
+            and date_format(jdr.event_time,'%Y-%m-%d') &lt;= #{disputeRecord.endTime}
         </if>
         <if test="disputeRecord.searchKey!=null and disputeRecord.searchKey!=''">
             and CONCAT(
@@ -221,5 +221,152 @@
         </if>
     </select>
 
+    <!--导出矛盾纠纷记录表-->
+    <select id="exportDisputeRecordList" resultType="org.springblade.modules.disputeRecord.excel.ExportDisputeRecordExcel">
+        select
+        jdr.address,
+        jdr.event_time,
+        jdr.name_one,
+        jdr.phone_one,
+        jdr.id_card_one,
+        jdr.name_two,
+        jdr.phone_two,
+        jdr.id_card_two,
+        jdr.dispute_type,
+        jdr.dispute_content,
+        case when jdr.injury_flag=1 then '是'
+        when jdr.injury_flag=0 then '否'
+        end as injury_flag,
+        jdr.injury_desc,
+        jdr.alarm_num,
+        jdr.source,
+        case when jdr.handle_result=1 then '已化解'
+        when jdr.handle_result=2 then '未化解'
+        when jdr.handle_result=3 then '移送e呼即办'
+        end as handle_result,
+        br.town_name as townName,
+        br.name as communityName,
+        jpag.pcs_name pcsName
+        from jczz_dispute_record jdr
+        LEFT JOIN jczz_grid jg on jg.grid_code = jdr.grid_code and jg.is_deleted = 0
+        LEFT JOIN jczz_police_affairs_grid jpag on jdr.jw_grid_code= jpag.jw_grid_code and jpag.is_deleted = 0
+        LEFT JOIN blade_region br on br.code = jpag.community_code
+        where jdr.is_deleted = 0
+        <if test="disputeRecord.disputeType != null">
+            and jdr.dispute_type = #{disputeRecord.disputeType}
+        </if>
+        <if test="disputeRecord.injuryFlag != null">
+            and jdr.injury_flag = #{disputeRecord.injuryFlag}
+        </if>
+        <if test="disputeRecord.source != null">
+            and jdr.source = #{disputeRecord.source}
+        </if>
+        <if test="disputeRecord.townName != null and disputeRecord.townName != ''">
+            and br.town_name like concat('%',#{disputeRecord.townName},'%')
+        </if>
+        <if test="disputeRecord.communityName != null and disputeRecord.communityName != ''">
+            and jbr.name like concat('%',#{disputeRecord.communityName},'%')
+        </if>
+        <if test="disputeRecord.pcsName != null and disputeRecord.pcsName != ''">
+            and jpag.pcs_name like concat('%',#{disputeRecord.pcsName},'%')
+        </if>
+        <if test="disputeRecord.address != null and disputeRecord.address != ''">
+            and jdr.address like concat('%',#{disputeRecord.address},'%')
+        </if>
+        <if test="disputeRecord.disputeContent != null and disputeRecord.disputeContent != ''">
+            and jdr.dispute_content like concat('%',#{disputeRecord.disputeContent},'%')
+        </if>
+        <if test="disputeRecord.nameOne != null and disputeRecord.nameOne != ''">
+            and jdr.name_one like concat('%',#{disputeRecord.nameOne},'%')
+        </if>
+        <if test="disputeRecord.phoneOne != null and disputeRecord.phoneOne != ''">
+            and jdr.phone_one like concat('%',#{disputeRecord.phoneOne},'%')
+        </if>
+        <if test="disputeRecord.idCardOne != null and disputeRecord.idCardOne != ''">
+            and jdr.id_card_one like concat('%',#{disputeRecord.idCardOne},'%')
+        </if>
+        <if test="disputeRecord.nameTwo != null and disputeRecord.nameTwo != ''">
+            and jdr.name_two like concat('%',#{disputeRecord.nameTwo},'%')
+        </if>
+        <if test="disputeRecord.phoneTwo != null and disputeRecord.phoneTwo != ''">
+            and jdr.phone_two like concat('%',#{disputeRecord.phoneOne},'%')
+        </if>
+        <if test="disputeRecord.idCardTwo != null and disputeRecord.idCardTwo != ''">
+            and jdr.id_card_two like concat('%',#{disputeRecord.idCardTwo},'%')
+        </if>
+        <if test="disputeRecord.startTime != null and disputeRecord.startTime != ''">
+            and date_format(jdr.event_time,'%Y-%m-%d') &gt;= #{disputeRecord.startTime}
+        </if>
+        <if test="disputeRecord.endTime != null and disputeRecord.endTime != ''">
+            and date_format(jdr.event_time,'%Y-%m-%d') &lt;= #{disputeRecord.endTime}
+        </if>
+        <if test="disputeRecord.searchKey!=null and disputeRecord.searchKey!=''">
+            and CONCAT(
+            ifnull(jdr.name_one,''),
+            ifnull(jdr.phone_one,''),
+            ifnull(jdr.name_two,''),
+            ifnull(jdr.phone_two,''),
+            ifnull(jdr.address,''),
+            ifnull(jdr.dispute_content,'')
+            ) like CONCAT ('%', #{disputeRecord.searchKey},'%')
+        </if>
+        <if test="isAdministrator==2">
+            <choose>
+                <when test="disputeRecord.roleName != null and disputeRecord.roleName != ''">
+                    <if test="disputeRecord.roleName=='wgy'">
+                        <choose>
+                            <when test="gridCodeList !=null and gridCodeList.size()>0">
+                                and jg.grid_code in
+                                <foreach collection="gridCodeList" item="code" open="(" close=")" separator=",">
+                                    #{code}
+                                </foreach>
+                            </when>
+                            <otherwise>
+                                and jg.grid_code in ('')
+                            </otherwise>
+                        </choose>
+                    </if>
+                    <if test="disputeRecord.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 jdr.id desc,jdr.create_time desc
+    </select>
 
 </mapper>
diff --git a/src/main/java/org/springblade/modules/disputeRecord/service/IDisputeRecordService.java b/src/main/java/org/springblade/modules/disputeRecord/service/IDisputeRecordService.java
index 78d77a3..a0795e0 100644
--- a/src/main/java/org/springblade/modules/disputeRecord/service/IDisputeRecordService.java
+++ b/src/main/java/org/springblade/modules/disputeRecord/service/IDisputeRecordService.java
@@ -2,8 +2,12 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.springblade.modules.disputeRecord.entity.DisputeRecordEntity;
+import org.springblade.modules.disputeRecord.excel.DisputeRecordExcel;
+import org.springblade.modules.disputeRecord.excel.ExportDisputeRecordExcel;
 import org.springblade.modules.disputeRecord.vo.DisputeRecordVO;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import java.util.List;
 
 /**
  * 矛盾纠纷记录表 服务类
@@ -36,4 +40,17 @@
 	 * @return
 	 */
 	DisputeRecordVO getDetail(DisputeRecordVO disputeRecord);
+
+	/**
+	 * 矛盾纠纷事件数据导入类
+	 * @author Chill
+	 */
+	void importDisputeRecord(List<DisputeRecordExcel> data, Boolean isCovered);
+
+	/**
+	 * 导出矛盾纠纷记录表
+	 * @param disputeRecord
+	 * @return
+	 */
+	List<ExportDisputeRecordExcel> exportDisputeRecordList(DisputeRecordVO disputeRecord);
 }
diff --git a/src/main/java/org/springblade/modules/disputeRecord/service/impl/DisputeRecordServiceImpl.java b/src/main/java/org/springblade/modules/disputeRecord/service/impl/DisputeRecordServiceImpl.java
index 7768389..c33ccca 100644
--- a/src/main/java/org/springblade/modules/disputeRecord/service/impl/DisputeRecordServiceImpl.java
+++ b/src/main/java/org/springblade/modules/disputeRecord/service/impl/DisputeRecordServiceImpl.java
@@ -1,15 +1,27 @@
 package org.springblade.modules.disputeRecord.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.logging.log4j.util.Strings;
 import org.springblade.common.param.CommonParamSet;
 import org.springblade.common.param.GridSet;
+import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.modules.backblast.entity.BackblastWarnHanRecEntity;
 import org.springblade.modules.disputeRecord.entity.DisputeRecordEntity;
+import org.springblade.modules.disputeRecord.excel.DisputeRecordExcel;
+import org.springblade.modules.disputeRecord.excel.ExportDisputeRecordExcel;
 import org.springblade.modules.disputeRecord.vo.DisputeRecordVO;
 import org.springblade.modules.disputeRecord.mapper.DisputeRecordMapper;
 import org.springblade.modules.disputeRecord.service.IDisputeRecordService;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
 
 /**
  * 矛盾纠纷记录表 服务实现类
@@ -59,4 +71,92 @@
 	public DisputeRecordVO getDetail(DisputeRecordVO disputeRecord) {
 		return baseMapper.getDetail(disputeRecord);
 	}
+
+	/**
+	 * 矛盾纠纷事件数据导入类
+	 * @param data
+	 * @param isCovered
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void importDisputeRecord(List<DisputeRecordExcel> data, Boolean isCovered) {
+		for (DisputeRecordExcel disputeRecordExcel : data) {
+			// 获取转换数据对象
+			DisputeRecordEntity disputeRecordEntity
+				= Objects.requireNonNull(BeanUtil.copy(disputeRecordExcel, DisputeRecordEntity.class));
+			//处理经纬度
+			GridSet gridSet
+				= new GridSet<>().invoke(DisputeRecordEntity.class, disputeRecordEntity, "lng", "lat", "gridCode", "jwGridCode");
+			//处理需要转换的数据(字典/非字典)
+			// 纠纷类型
+			if (!Strings.isBlank(disputeRecordExcel.getDisputeType())) {
+				disputeRecordEntity.setDisputeType(Integer.parseInt(disputeRecordExcel.getDisputeType()));
+			}
+			// 信息来源
+			if (!Strings.isBlank(disputeRecordExcel.getSource())) {
+				disputeRecordEntity.setSource(Integer.parseInt(disputeRecordExcel.getSource()));
+			}
+			// 受伤情况 0:否 1:是
+			if (!Strings.isBlank(disputeRecordExcel.getInjuryFlag())) {
+				if (disputeRecordExcel.getInjuryFlag().equals("是")){
+					disputeRecordEntity.setInjuryFlag(1);
+				}
+				if (disputeRecordExcel.getInjuryFlag().equals("否")){
+					disputeRecordEntity.setInjuryFlag(0);
+				}
+			}
+			// 处理结果 1:已化解 2:未化解 3:移送e呼即办
+			if (!Strings.isBlank(disputeRecordExcel.getHandleResult())) {
+				if (disputeRecordExcel.getHandleResult().equals("已化解")) {
+					disputeRecordEntity.setHandleResult(1);
+				}
+				if (disputeRecordExcel.getHandleResult().equals("未化解")) {
+					disputeRecordEntity.setHandleResult(2);
+				}
+				if (disputeRecordExcel.getHandleResult().equals("移送e呼即办")) {
+					disputeRecordEntity.setHandleResult(3);
+				}
+			}
+			// 日期处理
+			if (!Strings.isBlank(disputeRecordExcel.getEventTime())) {
+				try {
+					Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(disputeRecordExcel.getEventTime());
+					disputeRecordEntity.setEventTime(date);
+				} catch (ParseException e) {
+					e.printStackTrace();
+				}
+			}
+			// 判断是否重复
+			QueryWrapper<DisputeRecordEntity> queryWrapper = new QueryWrapper<>();
+			queryWrapper.eq("address", disputeRecordExcel.getAddress())
+				.eq("event_time", disputeRecordEntity.getEventTime())
+				.eq("is_deleted", 0);
+			// 查询
+			List<DisputeRecordEntity> list = list(queryWrapper);
+			if (list.size()>0){
+				// 更新
+				disputeRecordEntity.setId(list.get(0).getId());
+				// 更新
+				updateById(disputeRecordEntity);
+			}else {
+				// 插入
+				save(disputeRecordEntity);
+			}
+		}
+	}
+
+	/**
+	 * 导出矛盾纠纷记录表
+	 * @param disputeRecord
+	 * @return
+	 */
+	@Override
+	public List<ExportDisputeRecordExcel> exportDisputeRecordList(DisputeRecordVO disputeRecord) {
+		CommonParamSet commonParamSet = new CommonParamSet<>().invoke(DisputeRecordVO.class, disputeRecord);
+		return baseMapper.exportDisputeRecordList(
+				disputeRecord,
+				commonParamSet.getIsAdministrator(),
+				commonParamSet.getRegionChildCodesList(),
+				commonParamSet.getGridCodeList());
+	}
 }

--
Gitblit v1.9.3