Commit 3c13519b by dengshichuan

Merge branch 'lal' into 'develop'

Lal

See merge request 8timerv2/8timerapiv200!108
parents 05b13cbd 433374ff
package cn.timer.api.bean.kqmk;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author lal 2020-05-19
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "attendance_socks")
@ApiModel("考勤定时")
public class AttendanceSocks extends Model<AttendanceSocks> {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "id id", example = "101")
private Integer cronId;
@ApiModelProperty(value = "cron_name ", example = "cron_name")
private String cronName;
@ApiModelProperty(value = "cron ", example = "cron")
private String cron;
}
\ No newline at end of file
...@@ -91,4 +91,13 @@ public class KqglAssoDkmx extends Model<KqglAssoDkmx> { ...@@ -91,4 +91,13 @@ public class KqglAssoDkmx extends Model<KqglAssoDkmx> {
@ApiModelProperty(value = "打卡时间 打卡时间", example = "101") @ApiModelProperty(value = "打卡时间 打卡时间", example = "101")
private Long dksj; private Long dksj;
@ApiModelProperty(value = "严重迟到次数 严重迟到次数", example = "101")
private Integer yzcdcs;
@ApiModelProperty(value = "严重迟到时长(分钟) ", example = "严重迟到时长(分钟)")
private Double yzcdsc;
@ApiModelProperty(value = "旷工迟到次数 旷工迟到次数", example = "101")
private Integer kgcdfzs;
} }
\ No newline at end of file
...@@ -227,6 +227,6 @@ public class KqglAssoMonthPunchSummary extends Model<KqglAssoMonthPunchSummary> ...@@ -227,6 +227,6 @@ public class KqglAssoMonthPunchSummary extends Model<KqglAssoMonthPunchSummary>
private Integer orgCode; private Integer orgCode;
@ApiModelProperty(value = "最后修改时间 最后修改时间", example = "101") @ApiModelProperty(value = "最后修改时间 最后修改时间", example = "101")
private Integer lastModified; private Long lastModified;
} }
\ No newline at end of file
package cn.timer.api.bean.kqmk;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author lal 2020-05-19
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "kqgl_asso_relation_summary")
@ApiModel("打卡月汇总关联表")
public class KqglAssoRelationSummary extends Model<KqglAssoRelationSummary> {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "id id", example = "101")
private Integer id;
@ApiModelProperty(value = "用户id 用户id", example = "101")
private Integer userId;
@ApiModelProperty(value = "时间 ", example = "年月日")
private String appTime;
@ApiModelProperty(value = "审批id 审批id", example = "101")
private Integer approvalId;
@ApiModelProperty(value = "审批类型 1:加班 2:请假 3:出差 4:外出 5:补卡", example = "101")
private Integer approvalType;
@ApiModelProperty(value = "时长 时长", example = "101")
private double duration;
@ApiModelProperty(value="假期类型id",example="101")
private Integer leaveTypeId;
@ApiModelProperty(value="加班类型id",example="101")
private Integer overtimeTypeId;
@ApiModelProperty(value="加班补偿方式 1:转调休;2:转加班费;3:转调休或加班费",example="101")
private Integer compensateId;
}
\ No newline at end of file
package cn.timer.api.bean.kqmk;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author Tang 2020-05-19
*/
@Entity
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "kqgl_task_timing")
@ApiModel("考勤任务定时")
public class KqglTaskTiming extends Model<KqglTaskTiming> {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "id id", example = "101")
private Integer id;
@ApiModelProperty(value = "任务 ", example = "任务")
private String task;
@ApiModelProperty(value = "任务执行状态 0:未执行;1:执行中", example = "101")
private Integer executionStatus;
@ApiModelProperty(value = "最后一次执行时间 最后一次执行时间", example = "101")
private Long lastExecutionTime;
}
\ No newline at end of file
...@@ -14,40 +14,92 @@ import java.util.Locale; ...@@ -14,40 +14,92 @@ import java.util.Locale;
import java.util.Set; import java.util.Set;
/** /**
* @author Yl123 2020-05-11 * @author lal 2020-05-11
* *
*/ */
public class ClockInTool { public class ClockInTool {
static SimpleDateFormat famt = new SimpleDateFormat("yyyy-MM-dd"); static SimpleDateFormat famt = new SimpleDateFormat("yyyy-MM-dd");
/** /**
* 使用java正则表达式去掉多余的.与0 * 获取两个日期之间的所有日期
* @param s */
* @return string public static List<String> getDays(String startTime, String endTime) {
*/ // 返回的日期集合
public static String replace(String s){ List<String> days = new ArrayList<String>();
if(null != s && s.indexOf(".") > 0){ DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
s = s.replaceAll("0+?$", "");//去掉多余的0 try {
s = s.replaceAll("[.]$", "");//如最后一位是.则去掉 Date start = dateFormat.parse(startTime);
} Date end = dateFormat.parse(endTime);
return s;
} Calendar tempStart = Calendar.getInstance();
tempStart.setTime(start);
Calendar tempEnd = Calendar.getInstance();
tempEnd.setTime(end);
tempEnd.add(Calendar.DATE, +1);// 日期加1(包含结束)
while (tempStart.before(tempEnd)) {
days.add(dateFormat.format(tempStart.getTime()));
tempStart.add(Calendar.DAY_OF_YEAR, 1);
}
} catch (ParseException e) {
e.printStackTrace();
}
return days;
}
/**
* 拼接字符串
*/
public static String listToString(List<String> list) {
if (list == null) {
return null;
}
StringBuilder result = new StringBuilder();
boolean first = true;
// 第一个前面不拼接","
for (String string : list) {
if (first) {
first = false;
} else {
result.append(",");
}
result.append(string);
}
return result.toString();
}
/**
* 使用java正则表达式去掉多余的.与0
*
* @param s
* @return string
*/
public static String replace(String s) {
if (null != s && s.indexOf(".") > 0) {
s = s.replaceAll("0+?$", "");// 去掉多余的0
s = s.replaceAll("[.]$", "");// 如最后一位是.则去掉
}
return s;
}
/** /**
* 根据 年、月 获取对应的月份 的 天数 * 根据 年、月 获取对应的月份 的 天数
*/ */
public static int getDaysByYearMonth(int year, int month) public static int getDaysByYearMonth(int year, int month) {
{ Calendar a = Calendar.getInstance();
Calendar a = Calendar.getInstance(); a.set(Calendar.YEAR, year);
a.set(Calendar.YEAR, year); a.set(Calendar.MONTH, month - 1);
a.set(Calendar.MONTH, month - 1); a.set(Calendar.DATE, 1);
a.set(Calendar.DATE, 1); a.roll(Calendar.DATE, -1);
a.roll(Calendar.DATE, -1); int maxDate = a.get(Calendar.DATE);
int maxDate = a.get(Calendar.DATE); return maxDate;
return maxDate; }
}
/** /**
* 获取月份起始日期 * 获取月份起始日期
* *
...@@ -58,8 +110,7 @@ public class ClockInTool { ...@@ -58,8 +110,7 @@ public class ClockInTool {
public static String getMinMonthDate(String date) throws ParseException { public static String getMinMonthDate(String date) throws ParseException {
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
calendar.setTime(famt.parse(date)); calendar.setTime(famt.parse(date));
calendar.set(Calendar.DAY_OF_MONTH, calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
return famt.format(calendar.getTime()); return famt.format(calendar.getTime());
} }
...@@ -73,72 +124,71 @@ public class ClockInTool { ...@@ -73,72 +124,71 @@ public class ClockInTool {
public static String getMaxMonthDate(String date) throws ParseException { public static String getMaxMonthDate(String date) throws ParseException {
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
calendar.setTime(famt.parse(date)); calendar.setTime(famt.parse(date));
calendar.set(Calendar.DAY_OF_MONTH, calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
return famt.format(calendar.getTime()); return famt.format(calendar.getTime());
} }
/** /**
* 对比两个字符串数组 * 对比两个字符串数组
*
* @param t1 * @param t1
* @param t2 * @param t2
* @return * @return
*/ */
public static <T> List<T> compare(T[] t1, T[] t2) { public static <T> List<T> compare(T[] t1, T[] t2) {
List<T> list1 = Arrays.asList(t1); //将t1数组转成list数组 List<T> list1 = Arrays.asList(t1); // 将t1数组转成list数组
List<T> list2 = new ArrayList<T>();//用来存放2个数组中不相同的元素 List<T> list2 = new ArrayList<T>();// 用来存放2个数组中不相同的元素
for (T t : t2) { for (T t : t2) {
if (!list1.contains(t)) { if (!list1.contains(t)) {
list2.add(t); list2.add(t);
} }
} }
return list2; return list2;
} }
public static String[] array_unique(String[] ss) { public static String[] array_unique(String[] ss) {
Set<String> set=new HashSet<String>(Arrays.asList(ss)); Set<String> set = new HashSet<String>(Arrays.asList(ss));
return set.toArray(new String[set.size()]); return set.toArray(new String[set.size()]);
//或者return new HashSet<String>(Arrays.asList(ss)).toArray(new String[0]); // 或者return new HashSet<String>(Arrays.asList(ss)).toArray(new String[0]);
} }
public static byte[] CreateBSCommBufferFromString(String sCmdParam,byte[] bytCmd) { public static byte[] CreateBSCommBufferFromString(String sCmdParam, byte[] bytCmd) {
try{ try {
if (sCmdParam.length() == 0){ if (sCmdParam.length() == 0) {
return bytCmd; return bytCmd;
} }
byte[] bytText = sCmdParam.getBytes("UTF-8"); byte[] bytText = sCmdParam.getBytes("UTF-8");
byte[] bytTextLen = int2byte(bytText.length + 1); byte[] bytTextLen = int2byte(bytText.length + 1);
bytCmd=new byte[4 + bytText.length + 1]; bytCmd = new byte[4 + bytText.length + 1];
System.arraycopy(bytTextLen,0,bytCmd,0,bytTextLen.length); System.arraycopy(bytTextLen, 0, bytCmd, 0, bytTextLen.length);
System.arraycopy(bytText,0,bytCmd,4,bytText.length); System.arraycopy(bytText, 0, bytCmd, 4, bytText.length);
bytCmd[4 + bytText.length] = 0; bytCmd[4 + bytText.length] = 0;
return bytCmd; return bytCmd;
}catch(Exception e){ } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
bytCmd=new byte[0]; bytCmd = new byte[0];
return bytCmd; return bytCmd;
} }
} }
public static byte[] int2byte(int res) { public static byte[] int2byte(int res) {
byte[] targets = new byte[4]; byte[] targets = new byte[4];
targets[0] = (byte) (res & 0xff); targets[0] = (byte) (res & 0xff);
targets[1] = (byte) ((res >> 8) & 0xff); targets[1] = (byte) ((res >> 8) & 0xff);
targets[2] = (byte) ((res >> 16) & 0xff); targets[2] = (byte) ((res >> 16) & 0xff);
targets[3] = (byte) (res >>> 24); targets[3] = (byte) (res >>> 24);
return targets; return targets;
} }
public static byte[] ConcateByteArray(byte[] abytDest, byte[] abytSrc) { public static byte[] ConcateByteArray(byte[] abytDest, byte[] abytSrc) {
int len_dest = abytDest.length + abytSrc.length; int len_dest = abytDest.length + abytSrc.length;
if (abytSrc.length == 0) if (abytSrc.length == 0)
return abytDest; return abytDest;
byte[] bytTmp = new byte[len_dest]; byte[] bytTmp = new byte[len_dest];
System.arraycopy(abytDest, 0, bytTmp, 0, abytDest.length); System.arraycopy(abytDest, 0, bytTmp, 0, abytDest.length);
System.arraycopy(abytSrc, 0, bytTmp, abytDest.length, abytSrc.length); System.arraycopy(abytSrc, 0, bytTmp, abytDest.length, abytSrc.length);
return bytTmp; return bytTmp;
} }
public static String dateToWeek2(String datetime) { public static String dateToWeek2(String datetime) {
......
package cn.timer.api.controller.kqgl.atttimer;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import cn.timer.api.bean.kqmk.AttendanceSocks;
public class AttendanceUtil {
// 默认cron 5秒一次
private static String cron = "0/5 * * * * ?";
// 数据库cron
public static String getCron(String tablename) {
AttendanceSocks task = AttendanceSocks.builder().build().selectOne(new LambdaQueryWrapper<AttendanceSocks>().eq(AttendanceSocks::getCronName, tablename)); // 数据库查询
if (task != null && task.getCron() != null) {
cron = task.getCron();
}
return cron;
}
}
package cn.timer.api.controller.kqgl.service; package cn.timer.api.controller.kqgl.service;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import cn.timer.api.bean.kqmk.KqglAssoLeaveBalance;
import cn.timer.api.bean.kqmk.KqglAssoRelationSummary;
import cn.timer.api.bean.yggl.YgglMainEmp;
import cn.timer.api.controller.kqgl.ClockInTool;
import cn.timer.api.dao.kqmk.KqglAssoLeaveBalanceMapper;
import cn.timer.api.dto.kqmk.AttEvectionApprovalDto; import cn.timer.api.dto.kqmk.AttEvectionApprovalDto;
import cn.timer.api.dto.kqmk.AttLeaveApprovalDto; import cn.timer.api.dto.kqmk.AttLeaveApprovalDto;
import cn.timer.api.dto.kqmk.AttOvertimeApprovalDto; import cn.timer.api.dto.kqmk.AttOvertimeApprovalDto;
import cn.timer.api.dto.kqmk.AttRepairApprovalDto; import cn.timer.api.dto.kqmk.AttRepairApprovalDto;
/**
* @author lal
* 记录用户假期审批流程 对应减去剩余余额
*/
@Service @Service
public class KqglServiceImpl implements KqglService { public class KqglServiceImpl implements KqglService {
@Autowired
private KqglAssoLeaveBalanceMapper kqglassoleavebalancemapper;
/** /**
* 考勤请假审批 * 考勤请假审批
*/ */
@Override @Override
public boolean attleaveapproval(AttLeaveApprovalDto leaveappr) { public boolean attleaveapproval(AttLeaveApprovalDto leaveappr) {
String startdate = new SimpleDateFormat("yyyy-MM-dd").format(leaveappr.getStarttime());
String enddate = new SimpleDateFormat("yyyy-MM-dd").format(leaveappr.getEndtime());
String[] days=ClockInTool.listToString(ClockInTool.getDays(startdate,enddate)).split(";");
for(String num : days) {
//记入打卡月汇总关联表
KqglAssoRelationSummary.builder().userId(leaveappr.getUserid()).appTime(num).approvalId(leaveappr.getLeaveid()).approvalType(2).duration(leaveappr.getDuration())
.leaveTypeId(leaveappr.getLeavetype()).build().insert();
}
YgglMainEmp emp = YgglMainEmp.builder().build().selectOne(new QueryWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getEmpNum, leaveappr.getUserid()));
int modifynumber = 1;
KqglAssoLeaveBalance balan = kqglassoleavebalancemapper.selectOne(new QueryWrapper<KqglAssoLeaveBalance>().lambda().eq(KqglAssoLeaveBalance::getUserid, leaveappr.getUserid())
.orderByDesc(KqglAssoLeaveBalance :: getModifyNumber).last("LIMIT 1"));
if(balan != null) {
modifynumber = balan.getModifyNumber()+1;
}
KqglAssoLeaveBalance.builder().leaveRulesId(leaveappr.getLeavetype()).userid(leaveappr.getUserid()).modifyAction(2).balanceDays("-"+leaveappr.getDuration())
.reason("系统按照规则自动").modifyUserid(emp.getEmpNum()).modifyTimer(new Date().getTime()).orgCode(emp.getOrgCode()).isAutomatic(1).modifyNumber(modifynumber).build().insert();//员工假期余额
return true; return true;
} }
...@@ -24,7 +62,19 @@ public class KqglServiceImpl implements KqglService { ...@@ -24,7 +62,19 @@ public class KqglServiceImpl implements KqglService {
*/ */
@Override @Override
public boolean attovertimeapproval(AttOvertimeApprovalDto overappr) { public boolean attovertimeapproval(AttOvertimeApprovalDto overappr) {
String startdate = new SimpleDateFormat("yyyy-MM-dd").format(overappr.getStarttime());
String enddate = new SimpleDateFormat("yyyy-MM-dd").format(overappr.getEndtime());
String[] days=ClockInTool.listToString(ClockInTool.getDays(startdate,enddate)).split(";");
for(String num : days) {
//记入打卡月汇总关联表
KqglAssoRelationSummary.builder().userId(overappr.getUserid()).appTime(num).approvalId(overappr.getOvertimeid()).approvalType(1).duration(overappr.getDuration())
.overtimeTypeId(overappr.getOvertimetype()).compensateId(overappr.getCompensate()).build().insert();
}
return true; return true;
} }
...@@ -33,7 +83,23 @@ public class KqglServiceImpl implements KqglService { ...@@ -33,7 +83,23 @@ public class KqglServiceImpl implements KqglService {
*/ */
@Override @Override
public boolean attevectionapproval(AttEvectionApprovalDto evecappr) { public boolean attevectionapproval(AttEvectionApprovalDto evecappr) {
if(evecappr.getEvectiontype() == 1) { //出差
String startdate = new SimpleDateFormat("yyyy-MM-dd").format(evecappr.getStarttime());
String enddate = new SimpleDateFormat("yyyy-MM-dd").format(evecappr.getEndtime());
String[] days=ClockInTool.listToString(ClockInTool.getDays(startdate,enddate)).split(";");
for(String num : days) {
//记入打卡月汇总关联表
KqglAssoRelationSummary.builder().userId(evecappr.getUserid()).appTime(num).approvalId(evecappr.getEvectionid()).approvalType(3).build().insert();
}
}else { //外出
String startdate = new SimpleDateFormat("yyyy-MM-dd").format(evecappr.getStarttime());
String enddate = new SimpleDateFormat("yyyy-MM-dd").format(evecappr.getEndtime());
String[] days=ClockInTool.listToString(ClockInTool.getDays(startdate,enddate)).split(";");
for(String num : days) {
//记入打卡月汇总关联表
KqglAssoRelationSummary.builder().userId(evecappr.getUserid()).appTime(num).approvalId(evecappr.getEvectionid()).approvalType(4).build().insert();
}
}
return true; return true;
} }
...@@ -42,7 +108,12 @@ public class KqglServiceImpl implements KqglService { ...@@ -42,7 +108,12 @@ public class KqglServiceImpl implements KqglService {
*/ */
@Override @Override
public boolean attrepairapproval(AttRepairApprovalDto repaappr) { public boolean attrepairapproval(AttRepairApprovalDto repaappr) {
String cardrepltime = new SimpleDateFormat("yyyy-MM-dd").format(repaappr.getCardrepltime());//补卡时间
//记入打卡月汇总关联表
KqglAssoRelationSummary.builder().userId(repaappr.getUserid()).appTime(cardrepltime).approvalId(repaappr.getRepairid()).approvalType(5).build().insert();
return true; return true;
} }
......
package cn.timer.api.dao.kqmk;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
import cn.timer.api.bean.kqmk.AttendanceSocks;
/**
* 考勤定时
*
* @author Tang 2020-05-19
*/
@Repository
public interface AttendanceSocksMapper extends BaseMapper<AttendanceSocks> {
}
...@@ -24,4 +24,6 @@ public interface KqglAssoLeaveBalanceMapper extends BaseMapper<KqglAssoLeaveBala ...@@ -24,4 +24,6 @@ public interface KqglAssoLeaveBalanceMapper extends BaseMapper<KqglAssoLeaveBala
IPage<EmployeeLeaveBalanceDto> selectPageByQueryLeaveBalance(IPage<EmployeeLeaveBalanceDto> page,@Param("param") AttqueryCriteriaDto attquerycriteriadto); IPage<EmployeeLeaveBalanceDto> selectPageByQueryLeaveBalance(IPage<EmployeeLeaveBalanceDto> page,@Param("param") AttqueryCriteriaDto attquerycriteriadto);
AdditionalDto selectAdditional(int orgcode,int empnum); AdditionalDto selectAdditional(int orgcode,int empnum);
List<AdditionalDto> selectAdditionalList(int orgcode);
} }
package cn.timer.api.dao.kqmk;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
import cn.timer.api.bean.kqmk.KqglAssoRelationSummary;
/**
* 打卡月汇总关联表
*
* @author Tang 2020-05-19
*/
@Repository
public interface KqglAssoRelationSummaryMapper extends BaseMapper<KqglAssoRelationSummary> {
}
package cn.timer.api.dao.kqmk;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import cn.timer.api.bean.kqmk.KqglTaskTiming;
/**
* 考勤任务定时
*
* @author Tang 2020-05-19
*/
@Repository
public interface KqglTaskTimingMapper extends BaseMapper<KqglTaskTiming> {
}
...@@ -17,6 +17,9 @@ public class AttEvectionApprovalDto { ...@@ -17,6 +17,9 @@ public class AttEvectionApprovalDto {
@ApiModelProperty(value = "出差外出id", example = "") @ApiModelProperty(value = "出差外出id", example = "")
private int evectionid; private int evectionid;
@ApiModelProperty(value = "用户id", example = "")
private int userid;
@ApiModelProperty(value = "开始时间", example = "时间戳") @ApiModelProperty(value = "开始时间", example = "时间戳")
private long starttime; private long starttime;
......
...@@ -17,6 +17,9 @@ public class AttLeaveApprovalDto { ...@@ -17,6 +17,9 @@ public class AttLeaveApprovalDto {
@ApiModelProperty(value = "请假id", example = "") @ApiModelProperty(value = "请假id", example = "")
private int leaveid; private int leaveid;
@ApiModelProperty(value = "用户id", example = "")
private int userid;
@ApiModelProperty(value = "请假类型", example = "具体传ID") @ApiModelProperty(value = "请假类型", example = "具体传ID")
private int leavetype; private int leavetype;
...@@ -27,6 +30,6 @@ public class AttLeaveApprovalDto { ...@@ -27,6 +30,6 @@ public class AttLeaveApprovalDto {
@ApiModelProperty(value = "结束时间", example = "时间戳") @ApiModelProperty(value = "结束时间", example = "时间戳")
private long endtime; private long endtime;
@ApiModelProperty(value = "时长(分钟)", example = "") @ApiModelProperty(value = "时长", example = "")
private double duration; private double duration;
} }
...@@ -18,6 +18,9 @@ public class AttOvertimeApprovalDto { ...@@ -18,6 +18,9 @@ public class AttOvertimeApprovalDto {
@ApiModelProperty(value = "加班id", example = "") @ApiModelProperty(value = "加班id", example = "")
private int overtimeid; private int overtimeid;
@ApiModelProperty(value = "用户id", example = "")
private int userid;
@ApiModelProperty(value = "加班类型", example = "具体传ID") @ApiModelProperty(value = "加班类型", example = "具体传ID")
private int overtimetype; private int overtimetype;
...@@ -27,7 +30,7 @@ public class AttOvertimeApprovalDto { ...@@ -27,7 +30,7 @@ public class AttOvertimeApprovalDto {
@ApiModelProperty(value = "结束时间", example = "时间戳") @ApiModelProperty(value = "结束时间", example = "时间戳")
private long endtime; private long endtime;
@ApiModelProperty(value = "时长(分钟)", example = "") @ApiModelProperty(value = "时长", example = "")
private double duration; private double duration;
@ApiModelProperty(value = "加班补偿方式", example = "1:转调休;2:转加班费;3:转调休或加班费") @ApiModelProperty(value = "加班补偿方式", example = "1:转调休;2:转加班费;3:转调休或加班费")
......
...@@ -17,6 +17,9 @@ public class AttRepairApprovalDto { ...@@ -17,6 +17,9 @@ public class AttRepairApprovalDto {
@ApiModelProperty(value = "补卡审批ID", example = "") @ApiModelProperty(value = "补卡审批ID", example = "")
private int repairid; private int repairid;
@ApiModelProperty(value = "用户id", example = "")
private int userid;
@ApiModelProperty(value = "补卡时间", example = "时间戳") @ApiModelProperty(value = "补卡时间", example = "时间戳")
private long cardrepltime; private long cardrepltime;
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.timer.api.dao.kqmk.AttendanceSocksMapper">
<resultMap id="BaseResultMap" type="cn.timer.api.bean.kqmk.AttendanceSocks" >
<result column="cron_id" property="cronId" />
<result column="cron_name" property="cronName" />
<result column="cron" property="cron" />
</resultMap>
<sql id="Base_Column_List">
cron_id,
cron_name,
cron
</sql>
<sql id="Base_Column_List_Alias">
cron_id AttendanceSocks_cron_id,
cron_name AttendanceSocks_cron_name,
cron AttendanceSocks_cron
</sql>
</mapper>
\ No newline at end of file
...@@ -23,6 +23,9 @@ ...@@ -23,6 +23,9 @@
<result column="gzsc" property="gzsc" /> <result column="gzsc" property="gzsc" />
<result column="qyid" property="qyid" /> <result column="qyid" property="qyid" />
<result column="dksj" property="dksj" /> <result column="dksj" property="dksj" />
<result column="yzcdcs" property="yzcdcs" />
<result column="yzcdsc" property="yzcdsc" />
<result column="kgcdfzs" property="kgcdfzs" />
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
...@@ -44,7 +47,10 @@ ...@@ -44,7 +47,10 @@
ydkcs, ydkcs,
gzsc, gzsc,
qyid, qyid,
dksj dksj,
yzcdcs,
yzcdsc,
kgcdfzs
</sql> </sql>
<sql id="Base_Column_List_Alias"> <sql id="Base_Column_List_Alias">
...@@ -66,7 +72,10 @@ ...@@ -66,7 +72,10 @@
ydkcs KqglAssoDkmx_ydkcs, ydkcs KqglAssoDkmx_ydkcs,
gzsc KqglAssoDkmx_gzsc, gzsc KqglAssoDkmx_gzsc,
qyid KqglAssoDkmx_qyid, qyid KqglAssoDkmx_qyid,
dksj KqglAssoDkmx_dksj dksj KqglAssoDkmx_dksj,
yzcdcs KqglAssoDkmx_yzcdcs,
yzcdsc KqglAssoDkmx_yzcdsc,
kgcdfzs KqglAssoDkmx_kgcdfzs
</sql> </sql>
<!-- <!--
...@@ -126,7 +135,16 @@ ...@@ -126,7 +135,16 @@
qyid, qyid,
</if> </if>
<if test ='null != dksj'> <if test ='null != dksj'>
dksj dksj,
</if>
<if test ='null != yzcdcs'>
yzcdcs,
</if>
<if test ='null != yzcdsc'>
yzcdsc,
</if>
<if test ='null != kgcdfzs'>
kgcdfzs
</if> </if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
...@@ -182,7 +200,16 @@ ...@@ -182,7 +200,16 @@
#{qyid}, #{qyid},
</if> </if>
<if test ='null != dksj'> <if test ='null != dksj'>
#{dksj} #{dksj},
</if>
<if test ='null != yzcdcs'>
#{yzcdcs},
</if>
<if test ='null != yzcdsc'>
#{yzcdsc},
</if>
<if test ='null != kgcdfzs'>
#{kgcdfzs}
</if> </if>
</trim> </trim>
</insert> </insert>
...@@ -212,7 +239,10 @@ ...@@ -212,7 +239,10 @@
<if test ='null != ydkcs'>ydkcs = #{ydkcs},</if> <if test ='null != ydkcs'>ydkcs = #{ydkcs},</if>
<if test ='null != gzsc'>gzsc = #{gzsc},</if> <if test ='null != gzsc'>gzsc = #{gzsc},</if>
<if test ='null != qyid'>qyid = #{qyid},</if> <if test ='null != qyid'>qyid = #{qyid},</if>
<if test ='null != dksj'>dksj = #{dksj}</if> <if test ='null != dksj'>dksj = #{dksj},</if>
<if test ='null != yzcdcs'>yzcdcs = #{yzcdcs},</if>
<if test ='null != yzcdsc'>yzcdsc = #{yzcdsc},</if>
<if test ='null != kgcdfzs'>kgcdfzs = #{kgcdfzs}</if>
</set> </set>
WHERE id = #{id} WHERE id = #{id}
</update> </update>
......
...@@ -98,6 +98,17 @@ ...@@ -98,6 +98,17 @@
where emp.org_code = #{orgcode} where emp.org_code = #{orgcode}
and emp.emp_num = #{empnum} and emp.emp_num = #{empnum}
</select> </select>
<select id="selectAdditionalList" resultMap="AdditionalMap">
SELECT emp.emp_num as empnum,
emp.`name` as empname,
IFNULL(c.name,'') as department,
gw.`name` as position
from yggl_main_emp emp
LEFT JOIN zzgl_bmgw_m as gw on gw.id = emp.bmgw_id
LEFT JOIN zzgl_bmgw_m as c ON c.id = gw.up_id
where emp.org_code = #{orgcode}
</select>
<!-- <!--
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.timer.api.dao.kqmk.KqglAssoRelationSummaryMapper">
<resultMap id="BaseResultMap" type="cn.timer.api.bean.kqmk.KqglAssoRelationSummary" >
<id column="id" property="id" />
<result column="user_id" property="userId" />
<result column="app_time" property="appTime" />
<result column="approval_id" property="approvalId" />
<result column="approval_type" property="approvalType" />
<result column="duration" property="duration" />
<result column="leave_type_id" property="leaveTypeId" />
<result column="overtime_type_id" property="overtimeTypeId" />
<result column="compensate_id" property="compensateId" />
</resultMap>
<sql id="Base_Column_List">
id,
user_id,
app_time,
approval_id,
approval_type,
duration,
leave_type_id,
overtime_type_id,
compensate_id
</sql>
<sql id="Base_Column_List_Alias">
id KqglAssoRelationSummary_id,
user_id KqglAssoRelationSummary_user_id,
app_time KqglAssoRelationSummary_app_time,
approval_id KqglAssoRelationSummary_approval_id,
approval_type KqglAssoRelationSummary_approval_type,
duration KqglAssoRelationSummary_duration,
leave_type_id KqglAssoRelationSummary_leave_type_id,
overtime_type_id KqglAssoRelationSummary_overtime_type_id,
compensate_id KqglAssoRelationSummary_compensate_id
</sql>
<!--
<insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.kqmk.KqglAssoRelationSummary">
INSERT INTO kqgl_asso_relation_summary
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test ='null != userId'>
user_id,
</if>
<if test ='null != appTime'>
app_time,
</if>
<if test ='null != approvalId'>
approval_id,
</if>
<if test ='null != approvalType'>
approval_type,
</if>
<if test ='null != duration'>
duration,
</if>
<if test ='null != leaveTypeId'>
leave_type_id,
</if>
<if test ='null != overtimeTypeId'>
overtime_type_id,
</if>
<if test ='null != compensateId'>
compensate_id
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test ='null != userId'>
#{userId},
</if>
<if test ='null != appTime'>
#{appTime},
</if>
<if test ='null != approvalId'>
#{approvalId},
</if>
<if test ='null != approvalType'>
#{approvalType},
</if>
<if test ='null != duration'>
#{duration},
</if>
<if test ='null != leaveTypeId'>
#{leaveTypeId},
</if>
<if test ='null != overtimeTypeId'>
#{overtimeTypeId},
</if>
<if test ='null != compensateId'>
#{compensateId}
</if>
</trim>
</insert>
<delete id="delete" >
DELETE FROM kqgl_asso_relation_summary
WHERE id = #{id}
</delete>
<update id="update" parameterType="cn.timer.api.bean.kqmk.KqglAssoRelationSummary">
UPDATE kqgl_asso_relation_summary
<set>
<if test ='null != userId'>user_id = #{userId},</if>
<if test ='null != appTime'>app_time = #{appTime},</if>
<if test ='null != approvalId'>approval_id = #{approvalId},</if>
<if test ='null != approvalType'>approval_type = #{approvalType},</if>
<if test ='null != duration'>duration = #{duration},</if>
<if test ='null != leaveTypeId'>leave_type_id = #{leaveTypeId},</if>
<if test ='null != overtimeTypeId'>overtime_type_id = #{overtimeTypeId},</if>
<if test ='null != compensateId'>compensate_id = #{compensateId}</if>
</set>
WHERE id = #{id}
</update>
<select id="load" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List" />
FROM kqgl_asso_relation_summary
WHERE id = #{id}
</select>
<select id="pageList" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List" />
FROM kqgl_asso_relation_summary
LIMIT #{offset}, #{pageSize}
</select>
<select id="pageListCount" resultType="java.lang.Integer">
SELECT count(1)
FROM kqgl_asso_relation_summary
</select>
-->
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.timer.api.dao.kqmk.KqglTaskTimingMapper">
<resultMap id="BaseResultMap" type="cn.timer.api.bean.kqmk.KqglTaskTiming" >
<id column="id" property="id" />
<result column="task" property="task" />
<result column="execution_status" property="executionStatus" />
<result column="last_execution_time" property="lastExecutionTime" />
</resultMap>
<sql id="Base_Column_List">
id,
task,
execution_status,
last_execution_time
</sql>
<sql id="Base_Column_List_Alias">
id KqglTaskTiming_id,
task KqglTaskTiming_task,
execution_status KqglTaskTiming_execution_status,
last_execution_time KqglTaskTiming_last_execution_time
</sql>
<!--
<insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.kqmk.KqglTaskTiming">
INSERT INTO kqgl_task_timing
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test ='null != task'>
task,
</if>
<if test ='null != executionStatus'>
execution_status,
</if>
<if test ='null != lastExecutionTime'>
last_execution_time
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test ='null != task'>
#{task},
</if>
<if test ='null != executionStatus'>
#{executionStatus},
</if>
<if test ='null != lastExecutionTime'>
#{lastExecutionTime}
</if>
</trim>
</insert>
<delete id="delete" >
DELETE FROM kqgl_task_timing
WHERE id = #{id}
</delete>
<update id="update" parameterType="cn.timer.api.bean.kqmk.KqglTaskTiming">
UPDATE kqgl_task_timing
<set>
<if test ='null != task'>task = #{task},</if>
<if test ='null != executionStatus'>execution_status = #{executionStatus},</if>
<if test ='null != lastExecutionTime'>last_execution_time = #{lastExecutionTime}</if>
</set>
WHERE id = #{id}
</update>
<select id="load" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List" />
FROM kqgl_task_timing
WHERE id = #{id}
</select>
<select id="pageList" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List" />
FROM kqgl_task_timing
LIMIT #{offset}, #{pageSize}
</select>
<select id="pageListCount" resultType="java.lang.Integer">
SELECT count(1)
FROM kqgl_task_timing
</select>
-->
</mapper>
\ No newline at end of file
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