From 8b7258c9427882bb1798f1502eaa35184c6e374e Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Fri, 09 Aug 2024 14:29:18 +0800
Subject: [PATCH] 短信指定楼栋发送

---
 src/main/java/org/springblade/modules/eCallEventTwo/service/impl/EcCallEventTwoServiceImpl.java |   77 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 76 insertions(+), 1 deletions(-)

diff --git a/src/main/java/org/springblade/modules/eCallEventTwo/service/impl/EcCallEventTwoServiceImpl.java b/src/main/java/org/springblade/modules/eCallEventTwo/service/impl/EcCallEventTwoServiceImpl.java
index 73f8a7e..a4adf87 100644
--- a/src/main/java/org/springblade/modules/eCallEventTwo/service/impl/EcCallEventTwoServiceImpl.java
+++ b/src/main/java/org/springblade/modules/eCallEventTwo/service/impl/EcCallEventTwoServiceImpl.java
@@ -17,15 +17,25 @@
 package org.springblade.modules.eCallEventTwo.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.common.param.CommonParamSet;
+import org.springblade.common.param.GridSet;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.modules.eCallEventTwo.dto.ECallEventTwoDTO;
 import org.springblade.modules.eCallEventTwo.entity.ECallEventTwoEntity;
 import org.springblade.modules.eCallEventTwo.mapper.EcCallEventTwoMapper;
 import org.springblade.modules.eCallEventTwo.service.IECallEventTwoService;
 import org.springblade.modules.eCallEventTwo.vo.ECallEventTwoVO;
+import org.springblade.modules.system.entity.Dept;
+import org.springblade.modules.system.service.IDeptService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.List;
+import java.util.Random;
 
 /**
  * 工单 服务实现类
@@ -35,10 +45,24 @@
  */
 @Service
 public class EcCallEventTwoServiceImpl extends ServiceImpl<EcCallEventTwoMapper, ECallEventTwoEntity> implements IECallEventTwoService {
+	@Autowired
+	private IDeptService deptService;
 
 	@Override
 	public IPage<ECallEventTwoVO> selectECallEventTwoPage(IPage<ECallEventTwoVO> page, ECallEventTwoVO eCallEventTwo) {
-		List<ECallEventTwoVO> eCallEventTwoVOS = baseMapper.selectECallEventTwoPage(page, eCallEventTwo);
+
+		// 公共参数设置
+		CommonParamSet commonParamSet = new CommonParamSet().invoke(ECallEventTwoVO.class, eCallEventTwo);
+		// 如果是委办局,直接设置成管理角色
+		if(AuthUtil.getUserRole().equals("wbj")){
+			commonParamSet.setIsAdministrator(1);
+		}
+		// 返回
+		List<ECallEventTwoVO> eCallEventTwoVOS = baseMapper.selectECallEventTwoPage(page,
+			eCallEventTwo,
+			commonParamSet.getGridCodeList(),
+			commonParamSet.getRegionChildCodesList(),
+			commonParamSet.getIsAdministrator());
 		return page.setRecords(eCallEventTwoVOS);
 	}
 
@@ -65,5 +89,56 @@
 		return this.baseMapper.selectECallEventTwoList(eCallEventTwoDTO);
 	}
 
+	@Override
+	public boolean saveTwo(ECallEventTwoVO eCallEventTwo) {
+		eCallEventTwo.setLat(eCallEventTwo.getSceneGeoLat().toString());
+		eCallEventTwo.setLng(eCallEventTwo.getSceneGeoLng().toString());
+		// 设置工单号
+		eCallEventTwo.setOrderCode(getOrderCode());
+		// 计算网格
+		if (eCallEventTwo.getLng() != null && eCallEventTwo.getLat() != null) {
+			// 点落面计算警格,网格,警格
+			GridSet invoke = new GridSet().invoke(ECallEventTwoVO.class, eCallEventTwo,
+				"lng", "lat", "applicantGrid", "jwGridCode");
+		}
+		return save(eCallEventTwo);
+	}
 
+	/**
+	 * 获取工单号
+	 * @return
+	 */
+	private String getOrderCode() {
+		String deptId1 = AuthUtil.getDeptId();
+		Dept dept = deptService.getOne(Wrappers.<Dept>lambdaQuery().eq(Dept::getId, deptId1));
+		// 生成工单号:
+		// 话务行政区划、编号类型、来电时间、来源渠道、流水号6	361100-00-202402131524-01-123456
+		// 行政区划
+		String deptId = dept.getSort().toString();
+		// 编号类型
+		String no = "00";
+		// 时间
+		String dateStr = getDateStr();
+		// 来源渠道
+		int sort = dept.getSort();
+		String source = String.format("%02d", sort);
+
+		// 流水号6位
+		String serial = getSerialStr();
+
+		String orderCode = "361100" + "-" + no + "-" + dateStr + "-" + source + "-" + serial;
+		return orderCode;
+	}
+
+	private String getSerialStr() {
+		Random random = new Random();
+		int sixDigitNumber = random.nextInt(900000) + 100000; // 生成100000到999999之间的随机数
+		return String.valueOf(sixDigitNumber);
+	}
+
+	private String getDateStr() {
+		LocalDateTime now = LocalDateTime.now();
+		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmm");
+		return now.format(formatter);
+	}
 }

--
Gitblit v1.9.3