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/eCallEventTwo/service/impl/EcCallEventTwoServiceImpl.java |  144 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 144 insertions(+), 0 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
new file mode 100644
index 0000000..a4adf87
--- /dev/null
+++ b/src/main/java/org/springblade/modules/eCallEventTwo/service/impl/EcCallEventTwoServiceImpl.java
@@ -0,0 +1,144 @@
+/*
+ *      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.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;
+
+/**
+ * 工单 服务实现类
+ *
+ * @author BladeX
+ * @since 2024-05-15
+ */
+@Service
+public class EcCallEventTwoServiceImpl extends ServiceImpl<EcCallEventTwoMapper, ECallEventTwoEntity> implements IECallEventTwoService {
+	@Autowired
+	private IDeptService deptService;
+
+	@Override
+	public IPage<ECallEventTwoVO> selectECallEventTwoPage(IPage<ECallEventTwoVO> page, ECallEventTwoVO 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);
+	}
+
+
+	/**
+	 * 查询工单
+	 *
+	 * @param orderId 工单ID
+	 * @return 工单
+	 */
+	@Override
+	public ECallEventTwoDTO selectECallEventTwoById(Long orderId) {
+		return this.baseMapper.selectECallEventTwoById(orderId);
+	}
+
+	/**
+	 * 查询工单列表
+	 *
+	 * @param eCallEventTwoDTO 工单
+	 * @return 工单集合
+	 */
+	@Override
+	public List<ECallEventTwoDTO> selectECallEventTwoList(ECallEventTwoDTO eCallEventTwoDTO) {
+		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