考勤,请假流程节点action类逻辑修改,增加需要校验假期额度的假期类型筛选

zm_dev
sy 1 year ago
parent 20d8957f59
commit 3c82054b63

@ -35,6 +35,8 @@ public class AskForLeaveWorkFlowArchivingAction implements Action {
String qjry = mainTableData.get("qjry");
//实际假期类型
String jqlx = mainTableData.get("sjqjlx");
//需要校验假期额度的假期类型
List<String> checkAmountJqIdList = CommonUtil.getJqInfoWithAmount();
//第一笔开始时间
String firstStartDate = detailTableData.get(0).get("ksrq");
@ -46,6 +48,8 @@ public class AskForLeaveWorkFlowArchivingAction implements Action {
try {
//当前假期类型需要校验剩余额度时则更新假期余额,否则跳过
if (checkAmountJqIdList.contains(jqlx)) {
Map<String,Object> balanceMap = Maps.newHashMap();
for (Map<String, String> data : detailTable2){
String jqye = Util.null2String(data.get("jqye"));
@ -76,6 +80,8 @@ public class AskForLeaveWorkFlowArchivingAction implements Action {
return Action.FAILURE_AND_CONTINUE;
}
}
}
}catch (Exception e){
log.error("AskForLeaveWorkFlowSubmitAction error : [{}]",e);
return Action.FAILURE_AND_CONTINUE;

@ -41,6 +41,8 @@ public class AskForLeaveWorkFlowSubmitAction implements Action {
String qjry = mainTableData.get("qjry");
//实际假期类型
String jqlx = mainTableData.get("sjqjlx");
//需要校验假期额度的假期类型
List<String> checkAmountJqIdList = CommonUtil.getJqInfoWithAmount();
//第一笔开始时间
String firstStartDate = detailTableData.get(0).get("ksrq");
@ -92,21 +94,16 @@ public class AskForLeaveWorkFlowSubmitAction implements Action {
return Action.FAILURE_AND_CONTINUE;
}
}
/**
*
*/
String sql = "select id,jqid,sxrq,ktsc,yxsc,wxsc,yqsxrq,ztsc from uf_jcl_kq_jqye where ygid=? and jqid=? and sxrq<=? and yqsxrq>=? order by sxrq";
List<Map<String, Object>> holidayBalanceList = DbTools.getSqlToList(sql, qjry, jqlx, firstStartDate, firstStartDate);
Map<String, Object> holidayBalanceMap = holidayBalanceList.stream().collect(Collectors.toMap(e -> e.get("id").toString(), e -> e));
sql = "select id,mc,hsdw,hsl,jcbyxsyqjb,yxsydjb,qzsyyxjb from uf_jcl_kq_kqxm where id=?";
Map<String, Object> holidayItem = DbTools.getSqlToMap(sql, jqlx);
//当前假期类型需要校验剩余额度时则校验假期剩余额度,否则跳过校验
if (checkAmountJqIdList.contains(jqlx)) {
//假期核算单位
String hsdw = Util.null2String(holidayItem.get("hsdw"));
//请假方式
@ -130,7 +127,7 @@ public class AskForLeaveWorkFlowSubmitAction implements Action {
List<Map<String, Object>> holidayBalancefilterList = holidayBalanceList.stream().filter(e -> DateUtil.getTime(e.get("yqsxrq").toString()).compareTo(DateUtil.getTime(ksrq)) >= 0).collect(Collectors.toList());
for (Map<String, Object> holidayBalance : holidayBalancefilterList) {
//额定未休时长
double wxsc = holidayBalance.get("wxsc") == null ? 0 : Double.valueOf(holidayBalance.get("wxsc").toString());
double wxsc = Util.null2String(holidayBalance.get("wxsc")).equals("") ? 0 : Double.valueOf(holidayBalance.get("wxsc").toString());
if (leaveDuration > 0) {
Map<String, Object> detail2Map = Maps.newHashMap();
detail2Map.put("glmxid", detailData.get("id"));
@ -159,6 +156,8 @@ public class AskForLeaveWorkFlowSubmitAction implements Action {
return Action.FAILURE_AND_CONTINUE;
}
}
}
log.info("detailTable2 : [{}]", detailTable2);
//更新流程明细表2
@ -173,6 +172,8 @@ public class AskForLeaveWorkFlowSubmitAction implements Action {
return Action.FAILURE_AND_CONTINUE;
}
//当前假期类型需要校验剩余额度时则更新假期余额在途时长,否则跳过
if (checkAmountJqIdList.contains(jqlx)) {
//更新假期余额在途时长
Map<String, Object> balanceMap = Maps.newHashMap();
for (Map<String, Object> data : detailTable2) {
@ -203,6 +204,8 @@ public class AskForLeaveWorkFlowSubmitAction implements Action {
return Action.FAILURE_AND_CONTINUE;
}
}
}
}catch (Exception e){
log.error("AskForLeaveWorkFlowSubmitAction error : [{}]",e);
return Action.FAILURE_AND_CONTINUE;

@ -425,5 +425,28 @@ public class CommonUtil {
return empIdList;
}
/**
* 使
* @return
*/
public static List<String> getJqInfoWithAmount() {
List<String> jqIdList = new ArrayList<>();
//来自假期额度
String sql1 = "select * from uf_jcl_kq_jqed";
List<Map<String,Object>> data1 = DbTools.getSqlToList(sql1);
for (Map<String, Object> map : data1) {
jqIdList.add(Util.null2String(map.get("id")));
}
//来自加班类型的考勤项目中关联的假期类型
String sql2 = "select * from uf_jcl_kq_kqxm where xmlx = 4 and jbzdzjqye = 1";
List<Map<String,Object>> data2 = DbTools.getSqlToList(sql2);
for (Map<String, Object> map : data2) {
String jqId = Util.null2String(map.get("zrdjb"));
if (!"".equals(jqId)) {
jqIdList.add(jqId);
}
}
jqIdList = jqIdList.stream().distinct().collect(Collectors.toList());
return jqIdList;
}
}

Loading…
Cancel
Save