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

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

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