From f974bf528f0fd1f7316bdb3f06be8004e8db9f15 Mon Sep 17 00:00:00 2001
From: wangwh <2397901735@qq.com>
Date: Wed, 21 Aug 2024 17:24:07 +0800
Subject: [PATCH] 用户中心部分迁移1
---
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtUnitWebController.java | 60 +
dyh-service/dyh-sync/src/main/java/cn/huge/module/sync/controller/SyncController.java | 50 +
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/po/CtUnit.java | 31 +
dyh-service/dyh-sync/src/main/java/cn/huge/module/sync/service/SyncService.java | 105 +++
dyh-gateway/src/main/resources/config/application.yml | 2
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dao/mapper/CtUserMapper.java | 14
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/domain/bo/CtRoleBO.java | 6
dyh-service/dyh-sync/src/main/java/cn/huge/module/sync/domain/source/SourceCtUnit.java | 257 ++++++++
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtPostWebController.java | 28
dyh-service/dyh-cust/src/main/java/cn/huge/module/client/api/impl/UtilsClientImpl.java | 1
dyh-gateway/src/main/java/cn/huge/gateway/utils/SpringContextUtil.java | 2
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/po/CtUser.java | 24
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtDeptService.java | 51 +
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/service/CtRoleService.java | 36
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dto/UserLoginDTO.java | 2
dyh-service/dyh-base/src/main/java/cn/huge/module/cust/dto/CtUserDTO.java | 2
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/po/CtDept.java | 19
dyh-service/dyh-sync/src/main/java/cn/huge/module/sync/domain/target/TargetCtUnit.java | 232 +++++++
dyh-service/dyh-sync/src/main/java/cn/huge/module/client/api/CustClient.java | 34 +
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dao/mapper/xml/CtUseroleMapper.xml | 9
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUseroleService.java | 8
dyh-service/dyh-sync/src/main/java/cn/huge/module/client/utils/SysUtils.java | 35 +
dyh-service/dyh-sync/src/main/java/cn/huge/module/sync/dao/mapper/SyncMapper.java | 40 +
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/controller/web/CtRoleWebController.java | 20
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dao/mapper/CtUseroleMapper.java | 7
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtUserWebController.java | 193 ++++++
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUserService.java | 76 ++
dyh-service/dyh-sync/src/main/java/cn/huge/module/client/api/impl/CustClientImpl.java | 68 ++
dyh-service/dyh-sync/src/main/java/cn/huge/module/sync/dao/mapper/xml/SyncMapper.xml | 79 ++
dyh-service/dyh-sync/src/main/java/cn/huge/module/client/constant/SysConsts.java | 35 +
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/dao/mapper/CtRoleMapper.java | 12
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/domain/po/CtRole.java | 2
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dao/mapper/xml/CtUserMapper.xml | 82 ++
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/dao/mapper/xml/CtRoleMapper.xml | 4
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtPostService.java | 5
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java | 138 ++++
36 files changed, 1,718 insertions(+), 51 deletions(-)
diff --git a/dyh-gateway/src/main/java/cn/huge/gateway/utils/SpringContextUtil.java b/dyh-gateway/src/main/java/cn/huge/gateway/utils/SpringContextUtil.java
index 22c2c46..e6defca 100644
--- a/dyh-gateway/src/main/java/cn/huge/gateway/utils/SpringContextUtil.java
+++ b/dyh-gateway/src/main/java/cn/huge/gateway/utils/SpringContextUtil.java
@@ -53,7 +53,7 @@
public static Boolean checkDev(){
String activeProfile = getActiveProfile();
if (DEV.equals(activeProfile)){
- return false;
+ return true;
}else{
return false;
}
diff --git a/dyh-gateway/src/main/resources/config/application.yml b/dyh-gateway/src/main/resources/config/application.yml
index f264411..ba6570c 100644
--- a/dyh-gateway/src/main/resources/config/application.yml
+++ b/dyh-gateway/src/main/resources/config/application.yml
@@ -54,4 +54,4 @@
#refreshToken过期时间:13小时,比token时间长一点
expire-time: 46800000
#不进行token拦截
- auth-skip-urls: /dyh-sys/api/v1/fileInfo/show,/dyh-sys/api/v1/fileInfo/down,/api/v1/ctAccount/login,/dyh-cust/api/weChat/paAccount,/dyh-sys/api/weChat/paHotNews/listShow,/dyh-mediate/api/weChat/paCaseInfo/mediatePower,/dyh-mediate/api/v1/caseOut/rmtj/selectExcels,/dyh-mediate/api/v1/caseOut/rmtj/selectFiles,/dyh-mediate/api/v1/caseInfo/exportListToExcel,/dyh-sys/dingTalk/api/fileInfo/ocrIdcard,/dyh-mediate/api/v1/caseOut/rmtj/outQueryEnd,/dyh-mediate/api/v1/caseInfo/reportStatisticsListToExcel,/dyh-mediate/api/v1/caseInfo/tjExcels,/dyh-mediate/api/v1/caseInfo/tjFiles,/dyh-mediate/api/analyseScreen/unitCount,/dyh-mediate/api/analyseScreen/mediatorCount,/dyh-mediate/api/analyseScreen/mediationCount,/dyh-mediate/api/analyseScreen/caseReasonRate,/dyh-mediate/api/analyseScreen/mediatorReasonRate,/dyh-mediate/api/analyseScreen/monthCount,/dyh-mediate/api/analyseScreen/findAllUnit,/dyh-mediate/api/analyseScreen/findAllCount,/dyh-mediate/api/analyseScreen/dynamicDetail,/dyh-mediate/api/v1/caseInfo/exportAiDoc
\ No newline at end of file
+ auth-skip-urls: /dyh-sys/api/v1/sync/universalSync
\ No newline at end of file
diff --git a/dyh-service/dyh-base/src/main/java/cn/huge/module/cust/dto/CtUserDTO.java b/dyh-service/dyh-base/src/main/java/cn/huge/module/cust/dto/CtUserDTO.java
index 9184af1..e39250e 100644
--- a/dyh-service/dyh-base/src/main/java/cn/huge/module/cust/dto/CtUserDTO.java
+++ b/dyh-service/dyh-base/src/main/java/cn/huge/module/cust/dto/CtUserDTO.java
@@ -143,7 +143,7 @@
/**
* 组织类型,1:指挥中心,2:职能部门,3:镇街,:4:村居社区,5:行、专业,6:企、事业,7:演示测试,9:其他
*/
- private String unitType;
+ private Integer unitType;
/**
* 部门编号
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/client/api/impl/UtilsClientImpl.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/client/api/impl/UtilsClientImpl.java
index d8ff461..bc25875 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/client/api/impl/UtilsClientImpl.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/client/api/impl/UtilsClientImpl.java
@@ -49,4 +49,5 @@
throw new ServiceException("UtilsClientImpl.getNewTimeId", e);
}
}
+
}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/controller/web/CRoleWebController.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/controller/web/CtRoleWebController.java
similarity index 91%
rename from dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/controller/web/CRoleWebController.java
rename to dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/controller/web/CtRoleWebController.java
index fb846c5..5687e41 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/controller/web/CRoleWebController.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/controller/web/CtRoleWebController.java
@@ -1,9 +1,9 @@
-package cn.huge.module.ctrole.controller;
+package cn.huge.module.ctrole.controller.web;
import cn.huge.base.common.utils.ReturnFailUtils;
import cn.huge.base.common.utils.ReturnSucUtils;
-import cn.huge.module.ctrole.domain.po.CRole;
-import cn.huge.module.ctrole.service.CRoleService;
+import cn.huge.module.ctrole.domain.po.CtRole;
+import cn.huge.module.ctrole.service.CtRoleService;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@@ -15,8 +15,6 @@
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
/**
* @title: 角色表接口api
@@ -29,13 +27,13 @@
@Slf4j
@RestController
@RequestMapping("/api/web/cRole")
-public class CRoleWebController {
+public class CtRoleWebController {
@Autowired(required = false)
private HttpServletRequest request;
@Autowired
- private CRoleService service;
+ private CtRoleService service;
/**
* 获取请求URL参数
@@ -123,7 +121,7 @@
Map<String, Object> terms = getParameter();
Sort sort = Sort.by(Sort.Direction.DESC, "create_time");
PageRequest pageRequest = PageRequest.of(page-1, size, sort);
- Page<CRole> cRolePage = service.pageQuery(pageRequest, terms);
+ Page<CtRole> cRolePage = service.pageQuery(pageRequest, terms);
return ReturnSucUtils.getRepInfo( "处理成功", cRolePage);
} catch (Exception e) {
return ReturnFailUtils.getRepInfo();
@@ -164,13 +162,13 @@
/**
* 新增或更新对象
* @url {ctx}/api/web/cRole/saveCRole
- * @param cRole 实体对象
+ * @param ctRole 实体对象
* @return Object
*/
@PostMapping("/saveCRole")
- public Object saveCRole(@RequestBody CRole cRole) {
+ public Object saveCRole(@RequestBody CtRole ctRole) {
try {
- service.saveCRole(cRole);
+ service.saveCRole(ctRole);
return ReturnSucUtils.getRepInfo();
} catch (Exception e) {
return ReturnFailUtils.getRepInfo();
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/dao/mapper/CRoleMapper.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/dao/mapper/CtRoleMapper.java
similarity index 74%
rename from dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/dao/mapper/CRoleMapper.java
rename to dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/dao/mapper/CtRoleMapper.java
index 715752b..1a8ff91 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/dao/mapper/CRoleMapper.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/dao/mapper/CtRoleMapper.java
@@ -1,6 +1,6 @@
package cn.huge.module.ctrole.dao.mapper;
-import cn.huge.module.ctrole.domain.po.CRole;
+import cn.huge.module.ctrole.domain.po.CtRole;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.PageRequest;
@@ -18,20 +18,20 @@
* @version 1.0.0
*/
@Repository
-public interface CRoleMapper extends BaseMapper<CRole>{
+public interface CtRoleMapper extends BaseMapper<CtRole>{
/**
* 更新对象
* @param entity 对象
*/
- void updateCRole(@Param("entity") CRole entity);
+ void updateCRole(@Param("entity") CtRole entity);
/**
* 条件更新对象
* @param entity 对象
* @param terms 条件
*/
- void updateCRoleTerms(@Param("entity") CRole entity, @Param("terms") Map<String, Object> terms);
+ void updateCRoleTerms(@Param("entity") CtRole entity, @Param("terms") Map<String, Object> terms);
/**
* 根据编号物理删除
@@ -44,7 +44,7 @@
* @param terms 查询条件集合
* @return List<CRole>
*/
- List<CRole> listTerms(@Param("terms") Map<String, Object> terms);
+ List<CtRole> listTerms(@Param("terms") Map<String, Object> terms);
/**
* 按条件查询实体总数
@@ -59,6 +59,6 @@
* @param terms 查询条件集合
* @return List<CRole>
*/
- List<CRole> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
+ List<CtRole> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/dao/mapper/xml/CRoleMapper.xml b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/dao/mapper/xml/CtRoleMapper.xml
similarity index 98%
rename from dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/dao/mapper/xml/CRoleMapper.xml
rename to dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/dao/mapper/xml/CtRoleMapper.xml
index 282ae9b..e762a62 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/dao/mapper/xml/CRoleMapper.xml
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/dao/mapper/xml/CtRoleMapper.xml
@@ -8,9 +8,9 @@
* @time:2024-08-19 20:04:19
* @version 1.0.0
-->
-<mapper namespace="cn.huge.module.ctrole.dao.mapper.CRoleMapper">
+<mapper namespace="cn.huge.module.ctrole.dao.mapper.CtRoleMapper">
<!-- 结果集 -->
- <resultMap id="dataResult" type="cn.huge.module.ctrole.domain.po.CRole">
+ <resultMap id="dataResult" type="cn.huge.module.ctrole.domain.po.CtRole">
<result property="id" column="id"/>
<result property="roleCode" column="role_code"/>
<result property="name" column="name"/>
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/domain/bo/CRoleBO.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/domain/bo/CtRoleBO.java
similarity index 63%
rename from dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/domain/bo/CRoleBO.java
rename to dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/domain/bo/CtRoleBO.java
index 41b5921..fb70601 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/domain/bo/CRoleBO.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/domain/bo/CtRoleBO.java
@@ -1,6 +1,6 @@
package cn.huge.module.ctrole.domain.bo;
-import cn.huge.module.ctrole.domain.po.CRole;
+import cn.huge.module.ctrole.domain.po.CtRole;
/**
* @title: 角色表业务扩展类
@@ -9,9 +9,9 @@
* @author: liyj
* @time: 2024-08-19 20:04:19
* @version: 1.0.0
- * @see cn.huge.module.ctrole.domain.po.CRole
+ * @see CtRole
*/
-public class CRoleBO extends CRole {
+public class CtRoleBO extends CtRole {
}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/domain/po/CRole.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/domain/po/CtRole.java
similarity index 98%
rename from dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/domain/po/CRole.java
rename to dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/domain/po/CtRole.java
index 9d56009..cce000e 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/domain/po/CRole.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/domain/po/CtRole.java
@@ -18,7 +18,7 @@
*/
@TableName(value = "dyh_ct_role")
@Data
-public class CRole {
+public class CtRole {
/**
* 角色编号
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/service/CRoleService.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/service/CtRoleService.java
similarity index 75%
rename from dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/service/CRoleService.java
rename to dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/service/CtRoleService.java
index 96bf19a..a6ba27a 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/service/CRoleService.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/service/CtRoleService.java
@@ -4,19 +4,17 @@
import cn.huge.base.common.utils.DateUtils;
import cn.huge.base.common.utils.IdUtils;
import cn.huge.module.client.api.impl.UtilsClientImpl;
-import cn.huge.module.ctrole.dao.mapper.CRoleMapper;
-import cn.huge.module.ctrole.domain.po.CRole;
+import cn.huge.module.ctrole.dao.mapper.CtRoleMapper;
+import cn.huge.module.ctrole.domain.po.CtRole;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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.Date;
import java.util.List;
import java.util.Map;
@@ -32,10 +30,10 @@
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
-public class CRoleService extends ServiceImpl<CRoleMapper, CRole>{
+public class CtRoleService extends ServiceImpl<CtRoleMapper, CtRole>{
@Autowired
- private CRoleMapper mapper;
+ private CtRoleMapper mapper;
@Autowired
private UtilsClientImpl utilsClient;
@@ -44,7 +42,7 @@
* 更新对象
* @param entity 对象
*/
- public void updateCRole(CRole entity){
+ public void updateCRole(CtRole entity){
try{
mapper.updateCRole(entity);
}catch (Exception e){
@@ -58,7 +56,7 @@
* @param entity 对象
* @param terms 条件
*/
- public void updateCRoleTerms(CRole entity, Map<String, Object> terms){
+ public void updateCRoleTerms(CtRole entity, Map<String, Object> terms){
try{
mapper.updateCRoleTerms(entity, terms);
}catch (Exception e){
@@ -85,7 +83,7 @@
* @param terms 条件
* @return List
*/
- public List<CRole> listTerms(Map<String, Object> terms){
+ public List<CtRole> listTerms(Map<String, Object> terms){
return mapper.listTerms(terms);
}
@@ -104,26 +102,26 @@
* @param terms 条件
* @return Page
*/
- public Page<CRole> pageQuery(PageRequest page, Map<String, Object> terms){
+ public Page<CtRole> pageQuery(PageRequest page, Map<String, Object> terms){
long total = mapper.countTerms(terms);
- List<CRole> content = mapper.pageTerms(page, terms);
- return new PageImpl<CRole>(content, page, total);
+ List<CtRole> content = mapper.pageTerms(page, terms);
+ return new PageImpl<CtRole>(content, page, total);
}
/**
* 新增或更新对象
- * @param cRole 实体对象
+ * @param ctRole 实体对象
*/
- public void saveCRole(CRole cRole){
+ public void saveCRole(CtRole ctRole){
try{
Date nowDate = DateUtils.getNowDate();
// 判断是否新增
- if (IdUtils.checkNewId(cRole.getId())){
- cRole.setId(utilsClient.getNewTimeId());
- cRole.setCreateTime(nowDate);
+ if (IdUtils.checkNewId(ctRole.getId())){
+ ctRole.setId(utilsClient.getNewTimeId());
+ ctRole.setCreateTime(nowDate);
}
- cRole.setUpdateTime(nowDate);
- this.saveOrUpdate(cRole);
+ ctRole.setUpdateTime(nowDate);
+ this.saveOrUpdate(ctRole);
}catch (Exception e){
log.error("[CRoleService.saveCRole]调用失败,异常信息:"+e, e);
throw new ServiceException("CRoleService.saveCRole", e);
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtPostWebController.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtPostWebController.java
index 11b2aed..fc1f1c1 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtPostWebController.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtPostWebController.java
@@ -2,8 +2,12 @@
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.CtPost;
+import cn.huge.module.ctuser.domain.po.CtUser;
import cn.huge.module.ctuser.service.CtPostService;
+import cn.huge.module.ctuser.service.CtUserService;
+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;
@@ -14,6 +18,7 @@
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
+import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -36,6 +41,9 @@
@Autowired
private CtPostService service;
+
+ @Autowired
+ private CtUserService ctUserService;
/**
* 获取请求URL参数
@@ -172,4 +180,24 @@
}
}
+ /**
+ * 根据单位编号查询所有岗位
+ * @url {ctx}/api/v1/ctPost/getByUnitId
+ * @param userId 登录用户编号
+ * @return Object
+ * @throws Exception
+ */
+ @GetMapping("/getByUnitId")
+ public Object getByUnitId(@CurrentUser String userId) {
+ try {
+ // 获取当前登录用户
+ CtUser ctUser = ctUserService.getById(userId);
+ QueryWrapper<CtPost> ctPostQueryWrapper = new QueryWrapper<>();
+ ctPostQueryWrapper.eq("unit_id", ctUser.getUnitId());
+ List<CtPost> ctPostList = service.list(ctPostQueryWrapper);
+ return ReturnSucUtils.getRepInfo(ctPostList);
+ } catch (Exception e) {
+ return ReturnFailUtils.getRepInfo();
+ }
+ }
}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtUnitWebController.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtUnitWebController.java
index 058d125..2908cf9 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtUnitWebController.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtUnitWebController.java
@@ -1,9 +1,12 @@
-package cn.huge.module.ctuser.controller;
+package cn.huge.module.ctuser.controller.web;
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.CtUnit;
+import cn.huge.module.ctuser.domain.po.CtUser;
import cn.huge.module.ctuser.service.CtUnitService;
+import cn.huge.module.ctuser.service.CtUserService;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@@ -14,6 +17,7 @@
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
+import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -36,6 +40,9 @@
@Autowired
private CtUnitService service;
+ @Autowired
+ private CtUserService ctUserService;
+
/**
* 获取请求URL参数
@@ -307,4 +314,55 @@
}
}
+ /**
+ * 批量新增-数据迁移
+ * @url {ctx}/api/web/ctUnit/saveCtUnitList
+ * @param targetCtUnitList 实体对象
+ * @return Object
+ */
+ @PostMapping("/saveCtUnitList")
+ public Object saveCtUnitList(@RequestBody List<CtUnit> targetCtUnitList) {
+ try {
+ service.saveBatch(targetCtUnitList);
+ return ReturnSucUtils.getRepInfo();
+ } catch (Exception e) {
+ return ReturnFailUtils.getRepInfo();
+ }
+ }
+
+ /**
+ * 获取所有组织(包含所有下级子组织)树形结构
+ * @url {ctx}/api/v1/ctUnit/listUnitTree
+ * @param userId 登录用户标识称
+ * @return Object
+ */
+ @GetMapping("/listUnitTree")
+ public Object listUnitTree(@CurrentUser String userId) {
+ try {
+ // 获取当前登录用户
+ CtUser ctUser = ctUserService.getById(userId);
+ // 查询当前登录用户下的所有单位
+ List<CtUnit> ctUnits = service.listUnitTree(ctUser.getCustId(), ctUser.getUnitId());
+ return ReturnSucUtils.getRepInfo( "查询成功", ctUnits);
+ } catch (Exception e) {
+ return ReturnFailUtils.getRepInfo( "查询失败", null);
+ }
+ }
+
+ /**
+ * 获取组织详情(包含组织下的部门详情)
+ * @url {ctx}/api/v1/ctUnit/getUnitAndDept?id=
+ * @param id 组织编号
+ * @return Object
+ */
+ @GetMapping("/getUnitAndDept")
+ public Object getUnitAndDept(@RequestParam(value = "id") String id) {
+ try {
+ //查询该用户组织和部门
+ CtUnit ctUnit = service.getUnitAndDept(id);
+ return ReturnSucUtils.getRepInfo( "查询成功", ctUnit);
+ } catch (Exception e) {
+ return ReturnFailUtils.getRepInfo( "查询失败", null);
+ }
+ }
}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtUserWebController.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtUserWebController.java
index dbfbcb0..7417445 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtUserWebController.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtUserWebController.java
@@ -1,12 +1,22 @@
-package cn.huge.module.ctuser.controller;
+package cn.huge.module.ctuser.controller.web;
+import cn.huge.base.common.dto.SelectTermDTO;
+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.common.utils.SelectTermUtils;
import cn.huge.base.config.CurrentUser;
-import cn.huge.module.ctuser.domain.po.CtUser;
-import cn.huge.module.ctuser.service.CtUserService;
+import cn.huge.module.ctrole.domain.po.CtRole;
+import cn.huge.module.ctrole.service.CtRoleService;
+import cn.huge.module.ctuser.domain.po.*;
+import cn.huge.module.ctuser.service.*;
+import cn.huge.module.cust.constant.RoleBaseEnum;
+import cn.huge.module.cust.constant.UserBaseConsts;
+import cn.huge.module.cust.dto.CtUserDTO;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
@@ -15,6 +25,8 @@
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -37,6 +49,24 @@
@Autowired
private CtUserService service;
+
+ @Autowired
+ private CtUnitService ctUnitService;
+
+ @Autowired
+ private CtRoleService ctRoleService;
+
+ @Autowired
+ private CtDeptService ctDeptService;
+
+ @Autowired
+ private CtUseroleService ctUseroleService;
+
+ @Autowired
+ private CtAccountService ctAccountService;
+
+ @Autowired
+ private CtUsepostService ctUsepostService;
/**
* 获取请求URL参数
@@ -259,4 +289,161 @@
}
}
+ /**
+ * 获取人员信息列表查询条件
+ * @url {ctx}/api/v1/ctUser/listSelectTerm
+ * @return userId 登录用户标识称
+ * @return Object
+ * @throws Exception
+ */
+ @GetMapping("/listSelectTerm")
+ public Object listSelectTerm(@CurrentUser String userId) {
+ try {
+ Map<String, Object> result = Maps.newHashMap();
+ // 获取当前登录用户
+ CtUser loginUser = service.getById(userId);
+ // 组织条件
+ QueryWrapper<CtUnit> ctUnitQueryWrapper = new QueryWrapper<>();
+ ctUnitQueryWrapper.eq("cust_id", loginUser.getCustId());
+ List<CtUnit> ctUnits = ctUnitService.list(ctUnitQueryWrapper);
+ List<SelectTermDTO> unitSelectTerms = new ArrayList<>();
+ for (CtUnit ctUnit: ctUnits) {
+ SelectTermDTO unitSelectTerm = new SelectTermDTO();
+ unitSelectTerm.setValue(ctUnit.getId());
+ unitSelectTerm.setLabel(ctUnit.getUnitName());
+ unitSelectTerm.setParentId(ctUnit.getParentId());
+ unitSelectTerms.add(unitSelectTerm);
+
+ // 部门条件
+ QueryWrapper<CtDept> ctDeptQueryWrapper = new QueryWrapper<>();
+ ctDeptQueryWrapper.eq("unit_id", ctUnit.getId());
+ List<CtDept> ctDepts = ctDeptService.list(ctDeptQueryWrapper);
+ if (CollectionUtils.isNotEmpty(ctDepts)) {
+ List<SelectTermDTO> deptSelectTerms = new ArrayList<>();
+ for (CtDept ctDept : ctDepts) {
+ SelectTermDTO deptSelectTerm = new SelectTermDTO();
+ deptSelectTerm.setValue(ctDept.getId());
+ deptSelectTerm.setLabel(ctDept.getName());
+ deptSelectTerm.setParentId(ctDept.getParentId());
+ deptSelectTerms.add(deptSelectTerm);
+ }
+ List<SelectTermDTO> depts = SelectTermUtils.createTreeByRoot(deptSelectTerms);
+ unitSelectTerm.setChainList(depts);
+ }
+ }
+ result.put("units", SelectTermUtils.createTreeByFirst(unitSelectTerms, loginUser.getUnitId()));
+
+ // 角色条件
+ QueryWrapper<CtRole> ctRoleQueryWrapper = new QueryWrapper<>();
+ ctRoleQueryWrapper.eq("unit_id", loginUser.getUnitId());
+ //判断是否为村居(村居不应该有调委会管理员角色)
+ QueryWrapper<CtUnit> ctUnitQueryWrapper1 = new QueryWrapper<>();
+ ctUnitQueryWrapper1.eq("id", loginUser.getUnitId()).eq("cust_id", loginUser.getCustId())
+ .select("unit_type");
+ CtUnit ctUnit = ctUnitService.getOne(ctUnitQueryWrapper1);
+ if(UserBaseConsts.UNIT_TYPE_4.equals(ctUnit.getUnitType())){
+ ctRoleQueryWrapper.ne("role_code", RoleBaseEnum.ROLE_9.getIndex());
+ }
+ List<CtRole> ctRoleList = ctRoleService.list(ctRoleQueryWrapper);
+ List<SelectTermDTO> roleSelectTerms = new ArrayList<>();
+ for (CtRole ctRole: ctRoleList){
+ SelectTermDTO selectTerm = new SelectTermDTO();
+ selectTerm.setValue(ctRole.getRoleCode());
+ selectTerm.setLabel(ctRole.getName());
+ roleSelectTerms.add(selectTerm);
+ }
+ result.put("roles", roleSelectTerms);
+ return ReturnSucUtils.getRepInfo( "查询成功", result);
+ } catch (Exception e) {
+ log.error("Controller接口[CtUserController.listSelectTerm]请求异常:"+e, e);
+ return ReturnFailUtils.getRepInfo("查询失败", null);
+ }
+ }
+
+ /**
+ * 条件分页查询人员信息
+ * @url {ctx}/api/v1/ctUser/pageQuery
+ * @param page 页码
+ * @param size 每页数量
+ * @return Object
+ */
+ @GetMapping("/pageQuery")
+ public Object pageQuery(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size,
+ @CurrentUser String userId) {
+ try {
+ // 获取当前登录用户
+ CtUserDTO loginUser = service.clientGetUserAll(userId);
+ Map<String, Object> result = Maps.newHashMap();
+ Map<String, Object> terms = getParameter();
+ if (RoleBaseEnum.checkAdminPower(loginUser)){
+ terms.put("custId", loginUser.getCustId());
+ }else if (RoleBaseEnum.checkCourtOrUnitPower(loginUser.getRoleCodes())){
+ terms.put("custId", loginUser.getCustId());
+ String unitId = (String) terms.get("unitId");
+ if (StringUtils.isEmpty(unitId)){
+ terms.put("unitId", loginUser.getUnitId());
+ }
+ }else {
+ terms.put("custId", loginUser.getCustId());
+ terms.put("id", loginUser.getId());
+ }
+ Sort sort = Sort.by(Sort.Direction.DESC, "t1.create_time");
+ PageRequest pageRequest = PageRequest.of(page-1, size, sort);
+ Page<CtUser> ctUserPage = service.pageUserAndRole(pageRequest, terms);
+ QueryWrapper<CtAccount> accountQueryWrapper = new QueryWrapper<>();
+ QueryWrapper<CtUserole> ctUseroleQueryWrapper = new QueryWrapper<>();
+ QueryWrapper<CtUsepost> ctUsepostQueryWrapper = new QueryWrapper<>();
+ for (CtUser ctUser: ctUserPage){
+ accountQueryWrapper.clear();
+ // 密码
+ accountQueryWrapper.eq("acc_type", UserBaseConsts.ACC_TYPE_1);
+ accountQueryWrapper.eq("user_id", ctUser.getId());
+ CtAccount ctAccount = ctAccountService.getOne(accountQueryWrapper);
+ if (ObjectUtils.isNotEmpty(ctAccount)){
+ ctUser.setAcc(ctAccount.getAcc());
+ ctUser.setCipher(ctAccount.getCipherOpen());
+ }
+ // 角色
+ ctUseroleQueryWrapper.clear();
+ ctUseroleQueryWrapper.eq("user_id", ctUser.getId());
+ List<CtUserole> ctUseroleList = ctUseroleService.list(ctUseroleQueryWrapper);
+ if (ObjectUtils.isNotEmpty(ctUseroleList)){
+ for (CtUserole ctUserole: ctUseroleList){
+ ctUserole.setRoleId(ctUserole.getRoleCode());
+ }
+ ctUser.setCtUseroleList(ctUseroleList);
+ }
+ // 岗位
+ ctUsepostQueryWrapper.clear();
+ ctUsepostQueryWrapper.eq("user_id", ctUser.getId());
+ List<CtUsepost> ctUsepostList = ctUsepostService.list(ctUsepostQueryWrapper);
+ if (ObjectUtils.isNotEmpty(ctUsepostList)) {
+ ctUser.setCtUsepostList(ctUsepostList);
+ }
+ }
+ result.put("ctUserPage", ctUserPage);
+ terms = Maps.newHashMap();
+ // 生效名额
+ terms.put("status", UserBaseConsts.USER_STATUS_1);
+ terms.put("custId", loginUser.getCustId());
+ if (RoleBaseEnum.checkAdminPower(loginUser)){
+ terms.put("custId", loginUser.getCustId());
+ }else if (RoleBaseEnum.checkCourtOrUnitPower(loginUser.getRoleCodes())){
+ terms.put("custId", loginUser.getCustId());
+ String unitId = (String) terms.get("unitId");
+ if (StringUtils.isEmpty(unitId)){
+ terms.put("unitId", loginUser.getUnitId());
+ }
+ }else {
+ terms.put("custId", loginUser.getCustId());
+ terms.put("id", loginUser.getId());
+ }
+ long countZzStatus = service.countTerms(terms);
+ result.put("countZzStatus", countZzStatus);
+ return ReturnSucUtils.getRepInfo( "处理成功", result);
+ } catch (Exception e) {
+ log.error("Controller接口[CtUserController.pageQuery]请求异常:"+e, e);
+ return ReturnFailUtils.getRepInfo(e.getMessage(), null);
+ }
+ }
}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dao/mapper/CtUserMapper.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dao/mapper/CtUserMapper.java
index 19609a5..1ee4253 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dao/mapper/CtUserMapper.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dao/mapper/CtUserMapper.java
@@ -61,4 +61,18 @@
*/
List<CtUser> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
+ /**
+ * 按条件查询实体总数
+ *
+ * @param terms 查询条件集合
+ */
+ long countQueryCtUser(@Param("terms") Map<String, Object> terms);
+
+ /**
+ * 按条件查询实体分页结果集
+ * @param page 分页对象
+ * @param terms 查询条件集合
+ * @return
+ */
+ List<CtUser> pageQueryCtUser(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dao/mapper/CtUseroleMapper.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dao/mapper/CtUseroleMapper.java
index e78833b..35c10b0 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dao/mapper/CtUseroleMapper.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dao/mapper/CtUseroleMapper.java
@@ -61,4 +61,11 @@
*/
List<CtUserole> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
+ /**
+ * 根据用户编号获取其角色名代码
+ * @param userId 用户编号
+ * @return List<String>
+ */
+ List<String> listRoleCode(@Param("userId") String userId);
+
}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dao/mapper/xml/CtUserMapper.xml b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dao/mapper/xml/CtUserMapper.xml
index eb876ed..3a4d8be 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dao/mapper/xml/CtUserMapper.xml
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dao/mapper/xml/CtUserMapper.xml
@@ -325,4 +325,86 @@
limit #{page.offset}, #{page.size}
</select>
+ <!-- 根据条件统计 -->
+ <select id="countQueryCtUser" resultType="java.lang.Long">
+ SELECT COUNT(distinct t1.id)
+ FROM dyh_ct_user t1
+ LEFT JOIN dyh_ct_userole t2 on t1.id = t2.user_id
+ <if test="terms != null">
+ <where>
+ <if test="terms.trueName != null and terms.trueName !=''">
+ and t1.true_name like concat('%', #{terms.trueName}, '%')
+ </if>
+ <if test="terms.acc != null and terms.acc !=''">
+ and t1.acc like concat('%', #{terms.acc}, '%')
+ </if>
+ <if test="terms.unitId != null and terms.unitId !=''">
+ and t1.unit_id = #{terms.unitId}
+ </if>
+ <if test="terms.deptId != null and terms.deptId !=''">
+ and t1.dept_id = #{terms.deptId}
+ </if>
+ <if test="terms.status != null and terms.status !=''">
+ and t1.status = #{terms.status}
+ </if>
+ <if test="terms.deleteStatus = null and terms.deleteStatus =''">
+ and t1.delete_status = '1'
+ </if>
+ <if test="terms.deleteStatus != null and terms.deleteStatus !=''">
+ and t1.delete_status = #{terms.deleteStatus}
+ </if>
+ <if test="terms.roleId != null and terms.roleId !=''">
+ and t2.role_id = #{terms.roleId}
+ </if>
+ </where>
+ </if>
+ </select>
+
+ <!-- 根据条件分页查询 -->
+ <select id="pageQueryCtUser" resultMap="dataResult">
+ SELECT t1.*
+ FROM dyh_ct_user t1
+ LEFT JOIN dyh_ct_userole t2 on t1.id = t2.user_id
+ <if test="terms != null">
+ <where>
+ <if test="terms.trueName != null and terms.trueName !=''">
+ and t1.true_name like concat('%', #{terms.trueName}, '%')
+ </if>
+ <if test="terms.acc != null and terms.acc !=''">
+ and t1.acc like concat('%', #{terms.acc}, '%')
+ </if>
+ <if test="terms.unitId != null and terms.unitId !=''">
+ and t1.unit_id = #{terms.unitId}
+ </if>
+ <if test="terms.deptId != null and terms.deptId !=''">
+ and t1.dept_id = #{terms.deptId}
+ </if>
+ <if test="terms.status != null and terms.status !=''">
+ and t1.status = #{terms.status}
+ </if>
+ <if test="terms.deleteStatus = null and terms.deleteStatus =''">
+ and t1.delete_status = '1'
+ </if>
+ <if test="terms.deleteStatus != null and terms.deleteStatus !=''">
+ and t1.delete_status = #{terms.deleteStatus}
+ </if>
+ <if test="terms.roleId != null and terms.roleId !=''">
+ and t2.role_id = #{terms.roleId}
+ </if>
+ <if test="terms.roleCode != null and terms.roleCode !=''">
+ and t2.role_code = #{terms.roleCode}
+ </if>
+ </where>
+ </if>
+ GROUP BY t1.id
+ <if test="page.sort != null">
+ <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
+ isnull(${s.property}), ${s.property} ${s.direction}
+ </foreach>
+ </if>
+ <if test="page.sort == null">
+ order by isnull(t1.create_time), t1.create_time desc
+ </if>
+ limit #{page.offset}, #{page.size}
+ </select>
</mapper>
\ No newline at end of file
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dao/mapper/xml/CtUseroleMapper.xml b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dao/mapper/xml/CtUseroleMapper.xml
index d54d5dd..f3b00cb 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dao/mapper/xml/CtUseroleMapper.xml
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dao/mapper/xml/CtUseroleMapper.xml
@@ -142,4 +142,13 @@
limit #{page.offset}, #{page.size}
</select>
+ <select id="listRoleCode" resultType="String">
+ select
+ role_code
+ FROM
+ <include refid="table-name" />
+ WHERE
+ user_id = #{userId}
+ </select>
+
</mapper>
\ No newline at end of file
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/po/CtDept.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/po/CtDept.java
index 37b788a..3203b86 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/po/CtDept.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/po/CtDept.java
@@ -7,6 +7,7 @@
import lombok.Data;
import java.util.Date;
+import java.util.List;
/**
* @title: 客户部门表数据库对应关系类
@@ -105,4 +106,22 @@
@TableField(value = "update_time")
private Date updateTime;
+ /**
+ * 人员数量
+ */
+ @TableField(exist = false)
+ private Integer countCtUser;
+
+ /**
+ * 部门下的人员
+ */
+ @TableField(exist = false)
+ private List<CtUser> matchUsers;
+
+ /**
+ * 子部门
+ */
+ @TableField(exist = false)
+ private List<CtDept> children;
+
}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/po/CtUnit.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/po/CtUnit.java
index 09a7f4e..ef27bae 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/po/CtUnit.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/po/CtUnit.java
@@ -7,6 +7,7 @@
import lombok.Data;
import java.util.Date;
+import java.util.List;
/**
* @title: 客户组织信息表数据库对应关系类
@@ -231,4 +232,34 @@
@TableField(value = "update_time")
private Date updateTime;
+ /**
+ * 子部门
+ */
+ @TableField(exist = false)
+ private List<CtDept> ctDepts;
+
+ /**
+ * 部门数量
+ */
+ @TableField(exist = false)
+ private Integer countCtDept;
+
+ /**
+ * 人员数量
+ */
+ @TableField(exist = false)
+ private Integer countCtUser;
+
+ /**
+ * 子组织
+ */
+ @TableField(exist = false)
+ private List<CtUnit> children;
+
+ /**
+ * 组织下未配岗人员
+ */
+ @TableField(exist = false)
+ private List<CtUser> unMatchUsers;
+
}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/po/CtUser.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/po/CtUser.java
index 18335e7..d984013 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/po/CtUser.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/po/CtUser.java
@@ -7,6 +7,7 @@
import lombok.Data;
import java.util.Date;
+import java.util.List;
/**
* @title: 客户用户表数据库对应关系类
@@ -249,4 +250,27 @@
@TableField(value = "update_time")
private Date updateTime;
+ /**
+ * 平台账号
+ */
+ @TableField(exist = false)
+ private String acc;
+
+ /**
+ * 密码
+ */
+ @TableField(exist = false)
+ private String cipher;
+
+ /**
+ * 人员角色信息
+ */
+ @TableField(exist = false)
+ private List<CtUserole> ctUseroleList;
+
+ /**
+ * 人员岗位信息
+ */
+ @TableField(exist = false)
+ private List<CtUsepost> ctUsepostList;
}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dto/UserLoginDTO.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dto/UserLoginDTO.java
index 37a2a8e..45d2b7f 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dto/UserLoginDTO.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dto/UserLoginDTO.java
@@ -1,8 +1,6 @@
package cn.huge.module.ctuser.dto;
import cn.huge.module.ctuser.domain.po.CtUserole;
-import cn.huge.module.user.domain.po.CtUser;
-import cn.huge.module.user.domain.po.CtUserole;
import lombok.Data;
import java.util.Date;
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtDeptService.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtDeptService.java
index a563ef1..3853f43 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtDeptService.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtDeptService.java
@@ -4,9 +4,12 @@
import cn.huge.base.common.utils.DateUtils;
import cn.huge.base.common.utils.IdUtils;
import cn.huge.module.client.api.impl.UtilsClientImpl;
+import cn.huge.module.constant.BaseConsts;
import cn.huge.module.ctuser.dao.mapper.CtDeptMapper;
import cn.huge.module.ctuser.domain.po.CtDept;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
@@ -17,6 +20,7 @@
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.PostConstruct;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -130,4 +134,51 @@
}
}
+ /**
+ * 创建某一级部门下树形结构
+ * @param ctDeptList 所有部门集合
+ * @param firstId 某一级组织编号
+ * @return List
+ */
+ public List<CtDept> createTree(List<CtDept> ctDeptList, String firstId) {
+ List<CtDept> firstMapList= new ArrayList<>();
+ for (CtDept ctDept: ctDeptList ){
+ for(CtDept deptParam: ctDeptList ) {
+ if (deptParam.getId().equals(ctDept.getParentId())) {
+ addToMBean(deptParam, ctDept);
+ break;
+ }
+ }
+ }
+ //取第一级节点
+ for (CtDept dept: ctDeptList ){
+ if (StringUtils.isNotEmpty(firstId)){
+ if (firstId.equals(dept.getId())) {
+ firstMapList.add(dept);
+ }
+ }else{
+ if (BaseConsts.ROOT.equals(dept.getParentId()) || StringUtils.isEmpty(dept.getParentId())) {
+ firstMapList.add(dept);
+ }
+ }
+ }
+ return firstMapList;
+ }
+
+ /**
+ * 获取部门的子级部门
+ * @param targetUnit 目标部门
+ * @param currentUnit 子级部门
+ */
+ public void addToMBean(CtDept targetUnit, CtDept currentUnit){
+ List<CtDept> childListObj = targetUnit.getChildren();
+ List<CtDept> childList = null;
+ if(CollectionUtils.isEmpty(childListObj)) {
+ childList = new ArrayList();
+ targetUnit.setChildren(childList);
+ }else{
+ childList = childListObj;
+ }
+ childList.add(currentUnit);
+ }
}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtPostService.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtPostService.java
index 54c5e72..4471883 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtPostService.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtPostService.java
@@ -3,9 +3,12 @@
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.config.CurrentUser;
import cn.huge.module.client.api.impl.UtilsClientImpl;
import cn.huge.module.ctuser.dao.mapper.CtPostMapper;
import cn.huge.module.ctuser.domain.po.CtPost;
+import cn.huge.module.ctuser.domain.po.CtUser;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -15,6 +18,7 @@
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.Date;
@@ -130,4 +134,5 @@
}
}
+
}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java
index e4e4193..9b35ee2 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java
@@ -3,10 +3,17 @@
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.config.CurrentUser;
import cn.huge.module.client.api.impl.UtilsClientImpl;
+import cn.huge.module.constant.BaseConsts;
import cn.huge.module.ctuser.dao.mapper.CtUnitMapper;
+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 com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
@@ -15,11 +22,14 @@
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;
+import java.util.stream.Collectors;
/**
* @title: 客户组织信息表业务逻辑处理
@@ -39,6 +49,12 @@
@Autowired
private UtilsClientImpl utilsClient;
+
+ @Autowired
+ private CtDeptService ctDeptService;
+
+ @Autowired
+ private CtUserService ctUserService;
/**
* 更新对象
@@ -130,4 +146,126 @@
}
}
+ /**
+ * 获取所有组织(包含所有下级子组织)
+ *
+ * @param custId 客户编号
+ * @param firstId 某一级组织编号
+ * @return List
+ */
+ public List<CtUnit> listUnitTree(String custId, String firstId) {
+ QueryWrapper<CtUnit> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("cust_id", custId).orderByDesc("create_time");
+ List<CtUnit> ctUnits = mapper.selectList(queryWrapper);
+
+ // 获取所有的 CtDept 的数量
+ QueryWrapper<CtDept> deptQueryWrapper = new QueryWrapper<>();
+ deptQueryWrapper.in("unit_id", ctUnits.stream().map(CtUnit::getId).collect(Collectors.toList()));
+ List<CtDept> ctDepts = ctDeptService.list(deptQueryWrapper);
+
+ // 将 CtDept 的数量存储在 Map 中
+ Map<String, Long> ctDeptCountMap = ctDepts.stream()
+ .collect(Collectors.groupingBy(CtDept::getUnitId, Collectors.counting()));
+
+ // 为每个 CtUnit 设置 CtDept 的数量
+ for (CtUnit ctUnit : ctUnits) {
+ Long ctDeptsCount = ctDeptCountMap.getOrDefault(ctUnit.getId(), 0L);
+ ctUnit.setCountCtDept(ctDeptsCount.intValue());
+ }
+ return this.createTree(ctUnits, firstId);
+ }
+
+ /**
+ * 创建某一级组织下树形结构
+ *
+ * @param ctUnitList 所有组织集合
+ * @param firstId 某一级组织编号
+ * @return List
+ */
+ public List<CtUnit> createTree(List<CtUnit> ctUnitList, String firstId) {
+ List<CtUnit> firstMapList = new ArrayList<>();
+ for (CtUnit ctUnit : ctUnitList) {
+ for (CtUnit currentParam : ctUnitList) {
+ if (currentParam.getId().equals(ctUnit.getParentId())) {
+ addToMBean(currentParam, ctUnit);
+ break;
+ }
+ }
+ }
+ //取第一级节点
+ for (CtUnit unit : ctUnitList) {
+ if (StringUtils.isNotEmpty(firstId)) {
+ if (firstId.equals(unit.getId())) {
+ firstMapList.add(unit);
+ }
+ } else {
+ if (BaseConsts.ROOT.equals(unit.getParentId()) || StringUtils.isEmpty(unit.getParentId())) {
+ firstMapList.add(unit);
+ }
+ }
+ }
+ return firstMapList;
+ }
+
+ /**
+ * 获取组织的子级组织
+ *
+ * @param targetUnit 目标组织
+ * @param currentUnit 子级组织
+ */
+ public void addToMBean(CtUnit targetUnit, CtUnit currentUnit) {
+ List<CtUnit> childListObj = targetUnit.getChildren();
+ List<CtUnit> childList = null;
+ if (CollectionUtils.isEmpty(childListObj)) {
+ childList = new ArrayList();
+ targetUnit.setChildren(childList);
+ } else {
+ childList = childListObj;
+ }
+ childList.add(currentUnit);
+ }
+
+ /**
+ * 获取组织相关数据(包含组织下的部门)
+ *
+ * @param unitId 组织主键编号
+ * @return
+ */
+ public CtUnit getUnitAndDept(String unitId) {
+
+ // 组织详情
+ CtUnit ctUnit = mapper.selectById(unitId);
+ // 组织人员数量
+ QueryWrapper<CtUser> userQueryWrapper = new QueryWrapper<>();
+ userQueryWrapper.eq("unit_id", unitId);
+ Integer countCtUser = ctUserService.count(userQueryWrapper);
+ ctUnit.setCountCtUser(countCtUser);
+ // 未配岗人员(单位下)
+ userQueryWrapper.isNull("dept_id");
+ List<CtUser> unMatchUsers = ctUserService.list(userQueryWrapper);
+ ctUnit.setUnMatchUsers(unMatchUsers);
+ // 部门详情
+ QueryWrapper<CtDept> deptQueryWrapper = new QueryWrapper<>();
+ deptQueryWrapper.eq("unit_id", unitId);
+ deptQueryWrapper.orderByDesc("create_time");
+ List<CtDept> ctDepts = ctDeptService.list(deptQueryWrapper);
+ for (CtDept ctDept : ctDepts) {
+ // 部门
+ userQueryWrapper.clear();
+ userQueryWrapper.eq("dept_id", ctDept.getId());
+ // 部门下成员
+ List<CtUser> matchUsers = ctUserService.list(userQueryWrapper);
+ ctDept.setMatchUsers(matchUsers);
+ // 部门人员数量
+ int countDeptUser = ctUserService.count(userQueryWrapper);
+ ctDept.setCountCtUser(countDeptUser);
+ }
+ List<CtDept> ctDeptTrees = ctDeptService.createTree(ctDepts, null);
+ ctUnit.setCtDepts(ctDeptTrees);
+ // 部门数量
+ ctUnit.setCountCtDept(ctDepts.size());
+ return ctUnit;
+ }
+
+
}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUserService.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUserService.java
index 89b9369..80c5f99 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUserService.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUserService.java
@@ -8,13 +8,16 @@
import cn.huge.module.client.api.impl.UtilsClientImpl;
import cn.huge.module.constant.BaseConsts;
import cn.huge.module.ctuser.dao.mapper.CtUserMapper;
+import cn.huge.module.ctuser.domain.po.CtUnit;
import cn.huge.module.ctuser.domain.po.CtUser;
import cn.huge.module.cust.constant.UserBaseConsts;
+import cn.huge.module.cust.dto.CtUserDTO;
import cn.huge.module.redis.constant.RedisKeyConsts;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
@@ -30,6 +33,7 @@
import java.util.Date;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
/**
* @title: 客户用户表业务逻辑处理
@@ -52,6 +56,12 @@
@Autowired
private UtilsClientImpl utilsClient;
+
+ @Autowired
+ private CtUnitService ctUnitService;
+
+ @Autowired
+ private CtUseroleService ctUseroleService;
/**
* 更新对象
@@ -194,4 +204,70 @@
}
}
+ /**
+ * 重写根据id获取用户
+ * @param userId 登录用户编号
+ * @return Object
+ */
+ public CtUser getById(String userId) {
+ String loginUserId = "";
+ if (userId.indexOf(BaseConsts.AND) != -1){
+ String[] userIds = userId.split(BaseConsts.AND);
+ loginUserId = userIds[0];
+ }else {
+ loginUserId = userId;
+ }
+ return mapper.selectById(loginUserId);
+ }
+
+ /**
+ * 按条件分页查询
+ *
+ * @param page 分页对象
+ * @param terms 条件
+ * @return Page
+ */
+ public Page<CtUser> pageUserAndRole(PageRequest page, Map<String, Object> terms) {
+ long total = mapper.countQueryCtUser(terms);
+ List<CtUser> content = mapper.pageQueryCtUser(page, terms);
+ return new PageImpl<CtUser>(content, page, total);
+ }
+
+ /**
+ * 获取当前登录用户,获取用户所有信息(用户信息、角色等)
+ * @param userId 登录用户编号
+ * @return Object
+ */
+ public CtUserDTO clientGetUserAll(String userId) {
+ String loginUserId = "";
+ String loginRoleCode = "";
+ if (userId.indexOf(BaseConsts.AND) != -1){
+ String[] userIds = userId.split(BaseConsts.AND);
+ loginUserId = userIds[0];
+ loginRoleCode = userIds[1];
+ }else {
+ loginUserId = userId;
+ }
+ // 用户信息
+ CtUser ctUser = mapper.selectById(loginUserId);
+ if (ObjectUtils.isNotEmpty(ctUser)){
+ CtUnit ctUnit = ctUnitService.getById(ctUser.getUnitId());
+ CtUserDTO ctUserDTO = new CtUserDTO();
+ BeanUtils.copyProperties(ctUser, ctUserDTO);
+ if(ObjectUtils.isNotEmpty(ctUnit)){
+ ctUserDTO.setUnitType(ctUnit.getUnitType());
+ }
+ // 角色代码
+ if (StringUtils.isEmpty(loginRoleCode)) {
+ List<String> roleCodeList = ctUseroleService.listRoleCode(loginUserId);
+ String userRole = roleCodeList.stream().map(String::valueOf).collect(Collectors.joining(","));
+ ctUserDTO.setRoleCodes(userRole);
+ }else {
+ ctUserDTO.setRoleCodes(loginRoleCode);
+ }
+ return ctUserDTO;
+ }else {
+ return null;
+ }
+ }
}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUseroleService.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUseroleService.java
index db88b89..cdc2a85 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUseroleService.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUseroleService.java
@@ -147,4 +147,12 @@
return ctUseroleList;
}
+ /**
+ * 根据用户编号获取其角色代码
+ * @param userId 用户编号
+ * @return List<String>
+ */
+ public List<String> listRoleCode(String userId){
+ return mapper.listRoleCode(userId);
+ }
}
\ No newline at end of file
diff --git a/dyh-service/dyh-sync/src/main/java/cn/huge/module/client/api/CustClient.java b/dyh-service/dyh-sync/src/main/java/cn/huge/module/client/api/CustClient.java
new file mode 100644
index 0000000..59e5c8c
--- /dev/null
+++ b/dyh-service/dyh-sync/src/main/java/cn/huge/module/client/api/CustClient.java
@@ -0,0 +1,34 @@
+package cn.huge.module.client.api;
+
+import cn.huge.base.common.bo.ReturnBO;
+import cn.huge.module.mediate.dto.WechatBindCaseDTO;
+import cn.huge.module.sync.domain.target.TargetCtUnit;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+/**
+ * @title: 客户用户中心微服务调用接口
+ * @description: 客户用户中心微服务调用接口
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2021-11-05 16:51:48
+ * @version: 1.0.0
+ */
+@FeignClient(name = "dyh-cust")
+public interface CustClient {
+
+ /**
+ *
+ * @url {ctx}/api/v1/ctUser/clientGetUser?userId=
+ * @param targetCtUnitList 登录用户编号
+ * @return ReturnBO
+ */
+ @GetMapping("/api/web/ctUnit/saveCtUnitList")
+ ReturnBO saveCtUnitList(@RequestBody List<TargetCtUnit> targetCtUnitList);
+
+}
diff --git a/dyh-service/dyh-sync/src/main/java/cn/huge/module/client/api/impl/CustClientImpl.java b/dyh-service/dyh-sync/src/main/java/cn/huge/module/client/api/impl/CustClientImpl.java
new file mode 100644
index 0000000..a96db5d
--- /dev/null
+++ b/dyh-service/dyh-sync/src/main/java/cn/huge/module/client/api/impl/CustClientImpl.java
@@ -0,0 +1,68 @@
+package cn.huge.module.client.api.impl;
+
+import cn.huge.base.common.bo.ReturnBO;
+import cn.huge.base.common.constant.ReturnConsts;
+import cn.huge.base.common.dto.SelectTermDTO;
+import cn.huge.base.common.exception.ClientException;
+import cn.huge.base.common.exception.ServiceException;
+import cn.huge.module.client.api.CustClient;
+import cn.huge.module.cust.dto.CtUserDTO;
+import cn.huge.module.cust.dto.PaUserDTO;
+import cn.huge.module.mediate.dto.WechatBindCaseDTO;
+import cn.huge.module.sync.domain.target.TargetCtUnit;
+import com.alibaba.fastjson.JSON;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+
+/**
+ * @title: 客户用户中心微服务调用接口实现
+ * @description: 客户用户中心微服务调用接口实现
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2021-11-05 16:51:48
+ * @version: 1.0.0
+ */
+@Slf4j
+@Component
+public class CustClientImpl {
+
+ private CustClient custClient;
+
+ @Autowired
+ public CustClientImpl(CustClient custClient) {
+ this.custClient = custClient;
+ }
+
+ /**
+ * ObjectMapper工具类
+ */
+ private ObjectMapper objectMapper = new ObjectMapper();
+
+ /**
+ * 内部用户-获取登录用户
+ * @param userId 用户编号
+ * @return CtUserDTO
+ */
+ public CtUserDTO clientGetUser(List<TargetCtUnit> targetCtUnitList){
+ try{
+ ReturnBO returnBo = custClient.saveCtUnitList(targetCtUnitList);
+ if (ReturnConsts.OK == returnBo.getCode()){
+ CtUserDTO loginUser = objectMapper.convertValue(returnBo.getData(), CtUserDTO.class);
+ return loginUser;
+ }else{
+ log.error("Client外服务接口[CustClientImpl.clientGetUser]请求异常:" + returnBo.getMsg(), returnBo.getMsg());
+ throw new ClientException("CustClientImpl.clientGetUser", returnBo.getMsg());
+ }
+ }catch (Exception e){
+ log.error("service方法[CustClientImpl.clientGetUser]调用异常:"+e, e);
+ throw new ServiceException("CustClientImpl.clientGetUser", e);
+ }
+ }
+}
diff --git a/dyh-service/dyh-sync/src/main/java/cn/huge/module/client/constant/SysConsts.java b/dyh-service/dyh-sync/src/main/java/cn/huge/module/client/constant/SysConsts.java
new file mode 100644
index 0000000..496c593
--- /dev/null
+++ b/dyh-service/dyh-sync/src/main/java/cn/huge/module/client/constant/SysConsts.java
@@ -0,0 +1,35 @@
+package cn.huge.module.client.constant;
+
+/**
+ * @title: 配置微服务相关常量类
+ * @description: 存放配置微服务相关常量
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2021-11-05 16:51:48
+ * @version: 1.0.0
+ */
+public class SysConsts {
+
+}
+/**
+ * -------------------_ooOoo_-------------------
+ * ------------------o8888888o------------------
+ * ------------------88" . "88------------------
+ * ------------------(| -_- |)------------------
+ * ------------------O\ = /O------------------
+ * ---------------____/`---'\____---------------
+ * -------------.' \\| |// `.-------------
+ * ------------/ \\||| : |||// \------------
+ * -----------/ _||||| -:- |||||- \-----------
+ * -----------| | \\\ - /// | |-----------
+ * -----------| \_| ''\---/'' | |-----------
+ * -----------\ .-\__ `-` ___/-. /-----------
+ * ---------___`. .' /--.--\ `. . __----------
+ * ------."" '< `.___\_<|>_/___.' >'"".-------
+ * -----| | : `- \`.;`\ _ /`;.`/ - ` : | |-----
+ * -----\ \ `-. \_ __\ /__ _/ .-` / /-----
+ * ======`-.____`-.___\_____/___.-`____.-'======
+ * -------------------`=---='
+ * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ * ---------佛祖保佑---hugeinfo---永无BUG----------
+ */
diff --git a/dyh-service/dyh-sync/src/main/java/cn/huge/module/client/utils/SysUtils.java b/dyh-service/dyh-sync/src/main/java/cn/huge/module/client/utils/SysUtils.java
new file mode 100644
index 0000000..f9fb4c5
--- /dev/null
+++ b/dyh-service/dyh-sync/src/main/java/cn/huge/module/client/utils/SysUtils.java
@@ -0,0 +1,35 @@
+package cn.huge.module.client.utils;
+
+/**
+ * @title: 配置微服务相关工具类
+ * @description: 存放配置微服务相关工具方法
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2021-11-05 16:51:48
+ * @version: 1.0.0
+ */
+public class SysUtils {
+
+}
+/**
+ * -------------------_ooOoo_-------------------
+ * ------------------o8888888o------------------
+ * ------------------88" . "88------------------
+ * ------------------(| -_- |)------------------
+ * ------------------O\ = /O------------------
+ * ---------------____/`---'\____---------------
+ * -------------.' \\| |// `.-------------
+ * ------------/ \\||| : |||// \------------
+ * -----------/ _||||| -:- |||||- \-----------
+ * -----------| | \\\ - /// | |-----------
+ * -----------| \_| ''\---/'' | |-----------
+ * -----------\ .-\__ `-` ___/-. /-----------
+ * ---------___`. .' /--.--\ `. . __----------
+ * ------."" '< `.___\_<|>_/___.' >'"".-------
+ * -----| | : `- \`.;`\ _ /`;.`/ - ` : | |-----
+ * -----\ \ `-. \_ __\ /__ _/ .-` / /-----
+ * ======`-.____`-.___\_____/___.-`____.-'======
+ * -------------------`=---='
+ * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ * ---------佛祖保佑---hugeinfo---永无BUG----------
+ */
diff --git a/dyh-service/dyh-sync/src/main/java/cn/huge/module/sync/controller/SyncController.java b/dyh-service/dyh-sync/src/main/java/cn/huge/module/sync/controller/SyncController.java
new file mode 100644
index 0000000..703c58b
--- /dev/null
+++ b/dyh-service/dyh-sync/src/main/java/cn/huge/module/sync/controller/SyncController.java
@@ -0,0 +1,50 @@
+package cn.huge.module.sync.controller;
+
+import cn.huge.base.common.utils.ReturnFailUtils;
+import cn.huge.base.common.utils.ReturnSucUtils;
+import cn.huge.module.sync.service.SyncService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * @title: 客户组织信息表接口api
+ * @description: 客户组织信息表接口api
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2024-08-17 15:30:57
+ * @version: 1.0.0
+ */
+@Slf4j
+@RestController
+@RequestMapping("/api/sync")
+public class SyncController {
+
+ @Autowired(required = false)
+ private HttpServletRequest request;
+
+ private final SyncService syncService;
+
+ public SyncController(SyncService syncService) {
+ this.syncService = syncService;
+ }
+
+ /**
+ * 数据迁移通用接口
+ * @url {ctx}/api/web/ctUnit/universalSync
+ * @return Object
+ */
+ @GetMapping("/universalSync")
+ public Object universalSync() {
+ try {
+ syncService.syncData();
+ return ReturnSucUtils.getRepInfo( "处理成功", null);
+ } catch (Exception e) {
+ return ReturnFailUtils.getRepInfo();
+ }
+ }
+
+
+}
diff --git a/dyh-service/dyh-sync/src/main/java/cn/huge/module/sync/dao/mapper/SyncMapper.java b/dyh-service/dyh-sync/src/main/java/cn/huge/module/sync/dao/mapper/SyncMapper.java
new file mode 100644
index 0000000..7505dbe
--- /dev/null
+++ b/dyh-service/dyh-sync/src/main/java/cn/huge/module/sync/dao/mapper/SyncMapper.java
@@ -0,0 +1,40 @@
+package cn.huge.module.sync.dao.mapper;
+
+import cn.huge.module.sync.domain.source.SourceCtUnit;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * @title: 客户用户账号表持久层业务处理
+ * @Description 此处仅涉及复杂SQL操作,务必不要在此再次写单表的CRUD操作,因为mybatisPlus已经实现。
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2024-08-17 15:30:56
+ * @version 1.0.0
+ */
+@Repository
+public interface SyncMapper{
+
+ /**
+ * 按条件查询结果集
+ * @param mysqlTableName 表名
+ * @param page 分页对象
+ * @return List<CtAccount>
+ */
+ List<SourceCtUnit> pageInfo(@Param("mysqlTableName") String mysqlTableName, @Param("page") PageRequest page);
+
+ /**
+ * 按条件查询结果集
+ * @param mysqlTableName 表名
+ * @return List<CtAccount>
+ */
+ int countData(@Param("mysqlTableName") String mysqlTableName);
+
+
+}
+
diff --git a/dyh-service/dyh-sync/src/main/java/cn/huge/module/sync/dao/mapper/xml/SyncMapper.xml b/dyh-service/dyh-sync/src/main/java/cn/huge/module/sync/dao/mapper/xml/SyncMapper.xml
new file mode 100644
index 0000000..99961b1
--- /dev/null
+++ b/dyh-service/dyh-sync/src/main/java/cn/huge/module/sync/dao/mapper/xml/SyncMapper.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--
+ * @title: 客户用户账号表
+ * @description: 自定义sql,请自行实现业务逻辑
+ * @company: hugeinfo
+ * @author: liyj
+ * @time:2024-08-17 15:30:56
+ * @version 1.0.0
+-->
+<mapper namespace="cn.huge.module.sync.dao.mapper.SyncMapper">
+
+ <resultMap id="dataResult" type="cn.huge.module.sync.domain.source.SourceCtUnit">
+ <result property="id" column="id"/>
+ <result property="name" column="name"/>
+ <result property="unitType" column="unit_type"/>
+ <result property="courtStatus" column="court_status"/>
+ <result property="unitCode" column="unit_code"/>
+ <result property="des" column="des"/>
+ <result property="dutyName" column="duty_name"/>
+ <result property="dutyMobile" column="duty_mobile"/>
+ <result property="dutyIdcard" column="duty_idcard"/>
+ <result property="joinWay" column="join_way"/>
+ <result property="prov" column="prov"/>
+ <result property="provName" column="prov_name"/>
+ <result property="city" column="city"/>
+ <result property="cityName" column="city_name"/>
+ <result property="area" column="area"/>
+ <result property="areaName" column="area_name"/>
+ <result property="road" column="road"/>
+ <result property="roadName" column="road_name"/>
+ <result property="village" column="village"/>
+ <result property="villageName" column="village_name"/>
+ <result property="addr" column="addr"/>
+ <result property="lng" column="lng"/>
+ <result property="lat" column="lat"/>
+ <result property="goodField" column="good_field"/>
+ <result property="goodFieldName" column="good_field_name"/>
+ <result property="canField" column="can_field"/>
+ <result property="canFieldName" column="can_field_name"/>
+ <result property="findStatus" column="find_status"/>
+ <result property="dispStatus" column="disp_status"/>
+ <result property="countCase" column="count_case"/>
+ <result property="level" column="level"/>
+ <result property="parentId" column="parent_id"/>
+ <result property="deleteStatus" column="delete_status"/>
+ <result property="custId" column="cust_id"/>
+ <result property="custProv" column="cust_prov"/>
+ <result property="custCity" column="cust_city"/>
+ <result property="custArea" column="cust_area"/>
+ <result property="createTime" column="create_time"/>
+ <result property="updateTime" column="update_time"/>
+ </resultMap>
+
+ <!-- 根据条件分页查询 -->
+ <select id="pageInfo" resultMap = "dataResult">
+ SELECT
+ *
+ FROM
+ ${mysqlTableName}
+ <if test="page.sort != null">
+ <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
+ ${s.property} ${s.direction}
+ </foreach>
+ </if>
+ <if test="page.sort == null">
+ order by create_time asc
+ </if>
+ limit #{page.offset}, #{page.size}
+ </select>
+
+ <!-- 根据条件分页查询 -->
+ <select id="countData" resultType="int">
+ SELECT
+ count(1)
+ FROM
+ ${mysqlTableName}
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/dyh-service/dyh-sync/src/main/java/cn/huge/module/sync/domain/source/SourceCtUnit.java b/dyh-service/dyh-sync/src/main/java/cn/huge/module/sync/domain/source/SourceCtUnit.java
new file mode 100644
index 0000000..de02f1c
--- /dev/null
+++ b/dyh-service/dyh-sync/src/main/java/cn/huge/module/sync/domain/source/SourceCtUnit.java
@@ -0,0 +1,257 @@
+package cn.huge.module.sync.domain.source;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: 客户组织表
+ * @description: PO中的属性与数据表是一一对应关系,如需根据业务处理不同,请使用BO对象。
+ * @company:hugeinfo
+ * @author: chenx
+ * @time: 2022-02-22 14:19:41
+ * @version 1.0.0
+ */
+@TableName(value = "dyh_ct_unit")
+@Data
+public class SourceCtUnit {
+
+ /**
+ * 组织编号
+ */
+ @TableId(value = "id")
+ private String id;
+
+ /**
+ * 组织名称
+ */
+ @TableField(value = "name")
+ private String name;
+
+ /**
+ * 组织类型,1:指挥中心,2:职能部门,3:镇街,:4:村居社区,5:行、专业,6:企、事业,7:演示测试,9:其他
+ */
+ @TableField(value = "unit_type")
+ private String unitType;
+
+ /**
+ * 是否归类为法院,1:否,2:是
+ */
+ @TableField(value = "court_status")
+ private String courtStatus;
+
+ /**
+ * 组织机构代码
+ */
+ @TableField(value = "unit_code")
+ private String unitCode;
+
+ /**
+ * 描述
+ */
+ @TableField(value = "des")
+ private String des;
+
+ /**
+ * 单位负责人姓名
+ */
+ @TableField(value = "duty_name")
+ private String dutyName;
+
+ /**
+ * 单位负责人手机号码
+ */
+ @TableField(value = "duty_mobile")
+ private String dutyMobile;
+
+ /**
+ * 单位负责人身份证
+ */
+ @TableField(value = "duty_idcard")
+ private String dutyIdcard;
+
+ /**
+ * 加入方式,1:系统创建(默认),1:自主申请
+ */
+ @TableField(value = "join_way")
+ private String joinWay;
+
+ /**
+ * 组织地址省
+ */
+ @TableField(value = "prov")
+ private String prov;
+
+ /**
+ * 组织地址省名称
+ */
+ @TableField(value = "prov_name")
+ private String provName;
+
+ /**
+ * 组织地址市
+ */
+ @TableField(value = "city")
+ private String city;
+
+ /**
+ * 组织地址市名称
+ */
+ @TableField(value = "city_name")
+ private String cityName;
+
+ /**
+ * 组织地址区
+ */
+ @TableField(value = "area")
+ private String area;
+
+ /**
+ * 组织地址区名称
+ */
+ @TableField(value = "area_name")
+ private String areaName;
+
+ /**
+ * 组织地址街道
+ */
+ @TableField(value = "road")
+ private String road;
+
+ /**
+ * 组织地址街道名称
+ */
+ @TableField(value = "road_name")
+ private String roadName;
+
+ /**
+ * 组织地址社区
+ */
+ @TableField(value = "village")
+ private String village;
+
+ /**
+ * 组织地址社区名称
+ */
+ @TableField(value = "village_name")
+ private String villageName;
+
+ /**
+ * 组织详细地址
+ */
+ @TableField(value = "addr")
+ private String addr;
+
+ /**
+ * 组织经度
+ */
+ @TableField(value = "lng")
+ private String lng;
+
+ /**
+ * 组织纬度
+ */
+ @TableField(value = "lat")
+ private String lat;
+
+ /**
+ * 父级组织,根级默认root
+ */
+ @TableField(value = "parent_id")
+ private String parentId;
+
+ /**
+ * 调解专长,多个用,隔开
+ */
+ @TableField(value = "good_field")
+ private String goodField;
+
+ /**
+ * 调解专长名称,多个用,隔开
+ */
+ @TableField(value = "good_field_name")
+ private String goodFieldName;
+
+ /**
+ * 调解范围,多个用,隔开
+ */
+ @TableField(value = "can_field")
+ private String canField;
+
+ /**
+ * 调解范围名称,多个用,隔开
+ */
+ @TableField(value = "can_field_name")
+ private String canFieldName;
+
+ /**
+ * 是否可以找他调(小程序),1:否,2:是
+ */
+ @TableField(value = "find_status")
+ private String findStatus;
+
+ /**
+ * 是否参与自动调度,1:否,2:是
+ */
+ @TableField(value = "disp_status")
+ private String dispStatus;
+
+ /**
+ * 累计调解数量
+ */
+ @TableField(value = "count_case")
+ private String countCase;
+
+ /**
+ * 级别
+ */
+ @TableField(value = "level")
+ private Integer level;
+
+ /**
+ * 删除状态,1:未删除(默认),99:已删除
+ */
+ @TableLogic
+ @TableField(value = "delete_status")
+ private String deleteStatus;
+
+ /**
+ * 顾客编号
+ */
+ @TableField(value = "cust_id")
+ private String custId;
+
+ /**
+ * 所属客户省
+ */
+ @TableField(value = "cust_prov")
+ private String custProv;
+
+ /**
+ * 所属客户市
+ */
+ @TableField(value = "cust_city")
+ private String custCity;
+
+ /**
+ * 所属客户区
+ */
+ @TableField(value = "cust_area")
+ private String custArea;
+
+ /**
+ * 创建时间
+ */
+ @TableField(value = "create_time")
+ private Date createTime;
+
+ /**
+ * 更新时间
+ */
+ @TableField(value = "update_time")
+ private Date updateTime;
+}
diff --git a/dyh-service/dyh-sync/src/main/java/cn/huge/module/sync/domain/target/TargetCtUnit.java b/dyh-service/dyh-sync/src/main/java/cn/huge/module/sync/domain/target/TargetCtUnit.java
new file mode 100644
index 0000000..b1c87af
--- /dev/null
+++ b/dyh-service/dyh-sync/src/main/java/cn/huge/module/sync/domain/target/TargetCtUnit.java
@@ -0,0 +1,232 @@
+package cn.huge.module.sync.domain.target;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: 客户组织信息表数据库对应关系类
+ * @description: PO中的属性与数据表是一一对应关系,如需根据业务处理不同,请使用BO对象。
+ * @company:hugeinfo
+ * @author: liyj
+ * @time: 2024-08-19 20:04:19
+ * @version 1.0.0
+ */
+@Data
+public class TargetCtUnit {
+
+ /**
+ * 组织编号
+ */
+ @TableId(value = "id")
+ private String id;
+
+ /**
+ * 层级
+ */
+ @TableField(value = "level")
+ private Integer level;
+
+ /**
+ * 父级组织,根级为root
+ */
+ @TableField(value = "parent_id")
+ private String parentId;
+
+ /**
+ * 组织级别,1:市级,2:区级,3:镇街级,4:村居级
+ */
+ @TableField(value = "unit_grade")
+ private Integer unitGrade;
+
+ /**
+ * 组织名称
+ */
+ @TableField(value = "unit_name")
+ private String unitName;
+
+ /**
+ * 组织类型,0:政法委,1:综治中心,2:直属部门,3:法院,4:行专业调委会,5:企事业调委会,6:演示测试,9:其他
+ */
+ @TableField(value = "unit_type")
+ private Integer unitType;
+
+ /**
+ * 组织机构代码
+ */
+ @TableField(value = "unit_code")
+ private String unitCode;
+
+ /**
+ * 描述
+ */
+ @TableField(value = "unit_des")
+ private String unitDes;
+
+ /**
+ * 单位负责人姓名
+ */
+ @TableField(value = "duty_name")
+ private String dutyName;
+
+ /**
+ * 单位负责人手机号码
+ */
+ @TableField(value = "duty_mobile")
+ private String dutyMobile;
+
+ /**
+ * 单位负责人身份证
+ */
+ @TableField(value = "duty_idcard")
+ private String dutyIdcard;
+
+ /**
+ * 加入方式,1:系统创建,2:自主申请
+ */
+ @TableField(value = "join_way")
+ private Integer joinWay;
+
+ /**
+ * 组织地址省
+ */
+ @TableField(value = "prov")
+ private String prov;
+
+ /**
+ * 组织地址省名称
+ */
+ @TableField(value = "prov_name")
+ private String provName;
+
+ /**
+ * 组织地址市
+ */
+ @TableField(value = "city")
+ private String city;
+
+ /**
+ * 组织地址市名称
+ */
+ @TableField(value = "city_name")
+ private String cityName;
+
+ /**
+ * 组织地址区
+ */
+ @TableField(value = "area")
+ private String area;
+
+ /**
+ * 组织地址区名称
+ */
+ @TableField(value = "area_name")
+ private String areaName;
+
+ /**
+ * 组织地址街道
+ */
+ @TableField(value = "road")
+ private String road;
+
+ /**
+ * 组织地址街道名称
+ */
+ @TableField(value = "road_name")
+ private String roadName;
+
+ /**
+ * 组织地址社区
+ */
+ @TableField(value = "village")
+ private String village;
+
+ /**
+ * 组织地址社区名称
+ */
+ @TableField(value = "village_name")
+ private String villageName;
+
+ /**
+ * 组织详细地址
+ */
+ @TableField(value = "addr")
+ private String addr;
+
+ /**
+ * 组织经度
+ */
+ @TableField(value = "lng")
+ private String lng;
+
+ /**
+ * 组织纬度
+ */
+ @TableField(value = "lat")
+ private String lat;
+
+ /**
+ * 调解专长,多个用,隔开
+ */
+ @TableField(value = "good_field")
+ private String goodField;
+
+ /**
+ * 调解专长名称,多个用,隔开
+ */
+ @TableField(value = "good_field_name")
+ private String goodFieldName;
+
+ /**
+ * 调解范围,多个用,隔开
+ */
+ @TableField(value = "can_field")
+ private String canField;
+
+ /**
+ * 调解范围名称,多个用,隔开
+ */
+ @TableField(value = "can_field_name")
+ private String canFieldName;
+
+ /**
+ * 是否可以找他调(小程序),0:否,1:是
+ */
+ @TableField(value = "find_status")
+ private Integer findStatus;
+
+ /**
+ * 是否参与自动调度,0:否,1:是
+ */
+ @TableField(value = "disp_status")
+ private Integer dispStatus;
+
+ /**
+ * 删除状态,0:已删除,1:未删除
+ */
+ @TableLogic
+ @TableField(value = "delete_status")
+ private Integer deleteStatus;
+
+ /**
+ * 所属客户编号
+ */
+ @TableField(value = "cust_id")
+ private String custId;
+
+ /**
+ * 创建时间
+ */
+ @TableField(value = "create_time")
+ private Date createTime;
+
+ /**
+ * 更新时间
+ */
+ @TableField(value = "update_time")
+ private Date updateTime;
+
+}
diff --git a/dyh-service/dyh-sync/src/main/java/cn/huge/module/sync/service/SyncService.java b/dyh-service/dyh-sync/src/main/java/cn/huge/module/sync/service/SyncService.java
new file mode 100644
index 0000000..a8449ee
--- /dev/null
+++ b/dyh-service/dyh-sync/src/main/java/cn/huge/module/sync/service/SyncService.java
@@ -0,0 +1,105 @@
+package cn.huge.module.sync.service;
+
+import cn.huge.module.client.api.impl.CustClientImpl;
+import cn.huge.module.sync.dao.mapper.SyncMapper;
+import cn.huge.module.sync.domain.source.SourceCtUnit;
+import cn.huge.module.sync.domain.target.TargetCtUnit;
+import org.apache.commons.beanutils.BeanUtils;
+import org.apache.commons.beanutils.ConvertUtils;
+import org.apache.commons.beanutils.converters.DateConverter;
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Sort;
+import org.springframework.stereotype.Service;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * @author liyj
+ * @version 1.0.0
+ * @title: 客户用户账号表业务逻辑处理
+ * @Description 客户用户账号表业务逻辑处理
+ * @company hugeinfo
+ * @Time 2024-08-17 15:30:56
+ */
+@Slf4j
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class SyncService {
+ @Autowired
+ private SyncMapper syncMapper;
+ @Autowired
+ private CustClientImpl custClient;
+
+ private static final String MYSQL_TABLE = "dyh_ct_unit";
+
+ public void syncData() {
+ try {
+ List<SourceCtUnit> sourceCtUnitList = new ArrayList<>();
+ List<TargetCtUnit> targetCtUnitList = new ArrayList<>();
+
+ // 查询MySQL表结构
+ Sort sort = Sort.by(Sort.Direction.ASC, "create_time");
+ int page = 1;
+ int size = 1000;
+ PageRequest pageRequest = PageRequest.of(page-1, size, sort);
+ sourceCtUnitList = syncMapper.pageInfo(MYSQL_TABLE, pageRequest);
+
+ //查询mysql总量
+ int total = syncMapper.countData(MYSQL_TABLE);
+
+ //查出最大页数
+ int maxPage = 1;
+ maxPage = (total / size);
+ if (0 != total % size) {
+ maxPage += 1;
+ }
+
+ for (int i = 1; i >= maxPage; i++) {
+ for(SourceCtUnit sourceCtUnit: sourceCtUnitList){
+ TargetCtUnit targetCtUnit = new TargetCtUnit();
+ ConvertUtils.register(new DateConverter(null), java.util.Date.class);
+ BeanUtils.copyProperties(targetCtUnit, sourceCtUnit);
+// for(Field field: sourceCtUnit.getClass().getDeclaredFields()){
+// convertType(field.get(sourceCtUnit), field.getName(), targetCtUnit);
+// }
+ targetCtUnitList.add(targetCtUnit);
+ }
+ if(CollectionUtils.isNotEmpty(targetCtUnitList)){
+ custClient.clientGetUser(targetCtUnitList);
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 时间转换的时候,调用初始化,时间类型转换
+ * 使用:直接在实体中加上一个注解形式。
+ */
+ public static void initDate(){
+// 时间注册
+ DateConverter converter = new DateConverter(null);
+ converter.setPattern(new String("yyyy-MM-dd HH:mm:ss"));
+ ConvertUtils.register(converter, Date.class);
+ }
+
+
+ public void convertType(Object value, String columnName, TargetCtUnit targetCtUnit) {
+ if (value == null) {
+ targetCtUnit.setUnitType(Integer.valueOf("NULL"));
+ }else if("unitType".equals(columnName) || "joinWay".equals(columnName) || "findStatus".equals(columnName)
+ || "dispStatus".equals(columnName)|| "deleteStatus".equals(columnName)){
+ targetCtUnit.setUnitType(Integer.parseInt((String) value));
+ }
+
+ }
+}
\ No newline at end of file
--
Gitblit v1.8.0