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

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.entity.OrgChangeBean;
import com.bonus.system.att.service.OrgChangeService; import com.bonus.system.att.service.OrgChangeService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -144,6 +145,24 @@ public class OrgChangeController extends BaseController {
return error("系统异常"); 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 String isApply;
private List<Long> ids;
} }

View File

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

View File

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

View File

@ -1,6 +1,7 @@
package com.bonus.system.dept.service; package com.bonus.system.dept.service;
import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONArray;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.system.basic.domain.SysOrg; import com.bonus.system.basic.domain.SysOrg;
import com.bonus.system.dept.entity.*; import com.bonus.system.dept.entity.*;
@ -46,4 +47,13 @@ public interface ProDeptRoleService {
ProDeptRoleBean getInfoById(ProDeptRoleBean o); ProDeptRoleBean getInfoById(ProDeptRoleBean o);
List<ProDeptRoleBean> getRoleUserNoManagerList(ProDeptRoleBean bean); 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.alibaba.fastjson2.JSONArray;
import com.bonus.common.core.utils.BuildTreeUtil; import com.bonus.common.core.utils.BuildTreeUtil;
import com.bonus.common.core.utils.StringUtils; 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.common.security.utils.SecurityUtils;
import com.bonus.system.api.domain.MapVo; import com.bonus.system.api.domain.MapVo;
import com.bonus.system.api.domain.SysUser; 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.controller.SubOrgController;
import com.bonus.system.dept.dao.ProDeptRoleDao; import com.bonus.system.dept.dao.ProDeptRoleDao;
import com.bonus.system.dept.entity.*; 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.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.*; import java.util.*;
@ -27,6 +31,7 @@ import java.util.stream.Collectors;
* @author fly * @author fly
*/ */
@Service("ProDeptRoleService") @Service("ProDeptRoleService")
@Slf4j
public class ProDeptRoleServiceImpl implements ProDeptRoleService { public class ProDeptRoleServiceImpl implements ProDeptRoleService {
@Resource(name = "ProDeptRoleDao") @Resource(name = "ProDeptRoleDao")
@ -145,6 +150,27 @@ public class ProDeptRoleServiceImpl implements ProDeptRoleService {
return proDeptRoleDao.checkPersonAssignment(bean); 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 @Override
public JSONArray selectOrgUserList(ProDeptRoleBean bean) { public JSONArray selectOrgUserList(ProDeptRoleBean bean) {
JSONArray resultTree; JSONArray resultTree;

View File

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

View File

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

View File

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

View File

@ -448,4 +448,15 @@
reviewer_time = #{reviewerTime} reviewer_time = #{reviewerTime}
where id = #{departmentId} where id = #{departmentId}
</update> </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> </mapper>