diff --git a/lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/task/UpdateDeptTask.java b/lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/task/UpdateDeptTask.java new file mode 100644 index 00000000..9016276a --- /dev/null +++ b/lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/task/UpdateDeptTask.java @@ -0,0 +1,77 @@ +package com.zdxt.app.task; + +import cn.hutool.core.map.MapUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.zdxt.auth.common.utils.StringUtils; +import com.zdxt.auth.dto.UserBean; +import com.zdxt.auth.feign.UserApi; +import com.zdxt.auth.project.system.dept.service.IDeptService; +import com.zdxt.auth.project.system.dict.service.IDictDataService; +import com.zdxt.auth.project.system.user.service.IUserService; +import com.zdxt.domain.auth.Dept; +import com.zdxt.domain.auth.DictData; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.security.MessageDigest; +import java.util.*; +import java.util.stream.Collectors; + + +/** + * @Author: kylin + * @Date: 2024/5/9 2:58 下午 + * @Version: 1.0 + * @Desc: TODO + */ +@Component("UpdateDeptTask") +public class UpdateDeptTask { + @Autowired private IDeptService deptService; + + private static final Logger log = LoggerFactory.getLogger(UpdateDeptTask.class); + + + public void run(){ + this.updateAncestors(); + } + + public void updateAncestors() { + // 先查出所有部门的id,parentId 信息 + List deptList = deptService.selectDeptAll(); + for (Dept dept : deptList) { + List ancs = new ArrayList<>(); + ancs = convertAncestors(dept, deptList, ancs); + ancs.add("0"); + Collections.reverse(ancs); + String anc = String.join(",", ancs); + dept.setAncestors(anc); + deptService.updateAncestorsById(dept); + log.info("{} -> {}", dept.getDeptId(), anc); + } + } + + private List convertAncestors(Dept dept, List deptList, List ancs) { + for (Dept tmp : deptList) { + if (dept.getParentId().equals(tmp.getDeptId()) && !dept.getDeptId().equals(tmp.getDeptId())) { + ancs.add(tmp.getDeptId()); + return convertAncestors(tmp, deptList, ancs); + } + } + return ancs; + } +} diff --git a/lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/task/UserInfoAndDeptTask.java b/lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/task/UserInfoAndDeptTask.java index 5805be76..32e65415 100644 --- a/lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/task/UserInfoAndDeptTask.java +++ b/lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/task/UserInfoAndDeptTask.java @@ -66,7 +66,7 @@ public class UserInfoAndDeptTask { public void run(){ - this.userInfoAndDept(); + this.testRun2(); } /** @@ -166,11 +166,46 @@ public class UserInfoAndDeptTask { } } + public void testRun2() { + String path = "/uploadPath/tmp.txt"; // 替换为你的JSON文件路径 + try { + String deptInfoJson = new String(Files.readAllBytes(Paths.get(path)), StandardCharsets.UTF_8); + System.out.println(deptInfoJson); + JSONArray dataArr = JSONArray.parseArray(deptInfoJson); + for (int i = 0; i < dataArr.size(); i++) { + JSONObject jsonObject = dataArr.getJSONObject(i); + String parentId = jsonObject.getString("parent_id"); + + List ancUrls = new ArrayList<>(); + List ancs = this.convertAncestors(dataArr, parentId, ancUrls); + String anc = String.join(",", ancs); + } + + + } catch (IOException e) { + e.printStackTrace(); + } + } + + + private List convertAncestors(JSONArray dataList, String curParentId, List ancUrls) { + if ("1".equals(curParentId)) { return ancUrls; } + for (int i = 0; i < dataList.size(); i++) { + JSONObject data = dataList.getJSONObject(i); + String deptParentId = data.getString("parent_id"); + if (curParentId.equals(deptParentId)) { + String anc = data.getString("id"); + ancUrls.add(anc); + break; + } + } + + return convertAncestors(dataList, curParentId, ancUrls); + } public void testRun() { - String path = "/uploadPath/userInfo.txt"; // 替换为你的JSON文件路径 -// String path = "/uploadPath/detpInfo.txt"; // 替换为你的JSON文件路径 + String path = "/uploadPath/detpInfo.txt"; // 替换为你的JSON文件路径 try { int page = 0; int pageSize = 20; diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/dept/mapper/DeptMapper.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/dept/mapper/DeptMapper.java index 68b9dd13..9c872fb0 100644 --- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/dept/mapper/DeptMapper.java +++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/dept/mapper/DeptMapper.java @@ -13,6 +13,8 @@ import org.apache.ibatis.annotations.Param; public interface DeptMapper { + public List selectDeptAll(); + /** * 新增部门,同步金蝶数据时使用 * @param dept @@ -90,6 +92,7 @@ public interface DeptMapper */ public int updateDept(Dept dept); public int updateDeptByOrganizationId(Dept dept); + public int updateAncestorsById(Dept dept); /** * 修改子元素关系 diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/dept/service/DeptServiceImpl.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/dept/service/DeptServiceImpl.java index 2df452d1..b53cf121 100644 --- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/dept/service/DeptServiceImpl.java +++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/dept/service/DeptServiceImpl.java @@ -466,4 +466,15 @@ public class DeptServiceImpl implements IDeptService resMap.put("updateNum", updateNum); return resMap; } + + @Override + public List selectDeptAll() + { + return deptMapper.selectDeptAll(); + } + + @Override + public int updateAncestorsById(Dept dept) { + return deptMapper.updateAncestorsById(dept); + } } diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/dept/service/IDeptService.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/dept/service/IDeptService.java index 6758929a..883da2cc 100644 --- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/dept/service/IDeptService.java +++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/dept/service/IDeptService.java @@ -160,4 +160,7 @@ public interface IDeptService public List selectDeptListHole(Dept dept); public List selectDeptTreeNotRole(Dept dept); + + public List selectDeptAll(); + public int updateAncestorsById(Dept dept); } diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/resources/mapper/system/DeptMapper.xml b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/resources/mapper/system/DeptMapper.xml index 92fa74ce..8eba5ce2 100644 --- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/resources/mapper/system/DeptMapper.xml +++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/resources/mapper/system/DeptMapper.xml @@ -53,6 +53,19 @@ fullname, isMappingUnit, srzUnitId, taskId from sys_dept d + + + update sys_dept + + ancestors = #{ancestors}, + update_time = sysdate() + + where dept_id = #{deptId} + + + SELECT LAST_INSERT_ID()