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.dto.CaseFlowDTO; import cn.huge.module.cases.domain.dto.TabButtonDTO; import cn.huge.module.cases.domain.dto.TabButtonInfoDTO; import cn.huge.module.client.api.impl.CustClientImpl; import cn.huge.module.client.api.impl.UtilsClientImpl; import cn.huge.module.cases.dao.mapper.CaseTaskMapper; import cn.huge.module.cases.domain.po.CaseTask; import cn.huge.module.cust.dto.CtUserDTO; import cn.huge.module.mediate.constant.CaseBaseConsts; 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.beans.factory.annotation.Autowired; 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.annotation.PostConstruct; import java.util.*; /** * @title: 纠纷任务表业务逻辑处理 * @Description 纠纷任务表业务逻辑处理 * @company hugeinfo * @author liyj * @Time 2024-09-06 15:50:06 * @version 1.0.0 */ @Slf4j @Service @Transactional(rollbackFor = Exception.class) public class CaseTaskService extends ServiceImpl{ @Autowired private CaseTaskMapper mapper; @Autowired private UtilsClientImpl utilsClient; @Autowired private CustClientImpl custClient; @Autowired private CaseSuperviseService superviseService; /** * 更新对象 * @param entity 对象 */ public void updateCaseTask(CaseTask entity){ try{ mapper.updateCaseTask(entity); }catch (Exception e){ log.error("[CaseTaskService.updateCaseTask]调用失败,异常信息:"+e, e); throw new ServiceException("CaseTaskService.updateCaseTask", e); } } /** * 条件更新对象 * @param entity 对象 * @param terms 条件 */ public void updateCaseTaskTerms(CaseTask entity, Map terms){ try{ mapper.updateCaseTaskTerms(entity, terms); }catch (Exception e){ log.error("[CaseTaskService.updateCaseTaskTerms]调用失败,异常信息:"+e, e); throw new ServiceException("CaseTaskService.updateCaseTaskTerms", e); } } /** * 根据编号物理删除 * @param id 查询条件集合 */ public void deleteCaseTask(String id){ try{ mapper.deleteCaseTask(id); }catch (Exception e){ log.error("[CaseTaskService.deleteCaseTask]调用失败,异常信息:"+e, e); throw new ServiceException("CaseTaskService.deleteCaseTask", 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 caseTask 实体对象 */ public void saveCaseTask(CaseTask caseTask){ try{ Date nowDate = DateUtils.getNowDate(); // 判断是否新增 if (IdUtils.checkNewId(caseTask.getId())){ caseTask.setId(utilsClient.getNewTimeId()); caseTask.setCreateTime(nowDate); } caseTask.setUpdateTime(nowDate); this.saveOrUpdate(caseTask); }catch (Exception e){ log.error("[CaseTaskService.saveCaseTask]调用失败,异常信息:"+e, e); throw new ServiceException("CaseTaskService.saveCaseTask", e); } } /** * web端-任务出来页面-初始化tab和按钮 * @param caseTaskId * @return */ public TabButtonDTO webGetTabButton(String caseTaskId, String userId){ try{ // 临时给前端联调数据 TabButtonDTO tabButtonDTO = new TabButtonDTO(); List tabList = new LinkedList<>(); TabButtonInfoDTO sxxq = new TabButtonInfoDTO(); sxxq.setId("sxxq"); sxxq.setName("事项详情"); tabList.add(sxxq); TabButtonInfoDTO dslxq = new TabButtonInfoDTO(); dslxq.setId("dslxq"); dslxq.setName("详情"); tabList.add(dslxq); TabButtonInfoDTO sxbl = new TabButtonInfoDTO(); sxbl.setId("sxbl"); sxbl.setName("事项办理"); tabList.add(sxbl); TabButtonInfoDTO sqjl = new TabButtonInfoDTO(); sqjl.setId("sqjl"); sqjl.setName("申请记录"); tabList.add(sqjl); TabButtonInfoDTO htsh = new TabButtonInfoDTO(); htsh.setId("htsh"); htsh.setName("回退审核"); tabList.add(htsh); TabButtonInfoDTO sbsh = new TabButtonInfoDTO(); sbsh.setId("sbsh"); sbsh.setName("上报审核"); tabList.add(sbsh); TabButtonInfoDTO jash = new TabButtonInfoDTO(); jash.setId("jash"); jash.setName("结案审核"); tabList.add(jash); TabButtonInfoDTO lhczsh = new TabButtonInfoDTO(); lhczsh.setId("lhczsh"); lhczsh.setName("联合处置申请审核"); tabList.add(lhczsh); TabButtonInfoDTO lcdb = new TabButtonInfoDTO(); lcdb.setId("lcdb"); lcdb.setName("流程督办"); tabList.add(lcdb); TabButtonInfoDTO daxx = new TabButtonInfoDTO(); daxx.setId("daxx"); daxx.setName("档案信息"); tabList.add(daxx); tabButtonDTO.setTabList(tabList); List buttonList = new LinkedList<>(); TabButtonInfoDTO tjbljl = new TabButtonInfoDTO(); tjbljl.setId("tjbljl"); tjbljl.setName("添加办理记录"); buttonList.add(tjbljl); TabButtonInfoDTO lhczsq = new TabButtonInfoDTO(); lhczsq.setId("lhczsq"); lhczsq.setName("联合处置申请"); buttonList.add(lhczsq); TabButtonInfoDTO jasq = new TabButtonInfoDTO(); jasq.setId("jasq"); jasq.setName("结案申请"); buttonList.add(jasq); TabButtonInfoDTO db = new TabButtonInfoDTO(); db.setId("db"); db.setName("督办"); buttonList.add(db); TabButtonInfoDTO sl = new TabButtonInfoDTO(); sl.setId("sl"); sl.setName("受理"); buttonList.add(sl); TabButtonInfoDTO ht = new TabButtonInfoDTO(); ht.setId("ht"); ht.setName("回退"); buttonList.add(ht); TabButtonInfoDTO zxsl = new TabButtonInfoDTO(); zxsl.setId("zxsl"); zxsl.setName("自行受理"); buttonList.add(zxsl); TabButtonInfoDTO jb = new TabButtonInfoDTO(); jb.setId("jb"); jb.setName("交办"); buttonList.add(jb); TabButtonInfoDTO sb = new TabButtonInfoDTO(); sb.setId("sb"); sb.setName("上报"); buttonList.add(sb); tabButtonDTO.setButtonList(buttonList); return tabButtonDTO; }catch (Exception e){ log.error("[CaseTaskService.webGetTabButton]调用失败,异常信息:"+e, e); throw new ServiceException("CaseTaskService.webGetTabButton", e); } } /** * web端-查询流程进度 * @param caseId 纠纷编号 * @return */ public Map webListCaseFlow(String caseId, String userId){ try{ // 临时给前端联调数据 Map result = Maps.newHashMap(); List handleCaseFlowList = new LinkedList<>(); CaseFlowDTO lfdj = new CaseFlowDTO(); lfdj.setNodeShowName("来访登记"); lfdj.setHandleUnitName("白云区新市综治中心"); lfdj.setHandleUserName("李晓明"); lfdj.setTaskType(1); lfdj.setStatus(2); lfdj.setHandleTime(new Date()); handleCaseFlowList.add(lfdj); CaseFlowDTO xtpd = new CaseFlowDTO(); xtpd.setNodeShowName("事件流转"); xtpd.setHandleUnitName("系统派单"); xtpd.setHandleTime(new Date()); xtpd.setHandleNotes("派单至:白云区新市司法所"); xtpd.setTaskType(1); xtpd.setStatus(2); handleCaseFlowList.add(xtpd); CaseFlowDTO sjlz = new CaseFlowDTO(); sjlz.setNodeShowName("事件流转"); sjlz.setHandleUnitName("白云区新市司法所"); sjlz.setHandleUserName("赵菲菲"); sjlz.setHandleTime(new Date()); sjlz.setHandleNotes("已签收"); sjlz.setTaskType(1); sjlz.setStatus(2); handleCaseFlowList.add(sjlz); CaseFlowDTO sjht = new CaseFlowDTO(); sjht.setNodeShowName("事件回退"); sjht.setHandleUnitName("白云区新市司法所"); sjht.setHandleUserName("赵菲菲"); sjht.setHandleTime(new Date()); sjht.setTaskType(2); sjht.setStatus(2); handleCaseFlowList.add(sjht); CaseFlowDTO htsh = new CaseFlowDTO(); htsh.setNodeShowName("回退审核"); htsh.setHandleUnitName("白云区新市综治中心"); htsh.setHandleUserName("李晓明"); htsh.setHandleTime(new Date()); htsh.setAuditResult("24_00004-1"); htsh.setAuditResultName("通过"); htsh.setHandleTime(new Date()); htsh.setTaskType(1); htsh.setStatus(2); handleCaseFlowList.add(htsh); CaseFlowDTO dsl = new CaseFlowDTO(); dsl.setProcessName("待受理"); dsl.setHandleUnitName("白云区新市综治中心"); dsl.setTaskType(1); dsl.setStatus(1); handleCaseFlowList.add(dsl); result.put("handleCaseFlowList", handleCaseFlowList); List assistCaseFlowList = new LinkedList<>(); CaseFlowDTO xtpd2 = new CaseFlowDTO(); xtpd2.setNodeShowName("事件流转"); xtpd2.setHandleUnitName("联合处置申请"); xtpd2.setHandleTime(new Date()); xtpd2.setHandleNotes("联合处置申请:白云区永平司法所"); xtpd2.setTaskType(1); xtpd2.setStatus(2); assistCaseFlowList.add(xtpd2); result.put("assistCaseFlowList", assistCaseFlowList); return result; }catch (Exception e){ log.error("[CaseTaskService.webGetTabButton]调用失败,异常信息:"+e, e); throw new ServiceException("CaseTaskService.webGetTabButton", e); } } /** * 按条件统计 * @param userId 用户编号 * @return long */ public Map getCountList(String userId){ CtUserDTO loginUser = custClient.clientGetUserAll(userId); Map terms = new HashMap<>(); terms.put("candeUnitId", loginUser.getUnitId()); terms.put("candeDeptId", loginUser.getDeptId()); mapper.countTaskList(terms); superviseService.countCaseSuperviseList(0,loginUser.getUnitId()); Map result = new HashMap<>(); return result; } /** * wechat端-查询流程进度 * @param caseId 纠纷编号 * @return */ public List wechatListCaseFlow(String caseId, String userId){ try{ // 临时给前端联调数据 List list = new ArrayList<>(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("case_id", caseId); queryWrapper.orderByAsc("create_time"); List caseTasks = mapper.selectList(queryWrapper); if(ObjectUtils.isNotEmpty(caseTasks)){ for (CaseTask caseTask : caseTasks) { CaseFlowDTO caseFlowDTO = new CaseFlowDTO(); BeanUtils.copyProperties(caseTask, caseFlowDTO); list.add(caseFlowDTO); } } return list; }catch (Exception e){ log.error("[CaseTaskService.wechatListCaseFlow]调用失败,异常信息:"+e, e); throw new ServiceException("CaseTaskService.wechatListCaseFlow", e); } } }