init
This commit is contained in:
@@ -0,0 +1,663 @@
|
||||
package io.v.nutz;
|
||||
|
||||
import cn.afterturn.easypoi.excel.ExcelImportUtil;
|
||||
import cn.afterturn.easypoi.excel.annotation.Excel;
|
||||
import cn.afterturn.easypoi.excel.entity.ImportParams;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUnit;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import io.v.nutz.base.service.BaseService;
|
||||
import io.v.nutz.base.utils.Roles;
|
||||
import io.v.nutz.sys.models.Sys_unit;
|
||||
import io.v.nutz.sys.models.Sys_user;
|
||||
import io.v.nutz.sys.models.Sys_user_role;
|
||||
import io.v.nutz.zhgh.data.constant.SourceData;
|
||||
import io.v.nutz.zhgh.data.model.UserHistory;
|
||||
import io.v.nutz.zhgh.data.model.UserSource;
|
||||
import io.v.nutz.zhgh.fitnessWalk.model.FitnessWalkActivity;
|
||||
import io.v.nutz.zhgh.fitnessWalk.model.FitnessWalkAwardUser;
|
||||
import io.v.nutz.zhgh.fitnessWalk.model.FitnessWalkStep;
|
||||
import io.v.nutz.zhgh.fitnessWalk.service.FitnessWalkCommonService;
|
||||
import io.v.nutz.zhgh.jdh.model.db.Jdh_db;
|
||||
import io.v.nutz.zhgh.lxy.model.Lxy_bm;
|
||||
import io.v.nutz.zhgh.medicalMutualAidFund.model.MedicalMutualAidFund;
|
||||
import io.v.nutz.zhgh.member.UserMode;
|
||||
import io.v.nutz.zhgh.member.model.MemberChangeRecord;
|
||||
import io.v.nutz.zhgh.member.model.MemberHistory;
|
||||
import io.v.nutz.zhgh.welfare.model.WelfareCourierNumber;
|
||||
import io.v.nutz.zhgh.welfare.model.WelfareList;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.apache.shiro.crypto.hash.Sha256Hash;
|
||||
import org.apache.shiro.util.ByteSource;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
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.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.dao.util.Daos;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.json.Json;
|
||||
import org.nutz.lang.Lang;
|
||||
import org.nutz.lang.random.R;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@IocBean
|
||||
@RunWith(NbJUnit4Runner.class)
|
||||
public class JugTest {
|
||||
|
||||
@Inject
|
||||
private Dao dao;
|
||||
|
||||
@Test
|
||||
public void t01() throws IOException {
|
||||
String json = new String(Files.readAllBytes(Paths.get("C:\\Users\\Administrator\\Desktop\\unit.json")));
|
||||
NutMap nutMap = Json.fromJson(NutMap.class, json);
|
||||
NutMap data = nutMap.getAs("data", NutMap.class);
|
||||
List<NutMap> units = data.getAsList("Rows", NutMap.class);
|
||||
System.out.println(units);
|
||||
|
||||
List<Sys_unit> collect = units.stream().map(v -> {
|
||||
Sys_unit sys_unit = new Sys_unit();
|
||||
sys_unit.setName(v.getString("mc"));
|
||||
sys_unit.setId(v.getString("dm"));
|
||||
return sys_unit;
|
||||
}).collect(Collectors.toList());
|
||||
dao.insert(collect);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void importMember() {
|
||||
dao.update(Sys_user.class, Chain.make("member", 0), Cnd.where("member", "=", 1));
|
||||
dao.clear(Sys_user_role.class, Cnd.where("roleid", "=", Roles.MEMBER));
|
||||
|
||||
List<User> users = ExcelImportUtil.importExcel(new File("C:\\Users\\Administrator\\Desktop\\202404江南大学会员名单.xlsx"), User.class, new ImportParams());
|
||||
List<String> loginNames = users.stream().map(v -> v.getLoginName()).collect(Collectors.toList());
|
||||
dao.update(Sys_user.class, Chain.make("member", 1), Cnd.where("loginname", "in", loginNames));
|
||||
|
||||
Sql sql = Sqls.queryString(Sqls.create("select id from sys_user where loginname in (@loginnames)").setParam("loginnames", loginNames).toString());
|
||||
dao.execute(sql);
|
||||
List<String> ids = sql.getList(String.class);
|
||||
|
||||
List<Sys_user_role> sys_user_roles = ids.stream().map(v -> {
|
||||
Sys_user_role sys_user_role = new Sys_user_role();
|
||||
sys_user_role.setRoleId(Roles.MEMBER);
|
||||
sys_user_role.setUserId(v);
|
||||
return sys_user_role;
|
||||
}).collect(Collectors.toList());
|
||||
dao.insert(sys_user_roles);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void importWelfareMember() {
|
||||
dao.update(Sys_user.class, Chain.make("welfareMember", 0), Cnd.where("welfareMember", "=", 1));
|
||||
dao.clear(Sys_user_role.class, Cnd.where("roleid", "=", Roles.WELFARE_MEMBER));
|
||||
|
||||
List<User> users = ExcelImportUtil.importExcel(new File("C:\\Users\\Administrator\\Desktop\\202404江南大学会员名单.xlsx"), User.class, new ImportParams());
|
||||
List<String> loginNames = users.stream().map(v -> v.getLoginName()).collect(Collectors.toList());
|
||||
dao.update(Sys_user.class, Chain.make("welfareMember", 1), Cnd.where("loginname", "in", loginNames));
|
||||
|
||||
Sql sql = Sqls.queryString(Sqls.create("select id from sys_user where loginname in (@loginnames)").setParam("loginnames", loginNames).toString());
|
||||
dao.execute(sql);
|
||||
List<String> ids = sql.getList(String.class);
|
||||
|
||||
List<Sys_user_role> sys_user_roles = ids.stream().map(v -> {
|
||||
Sys_user_role sys_user_role = new Sys_user_role();
|
||||
sys_user_role.setRoleId(Roles.WELFARE_MEMBER);
|
||||
sys_user_role.setUserId(v);
|
||||
return sys_user_role;
|
||||
}).collect(Collectors.toList());
|
||||
dao.insert(sys_user_roles);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void t03() {
|
||||
List<User> users = ExcelImportUtil.importExcel(new File("C:\\Users\\Administrator\\Desktop\\202404江南大学会员名单.xlsx"), User.class, new ImportParams());
|
||||
List<String> loginNames = users.stream().map(v -> v.getLoginName()).collect(Collectors.toList());
|
||||
|
||||
Sql sql = Sqls.queryString(Sqls.create("select loginname from sys_user").toString());
|
||||
dao.execute(sql);
|
||||
List<String> db_loginname = sql.getList(String.class);
|
||||
|
||||
List<String> collect = loginNames.stream().filter(v -> !db_loginname.contains(v)).collect(Collectors.toList());
|
||||
for (String s : collect) {
|
||||
System.out.println(s);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class User {
|
||||
@Excel(name = "工号")
|
||||
private String loginName;
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void memberRoles() {
|
||||
dao.clear(Sys_user_role.class, Cnd.where("roleid", "=", Roles.MEMBER));
|
||||
Sql sql = Sqls.queryString("select id from sys_user where member=1");
|
||||
dao.execute(sql);
|
||||
List<String> ids = sql.getList(String.class);
|
||||
List<Sys_user_role> userRoles = ids.stream().map(v -> {
|
||||
Sys_user_role sys_user_role = new Sys_user_role();
|
||||
sys_user_role.setUserId(v);
|
||||
sys_user_role.setRoleId(Roles.MEMBER);
|
||||
return sys_user_role;
|
||||
}).collect(Collectors.toList());
|
||||
dao.insert(userRoles);
|
||||
|
||||
/* dao.clear(Sys_user_role.class, Cnd.where("roleid", "=", Roles.WELFARE_MEMBER));
|
||||
Sql sql = Sqls.queryString("select id from sys_user where welfareMember=1");
|
||||
dao.execute(sql);
|
||||
List<String> ids = sql.getList(String.class);
|
||||
List<Sys_user_role> userRoles = ids.stream().map(v -> {
|
||||
Sys_user_role sys_user_role = new Sys_user_role();
|
||||
sys_user_role.setUserId(v);
|
||||
sys_user_role.setRoleId(Roles.WELFARE_MEMBER);
|
||||
return sys_user_role;
|
||||
}).collect(Collectors.toList());
|
||||
dao.insert(userRoles);*/
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
List<UserSource> list = dao.query(UserSource.class, Cnd.where("unitid", "=", "51100"));
|
||||
list.forEach(l -> {
|
||||
dao.update(Sys_user.class, Chain.make("unitid", "51100"), Cnd.where("loginname", "=", l.getLoginname()));
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void t04() {
|
||||
List<MedicalMutualAidFund> list = dao.query(MedicalMutualAidFund.class, Cnd.NEW());
|
||||
for (MedicalMutualAidFund medicalMutualAidFund : list) {
|
||||
String loginName = medicalMutualAidFund.getLoginName();
|
||||
Sys_user user = dao.fetch(Sys_user.class, Cnd.where("loginName", "=", loginName));
|
||||
dao.update(MedicalMutualAidFund.class, Chain.make("userName", user.getUsername()), Cnd.where("id", "=", medicalMutualAidFund.getId()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public void t05() {
|
||||
List<OtherUser> users = ExcelImportUtil.importExcel(new File("C:\\Users\\Administrator\\Desktop\\新建 XLSX 工作表 (2).xlsx"), OtherUser.class, new ImportParams());
|
||||
System.out.println(users);
|
||||
List<Sys_user> initUsers = users.stream().map(v -> {
|
||||
Sys_user user = new Sys_user();
|
||||
String salt = R.UU32();
|
||||
user.setId(R.UU32());
|
||||
user.setSalt(salt);
|
||||
user.setPassword(R.UU16());
|
||||
user.setPassword(new Sha256Hash(user.getPassword(), ByteSource.Util.bytes(salt), 1024).toHex());
|
||||
user.setLoginPjax(true);
|
||||
user.setMenuTheme("left");
|
||||
user.setLoginCount(0);
|
||||
user.setMember(0);
|
||||
user.setWelfareMember(1);
|
||||
user.setRetired(false);
|
||||
user.setUnitid(v.getUnitid());
|
||||
user.setLoginname(v.getLoginname());
|
||||
user.setUsername(v.getUsername());
|
||||
user.setPersonType("其他类");
|
||||
return user;
|
||||
}).collect(Collectors.toList());
|
||||
dao.insert(initUsers);
|
||||
List<String> userIds = initUsers.stream().map(v -> v.getId()).collect(Collectors.toList());
|
||||
|
||||
dao.clear("sys_user_role", Cnd.where("userid", "in", userIds).and("roleId", "=", Roles.WELFARE_MEMBER));
|
||||
List<Sys_user_role> sysUserRoles = new ArrayList<>();
|
||||
for (String userId : userIds) {
|
||||
Sys_user_role sysUserRole = new Sys_user_role();
|
||||
sysUserRole.setUserId(userId);
|
||||
sysUserRole.setRoleId(Roles.WELFARE_MEMBER);
|
||||
sysUserRoles.add(sysUserRole);
|
||||
}
|
||||
dao.insert(sysUserRoles);
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class OtherUser {
|
||||
|
||||
@Excel(name = "工号")
|
||||
private String loginname;
|
||||
|
||||
@Excel(name = "单位")
|
||||
private String unitname;
|
||||
|
||||
@Excel(name = "单位id")
|
||||
private String unitid;
|
||||
|
||||
@Excel(name = "姓名")
|
||||
private String username;
|
||||
|
||||
}
|
||||
|
||||
@Inject
|
||||
private FitnessWalkCommonService fitnessWalkCommonService;
|
||||
|
||||
@Inject
|
||||
private BaseService baseService;
|
||||
|
||||
@Test
|
||||
public void t033() {
|
||||
String activityId = "63ca5b136625b7d808580dd258423e53";
|
||||
String userId = "sbmdbk1dc2givp006onbpvs8nu";
|
||||
|
||||
NutMap resultMap = NutMap.NEW();
|
||||
|
||||
FitnessWalkActivity activity = fitnessWalkCommonService.getActivity(activityId);
|
||||
//计步的抽奖模式 everyday custom
|
||||
String lotteryMode = activity.getLotteryMode();
|
||||
if ("everyday".equals(lotteryMode)) {
|
||||
FitnessWalkActivity.DayLotteryRule dayLotteryRule = activity.getDayLotteryRule();
|
||||
//每日抽奖资格步数
|
||||
Integer lotteryQualificationStep = dayLotteryRule.getLotteryQualificationStep();
|
||||
|
||||
FitnessWalkStep userWalkStep = baseService.dao().fetch(FitnessWalkStep.class, Cnd.where("userId", "=", userId)
|
||||
.and("DATE( applyDate )", "=", DateUtil.today()).and("activityId", "=", activityId));
|
||||
|
||||
int complianceDay = baseService.dao().count(FitnessWalkStep.class, Cnd.where("userId", "=", userId)
|
||||
.and("DATE( applyDate )", "=", DateUtil.today()).and("activityId", "=", activityId)
|
||||
.and("step", ">", lotteryQualificationStep));
|
||||
|
||||
Integer thisDayStep = userWalkStep.getStep();
|
||||
|
||||
BigDecimal lotteryQualificationStepBig = new BigDecimal(lotteryQualificationStep);
|
||||
BigDecimal thisDayStepBig = new BigDecimal(thisDayStep);
|
||||
//达标的小数,保留四位
|
||||
BigDecimal divide = thisDayStepBig.divide(lotteryQualificationStepBig, 4, RoundingMode.HALF_UP);
|
||||
BigDecimal percentValue = divide.multiply(new BigDecimal("100"));
|
||||
DecimalFormat decimalFormat = new DecimalFormat("#.##"); // 格式化为两位小数
|
||||
//百分数
|
||||
String formattedPercent = decimalFormat.format(percentValue);
|
||||
|
||||
long betweenDay = DateUtil.date(activity.getStartTime()).between(DateUtil.date(activity.getEndTime()), DateUnit.DAY);
|
||||
NutMap map = new NutMap();
|
||||
map.setv("mode", "everyDayLottery");
|
||||
//当前达标步数
|
||||
map.setv("userStep", thisDayStep);
|
||||
//达标总步数
|
||||
map.setv("complianceSumStep", lotteryQualificationStep);
|
||||
//达标比例
|
||||
map.setv("complianceProportion", Integer.parseInt(formattedPercent));
|
||||
//活动天数
|
||||
map.setv("betweenDay", betweenDay);
|
||||
//达标天数
|
||||
map.setv("complianceDay", complianceDay);
|
||||
resultMap.addv("everyDayLotteryMode", map);
|
||||
} else if ("custom".equals(lotteryMode)) {
|
||||
List<FitnessWalkActivity.CustomLotteryRule> customLotteryRules = activity.getCustomLotteryRules();
|
||||
List<FitnessWalkStep> userWalkSteps = baseService.dao().
|
||||
query(FitnessWalkStep.class, Cnd.where("userId", "=", userId)
|
||||
.and("activityId", "=", activityId)
|
||||
.and("DATE(applyDate)", ">=", DateUtil.format(DateUtil.date(activity.getStartTime()), "yyyy-MM-dd"))
|
||||
.and("DATE(applyDate)", "<=", DateUtil.format(DateUtil.date(activity.getEndTime()), "yyyy-MM-dd"))
|
||||
.groupBy("applyDate")
|
||||
);
|
||||
|
||||
List<NutMap> result = new ArrayList<>();
|
||||
|
||||
for (FitnessWalkActivity.CustomLotteryRule rule : customLotteryRules) {
|
||||
NutMap nutMap = NutMap.NEW();
|
||||
|
||||
List<FitnessWalkStep> partSteps = userWalkSteps.stream()
|
||||
.filter(s -> (DateUtil.compare(s.getApplyDate(), rule.getStartDate()) >= 0 && DateUtil.compare(s.getApplyDate(), rule.getEndDate()) <= 0))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
Integer lotteryQualificationDay = rule.getLotteryQualificationDay();
|
||||
Integer lotteryQualificationStep = rule.getLotteryQualificationStep();
|
||||
|
||||
if (lotteryQualificationDay != null && lotteryQualificationStep != null) {
|
||||
//每天步数
|
||||
nutMap.put("mode", "customLotteryEveryDayStepMode");
|
||||
//用户总达标步数
|
||||
nutMap.put("userSumStep", partSteps.stream().filter(s -> DateUtil.compare(s.getApplyDate(), new Date(), "yyyy-MM-dd") == 0).findFirst().map(s -> s.getStep()).orElse(0));
|
||||
//今天达标步数
|
||||
nutMap.put("complianceStep", lotteryQualificationStep);
|
||||
//总达标步数
|
||||
nutMap.put("complianceSumStep", lotteryQualificationDay * lotteryQualificationStep);
|
||||
//用户当前达标总天数
|
||||
nutMap.put("userComplianceSumDay", partSteps.stream().filter(s -> s.getStep() > lotteryQualificationStep).count());
|
||||
//总达标天数
|
||||
nutMap.put("complianceSumDay", lotteryQualificationDay);
|
||||
//开始时间
|
||||
nutMap.put("startDate", rule.getStartDate());
|
||||
//结束时间
|
||||
nutMap.put("endDate", rule.getEndDate());
|
||||
} else if (lotteryQualificationDay == null && lotteryQualificationStep != null) {
|
||||
//总步数
|
||||
nutMap.put("mode", "customLotterySumStepMode");
|
||||
//用户总达标步数
|
||||
nutMap.put("userSumStep", partSteps.stream().mapToInt(s -> s.getStep()).sum());
|
||||
//总达标步数
|
||||
nutMap.put("complianceSumStep", lotteryQualificationStep);
|
||||
}
|
||||
result.add(nutMap);
|
||||
}
|
||||
resultMap.addv("customLotteryMode", result);
|
||||
}
|
||||
System.out.println(resultMap);
|
||||
System.out.println(1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void t044() {
|
||||
// List<Sys_user> pullUsers = dao.query(Sys_user.class, Cnd.where("pullTime", "=", "2024-05-27 11:33:07"));
|
||||
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
u.id AS userId,
|
||||
us.loginname,
|
||||
us.unitid\s
|
||||
FROM
|
||||
`user_source` us
|
||||
LEFT JOIN sys_user u ON u.loginname = us.loginname\s
|
||||
WHERE
|
||||
us.pullTime = '2024-05-27 11:33:07'
|
||||
""");
|
||||
List<NutMap> query = (List<NutMap>) Daos.query(dao, sql.toString(), Sqls.callback.maps());
|
||||
|
||||
List<WelfareList> welfareLists = dao.query(WelfareList.class, Cnd.where("projectId", "=", "fe1d51dafc104a1482cc946d05312e78"));
|
||||
|
||||
for (WelfareList welfareList : welfareLists) {
|
||||
String unitId = query.stream().filter(v -> v.getString("userId").equals(welfareList.getUserId())).findFirst().map(v -> v.getString("unitid")).orElse(null);
|
||||
welfareList.setWelfareSecondLevelUnitId(unitId);
|
||||
}
|
||||
|
||||
dao.update(welfareLists, "welfareSecondLevelUnitId");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void t08() {
|
||||
Sql sql = Sqls.create("select id,unitid,userState,personType from sys_user");
|
||||
List<NutMap> users = (List<NutMap>) Daos.query(dao, sql.toString(), Sqls.callback.maps());
|
||||
|
||||
List<WelfareList> welfareLists = dao.query(WelfareList.class, Cnd.where("welfareSecondLevelUnitId", "is", null));
|
||||
|
||||
for (WelfareList welfareList : welfareLists) {
|
||||
Optional<NutMap> optionalUser = users.stream().filter(u -> u.getString("id").equals(welfareList.getUserId())).findFirst();
|
||||
if (optionalUser.isPresent()) {
|
||||
// welfareList.setPersonType(optionalUser.get().getString("personType"));
|
||||
// welfareList.setUserState(optionalUser.get().getString("userState"));
|
||||
welfareList.setWelfareSecondLevelUnitId(optionalUser.get().getString("unitid"));
|
||||
}
|
||||
}
|
||||
// dao.update(welfareLists, "userState|personType");
|
||||
dao.update(welfareLists, "welfareSecondLevelUnitId");
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void t09() {
|
||||
List<String> numbersList = new ArrayList<>();
|
||||
|
||||
numbersList.add("8202206006");
|
||||
numbersList.add("8201901023");
|
||||
numbersList.add("8272700215");
|
||||
numbersList.add("8202304003");
|
||||
numbersList.add("8262600225");
|
||||
numbersList.add("8202301005");
|
||||
numbersList.add("8019270005");
|
||||
numbersList.add("8201901025");
|
||||
numbersList.add("8201601003");
|
||||
numbersList.add("8202104492");
|
||||
numbersList.add("8201608116");
|
||||
numbersList.add("8202302005");
|
||||
numbersList.add("8272700254");
|
||||
numbersList.add("8201801004");
|
||||
numbersList.add("8201712164");
|
||||
numbersList.add("8849160003");
|
||||
numbersList.add("8201501001");
|
||||
numbersList.add("8949400006");
|
||||
numbersList.add("8202009387");
|
||||
numbersList.add("8012700050");
|
||||
numbersList.add("8373703015");
|
||||
numbersList.add("8073110106");
|
||||
numbersList.add("8201807160");
|
||||
numbersList.add("8202311002");
|
||||
numbersList.add("8201804055");
|
||||
numbersList.add("8272700223");
|
||||
numbersList.add("8202306003");
|
||||
numbersList.add("8202210003");
|
||||
numbersList.add("8052900070");
|
||||
numbersList.add("8202106024");
|
||||
numbersList.add("8201812194");
|
||||
numbersList.add("8202201007");
|
||||
numbersList.add("8052900087");
|
||||
numbersList.add("8202205011");
|
||||
numbersList.add("8201506077");
|
||||
numbersList.add("8202206004");
|
||||
numbersList.add("8201806094");
|
||||
numbersList.add("8292900207");
|
||||
numbersList.add("8201510140");
|
||||
numbersList.add("8073110081");
|
||||
numbersList.add("8272700243");
|
||||
numbersList.add("8202106001");
|
||||
numbersList.add("8201906102");
|
||||
numbersList.add("8201706085");
|
||||
numbersList.add("8313110187");
|
||||
numbersList.add("8052900096");
|
||||
numbersList.add("8201809158");
|
||||
numbersList.add("8383800026");
|
||||
numbersList.add("8262600184");
|
||||
numbersList.add("8201701022");
|
||||
numbersList.add("8073110069");
|
||||
numbersList.add("8292900206");
|
||||
numbersList.add("8292900178");
|
||||
numbersList.add("8022600029");
|
||||
numbersList.add("8202401009");
|
||||
numbersList.add("8272700260");
|
||||
numbersList.add("8201709135");
|
||||
numbersList.add("8022600116");
|
||||
numbersList.add("8202106006");
|
||||
numbersList.add("8012700080");
|
||||
numbersList.add("8012700149");
|
||||
numbersList.add("8201806106");
|
||||
numbersList.add("8022600060");
|
||||
numbersList.add("8201705048");
|
||||
numbersList.add("8073110093");
|
||||
numbersList.add("8313110149");
|
||||
numbersList.add("8949400019");
|
||||
numbersList.add("8201601006");
|
||||
numbersList.add("8029260012");
|
||||
numbersList.add("8202202002");
|
||||
numbersList.add("8202007333");
|
||||
numbersList.add("8201812196");
|
||||
numbersList.add("8059290005");
|
||||
numbersList.add("8202305013");
|
||||
numbersList.add("8029260011");
|
||||
numbersList.add("8201807123");
|
||||
numbersList.add("8343400169");
|
||||
numbersList.add("8202208019");
|
||||
numbersList.add("8052900095");
|
||||
numbersList.add("8292900199");
|
||||
numbersList.add("8262600230");
|
||||
numbersList.add("8022600183");
|
||||
numbersList.add("8201801015");
|
||||
numbersList.add("8202401012");
|
||||
numbersList.add("8313110107");
|
||||
numbersList.add("8272700240");
|
||||
numbersList.add("8202108006");
|
||||
numbersList.add("8073110072");
|
||||
numbersList.add("8202208018");
|
||||
numbersList.add("8201906076");
|
||||
numbersList.add("8262600196");
|
||||
numbersList.add("8201708118");
|
||||
numbersList.add("8201804056");
|
||||
numbersList.add("8202401010");
|
||||
numbersList.add("8201804059");
|
||||
numbersList.add("8201501002");
|
||||
numbersList.add("8029260013");
|
||||
numbersList.add("8202106050");
|
||||
numbersList.add("8062900131");
|
||||
numbersList.add("8313110189");
|
||||
numbersList.add("8201811190");
|
||||
numbersList.add("8202305002");
|
||||
numbersList.add("8292900175");
|
||||
numbersList.add("8313110174");
|
||||
numbersList.add("8202206029");
|
||||
numbersList.add("8022600028");
|
||||
numbersList.add("8292900218");
|
||||
numbersList.add("8073110148");
|
||||
numbersList.add("8073110079");
|
||||
numbersList.add("8262600232");
|
||||
numbersList.add("8929270007");
|
||||
numbersList.add("8052900071");
|
||||
numbersList.add("8313110146");
|
||||
numbersList.add("8201904065");
|
||||
numbersList.add("8202402005");
|
||||
numbersList.add("8052900147");
|
||||
numbersList.add("8201806086");
|
||||
numbersList.add("9363620028");
|
||||
numbersList.add("9822022007");
|
||||
numbersList.add("9202301021");
|
||||
|
||||
List<kddh> list = ExcelImportUtil.importExcel(new File("C:\\Users\\Administrator\\Desktop\\新建 XLSX 工作表.xlsx"), kddh.class, new ImportParams());
|
||||
|
||||
|
||||
List<kddh> list2 = list.stream().filter(v -> numbersList.contains(v.getLoginname())).collect(Collectors.toList());
|
||||
|
||||
List<WelfareCourierNumber> collect = list2.stream().map(v -> {
|
||||
Sql sql = Sqls.fetchString("select id from sys_user where loginname = @loginname").setParam("loginname", v.getLoginname());
|
||||
dao.execute(sql);
|
||||
String userId = sql.getString();
|
||||
WelfareCourierNumber courierNumber = new WelfareCourierNumber();
|
||||
courierNumber.setCourierNumber(v.getKddh());
|
||||
courierNumber.setSelectUserId(userId);
|
||||
courierNumber.setWelfareId("fe1d51dafc104a1482cc946d05312e78");
|
||||
courierNumber.setSelectOptionId("roj77esogkga6pnbi9pegsofdl");
|
||||
return courierNumber;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
dao.insert(collect);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class kddh {
|
||||
@Excel(name = "工号")
|
||||
private String loginname;
|
||||
|
||||
@Excel(name = "快递单号")
|
||||
private String kddh;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void test03() throws InterruptedException {
|
||||
List<Sys_unit> unitList = dao.query(Sys_unit.class, Cnd.where("unitlevel", "=", 2).and("id", "!=", "unitcode"));
|
||||
Map<String, Sys_unit> unitMap = unitList.stream().collect(Collectors.toMap(Sys_unit::getId, v -> v));
|
||||
|
||||
List<WelfareList> list = dao.query(WelfareList.class, Cnd.where("welfareSecondLevelUnitId", "is not", null).and("welfareSecondLevelUnitId", "!=", ""));
|
||||
list.forEach(v -> {
|
||||
Sys_unit unit = unitMap.get(v.getWelfareSecondLevelUnitId());
|
||||
if (Lang.isNotEmpty(unit)) v.setWelfareSecondLevelUnitId(unit.getUnitcode());
|
||||
});
|
||||
|
||||
// dao.updateIgnoreNull(list);
|
||||
|
||||
// // 创建一个固定大小的线程池
|
||||
// int numberOfThreads = 20; // 可以根据服务器性能调整线程池大小
|
||||
// ExecutorService executorService = Executors.newFixedThreadPool(numberOfThreads);
|
||||
//
|
||||
// int batchSize = 200; // 每批处理的数据量,可以根据实际情况调整
|
||||
// for (int i = 0; i < list.size(); i += batchSize) {
|
||||
// final int end = Math.min(i + batchSize, list.size());
|
||||
// List<WelfareList> batch = list.subList(i, end);
|
||||
// executorService.submit(()->{
|
||||
// dao.updateIgnoreNull(batch);
|
||||
// });
|
||||
// }
|
||||
// executorService.shutdown();
|
||||
// executorService.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void t10(){
|
||||
List<WinUser> list = ExcelImportUtil.importExcel(new File("C:\\Users\\Administrator\\Desktop\\二期中奖名单.xlsx"), WinUser.class, new ImportParams());
|
||||
System.out.println(list.size());
|
||||
|
||||
List<FitnessWalkAwardUser> fitnessWalkAwardUsers = new ArrayList<>();
|
||||
|
||||
Date date = DateUtil.parseDate("2024-07-01");
|
||||
|
||||
|
||||
for (WinUser winUser : list) {
|
||||
Sql sql = Sqls.create("select id,username,unitname,unionname from user where loginname = @loginname");
|
||||
sql.setParam("loginname",winUser.getLoginname());
|
||||
NutMap user = (NutMap)Daos.query(dao, sql.toString(), Sqls.callback.map());
|
||||
|
||||
FitnessWalkAwardUser awardUser = new FitnessWalkAwardUser();
|
||||
awardUser.setActivityId("63ca5b136625b7d808580dd258423e53");
|
||||
awardUser.setUserId(user.getString("id"));
|
||||
awardUser.setUsername(user.getString("username"));
|
||||
awardUser.setAwardName("健步走幸运");
|
||||
awardUser.setUnionId(user.getString("unionid"));
|
||||
awardUser.setUnionName(user.getString("unionname"));
|
||||
awardUser.setUnitId(user.getString("unitid"));
|
||||
awardUser.setUnitName(user.getString("unitname"));
|
||||
awardUser.setApplyDate(date);
|
||||
awardUser.setIsRead(false);
|
||||
awardUser.setLoginName(winUser.getLoginname());
|
||||
fitnessWalkAwardUsers.add(awardUser);
|
||||
}
|
||||
|
||||
dao.insert(fitnessWalkAwardUsers);
|
||||
|
||||
System.out.println(Json.toJson(fitnessWalkAwardUsers));
|
||||
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class WinUser{
|
||||
@Excel(name = "工号")
|
||||
private String loginname;
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void insertRole(){
|
||||
List<Jdh_db> dbs = dao.query(Jdh_db.class, Cnd.where("jdhid", "=", "4m2tgml52shcor5f6o845ifepr"));
|
||||
List<Sys_user_role> userRoles = dbs.stream().map(v -> {
|
||||
Sys_user_role role = new Sys_user_role();
|
||||
role.setUserId(v.getDbid());
|
||||
role.setRoleId(Roles.ZSDB);
|
||||
role.setDbtid(v.getDbtid());
|
||||
role.setJdhid(v.getJdhid());
|
||||
return role;
|
||||
}).collect(Collectors.toList());
|
||||
dao.insert(userRoles);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
package io.v.nutz;
|
||||
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import io.v.nutz.base.utils.MsgApi;
|
||||
import io.v.nutz.sys.services.SysMsgService;
|
||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.nutz.boot.test.junit4.NbJUnit4Runner;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.json.Json;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@IocBean
|
||||
@RunWith(NbJUnit4Runner.class)
|
||||
public class JugTest2 {
|
||||
|
||||
@Test
|
||||
public void t01() {
|
||||
String APP_KEY = "25127882183432192";
|
||||
String APP_SECRET = "fccccd41d4b84af6948c572e30d480df";
|
||||
String USER_URL_TOTAL = "http://api.jiangnan.edu.cn:3003/openApi/API/Service_GvdiEh2cR2bN4oQunZtWe";
|
||||
|
||||
NutMap params = NutMap.NEW();
|
||||
params.put("xm", List.of(Map.of("logic", "=", "value", "郑亚辉")));
|
||||
|
||||
HttpRequest request = HttpUtil.createPost(USER_URL_TOTAL)
|
||||
.header("applyId", APP_KEY)
|
||||
.header("secretKey", APP_SECRET)
|
||||
.body(Json.toJson(Map.of("page", 1, "pagesize", 2, "params", params)));
|
||||
|
||||
JSONObject jsonObject = JSON.parseObject(request.execute().body());
|
||||
System.out.println(jsonObject.toJSONString());
|
||||
}
|
||||
|
||||
@Inject
|
||||
private MsgApi msgApi;
|
||||
|
||||
@Test
|
||||
public void t02() {
|
||||
// msgApi.sendMsg("这是一条测试短信,请忽略","这是一条测试短信,请忽略<a href=\"https://zhgh.jiangnan.edu.cn/mobile/welfare/list/receive?projectId=4fa233704ddb41bc8e34e966efeda0a4\">点击参与</a>","https://zhgh.jiangnan.edu.cn","https://zhgh.jiangnan.edu.cn/mobile/welfare/list/receive?projectId=4fa233704ddb41bc8e34e966efeda0a4"
|
||||
// ,"4",new ArrayList<>(){{
|
||||
// add(NutMap.NEW().addv("userId","8323200060"));
|
||||
// }});
|
||||
}
|
||||
|
||||
@Inject
|
||||
private SysMsgService sysMsgService;
|
||||
|
||||
@Test
|
||||
public void t03() {
|
||||
String note = """
|
||||
<p style="text-indent:28px">
|
||||
<span style=";font-family:等线;font-size:14px"><span style="font-family:等线">您的申报已审批通过,请参照以下提示跟进</span>:</span><span style=";font-family:等线;font-size:14px">1.慰问事项为生病住院、去世、直系亲属去世,慰问金线上申报审批完成后,不需要再提交纸质材料。</span><span style=";font-family:等线;font-size:14px">2.慰问事项为结婚和生育的,审核通过后请将报销材料尽快提交至校工会(行政楼A426办公室)周学军老师处。注意:报销发票上须有分工会主席和经办人的签字;购买慰问品须有公务卡支付记录,如未使用公务卡,请提交支付记录和公务卡结算审批表(所在单位审核签字)。 </span>
|
||||
</p>
|
||||
<p>
|
||||
<span style=";font-family:等线;font-size:14px">3.各类慰问金每月结算一次。当月审核通过且报销材料提交齐全的,校工会将于次月第一周</span><span style=";font-family:等线;font-size:14px">统一办理慰问金(慰问品报销)上卡,材料不齐全的推迟上卡。</span>
|
||||
</p>
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
""";
|
||||
sysMsgService.sendMsg("833300107", "【职工慰问】-" + "测试", note, "");
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user