Commit fd96801a authored by 廖旭伟's avatar 廖旭伟

异常考勤处理增加事假处理结果。异常考勤增加导出功能

parent 291fc4da
......@@ -12,7 +12,9 @@ public enum ErrorStatusEnum {
缺卡(0, "缺卡"),
早退(1, "早退"),
迟到(2, "迟到"),
正常(3, "正常");
正常(3, "正常"),
事假半天(4, "事假半天"),
事假全天(5, "事假全天");
private Integer value;
private String desc;
......
......@@ -29,10 +29,12 @@ public class AttendanceRecordErrorEntity extends AttendanceRecordErrorVo {
/**
* 员工姓名
*/
@Excel(name = "员工姓名",sort = 1)
private String staffName;
/**
* 工号
*/
@Excel(name = "工号",sort = 2)
private String workNum;
/**
* 所属部门
......@@ -41,6 +43,7 @@ public class AttendanceRecordErrorEntity extends AttendanceRecordErrorVo {
/**
* 所属部门名称
*/
@Excel(name = "所属部门",sort = 4)
private String deptName;
/**
* 职位ID
......@@ -57,6 +60,7 @@ public class AttendanceRecordErrorEntity extends AttendanceRecordErrorVo {
/**
* 所属考勤组名称
*/
@Excel(name = "所属考勤组",sort = 5)
private String attendanceGroupName;
/**
* 班次ID
......@@ -71,18 +75,22 @@ public class AttendanceRecordErrorEntity extends AttendanceRecordErrorVo {
*/
@JsonFormat(pattern = "HH:mm")
@JSONField(format = "HH:mm")
@Excel(name = "上下班时间",sort = 9,dateFormat = "HH:mm")
private Date goOffDateTime;
/**
* 异常时间
*/
@Excel(name = "异常时间",sort = 7, width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date errorDateTime;
/**
* 实际打卡时间
*/
@Excel(name = "实际打卡时间",sort = 10, width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date actualAttendanceDateTime;
/**
* 处理时间
*/
@Excel(name = "处理时间",sort = 11, width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date operDateTime;
/**
* 处理人
......@@ -91,14 +99,17 @@ public class AttendanceRecordErrorEntity extends AttendanceRecordErrorVo {
/**
* 异常状态(0.缺卡,1.早退,2.缺卡)
*/
@Excel(name = "异常状态",sort = 6,readConverterExp = "0=缺卡,1=早退,2=迟到,3=正常,4=事假半天,5=事假全天")
private Integer errorStatus;
/**
* 处理状态(0.未处理,1.已处理)
*/
@Excel(name = "处理状态",sort = 12,readConverterExp = "0=未处理,1=已处理")
private Integer processStatus;
/**
* 处理结果
*/
@Excel(name = "处理结果",sort = 8,readConverterExp = "0=缺卡,1=早退,2=迟到,3=正常,4=事假半天,5=事假全天")
private String processResult;
/**
* 备注
......@@ -111,6 +122,7 @@ public class AttendanceRecordErrorEntity extends AttendanceRecordErrorVo {
/**
* 所属大厅名称
*/
@Excel(name = "所属大厅",sort = 3)
private String salaName;
@Override
public int hashCode() {
......
......@@ -335,6 +335,10 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At
}
} else if (ErrorStatusEnum.缺卡.getValue() == DataUtil.converStr2Int(entity.getProcessResult(), 3)) {
ruleCode = "ATTEND1007";
} else if (ErrorStatusEnum.事假半天.getValue() == DataUtil.converStr2Int(entity.getProcessResult(), 4)) {
ruleCode = "ATTEND1010";
} else if (ErrorStatusEnum.事假全天.getValue() == DataUtil.converStr2Int(entity.getProcessResult(), 5)) {
ruleCode = "ATTEND1011";
}
return ruleCode;
}
......
......@@ -111,6 +111,10 @@ public class AttendanceStatController extends BaseCRUDJsonBodyMappingController<
String busiDesc = "执行考勤汇总任务";
int code = 1;
try {
String verify = cacheService.get(SUMMARY_TASK_KEY);
if(StringUtils.isNotEmpty(verify)&&verify.equals("true")){
throw new AppException("汇总任务正在执行,请勿重复操作");
}
if (StringUtils.isNotEmpty(query.getSummaryTimeStart()) && StringUtils.isNotEmpty(query.getSummaryTimeEnd())) {
List<String> dateList = getDatesBetween(query.getSummaryTimeStart(), query.getSummaryTimeEnd());
for (String day : dateList) {
......@@ -121,7 +125,7 @@ public class AttendanceStatController extends BaseCRUDJsonBodyMappingController<
} else {
cacheService.lpush(KEY_ATTENDANCE_STAT_CACHE,query);
}
cacheService.set(SUMMARY_TASK_KEY,"true",900); //15分钟过期
model.put("message_info", "开始执行考勤汇总,请稍后查看");
} catch (Exception var9) {
code = -1;
......
......@@ -266,6 +266,12 @@ public class PerformAttendRecordServiceImpl extends AbstractCRUDServiceImpl<Perf
if (ObjectUtils.isEmpty(performAttendRecordEntity)) {
this.save(recordEntity);
} else {
if(performAttendRecordEntity.getRuleId().longValue()!=recordEntity.getRuleId().longValue()){
Long[] ids = new Long[1];
ids[0]=performAttendRecordEntity.getId();
this.remove(ids,null);
this.save(recordEntity);
}
log.info("已经存在考勤记录,无需重复添加!");
}
// this.save(recordEntity);
......
......@@ -66,6 +66,7 @@ public class StaffPerformSummaryController extends BaseCRUDJsonBodyMappingContro
@Autowired
private ICacheService cacheService;
private static String SUMMARY_TASK_KEY = "staffPerformSummaryTask:run";
public StaffPerformSummaryController() {
super.setModuleDesc("员工绩效统计");
......@@ -125,7 +126,10 @@ public class StaffPerformSummaryController extends BaseCRUDJsonBodyMappingContro
String busiDesc = "执行绩效汇总任务";
int code = 1;
try {
String verify = cacheService.get(SUMMARY_TASK_KEY);
if(StringUtils.isNotEmpty(verify)&&verify.equals("true")){
throw new AppException("汇总任务正在执行,请勿重复操作");
}
if(StringUtils.isNotEmpty(query.getCheckTimeStart())){
Date date = DateUtils.StrToDateTime(query.getCheckTimeStart());
Calendar calendar = Calendar.getInstance();
......@@ -147,8 +151,8 @@ public class StaffPerformSummaryController extends BaseCRUDJsonBodyMappingContro
condition.put("month",month);
this.service.getDao().update(staffPerformSummaryEntity,condition);
}
cacheService.lpush(KEY_CHECK_SUMMARY_CACHE,query);
cacheService.set(SUMMARY_TASK_KEY,"true",900); //15分钟过期
model.put("message_info", "开始执行绩效汇总,请稍后查看");
} catch (Exception var9) {
code = -1;
......
......@@ -1328,3 +1328,6 @@ ADD COLUMN `processTime` datetime COMMENT '处理时间' AFTER `processStat
ADD COLUMN `processPerson` varchar(128) COMMENT '处理人员' AFTER `processTime`,
ADD KEY `appealPerson` (`appealPerson`) USING BTREE;
--2024-07-08
INSERT INTO `mortals_xhx_perform_rules` (`ruleCode`, `categoryId`, `categoryName`, `name`, `content`, `subAddType`, `score`, `assoOwner`, `ownerScore`, `remark`, `type`, `createUserId`, `createTime`, `updateUserId`, `updateTime`) VALUES ('ATTEND1010', '1', '', '事假半天', '事假半天', '2', '0.5', '0', '0.00', '', '1', '1', NOW(), NULL, NULL);
INSERT INTO `mortals_xhx_perform_rules` (`ruleCode`, `categoryId`, `categoryName`, `name`, `content`, `subAddType`, `score`, `assoOwner`, `ownerScore`, `remark`, `type`, `createUserId`, `createTime`, `updateUserId`, `updateTime`) VALUES ('ATTEND1011', '1', '', '事假全天', '事假全天', '2', '1', '0', '0.00', '', '1', '1', NOW(), NULL, NULL);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment