From 4ffee47816b4e8bbd707baa0a52db2aeabeb3395 Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Tue, 11 Feb 2025 17:47:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AB=E5=A4=A7=E5=91=98=E7=BC=BA=E5=91=98?= =?UTF-8?q?=E5=85=BC=E8=81=8C=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E3=80=81=E4=B8=80=E9=94=AE=E5=AE=A1=E6=89=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../att/controller/OrgChangeController.java | 19 +++++++ .../system/att/entity/OrgChangeBean.java | 2 + .../com/bonus/system/basic/domain/SysOrg.java | 2 + .../controller/ProDeptRoleController.java | 6 ++ .../dept/controller/SubOrgController.java | 19 +++++++ .../bonus/system/dept/dao/ProDeptRoleDao.java | 8 +++ .../system/dept/entity/ProDeptRoleDo.java | 3 + .../EightMembersVacancyServiceImpl.java | 56 ++++++++++++------- .../dept/service/ProDeptRoleService.java | 10 ++++ .../dept/service/ProDeptRoleServiceImpl.java | 26 +++++++++ .../holiday/service/HolidayService.java | 2 +- .../holiday/service/HolidayServiceImpl.java | 3 +- .../mapper/dept/EightMembersVacancyMapper.xml | 2 +- .../mapper/dept/ProDeptRoleMapper.xml | 11 ++++ 14 files changed, 146 insertions(+), 23 deletions(-) diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/controller/OrgChangeController.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/controller/OrgChangeController.java index 60e641f..56baf85 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/controller/OrgChangeController.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/controller/OrgChangeController.java @@ -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("系统异常"); + } + /** * 获取考勤组 */ diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/entity/OrgChangeBean.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/entity/OrgChangeBean.java index e1dc465..39e2a76 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/entity/OrgChangeBean.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/entity/OrgChangeBean.java @@ -147,4 +147,6 @@ public class OrgChangeBean { */ private String isApply; + private List ids; + } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/domain/SysOrg.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/domain/SysOrg.java index 9113e27..c531b51 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/domain/SysOrg.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/domain/SysOrg.java @@ -113,4 +113,6 @@ public class SysOrg { */ private List orgList; + private List ids; + } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/controller/ProDeptRoleController.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/controller/ProDeptRoleController.java index 6115737..6e62eb3 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/controller/ProDeptRoleController.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/controller/ProDeptRoleController.java @@ -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); + } + /** * 查询人员树选择列表 */ diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/controller/SubOrgController.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/controller/SubOrgController.java index 57ca1ea..6ae00f6 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/controller/SubOrgController.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/controller/SubOrgController.java @@ -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("系统异常"); + } + /** * 获取组织列表(待审批) */ diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/dao/ProDeptRoleDao.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/dao/ProDeptRoleDao.java index 27df814..19a8080 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/dao/ProDeptRoleDao.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/dao/ProDeptRoleDao.java @@ -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); } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/entity/ProDeptRoleDo.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/entity/ProDeptRoleDo.java index c41c402..862a071 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/entity/ProDeptRoleDo.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/entity/ProDeptRoleDo.java @@ -68,5 +68,8 @@ public class ProDeptRoleDo extends BaseBean { */ private Long reviewerUserId; + /**批量审核ID*/ + private List ids; + } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/service/EightMembersVacancyServiceImpl.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/service/EightMembersVacancyServiceImpl.java index 9e000b7..3c50f03 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/service/EightMembersVacancyServiceImpl.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/service/EightMembersVacancyServiceImpl.java @@ -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 getList(EightMembersVacancyVo vo) { List list = new ArrayList<>(); + List newList = new ArrayList<>(); + List futureList = new ArrayList<>(); try { list = dao.getList(vo); for (EightMembersVacancyVo vacancyVo : list) { - testTaskExecutor.execute(() -> { - // 查询缺员项目部数量 - List numList = dao.getNumByType(vacancyVo.getId(),1); - // 查询兼职项目部数量 - List numList2 = dao.getNumByType(vacancyVo.getId(),2); - vacancyVo.setVacancyDeptNum(CollectionUtils.isEmpty(numList) ? 0 : numList.size()); - vacancyVo.setPartTimeJobNum(CollectionUtils.isEmpty(numList2) ? 0 : numList2.size()); + Future future = testTaskExecutor.submit(new Callable() { + @Override + public EightMembersVacancyVo call() throws Exception { + // 查询缺员项目部数量 + List numList = dao.getNumByType(vacancyVo.getId(),1); + // 查询兼职项目部数量 + List 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 future : futureList) { + EightMembersVacancyVo vacancyVo = future.get(); + newList.add(vacancyVo); + } + PageInfo 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 list = new ArrayList<>(); try { // 查询缺员项目部id - List underStaffingIds = dao.getNumByType(vo.getId(),1); + List 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 list = new ArrayList<>(); try { // 查询兼职项目部id - List partTimeIds = dao.getNumByType(vo.getId(),2); + List 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> list = new ArrayList<>(); + List> list = new ArrayList<>(); try { list = dao.getRoleList(); } catch (Exception e) { - log.error(e.toString(),e); + log.error(e.toString(), e); } return AjaxResult.success(list); } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/service/ProDeptRoleService.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/service/ProDeptRoleService.java index e9ab85f..c529d19 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/service/ProDeptRoleService.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/service/ProDeptRoleService.java @@ -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 getRoleUserNoManagerList(ProDeptRoleBean bean); + + /** + * 项目部管理->项目部角色管理->项目部角色一键审批 + * @param bean + * @return AjaxResult + * @author cwchen + * @date 2025/2/11 15:17 + */ + AjaxResult batchRoleCheck(ProDeptRoleDo bean); } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/service/ProDeptRoleServiceImpl.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/service/ProDeptRoleServiceImpl.java index 561853c..8284205 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/service/ProDeptRoleServiceImpl.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/service/ProDeptRoleServiceImpl.java @@ -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; diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/holiday/service/HolidayService.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/holiday/service/HolidayService.java index ab73590..cfee75d 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/holiday/service/HolidayService.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/holiday/service/HolidayService.java @@ -66,7 +66,7 @@ public interface HolidayService { List getHolidayListCheck(HolidayBean bean); /** - * 流程相关->轮休审批->一键审批 + * 流程相关->轮休审批/临时外出审核->一键审批 * @param o * @return void * @author cwchen diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/holiday/service/HolidayServiceImpl.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/holiday/service/HolidayServiceImpl.java index 4870c64..c0ba7e2 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/holiday/service/HolidayServiceImpl.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/holiday/service/HolidayServiceImpl.java @@ -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); diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/dept/EightMembersVacancyMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/dept/EightMembersVacancyMapper.xml index 0be166a..0f49f38 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/dept/EightMembersVacancyMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/dept/EightMembersVacancyMapper.xml @@ -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' - + AND sd.id = #{id} ORDER BY update_time diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/dept/ProDeptRoleMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/dept/ProDeptRoleMapper.xml index e5f4ab9..ff4d1f1 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/dept/ProDeptRoleMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/dept/ProDeptRoleMapper.xml @@ -448,4 +448,15 @@ reviewer_time = #{reviewerTime} where id = #{departmentId} + + + UPDATE sys_department_role + SET reviewer_user_id = #{reviewerUserId}, + reviewer_status = #{reviewerStatus}, + reviewer_time = #{reviewerTime} + WHERE id IN + + #{item} + + \ No newline at end of file