package cn.huge.module.ctuser.controller.client; import cn.huge.base.common.utils.ObjectUtils; import cn.huge.base.common.utils.ReturnFailUtils; import cn.huge.base.common.utils.ReturnSucUtils; import cn.huge.base.config.CurrentUser; import cn.huge.module.ctuser.domain.po.CtDept; import cn.huge.module.ctuser.domain.po.CtUnit; import cn.huge.module.ctuser.domain.po.CtUser; import cn.huge.module.ctuser.service.CtDeptService; import cn.huge.module.ctuser.service.CtUnitService; import cn.huge.module.ctuser.service.CtUserService; import cn.huge.module.cust.constant.UserBaseConsts; import cn.huge.module.cust.dto.CtUnitDTO; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartHttpServletRequest; import javax.servlet.http.HttpServletRequest; import java.util.Date; import java.util.List; import java.util.Map; /** * @title: 客户组织信息表接口api-微服务调用 * @description: 客户组织信息表接口api-微服务调用 * @company: hugeinfo * @author: liyj * @time: 2024-08-19 20:04:19 * @version: 1.0.0 */ @Slf4j @RestController @RequestMapping("/api/client/ctUnit") public class CtUnitClientController { @Autowired(required = false) private HttpServletRequest request; @Autowired private CtUnitService service; @Autowired private CtUserService ctUserService; @Autowired private CtDeptService ctDeptService; /** * 根据id查询组织信息 * @url {ctx}/api/client/ctUnit/getUnitById * @param unitId 组织编号 * @return Object */ @GetMapping("/getUnitById") public Object getUnitById(@RequestParam(value = "unitId") String unitId) { try { CtUnit ctUnit = service.getById(unitId); if (ObjectUtils.isNotEmpty(ctUnit)){ CtUnitDTO ctUnitDTO = new CtUnitDTO(); BeanUtils.copyProperties(ctUnit, ctUnitDTO); return ReturnSucUtils.getRepInfo(ctUnitDTO); }else { return ReturnFailUtils.getRepInfo("查询组织不存在!"); } } catch (Exception e) { log.error("Controller接口[CtUnitClientController.getUnitById]请求异常:"+e, e); return ReturnFailUtils.getRepInfo(); } } /** * 获取上级综治中心 * @url {ctx}/api/client/ctUnit/getParentZzzxUnit * @param unitId 组织编号 * @return Object */ @GetMapping("/getParentZzzxUnit") public Object getParentZzzxUnit(@RequestParam(value = "unitId") String unitId) { try { return ReturnSucUtils.getRepInfo(service.getParentZzzx(unitId)); } catch (Exception e) { return ReturnFailUtils.getRepInfo(e.getMessage()); } } /** * 获取本级综治中心 * @url {ctx}/api/client/ctUnit/getBjZzzx * @param unitId 组织编号 * @return Object */ @GetMapping("/getBjZzzx") public Object getBjZzzx(@RequestParam(value = "unitId") String unitId) { try { return ReturnSucUtils.getRepInfo(service.getBjZzzx(unitId)); } catch (Exception e) { return ReturnFailUtils.getRepInfo(e.getMessage()); } } /** * 查询用户所在的单位信息 * @url {ctx}/api/client/ctUnit/getUnitByUserId * @param userId 用户编号 * @return Object */ @GetMapping("/getUnitByUserId") public Object getUnitByUserId(@RequestParam(value = "userId") String userId) { try { CtUser ctUser = ctUserService.getById(userId); CtUnit ctUnit = service.getById(ctUser.getUnitId()); if (ObjectUtils.isNotEmpty(ctUnit)){ CtUnitDTO ctUnitDTO = new CtUnitDTO(); BeanUtils.copyProperties(ctUnit, ctUnitDTO); return ReturnSucUtils.getRepInfo(ctUnitDTO); }else { return ReturnFailUtils.getRepInfo("查询组织不存在!"); } } catch (Exception e) { return ReturnFailUtils.getRepInfo(); } } /** * 更新镇街的部门变为直属部门组织 * @url {ctx}/api/client/ctUnit/upZjDeptToUnit * @return Object */ @GetMapping("/upZjDeptToUnit") public Object upZjDeptToUnit() { try { Date newDate = new Date(); QueryWrapper ctUnitQueryWrapper = new QueryWrapper<>(); ctUnitQueryWrapper.eq("unit_grade", UserBaseConsts.UNIT_GRADE_3).eq("unit_type", UserBaseConsts.UNIT_TYPE_101); List zjCtUnitList = service.list(ctUnitQueryWrapper); int i = 0; for (CtUnit zjCtUnit: zjCtUnitList){ QueryWrapper ctDeptQueryWrapper = new QueryWrapper<>(); ctDeptQueryWrapper.eq("unit_id", zjCtUnit.getId()); List ctDeptList = ctDeptService.list(ctDeptQueryWrapper); for (CtDept ctDept: ctDeptList){ if (StringUtils.isNotEmpty(ctDept.getParentId()) && "root".equals(ctDept.getParentId())){ i++; }else { CtUnit ctUnit = new CtUnit(); ctUnit.setId(ctDept.getId()); ctUnit.setLevel(zjCtUnit.getLevel() + 1); ctUnit.setParentId(zjCtUnit.getId()); ctUnit.setUnitGrade(UserBaseConsts.UNIT_GRADE_3); ctUnit.setUnitFun(UserBaseConsts.UNIT_FUN_1); ctUnit.setUnitType(UserBaseConsts.UNIT_TYPE_102); ctUnit.setCourtStatus(UserBaseConsts.COURT_STATUS_0); ctUnit.setUnitName(ctDept.getName()); ctUnit.setUnitDes(zjCtUnit.getUnitName() + "-" + ctDept.getName()); ctUnit.setJoinWay(UserBaseConsts.JOIN_WAY_1); ctUnit.setProv(zjCtUnit.getProv()); ctUnit.setProvName(zjCtUnit.getProvName()); ctUnit.setCity(zjCtUnit.getCity()); ctUnit.setCityName(zjCtUnit.getCityName()); ctUnit.setArea(zjCtUnit.getArea()); ctUnit.setAreaName(zjCtUnit.getAreaName()); ctUnit.setRoad(zjCtUnit.getRoad()); ctUnit.setRoadName(zjCtUnit.getRoadName()); ctUnit.setVillage(zjCtUnit.getVillage()); ctUnit.setVillageName(zjCtUnit.getVillageName()); ctUnit.setAddr(zjCtUnit.getAddr()); ctUnit.setLng(zjCtUnit.getLng()); ctUnit.setLat(zjCtUnit.getLat()); ctUnit.setFindStatus(UserBaseConsts.FIND_STATUS_0); ctUnit.setDispStatus(UserBaseConsts.DISP_STATUS_0); ctUnit.setDeleteStatus(zjCtUnit.getDeleteStatus()); ctUnit.setCustId(zjCtUnit.getCustId()); ctUnit.setCreateTime(newDate); ctUnit.setUpdateTime(newDate); service.save(ctUnit); // 更新人 QueryWrapper ctUserQueryWrapper = new QueryWrapper<>(); ctUserQueryWrapper.eq("dept_id", ctDept.getId()); List ctUserList = ctUserService.list(ctUserQueryWrapper); for (CtUser ctUser : ctUserList) { ctUser.setUnitId(ctUnit.getId()); ctUser.setUnitName(ctUnit.getUnitName()); ctUser.setDeptId(null); ctUser.setDeptName(null); ctUserService.saveOrUpdate(ctUser); } } } } log.info("过滤"+i+"部门"); return ReturnSucUtils.getRepInfo(zjCtUnitList); } catch (Exception e) { log.error("[CtUnitClientController.upZjDeptToUnit]请求失败,异常信息:"+e, e); return ReturnFailUtils.getRepInfo(); } } /** * 根据条件查询单位信息 * @url {ctx}/api/client/ctUnit/listByTerms * @return Object */ @PostMapping("/listByTerms") public Object listByTerms(@RequestBody Map terms) { try { return ReturnSucUtils.getRepInfo(service.listTerms(terms)); } catch (Exception e) { log.error("[CtUnitClientController.listByTerms]请求失败,异常信息:"+e, e); return ReturnFailUtils.getRepInfo(); } } }