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.module.cases.domain.po.CaseFeedbackHis; import cn.huge.module.cases.domain.po.CaseInfoUnfold; 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.cases.domain.po.CaseFeedback; import cn.huge.module.cust.dto.CtUserDTO; 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 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.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * @title: 纠纷办理反馈j信息表业务逻辑处理 * @Description 纠纷办理反馈j信息表业务逻辑处理 * @company hugeinfo * @author wangwh * @Time 2024-08-30 17:35:02 * @version 1.0.0 */ @Slf4j @Service @Transactional(rollbackFor = Exception.class) public class CaseFeedbackService extends ServiceImpl{ @Autowired private CaseFeedbackMapper mapper; @Autowired private UtilsClientImpl utilsClient; @Autowired private CustClientImpl custClient; @Autowired private SysClientImpl sysClient; @Autowired private CaseFeedbackHisService hisService; @Autowired private CaseInfoUnfoldService unfoldService; /** * 更新对象 * @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 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 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 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 id 条件 * @return Page */ public Map listFeedback(String id) { Map result = new HashMap<>(); QueryWrapper caseInfoUnfoldQueryWrapper = new QueryWrapper<>(); caseInfoUnfoldQueryWrapper.eq("case_id", id); CaseInfoUnfold caseInfoUnfold = unfoldService.getOne(caseInfoUnfoldQueryWrapper); result.put("manager", caseInfoUnfold.getMediator()); QueryWrapper caseFeedbackQueryWrapper = new QueryWrapper<>(); caseFeedbackQueryWrapper.eq("case_id", id); List caseFeedbackList = mapper.selectList(caseFeedbackQueryWrapper); String ownerIds = caseFeedbackList.stream().map(CaseFeedback::getId).collect(Collectors.joining("','")); ownerIds = "'"+ ownerIds + "'"; Map map = new HashMap<>(); map.put("mainId", id); map.put("ownerIds", ownerIds); List 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; } /** * 添加办理反馈 * @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.setId(utilsClient.getNewTimeId()); caseFeedback.setUpdateTime(nowDate); caseFeedback.setCreateTime(nowDate); //todo 承办、配合--查询task 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.setUpdateTime(nowDate); //todo 承办、配合--查询task mapper.updateById(caseFeedback); }catch (Exception e){ log.error("[caseFeedbackService.updateFeedback]调用失败,异常信息:"+e, e); throw new ServiceException("caseFeedbackService.updateFeedback", e); } } }