八大员缺员兼职查询接口修改
This commit is contained in:
parent
9f582413c2
commit
aaae74c9b6
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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(),"、"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
<!--角色下拉选-->
|
||||
|
|
|
|||
Loading…
Reference in New Issue