From 11c8c2bf5153f017991aa069face7b9e7d404b9b Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Mon, 4 Nov 2024 15:48:30 +0800 Subject: [PATCH] =?UTF-8?q?2024-11-04=20RFQ=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/AuthBusinessServiceImpl.java | 35 ++++ .../impl/AuthGroupMemberServiceImpl.java | 64 ++++++++ .../service/impl/AuthGroupServiceImpl.java | 83 ++++++++++ .../service/impl/AuthHistServiceImpl.java | 25 +++ .../service/impl/AuthRuleServiceImpl.java | 153 ++++++++++++++++++ .../service/impl/AuthStepServiceImpl.java | 61 +++++++ 6 files changed, 421 insertions(+) create mode 100644 src/main/java/com/xujie/sys/modules/auth/service/impl/AuthBusinessServiceImpl.java create mode 100644 src/main/java/com/xujie/sys/modules/auth/service/impl/AuthGroupMemberServiceImpl.java create mode 100644 src/main/java/com/xujie/sys/modules/auth/service/impl/AuthGroupServiceImpl.java create mode 100644 src/main/java/com/xujie/sys/modules/auth/service/impl/AuthHistServiceImpl.java create mode 100644 src/main/java/com/xujie/sys/modules/auth/service/impl/AuthRuleServiceImpl.java create mode 100644 src/main/java/com/xujie/sys/modules/auth/service/impl/AuthStepServiceImpl.java diff --git a/src/main/java/com/xujie/sys/modules/auth/service/impl/AuthBusinessServiceImpl.java b/src/main/java/com/xujie/sys/modules/auth/service/impl/AuthBusinessServiceImpl.java new file mode 100644 index 00000000..f02e6251 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/auth/service/impl/AuthBusinessServiceImpl.java @@ -0,0 +1,35 @@ +package com.xujie.sys.modules.auth.service.Impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.xujie.sys.common.utils.PageUtils; +import com.xujie.sys.modules.auth.data.AuthBusinessData; +import com.xujie.sys.modules.auth.data.vo.AuthBusinessDataVo; +import com.xujie.sys.modules.auth.mapper.AuthBusinessMapper; +import com.xujie.sys.modules.auth.service.AuthBusinessService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @author Jia + * @description 针对表【sys_user_business_role】的数据库操作Service实现 + * @createDate 2024-08-20 12:31:44 + */ +@Service +public class AuthBusinessServiceImpl extends ServiceImpl implements AuthBusinessService { + + @Autowired + private AuthBusinessMapper authBusinessMapper; + + @Override + public PageUtils authBusinessSearch(AuthBusinessDataVo inData) { + IPage AuthBusinessList = this.authBusinessMapper.authBusinessSearch(new Page(inData.getPage(), inData.getLimit()), inData); + return new PageUtils(AuthBusinessList); + } + +} + + + + diff --git a/src/main/java/com/xujie/sys/modules/auth/service/impl/AuthGroupMemberServiceImpl.java b/src/main/java/com/xujie/sys/modules/auth/service/impl/AuthGroupMemberServiceImpl.java new file mode 100644 index 00000000..8e02185a --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/auth/service/impl/AuthGroupMemberServiceImpl.java @@ -0,0 +1,64 @@ +package com.xujie.sys.modules.auth.service.Impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.xujie.sys.modules.auth.data.AuthGroupData; +import com.xujie.sys.modules.auth.data.AuthGroupMemberData; +import com.xujie.sys.modules.auth.data.vo.AuthBusinessDataVo; +import com.xujie.sys.modules.auth.data.vo.AuthGroupMemberDataVo; +import com.xujie.sys.modules.auth.service.AuthGroupMemberService; +import com.xujie.sys.modules.auth.mapper.AuthGroupMemberMapper; +import com.xujie.sys.modules.sys.dao.SysUserDao; +import com.xujie.sys.modules.sys.entity.SysUserEntity; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** +* @author Jia +* @description 针对表【auth_group_member】的数据库操作Service实现 +* @createDate 2024-08-22 16:48:36 +*/ +@Service +public class AuthGroupMemberServiceImpl extends ServiceImpl + implements AuthGroupMemberService{ + + + @Autowired + private AuthGroupMemberMapper authGroupMemberMapper; + + @Override + public List authGroupBusinessSearch(AuthGroupData data) { + List authGroupMemberDataVos = authGroupMemberMapper.authGroupBusinessSearch(data); + return authGroupMemberDataVos; + } + + @Override + public List authGroupBusinessSearch2(AuthGroupData data) { + List authGroupMemberDataVos = authGroupMemberMapper.authGroupBusinessSearch2(data); + return authGroupMemberDataVos; + } + + @Override + public void addAuthGroupMemberBusiness(AuthGroupMemberDataVo data) { + data.getAuthBusinessList().forEach(item -> { + data.setUserId(item.getUserId()); + data.setCreateDate(new Date()); + authGroupMemberMapper.insert(data); + }); + } + + @Override + public void deleteAuthGroupMemberBusiness(AuthGroupMemberDataVo data) { + data.getAuthBusinessList().forEach(item -> { + authGroupMemberMapper.deleteById(item.getAuthGroupMemberId()); + }); + } +} + + + + diff --git a/src/main/java/com/xujie/sys/modules/auth/service/impl/AuthGroupServiceImpl.java b/src/main/java/com/xujie/sys/modules/auth/service/impl/AuthGroupServiceImpl.java new file mode 100644 index 00000000..d0bfcc96 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/auth/service/impl/AuthGroupServiceImpl.java @@ -0,0 +1,83 @@ +package com.xujie.sys.modules.auth.service.Impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.sun.org.apache.bcel.internal.generic.NEW; +import com.xujie.sys.common.utils.PageUtils; +import com.xujie.sys.modules.auth.data.AuthGroupData; +import com.xujie.sys.modules.auth.data.AuthStepData; +import com.xujie.sys.modules.auth.data.vo.AuthBusinessDataVo; +import com.xujie.sys.modules.auth.data.vo.AuthGroupDataVo; +import com.xujie.sys.modules.auth.mapper.AuthStepMapper; +import com.xujie.sys.modules.auth.service.AuthGroupService; +import com.xujie.sys.modules.auth.mapper.AuthGroupMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** +* @author Jia +* @description 针对表【auth_group】的数据库操作Service实现 +* @createDate 2024-08-21 11:24:00 +*/ +@Service +public class AuthGroupServiceImpl extends ServiceImpl + implements AuthGroupService { + + @Autowired + private AuthGroupMapper authGroupMapper; + + @Autowired + private AuthStepMapper authStepMapper; + + @Override + public PageUtils authGroupSearch(AuthGroupData inData) { + IPage AuthGroupList = this.authGroupMapper.authGroupSearch(new Page(inData.getPage(), inData.getLimit()), inData); + return new PageUtils(AuthGroupList); + } + + @Override + public void authGroupSave(AuthGroupData data) { + Map map = new HashMap<>(); + map.put("site", data.getSite()); + map.put("group_no", data.getGroupNo()); + List list = authGroupMapper.selectByMap(map); + if (!list.isEmpty()) { + throw new RuntimeException("该site下已存在相同的审批组"); + } + data.setCreateDate(new Date()); + authGroupMapper.insert(data); + } + + @Override + public void authGroupEdit(AuthGroupData data) { + Map map = new HashMap<>(); + map.put("auth_group_no", data.getGroupNo()); + List authStepList = authStepMapper.selectByMap(map); + if (!authStepList.isEmpty()) { + throw new RuntimeException("该审批组已被审批步骤应用,无法进行修改!"); + } + data.setUpdateDate(new Date()); + authGroupMapper.updateById(data); + } + + @Override + public void authGroupDelete(AuthGroupData data) { + Map map = new HashMap<>(); + map.put("auth_group_no", data.getGroupNo()); + List authStepList = authStepMapper.selectByMap(map); + if (!authStepList.isEmpty()) { + throw new RuntimeException("该审批组已被审批步骤应用,无法删除!"); + } + authGroupMapper.deleteById(data.getAuthGroupId()); + } +} + + + + diff --git a/src/main/java/com/xujie/sys/modules/auth/service/impl/AuthHistServiceImpl.java b/src/main/java/com/xujie/sys/modules/auth/service/impl/AuthHistServiceImpl.java new file mode 100644 index 00000000..e875a430 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/auth/service/impl/AuthHistServiceImpl.java @@ -0,0 +1,25 @@ +package com.xujie.sys.modules.auth.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.xujie.sys.modules.auth.data.AuthHistData; +import com.xujie.sys.modules.auth.service.AuthHistService; +import com.xujie.sys.modules.auth.mapper.AuthHistMapper; +import org.springframework.stereotype.Service; + +/** +* @author Jia +* @description 针对表【auth_hist(审批记录表)】的数据库操作Service实现 +* @createDate 2024-11-01 15:21:32 +*/ +@Service +public class AuthHistServiceImpl extends ServiceImpl + implements AuthHistService{ + + public void saveAuthHist(AuthHistData authHistData) { + this.save(authHistData); + } +} + + + + diff --git a/src/main/java/com/xujie/sys/modules/auth/service/impl/AuthRuleServiceImpl.java b/src/main/java/com/xujie/sys/modules/auth/service/impl/AuthRuleServiceImpl.java new file mode 100644 index 00000000..69e754d4 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/auth/service/impl/AuthRuleServiceImpl.java @@ -0,0 +1,153 @@ +package com.xujie.sys.modules.auth.service.Impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.xujie.sys.common.utils.PageUtils; +import com.xujie.sys.modules.auth.data.AuthGroupData; +import com.xujie.sys.modules.auth.data.AuthHistData; +import com.xujie.sys.modules.auth.data.AuthRuleData; +import com.xujie.sys.modules.auth.data.AuthStepData; +import com.xujie.sys.modules.auth.data.vo.AuthGroupDataVo; +import com.xujie.sys.modules.auth.data.vo.AuthRuleDataVo; +import com.xujie.sys.modules.auth.data.vo.AuthStepDataVo; +import com.xujie.sys.modules.auth.mapper.AuthGroupMapper; +import com.xujie.sys.modules.auth.mapper.AuthStepMapper; +import com.xujie.sys.modules.auth.service.AuthRuleService; +import com.xujie.sys.modules.auth.mapper.AuthRuleMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; + +/** +* @author Jia +* @description 针对表【auth_rule】的数据库操作Service实现 +* @createDate 2024-08-21 18:34:17 +*/ +@Service +public class AuthRuleServiceImpl extends ServiceImpl + implements AuthRuleService{ + + @Autowired + private AuthRuleMapper authRuleMapper; + + @Autowired + private AuthStepMapper authStepMapper; + + @Autowired + private com.xujie.sys.modules.auth.service.impl.AuthHistServiceImpl authHistService; + + @Override + public PageUtils authRuleSearch(AuthRuleData inData) { + IPage AuthRuleList = this.authRuleMapper.authRuleSearch(new Page(inData.getPage(), inData.getLimit()), inData); + return new PageUtils(AuthRuleList); + } + + @Override + public void authRuleSave(AuthRuleData data) { + Map map = new HashMap<>(); + map.put("site", data.getSite()); + map.put("rule_no", data.getRuleNo()); + List list = authRuleMapper.selectByMap(map); + if (list.size() > 0) { + throw new RuntimeException("该site下已存在相同的审批规则"); + } + data.setPriority(1); + data.setCreateDate(new Date()); + authRuleMapper.insert(data); + + } + + @Override + public void authRuleEdit(AuthRuleData data) { +// Map map = new HashMap<>(); +// map.put("site", data.getSite()); +// map.put("bu_no", data.getBuNo()); +// map.put("rule_no", data.getRuleNo()); +// List list = authRuleMapper.selectByMap(map); +// if (list.size() > 0) { +// throw new RuntimeException("该site下已存在相同的审批规则"); +// } + data.setUpdateDate(new Date()); + authRuleMapper.updateById(data); + + } + + @Override + public void authRuleDelete(AuthRuleData data) { + AuthStepData authStepData = new AuthStepData(); + authStepData.setAuthRuleId(data.getAuthRuleId()); + List authStepDataVos = authStepMapper.authStepSearch(authStepData); + if (!authStepDataVos.isEmpty()) { + throw new RuntimeException("该审批规则下存在审批步骤,不可删除"); + } + authRuleMapper.deleteById(data.getAuthRuleId()); + } + + @Override + public List getBusinessTypeList(AuthRuleDataVo data) { + List businessTypeList = authRuleMapper.getBusinessTypeList(data); + return businessTypeList; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void getFormAuthRule(String recordType,String site,String buNo,String orderRef1) { + AuthRuleDataVo authRuleData = authRuleMapper.getFormAuthRule(recordType,site,buNo); + List authStepsByRuleId = authStepMapper.getAuthStepsByRuleId(authRuleData.getAuthRuleId()); + for (AuthStepDataVo authStepDataVo : authStepsByRuleId) { + AuthHistData authHistData = new AuthHistData(); + authHistData.setRecordTypeDb(recordType); + authHistData.setOrderRef1(orderRef1); + authHistData.setSite(site); + authHistData.setAuthRuleId(authStepDataVo.getAuthRuleId()); + authHistData.setStepId(authStepDataVo.getStepNo()); + authHistData.setAuthTypeDb(authStepDataVo.getAuthTypeDb()); + + if (Objects.equals(authStepDataVo.getAuthTypeDb(), "U")){ + authHistData.setAuthUserId(authStepDataVo.getAuthUserNo()); + } else { + authHistData.setAuthGroupId(authStepDataVo.getAuthGroupNo()); + } + + authHistData.setAuthFlag("N"); + + // 如果是同时审批则CanAuthFlag为Y + if (authRuleData.getIsSimultaneous()) { + authHistData.setCanAuthFlag("Y"); + } else { + // 如果是首步骤则CanAuthFlag为Y其余的都为N + if (authStepDataVo.getFirstStepFlag().equals("Y")) { + authHistData.setCanAuthFlag("Y"); + } else { + authHistData.setCanAuthFlag("N"); + } + } + + if (authStepDataVo.getFirstStepFlag().equals("Y")){ + authHistData.setFirstStepFlag("Y"); + authHistData.setLastStepFlag("N"); + } else if (authStepDataVo.getLastStepFlag().equals("Y")){ + authHistData.setFirstStepFlag("N"); + authHistData.setLastStepFlag("Y"); + } else { + authHistData.setFirstStepFlag("N"); + authHistData.setLastStepFlag("N"); + } + + try { + authHistService.saveAuthHist(authHistData); + } catch (Exception e) { + throw new RuntimeException("审批记录保存失败:" + e.getMessage()); + } + + } + } + +} + + + + diff --git a/src/main/java/com/xujie/sys/modules/auth/service/impl/AuthStepServiceImpl.java b/src/main/java/com/xujie/sys/modules/auth/service/impl/AuthStepServiceImpl.java new file mode 100644 index 00000000..3613783a --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/auth/service/impl/AuthStepServiceImpl.java @@ -0,0 +1,61 @@ +package com.xujie.sys.modules.auth.service.Impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.xujie.sys.modules.auth.data.AuthStepData; +import com.xujie.sys.modules.auth.data.vo.AuthStepDataVo; +import com.xujie.sys.modules.auth.service.AuthStepService; +import com.xujie.sys.modules.auth.mapper.AuthStepMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** +* @author Jia +* @description 针对表【auth_step】的数据库操作Service实现 +* @createDate 2024-08-21 18:50:33 +*/ +@Service +public class AuthStepServiceImpl extends ServiceImpl + implements AuthStepService{ + + @Autowired + private AuthStepMapper authStepMapper; + + + @Override + public List authStepSearch(AuthStepData data) { + return authStepMapper.authStepSearch(data); + } + @Override + public void authStepSave(AuthStepData data) { + Map map = new HashMap<>(); + map.put("rule_id", data.getAuthRuleId()); + map.put("step_no", data.getStepNo()); + List list = authStepMapper.selectByMap(map); + if (!list.isEmpty()) { + throw new RuntimeException("该审批规则下已存在相同步骤号!"); + } + data.setCreateDate(new Date()); + authStepMapper.insert(data); + } + + @Override + public void authStepEdit(AuthStepData data) { + data.setUpdateDate(new Date()); + authStepMapper.updateById(data); + } + + @Override + public void authStepDelete(AuthStepData data) { + authStepMapper.deleteById(data); + } + +} + + + +