This commit is contained in:
2026-04-16 13:11:53 +08:00
parent 7be45635cf
commit 3261301074
8 changed files with 122 additions and 28 deletions
@@ -89,7 +89,7 @@ public class HealthCheckupListController {
@ApiOperation("分页查询")
@SaCheckPermission("healthCheckup.list.mange")
public Result pageData(PageForm pageForm, String projectId, String subjectId,
String unionId, String unitId,String physicalExaminationStatus) {
String unionId, String unitId, String isEmployed, String physicalExaminationStatus) {
List<HealthCheckupUnionConfirm> confirms = dao.query(HealthCheckupUnionConfirm.class, Cnd.where("projectId", "=", projectId));
HealthCheckupProject project = healthCheckupProjectService.findOne(projectId);
@@ -107,9 +107,10 @@ public class HealthCheckupListController {
hcus.selectTime,
hcus.campus,
hcus.subjectId,
hcus.bz,
hcu.bz,
hcus.receiveAddress,
ca.campusName
ca.campusName,
hcu.isEmployed
FROM
health_checkup_user hcu
LEFT JOIN health_checkup_user_selection hcus ON hcu.userId = hcus.selectUserId
@@ -122,6 +123,8 @@ public class HealthCheckupListController {
cnd.andEX("hcu.unionId", "=", unionId);
cnd.andEX("hcu.unitId", "=", unitId);
cnd.andEX("hcus.subjectId", "=", subjectId);
cnd.andEX("hcu.isEmployed", "=", isEmployed);
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
cnd.andEX("hcu.unionId", "=", SecurityUtil.getUnionId());
@@ -193,7 +196,7 @@ public class HealthCheckupListController {
@ApiOperation("体检名单管理员编辑选择记录")
@SLog(type = "healthCheckup", tag = "体检管理", msg = "管理员编辑了一条选择记录")
@SaCheckPermission("healthCheckup.list.mange")
public Result doEditHealthCheckupData(String subjectId, String campus, String projectId, String userId, String bz) {
public Result doEditHealthCheckupData(String subjectId, String campus, String projectId, String userId, String isEmployed, String bz) {
if(!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(),RoleConstant.HEALTH_ADMIN.name())) {
return Result.error("您没有操作此按钮的权限");
}
@@ -214,6 +217,12 @@ public class HealthCheckupListController {
}
}
healthCheckupProjectService.dao().update(
HealthCheckupUser.class,
Chain.make("isEmployed", isEmployed),
Cnd.NEW().and("projectId", "=", projectId).and("userId", "=", userId)
);
//查询用户有没有选择过套餐
HealthCheckupUserSelection userSelection = healthCheckupProjectService.dao().fetch(HealthCheckupUserSelection.class,
Cnd.where("projectId", "=", projectId)
@@ -282,9 +291,13 @@ public class HealthCheckupListController {
excel.setErrInfo("重复数据", i + 1);
}
if(StringUtils.isNotBlank(excel.getIsEmployed()) && !(excel.getIsEmployed().contains("") || excel.getIsEmployed().contains(""))){
excel.setErrInfo("是否自聘:值只能为 \'是\' 或 \'否\'", i + 1);
}
View_user user = userList.stream().filter(s -> s.getLoginname().equals(excel.getLoginName())).findFirst().orElse(null);
if (user == null) {
excel.setErrInfo("无此用户", i + 1);
excel.setErrInfo("无此用户" + excel.getLoginName(), i + 1);
continue;
}
String projectName = checkupProject.getName();
@@ -295,10 +308,16 @@ public class HealthCheckupListController {
projectName = "校聘高知";
}
if (healthCheckupUserList.stream().anyMatch(s -> s.getUserId().equals(user.getId()))) {
Chain chain = Chain.make("personType", projectName);
if(StringUtils.isNotBlank(excel.getPhone())){
chain.add("phone", excel.getPhone());
}
if(StringUtils.isNotBlank(excel.getIsEmployed())) {
chain.add("isEmployed", excel.getIsEmployed());
}
dao.update(
HealthCheckupUser.class,
Chain.make("phone",excel.getPhone()).add("personType",projectName),
Cnd.NEW().and(HealthCheckupUser::getUserId,"=",user.getId())
HealthCheckupUser.class,chain,
Cnd.NEW().and(HealthCheckupUser::getUserId, "=", user.getId())
.and(HealthCheckupUser::getProjectId, "=", healthProjectId)
);
} else {
@@ -322,6 +341,7 @@ public class HealthCheckupListController {
newHealthUser.setPhone(excel.getPhone());
newHealthUser.setMarriage(user.getMarriage());
newHealthUser.setPersonType(projectName);
newHealthUser.setIsEmployed(excel.getIsEmployed());
healthCheckupUsersToAdd.add(newHealthUser);
successCount++;
}
@@ -351,6 +371,7 @@ public class HealthCheckupListController {
entities.add(new ExcelExportEntity("工号", "loginName", 20));
entities.add(new ExcelExportEntity("姓名", "userName", 20));
entities.add(new ExcelExportEntity("手机号", "phone", 20));
entities.add(new ExcelExportEntity("是否自聘", "isEmployed", 20));
ExportParams exportParams = new ExportParams();
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, entities, Collections.emptyList());
CommonDownloadUtil.download("参加人员导入模版.xlsx", workbook, response);
@@ -455,9 +476,9 @@ public class HealthCheckupListController {
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.BRANCH_UNION_ADMIN.name(), RoleConstant.BRANCH_UNION_CHAIRMAN.name())) {
return Result.error("您没有操作此按钮的权限");
}
dao.update(HealthCheckupUserSelection.class,
dao.update(HealthCheckupUser.class,
Chain.make("bz", remarks),
Cnd.where("selectUserId", "=", userId)
Cnd.where("userId", "=", userId)
.and("projectId", "=", projectId));
return Result.success();
}
@@ -491,9 +512,10 @@ public class HealthCheckupListController {
hcus.selectTime,
hcus.campus,
hcus.subjectId,
hcus.bz,
hcu.bz,
hcus.receiveAddress,
ca.campusName
ca.campusName,
hcu.isEmployed
FROM health_checkup_user hcu
LEFT JOIN health_checkup_user_selection hcus ON hcu.userId = hcus.selectUserId
AND hcus.projectId=@projectId
@@ -559,6 +581,7 @@ public class HealthCheckupListController {
add(new ExcelExportEntity("选择时间", "selectTime", 50));
add(new ExcelExportEntity("是否确认", "isAudit", 50));
add(new ExcelExportEntity("确认时间", "auditTime", 50));
add(new ExcelExportEntity("是否自聘", "isEmployed", 50));
add(new ExcelExportEntity("备注", "bz", 50));
}};
@@ -78,8 +78,9 @@ public class HealthCheckupSingleController {
@ApiOperation("首页查询")
@SaCheckPermission("healthCheckup.statisticsSingle")
public Result pageData(String projectId,
String unionId) {
NutMap nutMap = healthCheckupSingleService.pageData(projectId, unionId);
String unionId,
String isEmployed) {
NutMap nutMap = healthCheckupSingleService.pageData(projectId, unionId, isEmployed);
return Result.success(nutMap);
}
@@ -137,6 +138,7 @@ public class HealthCheckupSingleController {
add(new ExcelExportEntity("部门", "unitName", 20));
add(new ExcelExportEntity("分工会", "unionName", 20));
add(new ExcelExportEntity("邮寄地址", "receiveAddress", 50));
add(new ExcelExportEntity("是否自聘", "isEmployed", 50));
}};
List<NutMap> list;
@@ -110,4 +110,17 @@ public class HealthCheckupUser extends BaseModel implements Serializable {
@Comment("体检报告")
@ColDefine(type = ColType.TEXT)
private String medicalExamination;
@Column
@Comment("是否自聘")
@ColDefine(type = ColType.VARCHAR, width = 10)
@Default("")
private String isEmployed;
@Column
@Comment("备注")
@ColDefine(type = ColType.TEXT)
private String bz;
}
@@ -15,7 +15,7 @@ public interface HealthCheckupSingleService extends BaseService<HealthCheckupPro
* @param projectId 福利id
* @return
*/
NutMap pageData(String projectId,String unionId);
NutMap pageData(String projectId,String unionId, String isEmployed);
/**
@@ -32,17 +32,17 @@ public class HealthCheckupSingleServiceImpl extends BaseServiceImpl<HealthChecku
private HealthCheckupProjectService healthCheckupProjectService;
@Override
public NutMap pageData(String projectId, String unionId) {
public NutMap pageData(String projectId, String unionId, String isEmployed) {
HealthCheckupProject project = healthCheckupProjectService.findOne(projectId);
Sql sql = Sqls.create("""
SELECT
su.id,
su.name unionName,
(SELECT count( 1 ) FROM `health_checkup_user` hcu WHERE hcu.projectId=@projectId and hcu.unionId = su.id ) sumCount
(SELECT count( 1 ) FROM `health_checkup_user` hcu WHERE hcu.projectId=@projectId and hcu.unionId = su.id and isEmployed = @isEmployed ) sumCount
FROM
sys_union su
$condition
""").setParam("projectId", projectId);
""").setParam("projectId", projectId).setParam("isEmployed",isEmployed);
Cnd cnd = Cnd.NEW();
cnd.andEX("su.id", "=", unionId);
cnd.asc("su.unionCode");
@@ -57,9 +57,13 @@ public class HealthCheckupSingleServiceImpl extends BaseServiceImpl<HealthChecku
List<NutMap> userSelectList = this.getUserSelectionByProjectId(projectId);
for (NutMap healthCheckup : healthCheckupList) {
List<NutMap> thisUnionSelectList = userSelectList.stream().filter(x ->
x.getString("unionId").equals(healthCheckup.getString("id")) &&
x.getString("projectId").equals(projectId)).collect(Collectors.toList());
List<NutMap> thisUnionSelectList = userSelectList.stream()
.filter(x ->
x.getString("unionId").equals(healthCheckup.getString("id"))
&& x.getString("projectId").equals(projectId)
&& x.getString("isEmployed").equals(isEmployed)
)
.collect(Collectors.toList());
subjectList.forEach(o -> {
//每一项选择的人数
@@ -76,6 +80,7 @@ public class HealthCheckupSingleServiceImpl extends BaseServiceImpl<HealthChecku
optionCountCnd.andEX("hcu.unionId", "=", healthCheckup.getString("id"));
optionCountCnd.andEX("hs.projectId", "=", projectId);
optionCountCnd.andEX("hs.subjectId", "=", o.getId());
optionCountCnd.andEX("hcu.isEmployed", "=", isEmployed);
optionCountSql.setCondition(optionCountCnd);
int count = count(optionCountSql);
healthCheckup.put(o.getOptionName(), count);
@@ -114,7 +119,8 @@ public class HealthCheckupSingleServiceImpl extends BaseServiceImpl<HealthChecku
hu.selectTime,
hu.projectId,
hu.selectUserId,
hcu.unionId
hcu.unionId,
hcu.isEmployed
FROM
`health_checkup_user_selection` hu
LEFT JOIN `health_checkup_user` hcu ON hcu.userId = hu.selectUserId and hcu.projectId=@projectId
@@ -220,6 +226,7 @@ public class HealthCheckupSingleServiceImpl extends BaseServiceImpl<HealthChecku
hcu.unionName,
hcu.phone as mobile,
hcu.card as idCard,
hcu.isEmployed as isEmployed,
hcps.optionName subjectName,
hcc.campusName,
hcpsm.money,
@@ -261,7 +268,8 @@ public class HealthCheckupSingleServiceImpl extends BaseServiceImpl<HealthChecku
hcu.unitName,
hcu.unionName,
u.idcard idCard,
u.mobile
u.mobile,
hcu.isEmployed as isEmployed
FROM
`health_checkup_user` hcu
LEFT JOIN `vw_user` u ON u.id = hcu.userId
@@ -28,4 +28,7 @@ public class HealthCheckupImportTemp extends ExcelImportError {
@ExcelProperty("体检报告")
private String medicalExamination;
@ExcelProperty("是否自聘")
private String isEmployed;
}
@@ -65,7 +65,16 @@ layout("/layouts/platform.html"){
:key="item.id"></el-option>
</el-select>
</search-item>
<search-item label="是否自聘">
<el-select v-model="pageForm.isEmployed" placeholder="请选择" clearable>
<el-option
v-for="item in isEmployedOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</search-item>
</search>
</el-card>
@@ -167,10 +176,10 @@ layout("/layouts/platform.html"){
:close-on-click-modal="false">
<el-form :model="editHealthCheckupData" label-width="120px" ref="editHealthCheckupForm">
<el-form-item label="姓名">
<el-input :value="editHealthCheckupData.userName"></el-input>
<el-input :value="editHealthCheckupData.userName" readonly></el-input>
</el-form-item>
<el-form-item label="工号">
<el-input :value="editHealthCheckupData.loginName"></el-input>
<el-input :value="editHealthCheckupData.loginName" readonly></el-input>
</el-form-item>
<el-form-item label="套餐"
prop="subjectId"
@@ -180,6 +189,16 @@ layout("/layouts/platform.html"){
:label="item.optionName"></el-option>
</el-select>
</el-form-item>
<el-form-item label="是否自聘">
<el-select v-model="editHealthCheckupData.isEmployed" placeholder="请选择" style="width: 100%" clearable>
<el-option
v-for="item in isEmployedOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="备注"
prop="bz">
<el-input v-model="editHealthCheckupData.bz" type="textarea" rows="5"
@@ -263,6 +282,7 @@ layout("/layouts/platform.html"){
{prop: 'selectTime', label: '选择时间', width: "160px"},
{prop: 'isAudit', label: '是否确认'},
{prop: 'auditTime', label: '确认时间'},
{prop: 'isEmployed', label: '是否自聘'},
{prop: 'bz', label: '备注',width: "200px"},
],
exportHealthCheckupDialog: false,
@@ -278,6 +298,10 @@ layout("/layouts/platform.html"){
remarks: "",
},
campusOptions: [],
isEmployedOptions: [
{value: '是', label: '是'},
{value: '否', label: '否'},
],
}
},
components: {
@@ -336,7 +360,8 @@ layout("/layouts/platform.html"){
subjectId: row.subjectId,
campus: row.campus,
projectId: this.pageForm.projectId,
userId: row.id
userId: row.id,
isEmployed: row.isEmployed
}
this.exportHealthCheckupDialog = true
@@ -447,6 +472,7 @@ layout("/layouts/platform.html"){
},
openEditRemarks(row){
this.doEditRemarks.userId = row.id;
this.doEditRemarks.remarks = row.bz;
this.doEditRemarks.projectId = this.pageForm.projectId;
this.doEditRemarksDialog = true;
},
@@ -459,6 +485,11 @@ layout("/layouts/platform.html"){
if (resp.code === 0) {
this.notifySuccess(resp.msg)
this.doSearch()
this.doEditRemarks = {
userId: '',
projectId: '',
remarks: ''
}
} else {
this.notifyWarning(resp.msg)
}
@@ -37,6 +37,16 @@ layout("/layouts/platform.html"){
:value="item.id" :key="item.id"></el-option>
</el-select>
</search-item>
<search-item label="是否自聘" clearable>
<el-select v-model="pageForm.isEmployed" placeholder="请选择">
<el-option
v-for="item in isEmployedOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</search-item>
<!-- <search-item label="所属单位">
<el-select placeholder="请选择所属单位" v-model="pageForm.unitId"
style="width: 100%;"
@@ -286,7 +296,11 @@ layout("/layouts/platform.html"){
loading: false,
selectLastYearProject: false,
lastYearProjectId: null,
lastYearProjectSubjectOptions: []
lastYearProjectSubjectOptions: [],
isEmployedOptions: [
{value: '是', label: '是'},
{value: '否', label: '否'},
],
}
},
methods: {