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.domain.po.CaseAssistApply; import cn.huge.module.cases.domain.dto.TransactResultDTO; 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.CaseInfoUnfoldMapper; import cn.huge.module.cases.domain.po.CaseInfoUnfold; import cn.huge.module.cust.dto.CtUserDTO; import cn.huge.module.mediate.constant.AuditBaseConstsEnum; import cn.huge.module.mediate.constant.CaseBaseConsts; import cn.huge.module.mediate.constant.CaseBaseConstsEnum; import cn.huge.module.sys.dto.FileIdInfoBaseDTO; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Maps; 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 java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @title: 纠纷信息扩展表业务逻辑处理 * @Description 纠纷信息扩展表业务逻辑处理 * @company hugeinfo * @author wangwh * @Time 2024-08-27 20:36:04 * @version 1.0.0 */ @Slf4j @Service @Transactional(rollbackFor = Exception.class) public class CaseInfoUnfoldService extends ServiceImpl{ @Autowired private CaseInfoUnfoldMapper mapper; @Autowired private UtilsClientImpl utilsClient; @Autowired private CustClientImpl custClient; @Autowired private CaseAssistApplyService assistApplyService; @Autowired private SysClientImpl sysClient; /** * 更新对象 * @param entity 对象 */ public void updateCaseInfoUnfold(CaseInfoUnfold entity){ try{ mapper.updateCaseInfoUnfold(entity); }catch (Exception e){ log.error("[CaseInfoUnfoldService.updateCaseInfoUnfold]调用失败,异常信息:"+e, e); throw new ServiceException("CaseInfoUnfoldService.updateCaseInfoUnfold", e); } } /** * 条件更新对象 * @param entity 对象 * @param terms 条件 */ public void updateCaseInfoUnfoldTerms(CaseInfoUnfold entity, Map terms){ try{ mapper.updateCaseInfoUnfoldTerms(entity, terms); }catch (Exception e){ log.error("[CaseInfoUnfoldService.updateCaseInfoUnfoldTerms]调用失败,异常信息:"+e, e); throw new ServiceException("CaseInfoUnfoldService.updateCaseInfoUnfoldTerms", e); } } /** * 根据编号物理删除 * @param id 查询条件集合 */ public void deleteCaseInfoUnfold(String id){ try{ mapper.deleteCaseInfoUnfold(id); }catch (Exception e){ log.error("[CaseInfoUnfoldService.deleteCaseInfoUnfold]调用失败,异常信息:"+e, e); throw new ServiceException("CaseInfoUnfoldService.deleteCaseInfoUnfold", e); } } /** * 按条件查询 * @param terms 条件 * @return List */ public List listTerms(Map terms){ return mapper.listTerms(terms); } /** * 按条件统计 * @param terms 条件 * @return long */ public long countTerms(Map terms){ return mapper.countTerms(terms); } /** * 按条件分页查询 * @param page 分页对象 * @param terms 条件 * @return Page */ public Page pageQuery(PageRequest page, Map terms){ long total = mapper.countTerms(terms); List content = mapper.pageTerms(page, terms); return new PageImpl(content, page, total); } /** * 新增或更新对象 * @param caseInfoUnfold 实体对象 */ public void saveCaseInfoUnfold(CaseInfoUnfold caseInfoUnfold){ try{ Date nowDate = DateUtils.getNowDate(); // 判断是否新增 if (IdUtils.checkNewId(caseInfoUnfold.getId())){ caseInfoUnfold.setId(utilsClient.getNewTimeId()); caseInfoUnfold.setCreateTime(nowDate); } caseInfoUnfold.setUpdateTime(nowDate); this.saveOrUpdate(caseInfoUnfold); }catch (Exception e){ log.error("[CaseInfoUnfoldService.saveCaseInfoUnfold]调用失败,异常信息:"+e, e); throw new ServiceException("CaseInfoUnfoldService.saveCaseInfoUnfold", e); } } /** * PC端-选择经办人 * @param caseId 对象 * @param userId 条件 */ public void choosePrincipal(String caseId, String userId){ try{ // 获取当前登录用户 CtUserDTO loginUser = custClient.clientGetUserAll(userId); CaseInfoUnfold CaseInfoUnfold = new CaseInfoUnfold(); CaseInfoUnfold.setId(caseId); CaseInfoUnfold.setMediatorId(loginUser.getId()); CaseInfoUnfold.setMediator(loginUser.getTrueName()); CaseInfoUnfold.setMediatorMobile(loginUser.getMobile()); mapper.updateCaseInfoUnfold(CaseInfoUnfold); }catch (Exception e){ log.error("[CaseInfoUnfoldService.choosePrincipal]调用失败,异常信息:"+e, e); throw new ServiceException("CaseInfoUnfoldService.choosePrincipal", e); } } public TransactResultDTO getTransactResult(String caseId){ //查询办理结果信息 CaseInfoUnfold caseInfoUnfold = this.getById(caseId); TransactResultDTO transactResultDTO = new TransactResultDTO(); BeanUtils.copyProperties(caseInfoUnfold, transactResultDTO); if(ObjectUtils.isNotEmpty(transactResultDTO)){ QueryWrapper caseAssistApplyQueryWrapper = new QueryWrapper<>(); caseAssistApplyQueryWrapper.select("apply_assist_unit_name").eq("case_id", caseId).eq("apply_status", 1) .eq("audit_result", AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex()); CaseAssistApply caseAssistApply = assistApplyService.getOne(caseAssistApplyQueryWrapper); if(ObjectUtils.isNotEmpty(caseAssistApply)){ transactResultDTO.setApplyAssistUnitName(caseAssistApply.getApplyAssistUnitName()); } } Map terms = new HashMap<>(); terms.put("mainId", caseId); terms.put("ownerIds", "'"+caseId+"'"); List fileIdInfoBaseDTOList = sysClient.listIdInfoByOwnerIdList(terms); if(ObjectUtils.isNotEmpty(fileIdInfoBaseDTOList)){ transactResultDTO.setFileInfoBaseDTOList(fileIdInfoBaseDTOList.get(0).getFileList()); } return transactResultDTO; } }