parent
fa847c94d0
commit
531429c499
|
|
@ -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}]
|
||||
|
|
@ -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的值即可,该值为薪资项目名称多个项目间用英文逗号间隔。
|
||||
|
||||
|
|
@ -23,5 +23,7 @@ public class OMLSalary2ModeInfo {
|
|||
private String type;
|
||||
|
||||
// 薪资项目名称
|
||||
private String salaryItemName;
|
||||
// private String salaryItemName;
|
||||
|
||||
private Long salaryItemId;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -216,7 +216,7 @@
|
|||
SELECT
|
||||
<include refid="baseColumns" />
|
||||
FROM uf_cjfykctz t
|
||||
WHERE #{salaryMonth} <![CDATA[ <= ]]> cjkcyf
|
||||
WHERE #{salaryMonth} <![CDATA[ >= ]]> cjkcyf
|
||||
AND xm IN
|
||||
<foreach collection="empIdList" open="(" item="empId" separator="," close=")">
|
||||
#{empId}
|
||||
|
|
|
|||
|
|
@ -620,7 +620,7 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
|
|||
// 获取薪资核算人员
|
||||
List<SalaryAcctEmployeePO> salaryAcctEmployeePOS = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordId(salaryAcctRecordPO.getId());
|
||||
List<SalaryItemPO> salaryItemPOList = getSalaryItemService(user).listAll();
|
||||
Map<String, Long> allSalaryItemMap = SalaryEntityUtil.convert2Map(salaryItemPOList, SalaryItemPO::getName, SalaryItemPO::getId);
|
||||
// Map<String, Long> 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<OMLSalary2ModeInfo> omlSyncInfo = JsonUtil.parseList(syncSetting, OMLSalary2ModeInfo.class);
|
||||
List<String> salaryItemNames = omlSyncInfo.stream().map(OMLSalary2ModeInfo::getSalaryItemName).collect(Collectors.toList());
|
||||
salaryItemPOList = salaryItemPOList.stream().filter(item -> salaryItemNames.contains(item.getName())).collect(Collectors.toList());
|
||||
List<Long> 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<SalaryAcctEmployeePO> needPushSalaryAcctEmpList = salaryAcctEmployeePOS.stream().filter(acctEmp -> pushPOGroupByXm.keySet().contains(acctEmp.getEmployeeId())).collect(Collectors.toList());
|
||||
List<Long> salaryAcctEmpIds = needPushSalaryAcctEmpList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList());
|
||||
List<Long> salaryItemIds = salaryItemPOList.stream().map(SalaryItemPO::getId).collect(Collectors.toList());
|
||||
// List<Long> salaryItemIds = salaryItemPOList.stream().map(SalaryItemPO::getId).collect(Collectors.toList());
|
||||
List<SalaryAcctResultPO> resultPOList = getSalaryAcctResultService(user).listByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, salaryItemIds);
|
||||
Map<Long, List<SalaryAcctResultPO>> 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));
|
||||
|
|
|
|||
|
|
@ -1267,10 +1267,11 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
throw new SalaryRunTimeException("请输入年份");
|
||||
}
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
// 获取能够管理的义务人
|
||||
Collection<TaxAgentPO> taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(Long.valueOf(user.getUID()));
|
||||
List<Long> canManageTaxAgentIds = taxAgentPOS.stream().map(TaxAgentPO::getId).collect(Collectors.toList());
|
||||
List<SalarySobPO> salarySobPOS = getSalarySobService(user).listByTaxAgentIds(canManageTaxAgentIds);
|
||||
// // 获取能够管理的义务人
|
||||
// Collection<TaxAgentPO> taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(Long.valueOf(user.getUID()));
|
||||
// List<Long> canManageTaxAgentIds = taxAgentPOS.stream().map(TaxAgentPO::getId).collect(Collectors.toList());
|
||||
// List<SalarySobPO> salarySobPOS = getSalarySobService(user).listByTaxAgentIds(canManageTaxAgentIds);
|
||||
List<SalarySobPO> salarySobPOS = getSalarySobService(user).listAll();
|
||||
List<Long> salarySobIds = salarySobPOS.stream().map(SalarySobPO::getId).collect(Collectors.toList());
|
||||
if (CollectionUtils.isEmpty(salarySobIds)) {
|
||||
return resultMap;
|
||||
|
|
|
|||
Loading…
Reference in New Issue