考勤-考勤相关流程,批准节点触发考勤周期是否结账校验
parent
f8b8842c73
commit
5a4e6af0a0
@ -0,0 +1,149 @@
|
|||||||
|
package com.engine.jucailinkq.attendance.component.AttendanceCycle.cmd;
|
||||||
|
|
||||||
|
import com.engine.common.biz.AbstractCommonCommand;
|
||||||
|
import com.engine.common.entity.BizLogContext;
|
||||||
|
import com.engine.core.interceptor.CommandContext;
|
||||||
|
import com.engine.jucailinkq.common.util.CommonUtil;
|
||||||
|
import com.engine.jucailinkq.common.util.DateUtil;
|
||||||
|
import com.engine.jucailinkq.common.util.DbTools;
|
||||||
|
import com.engine.jucailinkq.common.util.Utils;
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
import com.google.common.collect.Sets;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import weaver.general.Util;
|
||||||
|
import weaver.hrm.company.DepartmentComInfo;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取人员、日期范围内考勤周期的结账情况
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
public class GetKqCycleCheckoutInfoCmd extends AbstractCommonCommand<Map<String, Object>> {
|
||||||
|
|
||||||
|
public GetKqCycleCheckoutInfoCmd(Map<String, Object> params){
|
||||||
|
this.params = params;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BizLogContext getLogContext() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> execute(CommandContext commandContext) {
|
||||||
|
String userId = Util.null2String(params.get("userId"));
|
||||||
|
List<Map<String, Object>> submitDataList = (List<Map<String, Object>>)params.get("submitDataList");
|
||||||
|
String submitStr = Util.null2String(params.get("submitStr"));
|
||||||
|
//提交日期
|
||||||
|
String submitDate = Util.null2String(params.get("submitDate"));
|
||||||
|
|
||||||
|
Map<String,Object> resultMap = Maps.newHashMap();
|
||||||
|
resultMap.put("status",true);
|
||||||
|
Set<String> yearSet = Sets.newHashSet();
|
||||||
|
for (Map<String, Object> map : submitDataList){
|
||||||
|
yearSet.add(map.get(submitStr).toString().split("-")[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
log.debug("GetKqCycleCheckoutInfoCmd userId:[{}],submitDateList:[{}],submitStr:[{}]",userId,submitDataList,submitStr);
|
||||||
|
String modeId = Utils.getFormmodeIdMap().get("uf_jcl_kq_kqzqmc");
|
||||||
|
|
||||||
|
Set<String> attendanceSetIdsSets = CommonUtil.getDataIds(userId,modeId,null,null);
|
||||||
|
log.debug("attendanceSetIdsSets : {}",attendanceSetIdsSets);
|
||||||
|
if (attendanceSetIdsSets.size() == 0){
|
||||||
|
//取默认周期
|
||||||
|
String sql = "select id from uf_jcl_kq_kqzqmc where mrzq=1";
|
||||||
|
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql);
|
||||||
|
if (dataList.size() > 0){
|
||||||
|
attendanceSetIdsSets.add(dataList.get(0).get("id").toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
String sql = "select id,departmentid,subcompanyid1 from hrmresource where id =?";
|
||||||
|
Map<String,Object> departMentMap = DbTools.getSqlToMap(sql,userId);
|
||||||
|
String deptid = Util.null2String(departMentMap.get("departmentid"));
|
||||||
|
String pdeptids = "";
|
||||||
|
List<Map<String,Object>> checkoutList = Lists.newArrayList();
|
||||||
|
List<String> nocycleList = Lists.newArrayList();
|
||||||
|
List<Map<String,Object>> dataList = Lists.newArrayList();
|
||||||
|
|
||||||
|
try {
|
||||||
|
pdeptids = DepartmentComInfo.getAllParentDepartId(Util.null2String(departMentMap.get("departmentid")), pdeptids);
|
||||||
|
pdeptids = deptid + pdeptids;
|
||||||
|
log.debug("pdeptids : [{}]",pdeptids);
|
||||||
|
|
||||||
|
sql = "select a.zt,a.ksrq,a.jsrq,a.gzrq,a.gzsj,b.zt dtzt,b.tsbm,b.gzrq dtgzrq,b.gzsj dtgzsj from uf_jcl_kq_kqzq a left join uf_jcl_kq_kqzq_dt1 b on a.id=b.mainid where a.mc=? and a.nd in ("+String.join(",",yearSet)+")";
|
||||||
|
if (attendanceSetIdsSets.toArray().length == 0){
|
||||||
|
resultMap.put("status",false);
|
||||||
|
return resultMap;
|
||||||
|
}
|
||||||
|
List<Map<String,Object>> list = DbTools.getSqlToList(sql,attendanceSetIdsSets.toArray()[0]);
|
||||||
|
log.debug("GetKqCycleCheckoutInfoCmd list : [{}]",list);
|
||||||
|
for (Map<String,Object> detailData:submitDataList){
|
||||||
|
String ksrq = Util.null2String(detailData.get(submitStr)).split(" ")[0];
|
||||||
|
List<Map<String,Object>> cycleTime = list.stream().filter(e->DateUtil.getTime(e.get("ksrq").toString()).compareTo(DateUtil.getTime(ksrq)) <= 0 &&
|
||||||
|
DateUtil.getTime(e.get("jsrq").toString()).compareTo(DateUtil.getTime(ksrq)) >=0).collect(Collectors.toList());
|
||||||
|
log.debug("数据业务日期:[{}],周期数据:[{}]",ksrq,cycleTime);
|
||||||
|
if (cycleTime.size() > 0){
|
||||||
|
Map<String,Object> date = Maps.newHashMap();
|
||||||
|
date.put("startDate",cycleTime.get(0).get("ksrq"));
|
||||||
|
date.put("endDate",cycleTime.get(0).get("jsrq"));
|
||||||
|
dataList.add(date);
|
||||||
|
|
||||||
|
//0:待关账 1:已关账,2:已结账
|
||||||
|
String zt = Util.null2String(cycleTime.get(0).get("zt"));
|
||||||
|
String gzrq = Util.null2String(cycleTime.get(0).get("gzrq"));
|
||||||
|
String gzsj = Util.null2String(cycleTime.get(0).get("gzsj"));
|
||||||
|
|
||||||
|
String tsbm = Util.null2String(cycleTime.get(0).get("tsbm"));
|
||||||
|
String dtzt = Util.null2String(cycleTime.get(0).get("dtzt"));
|
||||||
|
String dtgzrq = Util.null2String(cycleTime.get(0).get("dtgzrq"));
|
||||||
|
String dtgzsj = Util.null2String(cycleTime.get(0).get("dtgzsj"));
|
||||||
|
|
||||||
|
if ("2".equals(zt)){
|
||||||
|
//数据已关账或提交日期大于关账时间
|
||||||
|
checkoutList.add(new HashMap(){{
|
||||||
|
put("rq",detailData.get(submitStr));
|
||||||
|
put("cycle",cycleTime);
|
||||||
|
}});
|
||||||
|
}
|
||||||
|
|
||||||
|
// if (!"".equals(tsbm) && CommonUtil.ifContainStr(pdeptids,tsbm,",")){
|
||||||
|
// //人员在特殊部门里
|
||||||
|
// if ("2".equals(dtzt)){
|
||||||
|
// //处于关账状态或提交日期大于关账时间
|
||||||
|
// checkoutList.add(new HashMap(){{
|
||||||
|
// put("rq",detailData.get(submitStr));
|
||||||
|
// put("cycle",cycleTime);
|
||||||
|
// }});
|
||||||
|
// }
|
||||||
|
// }else {
|
||||||
|
// if ("2".equals(zt)){
|
||||||
|
// //数据已关账或提交日期大于关账时间
|
||||||
|
// checkoutList.add(new HashMap(){{
|
||||||
|
// put("rq",detailData.get(submitStr));
|
||||||
|
// put("cycle",cycleTime);
|
||||||
|
// }});
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
}else {
|
||||||
|
nocycleList.add(detailData.get(submitStr).toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}catch (Exception e){
|
||||||
|
log.error("catch error :{}",e);
|
||||||
|
}
|
||||||
|
log.debug("GetKqCycleCheckoutInfoCmd checkoutList : [{}]",checkoutList);
|
||||||
|
log.debug("GetKqCycleCheckoutInfoCmd nocycleList : [{}]",nocycleList);
|
||||||
|
|
||||||
|
resultMap.put("checkoutList",checkoutList);
|
||||||
|
resultMap.put("nocycleList",nocycleList);
|
||||||
|
resultMap.put("dataList",dataList);
|
||||||
|
return resultMap;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
package com.engine.jucailinkq.attendance.component.AttendanceCycle.service;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public interface AttendanceCycleService {
|
||||||
|
|
||||||
|
Map<String,Object> getKqCycleCheckoutInfoCmd(Map<String,Object> params);
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.engine.jucailinkq.attendance.component.AttendanceCycle.service.impl;
|
||||||
|
|
||||||
|
import com.engine.core.impl.Service;
|
||||||
|
import com.engine.jucailinkq.attendance.component.AttendanceCycle.cmd.GetKqCycleCheckoutInfoCmd;
|
||||||
|
import com.engine.jucailinkq.attendance.component.AttendanceCycle.service.AttendanceCycleService;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: sy
|
||||||
|
* @Description: 考勤周期相关功能实现类
|
||||||
|
* @Date: 2024/7/31
|
||||||
|
**/
|
||||||
|
public class AttendanceCycleServiceImpl extends Service implements AttendanceCycleService {
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> getKqCycleCheckoutInfoCmd(Map<String, Object> params) {
|
||||||
|
return commandExecutor.execute(new GetKqCycleCheckoutInfoCmd(params));
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,93 @@
|
|||||||
|
package com.engine.jucailinkq.attendance.workflow.action;
|
||||||
|
|
||||||
|
import com.engine.common.util.ServiceUtil;
|
||||||
|
import com.engine.jucailinkq.attendance.component.AttendanceCycle.service.AttendanceCycleService;
|
||||||
|
import com.engine.jucailinkq.attendance.component.AttendanceCycle.service.impl.AttendanceCycleServiceImpl;
|
||||||
|
import com.engine.jucailinkq.attendance.workflow.service.MakeUpClockInService;
|
||||||
|
import com.engine.jucailinkq.attendance.workflow.service.impl.MakeUpClockInServiceImpl;
|
||||||
|
import com.engine.jucailinkq.common.util.CommonUtil;
|
||||||
|
import com.engine.jucailinkq.common.util.DateUtil;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import weaver.general.Util;
|
||||||
|
import weaver.interfaces.workflow.action.Action;
|
||||||
|
import weaver.soa.workflow.request.RequestInfo;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 出差流程批准action
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
public class EvectionApproveAction implements Action {
|
||||||
|
private AttendanceCycleService getAttendanceCycleService = ServiceUtil.getService(AttendanceCycleServiceImpl.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String execute(RequestInfo requestInfo) {
|
||||||
|
String requestid = requestInfo.getRequestid();
|
||||||
|
// 流程表单主表数据
|
||||||
|
HashMap<String,String> mainTableData = CommonUtil.getMainTableInfo(requestInfo);
|
||||||
|
// 流程表单明细表数据
|
||||||
|
List<Map<String, String>> detailTableData = CommonUtil.getDetailTableInfo(requestInfo,0);
|
||||||
|
//出差人员
|
||||||
|
String ccr = mainTableData.get("ccr");
|
||||||
|
try {
|
||||||
|
Map<String,List<Map<String, String>>> detailGroupMap = detailTableData.stream().collect(Collectors.groupingBy(e->Util.null2String(e.get("ccr"))));
|
||||||
|
|
||||||
|
for (Map.Entry<String,List<Map<String, String>>> tableEntry :detailGroupMap.entrySet()){
|
||||||
|
List<Map<String, String>> detailGroupByUserList = tableEntry.getValue();
|
||||||
|
Map<String, Object> params = Maps.newHashMap();
|
||||||
|
if ("".equals(tableEntry.getKey())){
|
||||||
|
params.put("userId",ccr);
|
||||||
|
}else {
|
||||||
|
params.put("userId",tableEntry.getKey());
|
||||||
|
}
|
||||||
|
params.put("submitDate",DateUtil.getCurrentDate());
|
||||||
|
params.put("submitStr","ksrq");
|
||||||
|
params.put("submitDataList",detailGroupByUserList);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 考勤周期校验
|
||||||
|
*/
|
||||||
|
if (detailGroupByUserList == null || detailGroupByUserList.size() == 0){
|
||||||
|
log.error("明细表没有数据!");
|
||||||
|
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
|
||||||
|
requestInfo.getRequestManager().setMessagecontent("明细表没有数据!");
|
||||||
|
return Action.FAILURE_AND_CONTINUE;
|
||||||
|
}
|
||||||
|
Map<String,Object> dataMap = getAttendanceCycleService.getKqCycleCheckoutInfoCmd(params);
|
||||||
|
List<Map<String,Object>> checkoutList = (List<Map<String,Object>>)dataMap.get("checkoutList");
|
||||||
|
List<String> nocycleList = (List<String>)dataMap.get("nocycleList");
|
||||||
|
List<Map<String,Object>> dateList = (List<Map<String,Object>>)dataMap.get("dataList");
|
||||||
|
|
||||||
|
boolean status = (boolean)dataMap.get("status");
|
||||||
|
if (!status){
|
||||||
|
log.error("该人员没有考勤周期");
|
||||||
|
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
|
||||||
|
requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!");
|
||||||
|
return Action.FAILURE_AND_CONTINUE;
|
||||||
|
}
|
||||||
|
if (checkoutList.size() > 0 || nocycleList.size() > 0){
|
||||||
|
String message = "";
|
||||||
|
if (nocycleList.size() > 0){
|
||||||
|
message = message +String.join(",",nocycleList)+"未找对对应的考勤周期;";
|
||||||
|
}
|
||||||
|
if (checkoutList.size() > 0){
|
||||||
|
List<String> list = checkoutList.stream().map(e->e.get("rq").toString()).collect(Collectors.toList());
|
||||||
|
message = message +String.join(",",list)+"对应的考勤周期的考勤周期已结账";
|
||||||
|
}
|
||||||
|
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
|
||||||
|
requestInfo.getRequestManager().setMessagecontent(message);
|
||||||
|
return Action.FAILURE_AND_CONTINUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}catch (Exception e){
|
||||||
|
log.error("EvectionApproveAction error : [{}]",e);
|
||||||
|
return Action.FAILURE_AND_CONTINUE;
|
||||||
|
}
|
||||||
|
return Action.SUCCESS;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,95 @@
|
|||||||
|
package com.engine.jucailinkq.attendance.workflow.action;
|
||||||
|
|
||||||
|
import com.engine.common.util.ServiceUtil;
|
||||||
|
import com.engine.jucailinkq.attendance.component.AttendanceCycle.service.AttendanceCycleService;
|
||||||
|
import com.engine.jucailinkq.attendance.component.AttendanceCycle.service.impl.AttendanceCycleServiceImpl;
|
||||||
|
import com.engine.jucailinkq.attendance.workflow.cmd.GetKqCycleTimeIntervalCmd;
|
||||||
|
import com.engine.jucailinkq.attendance.workflow.service.impl.MakeUpClockInServiceImpl;
|
||||||
|
import com.engine.jucailinkq.common.util.CommonUtil;
|
||||||
|
import com.engine.jucailinkq.common.util.DateUtil;
|
||||||
|
import com.engine.jucailinkq.common.util.DbTools;
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import weaver.general.Util;
|
||||||
|
import weaver.interfaces.workflow.action.Action;
|
||||||
|
import weaver.soa.workflow.request.RequestInfo;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 补打卡流程批准action
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
public class MakeUpClockApproveAction implements Action {
|
||||||
|
|
||||||
|
private AttendanceCycleService getAttendanceCycleService = ServiceUtil.getService(AttendanceCycleServiceImpl.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String execute(RequestInfo requestInfo) {
|
||||||
|
String requestid = requestInfo.getRequestid();
|
||||||
|
log.debug("**********MakeUpClockApproveAction import data start**********");
|
||||||
|
// 流程表单主表数据
|
||||||
|
HashMap<String,String> mainTableData = CommonUtil.getMainTableInfo(requestInfo);
|
||||||
|
// 流程表单明细表数据
|
||||||
|
List<Map<String, String>> detailTableData = CommonUtil.getDetailTableInfo(requestInfo,0);
|
||||||
|
log.info("detailTableData : [{}]", detailTableData);
|
||||||
|
//补打卡人员
|
||||||
|
String userId = mainTableData.get("bdkry");
|
||||||
|
Map<String,List<Map<String, String>>> detailGroupMap = detailTableData.stream().collect(Collectors.groupingBy(e-> Util.null2String(e.get("bdkr"))));
|
||||||
|
|
||||||
|
for (Map.Entry<String,List<Map<String, String>>> tableEntry :detailGroupMap.entrySet()){
|
||||||
|
List<Map<String, String>> detailGroupByUserList = tableEntry.getValue();
|
||||||
|
Map<String, Object> params = Maps.newHashMap();
|
||||||
|
if ("".equals(tableEntry.getKey())){
|
||||||
|
params.put("userId",userId);
|
||||||
|
}else {
|
||||||
|
params.put("userId",tableEntry.getKey());
|
||||||
|
}
|
||||||
|
params.put("submitDate", DateUtil.getCurrentDate());
|
||||||
|
params.put("submitStr","bdkrq");
|
||||||
|
params.put("submitDataList",detailGroupByUserList);
|
||||||
|
/**
|
||||||
|
* 考勤周期校验
|
||||||
|
*/
|
||||||
|
if (detailGroupByUserList == null || detailGroupByUserList.size() == 0){
|
||||||
|
log.error("明细表没有数据!");
|
||||||
|
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
|
||||||
|
requestInfo.getRequestManager().setMessagecontent("明细表没有数据!");
|
||||||
|
return Action.FAILURE_AND_CONTINUE;
|
||||||
|
}
|
||||||
|
Map<String,Object> dataMap = getAttendanceCycleService.getKqCycleCheckoutInfoCmd(params);
|
||||||
|
List<Map<String,Object>> checkoutList = (List<Map<String,Object>>)dataMap.get("checkoutList");
|
||||||
|
List<String> nocycleList = (List<String>)dataMap.get("nocycleList");
|
||||||
|
List<Map<String,Object>> dateList = (List<Map<String,Object>>)dataMap.get("dataList");
|
||||||
|
|
||||||
|
boolean status = (boolean)dataMap.get("status");
|
||||||
|
if (!status){
|
||||||
|
log.error("该人员没有考勤周期");
|
||||||
|
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
|
||||||
|
requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!");
|
||||||
|
return Action.FAILURE_AND_CONTINUE;
|
||||||
|
}
|
||||||
|
if (checkoutList.size() > 0 || nocycleList.size() > 0){
|
||||||
|
String message = "";
|
||||||
|
if (nocycleList.size() > 0){
|
||||||
|
message = message +String.join(",",nocycleList)+"未找对对应的考勤周期;";
|
||||||
|
}
|
||||||
|
if (checkoutList.size() > 0){
|
||||||
|
List<String> list = checkoutList.stream().map(e->e.get("rq").toString()).collect(Collectors.toList());
|
||||||
|
message = message +String.join(",",list)+"对应的考勤周期的考勤周期已结账";
|
||||||
|
}
|
||||||
|
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
|
||||||
|
requestInfo.getRequestManager().setMessagecontent(message);
|
||||||
|
return Action.FAILURE_AND_CONTINUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
log.debug("**********MakeUpClockApproveAction import data end**********");
|
||||||
|
|
||||||
|
return Action.SUCCESS;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,95 @@
|
|||||||
|
package com.engine.jucailinkq.attendance.workflow.action;
|
||||||
|
|
||||||
|
import com.engine.common.util.ServiceUtil;
|
||||||
|
import com.engine.jucailinkq.attendance.component.AttendanceCycle.service.AttendanceCycleService;
|
||||||
|
import com.engine.jucailinkq.attendance.component.AttendanceCycle.service.impl.AttendanceCycleServiceImpl;
|
||||||
|
import com.engine.jucailinkq.attendance.workflow.service.MakeUpClockInService;
|
||||||
|
import com.engine.jucailinkq.attendance.workflow.service.impl.MakeUpClockInServiceImpl;
|
||||||
|
import com.engine.jucailinkq.common.util.CommonUtil;
|
||||||
|
import com.engine.jucailinkq.common.util.DateUtil;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import weaver.general.Util;
|
||||||
|
import weaver.interfaces.workflow.action.Action;
|
||||||
|
import weaver.soa.workflow.request.RequestInfo;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 加班计划流程批准action
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
public class OvertimePlanApproveAction implements Action {
|
||||||
|
|
||||||
|
private AttendanceCycleService getAttendanceCycleService = ServiceUtil.getService(AttendanceCycleServiceImpl.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String execute(RequestInfo requestInfo) {
|
||||||
|
String requestid = requestInfo.getRequestid();
|
||||||
|
// 流程表单主表数据
|
||||||
|
HashMap<String,String> mainTableData = CommonUtil.getMainTableInfo(requestInfo);
|
||||||
|
// 流程表单明细表数据
|
||||||
|
List<Map<String, String>> detailTableData = CommonUtil.getDetailTableInfo(requestInfo,0);
|
||||||
|
//加班人员
|
||||||
|
String jbry = mainTableData.get("jbry");
|
||||||
|
try {
|
||||||
|
Map<String,List<Map<String, String>>> detailGroupMap = detailTableData.stream().collect(Collectors.groupingBy(e->Util.null2String(e.get("jbry"))));
|
||||||
|
|
||||||
|
for (Map.Entry<String,List<Map<String, String>>> tableEntry :detailGroupMap.entrySet()){
|
||||||
|
List<Map<String, String>> detailGroupByUserList = tableEntry.getValue();
|
||||||
|
Map<String, Object> params = Maps.newHashMap();
|
||||||
|
if ("".equals(tableEntry.getKey())){
|
||||||
|
params.put("userId",jbry);
|
||||||
|
}else {
|
||||||
|
params.put("userId",tableEntry.getKey());
|
||||||
|
}
|
||||||
|
params.put("submitDate",DateUtil.getCurrentDate());
|
||||||
|
params.put("submitStr","ksrq");
|
||||||
|
params.put("submitDataList",detailGroupByUserList);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 考勤周期校验
|
||||||
|
*/
|
||||||
|
if (detailGroupByUserList == null || detailGroupByUserList.size() == 0){
|
||||||
|
log.error("明细表没有数据!");
|
||||||
|
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
|
||||||
|
requestInfo.getRequestManager().setMessagecontent("明细表没有数据!");
|
||||||
|
return Action.FAILURE_AND_CONTINUE;
|
||||||
|
}
|
||||||
|
Map<String,Object> dataMap = getAttendanceCycleService.getKqCycleCheckoutInfoCmd(params);
|
||||||
|
List<Map<String,Object>> checkoutList = (List<Map<String,Object>>)dataMap.get("checkoutList");
|
||||||
|
List<String> nocycleList = (List<String>)dataMap.get("nocycleList");
|
||||||
|
List<Map<String,Object>> dateList = (List<Map<String,Object>>)dataMap.get("dataList");
|
||||||
|
|
||||||
|
boolean status = (boolean)dataMap.get("status");
|
||||||
|
if (!status){
|
||||||
|
log.error("该人员没有考勤周期");
|
||||||
|
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
|
||||||
|
requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!");
|
||||||
|
return Action.FAILURE_AND_CONTINUE;
|
||||||
|
}
|
||||||
|
if (checkoutList.size() > 0 || nocycleList.size() > 0){
|
||||||
|
String message = "";
|
||||||
|
if (nocycleList.size() > 0){
|
||||||
|
message = message +String.join(",",nocycleList)+"未找对对应的考勤周期;";
|
||||||
|
}
|
||||||
|
if (checkoutList.size() > 0){
|
||||||
|
List<String> list = checkoutList.stream().map(e->e.get("rq").toString()).collect(Collectors.toList());
|
||||||
|
message = message +String.join(",",list)+"对应的考勤周期的考勤周期已结账";
|
||||||
|
}
|
||||||
|
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
|
||||||
|
requestInfo.getRequestManager().setMessagecontent(message);
|
||||||
|
return Action.FAILURE_AND_CONTINUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}catch (Exception e){
|
||||||
|
log.error("OvertimePlanApproveAction error : [{}]",e);
|
||||||
|
return Action.FAILURE_AND_CONTINUE;
|
||||||
|
}
|
||||||
|
return Action.SUCCESS;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,79 @@
|
|||||||
|
package com.engine.jucailinkq.attendance.workflow.action;
|
||||||
|
|
||||||
|
import com.engine.common.util.ServiceUtil;
|
||||||
|
import com.engine.jucailinkq.attendance.component.AttendanceCycle.service.AttendanceCycleService;
|
||||||
|
import com.engine.jucailinkq.attendance.component.AttendanceCycle.service.impl.AttendanceCycleServiceImpl;
|
||||||
|
import com.engine.jucailinkq.attendance.workflow.service.MakeUpClockInService;
|
||||||
|
import com.engine.jucailinkq.attendance.workflow.service.impl.MakeUpClockInServiceImpl;
|
||||||
|
import com.engine.jucailinkq.common.util.CommonUtil;
|
||||||
|
import com.engine.jucailinkq.common.util.DateUtil;
|
||||||
|
import com.engine.jucailinkq.common.util.DbTools;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import weaver.interfaces.workflow.action.Action;
|
||||||
|
import weaver.soa.workflow.request.RequestInfo;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 销假流程批准action
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
public class RevokeAskForLeaveApproveAction implements Action {
|
||||||
|
|
||||||
|
private AttendanceCycleService getAttendanceCycleService = ServiceUtil.getService(AttendanceCycleServiceImpl.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String execute(RequestInfo requestInfo) {
|
||||||
|
|
||||||
|
String requestid = requestInfo.getRequestid();
|
||||||
|
// 流程表单主表数据
|
||||||
|
HashMap<String,String> mainTableData = CommonUtil.getMainTableInfo(requestInfo);
|
||||||
|
// 流程表单明细表数据
|
||||||
|
List<Map<String, String>> detailTableData = CommonUtil.getDetailTableInfo(requestInfo,0);
|
||||||
|
//销假人
|
||||||
|
String xjr = mainTableData.get("xjr");
|
||||||
|
|
||||||
|
Map<String, Object> params = Maps.newHashMap();
|
||||||
|
params.put("userId",xjr);
|
||||||
|
params.put("submitDate", DateUtil.getCurrentDate());
|
||||||
|
params.put("submitStr","ksrq");
|
||||||
|
params.put("submitDataList",detailTableData);
|
||||||
|
|
||||||
|
//筛选出勾选了撤销的明细数据
|
||||||
|
detailTableData = detailTableData.stream().filter(e->"1".equals(e.get("cx"))).collect(Collectors.toList());
|
||||||
|
params.put("submitDataList",detailTableData);
|
||||||
|
|
||||||
|
if (detailTableData.size() > 0) {
|
||||||
|
Map<String,Object> dataMap = getAttendanceCycleService.getKqCycleCheckoutInfoCmd(params);
|
||||||
|
List<Map<String,Object>> checkoutList = (List<Map<String,Object>>)dataMap.get("checkoutList");
|
||||||
|
List<String> nocycleList = (List<String>)dataMap.get("nocycleList");
|
||||||
|
|
||||||
|
boolean status = (boolean)dataMap.get("status");
|
||||||
|
if (!status){
|
||||||
|
log.error("该人员没有考勤周期");
|
||||||
|
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
|
||||||
|
requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!");
|
||||||
|
return Action.FAILURE_AND_CONTINUE;
|
||||||
|
}
|
||||||
|
if (checkoutList.size() > 0 || nocycleList.size() > 0){
|
||||||
|
String message = "";
|
||||||
|
if (nocycleList.size() > 0){
|
||||||
|
message = message +String.join(",",nocycleList)+"未找对对应的考勤周期;";
|
||||||
|
}
|
||||||
|
if (checkoutList.size() > 0){
|
||||||
|
List<String> list = checkoutList.stream().map(e->e.get("rq").toString()).collect(Collectors.toList());
|
||||||
|
message = message +String.join(",",list)+"对应的考勤周期的考勤周期已结账";
|
||||||
|
}
|
||||||
|
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
|
||||||
|
requestInfo.getRequestManager().setMessagecontent(message);
|
||||||
|
return Action.FAILURE_AND_CONTINUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Action.SUCCESS;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,79 @@
|
|||||||
|
package com.engine.jucailinkq.attendance.workflow.action;
|
||||||
|
|
||||||
|
import com.engine.common.util.ServiceUtil;
|
||||||
|
import com.engine.jucailinkq.attendance.component.AttendanceCycle.service.AttendanceCycleService;
|
||||||
|
import com.engine.jucailinkq.attendance.component.AttendanceCycle.service.impl.AttendanceCycleServiceImpl;
|
||||||
|
import com.engine.jucailinkq.attendance.workflow.service.MakeUpClockInService;
|
||||||
|
import com.engine.jucailinkq.attendance.workflow.service.impl.MakeUpClockInServiceImpl;
|
||||||
|
import com.engine.jucailinkq.common.util.CommonUtil;
|
||||||
|
import com.engine.jucailinkq.common.util.DateUtil;
|
||||||
|
import com.engine.jucailinkq.common.util.DbTools;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import weaver.interfaces.workflow.action.Action;
|
||||||
|
import weaver.soa.workflow.request.RequestInfo;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 销差流程批准action
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
public class RevokeEvctionApproveAction implements Action {
|
||||||
|
|
||||||
|
private AttendanceCycleService getAttendanceCycleService = ServiceUtil.getService(AttendanceCycleServiceImpl.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String execute(RequestInfo requestInfo) {
|
||||||
|
|
||||||
|
String requestid = requestInfo.getRequestid();
|
||||||
|
// 流程表单主表数据
|
||||||
|
HashMap<String,String> mainTableData = CommonUtil.getMainTableInfo(requestInfo);
|
||||||
|
// 流程表单明细表数据
|
||||||
|
List<Map<String, String>> detailTableData = CommonUtil.getDetailTableInfo(requestInfo,0);
|
||||||
|
//销差人
|
||||||
|
String xcr = mainTableData.get("xjr");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 考勤周期检查
|
||||||
|
*/
|
||||||
|
Map<String, Object> params = Maps.newHashMap();
|
||||||
|
params.put("userId",xcr);
|
||||||
|
params.put("submitDate", DateUtil.getCurrentDate());
|
||||||
|
params.put("submitStr","ksrq");
|
||||||
|
//筛选出勾选了撤销的明细数据
|
||||||
|
detailTableData = detailTableData.stream().filter(e->"1".equals(e.get("cx"))).collect(Collectors.toList());
|
||||||
|
params.put("submitDataList",detailTableData);
|
||||||
|
if (detailTableData.size() > 0) {
|
||||||
|
Map<String,Object> dataMap = getAttendanceCycleService.getKqCycleCheckoutInfoCmd(params);
|
||||||
|
List<Map<String,Object>> checkoutList = (List<Map<String,Object>>)dataMap.get("checkoutList");
|
||||||
|
List<String> nocycleList = (List<String>)dataMap.get("nocycleList");
|
||||||
|
|
||||||
|
boolean status = (boolean)dataMap.get("status");
|
||||||
|
if (!status){
|
||||||
|
log.error("该人员没有考勤周期");
|
||||||
|
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
|
||||||
|
requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!");
|
||||||
|
return Action.FAILURE_AND_CONTINUE;
|
||||||
|
}
|
||||||
|
if (checkoutList.size() > 0 || nocycleList.size() > 0){
|
||||||
|
String message = "";
|
||||||
|
if (nocycleList.size() > 0){
|
||||||
|
message = message +String.join(",",nocycleList)+"未找对对应的考勤周期;";
|
||||||
|
}
|
||||||
|
if (checkoutList.size() > 0){
|
||||||
|
List<String> list = checkoutList.stream().map(e->e.get("rq").toString()).collect(Collectors.toList());
|
||||||
|
message = message +String.join(",",list)+"对应的考勤周期的考勤周期已结账";
|
||||||
|
}
|
||||||
|
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
|
||||||
|
requestInfo.getRequestManager().setMessagecontent(message);
|
||||||
|
return Action.FAILURE_AND_CONTINUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Action.SUCCESS;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,87 @@
|
|||||||
|
package com.engine.jucailinkq.attendance.workflow.action.askforleave;
|
||||||
|
|
||||||
|
import com.engine.common.util.ServiceUtil;
|
||||||
|
import com.engine.jucailinkq.attendance.component.AttendanceCycle.service.AttendanceCycleService;
|
||||||
|
import com.engine.jucailinkq.attendance.component.AttendanceCycle.service.impl.AttendanceCycleServiceImpl;
|
||||||
|
import com.engine.jucailinkq.common.util.CommonUtil;
|
||||||
|
import com.engine.jucailinkq.common.util.DateUtil;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import weaver.general.Util;
|
||||||
|
import weaver.interfaces.workflow.action.Action;
|
||||||
|
import weaver.soa.workflow.request.RequestInfo;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量请假流程批准action
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
public class BatchAskForLeaveWorkFlowApproveAction implements Action {
|
||||||
|
|
||||||
|
private AttendanceCycleService getAttendanceCycleService = ServiceUtil.getService(AttendanceCycleServiceImpl.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String execute(RequestInfo requestInfo) {
|
||||||
|
String requestid = requestInfo.getRequestid();
|
||||||
|
log.debug("**********BatchAskForLeaveWorkFlowApproveAction import data start**********");
|
||||||
|
// 流程表单主表数据
|
||||||
|
HashMap<String,String> mainTableData = CommonUtil.getMainTableInfo(requestInfo);
|
||||||
|
// 流程表单明细表数据
|
||||||
|
List<Map<String, String>> detailTableData = CommonUtil.getDetailTableInfo(requestInfo,0);
|
||||||
|
log.info("detailTableData : [{}]", detailTableData);
|
||||||
|
|
||||||
|
Map<String,List<Map<String, String>>> detailGroupMap = detailTableData.stream().collect(Collectors.groupingBy(e-> Util.null2String(e.get("qjr"))));
|
||||||
|
|
||||||
|
for (Map.Entry<String,List<Map<String, String>>> tableEntry :detailGroupMap.entrySet()){
|
||||||
|
List<Map<String, String>> detailGroupByUserList = tableEntry.getValue();
|
||||||
|
Map<String, Object> params = Maps.newHashMap();
|
||||||
|
|
||||||
|
params.put("userId",tableEntry.getKey());
|
||||||
|
|
||||||
|
params.put("submitDate", DateUtil.getCurrentDate());
|
||||||
|
params.put("submitStr","ksrq");
|
||||||
|
params.put("submitDataList",detailGroupByUserList);
|
||||||
|
/**
|
||||||
|
* 考勤周期校验
|
||||||
|
*/
|
||||||
|
if (detailGroupByUserList == null || detailGroupByUserList.size() == 0){
|
||||||
|
log.error("明细表没有数据!");
|
||||||
|
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
|
||||||
|
requestInfo.getRequestManager().setMessagecontent("明细表没有数据!");
|
||||||
|
return Action.FAILURE_AND_CONTINUE;
|
||||||
|
}
|
||||||
|
Map<String,Object> dataMap = getAttendanceCycleService.getKqCycleCheckoutInfoCmd(params);
|
||||||
|
List<Map<String,Object>> checkoutList = (List<Map<String,Object>>)dataMap.get("checkoutList");
|
||||||
|
List<String> nocycleList = (List<String>)dataMap.get("nocycleList");
|
||||||
|
List<Map<String,Object>> dateList = (List<Map<String,Object>>)dataMap.get("dataList");
|
||||||
|
|
||||||
|
boolean status = (boolean)dataMap.get("status");
|
||||||
|
if (!status){
|
||||||
|
log.error("该人员没有考勤周期");
|
||||||
|
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
|
||||||
|
requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!");
|
||||||
|
return Action.FAILURE_AND_CONTINUE;
|
||||||
|
}
|
||||||
|
if (checkoutList.size() > 0 || nocycleList.size() > 0){
|
||||||
|
String message = "";
|
||||||
|
if (nocycleList.size() > 0){
|
||||||
|
message = message +String.join(",",nocycleList)+"未找对对应的考勤周期;";
|
||||||
|
}
|
||||||
|
if (checkoutList.size() > 0){
|
||||||
|
List<String> list = checkoutList.stream().map(e->e.get("rq").toString()).collect(Collectors.toList());
|
||||||
|
message = message +String.join(",",list)+"对应的考勤周期的考勤周期已结账";
|
||||||
|
}
|
||||||
|
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
|
||||||
|
requestInfo.getRequestManager().setMessagecontent(message);
|
||||||
|
return Action.FAILURE_AND_CONTINUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
log.debug("**********BatchAskForLeaveWorkFlowApproveAction import data end**********");
|
||||||
|
|
||||||
|
return Action.SUCCESS;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue