八大员缺员兼职查询接口修改

This commit is contained in:
cwchen 2025-02-11 12:34:37 +08:00
parent 9f582413c2
commit aaae74c9b6
3 changed files with 95 additions and 106 deletions

View File

@ -13,52 +13,84 @@ import lombok.Data;
*/
@Data
public class EightMembersVacancyVo {
/**序号*/
/**
* 序号
*/
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@Excel(name = "序号", width = 20,height = 15,orderNum = "0")
@Excel(name = "序号", width = 20, height = 15, orderNum = "0")
private long serialNumber;
/**id*/
/**
* id
*/
private Long id;
/**角色名称*/
@Excel(name = "角色名称", width = 30,height = 15,orderNum = "1")
/**
* 角色名称
*/
@Excel(name = "角色名称", width = 30, height = 15, orderNum = "1")
private String roleName;
/**缺员项目部数量*/
@Excel(name = "缺员项目部数量", width = 30,height = 15,orderNum = "2")
/**
* 缺员项目部数量
*/
@Excel(name = "缺员项目部数量", width = 30, height = 15, orderNum = "2")
private int vacancyDeptNum;
/**兼职项目部数量*/
@Excel(name = "兼职项目部数量", width = 30,height = 15,orderNum = "3")
/**
* 兼职项目部数量
*/
@Excel(name = "兼职项目部数量", width = 30, height = 15, orderNum = "3")
private int partTimeJobNum;
/**1.缺员项目部详情 2.兼职项目部详情*/
/**
* 1.缺员项目部详情 2.兼职项目部详情
*/
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private int type;
/**
* 项目部名称
*/
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private String orgName;
@Data
public static class VacancyDetail{
/**角色ID*/
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
public String departmentRoleId;
/**姓名*/
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
public String userName;
/**项目部名称*/
public static class VacancyDetail {
/**
* 项目部名称
*/
public String orgName;
/**项目经理*/
/**
* 项目经理
*/
public String projectManager;
/**安全员*/
/**
* 安全员
*/
public String safetyOfficer;
/**质检员*/
/**
* 质检员
*/
public String qualityInspector;
/**项目总工*/
/**
* 项目总工
*/
public String projectChiefEngineer;
/**机械员*/
/**
* 机械员
*/
public String machinist;
/**资料员*/
/**
* 资料员
*/
public String document;
/**施工员*/
/**
* 施工员
*/
public String constructionWorker;
/**材料员*/
/**
* 材料员
*/
public String materialMan;
/**其他*/
/**
* 其他
*/
public String other;
}
}

View File

@ -65,7 +65,6 @@ public class EightMembersVacancyServiceImpl implements EightMembersVacancyServic
startPage();
if(CollectionUtils.isNotEmpty(underStaffingIds)){
list = dao.getStaffingList(underStaffingIds,vo);
handleData(list);
}
} catch (Exception e) {
log.error(e.toString(),e);
@ -82,7 +81,6 @@ public class EightMembersVacancyServiceImpl implements EightMembersVacancyServic
startPage();
if(CollectionUtils.isNotEmpty(partTimeIds)){
list = dao.getStaffingList(partTimeIds,vo);
handleData(list);
}
} catch (Exception e) {
log.error(e.toString(),e);
@ -100,62 +98,4 @@ public class EightMembersVacancyServiceImpl implements EightMembersVacancyServic
}
return AjaxResult.success(list);
}
/**
* 处理项目经理安全员质检员等数据
* @param list
* @return void
* @author cwchen
* @date 2025/2/11 10:18
*/
public void handleData(List<EightMembersVacancyVo.VacancyDetail> list){
if(CollectionUtils.isNotEmpty(list)){
for (EightMembersVacancyVo.VacancyDetail vacancyDetail : list) {
StringBuilder sb = new StringBuilder();
StringBuilder sb2 = new StringBuilder();
StringBuilder sb3 = new StringBuilder();
StringBuilder sb4 = new StringBuilder();
StringBuilder sb5 = new StringBuilder();
StringBuilder sb6 = new StringBuilder();
StringBuilder sb7 = new StringBuilder();
StringBuilder sb8 = new StringBuilder();
StringBuilder sb9 = new StringBuilder();
if(StringUtils.isNotBlank(vacancyDetail.getDepartmentRoleId())){
String[] departmentRoleIdArr = vacancyDetail.getDepartmentRoleId().split(",");
String[] userNameArr = vacancyDetail.getUserName().split(",");
for (int i = 0; i < departmentRoleIdArr.length; i++) {
String departmentRoleId = departmentRoleIdArr[i];
if(Objects.equals(departmentRoleId,"1")){
sb.append(userNameArr[i]).append("");
}else if(Objects.equals(departmentRoleId,"2")){
sb2.append(userNameArr[i]).append("");
}else if(Objects.equals(departmentRoleId,"3")){
sb3.append(userNameArr[i]).append("");
}else if(Objects.equals(departmentRoleId,"4")){
sb4.append(userNameArr[i]).append("");
}else if(Objects.equals(departmentRoleId,"5")){
sb5.append(userNameArr[i]).append("");
}else if(Objects.equals(departmentRoleId,"6")){
sb6.append(userNameArr[i]).append("");
}else if(Objects.equals(departmentRoleId,"7")){
sb7.append(userNameArr[i]).append("");
}else if(Objects.equals(departmentRoleId,"8")){
sb8.append(userNameArr[i]).append("");
}else if(Objects.equals(departmentRoleId,"9")){
sb9.append(userNameArr[i]).append("");
}
}
}
vacancyDetail.setProjectManager(StringUtils.stripEnd(sb.toString(),""));
vacancyDetail.setSafetyOfficer(StringUtils.stripEnd(sb2.toString(),""));
vacancyDetail.setQualityInspector(StringUtils.stripEnd(sb3.toString(),""));
vacancyDetail.setProjectChiefEngineer(StringUtils.stripEnd(sb4.toString(),""));
vacancyDetail.setMachinist(StringUtils.stripEnd(sb5.toString(),""));
vacancyDetail.setDocument(StringUtils.stripEnd(sb6.toString(),""));
vacancyDetail.setConstructionWorker(StringUtils.stripEnd(sb7.toString(),""));
vacancyDetail.setMaterialMan(StringUtils.stripEnd(sb8.toString(),""));
vacancyDetail.setOther(StringUtils.stripEnd(sb9.toString(),""));
}
}
}
}

View File

@ -47,25 +47,42 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<!--八大员缺员兼职查询-缺员项目部详情-->
<select id="getStaffingList"
resultType="com.bonus.system.dept.entity.EightMembersVacancyVo$VacancyDetail">
SELECT so.id,
so.org_name AS orgName,
GROUP_CONCAT(sdr.department_role_id) AS departmentRoleId,
GROUP_CONCAT(su.user_name) AS userName
FROM sys_organization so
LEFT JOIN sys_department_role sdr ON so.id = sdr.org_id AND sdr.reviewer_status = '1'
LEFT JOIN sys_dict sd ON sd.id = sdr.department_role_id AND sd.type = 'deptRole' AND sd.is_active = '1'
LEFT JOIN sys_department_user sdu ON sdr.id = sdu.department_id AND sdu.is_active = '1'
LEFT JOIN sys_user su ON su.user_id = sdu.user_id AND su.is_active = '1'
<where>
so.is_department = '1' AND so.reviewer_status = '1' AND so.is_active = '1'
<if test="list!=null">
AND so.id IN
<foreach collection="list" open="(" close=")" separator="," item="item">
#{item}
</foreach>
</if>
</where>
GROUP BY so.id
SELECT a.id,
a.orgName,
MAX(IF( a.VALUE = '项目经理', a.userName, '' )) AS projectManager,
MAX(IF( a.VALUE = '安全员', a.userName, '' )) AS safetyOfficer,
MAX(IF( a.VALUE = '质检员', a.userName, '' )) AS qualityInspector,
MAX(IF( a.VALUE = '项目总工', a.userName, '' )) AS projectChiefEngineer,
MAX(IF( a.VALUE = '机械员', a.userName, '' )) AS machinist,
MAX(IF( a.VALUE = '资料员', a.userName, '' )) AS document,
MAX(IF( a.VALUE = '施工员', a.userName, '' )) AS constructionWorker,
MAX(IF( a.VALUE = '材料员', a.userName, '' )) AS materialMan,
MAX(IF( a.VALUE = '其他', a.userName, '' )) AS other
FROM (
SELECT so.id,
so.org_name AS orgName,
GROUP_CONCAT( DISTINCT sd.value ) AS value,
GROUP_CONCAT( su.user_name ) AS userName
FROM sys_organization so
LEFT JOIN sys_department_role sdr ON so.id = sdr.org_id AND sdr.reviewer_status = '1'
LEFT JOIN sys_dict sd ON sd.id = sdr.department_role_id AND sd.type = 'deptRole' AND sd.is_active = '1'
LEFT JOIN sys_department_user sdu ON sdr.id = sdu.department_id AND sdu.is_active = '1'
LEFT JOIN sys_user su ON su.user_id = sdu.user_id AND su.is_active = '1'
<where>
so.is_department = '1' AND so.reviewer_status = '1' AND so.is_active = '1'
<if test="list!=null">
AND so.id IN
<foreach collection="list" open="(" close=")" separator="," item="item">
#{item}
</foreach>
</if>
<if test="params.orgName!=null and params.orgName!=''">
AND INSTR(so.org_name,#{params.orgName}) > 0
</if>
</where>
GROUP BY so.id,sdr.department_role_id
) a
GROUP BY a.id
</select>
<!--角色下拉选-->