八大员缺员兼职查询接口修改、一键审批

This commit is contained in:
cwchen 2025-02-11 17:47:18 +08:00
parent dfa1d87787
commit 4ffee47816
14 changed files with 146 additions and 23 deletions

View File

@ -11,6 +11,7 @@ import com.bonus.common.security.utils.SecurityUtils;
import com.bonus.system.att.entity.OrgChangeBean;
import com.bonus.system.att.service.OrgChangeService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -144,6 +145,24 @@ public class OrgChangeController extends BaseController {
return error("系统异常");
}
@PutMapping("orgBatchChangeCheck")
@Log(title = "流程相关->组织架构变更审核->一键审核", businessType = BusinessType.UPDATE)
public AjaxResult orgBatchChangeCheck(@Validated @RequestBody OrgChangeBean o) {
try{
if(CollectionUtils.isEmpty(o.getIds())){
return AjaxResult.error("请选择要审批的数据");
}
for (Long id : o.getIds()) {
o.setId(id);
orgChangeService.orgChangeCheck(o);
}
return success();
}catch (Exception e){
log.error(e.toString(),e);
}
return error("系统异常");
}
/**
* 获取考勤组
*/

View File

@ -147,4 +147,6 @@ public class OrgChangeBean {
*/
private String isApply;
private List<Long> ids;
}

View File

@ -113,4 +113,6 @@ public class SysOrg {
*/
private List<String> orgList;
private List<Long> ids;
}

View File

@ -184,6 +184,12 @@ public class ProDeptRoleController extends BaseController {
return error("系统异常");
}
@PostMapping("batchRoleCheck")
@Log(title = "项目部管理->项目部角色管理->项目部角色一键审批", businessType = BusinessType.UPDATE)
public AjaxResult batchRoleCheck(@RequestBody ProDeptRoleDo bean) {
return proDeptRoleService.batchRoleCheck(bean);
}
/**
* 查询人员树选择列表
*/

View File

@ -11,6 +11,7 @@ import com.bonus.system.basic.domain.SysTree;
import com.bonus.system.dept.entity.SubOrgBean;
import com.bonus.system.dept.service.SubOrgService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -151,6 +152,24 @@ public class SubOrgController extends BaseController
return error("系统异常");
}
@PostMapping("batchChangeStatus")
@Log(title = "分公司组织信息->分公司项目部审批->一键审批", businessType = BusinessType.UPDATE)
public AjaxResult batchChangeStatus(@RequestBody SubOrgBean org) {
try{
if(CollectionUtils.isEmpty(org.getIds())){
return AjaxResult.error("请选择要审批的数据");
}
for (Long id : org.getIds()) {
org.setId(id);
service.changeStatus(org);
}
return success();
}catch (Exception e){
log.error(e.toString(),e);
}
return error("系统异常");
}
/**
* 获取组织列表(待审批)
*/

View File

@ -98,4 +98,12 @@ public interface ProDeptRoleDao {
String getOrgChildById(Long orgId);
/**
* 项目部管理->项目部角色管理->项目部角色一键审批
* @param bean
* @return void
* @author cwchen
* @date 2025/2/11 15:20
*/
void batchRoleCheck(ProDeptRoleDo bean);
}

View File

@ -68,5 +68,8 @@ public class ProDeptRoleDo extends BaseBean {
*/
private Long reviewerUserId;
/**批量审核ID*/
private List<Long> ids;
}

View File

@ -4,9 +4,11 @@ import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.system.dept.dao.EightMembersVacancyDao;
import com.bonus.system.dept.entity.EightMembersVacancyVo;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Service;
@ -15,6 +17,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.Callable;
import java.util.concurrent.Future;
import static com.bonus.common.core.utils.PageUtils.startPage;
@ -27,7 +31,7 @@ import static com.bonus.common.core.utils.PageUtils.startPage;
*/
@Service(value = "EightMembersVacancyService")
@Slf4j
public class EightMembersVacancyServiceImpl implements EightMembersVacancyService{
public class EightMembersVacancyServiceImpl implements EightMembersVacancyService {
@Resource(name = "EightMembersVacancyDao")
private EightMembersVacancyDao dao;
@ -38,22 +42,34 @@ public class EightMembersVacancyServiceImpl implements EightMembersVacancyServic
@Override
public List<EightMembersVacancyVo> getList(EightMembersVacancyVo vo) {
List<EightMembersVacancyVo> list = new ArrayList<>();
List<EightMembersVacancyVo> newList = new ArrayList<>();
List<Future> futureList = new ArrayList<>();
try {
list = dao.getList(vo);
for (EightMembersVacancyVo vacancyVo : list) {
testTaskExecutor.execute(() -> {
// 查询缺员项目部数量
List<Long> numList = dao.getNumByType(vacancyVo.getId(),1);
// 查询兼职项目部数量
List<Long> numList2 = dao.getNumByType(vacancyVo.getId(),2);
vacancyVo.setVacancyDeptNum(CollectionUtils.isEmpty(numList) ? 0 : numList.size());
vacancyVo.setPartTimeJobNum(CollectionUtils.isEmpty(numList2) ? 0 : numList2.size());
Future<EightMembersVacancyVo> future = testTaskExecutor.submit(new Callable<EightMembersVacancyVo>() {
@Override
public EightMembersVacancyVo call() throws Exception {
// 查询缺员项目部数量
List<Long> numList = dao.getNumByType(vacancyVo.getId(),1);
// 查询兼职项目部数量
List<Long> numList2 = dao.getNumByType(vacancyVo.getId(),2);
vacancyVo.setVacancyDeptNum(CollectionUtils.isEmpty(numList) ? 0 : numList.size());
vacancyVo.setPartTimeJobNum(CollectionUtils.isEmpty(numList2) ? 0 : numList2.size());
return vacancyVo;
}
});
futureList.add(future);
}
for (Future<EightMembersVacancyVo> future : futureList) {
EightMembersVacancyVo vacancyVo = future.get();
newList.add(vacancyVo);
}
PageInfo<EightMembersVacancyVo> pageInfo = new PageInfo<>(newList);
} catch (Exception e) {
log.error(e.toString(),e);
log.error(e.toString(), e);
}
return list;
return newList;
}
@Override
@ -61,13 +77,13 @@ public class EightMembersVacancyServiceImpl implements EightMembersVacancyServic
List<EightMembersVacancyVo.VacancyDetail> list = new ArrayList<>();
try {
// 查询缺员项目部id
List<Long> underStaffingIds = dao.getNumByType(vo.getId(),1);
List<Long> underStaffingIds = dao.getNumByType(vo.getId(), 1);
startPage();
if(CollectionUtils.isNotEmpty(underStaffingIds)){
list = dao.getStaffingList(underStaffingIds,vo);
if (CollectionUtils.isNotEmpty(underStaffingIds)) {
list = dao.getStaffingList(underStaffingIds, vo);
}
} catch (Exception e) {
log.error(e.toString(),e);
log.error(e.toString(), e);
}
return list;
}
@ -77,24 +93,24 @@ public class EightMembersVacancyServiceImpl implements EightMembersVacancyServic
List<EightMembersVacancyVo.VacancyDetail> list = new ArrayList<>();
try {
// 查询兼职项目部id
List<Long> partTimeIds = dao.getNumByType(vo.getId(),2);
List<Long> partTimeIds = dao.getNumByType(vo.getId(), 2);
startPage();
if(CollectionUtils.isNotEmpty(partTimeIds)){
list = dao.getStaffingList(partTimeIds,vo);
if (CollectionUtils.isNotEmpty(partTimeIds)) {
list = dao.getStaffingList(partTimeIds, vo);
}
} catch (Exception e) {
log.error(e.toString(),e);
log.error(e.toString(), e);
}
return list;
}
@Override
public AjaxResult getRoleList() {
List<Map<String,Object>> list = new ArrayList<>();
List<Map<String, Object>> list = new ArrayList<>();
try {
list = dao.getRoleList();
} catch (Exception e) {
log.error(e.toString(),e);
log.error(e.toString(), e);
}
return AjaxResult.success(list);
}

View File

@ -1,6 +1,7 @@
package com.bonus.system.dept.service;
import com.alibaba.fastjson2.JSONArray;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.system.basic.domain.SysOrg;
import com.bonus.system.dept.entity.*;
@ -46,4 +47,13 @@ public interface ProDeptRoleService {
ProDeptRoleBean getInfoById(ProDeptRoleBean o);
List<ProDeptRoleBean> getRoleUserNoManagerList(ProDeptRoleBean bean);
/**
* 项目部管理->项目部角色管理->项目部角色一键审批
* @param bean
* @return AjaxResult
* @author cwchen
* @date 2025/2/11 15:17
*/
AjaxResult batchRoleCheck(ProDeptRoleDo bean);
}

View File

@ -5,6 +5,7 @@ import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.bonus.common.core.utils.BuildTreeUtil;
import com.bonus.common.core.utils.StringUtils;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.security.utils.SecurityUtils;
import com.bonus.system.api.domain.MapVo;
import com.bonus.system.api.domain.SysUser;
@ -14,8 +15,11 @@ import com.bonus.system.basic.service.SysNoticeService;
import com.bonus.system.dept.controller.SubOrgController;
import com.bonus.system.dept.dao.ProDeptRoleDao;
import com.bonus.system.dept.entity.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import javax.annotation.Resource;
import java.util.*;
@ -27,6 +31,7 @@ import java.util.stream.Collectors;
* @author fly
*/
@Service("ProDeptRoleService")
@Slf4j
public class ProDeptRoleServiceImpl implements ProDeptRoleService {
@Resource(name = "ProDeptRoleDao")
@ -145,6 +150,27 @@ public class ProDeptRoleServiceImpl implements ProDeptRoleService {
return proDeptRoleDao.checkPersonAssignment(bean);
}
@Override
public AjaxResult batchRoleCheck(ProDeptRoleDo bean) {
try {
if(CollectionUtils.isEmpty(bean.getIds())){
return AjaxResult.error("未选择审批数据");
}
if(StringUtils.isEmpty(bean.getReviewerStatus())){
return AjaxResult.error("未选择审批状态");
}
long loginId = SecurityUtils.getLoginUser().getSysUser().getUserId();
bean.setReviewerUserId(loginId);
bean.setReviewerTime(DateUtil.date());
proDeptRoleDao.batchRoleCheck(bean);
} catch (Exception e) {
log.error(e.toString(),e);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return AjaxResult.error();
}
return AjaxResult.success();
}
@Override
public JSONArray selectOrgUserList(ProDeptRoleBean bean) {
JSONArray resultTree;

View File

@ -66,7 +66,7 @@ public interface HolidayService {
List<HolidayBean> getHolidayListCheck(HolidayBean bean);
/**
* 流程相关->轮休审批->一键审批
* 流程相关->轮休审批/临时外出审核->一键审批
* @param o
* @return void
* @author cwchen

View File

@ -135,7 +135,8 @@ public class HolidayServiceImpl implements HolidayService {
o.setExamineUserId(updateUserId);
SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
String userName =sysUser.getUserName();
String orgName = sysUser.getOrgName();
// 当前登录人存在多个组织机构时只取第一个组织机构的名称
String orgName = CollectionUtils.isEmpty(sysUser.getOrgList()) ? "" : sysUser.getOrgList().get(0).getName();
String now = DateUtil.now();
if(Objects.equals(o.getExamineStatus(),"1")){
o.setExamineOpinion("同意 " + orgName + " "+userName+" "+ now);

View File

@ -10,7 +10,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
sd.value AS roleName
FROM sys_dict sd
WHERE sd.type = 'deptRole' AND sd.is_active = '1'
<if test="id!=null">
<if test="id!=null and id!=0L">
AND sd.id = #{id}
</if>
ORDER BY update_time

View File

@ -448,4 +448,15 @@
reviewer_time = #{reviewerTime}
where id = #{departmentId}
</update>
<!--项目部管理->项目部角色管理->项目部角色一键审批-->
<update id="batchRoleCheck">
UPDATE sys_department_role
SET reviewer_user_id = #{reviewerUserId},
reviewer_status = #{reviewerStatus},
reviewer_time = #{reviewerTime}
WHERE id IN
<foreach collection="ids" separator="," open="(" close=")" item="item">
#{item}
</foreach>
</update>
</mapper>