package cn.huge.module.ctuser.service; import cn.huge.base.common.exception.ServiceException; import cn.huge.base.common.utils.*; import cn.huge.module.constant.BaseConsts; import cn.huge.module.constant.ByBaseConsts; import cn.huge.module.constant.ByUserConsts; import cn.huge.module.ctuser.dao.mapper.CtUnitMapper; import cn.huge.module.ctuser.domain.dto.GZCtUnitDTO; import cn.huge.module.ctuser.domain.po.ByRegion; import cn.huge.module.ctuser.domain.po.CtUnit; import cn.huge.module.cust.constant.UserBaseConsts; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; 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 org.springframework.web.bind.annotation.GetMapping; import javax.annotation.PostConstruct; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; /** * @title: 客户组织表业务逻辑处理 * @Description 客户组织表业务逻辑处理 * @company hugeinfo * @author liyj * @Time 2024-10-17 17:31:46 * @version 1.0.0 */ @Slf4j @Service @Transactional(rollbackFor = Exception.class) public class CtUnitService extends ServiceImpl{ @Autowired private CtUnitMapper mapper; @Autowired private ByRegionService byRegionService; /** * 更新对象 * @param entity 对象 */ public void updateCtUnit(CtUnit entity){ try{ mapper.updateCtUnit(entity); }catch (Exception e){ log.error("[CtUnitService.updateCtUnit]调用失败,异常信息:"+e, e); throw new ServiceException("CtUnitService.updateCtUnit", e); } } /** * 条件更新对象 * @param entity 对象 * @param terms 条件 */ public void updateCtUnitTerms(CtUnit entity, Map terms){ try{ mapper.updateCtUnitTerms(entity, terms); }catch (Exception e){ log.error("[CtUnitService.updateCtUnitTerms]调用失败,异常信息:"+e, e); throw new ServiceException("CtUnitService.updateCtUnitTerms", e); } } /** * 根据编号物理删除 * @param id 查询条件集合 */ public void deleteCtUnit(String id){ try{ mapper.deleteCtUnit(id); }catch (Exception e){ log.error("[CtUnitService.deleteCtUnit]调用失败,异常信息:"+e, e); throw new ServiceException("CtUnitService.deleteCtUnit", 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); } /** * 数据割接-组织信息 * @return */ public List byToGzCtUnit(){ List gzCtUnitDTOList = new ArrayList<>(); List ctUnitList = this.list(); for (CtUnit ctUnit: ctUnitList){ GZCtUnitDTO gzCtUnitDTO = new GZCtUnitDTO(); BeanUtils.copyProperties(ctUnit, gzCtUnitDTO); // 映射层级 if (ByUserConsts.UNIT_TYPE_1.equals(ctUnit.getUnitType())){ gzCtUnitDTO.setLevel(2); }else if (ByUserConsts.UNIT_TYPE_2.equals(ctUnit.getUnitType()) || ByUserConsts.UNIT_TYPE_3.equals(ctUnit.getUnitType()) || ByUserConsts.UNIT_TYPE_7.equals(ctUnit.getUnitType())){ gzCtUnitDTO.setLevel(3); }else { gzCtUnitDTO.setLevel(4); } gzCtUnitDTO.setParentId(ctUnit.getParentId()); // 映射级别 if (ByUserConsts.UNIT_TYPE_1.equals(ctUnit.getUnitType())){ gzCtUnitDTO.setUnitGrade(UserBaseConsts.UNIT_GRADE_2); }else if (ByUserConsts.UNIT_TYPE_2.equals(ctUnit.getUnitType())){ gzCtUnitDTO.setUnitGrade(UserBaseConsts.UNIT_GRADE_2); }else if (ByUserConsts.UNIT_TYPE_3.equals(ctUnit.getUnitType())){ gzCtUnitDTO.setUnitGrade(UserBaseConsts.UNIT_GRADE_3); }else if (ByUserConsts.UNIT_TYPE_4.equals(ctUnit.getUnitType())){ gzCtUnitDTO.setUnitGrade(UserBaseConsts.UNIT_GRADE_4); }else if (ByUserConsts.UNIT_TYPE_5.equals(ctUnit.getUnitType())){ gzCtUnitDTO.setUnitGrade(UserBaseConsts.UNIT_GRADE_2); }else if (ByUserConsts.UNIT_TYPE_6.equals(ctUnit.getUnitType())){ gzCtUnitDTO.setUnitGrade(UserBaseConsts.UNIT_GRADE_2); }else if (ByUserConsts.UNIT_TYPE_7.equals(ctUnit.getUnitType())){ gzCtUnitDTO.setUnitGrade(UserBaseConsts.UNIT_GRADE_3); }else if (ByUserConsts.UNIT_TYPE_9.equals(ctUnit.getUnitType())){ gzCtUnitDTO.setUnitGrade(UserBaseConsts.UNIT_GRADE_2); } // 映射组织职能 if (ByUserConsts.UNIT_TYPE_1.equals(ctUnit.getUnitType())){ gzCtUnitDTO.setUnitFun(UserBaseConsts.UNIT_FUN_2); }else { gzCtUnitDTO.setUnitFun(UserBaseConsts.UNIT_FUN_1); } // 映射组织类型 if (ByUserConsts.UNIT_TYPE_1.equals(ctUnit.getUnitType())){ gzCtUnitDTO.setUnitType(UserBaseConsts.UNIT_TYPE_201); }else if (ByUserConsts.UNIT_TYPE_2.equals(ctUnit.getUnitType())){ gzCtUnitDTO.setUnitType(UserBaseConsts.UNIT_TYPE_102); }else if (ByUserConsts.UNIT_TYPE_3.equals(ctUnit.getUnitType())){ gzCtUnitDTO.setUnitType(UserBaseConsts.UNIT_TYPE_101); }else if (ByUserConsts.UNIT_TYPE_4.equals(ctUnit.getUnitType())){ gzCtUnitDTO.setUnitType(UserBaseConsts.UNIT_TYPE_103); }else if (ByUserConsts.UNIT_TYPE_5.equals(ctUnit.getUnitType())){ gzCtUnitDTO.setUnitType(UserBaseConsts.UNIT_TYPE_107); }else if (ByUserConsts.UNIT_TYPE_6.equals(ctUnit.getUnitType())){ gzCtUnitDTO.setUnitType(UserBaseConsts.UNIT_TYPE_108); }else if (ByUserConsts.UNIT_TYPE_7.equals(ctUnit.getUnitType())){ gzCtUnitDTO.setUnitType(UserBaseConsts.UNIT_TYPE_199); }else if (ByUserConsts.UNIT_TYPE_9.equals(ctUnit.getUnitType())){ gzCtUnitDTO.setUnitType(UserBaseConsts.UNIT_TYPE_102); } // 映射是否是法院 if (ByUserConsts.COURT_STATUS_2.equals(ctUnit.getCourtStatus())) { gzCtUnitDTO.setCourtStatus(UserBaseConsts.COURT_STATUS_1); }else { gzCtUnitDTO.setCourtStatus(UserBaseConsts.COURT_STATUS_0); } // 映射组织名称 gzCtUnitDTO.setUnitName(ctUnit.getName()); // 映射描述 gzCtUnitDTO.setUnitDes(ctUnit.getDes()); // 映射是否可以找他调 if (ByUserConsts.FIND_STATUS_2.equals(ctUnit.getFindStatus())) { gzCtUnitDTO.setFindStatus(UserBaseConsts.FIND_STATUS_1); }else { gzCtUnitDTO.setFindStatus(UserBaseConsts.FIND_STATUS_0); } // 映射是否参与自动调度 if (ByUserConsts.DISP_STATUS_2.equals(ctUnit.getDispStatus())) { gzCtUnitDTO.setDispStatus(UserBaseConsts.DISP_STATUS_1); }else { gzCtUnitDTO.setDispStatus(UserBaseConsts.DISP_STATUS_0); } // 映射删除状态 if (ByBaseConsts.DELETE_STATUS_1.equals(ctUnit.getDeleteStatus())) { gzCtUnitDTO.setDeleteStatus(BaseConsts.DELETE_STATUS_0); }else { gzCtUnitDTO.setDeleteStatus(BaseConsts.DELETE_STATUS_1); } // 清除调解专长、调解范围 gzCtUnitDTO.setGoodField(null); gzCtUnitDTO.setGoodFieldName(null); gzCtUnitDTO.setCanField(null); gzCtUnitDTO.setCanFieldName(null); // 修改地域编码 gzCtUnitDTO.setArea("440111"); // 镇街级 if (StringUtils.isNotEmpty(gzCtUnitDTO.getRoad())){ QueryWrapper byRegionQueryWrapper = new QueryWrapper<>(); byRegionQueryWrapper.eq("region_id", gzCtUnitDTO.getRoad()); ByRegion byRegion = byRegionService.getOne(byRegionQueryWrapper); if (ObjectUtils.isNotEmpty(byRegion)){ gzCtUnitDTO.setRoad(byRegion.getThirdCode()); } } // 村社级 if (UserBaseConsts.UNIT_GRADE_4 == gzCtUnitDTO.getUnitGrade()){ try{ QueryWrapper byRegionQueryWrapper = new QueryWrapper<>(); String thirdName = gzCtUnitDTO.getUnitName().replace("居委会", "") .replace("人民调解委员会", ""); byRegionQueryWrapper.like("third_name", thirdName); ByRegion byRegion = byRegionService.getOne(byRegionQueryWrapper); if (ObjectUtils.isNotEmpty(byRegion)){ gzCtUnitDTO.setVillage(byRegion.getThirdCode()); gzCtUnitDTO.setVillageName(byRegion.getThirdName()); } }catch (Exception e){ log.error("报错村社:id-"+gzCtUnitDTO.getId()+",name-"+gzCtUnitDTO.getUnitName()); } } gzCtUnitDTOList.add(gzCtUnitDTO); } return gzCtUnitDTOList; } }