From 764d883b5ea3bdc06abbec548b6df0511e567978 Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Tue, 03 Sep 2024 09:46:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/binlog' into binlog
---
src/main/java/org/springblade/modules/disputeRecord/service/impl/DisputeRecordServiceImpl.java | 193 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 193 insertions(+), 0 deletions(-)
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..47c54d5 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,33 @@
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.common.utils.SpringUtils;
+import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.modules.backblast.entity.BackblastWarnHanRecEntity;
+import org.springblade.modules.community.dto.CommunityDTO;
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.springblade.modules.system.entity.DictBiz;
+import org.springblade.modules.system.service.IDictBizService;
+import org.springblade.modules.task.entity.ECallEventEntity;
+import org.springblade.modules.task.service.IECallEventService;
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 +77,179 @@
public DisputeRecordVO getDetail(DisputeRecordVO disputeRecord) {
return baseMapper.getDetail(disputeRecord);
}
+
+ /**
+ * 矛盾纠纷事件数据导入类
+ * @param data
+ * @param isCovered
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public String importDisputeRecord(List<DisputeRecordExcel> data, Boolean isCovered) {
+ int totalNum = data.size();
+ int importNum = 0;
+ int updateNum = 0;
+ int errorNum = 0;
+ for (DisputeRecordExcel disputeRecordExcel : data) {
+ // 判断地址,时间
+ if (Strings.isBlank(disputeRecordExcel.getAddress())
+ ) {
+ errorNum++;
+ continue;
+ }
+ // 获取转换数据对象
+ 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性别 1:男 2:女
+ if (!Strings.isBlank(disputeRecordExcel.getGenderOne())) {
+ if (disputeRecordExcel.getGenderOne().contains("男")){
+ disputeRecordEntity.setGenderOne(1);
+ }
+ if (disputeRecordExcel.getGenderOne().contains("女")){
+ disputeRecordEntity.setGenderOne(2);
+ }
+ }
+ // 当事人2性别 1:男 2:女
+ if (!Strings.isBlank(disputeRecordExcel.getGenderTwo())) {
+ if (disputeRecordExcel.getGenderTwo().contains("男")){
+ disputeRecordEntity.setGenderTwo(1);
+ }
+ if (disputeRecordExcel.getGenderTwo().contains("女")){
+ disputeRecordEntity.setGenderTwo(2);
+ }
+ }
+ // 处理结果 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){
+ updateNum++;
+ if (isCovered) {
+ // 更新
+ disputeRecordEntity.setId(list.get(0).getId());
+ // 更新
+ updateById(disputeRecordEntity);
+ importNum++;
+ }
+ }else {
+ // 插入
+ save(disputeRecordEntity);
+ importNum ++;
+ }
+ }
+ StringBuilder builder = new StringBuilder("导入完成!");
+ builder.append("其中本次表格共有 ").append(totalNum).append(" 条数据,")
+ .append("成功导入 ").append(importNum).append(" 条数据。");
+ if (updateNum>0) {
+ builder.append("其中有 ").append(updateNum).append(" 条数据已存在。");
+ }
+ if (errorNum>0){
+ builder.append("共有 ").append(errorNum).append(" 条数据由于无地址信息未导入!");
+ }
+ return builder.toString();
+ }
+
+ /**
+ * 导出矛盾纠纷记录表
+ * @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());
+ }
+
+ /**
+ * e呼即办数据临时转换到矛盾纠纷
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void eCallToDis() {
+ // 查询所有的e 呼即办数据
+ IECallEventService callEventService = SpringUtils.getBean(IECallEventService.class);
+ IDictBizService dictBizService = SpringUtils.getBean(IDictBizService.class);
+ // 查询所有
+ QueryWrapper<ECallEventEntity> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("is_deleted",0);
+ List<ECallEventEntity> eCallEventEntityList = callEventService.list(queryWrapper);
+ // 遍历处理
+ for (ECallEventEntity eCallEventEntity : eCallEventEntityList) {
+ if (eCallEventEntity.getName().contains("纠纷")) {
+ DisputeRecordEntity disputeRecordEntity = new DisputeRecordEntity();
+ disputeRecordEntity.setAddress(eCallEventEntity.getAddress());
+ disputeRecordEntity.setLng(eCallEventEntity.getLng());
+ disputeRecordEntity.setLat(eCallEventEntity.getLat());
+ disputeRecordEntity.setEventTime(eCallEventEntity.getOccurrenceTime());
+ disputeRecordEntity.setDisputeContent(eCallEventEntity.getRemark());
+ disputeRecordEntity.setAddress(eCallEventEntity.getAddress());
+ // 设置处置结果,暂时放在受伤结果里面
+ disputeRecordEntity.setInjuryDesc(eCallEventEntity.getDisRes());
+ // 设置网格,警格编号
+ GridSet gridSet
+ = new GridSet().invoke(DisputeRecordEntity.class, disputeRecordEntity, "lng", "lat", "gridCode", "jwGridCode");
+ // 纠纷类型转换
+ QueryWrapper<DictBiz> wrapper = new QueryWrapper<>();
+ wrapper.eq("code", "disputeType").eq("is_deleted", 0).eq("dict_value", eCallEventEntity.getName());
+ DictBiz one = dictBizService.getOne(wrapper);
+ if (null!=one){
+ disputeRecordEntity.setDisputeType(Integer.parseInt(one.getDictKey()));
+ }else {
+ // 设置为其他纠纷
+ disputeRecordEntity.setDisputeType(8);
+ }
+ // 保存
+ save(disputeRecordEntity);
+ }
+ }
+ }
}
--
Gitblit v1.9.3