bug修改

This commit is contained in:
=
2025-09-02 14:12:57 +08:00
parent 1c805dcd51
commit 773c113fcf
7 changed files with 101 additions and 20 deletions
@@ -14,13 +14,25 @@ public class SingleTeacherPageForm extends PageForm {
@ApiModelProperty("分工会ID")
private String unionId;
@ApiModelProperty("部门ID")
@ApiModelProperty("单位ID")
private String unitId;
@ApiModelProperty("性别")
private String sex;
@ApiModelProperty("婚姻状况")
private String maritalStatus;
@ApiModelProperty("学历")
private String education;
@ApiModelProperty("年龄范围")
private Integer[] age;
@ApiModelProperty("人员类型")
private String personType;
@ApiModelProperty("在职状态")
private String userState;
}
@@ -78,7 +78,9 @@ public class SingleTeacherServiceImpl extends BaseServiceImpl<SingleTeacher> imp
u.loginname,
u.sex,
u.unionName,
u.unitName
u.unitName,
u.personType,
u.userState
FROM
`single_teacher` st
LEFT JOIN vw_user u ON u.id = st.userId
@@ -93,6 +95,11 @@ public class SingleTeacherServiceImpl extends BaseServiceImpl<SingleTeacher> imp
}
cnd.where().andBetween("TIMESTAMPDIFF(YEAR, u.birthday, CURDATE())", pageForm.getAge()[0], pageForm.getAge()[1]);
cnd.andEX("u.unionId", "=", pageForm.getUnionId());
cnd.andEX("u.sex", "=", pageForm.getSex());
cnd.andEX("u.unitId", "=", pageForm.getUnitId());
cnd.andEX("u.personType", "=", pageForm.getPersonType());
cnd.andEX("u.userState", "=", pageForm.getUserState());
cnd.andEX("st.education", "=", pageForm.getEducation());
cnd.andEX("u.maritalStatus", "=", pageForm.getMaritalStatus());
if (StrUtil.isAllNotBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) {
@@ -96,11 +96,11 @@ public class WelfareStatisticsServiceImpl extends BaseServiceImpl<WelfareProject
for (NutMap union : mapUnions) {
// 福利人数
long teacherSum = welfareSelectionList.stream().filter(v -> v.getString("welfareUnionId").equals(union.getString("id"))).count();
long teacherSum = welfareSelectionList.stream().filter(v -> (union.getString("id")).equals(v.getString("welfareUnionId"))).count();
union.put("teacherSum", teacherSum);
// 已选人数
long selectedNum = welfareSelectionList.stream().filter(v -> v.getString("welfareUnionId").equals(union.getString("id")) && v.getBoolean("has_selected")).count();
long selectedNum = welfareSelectionList.stream().filter(v -> (union.getString("id")).equals(v.getString("welfareUnionId")) && v.getBoolean("has_selected")).count();
union.put("selectedNum", selectedNum);
// 未选人数
@@ -108,7 +108,7 @@ public class WelfareStatisticsServiceImpl extends BaseServiceImpl<WelfareProject
// 各选项的选择人数
for (WelfareProjectSubjectOption option : welfareOptions) {
long count = userSelections.stream().filter(v -> v.getString("welfareUnionId").equals(union.getString("id")) && StrUtil.isNotBlank(v.getString("selectOptionId")) && v.getString("selectOptionId").equals(option.getId())).map(v -> v.getString("selectUserId")).distinct().count();
long count = userSelections.stream().filter(v -> (union.getString("id")).equals(v.getString("welfareUnionId")) && StrUtil.isNotBlank(v.getString("selectOptionId")) && v.getString("selectOptionId").equals(option.getId())).map(v -> v.getString("selectUserId")).distinct().count();
union.put(option.getId(), count);
}
}
@@ -43,7 +43,7 @@ layout("/layouts/platform.html"){
<el-descriptions-item label="报销经费来源" span="2">
<el-form-item label="报销经费来源" prop="reimburseFundSource">
<el-radio-group v-model="formData.reimburseFundSource" size="medium" @change="reimburseFundSourceChange">
<el-radio :label="item.code" border v-for="item in dict.type.UNION_REIMBURSE_FUND_SOURCE">
<el-radio :label="item.code" border v-for="item in budgetTypeOption">
{{item.name}}
</el-radio>
</el-radio-group>
@@ -266,7 +266,8 @@ layout("/layouts/platform.html"){
typeOptions: [],
reimburseProjectList: [],
reimburseProjects: [],
clubOptions: []
clubOptions: [],
budgetTypeOption: []
}
},
// 监听报销类别发生变化,报销项目联动改变
@@ -480,6 +481,35 @@ layout("/layouts/platform.html"){
},
// 初始化
async init() {
//报销经费来源区分
this.budgetTypeOption = await this.$businessTool.getDictOptions("UNION_REIMBURSE_FUND_SOURCE")
const budgetTypeOption = []
if (this.$auth.hasRoleOr(["SYSADMIN", "SCHOOL_UNION_ADMIN"])) {
} else {
if (this.$auth.hasRoleOr(["SCHOOL_OUTLAY_ADMIN", "SCHOOL_UNION_ADMIN"])) {
this.budgetTypeOption.map(v => {
if (["UNION_REIMBURSE_FUND_SOURCE_1"].includes(v.code)) {
budgetTypeOption.push(v)
}
})
}
if (this.$auth.hasRoleOr(["BRANCH_UNION_CHAIRMAN", "BRANCH_UNION_ADMIN"])) {
this.budgetTypeOption.map(v => {
if (["UNION_REIMBURSE_FUND_SOURCE_2"].includes(v.code)) {
budgetTypeOption.push(v)
}
})
}
if (this.$auth.hasRoleOr(["CLUB_MANAGER", "CLUB_PRESIDENT"])) {
this.budgetTypeOption.map(v => {
if (["UNION_REIMBURSE_FUND_SOURCE_3"].includes(v.code)) {
budgetTypeOption.push(v)
}
})
}
this.budgetTypeOption = budgetTypeOption
}
this.reimburseProjectList = await this.$businessTool.getDictOptions("UNION_REIMBURSE_PROJECT")
if (this.bizId) {
this.$axios.post("/platform/unionReimburse/apply/info", {id: this.bizId}).then(async (res) => {
@@ -85,7 +85,7 @@ layout("/layouts/platform.html"){
</el-table-column>
<el-table-column prop="money" label="金额"></el-table-column>
<el-table-column prop="createTime" label="申请时间"></el-table-column>
<el-table-column prop="taskName" label="当前节点"></el-table-column>
<el-table-column prop="taskName" label="当前节点"></el-table-column>·
<el-table-column prop="instanceState" label="流程状态">
<template slot-scope="{row}">
<enum-tag :value="row.instanceState" name="ProcessInstanceStateEnum" label_key="message"
@@ -13,11 +13,24 @@ layout("/layouts/platform.html"){
<el-option v-for="item in unionOptions" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</search-item>
<!-- <search-item label="所属单位">-->
<!-- <el-select v-model="pageForm.unitId" placeholder="请选择单位" clearable style="width: 100%">-->
<!-- <el-option v-for="item in unitOptions" :key="item.id" :label="item.name" :value="item.id"></el-option>-->
<!-- </el-select>-->
<!-- </search-item>-->
<search-item label="所属单位">
<el-select placeholder="所属单位" style="width: 100%" v-model="pageForm.unitId" clearable
filterable>
<el-option v-for="item in unitOptions" :label="item.name" :value="item.id"></el-option>
</el-select>
</search-item>
<search-item label="性别">
<el-select v-model="pageForm.sex" placeholder="请选择性别" clearable style="width: 100%">
<el-option label="男性" value="男性"></el-option>
<el-option label="女性" value="女性"></el-option>
</el-select>
</search-item>
<search-item label="年龄区间">
<div style="display: flex; align-items: center">
<el-slider v-model="pageForm.age" range show-stops :max="100" style="flex: 1; padding: 0 12px"></el-slider>
<div style="width: 70px; flex-shrink: 0; text-align: right">{{ pageForm.age ? pageForm.age.join('-') : '' }}</div>
</div>
</search-item>
<search-item label="婚姻状况">
<el-select v-model="pageForm.maritalStatus" placeholder="请选择婚姻状况" clearable style="width: 100%">
<el-option label="未婚" value="未婚"></el-option>
@@ -26,11 +39,29 @@ layout("/layouts/platform.html"){
<el-option label="丧偶" value="丧偶"></el-option>
</el-select>
</search-item>
<search-item label="年龄区间">
<div style="display: flex; align-items: center">
<el-slider v-model="pageForm.age" range show-stops :max="100" style="flex: 1; padding: 0 12px"></el-slider>
<div style="width: 70px; flex-shrink: 0; text-align: right">{{ pageForm.age ? pageForm.age.join('-') : '' }}</div>
</div>
<search-item label="学历">
<el-select clearable placeholder="请选择学历"
style="width: 100%;"
v-model="pageForm.education">
<el-option :label="item.name" :value="item.code"
v-for="item in dict.type.USER_EDUCATION"></el-option>
</el-select>
</search-item>
<search-item label="人员类型">
<el-select clearable placeholder="请选择人员类型"
style="width: 100%;"
v-model="pageForm.personType">
<el-option :label="item.name" :value="item.code"
v-for="item in dict.type.PERSON_TYPE"></el-option>
</el-select>
</search-item>
<search-item label="在职状态">
<el-select clearable placeholder="请选择在职状态"
style="width: 100%;"
v-model="pageForm.userState">
<el-option :label="item.name" :value="item.code"
v-for="item in dict.type.USER_STATE"></el-option>
</el-select>
</search-item>
</search>
</el-card>
@@ -71,6 +102,7 @@ layout("/layouts/platform.html"){
el: "#app",
store,
mixins: [initTableMixins],
dicts: ["USER_STATE", "PERSON_TYPE", "USER_EDUCATION"],
components: {
"form-edit": formEdit
},
@@ -18,8 +18,8 @@ layout("/layouts/platform.html"){
></el-date-picker>
</search-item>
<search-item label="活动时间">
<el-input clearable placeholder="请输入活动名称" v-model="pageForm.name"></el-input>
<search-item label="项目名称">
<el-input clearable placeholder="请输入项目名称" v-model="pageForm.name"></el-input>
</search-item>
</search>
</el-card>