Files
zhgh_njnu/src/test/java/com/budwk/app/JugTest.java
T
2025-09-19 17:45:43 +08:00

400 lines
34 KiB
Java

package com.budwk.app;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.digest.DigestUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.budwk.app.base.utils.PwdUtil;
import com.budwk.app.sys.enums.SysDataUpdateMode;
import com.budwk.app.sys.models.Sys_dict;
import com.budwk.app.sys.models.Sys_unit;
import com.budwk.app.sys.models.Sys_user;
import com.budwk.app.sys.models.Sys_user_role;
import com.budwk.app.sys.param.SysDataUserUpdateParam;
import com.budwk.app.sys.services.SysDictService;
import com.budwk.app.sys.services.SysUnitService;
import com.budwk.app.sys.services.SysUserService;
import com.budwk.app.sys.services.impl.SysDataUserAllUpdateServiceImpl;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.nutz.boot.test.junit4.NbJUnit4Runner;
import org.nutz.dao.Chain;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.lang.Files;
import org.nutz.lang.random.R;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.regex.Pattern;
@IocBean
@RunWith(NbJUnit4Runner.class)
public class JugTest {
@Inject
private SysDictService sysDictService;
@Inject
private SysUserService sysUserService;
@Inject
private SysUnitService sysUnitService;
@Inject
private Dao dao;
@Test
public void t0001() {
String s = """
{"@odata.context":"$metadata#DS0005_1926887238437818371","value":[{"机构编码":"006","机构名称":"教务处(教育教学发展与评估中心合署)[创新创业教育办公室(中心)挂靠](下设现代教育技术中心)/现代教育技术中心","机构类别":"4","隶属机构":"100085","是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2024-11-20T02:56:28.187Z"},{"机构编码":"100001","机构名称":"党委办公室(保密办公室合署)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100006","机构名称":"党委组织部(党校合署)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100010","机构名称":"机关与直属单位党委","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100014","机构名称":"党委宣传部","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100021","机构名称":"党委统战部(社会主义学院合署)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100025","机构名称":"纪委","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100029","机构名称":"校长办公室[法律事务中心(信访办公室合署)挂靠]","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100036","机构名称":"研究生院(党委研究生工作部合署)(下设招生办公室、学位办公室、培养办公室、教育管理与就业办公室、综合办公室)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100044","机构名称":"学科建设处(“双一流”建设办公室合署)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100047","机构名称":"科学技术研究院(应用研究院合署)(下设军工办公室)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100056","机构名称":"人文社会科学研究院","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100060","机构名称":"人力资源处(党委教师工作部合署)(下设人才服务与管理办公室)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100068","机构名称":"国际合作与交流处(港澳台事务办公室合署)(下设留学生管理办公室、孔子学院办公室)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100075","机构名称":"学生工作处(党委学生工作部、人民武装部合署)(下设心理健康教育中心)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100085","机构名称":"教务处(教育教学发展与评估中心合署)[创新创业教育办公室(中心)挂靠](下设现代教育技术中心)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100093","机构名称":"财务处(下设财务结算中心)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100100","机构名称":"审计处","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100106","机构名称":"保卫处(党委保卫部合署)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100112","机构名称":"后勤管理处(下设公用后勤服务保障中心)(校医院挂靠)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100148","机构名称":"基建处","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100158","机构名称":"发展规划处(党委发展规划部合署)(下设校地合作办公室)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100161","机构名称":"资产管理处(采购中心挂靠)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100167","机构名称":"信息化建设管理处(下设网络与信息中心)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100178","机构名称":"离退休工作处(离退休党工委合署)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100183","机构名称":"继续教育学院","机构类别":"10","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"直属单位(教辅机构)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100188","机构名称":"工会","机构类别":"11","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"群团组织","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100192","机构名称":"团委","机构类别":"11","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"群团组织","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100193","机构名称":"美育中心","机构类别":"10","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"直属单位(教辅机构)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100199","机构名称":"发展委员会(下设董事会及基金会工作办公室、校友工作办公室)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100203","机构名称":"档案馆","机构类别":"10","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"直属单位(教辅机构)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100204","机构名称":"博物馆","机构类别":"10","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"直属单位(教辅机构)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100205","机构名称":"灵岩融创区建设管理委员会办公室","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100218","机构名称":"图书馆","机构类别":"10","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"直属单位(教辅机构)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100234","机构名称":"图书馆(出版社有限责任公司)","机构类别":"6","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"附属单位","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100251","机构名称":"实验室与设备管理处(分析测试中心合署)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100268","机构名称":"国际文化教育学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100276","机构名称":"文学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100286","机构名称":"学报编辑部(《中国美术教育》编辑部挂靠)","机构类别":"10","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"直属单位(教辅机构)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100296","机构名称":"外国语学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100324","机构名称":"历史文博学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100347","机构名称":"商学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100364","机构名称":"法学院(下设中国法治现代化研究院)","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100387","机构名称":"教育科学学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100401","机构名称":"心理学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100423","机构名称":"公共管理学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100439","机构名称":"新闻与传播学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100458","机构名称":"音乐学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100472","机构名称":"美术学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100492","机构名称":"体育科学学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100511","机构名称":"计算机与电子信息学院 人工智能学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100546","机构名称":"物理科学与技术学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100564","机构名称":"化学与材料科学学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100587","机构名称":"地理科学学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100605","机构名称":"生命科学学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100631","机构名称":"电气与自动化工程学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100646","机构名称":"能源与机械工程学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100658","机构名称":"金陵女子学院 社会学院 会计学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100678","机构名称":"强化培养学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100684","机构名称":"中北学院","机构类别":"6","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"附属单位","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100700","机构名称":"泰州学院","机构类别":"6","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"附属单位","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100744","机构名称":"附属实验学校","机构类别":"6","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"附属单位","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100749","机构名称":"数学科学学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100777","机构名称":"后勤管理处(资产经营有限责任公司)","机构类别":"6","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"附属单位","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100782","机构名称":"教师教育学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100788","机构名称":"校领导","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100791","机构名称":"博士后流动站","机构类别":"13","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"历史遗留机构","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100800","机构名称":"环境学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100801","机构名称":"马克思主义学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100802","机构名称":"海洋科学与工程学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100803","机构名称":"食品与制药工程学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100804","机构名称":"随园校区办公室","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100805","机构名称":"紫金校区办公室","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100806","机构名称":"基础教育合作处","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100807","机构名称":"南京师范大学培训中心(江苏省高校师资培训中心合署)","机构类别":"10","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"直属单位(教辅机构)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100808","机构名称":"教务处(教育教学发展与评估中心合署)[创新创业教育办公室(中心)挂靠](下设现代教育技术中心)/教务处","机构类别":"4","隶属机构":"100085","是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2024-11-20T02:56:28.187Z"},{"机构编码":"100809","机构名称":"科学技术研究院(应用研究院合署)(下设军工办公室)/科学技术研究院","机构类别":"4","隶属机构":"100047","是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2024-11-20T02:56:28.187Z"},{"机构编码":"100810","机构名称":"科学技术研究院(应用研究院合署)(下设军工办公室)/军工办公室","机构类别":"4","隶属机构":"100047","是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2024-11-20T02:56:28.187Z"},{"机构编码":"100900","机构名称":"党委巡察工作办公室","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"101","机构名称":"入校后统一分配/辅导员","机构类别":null,"隶属机构":"100","是否撤销_name":"否","是否撤销":"0","机构类别_name":null,"更新时间":"2024-11-20T02:56:28.187Z"},{"机构编码":"139801","机构名称":"后勤管理处(下设公用后勤服务保障中心)(校医院挂靠)/公用后勤服务保障中心","机构类别":null,"隶属机构":"100112","是否撤销_name":"否","是否撤销":"0","机构类别_name":null,"更新时间":"2024-11-20T02:56:28.187Z"},{"机构编码":"139802","机构名称":"后勤管理处(下设公用后勤服务保障中心)(校医院挂靠)/后勤管理处","机构类别":null,"隶属机构":"100112","是否撤销_name":"否","是否撤销":"0","机构类别_name":null,"更新时间":"2024-11-20T02:56:28.187Z"},{"机构编码":"139803","机构名称":"后勤管理处(下设公用后勤服务保障中心)(校医院挂靠)/校医院","机构类别":null,"隶属机构":"100112","是否撤销_name":"否","是否撤销":"0","机构类别_name":null,"更新时间":"2024-11-20T02:56:28.187Z"},{"机构编码":"139804","机构名称":"法学院(下设中国法治现代化研究院)/法学院","机构类别":null,"隶属机构":"100364","是否撤销_name":"否","是否撤销":"0","机构类别_name":null,"更新时间":"2024-11-20T02:56:28.187Z"},{"机构编码":"139805","机构名称":"法学院(下设中国法治现代化研究院)/中国法治现代化研究院","机构类别":null,"隶属机构":"100364","是否撤销_name":"否","是否撤销":"0","机构类别_name":null,"更新时间":"2024-11-20T02:56:28.187Z"}]}
""";
JSONObject entries = JSONUtil.parseObj(s);
JSONArray value = entries.getJSONArray("value");
List<Sys_unit> units = value.stream().map(item -> {
JSONObject jsonObject = (JSONObject) item;
Sys_unit sysUnit = new Sys_unit();
sysUnit.setId(jsonObject.getStr("机构编码"));
sysUnit.setName(jsonObject.getStr("机构名称"));
sysUnit.setUnitcode(jsonObject.getStr("机构编码"));
sysUnit.setParentId(StrUtil.blankToDefault(jsonObject.getStr("隶属机构"), "1"));
return sysUnit;
}).toList();
dao.fastInsert(units);
}
@Test
public void t003() {
String s = """
"党政_副处调",
专任教师,
管理_免职,
校办企业,
党政_科员,
专业技术人员,
教辅_实验教学,
管理_团委书记,
管理_办事员,
管理_学生辅导员,
管理_院党委副书记,
管理_本科生教务员,
党政_正科职,
党政_正处职,
无,
党政_副处职,
党政_副厅职,
管理_副院长,
管理_科研秘书,
管理_研究生教务员,
工勤人员,
管理_院党委书记,
管理_专职组织员、人事秘书,
教辅_工勤人员,
党政_正处调,
教辅_实验设备维护,
管理_科研辅助人员,
管理_办公室主任,
教辅_图书资料员,
党政_副科职,
党政_秘书,
管理_成教生教务员,
管理_其他正科职,
管理_正处调,
管理_副处调,
管理_管理,
教辅_其他人员,
管理_学科秘书,
管理_机构秘书,
党政_副省职,
管理_院长,
党政_正厅职,
管理_科研副院长;
""";
String[] split = s.split(",");
String parentId = "c78bb5c7bc264b928307508357dea4f0";
for (String string : split) {
Sys_dict dict = new Sys_dict();
dict.setCode(string.trim());
dict.setName(string.trim());
dict.setHasChildren(false);
dict.setDisabled(false);
sysDictService.save(dict, parentId);
}
}
@Test
public void t004() {
String appId = "1926887238437818370";
String secret = "32df31fcf4fc43f9a647ee1f47134f36";
List<JSONObject> allUsers = new ArrayList<>();
int skip = 0;
int totalCount = 0;
boolean firstRequest = true;
do {
long ts = System.currentTimeMillis();
String sign = Base64.encode(DigestUtil.md5Hex(appId + secret + ts, CharsetUtil.CHARSET_UTF_8));
HttpRequest httpRequest = HttpUtil.createPost("https://sjzcpt.nnu.edu.cn/cdsp/data-api/v2/DS0040");
httpRequest.header("Content-Type", "application/json");
httpRequest.header("appId", appId);
httpRequest.header("timestamp", String.valueOf(ts));
httpRequest.header("sign", sign);
HashMap<String, Object> reqBody = new HashMap<>();
reqBody.put("$count", true);
reqBody.put("$skip", skip);
reqBody.put("$top", 1000);
httpRequest.body(JSONUtil.toJsonStr(reqBody));
String resBody = httpRequest.execute().body();
JSONObject entries = JSONUtil.parseObj(resBody);
if (firstRequest) {
totalCount = entries.getInt("@odata.count", 0);
firstRequest = false;
}
JSONArray value = entries.getJSONArray("value");
if (!value.isEmpty()) {
List<JSONObject> list = value.stream().map(item -> (JSONObject) item).toList();
allUsers.addAll(list);
skip += list.size();
} else {
break;
}
} while (skip < totalCount);
Files.write(new File("C:\\Users\\administrator\\Desktop\\博士后.txt"), allUsers);
System.out.println(allUsers.size());
}
@Test
public void userPwd() {
List<Sys_user> users = dao.query(Sys_user.class, Cnd.NEW());
String pwd = "1";
for (Sys_user user : users) {
user.setSalt(R.UU32());
user.setPassword(PwdUtil.getPassword(pwd, user.getSalt()));
}
dao.update(users, "password|salt");
}
@Inject
private SysDataUserAllUpdateServiceImpl sysDataUserUpdateService;
@Test
public void userUpdateTask() {
SysDataUserUpdateParam param = new SysDataUserUpdateParam();
param.setPullTime("2025-09-15 01:00:06");
param.setUpdateMode(SysDataUpdateMode.ALL.name());
param.setConditionGroup(null);
sysDataUserUpdateService.update(param);
}
@Test
public void bsh() {
List<String> bsh = new ArrayList<>();
bsh.add("91036");
bsh.add("91035");
bsh.add("91030");
bsh.add("91034");
bsh.add("91033");
bsh.add("91031");
bsh.add("91032");
bsh.add("91027");
bsh.add("91026");
bsh.add("91024");
bsh.add("91025");
bsh.add("91023");
bsh.add("91021");
bsh.add("91020");
bsh.add("91022");
bsh.add("91018");
bsh.add("91015");
bsh.add("91017");
bsh.add("91014");
bsh.add("91013");
bsh.add("91012");
bsh.add("91011");
bsh.add("91008");
bsh.add("91004");
bsh.add("90996");
bsh.add("90994");
bsh.add("90992");
bsh.add("90993");
bsh.add("90991");
bsh.add("90990");
bsh.add("90979");
bsh.add("90978");
bsh.add("90976");
bsh.add("90975");
bsh.add("90974");
bsh.add("90972");
bsh.add("90971");
bsh.add("90973");
bsh.add("90969");
bsh.add("90966");
bsh.add("90967");
bsh.add("90965");
bsh.add("90964");
bsh.add("90968");
bsh.add("90959");
bsh.add("90957");
bsh.add("90958");
bsh.add("90961");
bsh.add("90960");
bsh.add("90952");
bsh.add("90950");
bsh.add("90951");
bsh.add("90953");
bsh.add("90954");
bsh.add("90948");
bsh.add("90947");
bsh.add("90949");
bsh.add("90946");
bsh.add("90942");
bsh.add("90937");
bsh.add("90935");
bsh.add("90934");
bsh.add("90933");
bsh.add("90932");
bsh.add("90930");
bsh.add("90927");
bsh.add("90926");
bsh.add("90913");
bsh.add("90906");
bsh.add("90904");
bsh.add("90903");
bsh.add("90901");
bsh.add("90899");
bsh.add("90898");
bsh.add("90895");
bsh.add("90894");
List<Sys_user> users = dao.query(Sys_user.class, Cnd.where(Sys_user::getLoginname, "in", bsh));
for (Sys_user user : users) {
user.setMember(true);
dao.update(users, "member");
Sys_user_role user_role = new Sys_user_role();
user_role.setUserId(user.getId());
user_role.setRoleId("6d603b652abee584ba6274dc1fcee3bb");
dao.insert(user_role);
}
}
@Test
public void test0001() {
SysDataUserUpdateParam param = new SysDataUserUpdateParam();
param.setPullTime("2025-06-20 15:21:16");
param.setUpdateMode(SysDataUpdateMode.ALL.name());
sysDataUserUpdateService.update(param);
}
// 中国大陆手机号正则表达式
private static final String MOBILE_REGEX = "^1[3-9]\\d{9}$";
private static final Pattern MOBILE_PATTERN = Pattern.compile(MOBILE_REGEX);
/**
* 验证手机号格式
*/
private boolean isValidMobile(String mobile) {
if (StrUtil.isBlank(mobile)) {
return false;
}
return MOBILE_PATTERN.matcher(mobile.trim()).matches();
}
@Test
public void importWelfareMobile() {
try {
File file = new File("C:\\Users\\administrator\\Desktop\\副本2025年南师大端午发放清单0915.xlsx");
ImportParams params = new ImportParams();
List<User> list = ExcelImportUtil.importExcel(file, User.class, params);
int successCount = 0;
int failCount = 0;
for (User user : list) {
String sjh = user.getSjh();
String loginname = user.getGh();
// 验证手机号是否正确
if (isValidMobile(sjh) && StringUtils.isNotBlank(loginname)) {
try {
// 更新数据库
int result = dao.update(Sys_user.class,
Chain.make("welfareMobile", sjh),
Cnd.where("loginname", "=", loginname));
if (result > 0) {
successCount++;
System.out.println("更新成功:工号=" + loginname + ", 手机号=" + sjh);
} else {
failCount++;
System.out.println("更新失败(未找到匹配记录):工号=" + loginname);
}
} catch (Exception e) {
failCount++;
System.out.println("数据库更新异常:工号=" + loginname + ", 错误:" + e.getMessage());
}
} else {
failCount++;
System.out.println("手机号格式无效或工号为空:工号=" + loginname + ", 手机号=" + sjh);
}
}
System.out.println("导入完成!成功:" + successCount + "条,失败:" + failCount + "条");
} catch (Exception e) {
System.err.println("导入Excel文件时发生异常:" + e.getMessage());
e.printStackTrace();
}
}
@Data
public static class User {
@Excel(name = "工号")
private String gh;
@Excel(name = "手机号码")
private String sjh;
}
}