diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/AttendanceRecordErrorEntity.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/AttendanceRecordErrorEntity.java index c5b0c416f3c6ca9c000e19fa6cb79d09f5303723..8286947aee28b5abc63df3960f9c2e69a7286a17 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/AttendanceRecordErrorEntity.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/AttendanceRecordErrorEntity.java @@ -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 diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/AttendanceRecordErrorVo.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/AttendanceRecordErrorVo.java index 402f6476fe66c1b71446f62c75ad9e128dc535cd..f9271d25557c126e57ef4ae2540d083b7560af96 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/AttendanceRecordErrorVo.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/AttendanceRecordErrorVo.java @@ -35,5 +35,4 @@ public class AttendanceRecordErrorVo extends BaseEntityLong { private Integer duration; - } diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/work/FixWorkOtherAttendance.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/work/FixWorkOtherAttendance.java index 21e7e5b10a4de116a9b2e29b3fcb30051fd6f13b..f82a170127559cd58e72a823e7cb208e5613bcb4 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/work/FixWorkOtherAttendance.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/work/FixWorkOtherAttendance.java @@ -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(); diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordErrorController.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordErrorController.java index 9298584af50728763167c4b4cb7d27442e40b4bc..fd6f4b9fd631489ab74711e0868a70ba611f2300 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordErrorController.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordErrorController.java @@ -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("姝e父")) { - 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); } diff --git a/attendance-performance-manager/src/test/java/com/mortals/httpclient/system.http b/attendance-performance-manager/src/test/java/com/mortals/httpclient/system.http index bbe0be90c9bb6ca693b156bde3785085840b48fe..be0fd5c2fe95c00b24ad07b6ff81b19af811f429 100644 --- a/attendance-performance-manager/src/test/java/com/mortals/httpclient/system.http +++ b/attendance-performance-manager/src/test/java/com/mortals/httpclient/system.http @@ -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 }