代码提交
parent
f0baa891af
commit
6bdab4199e
|
|
@ -5,6 +5,7 @@ import io.swagger.annotations.ApiOperation;
|
||||||
import io.swagger.annotations.ApiParam;
|
import io.swagger.annotations.ApiParam;
|
||||||
import org.qinan.safetyeval.client.api.OrgPersonnelApi;
|
import org.qinan.safetyeval.client.api.OrgPersonnelApi;
|
||||||
import org.qinan.safetyeval.client.co.OrgPersonnelCO;
|
import org.qinan.safetyeval.client.co.OrgPersonnelCO;
|
||||||
|
import org.qinan.safetyeval.client.co.OrgPersonnelDeptCountCO;
|
||||||
import org.qinan.safetyeval.client.co.OrgPersonnelImportResultCO;
|
import org.qinan.safetyeval.client.co.OrgPersonnelImportResultCO;
|
||||||
import org.qinan.safetyeval.client.co.QualFilingPersonnelInfoCO;
|
import org.qinan.safetyeval.client.co.QualFilingPersonnelInfoCO;
|
||||||
import org.qinan.safetyeval.client.dto.*;
|
import org.qinan.safetyeval.client.dto.*;
|
||||||
|
|
@ -95,4 +96,10 @@ public class OrgPersonnelController {
|
||||||
public SingleResponse<List<OrgPersonnelCO>> getOrgPersonnel() {
|
public SingleResponse<List<OrgPersonnelCO>> getOrgPersonnel() {
|
||||||
return orgPersonnelApi.getOrgPersonnel();
|
return orgPersonnelApi.getOrgPersonnel();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("按部门批量统计人员数量")
|
||||||
|
@GetMapping("/deptPersonCount")
|
||||||
|
public SingleResponse<List<OrgPersonnelDeptCountCO>> deptPersonCount() {
|
||||||
|
return orgPersonnelApi.deptPersonCount();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ import org.qinan.safetyeval.infrastructure.adapter.auth.AuthUserContextAdapter;
|
||||||
import org.qinan.safetyeval.infrastructure.adapter.gbs.GbsUserFacadeClient;
|
import org.qinan.safetyeval.infrastructure.adapter.gbs.GbsUserFacadeClient;
|
||||||
import org.qinan.safetyeval.infrastructure.convertor.OrgPersonnelCertConvertor;
|
import org.qinan.safetyeval.infrastructure.convertor.OrgPersonnelCertConvertor;
|
||||||
import org.qinan.safetyeval.infrastructure.dataobject.OrgPersonnelDO;
|
import org.qinan.safetyeval.infrastructure.dataobject.OrgPersonnelDO;
|
||||||
|
import org.qinan.safetyeval.infrastructure.dataobject.OrgPersonnelDeptCountDO;
|
||||||
import org.qinan.safetyeval.infrastructure.mapper.OrgPersonnelMapper;
|
import org.qinan.safetyeval.infrastructure.mapper.OrgPersonnelMapper;
|
||||||
import org.qinan.safetyeval.infrastructure.mapper.QualFilingPersonnelCertMapper;
|
import org.qinan.safetyeval.infrastructure.mapper.QualFilingPersonnelCertMapper;
|
||||||
import org.qinan.safetyeval.infrastructure.support.UserOrgIdResolver;
|
import org.qinan.safetyeval.infrastructure.support.UserOrgIdResolver;
|
||||||
|
|
@ -459,6 +460,22 @@ public class OrgPersonnelExecutor implements OrgPersonnelApi {
|
||||||
return SingleResponse.success(orgPersonnelCOS);
|
return SingleResponse.success(orgPersonnelCOS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SingleResponse<List<OrgPersonnelDeptCountCO>> deptPersonCount() {
|
||||||
|
Long orgId = ThreadLocalUserInfoAdapter.getOrgId();
|
||||||
|
List<OrgPersonnelDeptCountDO> rows = orgPersonnelMapper.countPersonGroupByDept(orgId);
|
||||||
|
if (CollectionUtils.isEmpty(rows)) {
|
||||||
|
return SingleResponse.success(Collections.emptyList());
|
||||||
|
}
|
||||||
|
List<OrgPersonnelDeptCountCO> list = rows.stream().map(row -> {
|
||||||
|
OrgPersonnelDeptCountCO co = new OrgPersonnelDeptCountCO();
|
||||||
|
co.setDeptId(row.getDeptId() != null ? String.valueOf(row.getDeptId()) : null);
|
||||||
|
co.setPersonCount(row.getPersonCount() != null ? row.getPersonCount() : 0);
|
||||||
|
return co;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
return SingleResponse.success(list);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SingleResponse<Void> professionalCapabilityProofMaterialUpdate(ProfessionalCapabilityProofMaterialUpdateCmd cmd) {
|
public SingleResponse<Void> professionalCapabilityProofMaterialUpdate(ProfessionalCapabilityProofMaterialUpdateCmd cmd) {
|
||||||
orgPersonnelMapper.update(new LambdaUpdateWrapper<OrgPersonnelDO>()
|
orgPersonnelMapper.update(new LambdaUpdateWrapper<OrgPersonnelDO>()
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package org.qinan.safetyeval.client.api;
|
package org.qinan.safetyeval.client.api;
|
||||||
|
|
||||||
import org.qinan.safetyeval.client.co.OrgPersonnelCO;
|
import org.qinan.safetyeval.client.co.OrgPersonnelCO;
|
||||||
|
import org.qinan.safetyeval.client.co.OrgPersonnelDeptCountCO;
|
||||||
import org.qinan.safetyeval.client.co.OrgPersonnelImportResultCO;
|
import org.qinan.safetyeval.client.co.OrgPersonnelImportResultCO;
|
||||||
import org.qinan.safetyeval.client.co.QualFilingPersonnelInfoCO;
|
import org.qinan.safetyeval.client.co.QualFilingPersonnelInfoCO;
|
||||||
import org.qinan.safetyeval.client.dto.*;
|
import org.qinan.safetyeval.client.dto.*;
|
||||||
|
|
@ -51,6 +52,10 @@ public interface OrgPersonnelApi {
|
||||||
|
|
||||||
SingleResponse<List<OrgPersonnelCO>> getOrgPersonnel();
|
SingleResponse<List<OrgPersonnelCO>> getOrgPersonnel();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按部门批量统计人员数量(直接归属,一次返回)。
|
||||||
|
*/
|
||||||
|
SingleResponse<List<OrgPersonnelDeptCountCO>> deptPersonCount();
|
||||||
|
|
||||||
SingleResponse<Void> professionalCapabilityProofMaterialUpdate(ProfessionalCapabilityProofMaterialUpdateCmd cmd);
|
SingleResponse<Void> professionalCapabilityProofMaterialUpdate(ProfessionalCapabilityProofMaterialUpdateCmd cmd);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
package org.qinan.safetyeval.client.co;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 部门人员数量统计 CO
|
||||||
|
*
|
||||||
|
* @author safety-eval
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class OrgPersonnelDeptCountCO {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "部门ID")
|
||||||
|
private String deptId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "人员数量(直接归属该部门)")
|
||||||
|
private Integer personCount;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
package org.qinan.safetyeval.infrastructure.dataobject;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 部门人员数量统计结果
|
||||||
|
*
|
||||||
|
* @author safety-eval
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class OrgPersonnelDeptCountDO {
|
||||||
|
|
||||||
|
private Long deptId;
|
||||||
|
|
||||||
|
private Integer personCount;
|
||||||
|
}
|
||||||
|
|
@ -9,6 +9,7 @@ import org.qinan.safetyeval.client.co.IndustryProfessionalPersonCo;
|
||||||
import org.qinan.safetyeval.client.co.QualFilingPersonnelInfoCO;
|
import org.qinan.safetyeval.client.co.QualFilingPersonnelInfoCO;
|
||||||
import org.qinan.safetyeval.client.dto.OrgFilingPersonnelPageQuery;
|
import org.qinan.safetyeval.client.dto.OrgFilingPersonnelPageQuery;
|
||||||
import org.qinan.safetyeval.infrastructure.dataobject.OrgPersonnelDO;
|
import org.qinan.safetyeval.infrastructure.dataobject.OrgPersonnelDO;
|
||||||
|
import org.qinan.safetyeval.infrastructure.dataobject.OrgPersonnelDeptCountDO;
|
||||||
import org.qinan.safetyeval.infrastructure.persistence.domainobject.OrgPersonnelLeaderCountDO;
|
import org.qinan.safetyeval.infrastructure.persistence.domainobject.OrgPersonnelLeaderCountDO;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -16,6 +17,14 @@ import java.util.List;
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface OrgPersonnelMapper extends BaseMapper<OrgPersonnelDO> {
|
public interface OrgPersonnelMapper extends BaseMapper<OrgPersonnelDO> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按部门批量统计未删除人员数量(直接归属,不含下级部门汇总)
|
||||||
|
*
|
||||||
|
* @param orgId 机构ID
|
||||||
|
* @return 各部门人员数量
|
||||||
|
*/
|
||||||
|
List<OrgPersonnelDeptCountDO> countPersonGroupByDept(@Param("orgId") Long orgId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据人员id列表统计技术负责人和过程控制负责人数量(按业务范围 qual_scope 分组)
|
* 根据人员id列表统计技术负责人和过程控制负责人数量(按业务范围 qual_scope 分组)
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,16 @@
|
||||||
`id`, `org_id`, `dept_id`, `post_id`, `user_name`, `account`, `gender_code`, `gender_name`, `birth_date`, `id_card_no`, `current_address`, `office_address`, `education_code`, `education_name`, `graduate_school`, `major`, `employment_status_code`, `employment_status_name`, `evaluator_flag`, `delete_enum`, `remarks`, `create_name`, `update_name`, `tenant_id`, `version`, `create_time`, `update_time`, `create_id`, `update_id`, `env`
|
`id`, `org_id`, `dept_id`, `post_id`, `user_name`, `account`, `gender_code`, `gender_name`, `birth_date`, `id_card_no`, `current_address`, `office_address`, `education_code`, `education_name`, `graduate_school`, `major`, `employment_status_code`, `employment_status_name`, `evaluator_flag`, `delete_enum`, `remarks`, `create_name`, `update_name`, `tenant_id`, `version`, `create_time`, `update_time`, `create_id`, `update_id`, `env`
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
|
<!-- 按部门批量统计未删除人员数量(直接归属) -->
|
||||||
|
<select id="countPersonGroupByDept" resultType="org.qinan.safetyeval.infrastructure.dataobject.OrgPersonnelDeptCountDO">
|
||||||
|
SELECT dept_id AS deptId, COUNT(*) AS personCount
|
||||||
|
FROM org_personnel
|
||||||
|
WHERE delete_enum = 'false'
|
||||||
|
AND org_id = #{orgId}
|
||||||
|
AND dept_id IS NOT NULL
|
||||||
|
GROUP BY dept_id
|
||||||
|
</select>
|
||||||
|
|
||||||
<!-- 根据人员id列表统计技术负责人和过程控制负责人数量(按业务范围分组) -->
|
<!-- 根据人员id列表统计技术负责人和过程控制负责人数量(按业务范围分组) -->
|
||||||
<select id="countLeaderFlags" resultType="org.qinan.safetyeval.infrastructure.persistence.domainobject.OrgPersonnelLeaderCountDO">
|
<select id="countLeaderFlags" resultType="org.qinan.safetyeval.infrastructure.persistence.domainobject.OrgPersonnelLeaderCountDO">
|
||||||
SELECT
|
SELECT
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue