package com.panzhihua.sangeshenbian.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.netflix.servo.monitor.LongGauge;
|
import com.panzhihua.common.exceptions.ServiceException;
|
import com.panzhihua.common.model.vos.LoginUserInfoVO;
|
import com.panzhihua.common.model.vos.R;
|
import com.panzhihua.common.service.user.UserService;
|
import com.panzhihua.sangeshenbian.enums.ReportTypeEnum;
|
import com.panzhihua.sangeshenbian.model.entity.*;
|
import com.panzhihua.sangeshenbian.dao.ComplaintFlowMapper;
|
import com.panzhihua.sangeshenbian.service.*;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.context.annotation.Lazy;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.Date;
|
|
/**
|
* <p>
|
* 诉求流转记录表 服务实现类
|
* </p>
|
*
|
* @author
|
* @since 2025-02-22
|
*/
|
@Service
|
@RequiredArgsConstructor(onConstructor_ = {@Lazy})
|
public class ComplaintFlowServiceImpl extends ServiceImpl<ComplaintFlowMapper, ComplaintFlow> implements IComplaintFlowService {
|
private final IComplaintService complaintService;
|
private final IBcRegionService bcRegionService;
|
private final IComStreetService comStreetService;
|
private final IComActService comActService;
|
private final UserService userService;
|
|
@Override
|
public void createFlow(ComplaintAuditRecord record, Integer type,Long userId) {
|
//获取流程部门名称
|
String name = getFlowName(record.getReportType(), record.getSuperiorId());
|
|
ComplaintFlow complaintFlow = new ComplaintFlow();
|
complaintFlow.setComplaintId(record.getComplaintId());
|
complaintFlow.setLevel(record.getReportType());
|
complaintFlow.setName(name);
|
complaintFlow.setCreateTime(new Date(System.currentTimeMillis()));
|
complaintFlow.setType(type);
|
save(complaintFlow);
|
}
|
|
private String getFlowName(Integer reportType, Long superiorId) {
|
String name;
|
if (reportType == ReportTypeEnum.COMMUNITY.getCode()) {
|
ComAct byId = comActService.getById(superiorId);
|
name = byId.getName();
|
}else if (reportType == ReportTypeEnum.STREET.getCode()) {
|
ComStreet comStreet = comStreetService.getById(superiorId);
|
name = comStreet.getName();
|
} else if (reportType == ReportTypeEnum.CITY.getCode() || reportType == ReportTypeEnum.DISTRICT.getCode()){
|
BcRegion bcRegion = bcRegionService.getOne(new LambdaQueryWrapper<BcRegion>()
|
.eq(BcRegion::getRegionCode, superiorId));
|
name = bcRegion.getRegionName();
|
} else {
|
R<LoginUserInfoVO> userR = userService.getUserInfoByUserId(String.valueOf(superiorId));
|
if (R.isOk(userR)) {
|
throw new ServiceException("获取用户信息失败");
|
}
|
name = null == userR.getData() ? "" : userR.getData().getNickName();
|
}
|
return name;
|
}
|
}
|