Commit b267048c authored by 赵啸非's avatar 赵啸非

添加统计异常详细信息

parent b2fd7d5c
......@@ -25,6 +25,13 @@ public interface AttendanceRecordHikService extends ICRUDService<AttendanceRecor
void addAttendanceRecordByQuery(AttendanceRecordHikEntity attendanceRecordHikQuery, Context context) throws Exception;
/**
* 根据查询条件生成打卡记录 排除节假日
* @param attendanceRecordHikQuery
*/
void addAttendanceRecordByQueryCustom(AttendanceRecordHikEntity attendanceRecordHikQuery, Context context) throws Exception;
/**
* 根据查询条件生成打卡记录
......
......@@ -13,6 +13,9 @@ import com.mortals.xhx.module.attendance.service.*;
import com.mortals.xhx.module.attendance.service.work.AttendanceWorkAbstract;
import com.mortals.xhx.module.attendance.service.work.CommonData;
import com.mortals.xhx.module.dept.service.DeptService;
import com.mortals.xhx.module.holiday.model.HolidayEntity;
import com.mortals.xhx.module.holiday.model.HolidayQuery;
import com.mortals.xhx.module.holiday.service.HolidayService;
import com.mortals.xhx.module.staff.model.StaffEntity;
import com.mortals.xhx.module.staff.model.StaffQuery;
import com.mortals.xhx.module.staff.service.StaffService;
......@@ -65,6 +68,9 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
@Autowired
private AttendanceRecordErrorService errorService;
@Autowired
private HolidayService holidayService;
@Override
public void addAttendanceRecord(AttendanceRecordHikEntity hikEntity, Context context) throws Exception {
......@@ -78,6 +84,56 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
addAttendanceOtherRecordList(hikEntityList, context);
}
@Override
public void addAttendanceRecordByQueryCustom(AttendanceRecordHikEntity attendanceRecordHikQuery, Context context) throws Exception {
List<AttendanceRecordHikEntity> hikEntityList = attendanceRecordHikService.find(attendanceRecordHikQuery);
hikEntityList=hikEntityList.stream().map(item->{
String dateStr = DateUtil.formatDate(item.getAttendanceDate());
Boolean checkWorkByHoliday = checkWorkByHoliday(dateStr);
Boolean checkHolidayByWorkDay = checkHolidayByWorkDay(dateStr);
if (!checkWorkByHoliday) {
return null;
}
if (checkHolidayByWorkDay) {
return null;
}
return item;
}).filter(f->f!=null).collect(Collectors.toList());
addAttendanceOtherRecordList(hikEntityList, context);
}
private Boolean checkWorkByHoliday(String dateStr) {
Boolean bool = false;
HolidayQuery holidayQuery = new HolidayQuery();
holidayQuery.setStartTimeStart(dateStr);
holidayQuery.setStartTimeEnd(dateStr);
HolidayEntity holidayEntity = holidayService.selectOne(holidayQuery);
if (!ObjectUtils.isEmpty(holidayEntity)) {
Integer workorholiday = holidayEntity.getWorkorholiday();
if (workorholiday == YesNoEnum.YES.getValue()) {
bool = true;
}
}
return bool;
}
private Boolean checkHolidayByWorkDay(String dateStr) {
Boolean bool = false;
HolidayQuery holidayQuery = new HolidayQuery();
holidayQuery.setStartTimeStart(dateStr);
holidayQuery.setStartTimeEnd(dateStr);
HolidayEntity holidayEntity = holidayService.selectOne(holidayQuery);
if (!ObjectUtils.isEmpty(holidayEntity)) {
Integer workorholiday = holidayEntity.getWorkorholiday();
if (workorholiday == YesNoEnum.NO.getValue()) {
bool = true;
}
}
return bool;
}
public void addAttendanceOtherRecordList(List<AttendanceRecordHikEntity> hikEntityList, Context context) throws Exception {
List<AttendanceRecordHikEntity> collect = hikEntityList.stream().sorted(Comparator.comparing(AttendanceRecordHikEntity::getAttendanceDate)).collect(Collectors.toList());
......
......@@ -159,6 +159,34 @@ public class AttendanceRecordHikController extends BaseCRUDJsonBodyMappingContro
}
@PostMapping(value = "/addAttendanceRecordCustom")
@UnAuth
public Rest<String> addAttendanceRecordCustom(@RequestBody AttendanceRecordHikEntity hikEntity) {
Rest<String> ret = new Rest();
Map<String, Object> model = new HashMap();
Context context = this.getContext();
String busiDesc = "查询" + this.getModuleDesc();
int code = 1;
try {
//排除节假日
hikService.addAttendanceRecordByQuery(hikEntity, getContext());
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception e) {
code = -1;
this.doException(this.request, busiDesc, model, e);
model.put("message_info", e.getMessage());
}
this.init(model, context);
ret.setCode(code);
ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString());
return ret;
}
@Override
protected void doListBefore(AttendanceRecordHikEntity query, Map<String, Object> model, Context context) throws AppException {
if (query.getStaffName() != null && !query.getStaffName().equals("")) {
......
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