From b5871e1ea92205421b7c8be08d96089cbf9e8548 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 16 Jun 2022 14:13:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=83=E9=99=90=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sqlupgrade/Oracle/sql202206071403.sql | 36 ++++++++-------- resource/sql/薪酬总管理员权限项.sql | 30 ++++++++++++++ .../salary/constant/SalaryAuthConstant.java | 18 ++++++++ .../service/impl/TaxAgentServiceImpl.java | 41 +++++++++++++++---- 4 files changed, 100 insertions(+), 25 deletions(-) create mode 100644 resource/sql/薪酬总管理员权限项.sql create mode 100644 src/com/engine/salary/constant/SalaryAuthConstant.java diff --git a/resource/ecology9/sqlupgrade/Oracle/sql202206071403.sql b/resource/ecology9/sqlupgrade/Oracle/sql202206071403.sql index beef0365a..a44b5a51d 100644 --- a/resource/ecology9/sqlupgrade/Oracle/sql202206071403.sql +++ b/resource/ecology9/sqlupgrade/Oracle/sql202206071403.sql @@ -9,7 +9,7 @@ CREATE TABLE hrsa_tax_agent_emp tax_agent_id NUMBER(38,0) NOT NULL, employee_id NUMBER(38,0) NOT NULL, employee_name varchar2(255) -) ; +) / CREATE TABLE hrsa_tax_agent_emp_change @@ -19,16 +19,15 @@ CREATE TABLE hrsa_tax_agent_emp_change update_time date DEFAULT sysdate, creator NUMBER(38,0) DEFAULT 0, delete_type number DEFAULT 0 , - tenant_key varchar2(10) DEFAULT '' + tenant_key varchar2(10) DEFAULT '', tax_agent_id NUMBER(38,0) NOT NULL, employee_id NUMBER(38,0) NOT NULL, - change_type number NOT NULL DEFAULT 0 , - employee_name varchar2(255) NULL DEFAULT NULL, - module_type int(4) NOT NULL DEFAULT 0 -) ; + change_type number DEFAULT 0 , + employee_name varchar2(255) DEFAULT NULL, + module_type NUMBER(4,0) DEFAULT 0 +) / - CREATE TABLE hrsa_tax_agent_admin ( id NUMBER(38,0) primary key NOT NULL, @@ -39,7 +38,7 @@ CREATE TABLE hrsa_tax_agent_admin creator NUMBER(38,0) DEFAULT 0, delete_type number DEFAULT 0 , tenant_key varchar2(10) DEFAULT '' -) ; +) / CREATE TABLE hrsa_tax_agent_manage_range @@ -48,29 +47,29 @@ CREATE TABLE hrsa_tax_agent_manage_range tax_agent_id NUMBER(38,0) NOT NULL, employee_id NUMBER(38,0) NOT NULL, tax_agent_sub_admin_id NUMBER(38,0) NOT NULL, - target_type number NOT NULL DEFAULT 1, + target_type number DEFAULT 1, target_id NUMBER(38,0) NOT NULL, employee_status varchar2(100) NOT NULL, - include_type number NOT NULL DEFAULT 1, + include_type number DEFAULT 1, creator NUMBER(38,0) DEFAULT '0', create_time date DEFAULT sysdate, update_time date DEFAULT sysdate, delete_type number DEFAULT 0 , tenant_key varchar2(10) DEFAULT '', - range_type number NOT NULL DEFAULT 0 -) ; + range_type number DEFAULT 0 +) / CREATE TABLE hrsa_tax_agent_base ( id NUMBER(38,0) primary key NOT NULL, - devolution_status int(11) NOT NULL DEFAULT 0 COMMENT 'Ȩ״̬0ء1', + devolution_status NUMBER(11,0) DEFAULT 0 , create_time date DEFAULT sysdate, update_time date DEFAULT sysdate, creator NUMBER(38,0) DEFAULT '0', delete_type number DEFAULT 0 , tenant_key varchar2(10) DEFAULT '' -) ; +) / CREATE TABLE hrsa_tax_agent_sub_admin @@ -84,8 +83,9 @@ CREATE TABLE hrsa_tax_agent_sub_admin creator NUMBER(38,0) DEFAULT '0', delete_type number DEFAULT 0 , tenant_key varchar2(10) DEFAULT '', - remark text -) ; + remark clob +) + / CREATE TABLE hrsa_tax_agent_sub_admin_emp @@ -100,7 +100,7 @@ CREATE TABLE hrsa_tax_agent_sub_admin_emp tax_agent_sub_admin_id NUMBER(38,0) NOT NULL, employee_id NUMBER(38,0) NOT NULL, employee_name varchar2(255) -) ; +) / ALTER TABLE hrsa_tax_agent add ( @@ -115,7 +115,7 @@ ALTER TABLE hrsa_salary_sob add ( -INSERT INTO hrsa_tax_agent_base(id, devolution_status, create_time, update_time, creator, delete_type, tenant_key) VALUES (1653303537239, 1, to_date('2022-05-10 16:03:02','yyyy-MM-dd HH24:mi:ss'), to_date('2022-05-10 16:03:02','yyyy-MM-dd HH24:mi:ss'), 1, 0, 'all_teams'); +INSERT INTO hrsa_tax_agent_base(id, devolution_status, create_time, update_time, creator, delete_type, tenant_key) VALUES (1653303537239, 1, to_date('2022-05-10 16:03:02','yyyy-MM-dd HH24:mi:ss'), to_date('2022-05-10 16:03:02','yyyy-MM-dd HH24:mi:ss'), 1, 0, 'all_teams') / ALTER TABLE hrsa_bill_detail_temp add ( diff --git a/resource/sql/薪酬总管理员权限项.sql b/resource/sql/薪酬总管理员权限项.sql new file mode 100644 index 000000000..899642614 --- /dev/null +++ b/resource/sql/薪酬总管理员权限项.sql @@ -0,0 +1,30 @@ +delete from SystemRightDetail where rightid =2693 +; +delete from SystemRightsLanguage where id =2693 +; +delete from SystemRights where id =2693 +; +delete from SystemRightToGroup where rightid =2693 +; +delete from SystemRightType where id =36 +; +delete from SystemRightGroups where id =-22 +; +insert into SystemRights (id,rightdesc,righttype,detachable) values (2693,'薪酬管理权限','36',0) +; +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (2693,8,'Salary management authority','Salary management authority') +; +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (2693,9,'薪酬管理權限','薪酬管理權限') +; +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (2693,7,'薪酬管理权限','薪酬管理权限') +; + +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (43969,'薪酬总管理员','Salary:Chief',2693) +; + +insert into SystemRightToGroup(rightid,groupid) values (2693,-22) +; +insert into SystemRightGroups (id,rightgroupmark, rightgroupname, rightgroupremark) values(-22,'SALARY','薪酬管理权限组','薪酬管理') +; +insert into SystemRightType(id,rightTypeName,rightTypeDesc) VALUES (36,'薪酬管理','薪酬管理') +; diff --git a/src/com/engine/salary/constant/SalaryAuthConstant.java b/src/com/engine/salary/constant/SalaryAuthConstant.java new file mode 100644 index 000000000..f89a6805d --- /dev/null +++ b/src/com/engine/salary/constant/SalaryAuthConstant.java @@ -0,0 +1,18 @@ +package com.engine.salary.constant; + +/** + * 薪酬管理权限常量 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public class SalaryAuthConstant { + + + /** + * 薪酬总管理员表示 + */ + public static final String SALARY_CHIEF = "Salary:Chief"; +} diff --git a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java index 76c98ced2..d30b96be4 100644 --- a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java @@ -5,6 +5,7 @@ import com.engine.common.service.impl.HrmCommonServiceImpl; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.biz.SalaryRoleBiz; +import com.engine.salary.constant.SalaryAuthConstant; import com.engine.salary.encrypt.datacollection.AddUpDeductionEncrypt; import com.engine.salary.encrypt.datacollection.AddUpSituationEncrypt; import com.engine.salary.encrypt.datacollection.OtherDeductionPOEncrypt; @@ -40,15 +41,19 @@ import com.engine.salary.util.page.SalaryPageUtil; import com.engine.salary.util.valid.RuntimeTypeEnum; import com.engine.salary.util.valid.ValidUtil; import com.google.common.collect.Lists; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.transaction.annotation.Transactional; import weaver.hrm.User; +import weaver.systeminfo.setting.HrmUserSettingComInfo; +import weaver.systeminfo.systemright.CheckUserRight; import java.util.*; import java.util.stream.Collectors; +@Slf4j public class TaxAgentServiceImpl extends Service implements TaxAgentService { // private ExtEmployeeService extEmployeeService; @@ -155,24 +160,46 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { @Override public Boolean isNeedAuth(Long currentEmployeeId) { - return isOpenDevolution()&&!isChief(currentEmployeeId); + return isOpenDevolution() && !isChief(currentEmployeeId); } @Override public Boolean isChief(Long currentEmployeeId) { - String allAdminRoleId = salaryRoleBiz.getAllAdminRoleId(); + if (user == null) { + return false; + } + CheckUserRight ck = new CheckUserRight(); + boolean hasRight = ck.checkUserRight(SalaryAuthConstant.SALARY_CHIEF, user); - List roleInfo = getHrmCommonService(user).getRoleInfo(user.getUID()); - Map map = roleInfo.stream().map(m -> (Map) m).filter(m -> m.get("roleid") != null && m.get("roleid").toString().equals(allAdminRoleId)).findFirst().orElse(null); - return map != null; - //return authorityService.checkPermissionSet(TaxAgentPermissionConstant.MENU_CODE, TaxAgentPermissionConstant.ITEM_CODE_DEVOLUTION, currentEmployeeId); + if (!hasRight) { + String belongtoshow = "";// 是否启用多账号数据显示 + try { + HrmUserSettingComInfo HrmUserSettingComInfo = new HrmUserSettingComInfo(); + belongtoshow = HrmUserSettingComInfo.getBelongtoshowByUserId("" + user.getUID()); + } catch (Exception e) { + log.error("获取权限异常", e); + } + + if (belongtoshow.equals("1")) { + List lsUser = User.getBelongtoUsersByUserId(user.getUID());// 所有此账号 + if (lsUser != null) { + for (Object tmpUser : lsUser) { + hasRight = ck.checkUserRight(SalaryAuthConstant.SALARY_CHIEF, (User) tmpUser); + if (hasRight) { + break; + } + } + } + } + } + + return hasRight; } @Override public Boolean isDefaultOpen(Long currentEmployeeId) { return getTaxAgentBaseService(user).isOpenDevolution(); -// return authorityService.checkPermissionSet(TaxAgentPermissionConstant.MENU_CODE, TaxAgentPermissionConstant.ITEM_CODE_DEFAULT, currentEmployeeId); } @Override