|
@@ -7,16 +7,20 @@ import com.qmth.sop.business.bean.result.SysDingGroupResult;
|
|
import com.qmth.sop.business.bean.result.SysDingGroupRoleResult;
|
|
import com.qmth.sop.business.bean.result.SysDingGroupRoleResult;
|
|
import com.qmth.sop.business.entity.*;
|
|
import com.qmth.sop.business.entity.*;
|
|
import com.qmth.sop.business.mapper.SysDingGroupMapper;
|
|
import com.qmth.sop.business.mapper.SysDingGroupMapper;
|
|
-import com.qmth.sop.business.service.*;
|
|
|
|
|
|
+import com.qmth.sop.business.service.SysDingGroupService;
|
|
|
|
+import com.qmth.sop.business.service.SysDingObjService;
|
|
|
|
+import com.qmth.sop.business.service.SysSupplierService;
|
|
|
|
+import com.qmth.sop.business.service.TBServiceService;
|
|
import com.qmth.sop.common.base.BaseEntity;
|
|
import com.qmth.sop.common.base.BaseEntity;
|
|
import com.qmth.sop.common.enums.DingObjTypeEnum;
|
|
import com.qmth.sop.common.enums.DingObjTypeEnum;
|
|
import com.qmth.sop.common.enums.ExceptionResultEnum;
|
|
import com.qmth.sop.common.enums.ExceptionResultEnum;
|
|
import com.qmth.sop.common.enums.ServiceStatusEnum;
|
|
import com.qmth.sop.common.enums.ServiceStatusEnum;
|
|
|
|
+import com.qmth.sop.common.enums.SopRoleTypeEnum;
|
|
import com.qmth.sop.common.util.ServletUtil;
|
|
import com.qmth.sop.common.util.ServletUtil;
|
|
|
|
+import org.apache.commons.collections4.CollectionUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
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.util.CollectionUtils;
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
@@ -38,33 +42,22 @@ public class SysDingGroupServiceImpl extends ServiceImpl<SysDingGroupMapper, Sys
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
SysDingObjService sysDingObjService;
|
|
SysDingObjService sysDingObjService;
|
|
|
|
+
|
|
@Resource
|
|
@Resource
|
|
TBServiceService tbServiceService;
|
|
TBServiceService tbServiceService;
|
|
|
|
+
|
|
@Resource
|
|
@Resource
|
|
SysSupplierService sysSupplierService;
|
|
SysSupplierService sysSupplierService;
|
|
- @Resource
|
|
|
|
- SysRoleService sysRoleService;
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 查询列表
|
|
|
|
- *
|
|
|
|
- * @param iPage
|
|
|
|
- * @return
|
|
|
|
- */
|
|
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
- public IPage<SysDingGroupResult> query(IPage<Map> iPage, Long serviceId, ServiceStatusEnum status, Long[] supplierIds, Long[] dingRoleIds, Long[] approveRoleIds, Boolean faceOpen, Long createStartTime, Long createEndTime) {
|
|
|
|
- IPage<SysDingGroupResult> dingGroupResultIPage = this.baseMapper.query(iPage, serviceId, status, supplierIds, dingRoleIds, approveRoleIds, faceOpen, createStartTime, createEndTime);
|
|
|
|
- dingGroupResultIPage.getRecords().forEach(e -> {
|
|
|
|
- e.setDingObjs(sysDingObjService.getList(e.getId()));
|
|
|
|
- });
|
|
|
|
|
|
+ public IPage<SysDingGroupResult> query(IPage<Map> iPage, Long serviceId, ServiceStatusEnum status, Long[] supplierIds, Long[] dingRoleIds, Long[] approveRoleIds, Boolean faceOpen, Long createStartTime,
|
|
|
|
+ Long createEndTime) {
|
|
|
|
+ IPage<SysDingGroupResult> dingGroupResultIPage = this.baseMapper.query(iPage, serviceId, status, supplierIds,
|
|
|
|
+ dingRoleIds, approveRoleIds, faceOpen, createStartTime, createEndTime);
|
|
|
|
+ dingGroupResultIPage.getRecords().forEach(e -> e.setDingObjs(sysDingObjService.getList(e.getId())));
|
|
return dingGroupResultIPage;
|
|
return dingGroupResultIPage;
|
|
}
|
|
}
|
|
|
|
|
|
- /**
|
|
|
|
- * 新增考勤组表
|
|
|
|
- *
|
|
|
|
- * @param sysDingGroup
|
|
|
|
- */
|
|
|
|
@Override
|
|
@Override
|
|
@Transactional
|
|
@Transactional
|
|
public void add(SysDingGroupResult sysDingGroup) {
|
|
public void add(SysDingGroupResult sysDingGroup) {
|
|
@@ -73,32 +66,24 @@ public class SysDingGroupServiceImpl extends ServiceImpl<SysDingGroupMapper, Sys
|
|
// 新增校验
|
|
// 新增校验
|
|
Long serviceUnitId = sysDingGroup.getServiceId();
|
|
Long serviceUnitId = sysDingGroup.getServiceId();
|
|
List<Long> supplierIdList = sysDingGroup.getSupplierIdList();
|
|
List<Long> supplierIdList = sysDingGroup.getSupplierIdList();
|
|
- if (!CollectionUtils.isEmpty(supplierIdList)) {
|
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(supplierIdList)) {
|
|
List<SysDingGroupRoleResult> sysDingGroupRoleResultList = sysDingGroup.getDingObjs();
|
|
List<SysDingGroupRoleResult> sysDingGroupRoleResultList = sysDingGroup.getDingObjs();
|
|
- List<Long> roleIdList = sysDingGroupRoleResultList.stream()
|
|
|
|
- .filter(e -> DingObjTypeEnum.DING.equals(e.getType()))
|
|
|
|
- .map(SysDingObj::getRoleId).distinct()
|
|
|
|
|
|
+ List<SopRoleTypeEnum> sopRoleTypeList = sysDingGroupRoleResultList.stream()
|
|
|
|
+ .filter(e -> DingObjTypeEnum.DING.equals(e.getType())).map(SysDingObj::getSopRoleType).distinct()
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
for (Long supplierId : supplierIdList) {
|
|
for (Long supplierId : supplierIdList) {
|
|
- List<Long> sysDingGroupIdList = this.list(new QueryWrapper<SysDingGroup>().lambda()
|
|
|
|
- .eq(SysDingGroup::getServiceId, serviceUnitId)
|
|
|
|
- .eq(SysDingGroup::getSupplierId, supplierId))
|
|
|
|
- .stream()
|
|
|
|
- .map(BaseEntity::getId)
|
|
|
|
|
|
+ List<Long> sysDingGroupIdList = this.list(
|
|
|
|
+ new QueryWrapper<SysDingGroup>().lambda().eq(SysDingGroup::getServiceId, serviceUnitId).eq(SysDingGroup::getSupplierId, supplierId)).stream().map(BaseEntity::getId)
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
- if (!CollectionUtils.isEmpty(sysDingGroupIdList)) {
|
|
|
|
- List<Long> dbRoleIdList = sysDingObjService.list(new QueryWrapper<SysDingObj>()
|
|
|
|
- .lambda()
|
|
|
|
- .eq(SysDingObj::getType, DingObjTypeEnum.DING)
|
|
|
|
- .in(SysDingObj::getDingGroupId, sysDingGroupIdList))
|
|
|
|
- .stream()
|
|
|
|
- .map(SysDingObj::getRoleId).distinct().collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
|
|
+ if (CollectionUtils.isEmpty(sysDingGroupIdList)) {
|
|
|
|
+ List<SopRoleTypeEnum> dbSopRoleTypeList = sysDingObjService.list(
|
|
|
|
+ new QueryWrapper<SysDingObj>().lambda().eq(SysDingObj::getType, DingObjTypeEnum.DING).in(SysDingObj::getDingGroupId, sysDingGroupIdList)).stream()
|
|
|
|
+ .map(SysDingObj::getSopRoleType).distinct().collect(Collectors.toList());
|
|
|
|
|
|
- List<Long> alreadyRoleIdList = roleIdList.stream().filter(dbRoleIdList::contains).collect(Collectors.toList());
|
|
|
|
- if (!CollectionUtils.isEmpty(alreadyRoleIdList)) {
|
|
|
|
|
|
+ List<SopRoleTypeEnum> alreadySopRoleTypeList = sopRoleTypeList.stream().filter(dbSopRoleTypeList::contains).collect(Collectors.toList());
|
|
|
|
+ if (CollectionUtils.isNotEmpty(alreadySopRoleTypeList)) {
|
|
// 已存在的角色id集合
|
|
// 已存在的角色id集合
|
|
SysSupplier sysSupplier = sysSupplierService.getById(supplierId);
|
|
SysSupplier sysSupplier = sysSupplierService.getById(supplierId);
|
|
if (Objects.isNull(sysSupplier)) {
|
|
if (Objects.isNull(sysSupplier)) {
|
|
@@ -111,12 +96,10 @@ public class SysDingGroupServiceImpl extends ServiceImpl<SysDingGroupMapper, Sys
|
|
String supplierName = sysSupplier.getName();
|
|
String supplierName = sysSupplier.getName();
|
|
String serviceUnitName = tbServiceUnit.getName();
|
|
String serviceUnitName = tbServiceUnit.getName();
|
|
|
|
|
|
- String roleNames = sysRoleService.listByIds(alreadyRoleIdList)
|
|
|
|
- .stream()
|
|
|
|
- .map(SysRole::getName)
|
|
|
|
- .collect(Collectors.joining(","));
|
|
|
|
|
|
+ String roleNames = alreadySopRoleTypeList.stream().map(SopRoleTypeEnum::getTitle).collect(Collectors.joining(","));
|
|
|
|
|
|
- String error = String.format("新增失败,服务单元[%s],供应商[%s],适用考勤对象为[%s] 的考勤组设置已经存在", serviceUnitName, supplierName, roleNames);
|
|
|
|
|
|
+ String error = String.format("新增失败,服务单元[%s],供应商[%s],适用考勤对象为[%s] 的考勤组设置已经存在", serviceUnitName,
|
|
|
|
+ supplierName, roleNames);
|
|
throw ExceptionResultEnum.ERROR.exception(error);
|
|
throw ExceptionResultEnum.ERROR.exception(error);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -138,11 +121,6 @@ public class SysDingGroupServiceImpl extends ServiceImpl<SysDingGroupMapper, Sys
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- /**
|
|
|
|
- * 修改考勤组表
|
|
|
|
- *
|
|
|
|
- * @param sysDingGroup
|
|
|
|
- */
|
|
|
|
@Override
|
|
@Override
|
|
@Transactional
|
|
@Transactional
|
|
public void update(SysDingGroupResult sysDingGroup) {
|
|
public void update(SysDingGroupResult sysDingGroup) {
|
|
@@ -151,28 +129,20 @@ public class SysDingGroupServiceImpl extends ServiceImpl<SysDingGroupMapper, Sys
|
|
Long serviceUnitId = sysDingGroup.getServiceId();
|
|
Long serviceUnitId = sysDingGroup.getServiceId();
|
|
|
|
|
|
// 编辑校验
|
|
// 编辑校验
|
|
- List<Long> sysDingGroupIdList = this.list(new QueryWrapper<SysDingGroup>().lambda()
|
|
|
|
- .eq(SysDingGroup::getServiceId, serviceUnitId)
|
|
|
|
- .eq(SysDingGroup::getSupplierId, supplierId)
|
|
|
|
- .ne(SysDingGroup::getId, sysDingGroup.getId()))
|
|
|
|
- .stream()
|
|
|
|
- .map(BaseEntity::getId)
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
- List<Long> roleIdList = sysDingGroup.getDingObjs().stream()
|
|
|
|
- .filter(e -> DingObjTypeEnum.DING.equals(e.getType()))
|
|
|
|
- .map(SysDingObj::getRoleId).distinct()
|
|
|
|
|
|
+ List<Long> sysDingGroupIdList = this.list(
|
|
|
|
+ new QueryWrapper<SysDingGroup>().lambda().eq(SysDingGroup::getServiceId, serviceUnitId).eq(SysDingGroup::getSupplierId, supplierId).ne(SysDingGroup::getId, sysDingGroup.getId()))
|
|
|
|
+ .stream().map(BaseEntity::getId).collect(Collectors.toList());
|
|
|
|
+ List<SopRoleTypeEnum> sopRoleTypeList = sysDingGroup.getDingObjs().stream()
|
|
|
|
+ .filter(e -> DingObjTypeEnum.DING.equals(e.getType())).map(SysDingObj::getSopRoleType).distinct()
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
- if (!CollectionUtils.isEmpty(sysDingGroupIdList)) {
|
|
|
|
- List<Long> dbRoleIdList = sysDingObjService.list(new QueryWrapper<SysDingObj>()
|
|
|
|
- .lambda()
|
|
|
|
- .eq(SysDingObj::getType, DingObjTypeEnum.DING)
|
|
|
|
- .in(SysDingObj::getDingGroupId, sysDingGroupIdList))
|
|
|
|
- .stream()
|
|
|
|
- .map(SysDingObj::getRoleId).distinct().collect(Collectors.toList());
|
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(sysDingGroupIdList)) {
|
|
|
|
+ List<SopRoleTypeEnum> dbSopRoleTypeList = sysDingObjService.list(
|
|
|
|
+ new QueryWrapper<SysDingObj>().lambda().eq(SysDingObj::getType, DingObjTypeEnum.DING).in(SysDingObj::getDingGroupId, sysDingGroupIdList)).stream()
|
|
|
|
+ .map(SysDingObj::getSopRoleType).distinct().collect(Collectors.toList());
|
|
|
|
|
|
- List<Long> alreadyRoleIdList = roleIdList.stream().filter(dbRoleIdList::contains).collect(Collectors.toList());
|
|
|
|
- if (!CollectionUtils.isEmpty(alreadyRoleIdList)) {
|
|
|
|
|
|
+ List<SopRoleTypeEnum> alreadySopRoleTypeList = sopRoleTypeList.stream().filter(dbSopRoleTypeList::contains).collect(Collectors.toList());
|
|
|
|
+ if (CollectionUtils.isNotEmpty(alreadySopRoleTypeList)) {
|
|
// 已存在的角色id集合
|
|
// 已存在的角色id集合
|
|
SysSupplier sysSupplier = sysSupplierService.getById(supplierId);
|
|
SysSupplier sysSupplier = sysSupplierService.getById(supplierId);
|
|
if (Objects.isNull(sysSupplier)) {
|
|
if (Objects.isNull(sysSupplier)) {
|
|
@@ -185,12 +155,10 @@ public class SysDingGroupServiceImpl extends ServiceImpl<SysDingGroupMapper, Sys
|
|
String supplierName = sysSupplier.getName();
|
|
String supplierName = sysSupplier.getName();
|
|
String serviceUnitName = tbServiceUnit.getName();
|
|
String serviceUnitName = tbServiceUnit.getName();
|
|
|
|
|
|
- String roleNames = sysRoleService.listByIds(alreadyRoleIdList)
|
|
|
|
- .stream()
|
|
|
|
- .map(SysRole::getName)
|
|
|
|
- .collect(Collectors.joining(","));
|
|
|
|
|
|
+ String roleNames = alreadySopRoleTypeList.stream().map(SopRoleTypeEnum::getTitle).collect(Collectors.joining(","));
|
|
|
|
|
|
- String error = String.format("编辑失败,服务单元[%s],供应商[%s],适用考勤对象为[%s] 的考勤组设置已经存在", serviceUnitName, supplierName, roleNames);
|
|
|
|
|
|
+ String error = String.format("编辑失败,服务单元[%s],供应商[%s],适用考勤对象为[%s] 的考勤组设置已经存在", serviceUnitName,
|
|
|
|
+ supplierName, roleNames);
|
|
throw ExceptionResultEnum.ERROR.exception(error);
|
|
throw ExceptionResultEnum.ERROR.exception(error);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -198,18 +166,14 @@ public class SysDingGroupServiceImpl extends ServiceImpl<SysDingGroupMapper, Sys
|
|
sysDingGroup.setUpdateId(sysUser.getId());
|
|
sysDingGroup.setUpdateId(sysUser.getId());
|
|
sysDingGroup.setUpdateTime(System.currentTimeMillis());
|
|
sysDingGroup.setUpdateTime(System.currentTimeMillis());
|
|
this.saveOrUpdate(sysDingGroup);
|
|
this.saveOrUpdate(sysDingGroup);
|
|
- sysDingObjService.remove(new QueryWrapper<SysDingObj>().lambda().eq(SysDingObj::getDingGroupId, sysDingGroup.getId()));
|
|
|
|
|
|
+ sysDingObjService.remove(
|
|
|
|
+ new QueryWrapper<SysDingObj>().lambda().eq(SysDingObj::getDingGroupId, sysDingGroup.getId()));
|
|
sysDingGroup.getDingObjs().forEach(e -> {
|
|
sysDingGroup.getDingObjs().forEach(e -> {
|
|
e.setDingGroupId(sysDingGroup.getId());
|
|
e.setDingGroupId(sysDingGroup.getId());
|
|
sysDingObjService.save(e);
|
|
sysDingObjService.save(e);
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
- /**
|
|
|
|
- * 删除考勤组表
|
|
|
|
- *
|
|
|
|
- * @param id
|
|
|
|
- */
|
|
|
|
@Override
|
|
@Override
|
|
@Transactional
|
|
@Transactional
|
|
public void delete(Long id) {
|
|
public void delete(Long id) {
|