| New file |
| | |
| | | /* |
| | | * 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); |
| | | } |
| | | } |