会员整改
This commit is contained in:
+219
@@ -24,6 +24,9 @@ import com.budwk.app.flow.entity.ProcessInstance;
|
||||
import com.budwk.app.flow.entity.ProcessTask;
|
||||
import com.budwk.app.flow.enums.ProcessSubmitTypeEnum;
|
||||
import com.budwk.app.sys.models.Sys_config;
|
||||
import com.budwk.app.sys.models.Sys_union;
|
||||
import com.budwk.app.sys.models.Sys_unit;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.sys.views.View_user;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
@@ -43,12 +46,15 @@ import org.nutz.dao.sql.Sql;
|
||||
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.util.NutMap;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.POST;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -176,6 +182,219 @@ public class MemberChangeManageController {
|
||||
return Result.success(map);
|
||||
}
|
||||
|
||||
@At
|
||||
@POST
|
||||
@RepeatSubmit
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SLog(tag = "会员高级管理-批量设置人员属性", msg = "批量设置人员属性")
|
||||
@SaCheckPermission(value = {"member.change.mange", "staff.member.change.mange"}, mode = SaMode.OR)
|
||||
public Result batchUpdateUserAttribute(@Param("users") String usersJson) {
|
||||
try {
|
||||
List<NutMap> userList = Json.fromJsonAsList(NutMap.class, usersJson);
|
||||
if (Lang.isEmpty(userList)) {
|
||||
return Result.error("请选择要修改的用户");
|
||||
}
|
||||
|
||||
int successCount = 0;
|
||||
for (NutMap userMap : userList) {
|
||||
MemberChangeRecord record = buildManualChangeRecord(userMap.getString("id"));
|
||||
if (record != null) {
|
||||
record.setUserAttribute(userMap.getString("userAttribute"));
|
||||
successCount += applyManualChange(record);
|
||||
}
|
||||
}
|
||||
|
||||
if (successCount <= 0) {
|
||||
return Result.error("未检测到可保存的变更数据");
|
||||
}
|
||||
return Result.success("批量设置人员属性成功");
|
||||
} catch (Exception e) {
|
||||
log.error("批量设置人员属性失败", e);
|
||||
return Result.error("批量设置人员属性失败:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@At
|
||||
@POST
|
||||
@RepeatSubmit
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SLog(tag = "会员高级管理-批量设置会员", msg = "批量设置会员")
|
||||
@SaCheckPermission(value = {"member.change.mange", "staff.member.change.mange"}, mode = SaMode.OR)
|
||||
public Result batchUpdateMember(@Param("users") String usersJson) {
|
||||
try {
|
||||
List<NutMap> userList = Json.fromJsonAsList(NutMap.class, usersJson);
|
||||
if (Lang.isEmpty(userList)) {
|
||||
return Result.error("请选择要修改的用户");
|
||||
}
|
||||
|
||||
int successCount = 0;
|
||||
for (NutMap userMap : userList) {
|
||||
MemberChangeRecord record = buildManualChangeRecord(userMap.getString("id"));
|
||||
if (record != null) {
|
||||
Boolean member = userMap.getBoolean("member");
|
||||
record.setMember(member);
|
||||
record.setWelfareMember(userMap.getBoolean("welfareMember"));
|
||||
int changed = applyManualChange(record);
|
||||
if (changed > 0 && Boolean.TRUE.equals(member)) {
|
||||
Sys_user user = dao.fetch(Sys_user.class, userMap.getString("id"));
|
||||
if (user != null && user.getMemberTime() == null) {
|
||||
user.setMemberTime(new Date());
|
||||
dao.updateIgnoreNull(user);
|
||||
}
|
||||
}
|
||||
successCount += changed;
|
||||
}
|
||||
}
|
||||
|
||||
if (successCount <= 0) {
|
||||
return Result.error("未检测到可保存的变更数据");
|
||||
}
|
||||
return Result.success("批量设置会员成功");
|
||||
} catch (Exception e) {
|
||||
log.error("批量设置会员失败", e);
|
||||
return Result.error("批量设置会员失败:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@At
|
||||
@POST
|
||||
@RepeatSubmit
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SLog(tag = "会员高级管理-批量设置人员分类", msg = "批量设置人员分类")
|
||||
@SaCheckPermission(value = {"member.change.mange", "staff.member.change.mange"}, mode = SaMode.OR)
|
||||
public Result batchUpdateAidFundType(@Param("users") String usersJson) {
|
||||
try {
|
||||
List<NutMap> userList = Json.fromJsonAsList(NutMap.class, usersJson);
|
||||
if (Lang.isEmpty(userList)) {
|
||||
return Result.error("请选择要修改的用户");
|
||||
}
|
||||
|
||||
int successCount = 0;
|
||||
for (NutMap userMap : userList) {
|
||||
MemberChangeRecord record = buildManualChangeRecord(userMap.getString("id"));
|
||||
if (record != null) {
|
||||
record.setAidFundMemberUserType(userMap.getString("aidFundMemberUserType"));
|
||||
successCount += applyManualChange(record);
|
||||
}
|
||||
}
|
||||
|
||||
if (successCount <= 0) {
|
||||
return Result.error("未检测到可保存的变更数据");
|
||||
}
|
||||
return Result.success("批量设置人员分类成功");
|
||||
} catch (Exception e) {
|
||||
log.error("批量设置人员分类失败", e);
|
||||
return Result.error("批量设置人员分类失败:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@At
|
||||
@POST
|
||||
@RepeatSubmit
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SLog(tag = "会员高级管理-批量设置在职状态", msg = "批量设置在职状态")
|
||||
@SaCheckPermission(value = {"member.change.mange", "staff.member.change.mange"}, mode = SaMode.OR)
|
||||
public Result batchUpdateUserState(@Param("users") String usersJson) {
|
||||
try {
|
||||
List<NutMap> userList = Json.fromJsonAsList(NutMap.class, usersJson);
|
||||
if (Lang.isEmpty(userList)) {
|
||||
return Result.error("请选择要修改的用户");
|
||||
}
|
||||
|
||||
int successCount = 0;
|
||||
for (NutMap userMap : userList) {
|
||||
MemberChangeRecord record = buildManualChangeRecord(userMap.getString("id"));
|
||||
if (record != null) {
|
||||
record.setUserState(userMap.getString("userState"));
|
||||
successCount += applyManualChange(record);
|
||||
}
|
||||
}
|
||||
|
||||
if (successCount <= 0) {
|
||||
return Result.error("未检测到可保存的变更数据");
|
||||
}
|
||||
return Result.success("批量设置在职状态成功");
|
||||
} catch (Exception e) {
|
||||
log.error("批量设置在职状态失败", e);
|
||||
return Result.error("批量设置在职状态失败:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@At
|
||||
@POST
|
||||
@RepeatSubmit
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SLog(tag = "会员高级管理-单位调整", msg = "批量单位调整")
|
||||
@SaCheckPermission(value = {"member.change.mange", "staff.member.change.mange"}, mode = SaMode.OR)
|
||||
public Result unitMove(@Param("unitId") String unitId, @Param("userIds") String userIdsJson) {
|
||||
try {
|
||||
if (StrUtil.isBlank(unitId)) {
|
||||
return Result.error("请选择新单位");
|
||||
}
|
||||
if (StrUtil.isBlank(userIdsJson)) {
|
||||
return Result.error("请选择要修改的用户");
|
||||
}
|
||||
|
||||
List<String> userIds = Json.fromJsonAsList(String.class, userIdsJson);
|
||||
if (Lang.isEmpty(userIds)) {
|
||||
return Result.error("请选择要修改的用户");
|
||||
}
|
||||
|
||||
Sys_unit unit = dao.fetch(Sys_unit.class, unitId);
|
||||
if (unit == null) {
|
||||
return Result.error("单位不存在");
|
||||
}
|
||||
|
||||
Sys_union union = StrUtil.isNotBlank(unit.getUnionId()) ? dao.fetch(Sys_union.class, unit.getUnionId()) : null;
|
||||
int successCount = 0;
|
||||
for (String userId : userIds) {
|
||||
MemberChangeRecord record = buildManualChangeRecord(userId);
|
||||
if (record != null) {
|
||||
record.setUnitId(unitId);
|
||||
record.setUnitName(unit.getName());
|
||||
record.setUnionId(unit.getUnionId());
|
||||
record.setUnionName(union != null ? union.getName() : "");
|
||||
successCount += applyManualChange(record);
|
||||
}
|
||||
}
|
||||
|
||||
if (successCount <= 0) {
|
||||
return Result.error("未检测到可保存的变更数据");
|
||||
}
|
||||
return Result.success("单位调整成功");
|
||||
} catch (Exception e) {
|
||||
log.error("单位调整失败", e);
|
||||
return Result.error("单位调整失败:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
private MemberChangeRecord buildManualChangeRecord(String userId) {
|
||||
if (StrUtil.isBlank(userId)) {
|
||||
return null;
|
||||
}
|
||||
View_user user = dao.fetch(View_user.class, Cnd.where("id", "=", userId));
|
||||
if (user == null) {
|
||||
return null;
|
||||
}
|
||||
MemberChangeRecord record = new MemberChangeRecord();
|
||||
BeanUtil.copyProperties(user, record);
|
||||
record.setUserId(user.getId());
|
||||
return record;
|
||||
}
|
||||
|
||||
private int applyManualChange(MemberChangeRecord record) {
|
||||
try {
|
||||
memberCommonService.validateChangeAndSetBasicData(record, MemberChangeOrigin.HAND_MOVEMENT);
|
||||
memberCommonService.compareChangeInfoAndUpdateMember(record);
|
||||
return 1;
|
||||
} catch (BaseException e) {
|
||||
if (StrUtil.contains(e.getMessage(), "未获取到异动数据")) {
|
||||
return 0;
|
||||
}
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void doExport() {
|
||||
|
||||
|
||||
+80
@@ -0,0 +1,80 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.controller.info;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.base.utils.CommonDownloadUtil;
|
||||
import com.budwk.app.sys.models.Sys_union;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberInfoPageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberInfoService;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.Strings;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.POST;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author hqw
|
||||
* @name:MemberInfoInputController
|
||||
* @Date 2026/4/8 19:31
|
||||
* @注释 人员补录
|
||||
*/
|
||||
@At("/platform/member/info/input")
|
||||
@Ok("json:full")
|
||||
@IocBean
|
||||
public class MemberInfoInputController {
|
||||
|
||||
@Inject
|
||||
private MemberInfoService memberInfoService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/info/input/index.html")
|
||||
@SaCheckPermission("member.info.input")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.info.input")
|
||||
public Result pageData(MemberInfoPageForm pageForm) {
|
||||
Sql sql = memberInfoService.getMemberInputSql(pageForm);
|
||||
Pagination pagination = memberInfoService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
@At
|
||||
@POST
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("member.info.input")
|
||||
@SLog(tag = "会员信息录入", type = "add", msg = "新增会员")
|
||||
public Result add(Sys_user user) {
|
||||
try {
|
||||
memberInfoService.addMember(user);
|
||||
return Result.success("新增成功");
|
||||
} catch (Exception e) {
|
||||
return Result.error(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
+11
-12
@@ -2,6 +2,7 @@ package com.budwk.app.zhgh.staffmanage.member.controller.statistics;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberStatisticsPageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberStatisticsService;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
@@ -38,13 +39,12 @@ public class MemberSummaryController {
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.statistics.summary")
|
||||
public Result pageData(@Param("queryId") String queryId, @Param("queryType") String queryType,
|
||||
@Param("currentYear") Integer currentYear) {
|
||||
public Result pageData(MemberStatisticsPageForm pageForm) {
|
||||
List<NutMap> list = new ArrayList<>();
|
||||
if ("fgh".equals(queryType)) {
|
||||
list = memberStatisticsService.getUnionStatisticsData(queryId, currentYear);
|
||||
if ("fgh".equals(pageForm.getQueryType())) {
|
||||
list = memberStatisticsService.getUnionStatisticsData(pageForm);
|
||||
} else {
|
||||
list = memberStatisticsService.getUnitStatisticsData(queryId, currentYear);
|
||||
list = memberStatisticsService.getUnitStatisticsData(pageForm);
|
||||
}
|
||||
return Result.success(list);
|
||||
}
|
||||
@@ -53,16 +53,15 @@ public class MemberSummaryController {
|
||||
@At
|
||||
@Ok("void")
|
||||
@SaCheckPermission("member.statistics.summary")
|
||||
public void doExport(@Param("queryId") String queryId, @Param("queryType") String queryType,
|
||||
@Param("currentYear") Integer currentYear, HttpServletResponse response) {
|
||||
public void doExport(MemberStatisticsPageForm pageForm, HttpServletResponse response) {
|
||||
List<NutMap> list = new ArrayList<>();
|
||||
if ("union".equals(queryType)) {
|
||||
list = memberStatisticsService.getUnionStatisticsData(queryId, currentYear);
|
||||
if ("union".equals(pageForm.getQueryType())) {
|
||||
list = memberStatisticsService.getUnionStatisticsData(pageForm);
|
||||
} else {
|
||||
list = memberStatisticsService.getUnitStatisticsData(queryId, currentYear);
|
||||
list = memberStatisticsService.getUnitStatisticsData(pageForm);
|
||||
}
|
||||
NutMap map = NutMap.NEW();
|
||||
map.put("union".equals(queryType) ? "unionName" : "unitName", "合计");
|
||||
map.put("union".equals(pageForm.getQueryType()) ? "unionName" : "unitName", "合计");
|
||||
map.put("totalNumber", list.stream().mapToInt(v -> v.getInt("TotalNumber")).sum());
|
||||
map.put("maleMember", list.stream().mapToInt(v -> v.getInt("maleMember")).sum());
|
||||
map.put("femaleMember", list.stream().mapToInt(v -> v.getInt("femaleMember")).sum());
|
||||
@@ -73,7 +72,7 @@ public class MemberSummaryController {
|
||||
try {
|
||||
response.setContentType("application/octet-stream");
|
||||
response.setHeader("Content-Disposition", "attachment;filename=" + new String(("会员性别统计.xlsx").getBytes("utf-8"), "ISO8859-1"));
|
||||
Workbook workbook = memberStatisticsService.exportStatisticsExcel(list, queryType);
|
||||
Workbook workbook = memberStatisticsService.exportStatisticsExcel(list, pageForm.getQueryType());
|
||||
workbook.write(response.getOutputStream());
|
||||
workbook.close();
|
||||
} catch (Exception e) {
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.budwk.app.zhgh.staffmanage.member.models;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.budwk.app.base.model.BaseModel;
|
||||
import com.budwk.app.sys.annotation.DataCenterColumn;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
@@ -124,6 +125,17 @@ public class MemberChangeRecord extends BaseModel {
|
||||
@Size(max = 50)
|
||||
private String userState;
|
||||
|
||||
@Column
|
||||
@Comment("人员属性")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
@Size(max = 50)
|
||||
private String userAttribute;
|
||||
|
||||
@Column
|
||||
@Comment("职称")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
private String professionalTitle;
|
||||
|
||||
@Column
|
||||
@Comment("编制类别")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
@@ -220,5 +232,10 @@ public class MemberChangeRecord extends BaseModel {
|
||||
@ColDefine(type = ColType.TEXT)
|
||||
private String remark;
|
||||
|
||||
@Column
|
||||
@Comment("基金会员类型(人员分类)")
|
||||
@ColDefine(type = ColType.VARCHAR,width = 10)
|
||||
private String aidFundMemberUserType;
|
||||
|
||||
private Boolean edit;
|
||||
}
|
||||
|
||||
+8
@@ -41,6 +41,12 @@ public class MemberChangePageForm extends PageForm {
|
||||
@ApiModelProperty("教职工类别")
|
||||
private List<String> personTypes;
|
||||
|
||||
@ApiModelProperty("人员分类")
|
||||
private String aidFundMemberUserType;
|
||||
|
||||
@ApiModelProperty("人员属性")
|
||||
private String userAttribute;
|
||||
|
||||
|
||||
public void buildSearch(Cnd cnd, String prefix){
|
||||
if (cnd == null) {
|
||||
@@ -59,5 +65,7 @@ public class MemberChangePageForm extends PageForm {
|
||||
cnd.andEX(prefix + "userState", "in", this.getUserStates());
|
||||
cnd.andEX(prefix + "preparedBy", "in", this.getPreparedBys());
|
||||
cnd.andEX(prefix + "personType", "in", this.getPersonTypes());
|
||||
cnd.andEX(prefix + "aidFundMemberUserType", "=", this.getAidFundMemberUserType());
|
||||
cnd.andEX(prefix + "userAttribute", "=", this.getUserAttribute());
|
||||
}
|
||||
}
|
||||
|
||||
+44
-8
@@ -98,6 +98,18 @@ public class MemberInfoPageForm extends PageForm {
|
||||
@ApiModelProperty("导出的数据")
|
||||
private List<Map<String, String>> columns;
|
||||
|
||||
@ApiModelProperty("人员分类")
|
||||
private String aidFundMemberUserType;
|
||||
|
||||
@ApiModelProperty("人员分类组")
|
||||
private List<String> aidFundMemberUserTypes;
|
||||
|
||||
@ApiModelProperty("人员属性")
|
||||
private String userAttribute;
|
||||
|
||||
@ApiModelProperty("人员属性组")
|
||||
private List<String> userAttributes;
|
||||
|
||||
public void buildSearch(Cnd cnd, String prefix){
|
||||
if (cnd == null) {
|
||||
cnd = Cnd.NEW();
|
||||
@@ -128,15 +140,39 @@ public class MemberInfoPageForm extends PageForm {
|
||||
}
|
||||
|
||||
cnd.andEX(prefix + "unitId", "=", this.getUnitId());
|
||||
cnd.andEX(prefix + "userState", "in", this.getUserStates());
|
||||
cnd.andEX(prefix + "preparedBy", "in", this.getPreparedBys());
|
||||
cnd.andEX(prefix + "personType", "in", this.getPersonTypes());
|
||||
|
||||
if(StrUtil.isAllBlank(this.getPageOrderName(),this.getPageOrderBy())){
|
||||
cnd.asc("unionCode").asc("unitCode");
|
||||
}else{
|
||||
cnd.orderBy(this.getPageOrderName(), PageUtil.getOrder(this.getPageOrderBy()));
|
||||
if (StrUtil.isNotBlank(this.getUserState())) {
|
||||
cnd.and(prefix + "userState", "=", this.getUserState());
|
||||
} else if (Lang.isNotEmpty(this.getUserStates())) {
|
||||
cnd.and(prefix + "userState", "in", this.getUserStates());
|
||||
}
|
||||
|
||||
if (StrUtil.isNotBlank(this.getPreparedBy())) {
|
||||
cnd.and(prefix + "preparedBy", "=", this.getPreparedBy());
|
||||
} else if (Lang.isNotEmpty(this.getPreparedBys())) {
|
||||
cnd.and(prefix + "preparedBy", "in", this.getPreparedBys());
|
||||
}
|
||||
|
||||
if (StrUtil.isNotBlank(this.getPersonType())) {
|
||||
cnd.and(prefix + "personType", "=", this.getPersonType());
|
||||
} else if (Lang.isNotEmpty(this.getPersonTypes())) {
|
||||
cnd.and(prefix + "personType", "in", this.getPersonTypes());
|
||||
}
|
||||
if (StrUtil.isNotBlank(this.getUserAttribute())) {
|
||||
cnd.and(prefix + "userAttribute", "=", this.getUserAttribute());
|
||||
} else if (Lang.isNotEmpty(this.getUserAttributes())) {
|
||||
cnd.and(prefix + "userAttribute", "in", this.getUserAttributes());
|
||||
}
|
||||
|
||||
if (StrUtil.isNotBlank(this.getAidFundMemberUserType())) {
|
||||
cnd.and(prefix + "aidFundMemberUserType", "=", this.getAidFundMemberUserType());
|
||||
} else if (Lang.isNotEmpty(this.getAidFundMemberUserTypes())) {
|
||||
cnd.and(prefix + "aidFundMemberUserType", "in", this.getAidFundMemberUserTypes());
|
||||
}
|
||||
// if(StrUtil.isAllBlank(this.getPageOrderName(),this.getPageOrderBy())){
|
||||
// cnd.asc("unionCode").asc("unitCode");
|
||||
// }else{
|
||||
// cnd.orderBy(this.getPageOrderName(), PageUtil.getOrder(this.getPageOrderBy()));
|
||||
// }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+8
@@ -38,6 +38,10 @@ public class MemberManagePageForm extends PageForm {
|
||||
|
||||
private String userState;
|
||||
|
||||
private String aidFundMemberUserType;
|
||||
|
||||
private String userAttribute;
|
||||
|
||||
private String changeType;
|
||||
|
||||
//变更状态数组
|
||||
@@ -88,6 +92,8 @@ public class MemberManagePageForm extends PageForm {
|
||||
cnd.andEX("u.preparedBy", "=", pageForm.getPreparedBy());
|
||||
cnd.andEX("u.sex", "=", pageForm.getSex());
|
||||
cnd.andEX("u.personType", "=", pageForm.getPersonType());
|
||||
cnd.andEX("u.aidFundMemberUserType", "=", pageForm.getAidFundMemberUserType());
|
||||
cnd.andEX("u.userAttribute", "=", pageForm.getUserAttribute());
|
||||
|
||||
if (StrUtil.isNotBlank(pageForm.getChangeDateBefore()) && StrUtil.isNotBlank(pageForm.getChangeDateEnd())) {
|
||||
cnd.and(new Static(String.format("Date(his.changeTime) >= '%s' and Date(his.changeTime) <= '%s'", pageForm.getChangeDateBefore(), pageForm.getChangeDateEnd())));
|
||||
@@ -141,6 +147,8 @@ public class MemberManagePageForm extends PageForm {
|
||||
cnd.andEX("record.userState", "=", pageForm.getUserState());
|
||||
cnd.andEX("record.preparedBy", "=", pageForm.getPreparedBy());
|
||||
cnd.andEX("record.personType", "=", pageForm.getPersonType());
|
||||
cnd.andEX("record.aidFundMemberUserType", "=", pageForm.getAidFundMemberUserType());
|
||||
cnd.andEX("record.userAttribute", "=", pageForm.getUserAttribute());
|
||||
|
||||
cnd.groupBy("record.id,task.id");
|
||||
}
|
||||
|
||||
+10
@@ -19,6 +19,12 @@ import java.util.Map;
|
||||
@Data
|
||||
public class MemberStatisticsPageForm extends PageForm {
|
||||
|
||||
private String queryId;
|
||||
|
||||
private String queryType;
|
||||
|
||||
private Integer currentYear;
|
||||
|
||||
private String isUnit;
|
||||
|
||||
private String isUnion;
|
||||
@@ -44,6 +50,10 @@ public class MemberStatisticsPageForm extends PageForm {
|
||||
|
||||
private List<String> preparedBys;
|
||||
|
||||
private List<String> aidFundMemberUserTypes;
|
||||
|
||||
private List<String> userAttributes;
|
||||
|
||||
private List<String> userStates;
|
||||
|
||||
private List<String> memberStatus;
|
||||
|
||||
@@ -27,6 +27,19 @@ public interface MemberInfoService extends BaseService<Sys_user> {
|
||||
*/
|
||||
Sql getSql(MemberInfoPageForm pageForm);
|
||||
|
||||
/**
|
||||
* 获取查询人员补录Sql(变更表)
|
||||
* @param pageForm
|
||||
* @return
|
||||
*/
|
||||
Sql getMemberInputSql(MemberInfoPageForm pageForm);
|
||||
|
||||
/**
|
||||
* 新增会员
|
||||
* @param user 会员信息
|
||||
*/
|
||||
void addMember(Sys_user user);
|
||||
|
||||
/**
|
||||
* 获取会员历史
|
||||
* @param pageForm
|
||||
|
||||
+2
-2
@@ -65,7 +65,7 @@ public interface MemberStatisticsService extends BaseService<Sys_user> {
|
||||
* @param currentYear
|
||||
* @return
|
||||
*/
|
||||
List<NutMap> getUnionStatisticsData(String unionId, Integer currentYear);
|
||||
List<NutMap> getUnionStatisticsData(MemberStatisticsPageForm pageForm);
|
||||
|
||||
/**
|
||||
* 获取单位统计数据
|
||||
@@ -73,7 +73,7 @@ public interface MemberStatisticsService extends BaseService<Sys_user> {
|
||||
* @param currentYear
|
||||
* @return
|
||||
*/
|
||||
List<NutMap> getUnitStatisticsData(String unitId, Integer currentYear);
|
||||
List<NutMap> getUnitStatisticsData(MemberStatisticsPageForm pageForm);
|
||||
|
||||
/**
|
||||
* 导出统计数据
|
||||
|
||||
+151
@@ -9,6 +9,7 @@ import cn.hutool.core.util.DesensitizedUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.base.exception.BaseException;
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.base.utils.*;
|
||||
import com.budwk.app.base.utils.easyexcel.EasyExcelUtil;
|
||||
@@ -18,6 +19,9 @@ import com.budwk.app.sys.models.Sys_user_role;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeOrigin;
|
||||
import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeType;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberChangeRecord;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberHistory;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberInfoPageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberInfoService;
|
||||
@@ -41,6 +45,7 @@ import org.nutz.mvc.upload.TempFile;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -113,6 +118,152 @@ public class MemberInfoServiceImpl extends BaseServiceImpl<Sys_user> implements
|
||||
return sql;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Sql getMemberInputSql(MemberInfoPageForm pageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
info.id,
|
||||
info.userId,
|
||||
info.username,
|
||||
info.loginname,
|
||||
info.unitId,
|
||||
info.unionId,
|
||||
info.sex,
|
||||
info.birthday,
|
||||
info.idCard,
|
||||
info.nation,
|
||||
info.political,
|
||||
info.education,
|
||||
info.academicDegree,
|
||||
info.userState,
|
||||
info.preparedBy,
|
||||
info.personType,
|
||||
info.mobile,
|
||||
info.email,
|
||||
info.member,
|
||||
info.welfareMember,
|
||||
info.retireDate,
|
||||
info.families,
|
||||
info.personalData,
|
||||
info.userAttribute,
|
||||
info.campus,
|
||||
info.professionalTitle,
|
||||
info.aidFundMemberUserType,
|
||||
info.changeType,
|
||||
info.changeOrigin,
|
||||
info.applyDateTime,
|
||||
info.createdAt,
|
||||
info.createdBy,
|
||||
info.updatedAt,
|
||||
info.updatedBy,
|
||||
FROM_UNIXTIME(info.createdAt / 1000, '%Y-%m-%d %H:%i:%s') AS createdAtStr,
|
||||
creator.username AS createdByUsername,
|
||||
su.name AS unitName,
|
||||
sui.name AS unionName
|
||||
FROM
|
||||
member_change_record info
|
||||
INNER JOIN `vw_user` u ON u.id = info.userId
|
||||
LEFT JOIN sys_user creator ON creator.id = info.createdBy
|
||||
LEFT JOIN sys_unit su ON su.id = info.unitId
|
||||
LEFT JOIN sys_union sui ON sui.id = su.unionId
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and("changeOrigin", "=", "HAND_MOVEMENT");
|
||||
pageForm.buildSearch(cnd, "info.");
|
||||
sql.setCondition(cnd);
|
||||
return sql;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public void addMember(Sys_user user) {
|
||||
if (StrUtil.isBlank(user.getLoginname())) {
|
||||
throw new BaseException("工号不能为空");
|
||||
}
|
||||
if (StrUtil.isBlank(user.getUsername())) {
|
||||
throw new BaseException("姓名不能为空");
|
||||
}
|
||||
|
||||
Sys_user existUser = dao().fetch(Sys_user.class, Cnd.where("loginname", "=", user.getLoginname()));
|
||||
if (existUser != null) {
|
||||
throw new BaseException("该工号已存在");
|
||||
}
|
||||
|
||||
Sys_role memberRole = dao().fetch(Sys_role.class, Cnd.where("code", "=", RoleConstant.MEMBER.name()));
|
||||
Sys_role publicRole = dao().fetch(Sys_role.class, Cnd.where("code", "=", RoleConstant.PUBLIC.name()));
|
||||
user.setId(R.UU32());
|
||||
user.setCreateAt(System.currentTimeMillis());
|
||||
user.setLoginCount(0);
|
||||
user.setDisabled(false);
|
||||
|
||||
if (user.getMember() == null) {
|
||||
user.setMember(true);
|
||||
}
|
||||
if (user.getWelfareMember() == null) {
|
||||
user.setWelfareMember(false);
|
||||
}
|
||||
if (user.getSex() == null) {
|
||||
user.setSex("男");
|
||||
}
|
||||
|
||||
dao().insert(user);
|
||||
|
||||
if (publicRole != null) {
|
||||
Sys_user_role userRole = new Sys_user_role();
|
||||
userRole.setUserId(user.getId());
|
||||
userRole.setRoleId(publicRole.getId());
|
||||
dao().insert(userRole);
|
||||
}
|
||||
if (memberRole != null) {
|
||||
Sys_user_role userRole = new Sys_user_role();
|
||||
userRole.setUserId(user.getId());
|
||||
userRole.setRoleId(memberRole.getId());
|
||||
dao().insert(userRole);
|
||||
|
||||
if (user.getMemberTime() == null) {
|
||||
user.setMemberTime(new Date());
|
||||
dao().update(user, Cnd.where("id", "=", user.getId()));
|
||||
}
|
||||
}
|
||||
|
||||
MemberChangeRecord changeRecord = new MemberChangeRecord();
|
||||
changeRecord.setUserId(user.getId());
|
||||
changeRecord.setUsername(user.getUsername());
|
||||
changeRecord.setLoginname(user.getLoginname());
|
||||
changeRecord.setUnitId(user.getUnitId());
|
||||
changeRecord.setUnitName(user.getUnit() != null ? user.getUnit().getName() : "");
|
||||
changeRecord.setUnionId(user.getUnion() != null ? user.getUnion().getId() : null);
|
||||
changeRecord.setUnionName(user.getUnion() != null ? user.getUnion().getName() : "");
|
||||
changeRecord.setSex(user.getSex());
|
||||
changeRecord.setBirthday(user.getBirthday());
|
||||
changeRecord.setIdCard(user.getIdCard());
|
||||
changeRecord.setNation(user.getNation());
|
||||
changeRecord.setPolitical(user.getPolitical());
|
||||
changeRecord.setEducation(user.getEducation());
|
||||
changeRecord.setAcademicDegree(user.getAcademicDegree());
|
||||
changeRecord.setUserState(user.getUserState());
|
||||
changeRecord.setPreparedBy(user.getPreparedBy());
|
||||
changeRecord.setPersonType(user.getPersonType());
|
||||
changeRecord.setMobile(user.getMobile());
|
||||
changeRecord.setEmail(user.getEmail());
|
||||
changeRecord.setMember(user.getMember());
|
||||
changeRecord.setWelfareMember(user.getWelfareMember());
|
||||
changeRecord.setRetireDate(user.getRetireDate());
|
||||
changeRecord.setFamilies(user.getFamilies());
|
||||
changeRecord.setPersonalData(user.getPersonalData());
|
||||
changeRecord.setUserAttribute(user.getUserAttribute());
|
||||
changeRecord.setCampus(user.getCampus());
|
||||
changeRecord.setProfessionalTitle(user.getProfessionalTitle());
|
||||
changeRecord.setAidFundMemberUserType(user.getAidFundMemberUserType());
|
||||
changeRecord.setChangeType(MemberChangeType.NEW.name());
|
||||
changeRecord.setChangeOrigin(MemberChangeOrigin.HAND_MOVEMENT.name());
|
||||
changeRecord.setApplyDateTime(new Date());
|
||||
|
||||
dao().insert(changeRecord);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Sql getMemberHistorySql(MemberInfoPageForm pageForm) {
|
||||
|
||||
+2
@@ -93,6 +93,8 @@ public class MemberManageServiceImpl extends BaseServiceImpl<Sys_user> implement
|
||||
u.personType,
|
||||
u.welfareMember,
|
||||
u.isModelWorker,
|
||||
u.userAttribute,
|
||||
u.aidFundMemberUserType,
|
||||
his.id hisId,
|
||||
his.changeTypes,
|
||||
his.changeTime
|
||||
|
||||
+12
-2
@@ -90,6 +90,8 @@ public class MemberStatisticsServiceImpl extends BaseServiceImpl<Sys_user> imple
|
||||
handleField("unitId", pageForm.getUnitId(), reverseSelection, IN_OR_NIN_OP, cnd);
|
||||
handleField("personType", pageForm.getPersonTypes(), reverseSelection, IN_OR_NIN_OP, cnd);
|
||||
handleField("preparedBy", pageForm.getPreparedBys(), reverseSelection, IN_OR_NIN_OP, cnd);
|
||||
handleField("aidFundMemberUserType", pageForm.getAidFundMemberUserTypes(), reverseSelection, IN_OR_NIN_OP, cnd);
|
||||
handleField("userAttribute", pageForm.getUserAttributes(), reverseSelection, IN_OR_NIN_OP, cnd);
|
||||
handleField("userState", pageForm.getUserStates(), reverseSelection, IN_OR_NIN_OP, cnd);
|
||||
handleField("sex", pageForm.getSexTypes(), reverseSelection, IN_OR_NIN_OP, cnd);
|
||||
cnd.andEX("sur.roleId", IN_OR_NIN_OP, pageForm.getRoleIds());
|
||||
@@ -145,6 +147,8 @@ public class MemberStatisticsServiceImpl extends BaseServiceImpl<Sys_user> imple
|
||||
u.arrivalAtSchoolDate,
|
||||
u.personType,
|
||||
u.preparedBy,
|
||||
u.aidFundMemberUserType,
|
||||
u.userAttribute,
|
||||
u.identityType,
|
||||
u.userState,
|
||||
u.unionName,
|
||||
@@ -309,7 +313,9 @@ public class MemberStatisticsServiceImpl extends BaseServiceImpl<Sys_user> imple
|
||||
|
||||
|
||||
@Override
|
||||
public List<NutMap> getUnionStatisticsData(String unionId, Integer currentYear) {
|
||||
public List<NutMap> getUnionStatisticsData(MemberStatisticsPageForm pageForm) {
|
||||
String unionId = pageForm.getQueryId();
|
||||
Integer currentYear = pageForm.getCurrentYear();
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
un.id,
|
||||
@@ -341,6 +347,7 @@ public class MemberStatisticsServiceImpl extends BaseServiceImpl<Sys_user> imple
|
||||
sql.setVar("yearCnd", new Static(" AND u.`year` = %d".formatted(currentYear)));
|
||||
// sql.setVar("abbr", new Static("his"));
|
||||
}
|
||||
cnd.andEX("u.userAttribute", "in", pageForm.getUserAttributes());
|
||||
cnd.groupBy("un.id", "un.unionCode", "un.name");
|
||||
cnd.asc("un.unionCode");
|
||||
sql.setCondition(cnd);
|
||||
@@ -348,7 +355,9 @@ public class MemberStatisticsServiceImpl extends BaseServiceImpl<Sys_user> imple
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<NutMap> getUnitStatisticsData(String unitId, Integer currentYear) {
|
||||
public List<NutMap> getUnitStatisticsData(MemberStatisticsPageForm pageForm) {
|
||||
String unitId = pageForm.getQueryId();
|
||||
Integer currentYear = pageForm.getCurrentYear();
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
un.id,
|
||||
@@ -378,6 +387,7 @@ public class MemberStatisticsServiceImpl extends BaseServiceImpl<Sys_user> imple
|
||||
sql.setVar("table", new Static("member_history"));
|
||||
sql.setVar("yearCnd", new Static(" AND u.`year` = %d".formatted(currentYear)));
|
||||
}
|
||||
cnd.andEX("u.userAttribute", "in", pageForm.getUserAttributes());
|
||||
cnd.and("un.unitLevel", "=", 2);
|
||||
cnd.groupBy("un.id", "un.unitcode", "un.name");
|
||||
cnd.asc("un.unitcode");
|
||||
|
||||
Reference in New Issue
Block a user