diff --git a/resource/wiki/二开/omlSalaryReport.properties b/resource/wiki/二开/omlSalaryReport.properties new file mode 100644 index 000000000..1af7d06d9 --- /dev/null +++ b/resource/wiki/二开/omlSalaryReport.properties @@ -0,0 +1,10 @@ +# 推送产假建模数据配置 +# 产假建模模块id +cj_form_mode_id=100 + +# 欧姆龙 月度薪资环比统计报表统计项目配置 +ydxzhbtj_item=职级工资/基本月薪,职能工资/月奖金,临时项,季度点数法,加班费,特种补贴/技能补贴,其他收入,其中中夜班费,其中离职人员奖金,缺勤扣除,其他扣除,社保(个人缴费),公积金(个人缴费),工会费,个税,税后合计,社保(公司缴费),公积金(公司缴费),发薪人数,加班时间(万小时),人均加班时间 + +# 核算记录归档时需要推送的薪资项与建模字段关系匹配 +# 需要同步的薪资项目有哪些 +syncInfo=[{modeName:"cjkczje",type:"bigDecimal",salaryItemId:1698895309822},{modeName:"ljkcje",type:"bigDecimal",salaryItemId:1698895309821},{modeName:"syje",type:"bigDecimal",salaryItemId:123},{modeName:"mycjkcfy",type:"bigDecimal",salaryItemId:123},{modeName:"cjdkcfy",type:"bigDecimal",salaryItemId:123},{modeName:"kczt",type:"int",salaryItemId:1732861794198}] \ No newline at end of file diff --git a/resource/wiki/二开/欧姆龙薪酬配置说明.docx b/resource/wiki/二开/欧姆龙薪酬配置说明.docx new file mode 100644 index 000000000..da81221ed --- /dev/null +++ b/resource/wiki/二开/欧姆龙薪酬配置说明.docx @@ -0,0 +1,189 @@ + + 欧姆龙薪酬二开配置说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 文档版本控制 + +文档简要信息: +文档主题(Title) +欧姆龙薪酬二开配置说明 +作者(Author) +徐卓彦 +审批者 (To Be Approved By) + +说明 (Comments) + +文件名称(File Name) + +文档版本历史: + 序号 + 日期 + 版本 + 变更说明 + 修改人 + 审批人 + 注释 + 1. + + + + + + + 2. + + + + + + + 3. + + + + + + + 4. + + + + + + + 5. + + + + + + + 6. + + + + + + + 7. + + + + + + + 8. + + + + + + + + + + + + + + + +以下所说的配置文件,其地址为:\ecology\WEB-INF\prop\omlSalaryReport.properties + 产假数据推送 +1、需要在产假建模中增加一个字段,核算记录id,hsjlid,文本。可以不显示出来,推送时需要用到,因此不能删除,并且目前台账中已有的字段也不能进行删除。 + + 目前配置为推送6个薪资项目值至建模,后期如果推送的薪资项目发生变更,或薪资项目名称发生变化,或需要添加推送的项目可修改配置文件。修改syncInfo信息,该值为对象数组,对象共3个属性: +modeName:赋值至建模中对应字段的数据库字段名; +type:建模字段为浮点数设置为bigDecimal;整数设置为int;文本设置varchar; +salaryItemId:对应薪酬中薪资项目id,通过sql查询薪资项目id:select id from hrsa_salary_item where delete_type=0 and name='薪资项目名称' +目前所有薪资项目id均为123,需要先修改薪资项目对应id。 + + 修改台账模块id,修改配置文件中cj_form_mode_id值为产假建模的模块id。 + + + + 二、报表 + 报表需在门户中配置菜单,菜单需设置权限,报表内容没有进行分权,报表地址:/spa/hrmSalary/static/index.html#/main/hrmSalary/customPage_statisticalReport_omron + 报表中展示的薪资项目支持修增加、删除、修改顺序,在配置文件中修改ydxzhbtj_item的值即可,该值为薪资项目名称多个项目间用英文逗号间隔。 + diff --git a/src/com/engine/salary/entity/salaryacct/dto/OMLSalary2ModeInfo.java b/src/com/engine/salary/entity/salaryacct/dto/OMLSalary2ModeInfo.java index 6435701a7..3b71eaef2 100644 --- a/src/com/engine/salary/entity/salaryacct/dto/OMLSalary2ModeInfo.java +++ b/src/com/engine/salary/entity/salaryacct/dto/OMLSalary2ModeInfo.java @@ -23,5 +23,7 @@ public class OMLSalary2ModeInfo { private String type; // 薪资项目名称 - private String salaryItemName; + // private String salaryItemName; + + private Long salaryItemId; } diff --git a/src/com/engine/salary/mapper/salaryacct/UfCjfykctzMapper.xml b/src/com/engine/salary/mapper/salaryacct/UfCjfykctzMapper.xml index 72a4500c7..beb7248a7 100644 --- a/src/com/engine/salary/mapper/salaryacct/UfCjfykctzMapper.xml +++ b/src/com/engine/salary/mapper/salaryacct/UfCjfykctzMapper.xml @@ -216,7 +216,7 @@ SELECT FROM uf_cjfykctz t - WHERE #{salaryMonth} cjkcyf + WHERE #{salaryMonth} = ]]> cjkcyf AND xm IN #{empId} diff --git a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java index e71eee22d..c0c708971 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java @@ -620,7 +620,7 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe // 获取薪资核算人员 List salaryAcctEmployeePOS = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordId(salaryAcctRecordPO.getId()); List salaryItemPOList = getSalaryItemService(user).listAll(); - Map allSalaryItemMap = SalaryEntityUtil.convert2Map(salaryItemPOList, SalaryItemPO::getName, SalaryItemPO::getId); + // Map allSalaryItemMap = SalaryEntityUtil.convert2Map(salaryItemPOList, SalaryItemPO::getName, SalaryItemPO::getId); String currDate = TimeUtil.getCurrentDateString(); SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); @@ -636,8 +636,8 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe baseBean.writeLog("字符转换有误" + e.getMessage()); } List omlSyncInfo = JsonUtil.parseList(syncSetting, OMLSalary2ModeInfo.class); - List salaryItemNames = omlSyncInfo.stream().map(OMLSalary2ModeInfo::getSalaryItemName).collect(Collectors.toList()); - salaryItemPOList = salaryItemPOList.stream().filter(item -> salaryItemNames.contains(item.getName())).collect(Collectors.toList()); + List salaryItemIds = omlSyncInfo.stream().map(OMLSalary2ModeInfo::getSalaryItemId).collect(Collectors.toList()); + salaryItemPOList = salaryItemPOList.stream().filter(item -> salaryItemIds.contains(item.getId())).collect(Collectors.toList()); if (isLog) { baseBean.writeLog("欧姆龙薪酬转建模 薪资项目" + salaryItemPOList.toString()); } @@ -649,7 +649,7 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe // 获取薪资核算数据 List needPushSalaryAcctEmpList = salaryAcctEmployeePOS.stream().filter(acctEmp -> pushPOGroupByXm.keySet().contains(acctEmp.getEmployeeId())).collect(Collectors.toList()); List salaryAcctEmpIds = needPushSalaryAcctEmpList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); - List salaryItemIds = salaryItemPOList.stream().map(SalaryItemPO::getId).collect(Collectors.toList()); + // List salaryItemIds = salaryItemPOList.stream().map(SalaryItemPO::getId).collect(Collectors.toList()); List resultPOList = getSalaryAcctResultService(user).listByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, salaryItemIds); Map> resultGroupByEmp = SalaryEntityUtil.group2Map(resultPOList, SalaryAcctResultPO::getEmployeeId); String salaryAcctRecordStr = salaryAcctRecordPO.getId().toString(); @@ -675,7 +675,7 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe // 如果该员工只有一条数据,且产假扣除所属月份没有值,则执行更新 StringBuilder updateSql = new StringBuilder("update uf_cjfykctz set cjkcssyf = '" + formatYearMonth + "',hsjlid="+salaryAcctRecordPO.getId()); for (OMLSalary2ModeInfo syncInfo : omlSyncInfo) { - Long salaryItemId = allSalaryItemMap.getOrDefault(syncInfo.getSalaryItemName(), 0L); + Long salaryItemId = syncInfo.getSalaryItemId(); String value = Util.null2String(acctResultMap.get(salaryItemId)); // 获取建模中字段类型 if (syncInfo.getType().equals("int")) { @@ -686,7 +686,7 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe updateSql.append("," + syncInfo.getModeName() + "=" + (StringUtils.isEmpty(value) ? "''" : "'" + value + "'")); } } - updateSql.append("where id ="+mainId); + updateSql.append(" where id ="+mainId); if (isLog) { baseBean.writeLog("欧姆龙薪酬转建模 该员工只有一条数据" + updateSql.toString()); } @@ -704,7 +704,7 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe // 动态推送列 for(int i = 0; i < omlSyncInfo.size(); i++) { OMLSalary2ModeInfo syncInfo = omlSyncInfo.get(i); - Long salaryItemId = allSalaryItemMap.getOrDefault(syncInfo.getSalaryItemName(), 0L); + Long salaryItemId = syncInfo.getSalaryItemId(); String value = Util.null2String(acctResultMap.get(salaryItemId)); if (syncInfo.getType().equals("int")) { insertSql.append("," + (StringUtils.isEmpty(value) ? 0 : value)); @@ -740,7 +740,7 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe // 动态推送列 for(int i = 0; i < omlSyncInfo.size(); i++) { OMLSalary2ModeInfo syncInfo = omlSyncInfo.get(i); - Long salaryItemId = allSalaryItemMap.getOrDefault(syncInfo.getSalaryItemName(), 0L); + Long salaryItemId = syncInfo.getSalaryItemId(); String value = Util.null2String(acctResultMap.get(salaryItemId)); if (syncInfo.getType().equals("int")) { insertSql.append("," + (StringUtils.isEmpty(value) ? 0 : value)); diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index 19e248495..f2d6eb89f 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -1267,10 +1267,11 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe throw new SalaryRunTimeException("请输入年份"); } Map resultMap = new HashMap<>(); - // 获取能够管理的义务人 - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(Long.valueOf(user.getUID())); - List canManageTaxAgentIds = taxAgentPOS.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - List salarySobPOS = getSalarySobService(user).listByTaxAgentIds(canManageTaxAgentIds); + // // 获取能够管理的义务人 + // Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(Long.valueOf(user.getUID())); + // List canManageTaxAgentIds = taxAgentPOS.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); + // List salarySobPOS = getSalarySobService(user).listByTaxAgentIds(canManageTaxAgentIds); + List salarySobPOS = getSalarySobService(user).listAll(); List salarySobIds = salarySobPOS.stream().map(SalarySobPO::getId).collect(Collectors.toList()); if (CollectionUtils.isEmpty(salarySobIds)) { return resultMap;