考勤-出差、补打卡流程,流程强制退回、删除相关数据重置逻辑
parent
5f9fcd5a1d
commit
4726d6a479
@ -0,0 +1,52 @@
|
||||
package com.engine.jucailinkq.attendance.workflow.action;
|
||||
|
||||
import com.engine.jucailinkq.common.util.DbTools;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import weaver.interfaces.workflow.action.Action;
|
||||
import weaver.soa.workflow.request.RequestInfo;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 出差流程退回
|
||||
*/
|
||||
@Slf4j
|
||||
public class EvectionBackAction implements Action {
|
||||
|
||||
@Override
|
||||
public String execute(RequestInfo requestInfo) {
|
||||
String requestId = requestInfo.getRequestid();
|
||||
try {
|
||||
String sql = "select id from uf_jcl_kq_ccjl where djly = 0 and lyid = " + requestId;
|
||||
List<Map<String, Object>> ccData = DbTools.getSqlToList(sql);
|
||||
if (ccData.size() > 0) {
|
||||
List<String> ccjlIdList = ccData.stream().map(f->f.get("id").toString()).collect(Collectors.toList());
|
||||
//删除出差记录明细表
|
||||
sql = "delete from uf_jcl_kq_ccjl_dt1 where mainid in (" + String.join(",", ccjlIdList) + ")";
|
||||
boolean delSign1 = DbTools.update(sql);
|
||||
String message = "";
|
||||
if (!delSign1) {
|
||||
message = message + "删除出差记录明细表数据失败!";
|
||||
}
|
||||
//删除出差记录主表
|
||||
sql = "delete from uf_jcl_kq_ccjl where id in (" + String.join(",", ccjlIdList) + ")";
|
||||
boolean delSign2 = DbTools.update(sql);
|
||||
if (!delSign2) {
|
||||
message = message + "删除出差记录主表数据失败!";
|
||||
}
|
||||
if (!delSign1 || !delSign2) {
|
||||
log.error(message);
|
||||
requestInfo.getRequestManager().setMessageid("11111" + requestInfo.getRequestid() + "22222");
|
||||
requestInfo.getRequestManager().setMessagecontent(message);
|
||||
return Action.FAILURE_AND_CONTINUE;
|
||||
}
|
||||
}
|
||||
}catch (Exception e){
|
||||
log.error("EvctionBackAction error : [{}]", e.getMessage());
|
||||
return Action.FAILURE_AND_CONTINUE;
|
||||
}
|
||||
return Action.SUCCESS;
|
||||
}
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
package com.engine.jucailinkq.attendance.workflow.action;
|
||||
|
||||
import com.engine.jucailinkq.common.util.DbTools;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import weaver.interfaces.workflow.action.Action;
|
||||
import weaver.soa.workflow.request.RequestInfo;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 补打卡退回action
|
||||
*/
|
||||
@Slf4j
|
||||
public class MakeUpClockInBackAction implements Action {
|
||||
|
||||
@Override
|
||||
public String execute(RequestInfo requestInfo) {
|
||||
|
||||
String requestId = requestInfo.getRequestid();
|
||||
try {
|
||||
String sql = "select id from uf_jcl_kq_bdkjl where sjly = 0 and lcid = " + requestId;
|
||||
List<Map<String, Object>> bdkData = DbTools.getSqlToList(sql);
|
||||
if (bdkData.size() > 0) {
|
||||
List<String> bdkjlIdList = bdkData.stream().map(f->f.get("id").toString()).collect(Collectors.toList());
|
||||
//删除出差记录主表
|
||||
sql = "delete from uf_jcl_kq_bdkjl where id in (" + String.join(",", bdkjlIdList) + ")";
|
||||
boolean delSign = DbTools.update(sql);
|
||||
String message = "";
|
||||
if (!delSign) {
|
||||
message = message + "删除补打卡记录表数据失败!";
|
||||
log.error(message);
|
||||
requestInfo.getRequestManager().setMessageid("11111" + requestInfo.getRequestid() + "22222");
|
||||
requestInfo.getRequestManager().setMessagecontent(message);
|
||||
return Action.FAILURE_AND_CONTINUE;
|
||||
}
|
||||
}
|
||||
}catch (Exception e){
|
||||
log.error("MakeUpClockInBackAction : [{}]", e.getMessage());
|
||||
}
|
||||
return Action.SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,100 @@
|
||||
package com.engine.jucailinkq.attendance.workflow.proxy.tactics;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.engine.jucailinkq.attendance.workflow.enums.WorkFlowTypeEnum;
|
||||
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 java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 出差流程删除、退回等进行出差记录数据删除
|
||||
* @author sy
|
||||
*/
|
||||
@Slf4j
|
||||
public class EvectionDataReset implements WorkFlowHandleTacis{
|
||||
@Override
|
||||
public boolean support(String personClassfiy) {
|
||||
if (personClassfiy.equals(WorkFlowTypeEnum.EVECTION.getKey())){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reset(Map<String, Object> requestMap) {
|
||||
log.info("EvectionDataReset requestMap: [{}]",requestMap);
|
||||
String tableName = requestMap.get("lcbd").toString();
|
||||
String requestId = requestMap.get("requestId").toString();
|
||||
String operate = requestMap.get("operate").toString();
|
||||
|
||||
Map<String,Object> mainMap = null;
|
||||
List<Map<String, Object>> detailTableData = null;
|
||||
if (operate.equals("dodelete")){
|
||||
//删除流程
|
||||
String sql = "select deletetabledata from workflow_requestdeletelog where request_id=? and (isvalid is null or isvalid <> '1')";
|
||||
List<Map<String, Object>> deleteDataList = DbTools.getSqlToList(sql,requestId);
|
||||
if (deleteDataList.size() > 0){
|
||||
String deletetabledata = deleteDataList.get(0).get("deletetabledata").toString();
|
||||
Map<String, List<Map<String, Object>>> map = (Map<String, List<Map<String, Object>>>) JSONObject.parse(deletetabledata);
|
||||
mainMap = keyToLowerMap(map.get(tableName).get(0));
|
||||
detailTableData = keyToLowerList(map.get(tableName+"_dt1"));
|
||||
}
|
||||
}else {
|
||||
String sql = "select * from "+tableName+" where requestid=?";
|
||||
mainMap = DbTools.getSqlToList(sql,requestId).get(0);
|
||||
// 流程表单明细表1数据
|
||||
sql = "select * from "+tableName+"_dt1 where mainid=?";
|
||||
detailTableData = DbTools.getSqlToList(sql,mainMap.get("id"));
|
||||
}
|
||||
log.info("detailTableData : [{}]",detailTableData);
|
||||
if (mainMap == null || detailTableData == null){
|
||||
return;
|
||||
}
|
||||
try {
|
||||
//收集出差记录中流程id关联的数据
|
||||
String sql = "select id from uf_jcl_kq_ccjl where djly = 0 and lyid = " + requestId;
|
||||
List<Map<String, Object>> ccData = DbTools.getSqlToList(sql);
|
||||
if (ccData.size() > 0) {
|
||||
List<String> ccjlIdList = ccData.stream().map(f->f.get("id").toString()).collect(Collectors.toList());
|
||||
//删除出差记录明细表
|
||||
sql = "delete from uf_jcl_kq_ccjl_dt1 where mainid in (" + String.join(",", ccjlIdList) + ")";
|
||||
boolean delSign1 = DbTools.update(sql);
|
||||
String message = "";
|
||||
if (!delSign1) {
|
||||
message = message + "删除出差记录明细表数据失败!";
|
||||
}
|
||||
//删除出差记录主表
|
||||
sql = "delete from uf_jcl_kq_ccjl where id in (" + String.join(",", ccjlIdList) + ")";
|
||||
boolean delSign2 = DbTools.update(sql);
|
||||
if (!delSign2) {
|
||||
message = message + "删除出差记录主表数据失败!";
|
||||
}
|
||||
if (!delSign1 || !delSign2) {
|
||||
log.error(message);
|
||||
}
|
||||
}
|
||||
}catch (Exception e){
|
||||
log.error("EvectionDataReset error : [{}]", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public Map<String,Object> keyToLowerMap(Map<String,Object> map){
|
||||
Map<String,Object> resultMap = Maps.newHashMap();
|
||||
map.entrySet().forEach(e->{
|
||||
resultMap.put(e.getKey().toLowerCase(),e.getValue());
|
||||
});
|
||||
return resultMap;
|
||||
}
|
||||
public List<Map<String,Object>> keyToLowerList(List<Map<String,Object>> list){
|
||||
List<Map<String,Object>> resultList = Lists.newArrayList();
|
||||
for (Map<String,Object> map:list){
|
||||
resultList.add(keyToLowerMap(map));
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
}
|
@ -0,0 +1,93 @@
|
||||
package com.engine.jucailinkq.attendance.workflow.proxy.tactics;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.engine.jucailinkq.attendance.workflow.enums.WorkFlowTypeEnum;
|
||||
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.interfaces.workflow.action.Action;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 补打卡流程删除、退回等进行补打卡记录数据删除
|
||||
* @author sy
|
||||
*/
|
||||
@Slf4j
|
||||
public class MakeUpClockInDataReset implements WorkFlowHandleTacis{
|
||||
@Override
|
||||
public boolean support(String personClassfiy) {
|
||||
if (personClassfiy.equals(WorkFlowTypeEnum.CLOCK_IN.getKey())){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reset(Map<String, Object> requestMap) {
|
||||
log.info("MakeUpClockInDataReset requestMap: [{}]",requestMap);
|
||||
String tableName = requestMap.get("lcbd").toString();
|
||||
String requestId = requestMap.get("requestId").toString();
|
||||
String operate = requestMap.get("operate").toString();
|
||||
|
||||
Map<String,Object> mainMap = null;
|
||||
List<Map<String, Object>> detailTableData = null;
|
||||
if (operate.equals("dodelete")){
|
||||
//删除流程
|
||||
String sql = "select deletetabledata from workflow_requestdeletelog where request_id=? and (isvalid is null or isvalid <> '1')";
|
||||
List<Map<String, Object>> deleteDataList = DbTools.getSqlToList(sql,requestId);
|
||||
if (deleteDataList.size() > 0){
|
||||
String deletetabledata = deleteDataList.get(0).get("deletetabledata").toString();
|
||||
Map<String, List<Map<String, Object>>> map = (Map<String, List<Map<String, Object>>>) JSONObject.parse(deletetabledata);
|
||||
mainMap = keyToLowerMap(map.get(tableName).get(0));
|
||||
detailTableData = keyToLowerList(map.get(tableName+"_dt1"));
|
||||
}
|
||||
}else {
|
||||
String sql = "select * from "+tableName+" where requestid=?";
|
||||
mainMap = DbTools.getSqlToList(sql,requestId).get(0);
|
||||
// 流程表单明细表1数据
|
||||
sql = "select * from "+tableName+"_dt1 where mainid=?";
|
||||
detailTableData = DbTools.getSqlToList(sql,mainMap.get("id"));
|
||||
}
|
||||
log.info("detailTableData : [{}]",detailTableData);
|
||||
if (mainMap == null || detailTableData == null){
|
||||
return;
|
||||
}
|
||||
try {
|
||||
//收集补打卡记录中流程id关联的数据
|
||||
String sql = "select id from uf_jcl_kq_bdkjl where sjly = 0 and lcid = " + requestId;
|
||||
List<Map<String, Object>> bdkData = DbTools.getSqlToList(sql);
|
||||
if (bdkData.size() > 0) {
|
||||
List<String> bdkjlIdList = bdkData.stream().map(f->f.get("id").toString()).collect(Collectors.toList());
|
||||
//删除出差记录主表
|
||||
sql = "delete from uf_jcl_kq_bdkjl where id in (" + String.join(",", bdkjlIdList) + ")";
|
||||
boolean delSign = DbTools.update(sql);
|
||||
String message = "";
|
||||
if (!delSign) {
|
||||
message = message + "删除补打卡记录表数据失败!";
|
||||
log.error(message);
|
||||
}
|
||||
}
|
||||
}catch (Exception e){
|
||||
log.error("MakeUpClockInDataReset error : [{}]", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public Map<String,Object> keyToLowerMap(Map<String,Object> map){
|
||||
Map<String,Object> resultMap = Maps.newHashMap();
|
||||
map.entrySet().forEach(e->{
|
||||
resultMap.put(e.getKey().toLowerCase(),e.getValue());
|
||||
});
|
||||
return resultMap;
|
||||
}
|
||||
public List<Map<String,Object>> keyToLowerList(List<Map<String,Object>> list){
|
||||
List<Map<String,Object>> resultList = Lists.newArrayList();
|
||||
for (Map<String,Object> map:list){
|
||||
resultList.add(keyToLowerMap(map));
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue