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; /** * 矛盾纠纷记录表 服务实现类 * * @author BladeX * @since 2024-03-23 */ @Service public class DisputeRecordServiceImpl extends ServiceImpl implements IDisputeRecordService { @Override public IPage selectDisputeRecordPage(IPage page, DisputeRecordVO disputeRecord) { CommonParamSet commonParamSet = new CommonParamSet<>().invoke(DisputeRecordVO.class, disputeRecord); return page.setRecords( baseMapper.selectDisputeRecordPage(page, disputeRecord, commonParamSet.getIsAdministrator(), commonParamSet.getRegionChildCodesList(), commonParamSet.getGridCodeList()) ); } /** * 矛盾纠纷记录表 自定义新增或修改 * @param disputeRecord * @return */ @Override public boolean saveOrUpdateDisputeRecord(DisputeRecordEntity disputeRecord) { // 点落面计算警格,网格,警格 GridSet invoke = new GridSet().invoke(DisputeRecordEntity.class, disputeRecord, "lng", "lat", "gridCode", "jwGridCode"); if (null!=disputeRecord.getId()){ // 更新 return updateById(disputeRecord); } // 新增 return save(disputeRecord); } /** * 矛盾纠纷记录表 自定义详情 * @param disputeRecord * @return */ @Override public DisputeRecordVO getDetail(DisputeRecordVO disputeRecord) { return baseMapper.getDetail(disputeRecord); } /** * 矛盾纠纷事件数据导入类 * @param data * @param isCovered */ @Override @Transactional(rollbackFor = Exception.class) public void importDisputeRecord(List 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 queryWrapper = new QueryWrapper<>(); queryWrapper.eq("address", disputeRecordExcel.getAddress()) .eq("event_time", disputeRecordEntity.getEventTime()) .eq("is_deleted", 0); // 查询 List list = list(queryWrapper); if (list.size()>0){ // 更新 disputeRecordEntity.setId(list.get(0).getId()); // 更新 updateById(disputeRecordEntity); }else { // 插入 save(disputeRecordEntity); } } } /** * 导出矛盾纠纷记录表 * @param disputeRecord * @return */ @Override public List exportDisputeRecordList(DisputeRecordVO disputeRecord) { CommonParamSet commonParamSet = new CommonParamSet<>().invoke(DisputeRecordVO.class, disputeRecord); return baseMapper.exportDisputeRecordList( disputeRecord, commonParamSet.getIsAdministrator(), commonParamSet.getRegionChildCodesList(), commonParamSet.getGridCodeList()); } }