package cn.huge.module.cases.service;
|
|
import cn.huge.base.common.exception.ServiceException;
|
import cn.huge.base.common.utils.DateUtils;
|
import cn.huge.base.common.utils.IdUtils;
|
import cn.huge.base.common.utils.ObjectUtils;
|
import cn.huge.module.cases.consts.CaseTaskConsts;
|
import cn.huge.module.cases.domain.dto.MediatorDTO;
|
import cn.huge.module.cases.domain.po.*;
|
import cn.huge.module.client.api.impl.CustClientImpl;
|
import cn.huge.module.client.api.impl.SysClientImpl;
|
import cn.huge.module.client.api.impl.UtilsClientImpl;
|
import cn.huge.module.cases.dao.mapper.CaseFeedbackMapper;
|
import cn.huge.module.cust.dto.CtUnitDTO;
|
import cn.huge.module.cust.dto.CtUserDTO;
|
import cn.huge.module.mediate.constant.CaseBaseConsts;
|
import cn.huge.module.sys.dto.FileIdInfoBaseDTO;
|
import cn.huge.module.sys.dto.FileInfoBaseDTO;
|
import cn.huge.module.sys.dto.FileTypeInfoBaseDTO;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.google.common.collect.Maps;
|
import org.apache.commons.collections.CollectionUtils;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.PageImpl;
|
import org.springframework.data.domain.PageRequest;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import javax.print.DocFlavor;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
/**
|
* @author wangwh
|
* @version 1.0.0
|
* @title: 纠纷办理反馈j信息表业务逻辑处理
|
* @Description 纠纷办理反馈j信息表业务逻辑处理
|
* @company hugeinfo
|
* @Time 2024-08-30 17:35:02
|
*/
|
@Slf4j
|
@Service
|
@Transactional(rollbackFor = Exception.class)
|
public class CaseFeedbackService extends ServiceImpl<CaseFeedbackMapper, CaseFeedback> {
|
|
@Autowired
|
private CaseFeedbackMapper mapper;
|
|
@Autowired
|
private UtilsClientImpl utilsClient;
|
|
@Autowired
|
private CustClientImpl custClient;
|
|
@Autowired
|
private SysClientImpl sysClient;
|
|
@Autowired
|
private CaseFeedbackHisService hisService;
|
|
@Autowired
|
private CaseInfoUnfoldService unfoldService;
|
|
@Autowired
|
private CaseTaskService caseTaskService;
|
|
@Autowired
|
private CaseAssistInfoService caseAssistInfoService;
|
|
@Autowired
|
private CaseMediatorService caseMediatorService;
|
|
/**
|
* 更新对象
|
*
|
* @param entity 对象
|
*/
|
public void updatecaseFeedback(CaseFeedback entity) {
|
try {
|
mapper.updatecaseFeedback(entity);
|
} catch (Exception e) {
|
log.error("[caseFeedbackService.updatecaseFeedback]调用失败,异常信息:" + e, e);
|
throw new ServiceException("caseFeedbackService.updatecaseFeedback", e);
|
}
|
}
|
|
/**
|
* 条件更新对象
|
*
|
* @param entity 对象
|
* @param terms 条件
|
*/
|
public void updatecaseFeedbackTerms(CaseFeedback entity, Map<String, Object> terms) {
|
try {
|
mapper.updatecaseFeedbackTerms(entity, terms);
|
} catch (Exception e) {
|
log.error("[caseFeedbackService.updatecaseFeedbackTerms]调用失败,异常信息:" + e, e);
|
throw new ServiceException("caseFeedbackService.updatecaseFeedbackTerms", e);
|
}
|
}
|
|
/**
|
* 根据编号物理删除
|
*
|
* @param id 查询条件集合
|
*/
|
public void deletecaseFeedback(String id) {
|
try {
|
mapper.deletecaseFeedback(id);
|
} catch (Exception e) {
|
log.error("[caseFeedbackService.deletecaseFeedback]调用失败,异常信息:" + e, e);
|
throw new ServiceException("caseFeedbackService.deletecaseFeedback", e);
|
}
|
}
|
|
/**
|
* 按条件查询
|
*
|
* @param terms 条件
|
* @return List
|
*/
|
public List<CaseFeedback> listTerms(Map<String, Object> terms) {
|
return mapper.listTerms(terms);
|
}
|
|
/**
|
* 按条件统计
|
*
|
* @param terms 条件
|
* @return long
|
*/
|
public long countTerms(Map<String, Object> terms) {
|
return mapper.countTerms(terms);
|
}
|
|
/**
|
* 按条件分页查询
|
*
|
* @param page 分页对象
|
* @param terms 条件
|
* @return Page
|
*/
|
public Page<CaseFeedback> pageQuery(PageRequest page, Map<String, Object> terms) {
|
long total = mapper.countTerms(terms);
|
List<CaseFeedback> content = mapper.pageTerms(page, terms);
|
return new PageImpl<CaseFeedback>(content, page, total);
|
}
|
|
/**
|
* 新增或更新对象
|
*
|
* @param caseFeedback 实体对象
|
*/
|
public void savecaseFeedback(CaseFeedback caseFeedback, String userId) {
|
try {
|
Date nowDate = DateUtils.getNowDate();
|
// 判断是否新增
|
if (IdUtils.checkNewId(caseFeedback.getId())) {
|
caseFeedback.setId(utilsClient.getNewTimeId());
|
caseFeedback.setCreateTime(nowDate);
|
}
|
caseFeedback.setUpdateTime(nowDate);
|
this.saveOrUpdate(caseFeedback);
|
} catch (Exception e) {
|
log.error("[caseFeedbackService.savecaseFeedback]调用失败,异常信息:" + e, e);
|
throw new ServiceException("caseFeedbackService.savecaseFeedback", e);
|
}
|
}
|
|
/**
|
* 获取办理信息
|
*
|
* @param caseId
|
* @param userId
|
* @return
|
*/
|
public Map<String, Object> getFeedbackInfo(String caseId, String caseTaskId, String userId) {
|
Map<String, Object> result = Maps.newHashMap();
|
CaseInfoUnfold caseInfoUnfold = unfoldService.getById(caseId);
|
CaseTask caseTask = caseTaskService.getById(caseTaskId);
|
// 承办部门查询扩展表
|
if (CaseTaskConsts.CASE_TASK_TYPE_1 == caseTask.getCaseTaskType()) {
|
if (ObjectUtils.isNotEmpty(caseInfoUnfold)) {
|
result.put("handleUserId", caseInfoUnfold.getMediatorId());
|
result.put("handleUnitName", caseInfoUnfold.getMediateUnitName());
|
result.put("handleUserName", caseInfoUnfold.getMediator());
|
result.put("assistUnitName", caseInfoUnfold.getAssistUnitName());
|
result.put("acceptTime", caseInfoUnfold.getAcceptTime());
|
|
// 查询协助调解员
|
CtUnitDTO ctUnitDTO = custClient.getUnitByUserId(userId);
|
QueryWrapper<CaseMediator> mediatorQueryWrapper = new QueryWrapper<>();
|
mediatorQueryWrapper.eq("case_id", caseId).eq("unit_id", ctUnitDTO.getId())
|
.eq("mediator_type", CaseBaseConsts.MEDIATOR_TYPE_1);
|
List<CaseMediator> caseMediatorList = caseMediatorService.list(mediatorQueryWrapper);
|
if (CollectionUtils.isNotEmpty(caseMediatorList)) {
|
List<MediatorDTO> mediatorDTOList = new ArrayList<>();
|
for (CaseMediator caseMediator : caseMediatorList) {
|
MediatorDTO mediatorDTO = new MediatorDTO();
|
mediatorDTO.setMediatorId(caseMediator.getMediatorId());
|
mediatorDTO.setMediator(caseMediator.getMediatorName());
|
mediatorDTOList.add(mediatorDTO);
|
}
|
result.put("assistMediatorList", mediatorDTOList);
|
}
|
}
|
} else {
|
// 配合部门查询联合处置信息表
|
CaseAssistInfo caseAssistInfo = caseAssistInfoService.getByCaseTaskId(caseTaskId);
|
result.put("handleUnitName", caseInfoUnfold.getMediateUnitName());
|
result.put("handleUserId", caseAssistInfo.getAssistUserId());
|
result.put("handleUserName", caseAssistInfo.getAssistUserName());
|
result.put("assistUnitName", caseAssistInfo.getAssistUnitName());
|
result.put("acceptTime", caseAssistInfo.getAcceptTime());
|
|
// 查询协助调解员
|
CtUnitDTO ctUnitDTO = custClient.getUnitByUserId(userId);
|
QueryWrapper<CaseMediator> mediatorQueryWrapper = new QueryWrapper<>();
|
mediatorQueryWrapper.eq("case_id", caseId).eq("unit_id", ctUnitDTO.getId())
|
.eq("mediator_type", CaseBaseConsts.MEDIATOR_TYPE_1);
|
List<CaseMediator> caseMediatorList = caseMediatorService.list(mediatorQueryWrapper);
|
if (CollectionUtils.isNotEmpty(caseMediatorList)) {
|
List<MediatorDTO> mediatorDTOList = new ArrayList<>();
|
for (CaseMediator caseMediator : caseMediatorList) {
|
MediatorDTO mediatorDTO = new MediatorDTO();
|
mediatorDTO.setMediatorId(caseMediator.getMediatorId());
|
mediatorDTO.setMediator(caseMediator.getMediatorName());
|
mediatorDTOList.add(mediatorDTO);
|
}
|
result.put("assistMediatorList", mediatorDTOList);
|
}
|
}
|
return result;
|
}
|
|
/**
|
* 获取办理反馈记录
|
*
|
* @param id 条件
|
* @return Page
|
*/
|
public Map<String, Object> listFeedback(String id) {
|
try {
|
Map<String, Object> result = new HashMap<>();
|
CaseInfoUnfold caseInfoUnfold = unfoldService.getById(id);
|
if (ObjectUtils.isNotEmpty(caseInfoUnfold)) {
|
result.put("manager", caseInfoUnfold.getMediator());
|
}
|
QueryWrapper<CaseFeedback> caseFeedbackQueryWrapper = new QueryWrapper<>();
|
caseFeedbackQueryWrapper.eq("case_id", id);
|
List<CaseFeedback> caseFeedbackList = mapper.selectList(caseFeedbackQueryWrapper);
|
|
String ownerIds = caseFeedbackList.stream().map(CaseFeedback::getId).collect(Collectors.joining("','"));
|
ownerIds = "'" + ownerIds + "'";
|
Map<String, Object> map = new HashMap<>();
|
map.put("mainId", id);
|
map.put("ownerIds", ownerIds);
|
List<FileIdInfoBaseDTO> fileInfoList = sysClient.listIdInfoByOwnerIdList(map);
|
|
for (CaseFeedback caseFeedback : caseFeedbackList) {
|
for (FileIdInfoBaseDTO fileInfo : fileInfoList) {
|
if (caseFeedback.getId().equals(fileInfo.getOwnerId())) {
|
caseFeedback.setFileInfoList(fileInfo.getFileList());
|
}
|
}
|
}
|
result.put("caseFeedbackList", caseFeedbackList);
|
return result;
|
} catch (Exception e) {
|
log.error("[caseFeedbackService.listFeedback]调用失败,异常信息:" + e, e);
|
throw new ServiceException("caseFeedbackService.listFeedback", e);
|
}
|
}
|
|
public List<CaseFeedback> listFeedback2(String id) {
|
try {
|
Map<String, Object> result = new HashMap<>();
|
CaseInfoUnfold caseInfoUnfold = unfoldService.getById(id);
|
if (ObjectUtils.isNotEmpty(caseInfoUnfold)) {
|
result.put("manager", caseInfoUnfold.getMediator());
|
}
|
QueryWrapper<CaseFeedback> caseFeedbackQueryWrapper = new QueryWrapper<>();
|
caseFeedbackQueryWrapper.eq("case_id", id);
|
List<CaseFeedback> caseFeedbackList = mapper.selectList(caseFeedbackQueryWrapper);
|
|
String ownerIds = caseFeedbackList.stream().map(CaseFeedback::getId).collect(Collectors.joining("','"));
|
ownerIds = "'" + ownerIds + "'";
|
Map<String, Object> map = new HashMap<>();
|
map.put("mainId", id);
|
map.put("ownerIds", ownerIds);
|
List<FileIdInfoBaseDTO> fileInfoList = sysClient.listIdInfoByOwnerIdList(map);
|
|
for (CaseFeedback caseFeedback : caseFeedbackList) {
|
for (FileIdInfoBaseDTO fileInfo : fileInfoList) {
|
if (caseFeedback.getId().equals(fileInfo.getOwnerId())) {
|
caseFeedback.setFileInfoList(fileInfo.getFileList());
|
}
|
}
|
}
|
return caseFeedbackList;
|
} catch (Exception e) {
|
log.error("[caseFeedbackService.listFeedback]调用失败,异常信息:" + e, e);
|
throw new ServiceException("caseFeedbackService.listFeedback", e);
|
}
|
}
|
|
/**
|
* 添加办理反馈
|
*
|
* @param caseFeedback 实体对象
|
*/
|
public void saveFeedback(CaseFeedback caseFeedback, String userId) {
|
try {
|
// 获取当前登录用户
|
CtUserDTO loginUser = custClient.clientGetUserAll(userId);
|
caseFeedback.setHandleUnitId(loginUser.getUnitId());
|
caseFeedback.setHandleUnitName(loginUser.getUnitName());
|
caseFeedback.setHandleUserId(loginUser.getId());
|
caseFeedback.setHandleUserName(loginUser.getTrueName());
|
Date nowDate = DateUtils.getNowDate();
|
caseFeedback.setUpdateTime(nowDate);
|
caseFeedback.setCreateTime(nowDate);
|
QueryWrapper<CaseInfoUnfold> caseInfoUnfoldQueryWrapper = new QueryWrapper<>();
|
caseInfoUnfoldQueryWrapper.eq("id", caseFeedback.getCaseId());
|
CaseInfoUnfold caseInfoUnfold = unfoldService.getOne(caseInfoUnfoldQueryWrapper);
|
if (caseInfoUnfold.getMediateUnitId() == null && caseInfoUnfold.getMediateUnitId().equals(loginUser.getUnitId())) {
|
caseFeedback.setHandleType(CaseTaskConsts.HANDLE_TYPE_1);
|
} else {
|
caseFeedback.setHandleType(CaseTaskConsts.HANDLE_TYPE_2);
|
}
|
this.save(caseFeedback);
|
} catch (Exception e) {
|
log.error("[caseFeedbackService.savecaseFeedback]调用失败,异常信息:" + e, e);
|
throw new ServiceException("caseFeedbackService.savecaseFeedback", e);
|
}
|
}
|
|
/**
|
* 添加办理反馈
|
*
|
* @param caseFeedback 实体对象
|
*/
|
public void updateFeedback(CaseFeedback caseFeedback, String userId) {
|
try {
|
Date nowDate = DateUtils.getNowDate();
|
// 获取当前登录用户
|
CtUserDTO loginUser = custClient.clientGetUserAll(userId);
|
CaseFeedbackHis caseFeedbackHis = new CaseFeedbackHis();
|
CaseFeedback caseFeedback1 = mapper.selectById(caseFeedback.getId());
|
BeanUtils.copyProperties(caseFeedback1, caseFeedbackHis);
|
caseFeedbackHis.setId(utilsClient.getNewTimeId());
|
caseFeedbackHis.setFeedbackId(caseFeedback1.getId());
|
caseFeedback.setUpdateTime(nowDate);
|
caseFeedback.setCreateTime(nowDate);
|
hisService.save(caseFeedbackHis);
|
|
caseFeedback.setHandleUnitId(loginUser.getUnitId());
|
caseFeedback.setHandleUnitName(loginUser.getUnitName());
|
caseFeedback.setHandleUserId(loginUser.getId());
|
caseFeedback.setHandleUserName(loginUser.getTrueName());
|
// caseFeedback.setId(utilsClient.getNewTimeId());
|
caseFeedback.setHandleType(caseFeedback1.getHandleType());
|
caseFeedback.setUpdateTime(nowDate);
|
mapper.updateById(caseFeedback);
|
} catch (Exception e) {
|
log.error("[caseFeedbackService.updateFeedback]调用失败,异常信息:" + e, e);
|
throw new ServiceException("caseFeedbackService.updateFeedback", e);
|
}
|
}
|
}
|