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

Merge remote-tracking branch 'origin/master'

parents 91c972d5 cfe16b69
...@@ -5,13 +5,19 @@ import java.util.ArrayList; ...@@ -5,13 +5,19 @@ import java.util.ArrayList;
import java.math.BigDecimal; import java.math.BigDecimal;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import java.util.Date; 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.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel; import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.module.attendance.model.vo.AttendanceRecordErrorVo; import com.mortals.xhx.module.attendance.model.vo.AttendanceRecordErrorVo;
import lombok.Data; import lombok.Data;
import org.springframework.beans.BeanUtils;
/** /**
* 考勤打卡记录异常信息实体对象 * 考勤打卡记录异常信息实体对象
* *
...@@ -126,16 +132,22 @@ public class AttendanceRecordErrorEntity extends AttendanceRecordErrorVo { ...@@ -126,16 +132,22 @@ public class AttendanceRecordErrorEntity extends AttendanceRecordErrorVo {
private String salaName; private String salaName;
@Override @Override
public int hashCode() { public int hashCode() {
return this.getId().hashCode(); return (this.getStaffId()+this.getProcessStatus()+this.getShiftsId()+this.getErrorDateTime().getTime()+"").hashCode();
} }
@Override @Override
public boolean equals(Object obj) { public boolean equals(Object obj) {
if (obj == null) return false; if (obj == null) return false;
if (obj instanceof AttendanceRecordErrorEntity) { if (obj instanceof AttendanceRecordErrorEntity) {
AttendanceRecordErrorEntity tmp = (AttendanceRecordErrorEntity) obj; 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 true;
} }
} }
return false; return false;
} }
...@@ -164,4 +176,36 @@ public class AttendanceRecordErrorEntity extends AttendanceRecordErrorVo { ...@@ -164,4 +176,36 @@ public class AttendanceRecordErrorEntity extends AttendanceRecordErrorVo {
this.salaId = null; this.salaId = null;
this.salaName = ""; 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 { ...@@ -35,5 +35,4 @@ public class AttendanceRecordErrorVo extends BaseEntityLong {
private Integer duration; private Integer duration;
} }
...@@ -508,6 +508,9 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract { ...@@ -508,6 +508,9 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract {
AttendanceRecordErrorQuery errorQuery; AttendanceRecordErrorQuery errorQuery;
if (!ObjectUtils.isEmpty(errorEntityList)) { if (!ObjectUtils.isEmpty(errorEntityList)) {
//过滤异常列表中存在相同的记录
errorEntityList= errorEntityList.stream().distinct().collect(Collectors.toList());
for (AttendanceRecordErrorEntity errorEntity : errorEntityList) { for (AttendanceRecordErrorEntity errorEntity : errorEntityList) {
//查看是否存在相同的异常记录,如果存在 则不添加 //查看是否存在相同的异常记录,如果存在 则不添加
errorQuery = new AttendanceRecordErrorQuery(); errorQuery = new AttendanceRecordErrorQuery();
......
...@@ -57,25 +57,12 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont ...@@ -57,25 +57,12 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont
@Autowired @Autowired
private ParamService paramService; private ParamService paramService;
@Autowired @Autowired
private AttendanceGroupService attendanceGroupService; private AttendanceGroupService attendanceGroupService;
@Autowired @Autowired
private DeptService deptService; private DeptService deptService;
@Autowired @Autowired
private AttendanceClassService attendanceClassService; private AttendanceClassService attendanceClassService;
@Autowired
private AttendanceClassDetailService classDetailService;
@Autowired
private AttendanceRecordService attendanceRecordService;
@Autowired
private AttendanceRecordDetailService attendanceRecordDetailService;
@Autowired @Autowired
private AttendanceRecordErrorService errorService; private AttendanceRecordErrorService errorService;
...@@ -105,51 +92,15 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont ...@@ -105,51 +92,15 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont
query.setProcessStatus(0); query.setProcessStatus(0);
query.setProcessResult("已撤销处理"); query.setProcessResult("已撤销处理");
errorService.update(query); 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(); return Rest.ok();
} }
@Override @Override
protected void saveBefore(AttendanceRecordErrorEntity entity, Map<String, Object> model, Context context) throws AppException { protected void saveBefore(AttendanceRecordErrorEntity entity, Map<String, Object> model, Context context) throws AppException {
for (AttendanceRecordErrorEntity recordErrorEntity : entity.getRecordErrorEntities()) { for (AttendanceRecordErrorEntity recordErrorEntity : entity.getRecordErrorEntities()) {
AttendanceRecordErrorEntity updateEntity = new AttendanceRecordErrorEntity(); AttendanceRecordErrorEntity updateEntity = new AttendanceRecordErrorEntity();
updateEntity.setId(recordErrorEntity.getId()); 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.setProcessStatus(entity.getProcessStatus());
updateEntity.setProcessResult(entity.getProcessResult()); updateEntity.setProcessResult(entity.getProcessResult());
updateEntity.setStaffId(recordErrorEntity.getStaffId()); updateEntity.setStaffId(recordErrorEntity.getStaffId());
...@@ -163,69 +114,6 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont ...@@ -163,69 +114,6 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont
this.service.update(updateEntity, getContext()); this.service.update(updateEntity, getContext());
entity.setId(recordErrorEntity.getId()); 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); super.saveBefore(entity, model, context);
} }
...@@ -242,7 +130,7 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont ...@@ -242,7 +130,7 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont
this.saveBefore(entity, model, context); this.saveBefore(entity, model, context);
if (entity.newEntity()) { if (entity.newEntity()) {
Class<AttendanceRecordErrorEntity> tClass = ReflectUtils.getClassGenricType(this.getClass(), 1); Class<AttendanceRecordErrorEntity> tClass = ReflectUtils.getClassGenricType(this.getClass(), 1);
AttendanceRecordErrorEntity initEntity = (AttendanceRecordErrorEntity) tClass.newInstance(); AttendanceRecordErrorEntity initEntity = tClass.newInstance();
initEntity.initAttrValue(); initEntity.initAttrValue();
BeanUtils.copyProperties(entity, initEntity, BeanUtil.getNullPropertyNames(entity)); BeanUtils.copyProperties(entity, initEntity, BeanUtil.getNullPropertyNames(entity));
entity = initEntity; entity = initEntity;
...@@ -258,19 +146,6 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont ...@@ -258,19 +146,6 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont
} }
this.service.save(initEntity, context); 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()); model.put("id", entity.getId());
...@@ -307,25 +182,12 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont ...@@ -307,25 +182,12 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont
query.setOrderColList(Arrays.asList(new OrderCol("errorDateTime", OrderCol.DESCENDING), new OrderCol("staffName", OrderCol.DESCENDING))); query.setOrderColList(Arrays.asList(new OrderCol("errorDateTime", OrderCol.DESCENDING), new OrderCol("staffName", OrderCol.DESCENDING)));
} else { } else {
query.getOrderColList().add(new OrderCol("errorDateTime", OrderCol.DESCENDING)); query.getOrderColList().add(new OrderCol("errorDateTime", OrderCol.DESCENDING));
// query.getOrderColList().add(new OrderCol("staffName", OrderCol.DESCENDING));
} }
} }
@Override @Override
protected void doListAfter(AttendanceRecordErrorEntity query, List<AttendanceRecordErrorEntity> list, Context context) throws AppException { 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); super.doListAfter(query, list, context);
} }
......
...@@ -37,8 +37,8 @@ POST {{baseUrl}}/attendance/record/hik/addAttendanceRecord ...@@ -37,8 +37,8 @@ POST {{baseUrl}}/attendance/record/hik/addAttendanceRecord
Content-Type: application/json Content-Type: application/json
{ {
"attendanceDateStart": "2024-05-11", "attendanceDateStart": "2024-07-19",
"attendanceDateEnd": "2024-05-11" "attendanceDateEnd": "2024-07-19"
} }
###海康考勤打卡记录计算1 ###海康考勤打卡记录计算1
...@@ -46,8 +46,8 @@ POST {{baseUrl}}/attendance/record/hik/addAttendanceRecord ...@@ -46,8 +46,8 @@ POST {{baseUrl}}/attendance/record/hik/addAttendanceRecord
Content-Type: application/json Content-Type: application/json
{ {
"attendanceDateStart": "2024-05-11", "attendanceDateStart": "2024-07-19",
"attendanceDateEnd": "2024-05-11", "attendanceDateEnd": "2024-07-19",
"staffId": 322 "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