考勤-加班结果最终时长转计薪时长功能

main
sy 5 months ago
parent 6b0f1e6e6c
commit d72a3bd31f

@ -119,7 +119,7 @@ public class GetScheduleResultListCmd extends AbstractCommonCommand<Map<String,O
}
/** 加班计划*/
sql = "select a.id,b.jbry,b.ksrq,b.kssj,b.jblx,b.jsrq,b.jssj,b.jbsc,b.gsrq from uf_jcl_kq_jbjh a left join uf_jcl_kq_jbjh_dt1 b on a.id=b.mainid where b.jbry =? and b.gsrq>=? and b.gsrq<=? and (b.jbcx=0 or b.jbcx is null) and a.jlzt=1";
sql = "select a.id,b.jbry,b.ksrq,b.kssj,b.jblx,b.jsrq,b.jssj,b.jbsc,b.gsrq,b.d_jxgz,b.jxsc from uf_jcl_kq_jbjh a left join uf_jcl_kq_jbjh_dt1 b on a.id=b.mainid where b.jbry =? and b.gsrq>=? and b.gsrq<=? and (b.jbcx=0 or b.jbcx is null) and a.jlzt=1";
Map<String,List<Map<String,Object>>> overtimePlanMap = DbTools.getSqlToList(sql,params.get("pbdx"),params.get("startDate"),params.get("endDate")).stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("gsrq"))));
//考勤项目
@ -160,6 +160,8 @@ public class GetScheduleResultListCmd extends AbstractCommonCommand<Map<String,O
map.put("ksdk","0");
map.put("jsdk","0");
map.put("overtimePlanId",overtimePlan.get("id"));
map.put("jxgz", Util.null2String(overtimePlan.get("d_jxgz")));
map.put("jxsc", Util.null2String(overtimePlan.get("jxsc")));
map.put("tqdkfzs", ExtensionClassHolder.getGlobalSetMap().get("defaultClockRange") == null?"60":ExtensionClassHolder.getGlobalSetMap().get("defaultClockRange"));
map.put("thdkfzs",ExtensionClassHolder.getGlobalSetMap().get("defaultClockRange") == null?"60":ExtensionClassHolder.getGlobalSetMap().get("defaultClockRange"));
map.put("rqlx",dateMap.get(e.getKey()));

@ -318,6 +318,7 @@ public class RecordDataCmd extends AbstractCommonCommand<Map<String,Object>> {
}
}else{
double totalKtsc = newDataList.stream().mapToDouble(e->Double.valueOf(e.get("ktsc").toString())).sum();
double totalJxsc = newDataList.stream().mapToDouble(e->Double.valueOf(e.get("jxsc").toString())).sum();
if (totalKtsc == 0){
//可休时长为0
deleteList.add(oldData.get("id").toString());
@ -328,6 +329,7 @@ public class RecordDataCmd extends AbstractCommonCommand<Map<String,Object>> {
}else {
Map<String,Object> newData = newDataList.get(0);
newData.put("ktsc",String.format ("%.2f",totalKtsc));
newData.put("jxsc",String.format ("%.2f",totalJxsc));
//更新老数据。
newData.put("zfsc",oldzfsc);
newData.put("ztsc",oldztsc);
@ -362,11 +364,13 @@ public class RecordDataCmd extends AbstractCommonCommand<Map<String,Object>> {
List<Map<String,Object>> newDataList = entry.getValue();
if (newDataList != null && newDataList.size() > 0 && newDataList.get(0).size() > 1){
double totalKtsc = newDataList.stream().mapToDouble(e->Double.valueOf(e.get("ktsc").toString())).sum();
double totalJxsc = newDataList.stream().mapToDouble(e->Double.valueOf(e.get("jxsc").toString())).sum();
Map<String,Object> newData = newDataList.get(0);
List<Map<String,Object>> oldData = oldHolidayGroupByType.get(jblx);
if (oldData == null || oldData.size() == 0){
newData.put("ktsc",totalKtsc);
newData.put("jxsc",totalJxsc);
beforeHolidays.put(newData.get("jqid").toString(),DbTools.getSqlToList(queryHolidaySql,newData.get("ygid"),newData.get("jqid")));
//老数据不存在,新数据存在。新增数据
insertList.add(newData);

@ -205,11 +205,26 @@ public class SaveWorkOverTimeCmd extends AbstractCommonCommand<Map<String,Object
// double ktsc = Utils.getItemdurationDown(Double.valueOf(holidayItem.get("hsl").toString()),holidayItem.get("hsdw").toString(),Double.valueOf(jbsc).intValue(),AccountingUnitEnum.MINUTES);
// double ktsc = Utils.getItemdurationDownWithoutHsl(holidayItem.get("hsdw").toString(),Double.valueOf(jbsc).intValue(),AccountingUnitEnum.MINUTES);
double ktsc = itemduration;
double addJxsc = 0;
//加班计划明细中计薪时长规则和时长判断
if (scheduleMap.get("jxgz") != null){
String jxgz = scheduleMap.get("jxgz").toString();
if ("0".equals(jxgz)) {
//全部计薪
addJxsc = itemduration;
ktsc = 0;
} else if ("1".equals(jxgz)) {
//指定计薪时长
double jxsc = Double.parseDouble(scheduleMap.getOrDefault("jxsc", "0").toString());
addJxsc = itemduration - jxsc > 0 ? jxsc : itemduration;
ktsc = itemduration - addJxsc;
}
}
insertHoliDayParam.put("ktsc",ktsc);
insertHoliDayParam.put("yxsc",0);
insertHoliDayParam.put("wxsc",ktsc);
insertHoliDayParam.put("ztsc",0);
insertHoliDayParam.put("jxsc",0);
insertHoliDayParam.put("jxsc",addJxsc);
insertHoliDayParam.put("yqsc",0);
insertHoliDayParam.put("yqyxsc",0);
insertHoliDayParam.put("zfsc",0);

Loading…
Cancel
Save