linwe
2024-08-09 8b7258c9427882bb1798f1502eaa35184c6e374e
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);
   }
}