diff --git a/SynologyDrive/4.数据库变更记录/李雅玮sql变更记录.sql b/SynologyDrive/4.数据库变更记录/李雅玮sql变更记录.sql index e69de29bb..f30dacd83 100644 --- a/SynologyDrive/4.数据库变更记录/李雅玮sql变更记录.sql +++ b/SynologyDrive/4.数据库变更记录/李雅玮sql变更记录.sql @@ -0,0 +1,29 @@ +---2022-05-25 +---部门表 添加需要同步的字段 +ALTER TABLE `laws_weilai`.`sys_depart` + ADD COLUMN `manager_id` varchar(100) NULL COMMENT '部门负责人员工号' AFTER `memo`, + ADD COLUMN `manager_wk_uid` varchar(100) NULL COMMENT '部门负责人域账号' AFTER `manager_id`, + ADD COLUMN `hr_partner` varchar(255) NULL COMMENT '部门 HRBP(多个会用";"隔开)' AFTER `manager_wk_uid`, + ADD COLUMN `location_id` varchar(100) NULL COMMENT '部门所在地ID' AFTER `hr_partner`, + ADD COLUMN `cluster_id` varchar(100) NULL COMMENT '部门所属集群ID' AFTER `location_id`, + ADD COLUMN `cluster_en` varchar(255) NULL COMMENT '部门所属集群英文名' AFTER `cluster_id`, + ADD COLUMN `cluster_cn` varchar(255) NULL COMMENT '部门所属集群中文名' AFTER `cluster_en`, + ADD COLUMN `function` varchar(50) NULL COMMENT 'City / Corp' AFTER `cluster_cn`, + ADD COLUMN `tier` varchar(255) NULL COMMENT '部门层级' AFTER `function`, + ADD COLUMN `is_announced_department` varchar(10) NULL COMMENT '是否官宣部门(0-是,1-否)' AFTER `tier`, + ADD COLUMN `org_announced_department_ref_id` varchar(100) NULL COMMENT '官宣部门ID' AFTER `is_announced_department`, + ADD COLUMN `depart_source` varchar(255) NULL COMMENT '部门数据来源(pp-people同步数据)' AFTER `org_announced_department_ref_id`; + +---2022-05-26 +---用户表 添加需要同步的字段 +ALTER TABLE `laws_weilai`.`sys_user` + MODIFY COLUMN `third_type` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '第三方类型(pp-people同步用户)' AFTER `third_id`, + ADD COLUMN `job_code` varchar(100) NULL AFTER `worker_type`, + ADD COLUMN `job_title` varchar(255) NULL AFTER `job_code`; + +ALTER TABLE `laws_weilai`.`sys_depart` + MODIFY COLUMN `id` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'ID' FIRST; +ALTER TABLE `laws_weilai`.`sys_depart` + MODIFY COLUMN `parent_id` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '父机构ID' AFTER `id`; +ALTER TABLE `laws_weilai`.`sys_depart` + MODIFY COLUMN `depart_order` varchar(100) NULL DEFAULT 0 COMMENT '排序' AFTER `depart_name_abbr`; \ No newline at end of file diff --git a/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/vo/SysDepartTreeModel.java b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/vo/SysDepartTreeModel.java index f268080b4..c9bbe32fd 100644 --- a/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/vo/SysDepartTreeModel.java +++ b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/vo/SysDepartTreeModel.java @@ -41,7 +41,7 @@ public class SysDepartTreeModel implements Serializable{ private String departNameAbbr; - private Integer departOrder; + private String departOrder; private String description; @@ -233,11 +233,11 @@ public class SysDepartTreeModel implements Serializable{ this.departNameAbbr = departNameAbbr; } - public Integer getDepartOrder() { + public String getDepartOrder() { return departOrder; } - public void setDepartOrder(Integer departOrder) { + public void setDepartOrder(String departOrder) { this.departOrder = departOrder; } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/PPDepartment.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/PPDepartment.java new file mode 100644 index 000000000..c1e1e4b59 --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/PPDepartment.java @@ -0,0 +1,29 @@ +package com.jero.modules.system.entity; + +import lombok.Data; + +/** + * @Author: liyawei + * @Description: + * @Date: Created in 16:12 2022/5/25 + */ +@Data +public class PPDepartment { + private String ref_id; //部门ID ----id + private String name_en; //部门英文名 ----depart_name_en + private String name_cn; //部门中文名 ----depart_name + private String code; //部门code ----org_code + private String manager_id; //部门负责人员工号 + private String manager_wk_uid; //部门负责人域账号 + private String hr_partner; //部门 HRBP(多个会用";"隔开) + private String superior_id; //上级部门ID ----parent_id + private String location_id; //部门所在地ID + private String cluster_id; //部门所属集群ID + private String cluster_en; //部门所属集群英文名 + private String cluster_cn; //部门所属集群中文名 + private String function; //City / Corp + private String tier; //部门层级 + private boolean is_announced_department; //是否官宣部门 + private String org_announced_department_ref_id; //官宣部门ID + private boolean active; //是否有效 ----del_flag +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDepart.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDepart.java index 6e19e4755..4f067e033 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDepart.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDepart.java @@ -55,7 +55,7 @@ public class SysDepart implements Serializable { private String orgCategory; /**排序*/ @Excel(name="排序",width=15) - private Integer departOrder; + private String departOrder; /**父级机构编码*/ private String parentCode; /**手机号*/ @@ -92,6 +92,19 @@ public class SysDepart implements Serializable { @TableField(exist = false) private String cut; //中英文切换标识 + //新添加的 + private String managerId; //部门负责人员工号 + private String managerWkUid; //部门负责人域账号 + private String hrPartner; //部门 HRBP(多个会用";"隔开) + private String locationId; //部门所在地ID + private String clusterId; //部门所属集群ID + private String clusterEn; //部门所属集群英文名 + private String clusterCn; //部门所属集群中文名 + private String function; //City / Corp + private String tier; //部门层级 + private String isAnnouncedDepartment; //是否官宣部门 + private String orgAnnouncedDepartmentRefId; //官宣部门ID + private String departSource;//部门数据来源 /** * 重写equals方法 diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/PPSyncEnum.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/PPSyncEnum.java new file mode 100644 index 000000000..3c4b6a471 --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/PPSyncEnum.java @@ -0,0 +1,29 @@ +package com.jero.modules.system.enums; + +/** + * @Author: liyawei + * @Description: + * @Date: Created in 14:12 2022/5/26 + */ +public enum PPSyncEnum { + PP_DEPART("同步部门","PPDEPART"), + PP_USER("同步用户","PPUSER"), + PP("数据来源","pp"); + + private String name; + private String value; + + + private PPSyncEnum(String name, String value) { + this.name = name; + this.value = value; + } + + public String getName() { + return name; + } + + public String getValue() { + return value; + } +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysDepartService.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysDepartService.java index 29298c12e..39b72e4e7 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysDepartService.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysDepartService.java @@ -2,6 +2,7 @@ package com.jero.modules.system.service; import com.baomidou.mybatisplus.extension.service.IService; import com.jero.common.system.vo.SysDepartTreeModel; +import com.jero.modules.system.entity.PPDepartment; import com.jero.modules.system.entity.SysDepart; import com.jero.modules.system.model.DepartIdModel; import java.util.List; @@ -138,4 +139,9 @@ public interface ISysDepartService extends IService{ * @return */ void updateAllParentId(); + + List getPPDepartList(); + SysDepart addPPDepart(PPDepartment ppDepartment); + void updatePPDepart(PPDepartment ppDepartment); + } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDepartServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDepartServiceImpl.java index 20f2b5224..1e17da837 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDepartServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDepartServiceImpl.java @@ -10,6 +10,7 @@ import com.jero.common.system.vo.SysDepartTreeModel; import com.jero.common.util.FillRuleUtil; import com.jero.common.util.YouBianCodeUtil; import com.jero.modules.system.entity.*; +import com.jero.modules.system.enums.PPSyncEnum; import com.jero.modules.system.mapper.*; import com.jero.modules.system.model.DepartIdModel; import com.jero.modules.system.service.ISysDepartService; @@ -81,7 +82,7 @@ public class SysDepartServiceImpl extends ServiceImpl queryTreeList() { LambdaQueryWrapper query = new LambdaQueryWrapper(); query.eq(SysDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString()); - query.orderByAsc(SysDepart::getDepartOrder); + query.last("order by depart_order is null, depart_order asc"); List list = this.list(query); // 调用wrapTreeDataToTreeList方法生成树状数据 List listResult = FindsDepartsChildrenUtil.wrapTreeDataToTreeList(list); @@ -99,7 +100,7 @@ public class SysDepartServiceImpl extends ServiceImpl list = this.list(query); // 调用wrapTreeDataToTreeList方法生成树状数据 List listResult = new ArrayList<>(); @@ -566,4 +567,74 @@ public class SysDepartServiceImpl extends ServiceImpl getPPDepartList() { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysDepart::getDepartSource, PPSyncEnum.PP.getValue()) + .eq(SysDepart::getDelFlag, 0); + return this.list(queryWrapper); + } + + @Override + public SysDepart addPPDepart(PPDepartment ppDepartment) { + SysDepart addDepart = new SysDepart(); + addDepart.setId(ppDepartment.getRef_id()); + addDepart.setDepartNameEn(ppDepartment.getName_en()); + addDepart.setDepartName(ppDepartment.getName_cn()); + addDepart.setOrgCode(ppDepartment.getRef_id()); // 这里有点特殊 同步的数据中存在code为null的情况 + addDepart.setManagerId(ppDepartment.getManager_id()); + addDepart.setManagerWkUid(ppDepartment.getManager_wk_uid()); + addDepart.setHrPartner(ppDepartment.getHr_partner()); + addDepart.setParentId(ppDepartment.getSuperior_id()); + addDepart.setLocationId(ppDepartment.getLocation_id()); + addDepart.setClusterId(ppDepartment.getCluster_id()); + addDepart.setClusterEn(ppDepartment.getCluster_en()); + addDepart.setClusterCn(ppDepartment.getCluster_cn()); + addDepart.setFunction(ppDepartment.getFunction()); + addDepart.setTier(ppDepartment.getTier()); + addDepart.setIsAnnouncedDepartment(ppDepartment.is_announced_department() ? "0": "1"); + addDepart.setOrgAnnouncedDepartmentRefId(ppDepartment.getOrg_announced_department_ref_id()); + addDepart.setDelFlag(ppDepartment.isActive() ? "0": "1"); + addDepart.setDepartOrder(ppDepartment.getCode()); + + addDepart.setOrgCategory("2"); + addDepart.setDepartSource(PPSyncEnum.PP.getValue()); + + SysDepart checkDepart = getById(addDepart.getId()); + if(checkDepart !=null){ + log.error("当前部门已存在,出现异常数据"+ JSONObject.toJSONString(addDepart)); + }else{ + save(addDepart); + } + + return addDepart; + } + + @Override + public void updatePPDepart(PPDepartment ppDepartment) { + SysDepart updateDepart = getById(ppDepartment.getRef_id()); + + updateDepart.setDepartNameEn(ppDepartment.getName_en()); + updateDepart.setDepartName(ppDepartment.getName_cn()); + updateDepart.setOrgCode(ppDepartment.getRef_id()); + updateDepart.setManagerId(ppDepartment.getManager_id()); + updateDepart.setManagerWkUid(ppDepartment.getManager_wk_uid()); + updateDepart.setHrPartner(ppDepartment.getHr_partner()); + updateDepart.setParentId(ppDepartment.getSuperior_id()); + updateDepart.setLocationId(ppDepartment.getLocation_id()); + updateDepart.setClusterId(ppDepartment.getCluster_id()); + updateDepart.setClusterEn(ppDepartment.getCluster_en()); + updateDepart.setClusterCn(ppDepartment.getCluster_cn()); + updateDepart.setFunction(ppDepartment.getFunction()); + updateDepart.setTier(ppDepartment.getTier()); + updateDepart.setIsAnnouncedDepartment(ppDepartment.is_announced_department() ? "0": "1"); + updateDepart.setOrgAnnouncedDepartmentRefId(ppDepartment.getOrg_announced_department_ref_id()); + updateDepart.setDelFlag(ppDepartment.isActive() ? "0": "1"); + updateDepart.setDepartOrder(ppDepartment.getCode()); + + updateDepart.setUpdateTime(new Date()); + updateById(updateDepart); + + } }