考勤-考勤相关流程,批准节点触发考勤周期是否结账校验

zm_dev
sy 10 months ago
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,117 @@
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.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 org.apache.commons.lang3.StringUtils;
import weaver.general.Util;
import weaver.interfaces.workflow.action.Action;
import weaver.soa.workflow.request.Cell;
import weaver.soa.workflow.request.DetailTable;
import weaver.soa.workflow.request.RequestInfo;
import weaver.soa.workflow.request.Row;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.*;
import java.util.stream.Collectors;
/**
* @Author: sy
* @Description: action
* @Date: 2024/7/25
**/
@Slf4j
public class AllowanceConfirmApproveAction implements Action {
private AttendanceCycleService getAttendanceCycleService = ServiceUtil.getService(AttendanceCycleServiceImpl.class);
@Override
public String execute(RequestInfo requestInfo) {
log.info("AllowanceConfirmApproveAction,do action on request:" + requestInfo.getRequestid());
String requestid = requestInfo.getRequestid();
try {
// 流程表单主表数据
HashMap<String, String> mainTableData = CommonUtil.getMainTableInfo(requestInfo);
String qrr = mainTableData.get("xjr");
List<String> jtIdList = new ArrayList<>();
List<String> ztUpdateList = new ArrayList<>();
// 流程表单明细表数据
List<Map<String, String>> detailTableData = CommonUtil.getDetailTableInfo(requestInfo,0);
log.info("detailTableData:" + detailTableData);
//收集明细表中津贴数据id
jtIdList = detailTableData.stream().map(e->Util.null2String(e.get("jtid"))).collect(Collectors.toList());
if (jtIdList.size() > 0) {
//遍历比较哪些津贴数据的状态改变了,并将状态发生改变的津贴数据认定为要更新出勤结果数据状态的津贴数据
String jtSql = "select id, zt from uf_jcl_kq_cqjt where id in (" + String.join(",", jtIdList) + ")";
List<Map<String, Object>> jtDataList = DbTools.getSqlToList(jtSql);
Map<String, String> jtStatusMap = jtDataList.stream().collect(Collectors.toMap(e->Util.null2String(e.get("id")), e->Util.null2String(e.get("zt"))));
detailTableData.forEach(f -> {
if (StringUtils.isNotBlank(f.get("jtid"))) {
//收集需要更改出勤结果数据状态的人员、日期信息
if (!jtStatusMap.getOrDefault(f.get("jtid"), "").equals(Util.null2String(f.get("zt")))) {
ztUpdateList.add(f.get("jtid"));
}
}
});
}
log.info("ztUpdateList_size:" + ztUpdateList.size());
if (ztUpdateList.size() > 0) {
/**
*
*/
Map<String, Object> params = Maps.newHashMap();
params.put("userId",qrr);
params.put("submitDate", DateUtil.getCurrentDate());
params.put("submitStr","rq");
//筛选出津贴状态发生变化的明细数据
detailTableData = detailTableData.stream().filter(e -> ztUpdateList.contains(e.get("jtid"))).collect(Collectors.toList());
params.put("submitDataList",detailTableData);
log.info("params:" + params);
Map<String,Object> dataMap = getAttendanceCycleService.getKqCycleCheckoutInfoCmd(params);
log.info("dataMap:" + dataMap);
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);
log.info(message);
return Action.FAILURE_AND_CONTINUE;
}
}
} catch (Exception e) {
log.debug("流程数据报错:AllowanceConfirmApproveAction:");
StringWriter errorsWriter = new StringWriter();
e.printStackTrace(new PrintWriter(errorsWriter));
log.debug(errorsWriter.toString());
requestInfo.getRequestManager().setMessageid("11111" + requestInfo.getRequestid() + "22222");
requestInfo.getRequestManager().setMessagecontent("【津贴确认批准action】报错请联系管理员");
return Action.FAILURE_AND_CONTINUE;
}
return SUCCESS;
}
}

@ -22,11 +22,11 @@ import java.util.stream.Collectors;
* @Date: 2024/7/25
**/
@Slf4j
public class AllowanceConfirmAction implements Action {
public class AllowanceConfirmArchivingAction implements Action {
@Override
public String execute(RequestInfo requestInfo) {
log.debug("AllowanceConfirmAction,do action on request:" + requestInfo.getRequestid());
log.debug("AllowanceConfirmArchivingAction,do action on request:" + requestInfo.getRequestid());
String requestid = requestInfo.getRequestid();
try {
@ -36,7 +36,7 @@ public class AllowanceConfirmAction implements Action {
List<String> jtIdList = new ArrayList<>();
DetailTable[] detailTable = requestInfo.getDetailTableInfo().getDetailTable();
log.debug("AllowanceConfirmAction detailTable : [{}], length : {}", Arrays.toString(detailTable), detailTable.length);
log.debug("AllowanceConfirmArchivingAction detailTable : [{}], length : {}", Arrays.toString(detailTable), detailTable.length);
List<Map<String, String>> updateList = new ArrayList<>();
if (detailTable.length > 0) {
for (DetailTable dt : detailTable) {
@ -49,7 +49,7 @@ public class AllowanceConfirmAction implements Action {
for (Cell c : h) {
//列
String name = Util.null2String(c.getName());
log.debug("AllowanceConfirmAction key : {}, value : {}",c.getName(), c.getValue());
log.debug("AllowanceConfirmArchivingAction key : {}, value : {}",c.getName(), c.getValue());
if ("zt".equals(name)) {
itemMap.put("zt", Util.null2String(c.getValue()));
}
@ -69,7 +69,7 @@ public class AllowanceConfirmAction implements Action {
}
}
}
log.debug("AllowanceConfirmAction updateList : [{}]",updateList);
log.debug("AllowanceConfirmArchivingAction updateList : [{}]",updateList);
//遍历比较哪些津贴数据的状态改变了,并将状态发生改变的津贴数据认定为要更新出勤结果数据状态的津贴数据
String jtSql = "select id, zt from uf_jcl_kq_cqjt where id in (" + String.join(",", jtIdList) + ")";
@ -81,9 +81,9 @@ public class AllowanceConfirmAction implements Action {
updateList.forEach(f -> {
if (StringUtils.isNotBlank(f.get("jtid"))) {
String sql = "update uf_jcl_kq_cqjt" +" set "+"zt=?,bz=? where id = ?";
log.debug("AllowanceConfirmAction sql : [{}]",sql);
log.debug("AllowanceConfirmArchivingAction sql : [{}]",sql);
DbTools.update(sql, Util.null2String(f.get("zt")), Util.null2String(f.get("sm")), f.get("jtid"));
log.debug("AllowanceConfirmAction zt : {}, bz : {}, jtid : {}",Util.null2String(f.get("zt")), Util.null2String(f.get("sm")), f.get("jtid"));
log.debug("AllowanceConfirmArchivingAction zt : {}, bz : {}, jtid : {}",Util.null2String(f.get("zt")), Util.null2String(f.get("sm")), f.get("jtid"));
//收集需要更改出勤结果数据状态的人员、日期信息
if (!jtStatusMap.getOrDefault(f.get("jtid"), "").equals(Util.null2String(f.get("zt")))) {
Map<String, String> empDateItem = new HashMap<>();
@ -105,12 +105,12 @@ public class AllowanceConfirmAction implements Action {
}
} catch (Exception e) {
log.debug("流程数据报错:AllowanceConfirmAction:");
log.debug("流程数据报错:AllowanceConfirmArchivingAction:");
StringWriter errorsWriter = new StringWriter();
e.printStackTrace(new PrintWriter(errorsWriter));
log.debug(errorsWriter.toString());
requestInfo.getRequestManager().setMessageid("11111" + requestInfo.getRequestid() + "22222");
requestInfo.getRequestManager().setMessagecontent("【津贴确认action】报错请联系管理员");
requestInfo.getRequestManager().setMessagecontent("【津贴确认归档action】报错请联系管理员");
return Action.FAILURE_AND_CONTINUE;
}
return SUCCESS;

@ -33,7 +33,7 @@ public class EvctionCheckAction implements Action {
//出差人员
String ccr = mainTableData.get("ccr");
try {
Map<String,List<Map<String, String>>> detailGroupMap = detailTableData.stream().collect(Collectors.groupingBy(e->Util.null2String(e.get("bdkr"))));
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();

@ -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…
Cancel
Save