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

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

View File

@ -65,7 +65,6 @@ public class EightMembersVacancyServiceImpl implements EightMembersVacancyServic
startPage(); startPage();
if(CollectionUtils.isNotEmpty(underStaffingIds)){ if(CollectionUtils.isNotEmpty(underStaffingIds)){
list = dao.getStaffingList(underStaffingIds,vo); list = dao.getStaffingList(underStaffingIds,vo);
handleData(list);
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e.toString(),e); log.error(e.toString(),e);
@ -82,7 +81,6 @@ public class EightMembersVacancyServiceImpl implements EightMembersVacancyServic
startPage(); startPage();
if(CollectionUtils.isNotEmpty(partTimeIds)){ if(CollectionUtils.isNotEmpty(partTimeIds)){
list = dao.getStaffingList(partTimeIds,vo); list = dao.getStaffingList(partTimeIds,vo);
handleData(list);
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e.toString(),e); log.error(e.toString(),e);
@ -100,62 +98,4 @@ public class EightMembersVacancyServiceImpl implements EightMembersVacancyServic
} }
return AjaxResult.success(list); 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,10 +47,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<!--八大员缺员兼职查询-缺员项目部详情--> <!--八大员缺员兼职查询-缺员项目部详情-->
<select id="getStaffingList" <select id="getStaffingList"
resultType="com.bonus.system.dept.entity.EightMembersVacancyVo$VacancyDetail"> resultType="com.bonus.system.dept.entity.EightMembersVacancyVo$VacancyDetail">
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, SELECT so.id,
so.org_name AS orgName, so.org_name AS orgName,
GROUP_CONCAT(sdr.department_role_id) AS departmentRoleId, GROUP_CONCAT( DISTINCT sd.value ) AS value,
GROUP_CONCAT(su.user_name) AS userName GROUP_CONCAT( su.user_name ) AS userName
FROM sys_organization so FROM sys_organization so
LEFT JOIN sys_department_role sdr ON so.id = sdr.org_id AND sdr.reviewer_status = '1' 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_dict sd ON sd.id = sdr.department_role_id AND sd.type = 'deptRole' AND sd.is_active = '1'
@ -64,8 +76,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="params.orgName!=null and params.orgName!=''">
AND INSTR(so.org_name,#{params.orgName}) > 0
</if>
</where> </where>
GROUP BY so.id GROUP BY so.id,sdr.department_role_id
) a
GROUP BY a.id
</select> </select>
<!--角色下拉选--> <!--角色下拉选-->