考勤-加班计划流程,退回action、删除流程附加加班计划和加班结果删除逻辑
parent
cc0a7f53ea
commit
b2c2f211b9
@ -0,0 +1,73 @@
|
||||
package com.engine.jucailinkq.attendance.workflow.action;
|
||||
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.jucailinkq.attendance.attendanceanalysis.service.UtilService;
|
||||
import com.engine.jucailinkq.attendance.attendanceanalysis.service.impl.UtilServiceImpl;
|
||||
import com.engine.jucailinkq.attendance.enums.*;
|
||||
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.engine.jucailinkq.common.util.Utils;
|
||||
import com.google.common.collect.Maps;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import weaver.general.TimeUtil;
|
||||
import weaver.general.Util;
|
||||
import weaver.interfaces.workflow.action.Action;
|
||||
import weaver.soa.workflow.request.RequestInfo;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 加班计划流程退回
|
||||
* @author sy
|
||||
*/
|
||||
@Slf4j
|
||||
public class OvertimePlanBackAction implements Action {
|
||||
|
||||
@Override
|
||||
public String execute(RequestInfo requestInfo) {
|
||||
String requestId = requestInfo.getRequestid();
|
||||
try {
|
||||
//收集加班计划中流程id关联的数据
|
||||
String sql = "select id from uf_jcl_kq_jbjh where lyid = " + requestId;
|
||||
List<Map<String, Object>> jbjhData = DbTools.getSqlToList(sql);
|
||||
List<String> jbjhIdList = jbjhData.stream().map(f->f.get("id").toString()).collect(Collectors.toList());
|
||||
if (jbjhIdList.size() > 0) {
|
||||
//删除加班计划明细表
|
||||
sql = "delete from uf_jcl_kq_jbjh_dt1 where mainid in (" + String.join(",",jbjhIdList) + ")";
|
||||
boolean delSign1 = DbTools.update(sql);
|
||||
String message = "";
|
||||
if (!delSign1) {
|
||||
message = message + "删除加班计划明细表数据失败!";
|
||||
}
|
||||
//删除加班计划表
|
||||
sql = "delete from uf_jcl_kq_jbjh where id in (" + String.join(",",jbjhIdList) + ")";
|
||||
boolean delSign2 = DbTools.update(sql);
|
||||
if (!delSign2) {
|
||||
message = message + "删除加班计划主表数据失败!";
|
||||
}
|
||||
//删除加班结果中加班计划转换的数据
|
||||
sql = "delete from uf_jcl_kq_jbjg where jbjhid in (" + String.join(",",jbjhIdList) + ")";
|
||||
boolean delSign3 = DbTools.update(sql);
|
||||
if (!delSign3) {
|
||||
message = message + "删除加班结果表数据失败!";
|
||||
}
|
||||
if (!delSign1 || !delSign2 || !delSign3) {
|
||||
log.error(message);
|
||||
requestInfo.getRequestManager().setMessageid("11111" + requestInfo.getRequestid() + "22222");
|
||||
requestInfo.getRequestManager().setMessagecontent(message);
|
||||
return Action.FAILURE_AND_CONTINUE;
|
||||
}
|
||||
}
|
||||
|
||||
}catch (Exception e){
|
||||
log.error("OvertimePlanBackAction error : [{}]", e.getMessage());
|
||||
return Action.FAILURE_AND_CONTINUE;
|
||||
}
|
||||
return Action.SUCCESS;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,109 @@
|
||||
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.engine.jucailinkq.common.util.Utils;
|
||||
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 java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 加班计划流程删除、退回等进行加班计划、加班结果台账数据删除
|
||||
* @author sy
|
||||
*/
|
||||
@Slf4j
|
||||
public class OvertimePlanDataReset implements WorkFlowHandleTacis{
|
||||
@Override
|
||||
public boolean support(String personClassfiy) {
|
||||
if (personClassfiy.equals(WorkFlowTypeEnum.OVERTIME_PLAN.getKey())){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reset(Map<String, Object> requestMap) {
|
||||
log.info("OvertimePlanDataReset 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_jbjh where lyid = " + requestId;
|
||||
List<Map<String, Object>> jbjhData = DbTools.getSqlToList(sql);
|
||||
List<String> jbjhIdList = jbjhData.stream().map(f->f.get("id").toString()).collect(Collectors.toList());
|
||||
if (jbjhIdList.size() > 0) {
|
||||
//删除加班计划明细表
|
||||
sql = "delete from uf_jcl_kq_jbjh_dt1 where mainid in (" + String.join(",",jbjhIdList) + ")";
|
||||
boolean delSign1 = DbTools.update(sql);
|
||||
String message = "";
|
||||
if (!delSign1) {
|
||||
message = message + "删除加班计划明细表数据失败!";
|
||||
}
|
||||
//删除加班计划表
|
||||
sql = "delete from uf_jcl_kq_jbjh where id in (" + String.join(",",jbjhIdList) + ")";
|
||||
boolean delSign2 = DbTools.update(sql);
|
||||
if (!delSign2) {
|
||||
message = message + "删除加班计划主表数据失败!";
|
||||
}
|
||||
//删除加班结果中加班计划转换的数据
|
||||
sql = "delete from uf_jcl_kq_jbjg where jbjhid in (" + String.join(",",jbjhIdList) + ")";
|
||||
boolean delSign3 = DbTools.update(sql);
|
||||
if (!delSign3) {
|
||||
message = message + "删除加班结果表数据失败!";
|
||||
}
|
||||
if (!delSign1 || !delSign2 || !delSign3) {
|
||||
log.error(message);
|
||||
}
|
||||
}
|
||||
}catch (Exception e){
|
||||
log.error("OvertimePlanDataReset 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