AI智能解答
ToatlBldYearFund = StringNumberUtil.changeDNmoney(map.get("T_TPD_BUILD_TOTAL_YEAR_INCOME"));
// 一级建筑月收入
String bldMonthFund = StringNumberUtil.changeDNmoney(map.get("T_TPD_MONTH_INCOME"));
int totalBldMonthFund = Integer.parseInt(bldMonthFund.substring(0, bldMonthFund.length() - 1));
int bldMonthFundCalculate = (totalBldMonthFund*12)-Integer.parseInt(ToatlBldYearFund.substring(0, ToatlBldYearFund.length()-1));
int bldLastMonthFund = calculation(calculateEndDate, rate, bldMonthFundCalculate);
//上月收入
String number = StringNumberUtil.changeF2Y(String.valueOf(bldLastMonthFund));
// 一级注册建筑实际收入
String totalBldFund = StringNumberUtil.addStr(ToatlBldYearFund, number);
// 一级注册建筑实际收入添加至实发工资中
totalFund = StringNumberUtil.addStr(totalFund, totalBldFund);
// 减去一级注册建筑
addPay = StringNumberUtil.subtractStr(addPay, totalBldFund);
// 扣除建筑收入
salaryAdd.put("t_tp_build", totalBldFund);
// 扣除建筑收入
benifit.put("t_build", totalBldFund);
// 用于上架扣除
}
}
//-------正常月扣除社会保险-----------
// 社会保障金比例
String insurance = map.get("T_TPI_PERSION_PERT");
if (insurance != null && !insurance.equals("")) {
String[] insurances = StringNumberUtil.splitString(insurance, ",");
String scaleOne = insurances[0].substring(0, insurances[0].indexOf("%"));
String scaleTwo = insurances[2].substring(0, insurances[2].indexOf("%"));
String utilcalculate = addPay.substring(0, addPay.length() - 1);
// 社保公司缴交
int scaleOneCalculate = calculation(calculateEnddateNew, scaleOne, Integer.parseInt(utilcalculate));
// 个人缴交
int scaleTwoCalculate = calculation(calculateEnddateNew, scaleTwo, Integer.parseInt(utilcalculate));
// 个人缴交更新添加至实发工资中
totalFund = StringNumberUtil.reduceStr(totalFund, StringNumberUtil.changeF2Y(String.valueOf(scaleTwoCalculate)));
// 保存添加薪资
String storeScale = StringNumberUtil.changeF2Y(String.valueOf(scaleTwoCalculate));
salaryAdd.put("persion", storeScale);
salaryAdd.put("pany", StringNumberUtil.changeF2Y(String.valueOf(scaleOneCalculate)));
// 保存添加薪资
benifitcost.put("persion", storeScale);
benifitcost.put("pany", StringNumberUtil.changeF2Y(String.valueOf(scaleOneCalculate)));
// 个税计算
String tPayersScale = map.get("T_TPI_INCOME_TAX_PERT");
if (tPayersScale != null) {
String backFund = salayCulateIncomeTax(calculateEnddateNew, basePay, tPayersScale, totalFund,utilcalculate);
String incomeTax = map.get("T_INCOME_TAX");
if (backFund.equals("")) {
backFund = "0";
incomeTax = "0";
}
// 扣除个人税用
salaryAdd.put("incomeTax", backFund);
benifitcost.put("incomeTax", backFund);
// 将工资减少
totalFund = StringNumberUtil.reduceStr(totalFund, backFund);
// 模拟个人所得税
benifit.put("incomeTax", incomeTax);
}
}
//中间收入实发工资
double lastFund = (Double)df.parseObject(totalFund);
//-----正常月中间相减------
if (benifitcost != null) {
// 正常工资减去全部保存的扣除工资
for (Entry e : benifitcost.entrySet()) {
String s = e.getValue();
if (s == null || s.equals(""))
s = "0";
// 用于上架扣除
lastFund = lastFund - (Double)df.parseObject(s);
}
}
//----------------------正常月更新信息-------------------------
//正常月份
Double xpzsalary = (Double) df.parseObject(addPay)+lastFund;
// bug 167 原来的工资
String xpzsalaryOld = StringNumberUtil.changeF2Y(xpzsalary.StringValue());
//工资传输
String salary = StringNumberUtil.changeF2Y(lastFund .StringValue());
// 查询是不是实习员工
String tp_is_practice_employee = map.get("T_TP_IS_PRACTICE_EMPLOYEE");
if (tp_is_practice_employee != null && tp_is_practice_employee.equals("1")) {
//实习月份
Double xpsalary = (Double) df.parseObject(basePay)+lastFund;
salary= xpsalary.StringValue();
//实习月份薪资
xpzsalary = xpsalary;
// bug 167 工资
xpzsalaryOld =String.valueOf(xpzsalary);
}
// 申明信息
Map updateMap = new HashMap();
updateMap.put("updateid", id);
// bug3 计算基本工资累计+ 保存