考勤-津贴确认流程,津贴数据状态变更功能

zm_dev
sy 9 months ago
parent 30564d19ab
commit d57bd01c94

@ -0,0 +1,93 @@
package com.engine.jucailinkq.attendance.workflow.action;
import com.engine.jucailinkq.common.util.DbTools;
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.*;
/**
* @Author: sy
* @Description:
* @Date: 2024/7/25
**/
@Slf4j
public class AllowanceConfirmAction implements Action {
@Override
public String execute(RequestInfo requestInfo) {
log.debug("AllowanceConfirmAction,do action on request:" + requestInfo.getRequestid());
String requestid = requestInfo.getRequestid();
try {
// Property[] property = requestInfo.getMainTableInfo().getProperty();
// User user = requestInfo.getRequestManager().getUser();
// for (Property pro : property) {
// String name = Util.null2String(pro.getName());
// if(name.equals("cxsm")){
//
// }
// }
DetailTable[] detailTable = requestInfo.getDetailTableInfo().getDetailTable();
log.debug("AllowanceConfirmAction detailTable : [{}], length : {}", Arrays.toString(detailTable), detailTable.length);
List<Map<String, String>> updateList = new ArrayList<>();
if (detailTable.length > 0) {
for (DetailTable dt : detailTable) {
//明细表
Row[] s = dt.getRow();
for (Row r : s) {
//行
Cell[] h = r.getCell();
Map<String, String> itemMap = new HashMap<>();
for (Cell c : h) {
//列
String name = Util.null2String(c.getName());
log.debug("AllowanceConfirmAction key : {}, value : {}",c.getName(), c.getValue());
if ("zt".equals(name)) {
itemMap.put("zt", Util.null2String(c.getValue()));
}
if ("jtid".equals(name)) {
itemMap.put("jtid", Util.null2String(c.getValue()));
}
if ("sm".equals(name)) {
itemMap.put("sm", Util.null2String(c.getValue()));
}
}
log.debug("AllowanceConfirmAction itemMap : [{}]",itemMap);
updateList.add(itemMap);
}
}
}
log.debug("AllowanceConfirmAction updateList : [{}]",updateList);
if (updateList.size() > 0) {
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);
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"));
}
});
}
} catch (Exception e) {
log.debug("流程数据报错:AllowanceConfirmAction:");
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;
}
}

@ -742,34 +742,60 @@ public class AllowanceServiceImpl extends Service implements AllowanceService {
@Override @Override
public Map<String, Object> getAllowanceRecordList(Map<String, Object> params) { public Map<String, Object> getAllowanceRecordList(Map<String, Object> params) {
Map<String, Object> resultMap = new HashMap<String, Object>(); Map<String, Object> resultMap = new HashMap<String, Object>();
//获取主表id列表 resultMap.put("status", true);
String targetUserId = Util.null2String(params.get("xjr")); // 流程表单主表数据
String queryDateRange = Util.null2String(params.get("cxqj")); Map<String,String> mainTableData = (Map<String,String>)params.get("mainTableData");
String targetUserId = Util.null2String(mainTableData.get("xjr"));
String queryDateRange = Util.null2String(mainTableData.get("cxqj"));
String startDate = ""; String startDate = "";
String endDate = ""; String endDate = "";
String targetMonth = ""; String targetMonth = "";
if (queryDateRange.equals("0")) { if ("0".equals(queryDateRange)) {
//上月 //上月
targetMonth = DateUtil.beforeMonth(DateUtil.getCurrentDate()); targetMonth = DateUtil.beforeMonth(DateUtil.getCurrentDate());
} else if (queryDateRange.equals("1")) { } else if ("1".equals(queryDateRange)) {
targetMonth = DateUtil.getCurrentMonth(); targetMonth = DateUtil.getCurrentMonth();
} }
startDate = targetMonth + "-01"; startDate = targetMonth + "-01";
//结束日期只作为范围筛选不用考虑是目标月份是否存在31号 //结束日期只作为范围筛选不用考虑是目标月份是否存在31号
endDate = targetMonth + "-31"; endDate = targetMonth + "-31";
log.info("targetUserId : {}, queryDateRange : {}, startDate : {}, endDate : {}", targetUserId, queryDateRange, startDate, endDate); log.info("targetUserId : {}, queryDateRange : {}, startDate : {}, endDate : {}", targetUserId, queryDateRange, startDate, endDate);
String detailSql = "select a.id as jtid, a.rq, a.bc, a.jtlx, a.sc, a.zt , a.bz as sm, c.mc as jtlxName, d.mc as bcName, b.bcbdxx, b.cqzt, b.id as cqjg, " +
String detailSql = "select rq, bc, jtlx, sc, zt , bz as sm from uf_jcl_kq_cqjt where yg = ? and rq >= ? and rq <= ? "; "b.j1, b.c1, b.j2, b.c2, b.j3, b.c3, b.j4, b.c4, b.j5, b.c5, b.j6, b.c6, b.j7, b.c7, b.j8, b.c8 from uf_jcl_kq_cqjt a " +
"left join uf_jcl_kq_cqjg b on a.yg = b.ygid and a.rq = b.rq " +
"left join uf_jcl_kq_kqxm c on a.jtlx = c.id " +
"left join uf_jcl_kq_bcxx d on a.bc = d.id " +
"where a.yg = ? and a.rq >= ? and a.rq <= ? ";
List<Map<String, Object>> detailList = DbTools.getSqlToList(detailSql,targetUserId,startDate,endDate); List<Map<String, Object>> detailList = DbTools.getSqlToList(detailSql,targetUserId,startDate,endDate);
if (detailList.size() > 0) { if (detailList.size() > 0) {
String in = "";
String out = "";
String yxdkxx;
for (Map<String, Object> item : detailList) {
yxdkxx = "";
for (int i = 1; i <= 8; i++) {
in = Util.null2String(item.get("j" + i));
out = Util.null2String(item.get("c" + i));
yxdkxx = "".equals(in) && "".equals(out) ? yxdkxx : (yxdkxx + getHourMinuteInfo(in) + "-" + getHourMinuteInfo(out) + "|");
}
item.put("yxdkxx", yxdkxx);
item.put("cqjgSign", "0".equals(Util.null2String(item.get("cqzt"))) ? "正常" : "异常");
}
resultMap.put("data", detailList); resultMap.put("data", detailList);
} else { } else {
resultMap.put("data", null); resultMap.put("data", null);
} }
log.info("detailList : [{}]", detailList); log.info("detailList : [{}]", detailList);
return resultMap; return resultMap;
} }
//将2024-06-11 07:54:00格式数据保留时分数据0754
private String getHourMinuteInfo(String timeInfo) {
if (!"".equals(timeInfo) && timeInfo.length() >= 16) {
return timeInfo.substring(11, 16);
} else {
return "";
}
}
} }

@ -7,7 +7,9 @@ import com.engine.common.util.ParamUtil;
import com.engine.common.util.ServiceUtil; import com.engine.common.util.ServiceUtil;
import com.engine.jucailinkq.common.util.ApiReturnTools; import com.engine.jucailinkq.common.util.ApiReturnTools;
import com.engine.jucailinkq.common.util.ResponseResult; import com.engine.jucailinkq.common.util.ResponseResult;
import com.google.gson.Gson;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import weaver.general.Util;
import weaver.hrm.HrmUserVarify; import weaver.hrm.HrmUserVarify;
import weaver.hrm.User; import weaver.hrm.User;
@ -19,6 +21,7 @@ import javax.ws.rs.Path;
import javax.ws.rs.Produces; import javax.ws.rs.Produces;
import javax.ws.rs.core.Context; import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MediaType;
import java.lang.reflect.Type;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -63,6 +66,10 @@ public class AllowanceApi {
try { try {
User user = HrmUserVarify.getUser(request, response); User user = HrmUserVarify.getUser(request, response);
Map<String,Object> param = ParamUtil.request2Map(request); Map<String,Object> param = ParamUtil.request2Map(request);
String mainTableDataStr = Util.null2String(param.get("mainTableData"));
Gson gson = new Gson();
Map<String,Object> mainTableData = gson.fromJson(mainTableDataStr, (Type) Map.class);
param.put("mainTableData",mainTableData);
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getAllowanceService(user) :: getAllowanceRecordList,param); return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getAllowanceService(user) :: getAllowanceRecordList,param);
}catch (Exception e){ }catch (Exception e){
log.error("execute fail,catch error: [{}]",e); log.error("execute fail,catch error: [{}]",e);

Loading…
Cancel
Save