薪资档案增加岗位,及报表接口调整

This commit is contained in:
Harryxzy 2025-08-22 17:14:26 +08:00
parent c08478befb
commit 61cf337bde
6 changed files with 80 additions and 32 deletions

View File

@ -29,6 +29,8 @@ public class FsdReportJSONParam {
private String type;
private String key;
private List<FsdReportJSONParam> children;
// private Map<String, Object> resultValue;

View File

@ -78,6 +78,7 @@ public class SalaryArchiveBO {
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"), "taxAgentName"));
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86185, "分部"), "subcompanyName"));
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86185, "部门"), "departmentName"));
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86185, "岗位"), "jobtitle"));
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86185, "工号"), "workcode"));
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86186, "手机号"), "mobile"));
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86186, "证件号码"), "idNo"));

View File

@ -61,6 +61,12 @@ public class SalaryArchiveListDTO {
@I18n
private String subcompanyName;
/**
* 岗位
*/
@I18n
private String jobtitle;
/**
* 部门
*/

View File

@ -104,6 +104,7 @@
,e.accounttype as accountType
, d.departmentname AS departmentName
, c.subcompanyname AS subcompanyName
, j.jobtitlename AS jobtitle
</sql>
@ -116,6 +117,7 @@
LEFT JOIN hrmresource e ON e.id = t.employee_id
LEFT JOIN hrmdepartment d ON d.id = e.departmentid
LEFT JOIN hrmsubcompany c ON c.id = e.subcompanyid1
LEFT JOIN hrmjobtitles j on e.jobtitle = j.id
WHERE t.delete_type = 0
and (t.employee_type is null or t.employee_type = 0)
and e.status not in (7)
@ -220,6 +222,7 @@
LEFT JOIN hrmresource e ON e.id = t.employee_id
LEFT JOIN hrmdepartment d ON d.id = e.departmentid
LEFT JOIN hrmsubcompany c ON c.id = e.subcompanyid1
LEFT JOIN hrmjobtitles j on e.jobtitle = j.id
WHERE t.delete_type = 0
and (t.employee_type is null or t.employee_type = 0)
and e.status not in (7)
@ -321,6 +324,7 @@
LEFT JOIN hrmresource e ON e.id = t.employee_id
LEFT JOIN hrmdepartment d ON d.id = e.departmentid
LEFT JOIN hrmsubcompany c ON c.id = e.subcompanyid1
LEFT JOIN hrmjobtitles j on e.jobtitle = j.id
WHERE t.delete_type = 0
and (t.employee_type is null or t.employee_type = 0)
and e.status not in (7)

View File

@ -1421,15 +1421,24 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
List<FsdReportJSONParam> fsdReportJSONParams = JsonUtil.parseList(param.getParam(), FsdReportJSONParam.class);
for (FsdReportJSONParam rangeParam : fsdReportJSONParams) {
List<FsdReportJSONParam> childrenParamList = rangeParam.getChildren();
if (!CollectionUtils.isEmpty(childrenParamList)) {
BigDecimal sumEmpNum = new BigDecimal("0");
BigDecimal sumValue = new BigDecimal("0");
for (FsdReportJSONParam childrenParam : childrenParamList) {
Map<String, Object>valueMap = countFsdReportDTO(lssjMap, childrenParam, totalSalaryAcctEmployeeList, totalAcctResultPOList, itemIds, sumItemIds, ylaogrItemId, yliaogrItemId, gjjgrItemId);
String empNum = Utils.null2String(valueMap.get("empNum"));
String value = Utils.null2String(valueMap.get("value"));
childrenParam.setThisMonthEmpNums(empNum);
childrenParam.setThisMonthValue(value);
sumEmpNum = sumEmpNum.add(SalaryEntityUtil.string2BigDecimalDefault0(empNum));
sumValue = sumValue.add(SalaryEntityUtil.string2BigDecimalDefault0(value));
}
rangeParam.setThisMonthEmpNums(sumEmpNum.toString());
rangeParam.setThisMonthValue(sumValue.toString());
} else {
Map<String, Object> valueMap = countFsdReportDTO(lssjMap, rangeParam, totalSalaryAcctEmployeeList, totalAcctResultPOList, itemIds, sumItemIds, ylaogrItemId, yliaogrItemId, gjjgrItemId);
rangeParam.setThisMonthEmpNums(Utils.null2String(valueMap.get("empNum")));
rangeParam.setThisMonthValue(Utils.null2String(valueMap.get("value")));
if (!CollectionUtils.isEmpty(childrenParamList)) {
for (FsdReportJSONParam childrenParam : childrenParamList) {
valueMap = countFsdReportDTO(lssjMap, childrenParam, totalSalaryAcctEmployeeList, totalAcctResultPOList, itemIds, sumItemIds, ylaogrItemId, yliaogrItemId, gjjgrItemId);
childrenParam.setThisMonthEmpNums(Utils.null2String(valueMap.get("empNum")));
childrenParam.setThisMonthValue(Utils.null2String(valueMap.get("value")));
}
}
}
@ -1465,19 +1474,27 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
lssjMap = SalaryEntityUtil.group2Map(lssjList, FsdReportLssjDTO::getLb);
for (FsdReportJSONParam rangeParam : fsdReportJSONParams) {
List<FsdReportJSONParam> childrenParamList = rangeParam.getChildren();
if (!CollectionUtils.isEmpty(childrenParamList)) {
BigDecimal sumEmpNums = new BigDecimal("0");
BigDecimal sumValue = new BigDecimal("0");
for (FsdReportJSONParam childrenParam : childrenParamList) {
Map<String, Object> valueMap = countFsdReportDTO(lssjMap, childrenParam, totalSalaryAcctEmployeeList, totalAcctResultPOList, itemIds, sumItemIds, ylaogrItemId, yliaogrItemId, gjjgrItemId);
String avgEmpNums = (NumberUtils.isCreatable(Utils.null2String(valueMap.get("empNum"))) ? new BigDecimal(Utils.null2String(valueMap.get("empNum"))) : new BigDecimal("0"))
.divide(new BigDecimal(monthValue), 2, RoundingMode.HALF_UP).toString();
String value = Utils.null2String(valueMap.get("value"));
childrenParam.setThisYearAveEmpNums(avgEmpNums);
childrenParam.setThisYearValue(value);
sumEmpNums = sumEmpNums.add(SalaryEntityUtil.string2BigDecimalDefault0(Utils.null2String(valueMap.get("empNum"))));
sumValue = sumValue.add(SalaryEntityUtil.string2BigDecimalDefault0(value));
}
rangeParam.setThisYearAveEmpNums(sumEmpNums.divide(new BigDecimal(monthValue), 2, RoundingMode.HALF_UP).toString());
rangeParam.setThisYearValue(sumValue.toString());
} else {
Map<String, Object> valueMap = countFsdReportDTO(lssjMap, rangeParam, totalSalaryAcctEmployeeList, totalAcctResultPOList, itemIds, sumItemIds, ylaogrItemId, yliaogrItemId, gjjgrItemId);
String avgEmpNums = (NumberUtils.isCreatable(Utils.null2String(valueMap.get("empNum"))) ? new BigDecimal(Utils.null2String(valueMap.get("empNum"))) : new BigDecimal("0"))
.divide(new BigDecimal(monthValue), 2, RoundingMode.HALF_UP).toString();
rangeParam.setThisYearAveEmpNums(avgEmpNums);
rangeParam.setThisYearValue(Utils.null2String(valueMap.get("value")));
if (!CollectionUtils.isEmpty(childrenParamList)) {
for (FsdReportJSONParam childrenParam : childrenParamList) {
valueMap = countFsdReportDTO(lssjMap, childrenParam, totalSalaryAcctEmployeeList, totalAcctResultPOList, itemIds, sumItemIds, ylaogrItemId, yliaogrItemId, gjjgrItemId);
avgEmpNums = (NumberUtils.isCreatable(Utils.null2String(valueMap.get("empNum"))) ? new BigDecimal(Utils.null2String(valueMap.get("empNum"))) : new BigDecimal("0"))
.divide(new BigDecimal(monthValue), 2, RoundingMode.HALF_UP).toString();
childrenParam.setThisYearAveEmpNums(avgEmpNums);
childrenParam.setThisYearValue(Utils.null2String(valueMap.get("value")));
}
}
}
@ -1514,6 +1531,36 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
lssjMap = SalaryEntityUtil.group2Map(lssjList, FsdReportLssjDTO::getLb);
for (FsdReportJSONParam rangeParam : fsdReportJSONParams) {
List<FsdReportJSONParam> childrenParamList = rangeParam.getChildren();
if ( !CollectionUtils.isEmpty(childrenParamList)) {
BigDecimal sumLastYearEmpNums = new BigDecimal("0");
BigDecimal sumLastYearValue = new BigDecimal("0");
for (FsdReportJSONParam childrenParam : childrenParamList) {
Map<String, Object> valueMap = countFsdReportDTO(lssjMap, childrenParam, totalSalaryAcctEmployeeList, totalAcctResultPOList, itemIds, sumItemIds, ylaogrItemId, yliaogrItemId, gjjgrItemId);
BigDecimal avgEmpNumsVal = (NumberUtils.isCreatable(Utils.null2String(valueMap.get("empNum"))) ? new BigDecimal(Utils.null2String(valueMap.get("empNum"))) : new BigDecimal("0"))
.divide(new BigDecimal(monthValue), 2, RoundingMode.HALF_UP);
childrenParam.setLastYearAveEmpNums(avgEmpNumsVal.toString());
childrenParam.setLastYearValue(Utils.null2String(valueMap.get("value")));
// 获取今年平均人数和金额
BigDecimal thisYearAveEmpNums = SalaryEntityUtil.string2BigDecimalDefault0(Utils.null2String(childrenParam.getThisYearAveEmpNums()));
BigDecimal thisYearValue = SalaryEntityUtil.string2BigDecimalDefault0(Utils.null2String(childrenParam.getThisYearValue()));
BigDecimal lastYearValue = SalaryEntityUtil.string2BigDecimalDefault0(Utils.null2String(valueMap.get("value")));
childrenParam.setEmpNumsCy(thisYearAveEmpNums.subtract(avgEmpNumsVal).toString());
childrenParam.setValueCy(thisYearValue.subtract(lastYearValue).toString());
sumLastYearEmpNums = sumLastYearEmpNums.add(SalaryEntityUtil.string2BigDecimalDefault0(Utils.null2String(valueMap.get("empNum"))));
sumLastYearValue = sumLastYearValue.add(SalaryEntityUtil.string2BigDecimalDefault0(Utils.null2String(valueMap.get("value"))));
}
BigDecimal lastYearAveEmpNums = sumLastYearEmpNums.divide(new BigDecimal(monthValue), 2, RoundingMode.HALF_UP);
rangeParam.setLastYearAveEmpNums(lastYearAveEmpNums.toString());
rangeParam.setLastYearValue(sumLastYearValue.toString());
// 获取今年平均人数和金额
BigDecimal thisYearAveEmpNums = SalaryEntityUtil.string2BigDecimalDefault0(rangeParam.getThisYearAveEmpNums());
BigDecimal thisYearValue = SalaryEntityUtil.string2BigDecimalDefault0(rangeParam.getThisYearValue());
rangeParam.setEmpNumsCy(thisYearAveEmpNums.subtract(lastYearAveEmpNums).toString());
rangeParam.setValueCy(thisYearValue.subtract(sumLastYearValue).toString());
} else {
Map<String, Object> valueMap = countFsdReportDTO(lssjMap, rangeParam, totalSalaryAcctEmployeeList, totalAcctResultPOList, itemIds, sumItemIds, ylaogrItemId, yliaogrItemId, gjjgrItemId);
BigDecimal avgEmpNumsVal = (NumberUtils.isCreatable(Utils.null2String(valueMap.get("empNum"))) ? new BigDecimal(Utils.null2String(valueMap.get("empNum"))) : new BigDecimal("0"))
.divide(new BigDecimal(monthValue), 2, RoundingMode.HALF_UP);
@ -1526,21 +1573,6 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
BigDecimal lastYearValue = SalaryEntityUtil.string2BigDecimalDefault0(Utils.null2String(valueMap.get("value")));
rangeParam.setEmpNumsCy(thisYearAveEmpNums.subtract(avgEmpNumsVal).toString());
rangeParam.setValueCy(thisYearValue.subtract(lastYearValue).toString());
if ( !CollectionUtils.isEmpty(childrenParamList)) {
for (FsdReportJSONParam childrenParam : childrenParamList) {
valueMap = countFsdReportDTO(lssjMap, childrenParam, totalSalaryAcctEmployeeList, totalAcctResultPOList, itemIds, sumItemIds, ylaogrItemId, yliaogrItemId, gjjgrItemId);
avgEmpNumsVal = (NumberUtils.isCreatable(Utils.null2String(valueMap.get("empNum"))) ? new BigDecimal(Utils.null2String(valueMap.get("empNum"))) : new BigDecimal("0"))
.divide(new BigDecimal(monthValue), 2, RoundingMode.HALF_UP);
childrenParam.setLastYearAveEmpNums(avgEmpNumsVal.toString());
childrenParam.setLastYearValue(Utils.null2String(valueMap.get("value")));
// 获取今年平均人数和金额
thisYearAveEmpNums = SalaryEntityUtil.string2BigDecimalDefault0(Utils.null2String(childrenParam.getThisYearAveEmpNums()));
thisYearValue = SalaryEntityUtil.string2BigDecimalDefault0(Utils.null2String(childrenParam.getThisYearValue()));
lastYearValue = SalaryEntityUtil.string2BigDecimalDefault0(Utils.null2String(valueMap.get("value")));
childrenParam.setEmpNumsCy(thisYearAveEmpNums.subtract(avgEmpNumsVal).toString());
childrenParam.setValueCy(thisYearValue.subtract(lastYearValue).toString());
}
}
}
fsdReportJSONParams.stream().forEach(p -> {

View File

@ -489,6 +489,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
map.put("subcompanyName", e.getSubcompanyName());
map.put("departmentName", e.getDepartmentName());
map.put("jobtitle", e.getJobtitle());
map.put("mobile", e.getMobile());
map.put("workcode", e.getWorkcode());
map.put("idNo", e.getIdNo());
@ -520,6 +521,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
new WeaTableColumnGroup("150px", SalaryI18nUtil.getI18nLabel(85429, "姓名"), "", "", 0),
new WeaTableColumnGroup("150px", SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"), "", "", 0),
new WeaTableColumnGroup("150px", SalaryI18nUtil.getI18nLabel(86185, "部门"), "", "", 0),
new WeaTableColumnGroup("150px", SalaryI18nUtil.getI18nLabel(86185, "岗位"), "", "", 0),
new WeaTableColumnGroup("150px", SalaryI18nUtil.getI18nLabel(86176, "工号"), "", "", 0),
new WeaTableColumnGroup("150px", SalaryI18nUtil.getI18nLabel(86186, "手机号"), "", "", 0),
new WeaTableColumnGroup("150px", SalaryI18nUtil.getI18nLabel(86186, "证件号码"), "", "", 0),
@ -559,6 +561,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
row.add(Util.null2String(e.get("username")));
row.add(Util.null2String(e.get("taxAgentName")));
row.add(Util.null2String(e.get("departmentName")));
row.add(Util.null2String(e.get("jobtitle")));
row.add(Util.null2String(e.get("workcode")));
row.add(Util.null2String(e.get("mobile")));
row.add(Util.null2String(e.get("idNo")));