package com.product.administration.service;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.product.administration.config.CmnConst;
import com.product.administration.config.SystemCode;
import com.product.common.lang.StringUtils;
import com.product.core.dao.BaseDao;
import com.product.core.entity.DataTableEntity;
import com.product.core.entity.FieldSetEntity;
import com.product.core.exception.BaseException;
import com.product.core.service.support.AbstractBaseService;
import com.product.core.spring.context.SpringMVCContextHolder;
import com.product.module.sys.entity.SystemUser;
/**
* 打卡记录
* Copyright PRODUCT-BASE
* @Title: PRODUCT-BASE-
* @Project: PunchRecordService
* @Date: 2021年8月9日 上午11:30:38
* @Author: 杜洪波
* @Description:
*/
@Component
public class PunchRecordService extends AbstractBaseService{
@Autowired
BaseDao baseDao;
/**
* 考勤打卡列表
* @param fse
* @return
*/
public DataTableEntity listRecordInfo(FieldSetEntity fse) throws ParseException {
DataTableEntity dt=baseDao.listTable(CmnConst.PRODUCT_OA_PUNCH_RECORD, "created_by=?", new Object[] {SpringMVCContextHolder.getCurrentUser().getUser_id()}, null, CmnConst.CREATED_UTC_DATETIME+" DESC", fse.getInteger(CmnConst.PAGESIZE), fse.getInteger(CmnConst.CPAGE));
for (int i=0;i
param1=new ArrayList<>();
param1.add(fieldSetEntity.getValue("created_by").toString());
param1.add(fieldSetEntity.getValue("punch_congfig_uuid").toString());
param1.add(fieldSetEntity.getValue("created_by").toString()+",");
//获取使用到的设置规则
StringBuilder sbPunchTime=new StringBuilder();
sbPunchTime.append(" SELECT c.* ");
sbPunchTime.append(" FROM ( ");
sbPunchTime.append(" SELECT d.* ");
sbPunchTime.append(" FROM product_oa_punch_time d ");
sbPunchTime.append(" left JOIN product_oa_punch_record b ");
sbPunchTime.append(" on d.punch_site_uuid=b.punch_congfig_uuid and d.created_by=? where d.punch_site_uuid= ? ");
sbPunchTime.append(" ) c ");
sbPunchTime.append(" where c.uuid in ( ");
sbPunchTime.append(" SELECT DISTINCT uuid ");
sbPunchTime.append(" FROM product_oa_punch_time ");
sbPunchTime.append(" where LOCATE(?, concat(attendance_object,','))>0 ");
sbPunchTime.append(" ) ");
DataTableEntity dataTableEntity = baseDao.listTable(sbPunchTime.toString(), param1.toArray());
//处理补卡的情况
List