diff --git a/resource/wiki/二开/银盛科技薪酬二开配置.docx b/resource/wiki/二开/银盛科技薪酬二开配置.docx new file mode 100644 index 000000000..1c6c44005 --- /dev/null +++ b/resource/wiki/二开/银盛科技薪酬二开配置.docx @@ -0,0 +1,57 @@ + 银盛科技薪酬二开使用配置 + 薪酬考勤字段与建模映射配置 + 增加映射配置建模表,用于配置考勤简化表中哪些字段需作为薪酬考勤引用的字段,并配置映射关系。配置完后点击薪酬-数据采集-考勤引用-字段管理 即可将配置的字段同步至薪酬 + 建模表结构如下: + 表名:uf_kqyyzdyspz (考勤引用字段映射配置) + 字段显示名 + 数据库字段名称 + 字段类型 + 含义 + 考勤引用字段名称 + kqyyzdmc + 文本 + 此处配置的名称会作为考勤引用的字段名称 + 建模字段数据库名 + jmzdsjkm + 文本 + 考勤简化表的字段数据库名 + 排序 + px + 整数 + + + 引用 + 配置完1的映射关系后,点击引用-表头设置,勾选需要同步的建模字段点击引用即可。 + + 考勤引用 权限配置 + 考勤引用界面 分为2种情况 + (1)不开启分权 + 所有人拥有所有权限,但是建模中配置的人员,只有导出、查看权限没有操作权限。 + + 开启分权 +个税扣缴义务人管理员拥有对应义务人下的所有权限。 +配置到建模中的人,拥有对应义务人下的查看、导出权限没有操作权限。 + 其余人员没有任何操作、查看权限。 + + 考勤引用权限配置建模表如下: + 表名:uf_xckqyyqx (薪酬考勤引用权限) + 字段显示名 + 数据库字段名称 + 字段类型 + 人员 + ry + 人员选择框 + 个税扣缴义务人 + gskjywr + 自定义多选 + 义务人选择浏览框 + + + 调薪前薪资合计值、调薪后薪资合计值 + 需先新建2个薪资项目,获取这2个薪资项目的id配置到配置文件中。还需配置这个合计值包含哪些字段的id,多个id之间使用英文逗号间隔。 + + 薪资项目id查询方法:select id from hrsa_salary_item where delete_type=0 and name='薪资项目名称' + + 配置文件地址:\ecology\WEB-INF\prop\yskjSalary.properties + + * 仅支持当月发生1次调薪,若当月发生多次调薪,调薪前合计值取的是当月第一次调薪前的值,调薪后合计值取的是当月最后一次调薪后的值。 diff --git a/src/com/engine/salary/service/AttendQuoteService.java b/src/com/engine/salary/service/AttendQuoteService.java index 0e57a4513..f12450a6c 100644 --- a/src/com/engine/salary/service/AttendQuoteService.java +++ b/src/com/engine/salary/service/AttendQuoteService.java @@ -19,6 +19,8 @@ public interface AttendQuoteService { */ PageInfo listPage(AttendQuoteQueryParam queryParam); + List getKqyyAuthByEmp(Long currentEmployeeId); + /** * 删除数据采集-考勤引用 diff --git a/src/com/engine/salary/service/impl/AttendQuoteServiceImpl.java b/src/com/engine/salary/service/impl/AttendQuoteServiceImpl.java index fcbde51fb..b11546657 100644 --- a/src/com/engine/salary/service/impl/AttendQuoteServiceImpl.java +++ b/src/com/engine/salary/service/impl/AttendQuoteServiceImpl.java @@ -109,7 +109,7 @@ public class AttendQuoteServiceImpl extends Service implements AttendQuoteServic list, AttendQuoteListDTO.class); } - private List getKqyyAuthByEmp(Long currentEmployeeId) { + public List getKqyyAuthByEmp(Long currentEmployeeId) { RecordSet rs = new RecordSet(); String sql = "select gskjywr from uf_xckqyyqx where ry = ?"; rs.executeQuery(sql, new Object[]{currentEmployeeId}); diff --git a/src/com/engine/salary/web/TaxAgentController.java b/src/com/engine/salary/web/TaxAgentController.java index 1cdc8dd4e..1f6d90bde 100644 --- a/src/com/engine/salary/web/TaxAgentController.java +++ b/src/com/engine/salary/web/TaxAgentController.java @@ -72,6 +72,21 @@ public class TaxAgentController { return new ResponseResult>(user).run(getTaxAgentWrapper(user)::permission, (long) user.getUID()); } + /** + * 银盛 考勤引用权限 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/ysKqyyPermission") + @Produces(MediaType.APPLICATION_JSON) + public String ysKqyyPermission(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getTaxAgentWrapper(user)::ysKqyyPermission, (long) user.getUID()); + } + /* ****** 基础信息 start ***********************************************************************************************/ /** diff --git a/src/com/engine/salary/wrapper/TaxAgentWrapper.java b/src/com/engine/salary/wrapper/TaxAgentWrapper.java index d3ae590e6..035e43e44 100644 --- a/src/com/engine/salary/wrapper/TaxAgentWrapper.java +++ b/src/com/engine/salary/wrapper/TaxAgentWrapper.java @@ -67,6 +67,9 @@ public class TaxAgentWrapper extends Service { return ServiceUtil.getService(TaxAgentExcelServiceImpl.class, user); } + private AttendQuoteService getAttendQuoteService(User user) { + return ServiceUtil.getService(AttendQuoteServiceImpl.class, user); + } // private PaymentAgencyService paymentAgencyService; // @@ -517,4 +520,32 @@ public class TaxAgentWrapper extends Service { } + public Map ysKqyyPermission(Long currentEmployeeId) { + Map resultMap = Maps.newHashMap(); + resultMap.put("canOperate", false); + resultMap.put("canExport", false); + // 是否开启分权 + Boolean isOpenDevolution = getTaxAgentService(user).isOpenDevolution(); + List kqyyAuthByEmp = getAttendQuoteService(user).getKqyyAuthByEmp(currentEmployeeId); + if (isOpenDevolution) { + // 如果开启分权,只有义务人管理员能够操作,建模中的人员可以导出,其余人不能操作不能导出 + Boolean isAdminEnable = getTaxAgentService(user).isAdminEnable(currentEmployeeId); + if (isAdminEnable) { + resultMap.put("canOperate", true); + resultMap.put("canExport", true); + } else { + if (CollectionUtils.isNotEmpty(kqyyAuthByEmp)) { + resultMap.put("canExport", true); + } + } + } else { + // 如果没有开分权,建模中的人只能导出不能操作,其余人可以操作可以导出 + resultMap.put("canOperate", true); + resultMap.put("canExport", true); + if (CollectionUtils.isNotEmpty(kqyyAuthByEmp)) { + resultMap.put("canOperate", false); + } + } + return resultMap; + } }