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

Merge remote-tracking branch 'origin/master'

parents 91c972d5 cfe16b69
......@@ -5,13 +5,19 @@ import java.util.ArrayList;
import java.math.BigDecimal;
import cn.hutool.core.date.DateUtil;
import java.util.Date;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.module.attendance.model.vo.AttendanceRecordErrorVo;
import lombok.Data;
import org.springframework.beans.BeanUtils;
/**
* 考勤打卡记录异常信息实体对象
*
......@@ -126,16 +132,22 @@ public class AttendanceRecordErrorEntity extends AttendanceRecordErrorVo {
private String salaName;
@Override
public int hashCode() {
return this.getId().hashCode();
return (this.getStaffId()+this.getProcessStatus()+this.getShiftsId()+this.getErrorDateTime().getTime()+"").hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof AttendanceRecordErrorEntity) {
AttendanceRecordErrorEntity tmp = (AttendanceRecordErrorEntity) obj;
if (this.getId() == tmp.getId()) {
/* if (this.getId() == tmp.getId()) {
return true;
}*/
if(this.getStaffId()==tmp.getStaffId()&&this.getProcessStatus()==tmp.getErrorStatus()
&&this.getShiftsId()==tmp.getShiftsId()&&this.getErrorDateTime().getTime()==tmp.getErrorDateTime().getTime()){
return true;
}
}
return false;
}
......@@ -164,4 +176,36 @@ public class AttendanceRecordErrorEntity extends AttendanceRecordErrorVo {
this.salaId = null;
this.salaName = "";
}
public static void main(String[] args) {
List<AttendanceRecordErrorEntity> list = new ArrayList<>();
AttendanceRecordErrorEntity entity = new AttendanceRecordErrorEntity();
entity.initAttrValue();
entity.setStaffId(47L);
entity.setProcessStatus(0);
entity.setShiftsId(20L);
entity.setErrorDateTime(DateUtil.parseDateTime("2024-07-12 12:00:00"));
list.add(entity);
AttendanceRecordErrorEntity entity1 = new AttendanceRecordErrorEntity();
BeanUtils.copyProperties(entity,entity1);
entity1.setShiftsId(21L);
// entity1.setErrorDateTime(DateUtil.parseDateTime("2024-07-12 12:00:01"));
list.add(entity1);
System.out.println(JSONObject.toJSONString(list));
List<AttendanceRecordErrorEntity> collect = list.stream().distinct().collect(Collectors.toList());
System.out.println("去重后");
System.out.println(JSON.toJSONString(collect));
}
}
\ No newline at end of file
......@@ -35,5 +35,4 @@ public class AttendanceRecordErrorVo extends BaseEntityLong {
private Integer duration;
}
......@@ -508,6 +508,9 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract {
AttendanceRecordErrorQuery errorQuery;
if (!ObjectUtils.isEmpty(errorEntityList)) {
//过滤异常列表中存在相同的记录
errorEntityList= errorEntityList.stream().distinct().collect(Collectors.toList());
for (AttendanceRecordErrorEntity errorEntity : errorEntityList) {
//查看是否存在相同的异常记录,如果存在 则不添加
errorQuery = new AttendanceRecordErrorQuery();
......
......@@ -57,25 +57,12 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont
@Autowired
private ParamService paramService;
@Autowired
private AttendanceGroupService attendanceGroupService;
@Autowired
private DeptService deptService;
@Autowired
private AttendanceClassService attendanceClassService;
@Autowired
private AttendanceClassDetailService classDetailService;
@Autowired
private AttendanceRecordService attendanceRecordService;
@Autowired
private AttendanceRecordDetailService attendanceRecordDetailService;
@Autowired
private AttendanceRecordErrorService errorService;
......@@ -105,51 +92,15 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont
query.setProcessStatus(0);
query.setProcessResult("已撤销处理");
errorService.update(query);
/* DateUtils.convertTime2Str(query.getErrorDateTime().getTime(), DateUtils.P_yyyy_MM_dd);
AttendanceRecordQuery attendanceRecordQuery = new AttendanceRecordQuery();
attendanceRecordQuery.setStaffId(query.getStaffId());
attendanceRecordQuery.setAttendanceDateStart(DateUtils.convertTime2Str(query.getErrorDateTime().getTime(), DateUtils.P_yyyy_MM_dd));
attendanceRecordQuery.setAttendanceDateEnd(DateUtils.convertTime2Str(query.getErrorDateTime().getTime(), DateUtils.P_yyyy_MM_dd));
AttendanceRecordEntity attendanceRecordEntity = attendanceRecordService.selectOne(attendanceRecordQuery);
AttendanceRecordDetailQuery detailQuery = new AttendanceRecordDetailQuery();
detailQuery.setRecordId(attendanceRecordEntity.getId());
detailQuery.setShiftsId(query.getShiftsId());
List<AttendanceRecordDetailEntity> attendanceRecordDetailEntity = attendanceRecordDetailService.find(detailQuery);
for (AttendanceRecordDetailEntity recordDetailEntity : attendanceRecordDetailEntity) {
if (query.getGoOrOff().equals("上班")) {
if (query.getErrorStatus() == 0) {
recordDetailEntity.setGoWorkResult(3);
}
if (query.getErrorStatus() == 2) {
recordDetailEntity.setGoWorkResult(4);
}
}
if (query.getGoOrOff().equals("下班")) {
if (query.getErrorStatus() == 0) {
recordDetailEntity.setOffWorkResult(3);
}
if (query.getErrorStatus() == 1) {
recordDetailEntity.setOffWorkResult(5);
}
}
}*/
return Rest.ok();
}
@Override
protected void saveBefore(AttendanceRecordErrorEntity entity, Map<String, Object> model, Context context) throws AppException {
for (AttendanceRecordErrorEntity recordErrorEntity : entity.getRecordErrorEntities()) {
AttendanceRecordErrorEntity updateEntity = new AttendanceRecordErrorEntity();
updateEntity.setId(recordErrorEntity.getId());
/* updateEntity.setAttendanceGroupId(recordErrorEntity.getAttendanceGroupId());
updateEntity.setAttendanceGroupName(recordErrorEntity.getAttendanceGroupName());
updateEntity.setErrorDateTime(recordErrorEntity.getErrorDateTime());
updateEntity.setGoOffDateTime(recordErrorEntity.getGoOffDateTime());*/
updateEntity.setProcessStatus(entity.getProcessStatus());
updateEntity.setProcessResult(entity.getProcessResult());
updateEntity.setStaffId(recordErrorEntity.getStaffId());
......@@ -163,69 +114,6 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont
this.service.update(updateEntity, getContext());
entity.setId(recordErrorEntity.getId());
}
/* for (AttendanceRecordErrorEntity item : entity.getRecordErrorEntities()) {
DateUtils.convertTime2Str(item.getErrorDateTime().getTime(), DateUtils.P_yyyy_MM_dd);
AttendanceRecordQuery attendanceRecordQuery = new AttendanceRecordQuery();
attendanceRecordQuery.setStaffId(item.getStaffId());
attendanceRecordQuery.setAttendanceDateStart(DateUtils.convertTime2Str(item.getErrorDateTime().getTime(), DateUtils.P_yyyy_MM_dd));
attendanceRecordQuery.setAttendanceDateEnd(DateUtils.convertTime2Str(item.getErrorDateTime().getTime(), DateUtils.P_yyyy_MM_dd));
AttendanceRecordEntity attendanceRecordEntity = attendanceRecordService.selectOne(attendanceRecordQuery);
AttendanceRecordDetailQuery detailQuery = new AttendanceRecordDetailQuery();
detailQuery.setRecordId(attendanceRecordEntity.getId());
detailQuery.setShiftsId(item.getShiftsId());
List<AttendanceRecordDetailEntity> attendanceRecordDetailEntity = attendanceRecordDetailService.find(detailQuery);
for (AttendanceRecordDetailEntity recordDetailEntity : attendanceRecordDetailEntity) {
Date goWorkDate = recordDetailEntity.getGoWorkDate();
Date offWorkDate = recordDetailEntity.getOffWorkDate();
if (item.getProcessResult().contains("正常")) {
if (!ObjectUtils.isEmpty(goWorkDate)) {
if (goWorkDate.getTime() == item.getGoOffDateTime().getTime()) {
recordDetailEntity.setGoWorkResult(1);
}
} else {
if (item.getGoOrOff().equals("上班")) {
recordDetailEntity.setGoWorkResult(1);
}
}
if (!ObjectUtils.isEmpty(offWorkDate)) {
if (offWorkDate.getTime() == item.getGoOffDateTime().getTime()) {
recordDetailEntity.setOffWorkResult(1);
}
} else {
if (item.getGoOrOff().equals("")) {
recordDetailEntity.setOffWorkResult(1);
}
}
}
if (item.getProcessResult().contains("早退")) {
if (!ObjectUtils.isEmpty(offWorkDate)) {
if (offWorkDate.getTime() == item.getGoOffDateTime().getTime()) {
recordDetailEntity.setOffWorkResult(5);
}
} else {
if (item.getGoOrOff().equals("下班")) {
recordDetailEntity.setOffWorkResult(5);
}
}
}
if (item.getProcessResult().contains("迟到")) {
if (!ObjectUtils.isEmpty(goWorkDate)) {
if (goWorkDate.getTime() == item.getGoOffDateTime().getTime()) {
recordDetailEntity.setGoWorkResult(4);
}
} else {
if (item.getGoOrOff().equals("上班")) {
recordDetailEntity.setGoWorkResult(4);
}
}
}
attendanceRecordDetailService.update(recordDetailEntity);
}
}*/
super.saveBefore(entity, model, context);
}
......@@ -242,7 +130,7 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont
this.saveBefore(entity, model, context);
if (entity.newEntity()) {
Class<AttendanceRecordErrorEntity> tClass = ReflectUtils.getClassGenricType(this.getClass(), 1);
AttendanceRecordErrorEntity initEntity = (AttendanceRecordErrorEntity) tClass.newInstance();
AttendanceRecordErrorEntity initEntity = tClass.newInstance();
initEntity.initAttrValue();
BeanUtils.copyProperties(entity, initEntity, BeanUtil.getNullPropertyNames(entity));
entity = initEntity;
......@@ -258,19 +146,6 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont
}
this.service.save(initEntity, context);
} else {
// busiDesc = "修改" + this.getModuleDesc();
// entity.setUpdateTime(new Date());
// IUser user = this.getCurUser();
// if (user != null) {
// entity.setUpdateUserId(user.getId());
// entity.setUpdateUser(user.getLoginName());
// entity.setUpdateUserName(user.getRealName());
// entity.setUpdateUserDeptId(user.getDeptId());
// entity.setUpdateUserDeptName(user.getDeptName());
// }
//this.service.update(entity, context);
}
model.put("id", entity.getId());
......@@ -307,25 +182,12 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont
query.setOrderColList(Arrays.asList(new OrderCol("errorDateTime", OrderCol.DESCENDING), new OrderCol("staffName", OrderCol.DESCENDING)));
} else {
query.getOrderColList().add(new OrderCol("errorDateTime", OrderCol.DESCENDING));
// query.getOrderColList().add(new OrderCol("staffName", OrderCol.DESCENDING));
}
}
@Override
protected void doListAfter(AttendanceRecordErrorEntity query, List<AttendanceRecordErrorEntity> list, Context context) throws AppException {
/* for (AttendanceRecordErrorEntity errorEntity : list) {
Long shiftsId = errorEntity.getShiftsId();
AttendanceClassDetailEntity attendanceClassDetailEntity = classDetailService.selectOne(new AttendanceClassDetailQuery().id(shiftsId));
if (!ObjectUtils.isEmpty(attendanceClassDetailEntity)) {
if (errorEntity.getGoOffDateTime().getTime() == attendanceClassDetailEntity.getGoWorkDate().getTime()) {
errorEntity.setGoOrOff("上班");
}
if (errorEntity.getGoOffDateTime().getTime() == attendanceClassDetailEntity.getOffWorkDate().getTime()) {
errorEntity.setGoOrOff("下班");
}
}
}*/
super.doListAfter(query, list, context);
}
......
......@@ -37,8 +37,8 @@ POST {{baseUrl}}/attendance/record/hik/addAttendanceRecord
Content-Type: application/json
{
"attendanceDateStart": "2024-05-11",
"attendanceDateEnd": "2024-05-11"
"attendanceDateStart": "2024-07-19",
"attendanceDateEnd": "2024-07-19"
}
###海康考勤打卡记录计算1
......@@ -46,8 +46,8 @@ POST {{baseUrl}}/attendance/record/hik/addAttendanceRecord
Content-Type: application/json
{
"attendanceDateStart": "2024-05-11",
"attendanceDateEnd": "2024-05-11",
"attendanceDateStart": "2024-07-19",
"attendanceDateEnd": "2024-07-19",
"staffId": 322
}
......
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