Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -16,10 +16,10 @@ public enum Api2FinanceFiledMap {
|
||||
RYDM("rydm", "loginname"),
|
||||
// 人员名称
|
||||
RYMC("rymc", "username"),
|
||||
// 编制会费
|
||||
HF("hf", "name"),
|
||||
// 合同制会费
|
||||
HF2("hf2", "unitType");
|
||||
// 编制会费,需与财务拉取后读取的 NutMap key 保持一致。
|
||||
HF("hf", "preparationMemberFee"),
|
||||
// 合同制会费,需与财务拉取后读取的 NutMap key 保持一致。
|
||||
HF2("hf2", "contractMemberFee");
|
||||
|
||||
public final String apiField;
|
||||
public final String dbColumn;
|
||||
|
||||
@@ -195,8 +195,6 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
|
||||
Sys_user u = new Sys_user();
|
||||
BeanUtils.copyProperties(source, u);
|
||||
|
||||
// 先不处理会员
|
||||
u.setMember(null);
|
||||
|
||||
if (user == null) {
|
||||
// 新增用户,初始化数据
|
||||
@@ -204,9 +202,9 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
|
||||
u.setSalt(salt);
|
||||
u.setPassword(PwdUtil.getPassword(PwdUtil.generate(12), salt));
|
||||
|
||||
// if (u.getMember()) {
|
||||
// addMemberUserIds.add(u.getId());
|
||||
// }
|
||||
if (u.getMember()) {
|
||||
addMemberUserIds.add(u.getId());
|
||||
}
|
||||
needInitUserList.add(u);
|
||||
} else {
|
||||
|
||||
@@ -218,13 +216,13 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
|
||||
u.setId(user.getId());
|
||||
|
||||
// 更新会员状态
|
||||
boolean currentIsMember = user.getMember() != null && user.getMember();
|
||||
boolean currentIsMember = source.getMember() != null && source.getMember();
|
||||
|
||||
// if (!currentIsMember) {
|
||||
// addMemberUserIds.add(user.getId());
|
||||
// } else{
|
||||
// removeMemberUserIds.add(user.getId());
|
||||
// }
|
||||
if (currentIsMember) {
|
||||
addMemberUserIds.add(user.getId());
|
||||
} else{
|
||||
removeMemberUserIds.add(user.getId());
|
||||
}
|
||||
|
||||
needDoUpdateList.add(u);
|
||||
}
|
||||
|
||||
@@ -25,7 +25,6 @@ import com.budwk.app.sys.models.Sys_user_source;
|
||||
import com.budwk.app.sys.services.SysDataUnitPullService;
|
||||
import com.budwk.app.sys.services.SysDataUserPullService;
|
||||
import com.budwk.app.sys.services.SysDictService;
|
||||
import com.budwk.app.sys.utils.DataCenterUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nutz.aop.interceptor.async.Async;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
@@ -396,7 +395,7 @@ public class SysDataUserPullServiceImpl extends BaseServiceImpl<Sys_user_source>
|
||||
|
||||
List<JSONObject> rawDataList = new ArrayList<>();
|
||||
String year = String.valueOf(DateUtil.thisYear());
|
||||
String month = String.valueOf(DateUtil.thisMonth() + 1);
|
||||
String month = String.valueOf(DateUtil.thisMonth());
|
||||
|
||||
int pageNum = 1;
|
||||
int pageSize = 1000;
|
||||
@@ -414,12 +413,14 @@ public class SysDataUserPullServiceImpl extends BaseServiceImpl<Sys_user_source>
|
||||
"pageSize", pageSize
|
||||
);
|
||||
httpRequest.body(JSONUtil.toJsonStr(reqBody));
|
||||
|
||||
log.info("财务接口填写数据: {}", reqBody);
|
||||
JSONObject resp = JSONUtil.parseObj(httpRequest.execute().body());
|
||||
log.info("财务接口返回结果: {}", resp);
|
||||
if (resp.getInt("code") != 0) {
|
||||
throw new BaseException("获取财务数据失败,错误码: " + resp.getInt("code") + ";错误原因:" + resp.getStr("msg"));
|
||||
}
|
||||
|
||||
// 财务接口的分页信息在 data 节点,明细数据在顶层 records 节点,解析时需要分别读取。
|
||||
JSONObject data = resp.getJSONObject("data");
|
||||
if (pageNum == 1) {
|
||||
totalCount = data.getInt("total", 0);
|
||||
@@ -427,16 +428,18 @@ public class SysDataUserPullServiceImpl extends BaseServiceImpl<Sys_user_source>
|
||||
totalPages = (int) Math.ceil((double) totalCount / pageSize);
|
||||
}
|
||||
|
||||
JSONArray records = data.getJSONArray("records");
|
||||
JSONArray records = resp.getJSONArray("records");
|
||||
log.info("财务数据转换前: {}", records);
|
||||
if (CollUtil.isNotEmpty(records)) {
|
||||
rawDataList.addAll(records.stream().map(v -> (JSONObject) v).toList());
|
||||
log.info("数据拉取进度: {}/{}", rawDataList.size(), totalCount);
|
||||
log.info("财务数据拉取进度: {}/{}", rawDataList.size(), totalCount);
|
||||
}
|
||||
log.info("财务数据转换后: {}", records.stream().map(v -> (JSONObject) v).toList());
|
||||
pageNum++; // 只加页码
|
||||
} while (pageNum <= totalPages);
|
||||
|
||||
// 接口数据输出
|
||||
log.info("数据拉取结果: {}", rawDataList);
|
||||
log.info("财务数据拉取结果: {}", rawDataList);
|
||||
|
||||
// 最后结果数据
|
||||
Map<String, NutMap> result = new HashMap<>();
|
||||
@@ -445,14 +448,25 @@ public class SysDataUserPullServiceImpl extends BaseServiceImpl<Sys_user_source>
|
||||
.collect(Collectors.toMap(e -> e.apiField, e -> e.dbColumn));
|
||||
|
||||
for (JSONObject row : rawDataList) {
|
||||
NutMap nutMap = DataCenterUtil.mapJsonToBean(row, NutMap.class, api2db);
|
||||
NutMap nutMap = NutMap.NEW();
|
||||
// NutMap 不是普通 JavaBean,不能用反射字段赋值,这里按映射关系直接写入键值。
|
||||
api2db.forEach((apiField, dbColumn) -> {
|
||||
Object value = row.get(apiField);
|
||||
if (value != null) {
|
||||
nutMap.setv(dbColumn, value);
|
||||
}
|
||||
});
|
||||
if (StrUtil.isBlank(nutMap.getString("loginname"))) {
|
||||
log.warn("财务数据缺少工号,跳过本条记录: {}", row);
|
||||
continue;
|
||||
}
|
||||
result.put(nutMap.getString("loginname"), nutMap);
|
||||
}
|
||||
|
||||
// 输出结果
|
||||
log.info("财务数据拉取转换结果: {}", result);
|
||||
|
||||
log.info("数据拉取完成,共拉取 {} 条数据", result.size());
|
||||
log.info("财务数据拉取完成,共拉取 {} 条数据", result.size());
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,20 +3,15 @@ package com.budwk.app.zhgh.club.service.impl;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.constant.BpmProcessConstant;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.base.utils.PageUtil;
|
||||
import com.budwk.app.bpm.enums.BpmProcessInstanceStatusEnum;
|
||||
import com.budwk.app.bpm.enums.BpmProcessTaskStatusEnum;
|
||||
import com.budwk.app.bpm.models.BpmProcessInstance;
|
||||
import com.budwk.app.bpm.service.BpmService;
|
||||
import com.budwk.app.flow.entity.ProcessInstance;
|
||||
import com.budwk.app.flow.enums.ProcessInstanceStateEnum;
|
||||
import com.budwk.app.flow.enums.ProcessTaskStateEnum;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.sys.models.Sys_user_role;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
@@ -39,8 +34,6 @@ import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author: JyuHsin
|
||||
@@ -244,6 +237,7 @@ public class SysClubServiceImpl extends BaseServiceImpl<SysClub> implements SysC
|
||||
}
|
||||
cnd.andEX("year(info.createTime)", "=", pageForm.getYear());
|
||||
cnd.and("info.userId", "=", SecurityUtil.getUserId());
|
||||
cnd.groupBy("info.id");
|
||||
cnd.desc("createTime");
|
||||
sql.setCondition(cnd);
|
||||
return listPageVO(pageForm, sql, ClubRegisterPageVo.class);
|
||||
|
||||
+2
-3
@@ -141,13 +141,12 @@ public class ExecutiveCommitteeDelegationOnePushController {
|
||||
List<ExecutiveCommitteeOnePush> userValue = dao.query(ExecutiveCommitteeOnePush.class,
|
||||
Cnd.where("teacherMeetId", "=", teacherMeetId)
|
||||
.and("addType", "=", 1));
|
||||
List<ExecutiveCommitteeOnePush> onePushList = dao.query(ExecutiveCommitteeOnePush.class, Cnd.NEW());
|
||||
List<String> userIds = onePushList.stream().map(v -> v.getUserId()).collect(Collectors.toList());
|
||||
List<String> userIds = userValue.stream().map(v -> v.getUserId()).collect(Collectors.toList());
|
||||
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.andEX("db.sessionId", "=", teacherMeetId);
|
||||
cnd.andEX("db.userId", "not in", userIds);
|
||||
cnd.andEX("db.userId", "!=", SecurityUtil.getUserId());
|
||||
// cnd.andEX("db.userId", "!=", SecurityUtil.getUserId());
|
||||
cnd.and("db.delegationId", "=", db.getDelegationId());
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
|
||||
+3
-2
@@ -107,6 +107,7 @@ public class ExecutiveCommitteePushDwSjAuditController {
|
||||
wf_process_task t
|
||||
LEFT JOIN wf_process_instance ins ON ins.id = t.processInstanceId
|
||||
LEFT JOIN executive_committee_union_push_info info ON info.id = ins.businessNo
|
||||
left join sys_user us on us.id=info.userId
|
||||
LEFT JOIN teacher_congress_delegate tcd on tcd.sessionId=@sessionId and tcd.userId=info.userId
|
||||
LEFT JOIN teacher_congress_delegation ion on ion.id=tcd.delegationId
|
||||
LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id
|
||||
@@ -129,8 +130,8 @@ public class ExecutiveCommitteePushDwSjAuditController {
|
||||
|
||||
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
|
||||
SqlExpressionGroup group = new SqlExpressionGroup();
|
||||
group.orLike("info.userName", pageForm.getSearchKeyword());
|
||||
group.orLike("info.loginName", pageForm.getSearchKeyword());
|
||||
group.orLike("us.userName", pageForm.getSearchKeyword());
|
||||
group.orLike("us.loginName", pageForm.getSearchKeyword());
|
||||
cnd.and(group);
|
||||
}
|
||||
|
||||
|
||||
+9
-10
@@ -19,7 +19,6 @@ import com.budwk.app.flow.enums.ProcessSubmitTypeEnum;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.democratic.executiveCommittee.models.ExecutiveCommitteeConfig;
|
||||
import com.budwk.app.zhgh.democratic.executiveCommittee.models.ExecutiveCommitteeOnePush;
|
||||
import com.budwk.app.zhgh.democratic.executiveCommittee.models.ExecutiveCommitteeUnionPushInfo;
|
||||
import com.budwk.app.zhgh.democratic.teachercongress.delegate.models.Teacher_congress_delegate;
|
||||
import io.swagger.annotations.Api;
|
||||
@@ -43,7 +42,6 @@ import org.nutz.mvc.annotation.Param;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author zhf
|
||||
@@ -109,6 +107,7 @@ public class ExecutiveCommitteeUnionPushController {
|
||||
(select MAX(id) from wf_process_task where processInstanceId = ins.id and taskName = 'startTask') AS startTaskId
|
||||
FROM
|
||||
executive_committee_union_push_info info
|
||||
left join sys_user us on us.id=info.userId
|
||||
LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id
|
||||
LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id AND t.taskState = 10
|
||||
LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id
|
||||
@@ -122,8 +121,8 @@ public class ExecutiveCommitteeUnionPushController {
|
||||
|
||||
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
|
||||
SqlExpressionGroup group = new SqlExpressionGroup();
|
||||
group.orLike("info.userName", pageForm.getSearchKeyword());
|
||||
group.orLike("info.loginName", pageForm.getSearchKeyword());
|
||||
group.orLike("us.userName", pageForm.getSearchKeyword());
|
||||
group.orLike("us.loginName", pageForm.getSearchKeyword());
|
||||
cnd.and(group);
|
||||
}
|
||||
cnd.desc("info.createdAt");
|
||||
@@ -158,19 +157,19 @@ public class ExecutiveCommitteeUnionPushController {
|
||||
if (config.getFirstEndTime().getTime() < System.currentTimeMillis()) {
|
||||
return Result.error("一次预选已结束");
|
||||
}
|
||||
List<ExecutiveCommitteeOnePush> userValue = dao.query(ExecutiveCommitteeOnePush.class,
|
||||
/* List<ExecutiveCommitteeOnePush> userValue = dao.query(ExecutiveCommitteeOnePush.class,
|
||||
Cnd.where("teacherMeetId", "=", teacherMeetId));
|
||||
List<ExecutiveCommitteeOnePush> onePushList = dao.query(ExecutiveCommitteeOnePush.class, Cnd.NEW());
|
||||
List<String> userIds = onePushList.stream().map(v -> v.getUserId()).collect(Collectors.toList());
|
||||
List<String> userIds = onePushList.stream().map(v -> v.getUserId()).collect(Collectors.toList());*/
|
||||
|
||||
|
||||
List<ExecutiveCommitteeUnionPushInfo> pushInfoList = dao.query(ExecutiveCommitteeUnionPushInfo.class, Cnd.where(ExecutiveCommitteeUnionPushInfo::getTeacherMeetId, "=", teacherMeetId));
|
||||
List<String> unionPushUserIds = pushInfoList.stream().map(v -> v.getUserId()).toList();
|
||||
List<String> unionPushUserIds = pushInfoList.stream().map(ExecutiveCommitteeUnionPushInfo::getUserId).toList();
|
||||
|
||||
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.andEX("db.sessionId", "=", teacherMeetId);
|
||||
cnd.andEX("db.userId", "not in", userIds);
|
||||
// cnd.andEX("db.userId", "not in", userIds);
|
||||
cnd.andEX("db.userId", "not in", unionPushUserIds);
|
||||
// cnd.andEX("db.userId", "!=", SecurityUtil.getUserId());
|
||||
cnd.and("u.unionId", "=", SecurityUtil.getUnionId());
|
||||
@@ -192,9 +191,9 @@ public class ExecutiveCommitteeUnionPushController {
|
||||
List<NutMap> unionQuotaList = config.getUnionQuotaList();
|
||||
NutMap unionQuota = unionQuotaList.stream().filter(v -> v.getString("unionId").equals(SecurityUtil.getUnionId())).findFirst().orElse(null);
|
||||
if (Lang.isNotEmpty(unionQuota)) {
|
||||
return Result.success(Map.of("userData", userData, "userValue", userValue, "quotaCount", unionQuota.getInt("quotaCount")));
|
||||
return Result.success(Map.of("userData", userData, "userValue", pushInfoList, "quotaCount", unionQuota.getInt("quotaCount")));
|
||||
}
|
||||
return Result.success(Map.of("userData", userData, "userValue", userValue, "quotaCount", 0));
|
||||
return Result.success(Map.of("userData", userData, "userValue", pushInfoList, "quotaCount", 0));
|
||||
}
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -105,7 +105,7 @@ public class ProposalCommitteeFilingUnitController {
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and("t.taskName", "=", "committeeFilingUnit");
|
||||
cnd.and("t.taskName", "=", "committeeFiling");
|
||||
if (!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())) {
|
||||
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user