更改计算方式

This commit is contained in:
Harryxzy 2024-11-04 15:28:01 +08:00
parent 95161b1007
commit b931707280
1 changed files with 17 additions and 10 deletions

View File

@ -25,9 +25,11 @@ import com.engine.salary.enums.UserStatusEnum;
import com.engine.salary.enums.salaryformula.SalaryFormulaReferenceEnum;
import com.engine.salary.enums.salaryformula.SalarySQLReferenceEnum;
import com.engine.salary.enums.salarysob.SalarySobAdjustRuleTypeEnum;
import com.engine.salary.mapper.SQLMapper;
import com.engine.salary.util.JsonUtil;
import com.engine.salary.util.SalaryDateUtil;
import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.db.MapperProxyFactory;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import lombok.Data;
@ -243,6 +245,7 @@ public class CalculateFormulaVarBO {
* @param resultMap 返回结果集
*/
private void handleSalaryArchiveData(SalaryAcctCalculateBO salaryAcctCalculateBO, Map<String, List<FormulaVarValue>> resultMap, KQGroupService kqGroupService) {
// 调薪计薪规则
Map<Long, SalarySobAdjustRulePO> salarySobAdjustRulePOMap = SalaryEntityUtil.convert2Map(salaryAcctCalculateBO.getSalarySobAdjustRulePOS(),
SalarySobAdjustRulePO::getSalaryItemId);
@ -414,6 +417,10 @@ public class CalculateFormulaVarBO {
}
private SQLMapper getSQLMapper() {
return MapperProxyFactory.getProxy(SQLMapper.class);
}
/**
* 获取应出勤时数
* @param fromDate
@ -421,18 +428,18 @@ public class CalculateFormulaVarBO {
* @param userId
*/
private Double getKQYcq(Date fromDate, Date endDate, Long userId) {
RecordSet rs = new RecordSet();
double ycq = 0.00;
// double scq = 0.00;
String sql = "SELECT sum(workdays),sum(attendancemins) FROM kq_format_total WHERE workdays is not null and resourceid = "+userId+" and kqdate >= '" +SalaryDateUtil.getFormatDate(fromDate)+"' and kqdate <= '"+ SalaryDateUtil.getFormatDate(endDate)+"'";
BaseBean baseBean = new BaseBean();
double ycq = 0.00;
String sql = "SELECT sum(workdays) as a,sum(attendancemins) FROM kq_format_total WHERE workdays is not null and resourceid = "+userId+" and kqdate >= '" +SalaryDateUtil.getFormatDate(fromDate)+"' and kqdate <= '"+ SalaryDateUtil.getFormatDate(endDate)+"'";
baseBean.writeLog("klb-1" + sql);
rs.execute(sql);
if (rs.next()) {
ycq = rs.getInt(1) == -1 ? 0.00 : BigDecimal.valueOf(rs.getInt(1)).doubleValue();
baseBean.writeLog("klb-2" + ycq);
} else {
baseBean.writeLog("klb-3" + rs.toString());
List<Map> list = getSQLMapper().runSQL(sql);
baseBean.writeLog("klb-list" +list);
if (CollectionUtils.isNotEmpty(list)) {
Object value = list.get(0).get("a");
if (value != null) {
baseBean.writeLog("klb-value" +value);
ycq = NumberUtils.isCreatable(value.toString()) ? Double.valueOf(value.toString()) : Double.valueOf("0");
}
}
return ycq;
}