考勤-加班计划流程,退回action、删除流程附加加班计划和加班结果删除逻辑

main
sy 8 months ago
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;
}
}

@ -329,7 +329,7 @@ public class OvertimePlanCheckAction implements Action {
}
/**
*
*
*/
public List<Map<String, Object>> getWorkOverTimeResults(String startDate,String endDate,String userId){
String sql = "select a.sjjbsc, a.sjksrq, a.sjjsrq, a.jbjhid, a.jblx, b.hsdw from uf_jcl_kq_jbjg a left join uf_jcl_kq_kqxm b on a.jblx = b.id where a.zt != 2 and a.jbry=? and a.sjksrq>=? and a.sjjsrq<=?";

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