generated from dxfeng/secondev_zjzlt
考勤汇总报表 二开暂存
This commit is contained in:
parent
fe2d0322dd
commit
3f9fd19504
|
|
@ -49,8 +49,8 @@ public class AttendanceSchedulingController {
|
|||
}
|
||||
|
||||
@PostMapping("/createSummaryApprovalFlow")
|
||||
private WeaResult<WfcRequestOperationResultDto> createSummaryApprovalFlow(@RequestBody Map<String, String> params) throws UnsupportedEncodingException {
|
||||
return attendanceSchedulingService.createSummaryApprovalFlow(params);
|
||||
private WeaResult<WfcRequestOperationResultDto> createSummaryApprovalFlow(@RequestHeader Map<String, String> header,@RequestBody Map<String, String> params) throws UnsupportedEncodingException {
|
||||
return attendanceSchedulingService.createSummaryApprovalFlow(header,params);
|
||||
}
|
||||
|
||||
@PostMapping("/updateAttendStatus")
|
||||
|
|
|
|||
|
|
@ -0,0 +1,14 @@
|
|||
package com.weaver.seconddev.attend.entity.po;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2025/06/24
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
public class ShiftStatistics {
|
||||
private String id;
|
||||
private String name;
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
package com.weaver.seconddev.attend.hook;
|
||||
|
||||
import com.weaver.loom.api.enums.WeaHookModuleInfo;
|
||||
import com.weaver.loom.context.annotation.WeaHook;
|
||||
import com.weaver.loom.context.annotation.WeaHookDef;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2025/06/25
|
||||
* @version: 1.0
|
||||
*/
|
||||
@WeaHookDef(moduleInfo = WeaHookModuleInfo.ATTEND)
|
||||
public class AttendSecHookEvent {
|
||||
@WeaHook(code = "ATTEND_CUSTOM_HOOK_001",owner = "attend",desc = "ATTEND_CUSTOM_HOOK_001" ,descLabelId = 0L)
|
||||
private final static String ATTEND_CUSTOM_HOOK_001 = "ATTEND_CUSTOM_HOOK_001";
|
||||
@WeaHook(code = "ATTEND_CUSTOM_HOOK_002",owner = "attend",desc = "ATTEND_CUSTOM_HOOK_002" ,descLabelId = 0L)
|
||||
private final static String ATTEND_CUSTOM_HOOK_002 = "ATTEND_CUSTOM_HOOK_002";
|
||||
@WeaHook(code = "ATTEND_CUSTOM_HOOK_003",owner = "attend",desc = "ATTEND_CUSTOM_HOOK_003" ,descLabelId = 0L)
|
||||
private final static String ATTEND_CUSTOM_HOOK_003 = "ATTEND_CUSTOM_HOOK_003";
|
||||
@WeaHook(code = "ATTEND_CUSTOM_HOOK_004",owner = "attend",desc = "ATTEND_CUSTOM_HOOK_004" ,descLabelId = 0L)
|
||||
private final static String ATTEND_CUSTOM_HOOK_004 = "ATTEND_CUSTOM_HOOK_004";
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
package com.weaver.seconddev.attend.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.weaver.seconddev.attend.entity.po.ShiftStatistics;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2025/06/24
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Mapper
|
||||
public interface ShiftStatisticMapper extends BaseMapper<ShiftStatistics> {
|
||||
|
||||
ShiftStatistics getShiftStatistics(@Param("tenantKey") String tenantKey,@Param("targetId") Long targetId,@Param("attendDate") String attendDate);
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -28,7 +28,7 @@ public interface AttendanceSchedulingService {
|
|||
String saveSheet(Map<String, String> header,Map<String, Object> body);
|
||||
|
||||
|
||||
WeaResult<WfcRequestOperationResultDto> createSummaryApprovalFlow(Map<String, String> params) throws UnsupportedEncodingException;
|
||||
WeaResult<WfcRequestOperationResultDto> createSummaryApprovalFlow(Map<String, String> header,Map<String, String> params) throws UnsupportedEncodingException;
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ import com.weaver.common.form.dto.data.FormDataDtoParam;
|
|||
import com.weaver.common.form.dto.data.FormDataOptionDto;
|
||||
import com.weaver.common.form.metadata.ModuleSource;
|
||||
import com.weaver.common.hrm.dao.HrmCommonEmployeeDao;
|
||||
import com.weaver.datasecurity.util.DateUtil;
|
||||
import com.weaver.framework.rpc.annotation.RpcReference;
|
||||
import com.weaver.seconddev.attend.entity.param.SummaryApprovalParam;
|
||||
import com.weaver.seconddev.attend.entity.po.SchedulingStatusPo;
|
||||
|
|
@ -505,11 +506,20 @@ public class AttendanceSchedulingServiceImpl implements AttendanceSchedulingServ
|
|||
}
|
||||
|
||||
@Override
|
||||
public WeaResult<WfcRequestOperationResultDto> createSummaryApprovalFlow(Map<String, String> params) throws UnsupportedEncodingException {
|
||||
public WeaResult<WfcRequestOperationResultDto> createSummaryApprovalFlow(Map<String, String> header, Map<String, String> params) throws UnsupportedEncodingException {
|
||||
String workflowId = params.get("workflowId");
|
||||
String formId = params.get("formId");
|
||||
String detailData = params.get("detailData");
|
||||
String month = params.get("month");
|
||||
// 该月份的最后一天
|
||||
String firstDayOfMonth = month + "-01";
|
||||
String lastDayOfMonth = DateUtil.getLastDayOfMonth(firstDayOfMonth);
|
||||
|
||||
String origin = header.get("origin");
|
||||
String realUrl = String.valueOf(params.get("realUrl"));
|
||||
String url = origin + realUrl;
|
||||
log.error("url===" + url);
|
||||
|
||||
|
||||
WfcRequestOperateParamDataEntity wfcRequestOperateParamDataEntity = new WfcRequestOperateParamDataEntity();
|
||||
wfcRequestOperateParamDataEntity.setWorkflowId(Long.parseLong(workflowId));
|
||||
|
|
@ -573,6 +583,42 @@ public class AttendanceSchedulingServiceImpl implements AttendanceSchedulingServ
|
|||
summaryApprovalParams.add(new SummaryApprovalParam("未签到次数", "wqdcs", 1144950543713460227L, "absenseNumOfMonth"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("未签退次数", "wqtcs", 1144950543713460228L, "unSignOutNumOfMonth"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("未打卡次数", "wdkcs", 1144950818599755777L, "unSignNum"));
|
||||
//TODO 班次统计
|
||||
|
||||
|
||||
// 每日统计数据
|
||||
List<SummaryApprovalParam> daysApprovalParams = new ArrayList<>();
|
||||
daysApprovalParams.add(new SummaryApprovalParam("1", "fhlijij", 1149047126405562370L, "week0"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("2", "fm1g5yo", 1149047126405562371L, "week1"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("3", "f73udpv", 1149047126405562372L, "week2"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("4", "fg0dh8k", 1149047126405562373L, "week3"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("5", "fl1tf66", 1149047126405562374L, "week4"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("6", "fcmjzu8", 1149047130583089152L, "week5"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("7", "f8xfoy5", 1149047130583089153L, "week6"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("8", "fsgffnx", 1149047130583089154L, "week7"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("9", "f376xdt", 1149047130583089155L, "week8"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("10", "fe8big9", 1149047130583089156L, "week9"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("11", "fqa461f", 1149047134936776704L, "week10"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("12", "frbyuxd", 1149047134936776705L, "week11"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("13", "fiomojc", 1149047134936776706L, "week12"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("14", "fmtp80q", 1149047134936776707L, "week13"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("15", "fuv82an", 1149047134936776708L, "week14"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("16", "fowflx1", 1149047199503892481L, "week15"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("17", "fvcwt2b", 1149047199503892482L, "week16"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("18", "fvfs6t3", 1149047199503892483L, "week17"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("19", "f3705rp", 1149047199503892484L, "week18"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("20", "fzgrlhe", 1149047199503892485L, "week19"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("21", "fnz5psm", 1149047229459611651L, "week20"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("22", "f7yp3y9", 1149047229459611652L, "week21"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("23", "f5ykr53", 1149047229459611653L, "week22"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("24", "fkh3rim", 1149047229459611654L, "week23"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("25", "fqqlv6h", 1149047229459611655L, "week24"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("26", "flj98m9", 1149047272509947904L, "week25"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("27", "fibgwfm", 1149047272509947905L, "week26"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("28", "fc2ryya", 1149047272509947906L, "week27"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("29", "fwchanv", 1149047272509947907L, "week28"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("30", "fvcdy8x", 1149047272509947908L, "week29"));
|
||||
daysApprovalParams.add(new SummaryApprovalParam("31", "f5c8acn", 1149047276637143040L, "week30"));
|
||||
|
||||
|
||||
//表单字段集合
|
||||
|
|
@ -606,6 +652,59 @@ public class AttendanceSchedulingServiceImpl implements AttendanceSchedulingServ
|
|||
formDataDetailDtos.add(detailDto);
|
||||
}
|
||||
|
||||
Long empId = detailRow.getLong("empId");
|
||||
// 处理每日统计数据
|
||||
// 构建请求参数
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("beginDate", firstDayOfMonth);
|
||||
jsonObject.put("endDate", lastDayOfMonth);
|
||||
jsonObject.put("keyword", "");
|
||||
jsonObject.put("rules", new ArrayList<>());
|
||||
jsonObject.put("current", 1);
|
||||
jsonObject.put("pageSize", 10);
|
||||
jsonObject.put("resourceType", Collections.singletonList("1"));
|
||||
jsonObject.put("searchAndOr", "");
|
||||
jsonObject.put("showAddTime", false);
|
||||
jsonObject.put("shiftGroup", false);
|
||||
jsonObject.put("abnormalLength", false);
|
||||
jsonObject.put("otherParams", new JSONObject());
|
||||
jsonObject.put("deptScope", new ArrayList<>());
|
||||
jsonObject.put("resourceScope", new ArrayList<>());
|
||||
jsonObject.put("rulebrowsers", new ArrayList<>());
|
||||
Map<Object, Object> resourceMap = new HashMap<>();
|
||||
resourceMap.put("id", empId.toString());
|
||||
jsonObject.put("resource", Collections.singletonList(resourceMap));
|
||||
jsonObject.put("hrmStatus", Arrays.asList("1", "2", "3", "4", "5"));
|
||||
jsonObject.put("empId", empId);
|
||||
log.error("jsonObject==" + jsonObject);
|
||||
|
||||
String resultStr = HttpRequest.post(url).headerMap(header, true).body(jsonObject.toJSONString()).execute().body();
|
||||
JSONObject resultObject = JSONObject.parseObject(resultStr);
|
||||
log.error("resultObject===" + resultObject);
|
||||
if (resultObject.getBoolean("status") && 200 == resultObject.getIntValue("code")) {
|
||||
JSONObject data = resultObject.getJSONObject("data");
|
||||
if (data != null) {
|
||||
JSONArray datas = data.getJSONArray("datas");
|
||||
if (datas.size() > 0) {
|
||||
JSONObject dataObj = datas.getJSONObject(0);
|
||||
// 遍历每日统计数据
|
||||
for (SummaryApprovalParam daysApprovalParam : daysApprovalParams) {
|
||||
String content = dataObj.getString(daysApprovalParam.getRowKey());
|
||||
if (StringUtils.isBlank(content)) {
|
||||
// 如果为空,置为null
|
||||
content = "";
|
||||
}
|
||||
FormDataDetailDto detailDto = new FormDataDetailDto();
|
||||
detailDto.setFieldId(daysApprovalParam.getFieldId());
|
||||
detailDto.setDataIndex((long) rowNum);
|
||||
detailDto.setContent(content);
|
||||
formDataDetailDtos.add(detailDto);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
log.error("formDataDetailDtos==" + JSON.toJSONString(formDataDetailDtos));
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,71 @@
|
|||
package com.weaver.seconddev.attend.summary;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.google.common.collect.HashBasedTable;
|
||||
import com.google.common.collect.Table;
|
||||
import com.weaver.loom.context.annotation.WeaHookReg;
|
||||
import com.weaver.loom.context.domain.AppInfo;
|
||||
import com.weaver.loom.context.domain.WeaHookRequest;
|
||||
import com.weaver.loom.context.domain.WeaHookResponse;
|
||||
import com.weaver.loom.context.register.RegHookEvent;
|
||||
import com.weaver.seconddev.attend.entity.po.ShiftStatistics;
|
||||
import com.weaver.seconddev.attend.mapper.ShiftStatisticMapper;
|
||||
import com.weaver.workflow.common.entity.org.WeaUser;
|
||||
import com.weaver.workflow.common.util.OrgUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2025/06/24
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Slf4j
|
||||
@WeaHookReg(code = "ATTEND_CUSTOM_HOOK_001", order = 0)
|
||||
public class AttendCustomHook001 extends RegHookEvent {
|
||||
|
||||
@Autowired
|
||||
ShiftStatisticMapper shiftStatisticMapper;
|
||||
|
||||
@Override
|
||||
public WeaHookResponse handle(WeaHookRequest request, WeaHookResponse response, AppInfo appInfo) {
|
||||
//入参,修改入参并不会影响到埋点的原始数据
|
||||
Map<String, Object> params = request.getParams();
|
||||
String attendDate = String.valueOf(params.get("attendDate"));
|
||||
log.error("ATTEND_CUSTOM_HOOK_001获取入参,params==" + JSON.toJSONString(params));
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
Date newD = new Date(attendDate);
|
||||
String kqdate = sdf.format(newD);
|
||||
List empIdsList = (List) params.get("empIds");
|
||||
Table<Long, Long, Double> result = HashBasedTable.create();
|
||||
for (int i = 0, n = empIdsList.size(); i < n; i++) {
|
||||
String id = String.valueOf(empIdsList.get(i));
|
||||
WeaUser user = OrgUtil.getUser(Long.parseLong(id));
|
||||
String tenantKey = user.getTenantKey();
|
||||
log.error("tenantKey==" + tenantKey + ",id==" + id + ",kqdate==" + kqdate + ",attendDate==" + attendDate);
|
||||
ShiftStatistics shiftStatistics = shiftStatisticMapper.getShiftStatistics(tenantKey, Long.valueOf(id), kqdate);
|
||||
Double value = 0.0;
|
||||
log.error("shiftStatistics==" + JSON.toJSONString(shiftStatistics));
|
||||
if (null != shiftStatistics && "夜班".equals(shiftStatistics.getName())) {
|
||||
value = 1.0;
|
||||
}
|
||||
log.error("value==" + value);
|
||||
result.put(Long.parseLong(id), Long.parseLong(id), value);
|
||||
|
||||
}
|
||||
response.setResult(result);
|
||||
return response;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void rollBack(WeaHookRequest request, WeaHookResponse response, AppInfo appInfo) throws Exception {
|
||||
log.info("执行事件回滚机制 => {}, {}", DateUtil.now(), appInfo.getAppName());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
package com.weaver.seconddev.attend.summary;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.google.common.collect.HashBasedTable;
|
||||
import com.google.common.collect.Table;
|
||||
import com.weaver.loom.context.annotation.WeaHookReg;
|
||||
import com.weaver.loom.context.domain.AppInfo;
|
||||
import com.weaver.loom.context.domain.WeaHookRequest;
|
||||
import com.weaver.loom.context.domain.WeaHookResponse;
|
||||
import com.weaver.loom.context.register.RegHookEvent;
|
||||
import com.weaver.seconddev.attend.mapper.ShiftStatisticMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2025/06/24
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Slf4j
|
||||
@WeaHookReg(code = "ATTEND_CUSTOM_HOOK_002", order = 0)
|
||||
@Component()
|
||||
public class AttendCustomHook002 extends RegHookEvent {
|
||||
|
||||
@Autowired
|
||||
ShiftStatisticMapper shiftStatisticMapper;
|
||||
|
||||
@Override
|
||||
public WeaHookResponse handle(WeaHookRequest request, WeaHookResponse response, AppInfo appInfo) throws Exception {
|
||||
//入参,修改入参并不会影响到埋点的原始数据
|
||||
Map<String, Object> params = request.getParams();
|
||||
log.error("ATTEND_CUSTOM_HOOK_002获取入参,params==" + JSON.toJSONString(params));
|
||||
|
||||
Table<Long, Long, Double> result = HashBasedTable.create();
|
||||
log.error("result111=="+JSON.toJSONString(result));
|
||||
|
||||
result.put(1L, 1L, 1D);
|
||||
log.error("result222=="+JSON.toJSONString(result));
|
||||
response.setResult(result);
|
||||
return response;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void rollBack(WeaHookRequest request, WeaHookResponse response, AppInfo appInfo) throws Exception {
|
||||
log.error("执行事件回滚机制 => {}, {}", DateUtil.now(), appInfo.getAppName());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
package com.weaver.seconddev.attend.summary;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.google.common.collect.HashBasedTable;
|
||||
import com.google.common.collect.Table;
|
||||
import com.weaver.loom.context.annotation.WeaHookReg;
|
||||
import com.weaver.loom.context.domain.AppInfo;
|
||||
import com.weaver.loom.context.domain.WeaHookRequest;
|
||||
import com.weaver.loom.context.domain.WeaHookResponse;
|
||||
import com.weaver.loom.context.register.RegHookEvent;
|
||||
import com.weaver.seconddev.attend.entity.po.ShiftStatistics;
|
||||
import com.weaver.seconddev.attend.mapper.ShiftStatisticMapper;
|
||||
import com.weaver.workflow.common.entity.org.WeaUser;
|
||||
import com.weaver.workflow.common.util.OrgUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2025/06/24
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Slf4j
|
||||
@WeaHookReg(code = "ATTEND_CUSTOM_HOOK_003", order = 0)
|
||||
public class AttendCustomHook003 extends RegHookEvent {
|
||||
|
||||
@Autowired
|
||||
ShiftStatisticMapper shiftStatisticMapper;
|
||||
|
||||
@Override
|
||||
public WeaHookResponse handle(WeaHookRequest request, WeaHookResponse response, AppInfo appInfo) {
|
||||
//入参,修改入参并不会影响到埋点的原始数据
|
||||
Map<String, Object> params = request.getParams();
|
||||
String attendDate = String.valueOf(params.get("attendDate"));
|
||||
log.error("ATTEND_CUSTOM_HOOK_003获取入参,params==" + JSON.toJSONString(params));
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
Date newD = new Date(attendDate);
|
||||
String kqdate = sdf.format(newD);
|
||||
List empIdsList = (List) params.get("empIds");
|
||||
Table<Long, Long, Double> result = HashBasedTable.create();
|
||||
for (int i = 0, n = empIdsList.size(); i < n; i++) {
|
||||
String id = String.valueOf(empIdsList.get(i));
|
||||
WeaUser user = OrgUtil.getUser(Long.parseLong(id));
|
||||
String tenantKey = user.getTenantKey();
|
||||
log.error("tenantKey==" + tenantKey + ",id==" + id + ",kqdate==" + kqdate + ",attendDate==" + attendDate);
|
||||
ShiftStatistics shiftStatistics = shiftStatisticMapper.getShiftStatistics(tenantKey, Long.valueOf(id), kqdate);
|
||||
Double value = 0.0;
|
||||
log.error("shiftStatistics==" + JSON.toJSONString(shiftStatistics));
|
||||
if (null != shiftStatistics && "大夜".equals(shiftStatistics.getName())) {
|
||||
value = 1.0;
|
||||
}
|
||||
log.error("value==" + value);
|
||||
result.put(Long.parseLong(id), Long.parseLong(id), value);
|
||||
}
|
||||
response.setResult(result);
|
||||
return response;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void rollBack(WeaHookRequest request, WeaHookResponse response, AppInfo appInfo) throws Exception {
|
||||
log.info("执行事件回滚机制 => {}, {}", DateUtil.now(), appInfo.getAppName());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
package com.weaver.seconddev.attend.summary;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.google.common.collect.HashBasedTable;
|
||||
import com.google.common.collect.Table;
|
||||
import com.weaver.loom.context.annotation.WeaHookReg;
|
||||
import com.weaver.loom.context.domain.AppInfo;
|
||||
import com.weaver.loom.context.domain.WeaHookRequest;
|
||||
import com.weaver.loom.context.domain.WeaHookResponse;
|
||||
import com.weaver.loom.context.register.RegHookEvent;
|
||||
import com.weaver.seconddev.attend.entity.po.ShiftStatistics;
|
||||
import com.weaver.seconddev.attend.mapper.ShiftStatisticMapper;
|
||||
import com.weaver.workflow.common.entity.org.WeaUser;
|
||||
import com.weaver.workflow.common.util.OrgUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2025/06/24
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Slf4j
|
||||
@WeaHookReg(code = "ATTEND_CUSTOM_HOOK_004", order = 0)
|
||||
public class AttendCustomHook004 extends RegHookEvent {
|
||||
|
||||
@Autowired
|
||||
ShiftStatisticMapper shiftStatisticMapper;
|
||||
|
||||
@Override
|
||||
public WeaHookResponse handle(WeaHookRequest request, WeaHookResponse response, AppInfo appInfo) {
|
||||
//入参,修改入参并不会影响到埋点的原始数据
|
||||
Map<String, Object> params = request.getParams();
|
||||
String attendDate = String.valueOf(params.get("attendDate"));
|
||||
log.error("ATTEND_CUSTOM_HOOK_004获取入参,params==" + JSON.toJSONString(params));
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
Date newD = new Date(attendDate);
|
||||
String kqdate = sdf.format(newD);
|
||||
List empIdsList = (List) params.get("empIds");
|
||||
Table<Long, Long, Double> result = HashBasedTable.create();
|
||||
for (int i = 0, n = empIdsList.size(); i < n; i++) {
|
||||
String id = String.valueOf(empIdsList.get(i));
|
||||
WeaUser user = OrgUtil.getUser(Long.parseLong(id));
|
||||
String tenantKey = user.getTenantKey();
|
||||
log.error("tenantKey==" + tenantKey + ",id==" + id + ",kqdate==" + kqdate + ",attendDate==" + attendDate);
|
||||
ShiftStatistics shiftStatistics = shiftStatisticMapper.getShiftStatistics(tenantKey, Long.valueOf(id), kqdate);
|
||||
Double value = 0.0;
|
||||
log.error("shiftStatistics==" + JSON.toJSONString(shiftStatistics));
|
||||
if (null != shiftStatistics && "中班".equals(shiftStatistics.getName())) {
|
||||
value = 1.0;
|
||||
}
|
||||
log.error("value==" + value);
|
||||
result.put(Long.parseLong(id), Long.parseLong(id), value);
|
||||
}
|
||||
response.setResult(result);
|
||||
return response;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void rollBack(WeaHookRequest request, WeaHookResponse response, AppInfo appInfo) throws Exception {
|
||||
log.info("执行事件回滚机制 => {}, {}", DateUtil.now(), appInfo.getAppName());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.weaver.seconddev.attend.mapper.ShiftStatisticMapper">
|
||||
|
||||
<resultMap id="shiftStatisticsMap" type="com.weaver.seconddev.attend.entity.po.ShiftStatistics">
|
||||
<id column="shift_id" property="id"/>
|
||||
<id column="name" property="name"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="getShiftStatistics" resultMap="shiftStatisticsMap">
|
||||
select shift_id,(select name from attend_shift where id = shift_id) as name from attend_scheduling where
|
||||
range_id = #{targetId} and delete_type = 0 and
|
||||
TO_CHAR(attend_date,'yyyy-MM-dd') = #{attendDate} and tenant_key = #{tenantKey}
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue