Commit d4e16df3 by 邓实川

冲突解决

parents 27567a09 7f7bf226
This source diff could not be displayed because it is too large. You can view the blob instead.
package cn.timer.api.aspect;
import java.lang.reflect.Method;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpSession;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.Signature;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.lang.Console;
import cn.timer.api.aspect.lang.annotation.BindingResultCtrol;
import cn.timer.api.aspect.lang.annotation.Role;
import cn.timer.api.bean.qyzx.QyzxEmpEntAsso;
import cn.timer.api.bean.qyzx.QyzxEmpLogin;
import cn.timer.api.config.enums.SysRoleType;
import cn.timer.api.dao.qyzx.QyzxEmpEntAssoMapper;
import cn.timer.api.utils.ResultUtil;
/**
* 角色权限 处理
*
* @author Tang
*/
@Aspect
@Component
public class RoleAspect {
// private static final Logger log = LoggerFactory.getLogger(RoleAspect.class);
@Autowired
private QyzxEmpEntAssoMapper qyzxEmpEntAssoMapper;
@Resource
private HttpSession session;
// 配置织入点
@Pointcut("@annotation(cn.timer.api.aspect.lang.annotation.Role)")
public void RolePointCut() {
}
@Around("RolePointCut()")
public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable {
Object retVal;
// 获得注解
Role role = getAnnotationLog(joinPoint);
String httpMethodName = role.httpMethod().name();
List<Integer> sysRoleType = ListUtil.toList();
for (SysRoleType t : role.sysRoleType()) {
sysRoleType.add(t.getType());
}
QyzxEmpLogin eld = BeanUtil.toBean(session.getAttribute("ui"), QyzxEmpLogin.class);
Integer orgCode = eld.getOrgId();
Integer count = new LambdaQueryChainWrapper<QyzxEmpEntAsso>(qyzxEmpEntAssoMapper)
.eq(QyzxEmpEntAsso::getEmpNum, eld.getId())
.eq(QyzxEmpEntAsso::getOrgCode, orgCode)
.in(QyzxEmpEntAsso::getUserType, sysRoleType)
.count();
if (count <= 0) {
switch (httpMethodName) {
case "POST":
retVal = ResultUtil.error("无权限操作");
break;
case "PUT":
retVal = ResultUtil.error("无权限编辑");
break;
case "GET":
retVal = ResultUtil.error("无权限查看");
break;
case "DELETE":
retVal = ResultUtil.error("无权限删除");
break;
default:
retVal = ResultUtil.error("无权限操作");
break;
}
return retVal;
}else {
return retVal = joinPoint.proceed(joinPoint.getArgs());
}
}
/**
* 是否存在注解,如果存在就获取
*/
private Role getAnnotationLog(JoinPoint joinPoint) {
Signature signature = joinPoint.getSignature();
MethodSignature methodSignature = (MethodSignature) signature;
Method method = methodSignature.getMethod();
if (method != null) {
return method.getAnnotation(Role.class);
}
return null;
}
}
package cn.timer.api.aspect.lang.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import cn.timer.api.config.enums.HttpMethod;
import cn.timer.api.config.enums.SysRoleType;
/**
* 自定义 角色 注解
*
* @author Tang
*
*/
@Target({ ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Role {
/**
* 操作 类型
*/
public HttpMethod httpMethod() default HttpMethod.POST;
/**
* 角色类型
*/
public SysRoleType[] sysRoleType() default {SysRoleType.U_TYPE_ADMIN,SysRoleType.U_TYPE_C_ADMIN};
}
...@@ -19,7 +19,7 @@ import lombok.Data; ...@@ -19,7 +19,7 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
/** /**
* @author Tang 2020-05-26 * @author Tang 2020-05-27
*/ */
@Data @Data
...@@ -37,10 +37,12 @@ public class JxglAppraisal extends Model<JxglAppraisal> { ...@@ -37,10 +37,12 @@ public class JxglAppraisal extends Model<JxglAppraisal> {
@Id @Id
@GeneratedValue @GeneratedValue
@TableId(type = IdType.AUTO) @TableId(type = IdType.AUTO)
@ApiModelProperty(value = "编号 编号", example = "10") @ApiModelProperty(value = "编号 编号", example = "10")
private Integer id; private Integer id;
@ApiModelProperty(value = "绩效考核id 绩效考核id", example = "10")
private Integer performanceAppraisalId;
@ApiModelProperty(value = "员工id 员工id", example = "10") @ApiModelProperty(value = "员工id 员工id", example = "10")
private Integer empNum; private Integer empNum;
...@@ -48,8 +50,8 @@ public class JxglAppraisal extends Model<JxglAppraisal> { ...@@ -48,8 +50,8 @@ public class JxglAppraisal extends Model<JxglAppraisal> {
private String name; private String name;
@ApiModelProperty(value = "考核说明", example = "考核说明") @ApiModelProperty(value = "考核说明", example = "考核说明")
private String appraisalExplain;
private String appraisalExplain;
@TableField(fill = FieldFill.INSERT) @TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建时间", example = "2020-10-10 10:10:10") @ApiModelProperty(value = "创建时间", example = "2020-10-10 10:10:10")
private Date createTime; private Date createTime;
...@@ -58,7 +60,46 @@ public class JxglAppraisal extends Model<JxglAppraisal> { ...@@ -58,7 +60,46 @@ public class JxglAppraisal extends Model<JxglAppraisal> {
@ApiModelProperty(value = "更新时间", example = "2020-10-10 10:10:10") @ApiModelProperty(value = "更新时间", example = "2020-10-10 10:10:10")
private Date updateTime; private Date updateTime;
@ApiModelProperty(value = "状态 0目标填写 1目标确认 2自评 3上级评分 4 结果确认 5考核完成 6终止考核 7归档", example = "10") @ApiModelProperty(value = "状态 0目标填写 1目标确认 2自评 3上级评分 4 结果确认 5考核完成 6终止考核 7归档", example = "0")
private Integer sts; private Integer sts;
// 已归档绩效
@TableField(exist = false)
private Integer archivedPNum;
// 进行中绩效
@TableField(exist = false)
private Integer underwayPNum;
// 最近绩效方案
@TableField(exist = false)
private String recentlyProject;
// 最近绩效评分
@TableField(exist = false)
private Double recentlyScore;
// 最近绩效等级
@TableField(exist = false)
private String recentlyLevel;
@TableField(exist = false)
private String userName;
@TableField(exist = false)
private String phone;
@TableField(exist = false)
private String bmName;
@TableField(exist = false)
private Date rzTime;
@TableField(exist = false)
private String executorName;
@TableField(exist = false)
private Double comprehensiveScore;
@TableField(exist = false)
private String level;
@TableField(exist = false)
private String confirmor;
} }
\ No newline at end of file
...@@ -4,6 +4,8 @@ import java.util.Date; ...@@ -4,6 +4,8 @@ import java.util.Date;
import javax.persistence.GeneratedValue; import javax.persistence.GeneratedValue;
import javax.persistence.Id; import javax.persistence.Id;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
...@@ -11,6 +13,7 @@ import com.baomidou.mybatisplus.annotation.TableField; ...@@ -11,6 +13,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model; import com.baomidou.mybatisplus.extension.activerecord.Model;
import cn.timer.api.config.exception.ValidationMsg;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
...@@ -37,10 +40,10 @@ public class JxglAppraisalAssessment extends Model<JxglAppraisalAssessment> { ...@@ -37,10 +40,10 @@ public class JxglAppraisalAssessment extends Model<JxglAppraisalAssessment> {
@Id @Id
@GeneratedValue @GeneratedValue
@TableId(type = IdType.AUTO) @TableId(type = IdType.AUTO)
@ApiModelProperty(value = "编号 编号", example = "10") @ApiModelProperty(value = "编号 编号", example = "10")
private Integer id; private Integer id;
@NotNull(message = ValidationMsg.NOTNULL)
@ApiModelProperty(value = "考核id 考核id", example = "10") @ApiModelProperty(value = "考核id 考核id", example = "10")
private Integer appraisalId; private Integer appraisalId;
...@@ -50,6 +53,7 @@ public class JxglAppraisalAssessment extends Model<JxglAppraisalAssessment> { ...@@ -50,6 +53,7 @@ public class JxglAppraisalAssessment extends Model<JxglAppraisalAssessment> {
@ApiModelProperty(value = "评定人名称", example = "评定人名称") @ApiModelProperty(value = "评定人名称", example = "评定人名称")
private String assessorName; private String assessorName;
@NotBlank(message = ValidationMsg.NOTBLANK)
@ApiModelProperty(value = "综合评分", example = "综合评分") @ApiModelProperty(value = "综合评分", example = "综合评分")
private String comprehensiveScore; private String comprehensiveScore;
...@@ -63,6 +67,7 @@ public class JxglAppraisalAssessment extends Model<JxglAppraisalAssessment> { ...@@ -63,6 +67,7 @@ public class JxglAppraisalAssessment extends Model<JxglAppraisalAssessment> {
@ApiModelProperty(value = "创建时间", example = "2020-10-10 10:10:10") @ApiModelProperty(value = "创建时间", example = "2020-10-10 10:10:10")
private Date createTime; private Date createTime;
@NotBlank(message = ValidationMsg.NOTBLANK)
@ApiModelProperty(value = "等级", example = "等级") @ApiModelProperty(value = "等级", example = "等级")
private String level; private String level;
......
package cn.timer.api.bean.jxgl; package cn.timer.api.bean.jxgl;
import java.util.Date; import java.util.Date;
import java.util.List;
import javax.persistence.GeneratedValue; import javax.persistence.GeneratedValue;
import javax.persistence.Id; import javax.persistence.Id;
...@@ -66,5 +67,10 @@ public class JxglAppraisalIndicators extends Model<JxglAppraisalIndicators> { ...@@ -66,5 +67,10 @@ public class JxglAppraisalIndicators extends Model<JxglAppraisalIndicators> {
@ApiModelProperty(value = "类型 0 非固定 1 固定", example = "0") @ApiModelProperty(value = "类型 0 非固定 1 固定", example = "0")
private Integer type; private Integer type;
@TableField(exist = false)
private List<JxglAppraisalIndicatorsAssessment> appraisalIndicatorsAssessments;
@TableField(exist = false)
private List<JxglAppraisalItem> appraisalItems;
} }
\ No newline at end of file
package cn.timer.api.bean.jxgl; package cn.timer.api.bean.jxgl;
import java.util.Date; import java.util.Date;
import java.util.List;
import javax.persistence.GeneratedValue; import javax.persistence.GeneratedValue;
import javax.persistence.Id; import javax.persistence.Id;
import javax.persistence.Transient;
import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
...@@ -65,6 +67,10 @@ public class JxglAppraisalIndicatorsT extends Model<JxglAppraisalIndicatorsT> { ...@@ -65,6 +67,10 @@ public class JxglAppraisalIndicatorsT extends Model<JxglAppraisalIndicatorsT> {
private Date updateTime; private Date updateTime;
@ApiModelProperty(value = "类型", example = "0 非固定 1 固定") @ApiModelProperty(value = "类型", example = "0 非固定 1 固定")
private String type; private Integer type;
@TableField(exist = false) // 是否转换
@ApiModelProperty(value = "考核项模板", example = "")
private List<JxglAppraisalItemT> appraisalItemTs;
} }
\ No newline at end of file
...@@ -34,10 +34,10 @@ public class JxglAppraisalItemT extends Model<JxglAppraisalItemT> { ...@@ -34,10 +34,10 @@ public class JxglAppraisalItemT extends Model<JxglAppraisalItemT> {
@GeneratedValue @GeneratedValue
@TableId(type = IdType.AUTO) @TableId(type = IdType.AUTO)
@ApiModelProperty(value = "编号 编号", example = "10") @ApiModelProperty(value = "编号", example = "10")
private Integer id; private Integer id;
@ApiModelProperty(value = "考核指标id 考核指标id", example = "10") @ApiModelProperty(value = "考核指标模板id", example = "10")
private Integer appraisalIndicatorsTId; private Integer appraisalIndicatorsTId;
@ApiModelProperty(value = "标题", example = "标题") @ApiModelProperty(value = "标题", example = "标题")
...@@ -46,7 +46,7 @@ public class JxglAppraisalItemT extends Model<JxglAppraisalItemT> { ...@@ -46,7 +46,7 @@ public class JxglAppraisalItemT extends Model<JxglAppraisalItemT> {
@ApiModelProperty(value = "内容", example = "内容") @ApiModelProperty(value = "内容", example = "内容")
private String content; private String content;
@ApiModelProperty(value = "排序 排序", example = "10") @ApiModelProperty(value = "排序", example = "10")
private Integer ranks; private Integer ranks;
} }
\ No newline at end of file
package cn.timer.api.bean.jxgl; package cn.timer.api.bean.jxgl;
import java.util.Date; import java.util.Date;
import java.util.List;
import javax.persistence.GeneratedValue; import javax.persistence.GeneratedValue;
import javax.persistence.Id; import javax.persistence.Id;
import javax.persistence.Transient;
import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
...@@ -57,5 +59,8 @@ public class JxglAppraisalT extends Model<JxglAppraisalT> { ...@@ -57,5 +59,8 @@ public class JxglAppraisalT extends Model<JxglAppraisalT> {
@TableField(fill = FieldFill.UPDATE) @TableField(fill = FieldFill.UPDATE)
@ApiModelProperty(value = "更新时间", example = "2020-10-10 10:10:10") @ApiModelProperty(value = "更新时间", example = "2020-10-10 10:10:10")
private Date updateTime; private Date updateTime;
@TableField(exist = false) // 是否转换
@ApiModelProperty(value = "考核指标模板", example = "")
private List<JxglAppraisalIndicatorsT> appraisalIndicatorsTs;
} }
\ No newline at end of file
...@@ -4,6 +4,7 @@ import java.util.Date; ...@@ -4,6 +4,7 @@ import java.util.Date;
import javax.persistence.GeneratedValue; import javax.persistence.GeneratedValue;
import javax.persistence.Id; import javax.persistence.Id;
import javax.validation.Valid;
import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
...@@ -11,6 +12,7 @@ import com.baomidou.mybatisplus.annotation.TableField; ...@@ -11,6 +12,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model; import com.baomidou.mybatisplus.extension.activerecord.Model;
import cn.timer.api.config.validation.ValidList;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
...@@ -54,5 +56,9 @@ public class JxglBasicSetting extends Model<JxglBasicSetting> { ...@@ -54,5 +56,9 @@ public class JxglBasicSetting extends Model<JxglBasicSetting> {
@ApiModelProperty(value="更新时间 ",example="2020-10-10 10:10:10") @ApiModelProperty(value="更新时间 ",example="2020-10-10 10:10:10")
private Date updateTime; private Date updateTime;
@Valid
@TableField(exist = false) // 是否转换
@ApiModelProperty(value="绩效等级",example="1")
private ValidList<JxglPerformanceRating> performanceRatings;
} }
\ No newline at end of file
package cn.timer.api.bean.jxgl; package cn.timer.api.bean.jxgl;
import java.util.Date; import java.util.Date;
import java.util.List;
import javax.persistence.GeneratedValue; import javax.persistence.GeneratedValue;
import javax.persistence.Id; import javax.persistence.Id;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model; import com.baomidou.mybatisplus.extension.activerecord.Model;
...@@ -72,4 +75,33 @@ public class JxglPerformanceAppraisal extends Model<JxglPerformanceAppraisal> { ...@@ -72,4 +75,33 @@ public class JxglPerformanceAppraisal extends Model<JxglPerformanceAppraisal> {
@ApiModelProperty(value="流程节点",example="") @ApiModelProperty(value="流程节点",example="")
private byte[] processNode; private byte[] processNode;
@ApiModelProperty(value="被考核人员",example="")
private byte[] beingAppraisalPerson;
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建时间", example = "创建时间")
private Date createTime;
@TableField(fill = FieldFill.UPDATE)
@ApiModelProperty(value = "最近处理时间 ", example = "最近处理时间")
private Date updateTime;
@TableField(exist = false)
private Integer targetSeting;
@TableField(exist = false)
private Integer performanceScore;
@TableField(exist = false)
private Integer resultVerification;
@TableField(exist = false)
private Integer performanceArchive;
@TableField(exist = false)
private JxglAppraisal appraisal;
@TableField(exist = false)
private JxglAppraisalAssessment appraisalAssessment;
} }
\ No newline at end of file
...@@ -35,26 +35,26 @@ public class JxglPerformanceRating extends Model<JxglPerformanceRating> { ...@@ -35,26 +35,26 @@ public class JxglPerformanceRating extends Model<JxglPerformanceRating> {
@Id @Id
@GeneratedValue @GeneratedValue
@TableId(type = IdType.AUTO) @TableId(type = IdType.AUTO)
@ApiModelProperty(value = "编号", example = "10")
@ApiModelProperty(value = "编号 编号", example = "10")
private Integer id; private Integer id;
@ApiModelProperty(value = "绩效基础设置id 绩效基础设置id", example = "10") @ApiModelProperty(value = "绩效基础设置id", example = "10")
private Integer basicSettingId; private Integer basicSettingId;
@NotBlank(message = "等级名称不能为空") @NotBlank(message = "等级名称 不能为空")
@ApiModelProperty(value = "等级名称", example = "等级名称") @ApiModelProperty(value = "等级名称", example = "等级名称")
private String name; private String name;
@NotNull(message = "区间最小分数不能为空") @NotNull(message = "区间最小分数 不能为空")
@ApiModelProperty(value = "区间最小分数 区间最小分数", example = "10") @ApiModelProperty(value = "区间最小分数", example = "10")
private Integer sectionMinScore; private Integer sectionMinScore;
@NotNull(message = "区间最大分数不能为空") @NotNull(message = "区间最大分数 不能为空")
@ApiModelProperty(value = "区间最大分数 区间最大分数", example = "10") @ApiModelProperty(value = "区间最大分数", example = "10")
private Integer sectionMaxScore; private Integer sectionMaxScore;
@ApiModelProperty(value = "排序 排序", example = "10") @NotNull(message = "排序 不能为空")
@ApiModelProperty(value = "排序", example = "10")
private Integer ranks; private Integer ranks;
} }
\ No newline at end of file
...@@ -37,14 +37,13 @@ public class JxglProcessNode extends Model<JxglProcessNode> { ...@@ -37,14 +37,13 @@ public class JxglProcessNode extends Model<JxglProcessNode> {
@Id @Id
@GeneratedValue @GeneratedValue
@TableId(type = IdType.AUTO) @TableId(type = IdType.AUTO)
@ApiModelProperty(value = "编号", example = "10")
@ApiModelProperty(value = "编号 编号", example = "10")
private Integer id; private Integer id;
@ApiModelProperty(value = "考核id 考核id", example = "10") @ApiModelProperty(value = "考核id", example = "10")
private Integer appraisalId; private Integer appraisalId;
@ApiModelProperty(value = "执行人id(员工id) 执行人id(员工id)", example = "10") @ApiModelProperty(value = "执行人id(员工id)", example = "10")
private Integer executorId; private Integer executorId;
@ApiModelProperty(value = "执行人名称", example = "执行人名称") @ApiModelProperty(value = "执行人名称", example = "执行人名称")
...@@ -62,7 +61,7 @@ public class JxglProcessNode extends Model<JxglProcessNode> { ...@@ -62,7 +61,7 @@ public class JxglProcessNode extends Model<JxglProcessNode> {
@ApiModelProperty(value = "主管层级 0直属主管 1上上级主管", example = "10") @ApiModelProperty(value = "主管层级 0直属主管 1上上级主管", example = "10")
private Integer leaderTier; private Integer leaderTier;
@ApiModelProperty(value = "权重 权重", example = "10") @ApiModelProperty(value = "权重", example = "10")
private Integer weight; private Integer weight;
@ApiModelProperty(value = "状态 0未执行 1执行中 2 已执行", example = "10") @ApiModelProperty(value = "状态 0未执行 1执行中 2 已执行", example = "10")
......
...@@ -19,4 +19,5 @@ public class UserAttendanceRel implements Serializable{ ...@@ -19,4 +19,5 @@ public class UserAttendanceRel implements Serializable{
private Integer qyid; private Integer qyid;
private String empnum; private String empnum;
private String empname;
} }
\ No newline at end of file
...@@ -114,10 +114,10 @@ public class KqglAssoBcsz extends Model<KqglAssoBcsz> { ...@@ -114,10 +114,10 @@ public class KqglAssoBcsz extends Model<KqglAssoBcsz> {
private Integer isXiuxi; private Integer isXiuxi;
@ApiModelProperty(value = "休息开始时间 休息开始时间", example = "101") @ApiModelProperty(value = "休息开始时间 休息开始时间", example = "101")
private Long startTime; private String startTime;
@ApiModelProperty(value = "休息结束时间 休息结束时间", example = "101") @ApiModelProperty(value = "休息结束时间 休息结束时间", example = "101")
private Long endTime; private String endTime;
@ApiModelProperty(value = "上下班次数(1/2/3 最大值为3)", example = "101") @ApiModelProperty(value = "上下班次数(1/2/3 最大值为3)", example = "101")
private Integer sxbcs; private Integer sxbcs;
......
...@@ -64,6 +64,7 @@ public class KqglAssoLeaveRules extends Model<KqglAssoLeaveRules> { ...@@ -64,6 +64,7 @@ public class KqglAssoLeaveRules extends Model<KqglAssoLeaveRules> {
@ApiModelProperty(value = "假期余额 0:关(该项余额为“不限余额”);1:开(该项余额为“0”)", example = "101") @ApiModelProperty(value = "假期余额 0:关(该项余额为“不限余额”);1:开(该项余额为“0”)", example = "101")
private Integer leaveBalance; private Integer leaveBalance;
@ApiModelProperty(value = "规则类型(1:事假;2:调休;3:病假;4:年假;5:产假;6:陪产假;7:婚假;8:例假;9:丧假;10:哺乳假)", example = "101")
private Integer rulesType;
} }
\ No newline at end of file
...@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.annotation.TableField; ...@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model; import com.baomidou.mybatisplus.extension.activerecord.Model;
import cn.timer.api.bean.yggl.YgglMainEmp;
import cn.timer.api.dto.login.QysDto; import cn.timer.api.dto.login.QysDto;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -62,10 +63,6 @@ public class QyzxEmpLogin extends Model<QyzxEmpLogin> { ...@@ -62,10 +63,6 @@ public class QyzxEmpLogin extends Model<QyzxEmpLogin> {
@TableField(fill = FieldFill.INSERT) @TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value="注册时间 ",example="注册时间") @ApiModelProperty(value="注册时间 ",example="注册时间")
private Date regTime; private Date regTime;
/*
* @ApiModelProperty(value="到期时间 ",example="到期时间") private Date endTime;
*/
@ApiModelProperty(value="头像地址 ",example="http://asd") @ApiModelProperty(value="头像地址 ",example="http://asd")
private String headUrl; private String headUrl;
...@@ -86,4 +83,6 @@ public class QyzxEmpLogin extends Model<QyzxEmpLogin> { ...@@ -86,4 +83,6 @@ public class QyzxEmpLogin extends Model<QyzxEmpLogin> {
@Builder.Default @Builder.Default
private List<QysDto> qys = new ArrayList<QysDto>(); private List<QysDto> qys = new ArrayList<QysDto>();
@TableField(exist = false)
private YgglMainEmp ygglMainEmp;
} }
\ No newline at end of file
...@@ -4,6 +4,7 @@ import java.io.Serializable; ...@@ -4,6 +4,7 @@ import java.io.Serializable;
import cn.timer.api.bean.qyzx.QyzxEmpLogin; import cn.timer.api.bean.qyzx.QyzxEmpLogin;
import cn.timer.api.config.swagger.IgnoreSwaggerParameter; import cn.timer.api.config.swagger.IgnoreSwaggerParameter;
import cn.timer.api.dto.yggl.UserInfo;
import lombok.*; import lombok.*;
@Data @Data
...@@ -28,5 +29,9 @@ public class UserBean implements Serializable { ...@@ -28,5 +29,9 @@ public class UserBean implements Serializable {
@IgnoreSwaggerParameter @IgnoreSwaggerParameter
private String refreshToken; private String refreshToken;
@IgnoreSwaggerParameter
private UserInfo userInfo;
} }
package cn.timer.api.config.enuminterface;
import lombok.Getter;
public interface JxglEnumInterface {
/**
* 考核指标 类型 0员工 1部门
*/
@Getter
enum BeingAppraisalType implements JxglEnumInterface {
EMPLOYEE(0, "员工 "), DEPARTMENT(1, "部门");
private Integer type;
private String name;
BeingAppraisalType(Integer type, String name) {
this.type = type;
this.name = name;
}
}
/**
* 考核指标 状态 0被考核人 1无需被考核人
*/
@Getter
enum BeingAppraisalSts implements JxglEnumInterface {
NEED(0, "被考核人"), NOT_NEED(1, "无需被考核人");
private Integer type;
private String name;
BeingAppraisalSts(Integer type, String name) {
this.type = type;
this.name = name;
}
}
/**
* 考核指标 类型 0 非固定 1 固定
*/
@Getter
enum IndicatorsType implements JxglEnumInterface {
NOT_FIXATION(0, "非固定 "), FIXATION(1, "固定");
private Integer type;
private String name;
IndicatorsType(Integer type, String name) {
this.type = type;
this.name = name;
}
}
/**
* 是否可见 0是 1否。评分及评分结果能否被员工看见
*/
@Getter
enum IsVisible implements JxglEnumInterface {
TRUE(0, "是"), FALSE(1, "否");
private Integer type;
private String name;
IsVisible(Integer type, String name) {
this.type = type;
this.name = name;
}
}
/**
*绩效考核 状态 0目标制定 1绩效评分 2结果确认 3绩效归档 4终止考核
*/
@Getter
enum PerformanceAppraisalSts implements JxglEnumInterface {
TARGET_SETING(0, "目标制定"), PERFORMANCE_SCORE(1, "绩效评分"), RESULT_VERIFICATION(2, "结果确认"), PERFORMANCE_ARCHIVE(3, "绩效归档"), TERMINATION_ASSESSMENT(4, "终止考核");
private Integer type;
private String name;
PerformanceAppraisalSts(Integer type, String name) {
this.type = type;
this.name = name;
}
}
/**
*考核 状态 0目标填写 1目标确认 2自评 3上级评分 4 结果确认 5考核完成 6终止考核 7绩效归档
*/
@Getter
enum AppraisalSts implements JxglEnumInterface {
TARGET_FILL_IN(0, "目标填写"), TARGET_CONFIRMED(1, "目标确认"),
SELF_ASSESSMENT(2, "自评"), SUPERIOR_SCORE(3, "上级评分"),
RESULT_VERIFICATION(4, "结果确认"), ASSESSMENT_COMPLETE(5, "考核完成"),
TERMINATION_ASSESSMENT(6, "终止考核"), PERFORMANCE_ARCHIVE(7, "绩效归档");
private Integer type;
private String name;
AppraisalSts(Integer type, String name) {
this.type = type;
this.name = name;
}
}
/**
*执行人类型 0被考核人 1主管 2指定成员
*/
@Getter
enum ExecuteType implements JxglEnumInterface {
/**
* 0被考核人
*/
BEING_APPRAISAL_PERSON(0, "被考核人"),
/**
* 1主管
*/
LEADER(1, "主管"),
/**
* 2指定成员
*/
SPECIFIED_MEMBER(2, "指定成员");
private Integer type;
private String name;
ExecuteType(Integer type, String name) {
this.type = type;
this.name = name;
}
public static String getName(int index) {
ExecuteType[] executeTypes = ExecuteType.values();
String res = "";
if (executeTypes.length > index) {
res = executeTypes[index].getName();
}
return res;
}
}
/**
*流程类型 0目标填写 1目标确认 2自评 3上级评分 4 结果确认
*/
@Getter
enum ProcessType implements JxglEnumInterface {
TARGET_FILL_IN(0, "目标填写"), TARGET_CONFIRMED(1, "目标确认"), SELF_ASSESSMENT(2, "自评"), SUPERIOR_SCORE(3, "上级评分"), RESULT_VERIFICATION(4, "结果确认");
private Integer type;
private String name;
ProcessType(Integer type, String name) {
this.type = type;
this.name = name;
}
}
/**
*主管层级 0直属主管 1上上级主管
*/
@Getter
enum LeaderTier implements JxglEnumInterface {
FIRST(0, "直属主管"), SECOND(1, "上上级主管");
private Integer type;
private String name;
LeaderTier(Integer type, String name) {
this.type = type;
this.name = name;
}
}
/**
* 节点状态 0未执行 1执行中 2 已执行
*/
@Getter
enum ProcessNodeSts implements JxglEnumInterface {
NON_EXECUTION(0, "未执行"), IN_EXECUTION(1, "执行中"), EXECUTED(2, "已执行 ");
private Integer type;
private String name;
ProcessNodeSts(Integer type, String name) {
this.type = type;
this.name = name;
}
}
/**
* 评定类型 0自评 1上级评价
*/
@Getter
enum AssessmentType implements JxglEnumInterface {
SELF_ASSESSMENT(0, "自评"), SUPERIOR_SCORE(1, "上级评价");
private Integer type;
private String name;
AssessmentType(Integer type, String name) {
this.type = type;
this.name = name;
}
}
/**
*考核记录 类型 0发起考核 1目标填写 2目标确认 3目标驳回 4自评 5评分驳回 6上级评分 7结果确认 8修改评分 9 考核完成 10 终止考核 11绩效归档
*/
@Getter
enum AppraisalLogType implements JxglEnumInterface {
START(0, "发起考核"), TARGET_FILL_IN(1, "目标填写"),
TARGET_CONFIRMED(2, "目标确认"), TARGET_DISMISS(3, "目标驳回"),
SELF_ASSESSMENT(4, "自评"), SCORE_DISMISS(5, "评分驳回"),
SUPERIOR_SCORE(6, "上级评分"), RESULT_VERIFICATION(7, "结果确认"),
UPDATE_SCORE(8, "修改评分"), ASSESSMENT_COMPLETE(9, "考核完成"),
TERMINATION_ASSESSMENT(10, "终止考核"),PERFORMANCE_ARCHIVE(11, "绩效归档");
private Integer type;
private String name;
AppraisalLogType(Integer type, String name) {
this.type = type;
this.name = name;
}
}
}
...@@ -11,22 +11,7 @@ import lombok.Getter; ...@@ -11,22 +11,7 @@ import lombok.Getter;
@Getter @Getter
public enum CommonEnum { public enum CommonEnum {
NULL_STR(0,""), NULL_STR(0,""),
/**
* 1 超管理员
*/
U_TYPE_ADMIN(0, "超管理员"),
/**
* 2 子管理
*/
U_TYPE_C_ADMIN(1, "子管理"),
/**
* 3 普通员工
*/
U_TYPE_EMP(2, "普通员工"),
/** /**
* 0 关闭 * 0 关闭
...@@ -74,10 +59,6 @@ public enum CommonEnum { ...@@ -74,10 +59,6 @@ public enum CommonEnum {
*/ */
DEPT_TYPE_OFF(1,"关闭"), DEPT_TYPE_OFF(1,"关闭"),
/**
* 审批组-其他
*/
SPZ_OTHER(999999,"其他")
; ;
private Integer type; private Integer type;
......
package cn.timer.api.config.enums;
import lombok.Getter;
/**
* 角色类型
* @author Administrator
*
*/
@Getter
public enum SysRoleType {
/**
* 0 超管理员
*/
U_TYPE_ADMIN(0, "超管理员"),
/**
* 1 子管理
*/
U_TYPE_C_ADMIN(1, "子管理"),
/**
* 2 普通员工
*/
U_TYPE_EMP(2, "普通员工");
private Integer type;
private String desc;
SysRoleType(Integer type, String desc) {
this.type = type;
this.desc = desc;
}
public Integer getType() {
return this.type;
}
}
...@@ -10,10 +10,13 @@ import org.springframework.web.context.request.NativeWebRequest; ...@@ -10,10 +10,13 @@ import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.method.support.ModelAndViewContainer; import org.springframework.web.method.support.ModelAndViewContainer;
import cn.hutool.core.bean.BeanUtil;
import cn.timer.api.bean.qyzx.QyzxEmpLogin; import cn.timer.api.bean.qyzx.QyzxEmpLogin;
import cn.timer.api.bean.yggl.YgglMainEmp;
import cn.timer.api.config.annotation.CurrentUser; import cn.timer.api.config.annotation.CurrentUser;
import cn.timer.api.config.annotation.UserBean; import cn.timer.api.config.annotation.UserBean;
import cn.timer.api.controller.dzht.cn.tign.hz.constant.CacheKeyConstant; import cn.timer.api.controller.dzht.cn.tign.hz.constant.CacheKeyConstant;
import cn.timer.api.dto.yggl.UserInfo;
@Component @Component
public class UserMethodArgumentResolver implements HandlerMethodArgumentResolver { public class UserMethodArgumentResolver implements HandlerMethodArgumentResolver {
...@@ -38,19 +41,19 @@ public class UserMethodArgumentResolver implements HandlerMethodArgumentResolver ...@@ -38,19 +41,19 @@ public class UserMethodArgumentResolver implements HandlerMethodArgumentResolver
NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {
// String webRequestid = webRequest.getSessionId(); // String webRequestid = webRequest.getSessionId();
// String sessionid = session.getId(); // String sessionid = session.getId();
QyzxEmpLogin eld = (QyzxEmpLogin) session.getAttribute("ui");
String token = (String) session.getAttribute(CacheKeyConstant.TOKEN); QyzxEmpLogin eld = BeanUtil.toBean(session.getAttribute("ui"), QyzxEmpLogin.class);
String refreshToken = (String) session.getAttribute(CacheKeyConstant.REFRESH_TOKEN); String token = BeanUtil.toBean(session.getAttribute(CacheKeyConstant.TOKEN), String.class);
String refreshToken = BeanUtil.toBean(session.getAttribute(CacheKeyConstant.REFRESH_TOKEN), String.class);
// Object phone = webRequest.getAttribute(currentUserAnnotation.id(), // Object phone = webRequest.getAttribute(currentUserAnnotation.id(),
// NativeWebRequest.SCOPE_SESSION); // NativeWebRequest.SCOPE_SESSION);
Integer empNum = eld.getId();
Integer orgCode = eld.getOrgId(); YgglMainEmp mE = eld.getYgglMainEmp();
// Integer empNum = (Integer) redisTemplate.get("empNum:"+sessionid); UserInfo userInfo = UserInfo.builder().name(mE.getName()).phone(mE.getPhone()).bmgwId(mE.getBmgwId()).build();
// Integer orgCode = (Integer) redisTemplate.get("orgCode:"+sessionid);
UserBean userBean = UserBean.builder().token(token).refreshToken(refreshToken).empNum(empNum) return UserBean.builder().token(token).refreshToken(refreshToken).empNum(eld.getId())
.orgCode(orgCode).qyzxEmpLogin(eld).build(); .orgCode(eld.getOrgId()).userInfo(userInfo).qyzxEmpLogin(eld).build();
// log.info("webRequest:"+sessionid);
return userBean;
} }
} }
...@@ -21,10 +21,12 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -21,10 +21,12 @@ import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.timer.api.aspect.lang.annotation.Log; import cn.timer.api.aspect.lang.annotation.Log;
...@@ -43,9 +45,11 @@ import cn.timer.api.config.annotation.UserBean; ...@@ -43,9 +45,11 @@ import cn.timer.api.config.annotation.UserBean;
import cn.timer.api.config.enuminterface.YgEnumInterface; import cn.timer.api.config.enuminterface.YgEnumInterface;
import cn.timer.api.config.enuminterface.YgEnumInterface.YgJobType; import cn.timer.api.config.enuminterface.YgEnumInterface.YgJobType;
import cn.timer.api.config.enums.CommonEnum; import cn.timer.api.config.enums.CommonEnum;
import cn.timer.api.config.enums.SysRoleType;
import cn.timer.api.controller.spmk.service.SpmkServiceImpl; import cn.timer.api.controller.spmk.service.SpmkServiceImpl;
import cn.timer.api.dao.qyzx.QyzxEmpEntAssoMapper; import cn.timer.api.dao.qyzx.QyzxEmpEntAssoMapper;
import cn.timer.api.dao.qyzx.QyzxEmpLoginMapper; import cn.timer.api.dao.qyzx.QyzxEmpLoginMapper;
import cn.timer.api.dao.yggl.YgglMainEmpMapper;
import cn.timer.api.dao.zzgl.ZzglBmgwMMapper; import cn.timer.api.dao.zzgl.ZzglBmgwMMapper;
import cn.timer.api.dto.login.QysDto; import cn.timer.api.dto.login.QysDto;
import cn.timer.api.dto.qyzx.EntRegisterDto; import cn.timer.api.dto.qyzx.EntRegisterDto;
...@@ -144,6 +148,9 @@ public class LoginController { ...@@ -144,6 +148,9 @@ public class LoginController {
private ZzglBmgwMMapper zzglBmgwMMapper; private ZzglBmgwMMapper zzglBmgwMMapper;
@Autowired @Autowired
private YgglMainEmpMapper ygglMainEmpMapper;
@Autowired
private AliyunSMS aliyunSMS; private AliyunSMS aliyunSMS;
// @Autowired // @Autowired
...@@ -254,7 +261,8 @@ public class LoginController { ...@@ -254,7 +261,8 @@ public class LoginController {
String phone = entRegisterDto.getPhone(); String phone = entRegisterDto.getPhone();
String code = entRegisterDto.getCode().toString(); String code = entRegisterDto.getCode().toString();
// String codeRedis = (String) redisTemplate.get(phone); // String codeRedis = (String) redisTemplate.get(phone);
String codeRedis = session.getAttribute(phone).toString(); String codeRedis = BeanUtil.toBean(session.getAttribute(phone), String.class);
if (code == null || !code.equals(codeRedis)) { if (code == null || !code.equals(codeRedis)) {
return ResultUtil.error("验证码不符"); return ResultUtil.error("验证码不符");
} }
...@@ -315,8 +323,8 @@ public class LoginController { ...@@ -315,8 +323,8 @@ public class LoginController {
return ResultUtil.error("新密码与原密码相同,请修改后重试!"); return ResultUtil.error("新密码与原密码相同,请修改后重试!");
} }
} else { } else {
Object codeRedis = session.getAttribute(phone); String codeRedis = BeanUtil.toBean(session.getAttribute(phone), String.class);
if (!code.equals(codeRedis.toString())) { if (!code.equals(codeRedis)) {
return ResultUtil.error("短信验证码错误"); return ResultUtil.error("短信验证码错误");
} }
if (Md5.md5(pw).equals(dbPwd)) { if (Md5.md5(pw).equals(dbPwd)) {
...@@ -343,8 +351,7 @@ public class LoginController { ...@@ -343,8 +351,7 @@ public class LoginController {
String code = entRegisterDto.getCode(); String code = entRegisterDto.getCode();
if (entRegisterDto.getPwUpdateType() != 2) { if (entRegisterDto.getPwUpdateType() != 2) {
// String codeRedis =redisTemplate.get(phone).toString(); String codeRedis = BeanUtil.toBean(session.getAttribute(phone), String.class);
String codeRedis = session.getAttribute(phone).toString();
if (code == null) { if (code == null) {
return ResultUtil.error("请填写验证码"); return ResultUtil.error("请填写验证码");
} }
...@@ -404,7 +411,7 @@ public class LoginController { ...@@ -404,7 +411,7 @@ public class LoginController {
String phone = entRegisterDto.getPhone(); String phone = entRegisterDto.getPhone();
String code = entRegisterDto.getCode(); String code = entRegisterDto.getCode();
// String codeRedis = redisTemplate.get(phone).toString(); // String codeRedis = redisTemplate.get(phone).toString();
String codeRedis = (String) session.getAttribute(phone); String codeRedis = BeanUtil.toBean(session.getAttribute(phone), String.class);
if (code == null || !code.toString().equals(codeRedis)) { if (code == null || !code.toString().equals(codeRedis)) {
return ResultUtil.error("验证码不符/失效"); return ResultUtil.error("验证码不符/失效");
...@@ -457,7 +464,7 @@ public class LoginController { ...@@ -457,7 +464,7 @@ public class LoginController {
if (login != null) { if (login != null) {
Integer count = new LambdaQueryChainWrapper<QyzxEmpEntAsso>(qyzxEmpEntAssoMapper) Integer count = new LambdaQueryChainWrapper<QyzxEmpEntAsso>(qyzxEmpEntAssoMapper)
.eq(QyzxEmpEntAsso::getEmpNum, login.getId()) .eq(QyzxEmpEntAsso::getEmpNum, login.getId())
.eq(QyzxEmpEntAsso::getUserType, CommonEnum.U_TYPE_ADMIN.getType()).count(); .eq(QyzxEmpEntAsso::getUserType, SysRoleType.U_TYPE_ADMIN.getType()).count();
if (count > max) { if (count > max) {
return ResultUtil.error("已注册过企业"); return ResultUtil.error("已注册过企业");
...@@ -487,7 +494,7 @@ public class LoginController { ...@@ -487,7 +494,7 @@ public class LoginController {
} }
boolean b4 = YgglMainEmp.builder().orgCode(qyzxEntInfoM.getId()).empNum(login.getId()).rzTime(new Date()) boolean b4 = YgglMainEmp.builder().orgCode(qyzxEntInfoM.getId()).empNum(login.getId()).rzTime(new Date())
.isManager(CommonEnum.U_TYPE_ADMIN.getType()).name(username).phone(phone) .isManager(SysRoleType.U_TYPE_ADMIN.getType()).name(username).phone(phone)
.jobType(YgJobType.QUANZHI.getType()).jobStatus(YgEnumInterface.jobStatus.ZHENSHI.getType()).build() .jobType(YgJobType.QUANZHI.getType()).jobStatus(YgEnumInterface.jobStatus.ZHENSHI.getType()).build()
.insert(); .insert();
if (!b4) { if (!b4) {
...@@ -497,7 +504,7 @@ public class LoginController { ...@@ -497,7 +504,7 @@ public class LoginController {
// 员工企业关联表 // 员工企业关联表
QyzxEmpEntAsso qyzxEmpEntAsso = QyzxEmpEntAsso.builder().empNum(login.getId()).orgCode(qyzxEntInfoM.getId()) QyzxEmpEntAsso qyzxEmpEntAsso = QyzxEmpEntAsso.builder().empNum(login.getId()).orgCode(qyzxEntInfoM.getId())
.status(1).userType(CommonEnum.U_TYPE_ADMIN.getType()).build(); .status(1).userType(SysRoleType.U_TYPE_ADMIN.getType()).build();
boolean b3 = qyzxEmpEntAsso.insert(); boolean b3 = qyzxEmpEntAsso.insert();
if (!b3) { if (!b3) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
...@@ -533,10 +540,9 @@ public class LoginController { ...@@ -533,10 +540,9 @@ public class LoginController {
String code = entRegisterDto.getCode(); String code = entRegisterDto.getCode();
String phone = entRegisterDto.getPhone(); String phone = entRegisterDto.getPhone();
// Object codeRedis = redisTemplate.get(phone); String codeRedis = BeanUtil.toBean(session.getAttribute(phone), String.class);
Integer codeRedis = (Integer) session.getAttribute(phone);
if (codeRedis == null || !code.equals(codeRedis.toString())) if (codeRedis == null || !code.equals(codeRedis))
return ResultUtil.error("验证码不符"); return ResultUtil.error("验证码不符");
QyzxEmpLogin qyzxEmpLogin1 = new LambdaQueryChainWrapper<QyzxEmpLogin>(qyzxEmpLoginMapper) QyzxEmpLogin qyzxEmpLogin1 = new LambdaQueryChainWrapper<QyzxEmpLogin>(qyzxEmpLoginMapper)
...@@ -555,10 +561,13 @@ public class LoginController { ...@@ -555,10 +561,13 @@ public class LoginController {
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
List<QysDto> qys = qyzxEmpLoginMapper.getQys(qyzxEmpLogin1.getId()); List<QysDto> qys = qyzxEmpLoginMapper.getQys(qyzxEmpLogin1.getId());
if (qys.size() == 0) if (qys.size() == 0)
return ResultUtil.error("没有任何公司可以查看!"); return ResultUtil.error("没有任何公司可以查看!");
qyzxEmpLogin1.setQys(qys); qyzxEmpLogin1.setQys(qys);
QysDto ctrl = qys.get(0); QysDto ctrl = qys.get(0);
if (qyzxEmpLogin1.getOrgId() != null) { if (qyzxEmpLogin1.getOrgId() != null) {
...@@ -568,22 +577,24 @@ public class LoginController { ...@@ -568,22 +577,24 @@ public class LoginController {
} }
} }
// Stream<QysDto> s = qys.stream()
// .filter(item -> item.getStatus() == 1 && qyzxEmpLogin1.getOrgId().equals(item.getId()));
//
// if (s != null) {
// ctrl = s.findFirst().get();
// }
} }
YgglMainEmp userInfo = ygglMainEmpMapper.selectOne(new QueryWrapper<YgglMainEmp>().lambda()
.select(YgglMainEmp::getName,YgglMainEmp::getPhone,YgglMainEmp::getBmgwId)
.eq(YgglMainEmp::getEmpNum, qyzxEmpLogin1.getId())
.eq(YgglMainEmp::getOrgCode, qyzxEmpLogin1.getOrgId()));
if (userInfo == null) {
return ResultUtil.error("账号不存在");
}
qyzxEmpLogin1.setYgglMainEmp(userInfo);
if (ctrl.getStatus() == null || ctrl.getStatus().equals(0)) { if (ctrl.getStatus() == null || ctrl.getStatus().equals(0)) {
return ResultUtil.error("帐号被禁用"); return ResultUtil.error("帐号被禁用");
} }
qyzxEmpLogin1.setOrgId(ctrl.getId()); qyzxEmpLogin1.setOrgId(ctrl.getId());
@SuppressWarnings("unused")
String phone = qyzxEmpLogin1.getPhone(); if (SysRoleType.U_TYPE_ADMIN.getType().equals(ctrl.getUserType())
if (CommonEnum.U_TYPE_ADMIN.getType().equals(ctrl.getUserType()) || SysRoleType.U_TYPE_C_ADMIN.getType().equals(ctrl.getUserType())) {
|| CommonEnum.U_TYPE_C_ADMIN.getType().equals(ctrl.getUserType())) {
} else { } else {
// 获取权限 // 获取权限
ArrayList<Integer> list = new ArrayList<Integer>(); ArrayList<Integer> list = new ArrayList<Integer>();
...@@ -607,9 +618,7 @@ public class LoginController { ...@@ -607,9 +618,7 @@ public class LoginController {
// 需要更新最后一次登陆信息 // 需要更新最后一次登陆信息
// 用户信息缓存 // 用户信息缓存
session.setAttribute("ui", qyzxEmpLogin1); session.setAttribute("ui", qyzxEmpLogin1);
// redisTemplate.set("loginUser:" + phone, session.getId());
// redisTemplate.set("empNum:" + session.getId(), qyzxEmpLogin1.getId());
// redisTemplate.set("orgCode:" + session.getId(), qyzxEmpLogin1.getOrgId());
return ResultUtil.data(qyzxEmpLogin1); return ResultUtil.data(qyzxEmpLogin1);
} }
......
package cn.timer.api.controller.jxgl; package cn.timer.api.controller.jxgl;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.timer.api.aspect.lang.annotation.Role;
import cn.timer.api.bean.jxgl.JxglAppraisal;
import cn.timer.api.bean.jxgl.JxglAppraisalAssessment;
import cn.timer.api.bean.jxgl.JxglAppraisalIndicators;
import cn.timer.api.bean.jxgl.JxglAppraisalIndicatorsT;
import cn.timer.api.bean.jxgl.JxglAppraisalItem;
import cn.timer.api.bean.jxgl.JxglAppraisalItemT;
import cn.timer.api.bean.jxgl.JxglAppraisalLog;
import cn.timer.api.bean.jxgl.JxglAppraisalT;
import cn.timer.api.bean.jxgl.JxglBasicSetting; import cn.timer.api.bean.jxgl.JxglBasicSetting;
import cn.timer.api.bean.jxgl.JxglPerformanceAppraisal;
import cn.timer.api.bean.jxgl.JxglPerformanceRating; import cn.timer.api.bean.jxgl.JxglPerformanceRating;
import cn.timer.api.bean.jxgl.JxglProcessNode;
import cn.timer.api.bean.qyzx.QyzxEmpEntAsso; import cn.timer.api.bean.qyzx.QyzxEmpEntAsso;
import cn.timer.api.bean.spmk.SpmkApproveSummary;
import cn.timer.api.bean.yggl.YgglMainEmp;
import cn.timer.api.config.annotation.CurrentUser; import cn.timer.api.config.annotation.CurrentUser;
import cn.timer.api.config.annotation.UserBean; import cn.timer.api.config.annotation.UserBean;
import cn.timer.api.config.enums.CommonEnum; import cn.timer.api.config.enuminterface.JxglEnumInterface.AppraisalLogType;
import cn.timer.api.config.enuminterface.JxglEnumInterface.AppraisalSts;
import cn.timer.api.config.enuminterface.JxglEnumInterface.BeingAppraisalSts;
import cn.timer.api.config.enuminterface.JxglEnumInterface.BeingAppraisalType;
import cn.timer.api.config.enuminterface.JxglEnumInterface.ExecuteType;
import cn.timer.api.config.enuminterface.JxglEnumInterface.ProcessNodeSts;
import cn.timer.api.config.enuminterface.JxglEnumInterface.ProcessType;
import cn.timer.api.config.enums.SysRoleType;
import cn.timer.api.config.exception.CustomException;
import cn.timer.api.controller.yggl.service.YgglService;
import cn.timer.api.controller.zzgl.service.ZzglBmgwMService;
import cn.timer.api.dao.jxgl.JxglAppraisalAssessmentMapper;
import cn.timer.api.dao.jxgl.JxglAppraisalIndicatorsMapper;
import cn.timer.api.dao.jxgl.JxglAppraisalIndicatorsTMapper;
import cn.timer.api.dao.jxgl.JxglAppraisalItemMapper;
import cn.timer.api.dao.jxgl.JxglAppraisalItemTMapper;
import cn.timer.api.dao.jxgl.JxglAppraisalLogMapper;
import cn.timer.api.dao.jxgl.JxglAppraisalMapper;
import cn.timer.api.dao.jxgl.JxglAppraisalTMapper;
import cn.timer.api.dao.jxgl.JxglBasicSettingMapper; import cn.timer.api.dao.jxgl.JxglBasicSettingMapper;
import cn.timer.api.dao.jxgl.JxglPerformanceAppraisalMapper;
import cn.timer.api.dao.jxgl.JxglPerformanceRatingMapper; import cn.timer.api.dao.jxgl.JxglPerformanceRatingMapper;
import cn.timer.api.dao.jxgl.JxglProcessNodeMapper;
import cn.timer.api.dao.qyzx.QyzxEmpEntAssoMapper; import cn.timer.api.dao.qyzx.QyzxEmpEntAssoMapper;
import cn.timer.api.dao.yggl.YgglMainEmpMapper; import cn.timer.api.dao.yggl.YgglMainEmpMapper;
import cn.timer.api.dto.jxgl.BasicSettingDto; import cn.timer.api.dto.jxgl.AppraisalDetail;
import cn.timer.api.dto.jxgl.AppraisalQuery;
import cn.timer.api.dto.jxgl.BeingAppraisalPerson;
import cn.timer.api.dto.jxgl.EmpAppraisalQuery;
import cn.timer.api.dto.jxgl.EmpPerformanceQuery;
import cn.timer.api.dto.jxgl.PerformanceAppraisal;
import cn.timer.api.dto.jxgl.PerformanceAppraisalQuery;
import cn.timer.api.dto.jxgl.ProcessNode;
import cn.timer.api.dto.jxgl.ProcessNodeUpdate;
import cn.timer.api.utils.Result; import cn.timer.api.utils.Result;
import cn.timer.api.utils.ResultUtil; import cn.timer.api.utils.ResultUtil;
import cn.timer.api.utils.StreamUtils;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -47,6 +100,15 @@ public class JxglController { ...@@ -47,6 +100,15 @@ public class JxglController {
@Autowired @Autowired
private JxglPerformanceRatingMapper jxglPerformanceRatingMapper; private JxglPerformanceRatingMapper jxglPerformanceRatingMapper;
@Autowired
private JxglAppraisalTMapper jxglAppraisalTMapper;
@Autowired
private JxglAppraisalIndicatorsTMapper jxglAppraisalIndicatorsTMapper;
@Autowired
private JxglAppraisalItemTMapper jsxglAppraisalItemTMapper;
//TODO 基础设置 //TODO 基础设置
/** /**
* 新增或编辑-基础设置 * 新增或编辑-基础设置
...@@ -54,21 +116,23 @@ public class JxglController { ...@@ -54,21 +116,23 @@ public class JxglController {
@PostMapping(value = "/save_basic_setting") @PostMapping(value = "/save_basic_setting")
@ApiOperation(value = "1.新增或编辑-基础设置", httpMethod = "POST", notes = "新增或编辑-审批模板组") @ApiOperation(value = "1.新增或编辑-基础设置", httpMethod = "POST", notes = "新增或编辑-审批模板组")
@ApiOperationSupport(order = 1) @ApiOperationSupport(order = 1)
public Result<Object> saveAtg(@CurrentUser UserBean userBean ,@Validated @RequestBody BasicSettingDto basicSettingDto) throws Exception{ @Role
public Result<Object> saveAtg(@CurrentUser UserBean userBean ,@Validated @RequestBody JxglBasicSetting basicSetting) throws Exception{
Integer orgCode = userBean.getOrgCode(); Integer orgCode = userBean.getOrgCode();
Integer count = new LambdaQueryChainWrapper<QyzxEmpEntAsso>(qyzxEmpEntAssoMapper) Integer count = new LambdaQueryChainWrapper<QyzxEmpEntAsso>(qyzxEmpEntAssoMapper)
.eq(QyzxEmpEntAsso::getEmpNum, userBean.getEmpNum()) .eq(QyzxEmpEntAsso::getEmpNum, userBean.getEmpNum())
.in(QyzxEmpEntAsso::getUserType, CommonEnum.U_TYPE_ADMIN.getType(),CommonEnum.U_TYPE_C_ADMIN.getType()) .eq(QyzxEmpEntAsso::getOrgCode, orgCode)
.in(QyzxEmpEntAsso::getUserType, SysRoleType.U_TYPE_ADMIN.getType(),SysRoleType.U_TYPE_C_ADMIN.getType())
.count(); .count();
if (count <= 0) { if (count <= 0) {
return ResultUtil.error("无权限编辑"); return ResultUtil.error("无权限编辑");
} }
List<JxglPerformanceRating> listPr = basicSettingDto.getPerformanceRatings(); List<JxglPerformanceRating> listPr = basicSetting.getPerformanceRatings();
if (listPr != null) { if (listPr != null) {
for (JxglPerformanceRating pr : listPr) { for (JxglPerformanceRating pr : listPr) {
if (pr.getSectionMaxScore() > basicSettingDto.getMaxScore()) { if (pr.getSectionMaxScore() > basicSetting.getMaxScore()) {
return ResultUtil.error("区间值不能超过 最高分"); return ResultUtil.error("区间值不能超过 最高分");
}else if (pr.getSectionMinScore() >= pr.getSectionMaxScore()) { }else if (pr.getSectionMinScore() >= pr.getSectionMaxScore()) {
return ResultUtil.error("区间值 设置不正确"); return ResultUtil.error("区间值 设置不正确");
...@@ -87,20 +151,555 @@ public class JxglController { ...@@ -87,20 +151,555 @@ public class JxglController {
.eq(JxglBasicSetting::getOrgCode, orgCode)); .eq(JxglBasicSetting::getOrgCode, orgCode));
} }
basicSetting.setOrgCode(orgCode);
basicSetting.insert();
if (listPr != null && listPr.size() > 0) {
listPr.stream().forEach(pr -> pr.setBasicSettingId(basicSetting.getId()));
int i = jxglPerformanceRatingMapper.insertList(listPr);
}
return ResultUtil.success();
}
/**
* 查询-基础设置
*/
@GetMapping(value = "/select_basic_setting")
@ApiOperation(value = "2.查询-基础设置", httpMethod = "GET", notes = "查询-基础设置")
@ApiOperationSupport(order = 2)
@Role
public Result<Object> selectAT(@CurrentUser UserBean userBean){
JxglBasicSetting bS2 = JxglBasicSetting.builder().build(); JxglBasicSetting bS = jxglBasicSettingMapper.selectAll(userBean.getOrgCode());
BeanUtil.copyProperties(basicSettingDto, bS2, "performanceRatings");
bS2.setOrgCode(orgCode); return ResultUtil.data(bS);
bS2.insert();
if (listPr != null) { }
for (JxglPerformanceRating pr : listPr) {
pr.setBasicSettingId(bS2.getId());
jxglPerformanceRatingMapper.insert(pr);
//TODO 考核模板
/**
* 新增或编辑-考核模板
*/
@PostMapping(value = "/save_appraisal_t")
@ApiOperation(value = "3.新增或编辑-考核模板", httpMethod = "POST", notes = "新增或编辑-考核模板")
@ApiOperationSupport(order = 3)
@Role
public Result<Object> saveAtg(@CurrentUser UserBean userBean ,@Validated @RequestBody JxglAppraisalT jxglAppraisalT) throws Exception{
if (jxglAppraisalT.getId() != null && jxglAppraisalT.selectCount(new QueryWrapper<JxglAppraisalT>().lambda()
.eq(JxglAppraisalT::getId, jxglAppraisalT.getId())) > 0) {
jxglAppraisalT.updateById();
}else {
jxglAppraisalT.setOrgCode(userBean.getOrgCode());
jxglAppraisalT.insert();
}
LambdaQueryWrapper<JxglAppraisalIndicatorsT> q = new QueryWrapper<JxglAppraisalIndicatorsT>().lambda()
.eq(JxglAppraisalIndicatorsT::getAppraisalTId, jxglAppraisalT.getId());
List<JxglAppraisalIndicatorsT> listAIT = jxglAppraisalIndicatorsTMapper.selectList(q.select(JxglAppraisalIndicatorsT::getId));
List<Integer> listAITId = listAIT != null && listAIT.size() > 0 ? listAIT.stream().map(JxglAppraisalIndicatorsT::getId).collect(Collectors.toList()) : null;
// 删除 原 考核指标模板
jxglAppraisalIndicatorsTMapper.delete(q);
// 删除 原 考核项模板
if (listAITId != null) {
jsxglAppraisalItemTMapper.delete(new QueryWrapper<JxglAppraisalItemT>().lambda()
.in(JxglAppraisalItemT::getAppraisalIndicatorsTId, listAITId));
}
List<JxglAppraisalIndicatorsT> aITs = jxglAppraisalT.getAppraisalIndicatorsTs();
for (JxglAppraisalIndicatorsT aIT : aITs) {
aIT.setAppraisalTId(jxglAppraisalT.getId());
// 新增 考核指标模板
if (aIT.insert()) {
List<JxglAppraisalItemT> aItemTs = aIT.getAppraisalItemTs();
if (aItemTs != null && aItemTs.size() > 0) {
// 批量新增 考核项模板
aItemTs.stream().forEach(aItemT -> aItemT.setAppraisalIndicatorsTId(aIT.getId()));
int c = jsxglAppraisalItemTMapper.insertList(aItemTs);
}
}else {
throw new Exception();
} }
} }
return ResultUtil.success(); return ResultUtil.success();
}
/**
* 查询-考核模板-列表
*/
@GetMapping(value = "/selects_appraisal_t")
@ApiOperation(value = "4.查询-考核模板-列表", httpMethod = "GET", notes = "查询-考核模板-列表")
@ApiOperationSupport(order = 4)
@Role
public Result<Object> selectListAT(@CurrentUser UserBean userBean, cn.timer.api.utils.Page page){
IPage<JxglAppraisalT> p = new Page<JxglAppraisalT>(page.getCurrentPage(),page.getTotalPage());
IPage<JxglAppraisalT> pageAT = jxglAppraisalTMapper.selectPage(p, new QueryWrapper<JxglAppraisalT>().lambda()
.eq(JxglAppraisalT::getOrgCode, userBean.getOrgCode()));
List<JxglAppraisalT> listAT = pageAT.getRecords();
return ResultUtil.data(pageAT, listAT);
}
/**
* 查询-考核模板-详情
*/
@GetMapping(value = "/selects_appraisal_t/{id}")
@ApiOperation(value = "5.查询-考核模板-详情", httpMethod = "GET", notes = "查询-考核模板-详情")
@ApiOperationSupport(order = 5)
@Role
public Result<Object> selectAT(@CurrentUser UserBean userBean,@PathVariable Integer id){
JxglAppraisalT aT = jxglAppraisalTMapper.selectDetailById(id);
return ResultUtil.data(aT);
}
/**
* 删除-考核模板
*/
@DeleteMapping(value = "/del_appraisal_t/{id}")
@ApiOperation(value = "6.删除-考核模板", httpMethod = "DELETE", notes = "删除-考核模板")
@ApiOperationSupport(order = 6)
@Role
public Result<Object> delAT(@CurrentUser UserBean userBean,@PathVariable Integer id) throws Exception{
jxglAppraisalTMapper.delete(new QueryWrapper<JxglAppraisalT>().lambda()
.eq(JxglAppraisalT::getId, id)
.eq(JxglAppraisalT::getOrgCode, userBean.getOrgCode()));
return ResultUtil.success();
}
@Autowired
private ZzglBmgwMService zzglBmgwMService;
@Autowired
private YgglService ygglService;
@Autowired
private JxglPerformanceAppraisalMapper jxglPerformanceAppraisalMapper;
@Autowired
private JxglAppraisalMapper jxglAppraisalMapper;
@Autowired
private JxglAppraisalIndicatorsMapper jxglAppraisalIndicatorsMapper;
@Autowired
private JxglAppraisalItemMapper jsxglAppraisalItemMapper;
@Autowired
private JxglAppraisalLogMapper jxglAppraisalLogMapper;
@Autowired
private YgglMainEmpMapper ygglMainEmpMapper;
/**
* 新增-绩效考核
*/
@PostMapping(value = "/save_performance_appraisal")
@ApiOperation(value = "7.新增-绩效考核", httpMethod = "POST", notes = "新增-绩效考核")
@ApiOperationSupport(order = 7)
public Result<Object> savePA(@CurrentUser UserBean userBean,@Validated @RequestBody PerformanceAppraisal performanceAppraisal) throws Exception{
Integer orgCode = userBean.getOrgCode();
JxglPerformanceAppraisal pA = JxglPerformanceAppraisal.builder().build();
BeanUtil.copyProperties(performanceAppraisal, pA, "processNode","beingAppraisalPerson","appraisalTId");
pA.setProcessNode(ObjectUtil.serialize(performanceAppraisal.getProcessNode()));
pA.setBeingAppraisalPerson(ObjectUtil.serialize(performanceAppraisal.getBeingAppraisalPerson()));
System.out.println("新增 绩效考核 :" + pA);
List<ProcessNode> listPN = performanceAppraisal.getProcessNode();
List<BeingAppraisalPerson> listBAP = performanceAppraisal.getBeingAppraisalPerson();
// 被考核人员
List<Integer> listEmpId = listBAP.stream()
.filter(bAP ->
BeingAppraisalType.EMPLOYEE.getType().equals(bAP.getType()) &&
BeingAppraisalSts.NEED.getType().equals(bAP.getSts()))
.map(BeingAppraisalPerson::getId)
.collect(Collectors.toList());
// 被考核部门id
List<Integer> listDeptId = listBAP.stream()
.filter(bAP ->
BeingAppraisalType.DEPARTMENT.getType().equals(bAP.getType()))
.map(BeingAppraisalPerson::getId)
.collect(Collectors.toList());
List<YgglMainEmp> listEmp2 = ListUtil.toList();
for (Integer deptId : listDeptId) {
CollUtil.addAll(listEmp2, zzglBmgwMService.selectOtherlistent(userBean.getOrgCode(), deptId));
}
if (!CollUtil.isEmpty(listEmp2)) {
// 员工信息数据 去重
List<Integer> listEmp2Id = listEmp2.stream()
.filter(StreamUtils.distinctByKey(e -> e.getEmpNum()))
.map(YgglMainEmp::getEmpNum)
.collect(Collectors.toList());
// 合并 集合
CollUtil.addAll(listEmpId, listEmp2Id);
}
// 无需被考核人id
List<Integer> listNotEmpId = listBAP.stream()
.filter(bAP ->
BeingAppraisalType.EMPLOYEE.getType().equals(bAP.getType()) &&
BeingAppraisalSts.NOT_NEED.getType().equals(bAP.getSts()))
.map(BeingAppraisalPerson::getId)
.collect(Collectors.toList());
// 过滤掉 无需被考核人id
listEmpId = listEmpId.stream().filter(e -> !listNotEmpId.contains(e)).collect(Collectors.toList());
pA.setAppraisalPersonNum(listEmpId.size());
// 新增 绩效考核
pA.insert();
// 考核模板
JxglAppraisalT aT = jxglAppraisalTMapper.selectById(performanceAppraisal.getAppraisalTId());
if (aT == null) {
throw new CustomException("考核模板不存在");
}
JxglProcessNode processNode = JxglProcessNode.builder().build();
JxglAppraisal appraisal = JxglAppraisal.builder().build();
JxglAppraisalIndicators appraisalIndicators = JxglAppraisalIndicators.builder().build();
JxglAppraisalItem appraisalItem = JxglAppraisalItem.builder().build();
JxglAppraisalLog appraisalLog = JxglAppraisalLog.builder().build();
System.out.println("listEmpId----"+listEmpId);
for (Integer bAP : listEmpId) {
// 考核
appraisal.setPerformanceAppraisalId(pA.getId());
appraisal.setEmpNum(bAP);
appraisal.setName(aT.getName());
appraisal.setAppraisalExplain(aT.getAppraisalExplain());
appraisal.setSts(AppraisalSts.TARGET_FILL_IN.getType());
// 新增 考核
appraisal.insert();
System.out.println("新增 考核:" + appraisal);
listPN.stream().forEach(pN -> {
Integer executeType = pN.getExecuteType();
// 流程节点
processNode.setAppraisalId(appraisal.getId());
processNode.setExecuteType(executeType);
processNode.setLeaderTier(pN.getLeaderTier());
processNode.setName(ExecuteType.getName(executeType));
Integer processType = pN.getProcessType();
processNode.setProcessType(processType);
if (ProcessType.TARGET_FILL_IN.getType().equals(processType)) {
processNode.setSts(ProcessNodeSts.IN_EXECUTION.getType());
}else {
processNode.setSts(ProcessNodeSts.NON_EXECUTION.getType());
}
processNode.setWeight(pN.getWeight());
if (ExecuteType.BEING_APPRAISAL_PERSON.getType().equals(executeType)) {
processNode.setExecutorId(bAP);
}else if (ExecuteType.LEADER.getType().equals(executeType)) {
processNode.setExecutorId(ygglService.selectLeaderEmpNumById(userBean.getOrgCode(), bAP, pN.getLeaderTier()));
}else if (ExecuteType.SPECIFIED_MEMBER.getType().equals(executeType)) {
processNode.setExecutorId(pN.getExecutorId());
}
// 新增 流程节点
processNode.insert();
System.out.println("新增 流程节点:" + processNode);
});
List<JxglAppraisalIndicatorsT> listAIT = jxglAppraisalIndicatorsTMapper.selectList(new QueryWrapper<JxglAppraisalIndicatorsT>().lambda()
.eq(JxglAppraisalIndicatorsT::getAppraisalTId, aT.getId()));
if (listAIT == null || listAIT.size() <= 0) {
throw new CustomException("考核指标不存在");
}
listAIT.stream().forEach(aIT -> {
// 考核指标
BeanUtil.copyProperties(aIT, appraisalIndicators, "appraisalId", "createTime", "updateTime");
appraisalIndicators.setAppraisalId(appraisal.getId());
// 新增 考核指标
appraisalIndicators.insert();
System.out.println("新增 考核指标:" + appraisalIndicators);
List<JxglAppraisalItemT> listAItemT = jsxglAppraisalItemTMapper.selectList(new QueryWrapper<JxglAppraisalItemT>().lambda()
.eq(JxglAppraisalItemT::getAppraisalIndicatorsTId, aIT.getId()));
if (listAItemT != null && listAItemT.size() > 0) {
listAItemT.stream().forEach(aItemT -> {
BeanUtil.copyProperties(aItemT, appraisalItem, "appraisalIndicatorsTId");
appraisalItem.setAppraisalIndicatorsId(appraisalIndicators.getId());
// 新增 考核项
appraisalItem.insert();
System.out.println("新增 考核项:" + appraisalItem);
});
}
});
YgglMainEmp yME = ygglMainEmpMapper.selectOne(new QueryWrapper<YgglMainEmp>().lambda()
.select(YgglMainEmp::getName)
.eq(YgglMainEmp::getOrgCode, orgCode)
.eq(YgglMainEmp::getEmpNum, bAP));
appraisalLog.setAppraisalId(appraisal.getId());
appraisalLog.setExecutorId(bAP);
appraisalLog.setExecutorName(yME.getName());
appraisalLog.setType(AppraisalLogType.START.getType());
appraisalLog.insert();
}
// System.out.println("listEmpId----"+listEmpId);
// System.out.println(listDeptId);
// System.out.println(listNotEmpId);
return ResultUtil.success();
} }
/**
* 查询-绩效考核-列表-归档
*/
@PostMapping(value = "/selects_performance_appraisal_archive")
@ApiOperation(value = "8.查询-绩效考核-列表-非归档", httpMethod = "POST", notes = "查询-绩效考核-列表-非归档")
@ApiOperationSupport(order = 8)
@Role
public Result<Object> selectsPAArchive(@CurrentUser UserBean userBean,@RequestBody PerformanceAppraisalQuery query){
IPage<SpmkApproveSummary> page = new Page<SpmkApproveSummary>(query.getCurrentPage(),query.getTotalPage());
query.setOrgCode(userBean.getOrgCode());
IPage<JxglPerformanceAppraisal> pagePA = jxglPerformanceAppraisalMapper.selectArchiveListByQuery(page, query);
List<JxglPerformanceAppraisal> listPA = pagePA.getRecords();
return ResultUtil.data(pagePA,listPA);
}
/**
* 查询-绩效考核-列表-非归档
*/
@PostMapping(value = "/selects_performance_appraisal")
@ApiOperation(value = "9.查询-绩效考核-列表-归档", httpMethod = "POST", notes = "查询-绩效考核-列表-归档")
@ApiOperationSupport(order = 9)
@Role
public Result<Object> selectsPA(@CurrentUser UserBean userBean,@RequestBody PerformanceAppraisalQuery query){
IPage<SpmkApproveSummary> page = new Page<SpmkApproveSummary>(query.getCurrentPage(),query.getTotalPage());
query.setOrgCode(userBean.getOrgCode());
IPage<JxglPerformanceAppraisal> pagePA = jxglPerformanceAppraisalMapper.selectListByQuery(page, query);
List<JxglPerformanceAppraisal> listPA = pagePA.getRecords();
return ResultUtil.data(pagePA,listPA);
}
/**
* 查询-考核-列表
*/
@PostMapping(value = "/selects_appraisal")
@ApiOperation(value = "10.查询-考核-列表", httpMethod = "POST", notes = "查询-考核-列表")
@ApiOperationSupport(order = 10)
@Role
public Result<Object> selectsA(@CurrentUser UserBean userBean,@RequestBody AppraisalQuery query){
IPage<JxglAppraisal> page = new Page<JxglAppraisal>(query.getCurrentPage(),query.getTotalPage());
query.setOrgCode(userBean.getOrgCode());
IPage<JxglAppraisal> pageA = jxglAppraisalMapper.selectListByQuery(page, query);
List<JxglAppraisal> listPA = pageA.getRecords();
return ResultUtil.data(pageA,listPA);
}
/**
* 查询-考核-详情
*/
@GetMapping(value = "/select_appraisal/{id}")
@ApiOperation(value = "11.查询-考核-详情", httpMethod = "GET", notes = "查询-考核-详情")
@ApiOperationSupport(order = 11)
@Role
public Result<Object> selectA(@CurrentUser UserBean userBean,@PathVariable Integer id){
AppraisalDetail aD = jxglAppraisalMapper.selectDetailById(userBean.getOrgCode(), id);
return ResultUtil.data(aD);
}
/**
* 修改-流程执行人-转派
*/
@PutMapping(value = "/update_process_node")
@ApiOperation(value = "12.修改-流程执行人-转派", httpMethod = "PUT", notes = "修改-流程执行人-转派")
@ApiOperationSupport(order = 12)
@Role
public Result<Object> updatePN(@CurrentUser UserBean userBean,@RequestBody ProcessNodeUpdate processNodeUpdate){
Integer count2 = jxglAppraisalMapper.selectCount(new QueryWrapper<JxglAppraisal>().lambda()
.eq(JxglAppraisal::getId, processNodeUpdate.getAppraisalId())
.in(JxglAppraisal::getSts, AppraisalSts.ASSESSMENT_COMPLETE.getType(),
AppraisalSts.TERMINATION_ASSESSMENT.getType(),
AppraisalSts.PERFORMANCE_ARCHIVE.getType()));
if (count2 > 0) {
return ResultUtil.error("考核已结束");
}
JxglProcessNode pN = JxglProcessNode.builder().build();
BeanUtil.copyProperties(processNodeUpdate, pN);
pN.updateById();
return ResultUtil.data(pN);
}
/**
* 终止-考核
*/
@PutMapping(value = "/termination_assessment")
@ApiOperation(value = "13.终止-考核", httpMethod = "PUT", notes = "终止-考核")
@ApiOperationSupport(order = 13)
@Role
public Result<Object> terminationAssessment(@CurrentUser UserBean userBean,@PathVariable Integer id){
JxglAppraisal.builder().id(id).sts(AppraisalSts.TERMINATION_ASSESSMENT.getType()).build().updateById();
return ResultUtil.success();
}
@Autowired
private JxglAppraisalAssessmentMapper appraisalAssessmentMapper;
@Autowired
private JxglProcessNodeMapper processNodeMapper;
/**
* 新增-考核评定
*/
@PutMapping(value = "/save_appraisal_assessment")
@ApiOperation(value = "13.新增-考核评定", httpMethod = "PUT", notes = "新增-考核评定")
@ApiOperationSupport(order = 13)
public Result<Object> saveAA(@CurrentUser UserBean userBean,@RequestBody JxglAppraisalAssessment appraisalAssessment){
Integer count2 = jxglAppraisalMapper.selectCount(new QueryWrapper<JxglAppraisal>().lambda()
.eq(JxglAppraisal::getId, appraisalAssessment.getAppraisalId())
.in(JxglAppraisal::getSts, AppraisalSts.ASSESSMENT_COMPLETE.getType(),
AppraisalSts.TERMINATION_ASSESSMENT.getType(),
AppraisalSts.PERFORMANCE_ARCHIVE.getType()));
if (count2 > 0) {
return ResultUtil.error("考核已结束");
}
Integer empNum = userBean.getEmpNum();
JxglProcessNode pN = processNodeMapper.selectOne(new QueryWrapper<JxglProcessNode>().lambda()
.in(JxglProcessNode::getProcessType, ProcessType.SELF_ASSESSMENT,ProcessType.SUPERIOR_SCORE));
if (pN == null) {
return ResultUtil.error("在该流程状态 无法评价");
}else if (!empNum.equals(pN.getExecutorId())) {
return ResultUtil.error("无权限 评价");
}
appraisalAssessment.setAssessorName(userBean.getUserInfo().getName());
appraisalAssessment.setAssessorId(userBean.getEmpNum());
appraisalAssessment.insert();
return ResultUtil.data(appraisalAssessment);
}
/**
* 查询-所有员工绩效-汇总
*/
@PostMapping(value = "/selects_emp_performance")
@ApiOperation(value = "14.查询-所有员工绩效-汇总", httpMethod = "POST", notes = "查询-所有员工绩效-汇总")
@ApiOperationSupport(order = 14)
@Role
public Result<Object> selectsEP(@CurrentUser UserBean userBean,@RequestBody EmpPerformanceQuery query){
IPage<JxglAppraisal> page = new Page<JxglAppraisal>(query.getCurrentPage(),query.getTotalPage());
query.setOrgCode(userBean.getOrgCode());
IPage<JxglAppraisal> pageA = jxglAppraisalMapper.selectListEmpByQuery(page, query);
List<JxglAppraisal> listA = pageA.getRecords();
return ResultUtil.data(pageA,listA);
}
/**
* 查询-某员工考核-列表
*/
@PostMapping(value = "/selects_emp_appraisal")
@ApiOperation(value = "15.查询-某员工考核-列表", httpMethod = "POST", notes = "查询-某员工考核-列表")
@ApiOperationSupport(order = 15)
@Role
public Result<Object> selectsEA(@CurrentUser UserBean userBean,@RequestBody EmpAppraisalQuery query){
IPage<JxglPerformanceAppraisal> page = new Page<JxglPerformanceAppraisal>(query.getCurrentPage(),query.getTotalPage());
query.setOrgCode(userBean.getOrgCode());
IPage<JxglPerformanceAppraisal> pagePA = jxglPerformanceAppraisalMapper.selectListEmpByQuery(page, query);
List<JxglPerformanceAppraisal> listPA = pagePA.getRecords();
return ResultUtil.data(pagePA,listPA);
}
/**
* 查询-绩效考核-方案
*/
@GetMapping(value = "/selects_performance_appraisal/{id}")
@ApiOperation(value = "16.查询-绩效考核-方案", httpMethod = "GET", notes = "查询-绩效考核-方案")
@ApiOperationSupport(order = 16)
@Role
public Result<Object> selectPA(@CurrentUser UserBean userBean,@PathVariable Integer id){
JxglPerformanceAppraisal pA = jxglPerformanceAppraisalMapper.selectById(id);
if (pA == null) {
return ResultUtil.error("方案不存在");
}
PerformanceAppraisal paDto = PerformanceAppraisal.builder()
.name(pA.getName())
.period(pA.getPeriod())
.appraisalStartTime(pA.getAppraisalStartTime())
.appraisalEndTime(pA.getAppraisalEndTime())
.isVisible(pA.getIsVisible())
.scope(pA.getScope())
.appraisalTName(pA.getAppraisalTName())
.processNode(ObjectUtil.deserialize(pA.getProcessNode()))
.beingAppraisalPerson(ObjectUtil.deserialize(pA.getBeingAppraisalPerson()))
.build();
return ResultUtil.data(paDto);
}
} }
...@@ -12,7 +12,6 @@ import java.util.Date; ...@@ -12,7 +12,6 @@ import java.util.Date;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Map;
import java.util.Set; import java.util.Set;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -32,19 +31,15 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -32,19 +31,15 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestClientException;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.additional.query.impl.LambdaQueryChainWrapper;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import cn.hutool.json.JSONObject;
import cn.timer.api.bean.kqgl.AttCalendarAlarm; import cn.timer.api.bean.kqgl.AttCalendarAlarm;
import cn.timer.api.bean.kqgl.AttClockMethod; import cn.timer.api.bean.kqgl.AttClockMethod;
import cn.timer.api.bean.kqgl.AttConditions; import cn.timer.api.bean.kqgl.AttConditions;
...@@ -75,8 +70,6 @@ import cn.timer.api.bean.kqgl.ShiftDetails; ...@@ -75,8 +70,6 @@ import cn.timer.api.bean.kqgl.ShiftDetails;
import cn.timer.api.bean.kqgl.ShiftManagement; import cn.timer.api.bean.kqgl.ShiftManagement;
import cn.timer.api.bean.kqgl.SpecialDate; import cn.timer.api.bean.kqgl.SpecialDate;
import cn.timer.api.bean.kqgl.SystemShift; import cn.timer.api.bean.kqgl.SystemShift;
import cn.timer.api.bean.kqgl.TBlFkcmdTrans;
import cn.timer.api.bean.kqgl.TBlFkcmdTransCmdParam;
import cn.timer.api.bean.kqgl.UserAttendanceRel; import cn.timer.api.bean.kqgl.UserAttendanceRel;
import cn.timer.api.bean.kqgl.UserEquiRelation; import cn.timer.api.bean.kqgl.UserEquiRelation;
import cn.timer.api.bean.yggl.YgglMainEmp; import cn.timer.api.bean.yggl.YgglMainEmp;
...@@ -88,7 +81,6 @@ import cn.timer.api.dao.kqgl.AttendanceGroupMapper; ...@@ -88,7 +81,6 @@ import cn.timer.api.dao.kqgl.AttendanceGroupMapper;
import cn.timer.api.dao.kqgl.AttendanceMachineMapper; import cn.timer.api.dao.kqgl.AttendanceMachineMapper;
import cn.timer.api.dao.kqgl.AttendanceWeeklySchMapper; import cn.timer.api.dao.kqgl.AttendanceWeeklySchMapper;
import cn.timer.api.dao.kqgl.CalendarAlarmMapper; import cn.timer.api.dao.kqgl.CalendarAlarmMapper;
import cn.timer.api.dao.kqgl.KqglAssoKqjglyMapper;
import cn.timer.api.dao.kqgl.PunchCardAddressMapper; import cn.timer.api.dao.kqgl.PunchCardAddressMapper;
import cn.timer.api.dao.kqgl.PunchCardDetailsMapper; import cn.timer.api.dao.kqgl.PunchCardDetailsMapper;
import cn.timer.api.dao.kqgl.PunchCardWiFiMapper; import cn.timer.api.dao.kqgl.PunchCardWiFiMapper;
...@@ -98,15 +90,11 @@ import cn.timer.api.dao.kqgl.ShiftManagementMapper; ...@@ -98,15 +90,11 @@ import cn.timer.api.dao.kqgl.ShiftManagementMapper;
import cn.timer.api.dao.kqgl.SpecialDateMapper; import cn.timer.api.dao.kqgl.SpecialDateMapper;
import cn.timer.api.dao.kqgl.UserAttendanceRelMapper; import cn.timer.api.dao.kqgl.UserAttendanceRelMapper;
import cn.timer.api.dao.kqgl.UserEquiRelationMapper; import cn.timer.api.dao.kqgl.UserEquiRelationMapper;
import cn.timer.api.dao.kqjg.KqjgRealtimeEnrollDataMapper;
import cn.timer.api.dao.kqmk.KqglMainKqzMapper; import cn.timer.api.dao.kqmk.KqglMainKqzMapper;
import cn.timer.api.dao.yggl.YgglMainEmpMapper; import cn.timer.api.dao.yggl.YgglMainEmpMapper;
import cn.timer.api.dto.kqgl.AttemacDto;
import cn.timer.api.dto.kqgl.MachinememberDto;
import cn.timer.api.dto.kqmk.AttqueryCriteriaDto; import cn.timer.api.dto.kqmk.AttqueryCriteriaDto;
import cn.timer.api.dto.kqmk.KqglMainKqzDto; import cn.timer.api.dto.kqmk.KqglMainKqzDto;
import cn.timer.api.utils.DateUtil; import cn.timer.api.utils.DateUtil;
import cn.timer.api.utils.ResponseResult;
import cn.timer.api.utils.Result; import cn.timer.api.utils.Result;
import cn.timer.api.utils.ResultUtil; import cn.timer.api.utils.ResultUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -156,16 +144,10 @@ public class AttController { ...@@ -156,16 +144,10 @@ public class AttController {
//打卡明细表 //打卡明细表
@Autowired @Autowired
private PunchCardDetailsMapper punchcarddetailsservice; private PunchCardDetailsMapper punchcarddetailsservice;
//用户与设备关系表 //用户与设备关系表
@Autowired @Autowired
private UserEquiRelationMapper userequirelationmapper; private UserEquiRelationMapper userequirelationmapper;
@Autowired
private YgglMainEmpMapper ygglmainempmapper;
@Autowired @Autowired
private SpecialDateMapper specialdateservice; private SpecialDateMapper specialdateservice;
//日历提醒 //日历提醒
...@@ -187,9 +169,7 @@ public class AttController { ...@@ -187,9 +169,7 @@ public class AttController {
@ApiOperationSupport(order = 1) @ApiOperationSupport(order = 1)
public Result<PageInfo<ShiftManagement>> getShiftDataList(@CurrentUser UserBean userBean,@ApiParam("当前页") @RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum, public Result<PageInfo<ShiftManagement>> getShiftDataList(@CurrentUser UserBean userBean,@ApiParam("当前页") @RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum,
@ApiParam("每页条数") @RequestParam(value = "pageSize", required = false, defaultValue = "9999") Integer pageSize) { @ApiParam("每页条数") @RequestParam(value = "pageSize", required = false, defaultValue = "9999") Integer pageSize) {
int qyid = userBean.getOrgCode();//坏小孩【企业id】 int qyid = userBean.getOrgCode();//坏小孩【企业id】
PageHelper.startPage(pageNum, pageSize); PageHelper.startPage(pageNum, pageSize);
List<ShiftManagement> shiftList = shiftmanagementservice.selectByPrimaryByQyid(qyid); List<ShiftManagement> shiftList = shiftmanagementservice.selectByPrimaryByQyid(qyid);
PageInfo<ShiftManagement> pageInfo = new PageInfo<>(shiftList); PageInfo<ShiftManagement> pageInfo = new PageInfo<>(shiftList);
...@@ -203,7 +183,6 @@ public class AttController { ...@@ -203,7 +183,6 @@ public class AttController {
@ApiOperation(value = "新增班次信息", httpMethod = "POST", notes = "接口发布说明") @ApiOperation(value = "新增班次信息", httpMethod = "POST", notes = "接口发布说明")
@ApiOperationSupport(order = 2) @ApiOperationSupport(order = 2)
public Result<ShiftManagement> ShiftInformation(@CurrentUser UserBean userBean,@RequestBody ShiftManagement shif) { public Result<ShiftManagement> ShiftInformation(@CurrentUser UserBean userBean,@RequestBody ShiftManagement shif) {
// int qyid = 2000021;//坏小孩123【企业id】
int qyid = userBean.getOrgCode();//坏小孩【企业id】 int qyid = userBean.getOrgCode();//坏小孩【企业id】
int userid = userBean.getEmpNum();//用户id int userid = userBean.getEmpNum();//用户id
...@@ -1535,38 +1514,20 @@ public class AttController { ...@@ -1535,38 +1514,20 @@ public class AttController {
} }
userequirelationmapper.insert(uskqj); userequirelationmapper.insert(uskqj);
} }
Integer orgCode = userBean.getOrgCode();
QueryWrapper<YgglMainEmp> queryWrapper = new QueryWrapper<>(); YgglMainEmp yggluser = YgglMainEmp.builder().build().selectOne(new QueryWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getOrgCode, userBean.getOrgCode()).eq(YgglMainEmp::getEmpNum, attser[u]));
queryWrapper.eq("org_code", orgCode).eq("emp_num", attser[u]); String url = StaticVariable.mac_command+"/addUserName";
YgglMainEmp yggluser = YgglMainEmp.builder().build().selectOne(queryWrapper);
user_id=attser[u];//
user_name=yggluser.getName();//
DevId=kqj.getCode();//考勤机--设备编码
if(user_id == null || DevId == null){
try {
throw new Exception("User_ID or DevId is null");
} catch (Exception e) {
e.printStackTrace();
}
}
if(user_name == null){
user_name = "";
}
JSONObject vResultJson = new JSONObject();
vResultJson.put("user_id", user_id);
vResultJson.put("user_name", user_name);
vResultJson.put("user_privilege", "USER");
String sFinal = vResultJson.toString();
String url = StaticVariable.mac_command;
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
params.add("cmd", "SET_USER_INFO"); params.add("devId", kqj.getCode());
params.add("devid", DevId); params.add("userId", attser[u]);
params.add("json", sFinal); params.add("userName", yggluser.getName());
RestTemplate restTemplate = new RestTemplate(); RestTemplate restTemplate = new RestTemplate();
HttpEntity httpEntity = new HttpEntity(params, headers); HttpEntity httpEntity = new HttpEntity(params, headers);
ResponseEntity<String> request = restTemplate.postForEntity(url, httpEntity, String.class); ResponseEntity<String> request = restTemplate.postForEntity(url, httpEntity, String.class);
System.out.println("|============修改(新增)=================== |"); System.err.print(request.getBody());
} }
/*****************************************************************************/ /*****************************************************************************/
} }
...@@ -5022,53 +4983,53 @@ public class AttController { ...@@ -5022,53 +4983,53 @@ public class AttController {
/** /**
* 考勤机一键同步 * 考勤机一键同步
*/ */
@GetMapping(value="/synchroni/{id}") // @GetMapping(value="/synchroni/{id}")
@ApiOperation(value = "考勤机一键同步", httpMethod = "GET", notes = "接口发布说明") // @ApiOperation(value = "考勤机一键同步", httpMethod = "GET", notes = "接口发布说明")
@ApiOperationSupport(order = 54) // @ApiOperationSupport(order = 54)
public Result<AttemacDto> synchroni(@CurrentUser UserBean userBean,@PathVariable("id") Integer id) { // public Result<AttemacDto> synchroni(@CurrentUser UserBean userBean,@PathVariable("id") Integer id) {
Integer orgCode = userBean.getOrgCode(); // Integer orgCode = userBean.getOrgCode();
//
List<UserAttendanceRel> member = userattendancerelservice.selectAttNotMember(id,orgCode); // List<UserAttendanceRel> member = userattendancerelservice.selectAttNotMember(id,orgCode);
//
AttendanceMachine kqj = attendancemachineservice.selectByPrimaryKey(id);//查询考勤机“序列号” // AttendanceMachine kqj = attendancemachineservice.selectByPrimaryKey(id);//查询考勤机“序列号”
//
for(UserAttendanceRel usmer:member) { // for(UserAttendanceRel usmer:member) {
//
YgglMainEmp user = new LambdaQueryChainWrapper<YgglMainEmp>(ygglmainempmapper).eq(YgglMainEmp::getEmpNum, usmer.getUserid()) // YgglMainEmp user = new LambdaQueryChainWrapper<YgglMainEmp>(ygglmainempmapper).eq(YgglMainEmp::getEmpNum, usmer.getUserid())
.eq(YgglMainEmp::getOrgCode, orgCode).one(); // .eq(YgglMainEmp::getOrgCode, orgCode).one();
//
JSONObject vResultJson = new JSONObject(); // JSONObject vResultJson = new JSONObject();
vResultJson.put("user_id", usmer.getUserid()); // vResultJson.put("user_id", usmer.getUserid());
vResultJson.put("user_name", user.getName()); // vResultJson.put("user_name", user.getName());
vResultJson.put("user_privilege", "USER"); // vResultJson.put("user_privilege", "USER");
String sFinal = vResultJson.toString(); // String sFinal = vResultJson.toString();
//
String url = StaticVariable.mac_command; // String url = StaticVariable.mac_command;
HttpHeaders headers = new HttpHeaders(); // HttpHeaders headers = new HttpHeaders();
MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); // MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
params.add("cmd", "SET_USER_INFO"); // params.add("cmd", "SET_USER_INFO");
params.add("devid", kqj.getCode()); // params.add("devid", kqj.getCode());
params.add("json", sFinal); // params.add("json", sFinal);
RestTemplate restTemplate = new RestTemplate(); // RestTemplate restTemplate = new RestTemplate();
HttpEntity httpEntity = new HttpEntity(params, headers); // HttpEntity httpEntity = new HttpEntity(params, headers);
ResponseEntity<String> request = restTemplate.postForEntity(url, httpEntity, String.class); // ResponseEntity<String> request = restTemplate.postForEntity(url, httpEntity, String.class);
//
//
//
//用户与设备关系(考勤机id-->用户id) // //用户与设备关系(考勤机id-->用户id)
UserEquiRelation uskqj = new UserEquiRelation(); // UserEquiRelation uskqj = new UserEquiRelation();
uskqj.setUserId(usmer.getUserid());//用户id // uskqj.setUserId(usmer.getUserid());//用户id
uskqj.setKqjid(kqj.getId());//设备id // uskqj.setKqjid(kqj.getId());//设备id
uskqj.setType(1);//类型(类型 1:考勤机) // uskqj.setType(1);//类型(类型 1:考勤机)
uskqj.setIsGly(0); // uskqj.setIsGly(0);
//
userequirelationmapper.insert(uskqj); // userequirelationmapper.insert(uskqj);
//
} // }
//
return ResultUtil.success("成功"); // return ResultUtil.success("成功");
} // }
//
/** /**
* 获取报表汇总 * 获取报表汇总
*/ */
......
...@@ -18,6 +18,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; ...@@ -18,6 +18,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import cn.timer.api.bean.kqgl.PunchCardDetails;
import cn.timer.api.bean.kqmk.KqglAssoBcsz; import cn.timer.api.bean.kqmk.KqglAssoBcsz;
import cn.timer.api.bean.kqmk.KqglAssoDkjl; import cn.timer.api.bean.kqmk.KqglAssoDkjl;
import cn.timer.api.bean.kqmk.KqglAssoDkmx; import cn.timer.api.bean.kqmk.KqglAssoDkmx;
...@@ -28,6 +29,7 @@ import cn.timer.api.bean.kqmk.KqglAssoZhoupaiban; ...@@ -28,6 +29,7 @@ import cn.timer.api.bean.kqmk.KqglAssoZhoupaiban;
import cn.timer.api.bean.kqmk.KqglMainKqz; import cn.timer.api.bean.kqmk.KqglMainKqz;
import cn.timer.api.bean.yggl.YgglMainEmp; import cn.timer.api.bean.yggl.YgglMainEmp;
import cn.timer.api.config.exception.CustomException; import cn.timer.api.config.exception.CustomException;
import cn.timer.api.dao.kqmk.KqglAssoDkmxMapper;
import cn.timer.api.dao.kqmk.KqglAssoPbmxMapper; import cn.timer.api.dao.kqmk.KqglAssoPbmxMapper;
import cn.timer.api.dao.kqmk.KqglMainKqzMapper; import cn.timer.api.dao.kqmk.KqglMainKqzMapper;
import cn.timer.api.dto.kqmk.AttLateLate; import cn.timer.api.dto.kqmk.AttLateLate;
...@@ -49,6 +51,10 @@ public class ClockInController { ...@@ -49,6 +51,10 @@ public class ClockInController {
@Autowired @Autowired
private KqglMainKqzMapper kqglmainkqzmapper; private KqglMainKqzMapper kqglmainkqzmapper;
//打卡明细表
@Autowired
private KqglAssoDkmxMapper kqglassodkmxmapper;
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf2 = new SimpleDateFormat("EEE"); SimpleDateFormat sdf2 = new SimpleDateFormat("EEE");
...@@ -90,7 +96,7 @@ public class ClockInController { ...@@ -90,7 +96,7 @@ public class ClockInController {
int dkmx = 0; int dkmx = 0;
//查询打卡当天是否有记录 //查询打卡当天是否有记录
KqglAssoDkmx dkmc = KqglAssoDkmx.builder().build().selectOne(new QueryWrapper<KqglAssoDkmx>().lambda().eq(KqglAssoDkmx::getUserid, userid) KqglAssoDkmx dkmc = KqglAssoDkmx.builder().build().selectOne(new QueryWrapper<KqglAssoDkmx>().lambda().eq(KqglAssoDkmx::getUserid, userid)
.gt(KqglAssoDkmx::getDksj, startDate).lt(KqglAssoDkmx::getDksj, endDate)); .ge(KqglAssoDkmx::getDksj, startDate).le(KqglAssoDkmx::getDksj, endDate));
AttendanceCardListDto attdate = MethodCall(qyid,userid,putime); AttendanceCardListDto attdate = MethodCall(qyid,userid,putime);
ClockCollectData clockt = new ClockCollectData(); ClockCollectData clockt = new ClockCollectData();
long starttime1 = 0,starttime1ks = 0,starttime1js = 0,endtime1 = 0,endtime1ks = 0,endtime1js = 0,starttime2 = 0,starttime2ks = 0,starttime2js = 0,endtime2 = 0,endtime2ks = 0,endtime2js = 0,starttime3 = 0,starttime3ks = 0,starttime3js = 0, long starttime1 = 0,starttime1ks = 0,starttime1js = 0,endtime1 = 0,endtime1ks = 0,endtime1js = 0,starttime2 = 0,starttime2ks = 0,starttime2js = 0,endtime2 = 0,endtime2ks = 0,endtime2js = 0,starttime3 = 0,starttime3ks = 0,starttime3js = 0,
...@@ -182,21 +188,29 @@ public class ClockInController { ...@@ -182,21 +188,29 @@ public class ClockInController {
dkmx = pcd.getId(); dkmx = pcd.getId();
}else { //*****修改 }else { //*****修改
dkmx = dkmc.getId(); dkmx = dkmc.getId();
KqglAssoDkmx pcd = KqglAssoDkmx.builder().build();
if((!("").equals(dkmc.getSbdk1()) || dkmc.getSbdk1() != null) && (("").equals(dkmc.getXbdk1()) || dkmc.getXbdk1() == null)){//下班1 if((!("").equals(dkmc.getSbdk1()) || dkmc.getSbdk1() != null) && (("").equals(dkmc.getXbdk1()) || dkmc.getXbdk1() == null)){//下班1
int xbdk1jg = 0; pcd.setId(dkmc.getId());
pcd.setXbdk1(time_);//下班1打卡时间
if(punchcardtime != 0){//有应打卡时间时 if(punchcardtime != 0){//有应打卡时间时
Long time = (time_ - punchcardtime)/1000/60; Long time = (time_ - punchcardtime)/1000/60;
if(time > 0){}else{xbdk1jg = Math.abs(Integer.valueOf(time.toString()));}//上班1打卡结果 if(time > 0){
pcd.setXbdk1jg(0);// 打卡结果
}else{
pcd.setXbdk1jg(Math.abs(Integer.valueOf(time.toString())));//上班1打卡结果
}
} }
double gzsc = 0;
if(dkmc.getSbdk1() != null){ if(dkmc.getSbdk1() != null){
Long time = (time_ - dkmc.getSbdk1())/1000/60; Long time = (time_ - dkmc.getSbdk1())/1000/60;
gzsc = Math.abs(Double.valueOf(time.toString()));//只打一次卡时计算工作时长 pcd.setGzsc(Math.abs(Double.valueOf(time.toString())));//只打一次卡时计算工作时长
} }
kqglassodkmxmapper.updateByPrimaryKeySelective(pcd);//修改打卡记录
KqglAssoDkmx.builder().id(dkmc.getId()).xbdk1(time_).xbdk1jg(xbdk1jg).gzsc(gzsc).build().updateById();
}else if((!("").equals(dkmc.getSbdk1()) || dkmc.getSbdk1() != null) && (!("").equals(dkmc.getXbdk1()) || dkmc.getXbdk1() != null) }else if((!("").equals(dkmc.getSbdk1()) || dkmc.getSbdk1() != null) && (!("").equals(dkmc.getXbdk1()) || dkmc.getXbdk1() != null)
&& (("").equals(dkmc.getSbdk2()) || dkmc.getSbdk2() == null)){//上班2 && (("").equals(dkmc.getSbdk2()) || dkmc.getSbdk2() == null)){//上班2
int sbdk2jg = 0,yzcdsc = 0,yzcdcs = 0,kgcdcs = 0; int sbdk2jg = 0,yzcdsc = 0,yzcdcs = 0,kgcdcs = 0;
if(punchcardtime != 0){//有应打卡时间时 if(punchcardtime != 0){//有应打卡时间时
Long time = (time_ - punchcardtime)/1000/60; Long time = (time_ - punchcardtime)/1000/60;
...@@ -207,26 +221,44 @@ public class ClockInController { ...@@ -207,26 +221,44 @@ public class ClockInController {
yzcdsc = sbdk2jg - yzcd; yzcdsc = sbdk2jg - yzcd;
} }
if(sbdk2jg > kgcdfzs) {kgcdcs++;} if(sbdk2jg > kgcdfzs) {kgcdcs++;}
KqglAssoDkmx.builder().id(dkmc.getId()).sbdk2(time_).sbdk2jg(sbdk2jg).yzcdcs(yzcdcs).yzcdsc(Double.valueOf(yzcdsc)).kgcdfzs(kgcdcs).build().updateById();
pcd.setId(dkmc.getId());
pcd.setSbdk2(time_);//上班1打卡时间
pcd.setSbdk2jg(sbdk2jg);
pcd.setYzcdcs(yzcdcs);
pcd.setYzcdsc(Double.valueOf(yzcdsc));
pcd.setKgcdfzs(kgcdcs);
kqglassodkmxmapper.updateByPrimaryKeySelective(pcd);//修改打卡记录
}else if((!("").equals(dkmc.getSbdk1()) || dkmc.getSbdk1() != null) && (!("").equals(dkmc.getXbdk1()) || dkmc.getXbdk1() != null) }else if((!("").equals(dkmc.getSbdk1()) || dkmc.getSbdk1() != null) && (!("").equals(dkmc.getXbdk1()) || dkmc.getXbdk1() != null)
&& (!("").equals(dkmc.getSbdk2()) || dkmc.getSbdk2() != null) && (("").equals(dkmc.getXbdk2()) || dkmc.getXbdk2() == null)){//下班2 && (!("").equals(dkmc.getSbdk2()) || dkmc.getSbdk2() != null) && (("").equals(dkmc.getXbdk2()) || dkmc.getXbdk2() == null)){//下班2
int xbdk2jg = 0;
pcd.setId(dkmc.getId());
pcd.setXbdk2(time_);//下班1打卡时间
if(punchcardtime != 0){//有应打卡时间时 if(punchcardtime != 0){//有应打卡时间时
Long time = (time_ - punchcardtime)/1000/60; Long time = (time_ - punchcardtime)/1000/60;
if(time > 0){}else{xbdk2jg = Math.abs(Integer.valueOf(time.toString()));} if(time > 0){
pcd.setXbdk2jg(0);// 打卡结果
}else{
pcd.setXbdk2jg(Math.abs(Integer.valueOf(time.toString())));
}
} }
//班次为4次时,计算工作时长 //班次为4次时,计算工作时长
double worktime = 0;
if(dkmc.getSbdk2() != null){ if(dkmc.getSbdk2() != null){
Long time = (time_ - dkmc.getSbdk2())/1000/60; Long time = (time_ - dkmc.getSbdk2())/1000/60;
BigDecimal om = new BigDecimal(dkmc.getGzsc()); BigDecimal om = new BigDecimal(dkmc.getGzsc());
BigDecimal on = new BigDecimal(time); BigDecimal on = new BigDecimal(time);
worktime = Math.abs(om.add(on).doubleValue()); double worktime = Math.abs(om.add(on).doubleValue());
pcd.setGzsc(worktime);
} }
KqglAssoDkmx.builder().id(dkmc.getId()).xbdk2(time_).xbdk2jg(xbdk2jg).gzsc(worktime).build().updateById(); kqglassodkmxmapper.updateByPrimaryKeySelective(pcd);//修改打卡记录
}else if((!("").equals(dkmc.getSbdk1()) || dkmc.getSbdk1() != null) && (!("").equals(dkmc.getXbdk1()) || dkmc.getXbdk1() != null) }else if((!("").equals(dkmc.getSbdk1()) || dkmc.getSbdk1() != null) && (!("").equals(dkmc.getXbdk1()) || dkmc.getXbdk1() != null)
&& (!("").equals(dkmc.getSbdk2()) || dkmc.getSbdk2() != null) && (!("").equals(dkmc.getXbdk2()) || dkmc.getXbdk2() != null) && (!("").equals(dkmc.getSbdk2()) || dkmc.getSbdk2() != null) && (!("").equals(dkmc.getXbdk2()) || dkmc.getXbdk2() != null)
&& (("").equals(dkmc.getSbdk3()) || dkmc.getSbdk3() == null)){//上班3 && (("").equals(dkmc.getSbdk3()) || dkmc.getSbdk3() == null)){//上班3
int sbdk3jg = 0,yzcdsc = 0,yzcdcs = 0,kgcdcs = 0; int sbdk3jg = 0,yzcdsc = 0,yzcdcs = 0,kgcdcs = 0;
if(punchcardtime != 0){//有应打卡时间时 if(punchcardtime != 0){//有应打卡时间时
Long time = (time_ - punchcardtime)/1000/60; Long time = (time_ - punchcardtime)/1000/60;
...@@ -237,27 +269,44 @@ public class ClockInController { ...@@ -237,27 +269,44 @@ public class ClockInController {
yzcdsc = sbdk3jg - yzcd; yzcdsc = sbdk3jg - yzcd;
} }
if(sbdk3jg > kgcdfzs) {kgcdcs++;} if(sbdk3jg > kgcdfzs) {kgcdcs++;}
KqglAssoDkmx.builder().id(dkmc.getId()).sbdk3(time_).sbdk3jg(sbdk3jg).yzcdcs(yzcdcs).yzcdsc(Double.valueOf(yzcdsc)).kgcdfzs(kgcdcs).build().updateById();
pcd.setId(dkmc.getId());
pcd.setSbdk3(time_);//上班1打卡时间
pcd.setSbdk3jg(sbdk3jg);
pcd.setYzcdcs(yzcdcs);
pcd.setYzcdsc(Double.valueOf(yzcdsc));
pcd.setKgcdfzs(kgcdcs);
kqglassodkmxmapper.updateByPrimaryKeySelective(pcd);//修改打卡记录
}else if((!("").equals(dkmc.getSbdk1()) || dkmc.getSbdk1() != null) && (!("").equals(dkmc.getXbdk1()) || dkmc.getXbdk1() != null) }else if((!("").equals(dkmc.getSbdk1()) || dkmc.getSbdk1() != null) && (!("").equals(dkmc.getXbdk1()) || dkmc.getXbdk1() != null)
&& (!("").equals(dkmc.getSbdk2()) || dkmc.getSbdk2() != null) && (!("").equals(dkmc.getXbdk2()) || dkmc.getXbdk2() != null) && (!("").equals(dkmc.getSbdk2()) || dkmc.getSbdk2() != null) && (!("").equals(dkmc.getXbdk2()) || dkmc.getXbdk2() != null)
&& (!("").equals(dkmc.getSbdk3()) || dkmc.getSbdk3() != null) && (("").equals(dkmc.getXbdk3()) || dkmc.getXbdk3() == null)){//下班3 && (!("").equals(dkmc.getSbdk3()) || dkmc.getSbdk3() != null) && (("").equals(dkmc.getXbdk3()) || dkmc.getXbdk3() == null)){//下班3
int xbdk3jg = 0;
pcd.setId(dkmc.getId());
pcd.setXbdk3(time_);//下班1打卡时间
if(punchcardtime != 0){//有应打卡时间时 if(punchcardtime != 0){//有应打卡时间时
Long time = (time_ - punchcardtime)/1000/60; Long time = (time_ - punchcardtime)/1000/60;
if(time > 0){}else{xbdk3jg = Math.abs(Integer.valueOf(time.toString()));} if(time > 0){
pcd.setXbdk3jg(0);// 打卡结果
}else{
pcd.setXbdk3jg(Math.abs(Integer.valueOf(time.toString())));
}
} }
//班次为6次时,计算工作时长 //班次为6次时,计算工作时长
double worktime = 0;
if(dkmc.getSbdk3() != null){ if(dkmc.getSbdk3() != null){
Long time = (time_ - dkmc.getSbdk3())/1000/60; Long time = (time_ - dkmc.getSbdk3())/1000/60;
BigDecimal om = new BigDecimal(dkmc.getGzsc());//第二次 BigDecimal om = new BigDecimal(dkmc.getGzsc());//第二次
BigDecimal on = new BigDecimal(time); BigDecimal on = new BigDecimal(time);
worktime = Math.abs(om.add(on).doubleValue()); double worktime = Math.abs(om.add(on).doubleValue());
pcd.setGzsc(worktime);
} }
KqglAssoDkmx.builder().id(dkmc.getId()).xbdk3(time_).xbdk3jg(xbdk3jg).gzsc(worktime).build().updateById();
} }
pcd.setId(dkmc.getId());
if(atttype <= 6){ if(atttype <= 6){
KqglAssoDkmx.builder().id(dkmc.getId()).build().updateById(); int update = kqglassodkmxmapper.updateByPrimaryKeySelective(pcd);//修改打卡记录
} }
} }
...@@ -295,7 +344,8 @@ public class ClockInController { ...@@ -295,7 +344,8 @@ public class ClockInController {
} }
String attdate_ = new SimpleDateFormat("yy-MM-dd").format(Double.valueOf(startDate));//转换打卡时间格式 String attdate_ = new SimpleDateFormat("yy-MM-dd").format(Double.valueOf(startDate));//转换打卡时间格式
long attime; long attime;
if(punchcardtime == 0 && !isRange){attime = new Date().getTime();}else{attime = punchcardtime;}// 考勤时间(应打卡时间) // if(punchcardtime == 0 && !isRange){attime = new Date().getTime();}else{attime = punchcardtime;}// 考勤时间(应打卡时间)
if(punchcardtime == 0){attime = new Date().getTime();}else{attime = punchcardtime;}// 考勤时间(应打卡时间)
String remarks = ""; String remarks = "";
if(("1").equals(asVerifyMode)) {remarks = "考勤机指纹打卡";}else if(("20").equals(asVerifyMode)) {remarks = "考勤机人脸打卡";}else if(("40").equals(asVerifyMode)) {remarks = "考勤机掌纹打卡";}else if(("60").equals(asVerifyMode)) {remarks = "考勤机密码打卡";} if(("1").equals(asVerifyMode)) {remarks = "考勤机指纹打卡";}else if(("20").equals(asVerifyMode)) {remarks = "考勤机人脸打卡";}else if(("40").equals(asVerifyMode)) {remarks = "考勤机掌纹打卡";}else if(("60").equals(asVerifyMode)) {remarks = "考勤机密码打卡";}
//cardtype--1:GPS,2:WIFI,3:考勤机 //cardtype--1:GPS,2:WIFI,3:考勤机
......
...@@ -36,8 +36,6 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; ...@@ -36,8 +36,6 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Console; import cn.hutool.core.lang.Console;
import cn.timer.api.bean.kqgl.AttGroupBinPunchMode;
import cn.timer.api.bean.kqgl.AttendanceMachine;
import cn.timer.api.bean.kqgl.PunchCardDetails; import cn.timer.api.bean.kqgl.PunchCardDetails;
import cn.timer.api.bean.kqgl.PunchRecord; import cn.timer.api.bean.kqgl.PunchRecord;
import cn.timer.api.bean.kqgl.UserAttendanceRel; import cn.timer.api.bean.kqgl.UserAttendanceRel;
...@@ -88,7 +86,6 @@ import cn.timer.api.dao.kqmk.KqglAssoYhkqzMapper; ...@@ -88,7 +86,6 @@ import cn.timer.api.dao.kqmk.KqglAssoYhkqzMapper;
import cn.timer.api.dao.kqmk.KqglAssoYhsbMapper; import cn.timer.api.dao.kqmk.KqglAssoYhsbMapper;
import cn.timer.api.dao.kqmk.KqglAssoZhoupaibanMapper; import cn.timer.api.dao.kqmk.KqglAssoZhoupaibanMapper;
import cn.timer.api.dao.kqmk.KqglMainKqzMapper; import cn.timer.api.dao.kqmk.KqglMainKqzMapper;
import cn.timer.api.dto.kqgl.AttemacDto;
import cn.timer.api.dto.kqmk.AttSchedulingDto; import cn.timer.api.dto.kqmk.AttSchedulingDto;
import cn.timer.api.dto.kqmk.AttendanceAssistantDto; import cn.timer.api.dto.kqmk.AttendanceAssistantDto;
import cn.timer.api.dto.kqmk.AttqueryCriteriaDto; import cn.timer.api.dto.kqmk.AttqueryCriteriaDto;
...@@ -98,10 +95,13 @@ import cn.timer.api.dto.kqmk.IndividualOvertimeRuleDto; ...@@ -98,10 +95,13 @@ import cn.timer.api.dto.kqmk.IndividualOvertimeRuleDto;
import cn.timer.api.dto.kqmk.KqglAssoLeaveRulesDto; import cn.timer.api.dto.kqmk.KqglAssoLeaveRulesDto;
import cn.timer.api.dto.kqmk.KqglAssoOvertimeRulesDto; import cn.timer.api.dto.kqmk.KqglAssoOvertimeRulesDto;
import cn.timer.api.dto.kqmk.KqglAssoPbmxDto; import cn.timer.api.dto.kqmk.KqglAssoPbmxDto;
import cn.timer.api.dto.kqmk.KqglAssoRulesViceDto;
import cn.timer.api.dto.kqmk.KqglMainKqzDto; import cn.timer.api.dto.kqmk.KqglMainKqzDto;
import cn.timer.api.dto.kqmk.KqzAttendanceGroupSearchDto; import cn.timer.api.dto.kqmk.KqzAttendanceGroupSearchDto;
import cn.timer.api.dto.kqmk.LeaveTypeDto; import cn.timer.api.dto.kqmk.LeaveTypeDto;
import cn.timer.api.dto.kqmk.MachinememberDto; import cn.timer.api.dto.kqmk.MachinememberDto;
import cn.timer.api.dto.kqmk.ModifyEmployeeBalanceDto;
import cn.timer.api.dto.kqmk.OriginalRecordDto;
import cn.timer.api.dto.kqmk.SetConditionsDto; import cn.timer.api.dto.kqmk.SetConditionsDto;
import cn.timer.api.dto.kqmk.StartTimeRestDto; import cn.timer.api.dto.kqmk.StartTimeRestDto;
import cn.timer.api.dto.kqmk.VacationInformationDto; import cn.timer.api.dto.kqmk.VacationInformationDto;
...@@ -111,7 +111,6 @@ import cn.timer.api.utils.Result; ...@@ -111,7 +111,6 @@ import cn.timer.api.utils.Result;
import cn.timer.api.utils.ResultUtil; import cn.timer.api.utils.ResultUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import net.sf.json.JSONObject;
@Api(tags = "3.0[1]考勤模块") @Api(tags = "3.0[1]考勤模块")
@RestController @RestController
...@@ -125,6 +124,10 @@ public class TimeCardController { ...@@ -125,6 +124,10 @@ public class TimeCardController {
@Autowired @Autowired
private KqglAssOvertimeViceMapper kqglassovertimevicemapper; private KqglAssOvertimeViceMapper kqglassovertimevicemapper;
//用户和考勤组关系
@Autowired
private UserAttendanceRelMapper userattendancerelmapper;
/** /**
* 查询列表-获取班次数据-分页 * 查询列表-获取班次数据-分页
*/ */
...@@ -356,7 +359,7 @@ public class TimeCardController { ...@@ -356,7 +359,7 @@ public class TimeCardController {
for(KqglAssoLeaveRules rul : ruless){ for(KqglAssoLeaveRules rul : ruless){
KqglAssoLeaveRules vice = KqglAssoLeaveRules.builder().name(rul.getName()).company(rul.getCompany()).leaveType(rul.getLeaveType()) KqglAssoLeaveRules vice = KqglAssoLeaveRules.builder().name(rul.getName()).company(rul.getCompany()).leaveType(rul.getLeaveType())
.apply(rul.getApply()).createTime(new Date().getTime()).createUserid(userBean.getEmpNum()).orgCode(userBean.getOrgCode()) .apply(rul.getApply()).createTime(new Date().getTime()).createUserid(userBean.getEmpNum()).orgCode(userBean.getOrgCode())
.isOpen(rul.getIsOpen()).leaveBalance(rul.getLeaveBalance()).build(); .isOpen(rul.getIsOpen()).leaveBalance(rul.getLeaveBalance()).rulesType(rul.getRulesType()).build();
rullist.add(vice); rullist.add(vice);
} }
if(rullist.size() > 0) { if(rullist.size() > 0) {
...@@ -392,14 +395,19 @@ public class TimeCardController { ...@@ -392,14 +395,19 @@ public class TimeCardController {
KqglAssoLeaveBalance.builder().build().delete(new QueryWrapper<KqglAssoLeaveBalance>().lambda().eq(KqglAssoLeaveBalance::getLeaveRulesId, id) KqglAssoLeaveBalance.builder().build().delete(new QueryWrapper<KqglAssoLeaveBalance>().lambda().eq(KqglAssoLeaveBalance::getLeaveRulesId, id)
.eq(KqglAssoLeaveBalance :: getOrgCode, userBean.getOrgCode())); .eq(KqglAssoLeaveBalance :: getOrgCode, userBean.getOrgCode()));
List<YgglMainEmp> yggl = YgglMainEmp.builder().build().selectList(new QueryWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getOrgCode, userBean.getOrgCode()));
if(leaverules.getLeaveBalance() == 1) {//假期余额 0:关(该项余额为“不限余额”);1:开(该项余额为“0”) if(leaverules.getLeaveBalance() == 1) {//假期余额 0:关(该项余额为“不限余额”);1:开(该项余额为“0”)
//该项公司员工余额为“0” //该项公司员工余额为“0”
List<YgglMainEmp> yggl = YgglMainEmp.builder().build().selectList(new QueryWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getOrgCode, userBean.getOrgCode()));
for(YgglMainEmp ye:yggl) { for(YgglMainEmp ye:yggl) {
KqglAssoLeaveBalance.builder().leaveRulesId(id).userid(ye.getEmpNum()).modifyAction(1).balanceDays("+0") KqglAssoLeaveBalance.builder().leaveRulesId(id).userid(ye.getEmpNum()).modifyAction(1).balanceDays("+0")
.reason("系统按照规则自动").modifyUserid(userBean.getEmpNum()).modifyTimer(new Date().getTime()).orgCode(userBean.getOrgCode()).isAutomatic(1).modifyNumber(1).build().insert();//员工假期余额 .reason("系统按照规则自动").modifyUserid(userBean.getEmpNum()).modifyTimer(new Date().getTime()).orgCode(userBean.getOrgCode()).isAutomatic(1).modifyNumber(1).build().insert();//员工假期余额
} }
} }else {
for(YgglMainEmp ye:yggl) {
KqglAssoLeaveBalance.builder().leaveRulesId(id).userid(ye.getEmpNum()).modifyAction(1).balanceDays("-1-1")
.reason("不限制余额").modifyUserid(userBean.getEmpNum()).modifyTimer(new Date().getTime()).orgCode(userBean.getOrgCode()).isAutomatic(1).modifyNumber(1).build().insert();//员工假期余额
}
}
List<KqglAssoRulesVice> vices = new ArrayList<KqglAssoRulesVice>(); List<KqglAssoRulesVice> vices = new ArrayList<KqglAssoRulesVice>();
String[] rest = leaverules.getRange(); String[] rest = leaverules.getRange();
if(rest.length == 0) { if(rest.length == 0) {
...@@ -445,7 +453,8 @@ public class TimeCardController { ...@@ -445,7 +453,8 @@ public class TimeCardController {
VacationInformationDto overrule = VacationInformationDto.builder().build(); VacationInformationDto overrule = VacationInformationDto.builder().build();
KqglAssoLeaveRules rules = KqglAssoLeaveRules.builder().id(id).build().selectById(); KqglAssoLeaveRules rules = KqglAssoLeaveRules.builder().id(id).build().selectById();
overrule.setRules(rules); overrule.setRules(rules);
List<KqglAssoRulesVice> vice = new LambdaQueryChainWrapper<KqglAssoRulesVice>(kqglassorulesvicemapper).eq(KqglAssoRulesVice::getLeaveRulesId, id).list(); List<KqglAssoRulesViceDto> vice = kqglassorulesvicemapper.leaveRulesIdload(id);
overrule.setRange(vice); overrule.setRange(vice);
return ResultUtil.data(overrule,"操作成功!"); return ResultUtil.data(overrule,"操作成功!");
} }
...@@ -472,18 +481,15 @@ public class TimeCardController { ...@@ -472,18 +481,15 @@ public class TimeCardController {
@ApiOperation(value = "考勤机一键同步", httpMethod = "GET", notes = "接口发布说明") @ApiOperation(value = "考勤机一键同步", httpMethod = "GET", notes = "接口发布说明")
public Result<Object> SynchronizationTime(@CurrentUser UserBean userBean,@PathVariable("code") String code) { public Result<Object> SynchronizationTime(@CurrentUser UserBean userBean,@PathVariable("code") String code) {
JSONObject vResultJson = new JSONObject();
vResultJson.put("devId", code);
String sFinal = vResultJson.toString();
String url = StaticVariable.mac_command+"/setTime"; String url = StaticVariable.mac_command+"/setTime";
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
params.add("json", sFinal); params.add("devId", code);
RestTemplate restTemplate = new RestTemplate(); RestTemplate restTemplate = new RestTemplate();
HttpEntity httpEntity = new HttpEntity(params, headers); HttpEntity httpEntity = new HttpEntity(params, headers);
try { try {
ResponseEntity<String> request = restTemplate.postForEntity(url, httpEntity, String.class); ResponseEntity<String> request = restTemplate.postForEntity(url, httpEntity, String.class);
System.err.print(request.getBody());
} catch (RestClientException e) { } catch (RestClientException e) {
System.err.println("提示:考勤机服务出错"); System.err.println("提示:考勤机服务出错");
return ResultUtil.success("失败"); return ResultUtil.success("失败");
...@@ -502,20 +508,17 @@ public class TimeCardController { ...@@ -502,20 +508,17 @@ public class TimeCardController {
KqglAssoKqj kqj = KqglAssoKqj.builder().id(kqjid).build().selectById();//查询考勤机“序列号” KqglAssoKqj kqj = KqglAssoKqj.builder().id(kqjid).build().selectById();//查询考勤机“序列号”
for(int a=0;a<xgyh.length;a++){ for(int a=0;a<xgyh.length;a++){
JSONObject vResultJson = new JSONObject();
vResultJson.put("devId", kqj.getCode());
vResultJson.put("userId", xgyh[a]);
vResultJson.put("privilege", 1);
String sFinal = vResultJson.toString();
String url = StaticVariable.mac_command+"/addUserPrivilege"; String url = StaticVariable.mac_command+"/addUserPrivilege";
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
params.add("json", sFinal); params.add("devId", kqj.getCode());
params.add("userId", xgyh[a]);
params.add("privilege", 1);
RestTemplate restTemplate = new RestTemplate(); RestTemplate restTemplate = new RestTemplate();
HttpEntity httpEntity = new HttpEntity(params, headers); HttpEntity httpEntity = new HttpEntity(params, headers);
try { try {
ResponseEntity<String> request = restTemplate.postForEntity(url, httpEntity, String.class); ResponseEntity<String> request = restTemplate.postForEntity(url, httpEntity, String.class);
System.err.print(request.getBody());
} catch (RestClientException e) { } catch (RestClientException e) {
System.err.println("提示:考勤机服务出错"); System.err.println("提示:考勤机服务出错");
return ResultUtil.success("失败"); return ResultUtil.success("失败");
...@@ -535,20 +538,18 @@ public class TimeCardController { ...@@ -535,20 +538,18 @@ public class TimeCardController {
for(int a=0;a<xgyh.length;a++){ for(int a=0;a<xgyh.length;a++){
JSONObject vResultJson = new JSONObject();
vResultJson.put("devId", kqj.getCode());
vResultJson.put("userId", xgyh[a]);
vResultJson.put("privilege", 2);
String sFinal = vResultJson.toString();
String url = StaticVariable.mac_command+"/addUserPrivilege"; String url = StaticVariable.mac_command+"/addUserPrivilege";
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
params.add("json", sFinal); params.add("devId", kqj.getCode());
params.add("userId", xgyh[a]);
params.add("privilege", 2);
RestTemplate restTemplate = new RestTemplate(); RestTemplate restTemplate = new RestTemplate();
HttpEntity httpEntity = new HttpEntity(params, headers); HttpEntity httpEntity = new HttpEntity(params, headers);
try { try {
ResponseEntity<String> request = restTemplate.postForEntity(url, httpEntity, String.class); ResponseEntity<String> request = restTemplate.postForEntity(url, httpEntity, String.class);
System.err.print(request.getBody());
} catch (RestClientException e) { } catch (RestClientException e) {
System.err.println("提示:考勤机服务出错"); System.err.println("提示:考勤机服务出错");
return ResultUtil.success("失败"); return ResultUtil.success("失败");
...@@ -579,19 +580,16 @@ public class TimeCardController { ...@@ -579,19 +580,16 @@ public class TimeCardController {
if(!kqglassokqj.insert()) if(!kqglassokqj.insert())
return ResultUtil.error("操作失败--新增考勤机"); return ResultUtil.error("操作失败--新增考勤机");
JSONObject vResultJson = new JSONObject();
vResultJson.put("devId", kqglassokqj.getCode());
vResultJson.put("orgCode", userBean.getOrgCode());
String sFinal = vResultJson.toString();
String url = StaticVariable.mac_command+"/addDev"; String url = StaticVariable.mac_command+"/addDev";
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
params.add("json", sFinal); params.add("orgCode", kqglassokqj.getType());
params.add("devId", kqglassokqj.getCode());
RestTemplate restTemplate = new RestTemplate(); RestTemplate restTemplate = new RestTemplate();
HttpEntity httpEntity = new HttpEntity(params, headers); HttpEntity httpEntity = new HttpEntity(params, headers);
try { try {
ResponseEntity<String> request = restTemplate.postForEntity(url, httpEntity, String.class); ResponseEntity<String> request = restTemplate.postForEntity(url, httpEntity, String.class);
System.err.print(request.getBody());
} catch (RestClientException e) { } catch (RestClientException e) {
System.err.println("提示:考勤机服务出错"); System.err.println("提示:考勤机服务出错");
return ResultUtil.success("失败"); return ResultUtil.success("失败");
...@@ -776,8 +774,9 @@ public class TimeCardController { ...@@ -776,8 +774,9 @@ public class TimeCardController {
@ApiOperation(value = "29:根据 组织机构代码获取员工假期余额表头", httpMethod = "GET", notes = "接口发布说明") @ApiOperation(value = "29:根据 组织机构代码获取员工假期余额表头", httpMethod = "GET", notes = "接口发布说明")
@ApiOperationSupport(order = 29) @ApiOperationSupport(order = 29)
public Result<Object> BalanceHeader(@CurrentUser UserBean userBean) { public Result<Object> BalanceHeader(@CurrentUser UserBean userBean) {
List<KqglAssoLeaveRules> balheas = new LambdaQueryChainWrapper<KqglAssoLeaveRules>(kqglassoleaverulesmapper).eq(KqglAssoLeaveRules :: getOrgCode,userBean.getOrgCode()) // List<KqglAssoLeaveRules> balheas = new LambdaQueryChainWrapper<KqglAssoLeaveRules>(kqglassoleaverulesmapper).eq(KqglAssoLeaveRules :: getOrgCode,userBean.getOrgCode())
.eq(KqglAssoLeaveRules :: getLeaveType, 2).or().eq(KqglAssoLeaveRules :: getIsOpen, 1).list(); // .eq(KqglAssoLeaveRules :: getLeaveType, 2).or().eq(KqglAssoLeaveRules :: getIsOpen, 1).list();
List<KqglAssoLeaveRules> balheas = kqglassoleaverulesmapper.selHeaderdata(userBean.getOrgCode(), 2, 1);
return ResultUtil.data(balheas, "操作成功!"); return ResultUtil.data(balheas, "操作成功!");
} }
...@@ -939,29 +938,28 @@ public class TimeCardController { ...@@ -939,29 +938,28 @@ public class TimeCardController {
@ApiOperationSupport(order = 39) @ApiOperationSupport(order = 39)
public Result<Integer> DelAttendanceGroup(@CurrentUser UserBean userBean,@PathVariable("id") Integer id) { public Result<Integer> DelAttendanceGroup(@CurrentUser UserBean userBean,@PathVariable("id") Integer id) {
if(KqglMainKqz.builder().id(id).build().deleteById()) { if(KqglMainKqz.builder().id(id).build().deleteById()) {
// List<UserAttendanceRel> attusers = userattendancerelservice.selectAttendanceOfficerByKqzid(id, userBean.getOrgCode());//该考勤组人数 List<UserAttendanceRel> attusers = userattendancerelmapper.selectAttendanceOfficerByKqzid(id, userBean.getOrgCode());//该考勤组人数
// //该考勤组所绑定的考勤机 //该考勤组所绑定的考勤机
// List<KqglAssoKqzdkfs> kqjs = kqglassokqzdkfsmapper.selectList(new QueryWrapper<KqglAssoKqzdkfs>().lambda().eq(KqglAssoKqzdkfs::getKqzId, id).eq(KqglAssoKqzdkfs::getType, 1)); List<KqglAssoKqzdkfs> kqjs = kqglassokqzdkfsmapper.selectList(new QueryWrapper<KqglAssoKqzdkfs>().lambda().eq(KqglAssoKqzdkfs::getKqzId, id).eq(KqglAssoKqzdkfs::getType, 1));
// String DevId = ""; String DevId = "";
// for(KqglAssoKqzdkfs abp:kqjs) { for(KqglAssoKqzdkfs abp:kqjs) {
// KqglAssoKqj kqj = KqglAssoKqj.builder().id(abp.getDkfsid()).build().selectById();//查询考勤机“序列号” KqglAssoKqj kqj = KqglAssoKqj.builder().id(abp.getDkfsid()).build().selectById();//查询考勤机“序列号”
// DevId = kqj.getCode(); DevId = kqj.getCode();
// for(UserAttendanceRel user:attusers) { for(UserAttendanceRel user:attusers) {
// String user_id = user.getEmpnum();//"1692";//要删除的考勤组里面用户ID String user_id = user.getEmpnum();//"1692";//要删除的考勤组里面用户ID
// JSONObject vResultJson = new JSONObject();
// vResultJson.put("devId", DevId); String url = StaticVariable.mac_command+"/deleteUser";
// vResultJson.put("userId", user_id); HttpHeaders headers = new HttpHeaders();
// String sFinal = vResultJson.toString(); MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
// String url = StaticVariable.mac_command+"/deleteUser"; params.add("devId", DevId);
// HttpHeaders headers = new HttpHeaders(); params.add("userId", user_id);
// MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); RestTemplate restTemplate = new RestTemplate();
// params.add("json", sFinal); HttpEntity httpEntity = new HttpEntity(params, headers);
// RestTemplate restTemplate = new RestTemplate(); ResponseEntity<String> request = restTemplate.postForEntity(url, httpEntity, String.class);
// HttpEntity httpEntity = new HttpEntity(params, headers); System.err.print(request.getBody());
// ResponseEntity<String> request = restTemplate.postForEntity(url, httpEntity, String.class); }
// } }
// } userequirelationmapper.deleteBykqzid(id);
// userequirelationmapper.deleteBykqzid(id);
//删除考勤组绑定的打卡方式 //删除考勤组绑定的打卡方式
KqglAssoKqzdkfs.builder().build().delete(new QueryWrapper<KqglAssoKqzdkfs>().lambda().eq(KqglAssoKqzdkfs::getKqzId, id)); KqglAssoKqzdkfs.builder().build().delete(new QueryWrapper<KqglAssoKqzdkfs>().lambda().eq(KqglAssoKqzdkfs::getKqzId, id));
...@@ -1007,6 +1005,7 @@ public class TimeCardController { ...@@ -1007,6 +1005,7 @@ public class TimeCardController {
.isDqtx(attass.getAttRemind()).txry(String.join(",",attass.getAttRemindUserids())).txfs(attass.getAdvanceDays()).txxhts(attass.getRemCycleDays()) .isDqtx(attass.getAttRemind()).txry(String.join(",",attass.getAttRemindUserids())).txfs(attass.getAdvanceDays()).txxhts(attass.getRemCycleDays())
.txsjTime(attass.getReminderTime()).tsfs(String.join(",",attass.getPromptingMode())).isWpbsdk(attass.getAttRemind()).kqkssjTime(attass.getNewAttTime()) .txsjTime(attass.getReminderTime()).tsfs(String.join(",",attass.getPromptingMode())).isWpbsdk(attass.getAttRemind()).kqkssjTime(attass.getNewAttTime())
.zsgzsc(attass.getLeastworkTime()).zcgzsc(attass.getNormalWorkTime()).jbzdsc(attass.getMaxOvertimeTime()).overtimeRulesId(attass.getOvertimeRulesId()).build(); .zsgzsc(attass.getLeastworkTime()).zcgzsc(attass.getNormalWorkTime()).jbzdsc(attass.getMaxOvertimeTime()).overtimeRulesId(attass.getOvertimeRulesId()).build();
// if (!attgro.insertOrUpdate()) // if (!attgro.insertOrUpdate())
if (!attgro.insert()) if (!attgro.insert())
return ResultUtil.error("操作失败--新增考勤组"); return ResultUtil.error("操作失败--新增考勤组");
...@@ -1014,6 +1013,9 @@ public class TimeCardController { ...@@ -1014,6 +1013,9 @@ public class TimeCardController {
Integer attid = attgro.getId(); Integer attid = attgro.getId();
Console.log("新增--考勤组id: " + attid); Console.log("新增--考勤组id: " + attid);
//添加加班规则
KqglAssoOvertimeRange.builder().overtimeRulesId(attass.getOvertimeRulesId()).attgroupId(attid).build().insert();
List<KqglAssoKqzdkfs> kqzdkfslist = new ArrayList<KqglAssoKqzdkfs>(); List<KqglAssoKqzdkfs> kqzdkfslist = new ArrayList<KqglAssoKqzdkfs>();
String[] attmac = attass.getAttmachines();//考勤机 String[] attmac = attass.getAttmachines();//考勤机
if(attmac.length>0){ if(attmac.length>0){
...@@ -1057,24 +1059,30 @@ public class TimeCardController { ...@@ -1057,24 +1059,30 @@ public class TimeCardController {
KqglAssoKqj kqj = KqglAssoKqj.builder().id(abp.getDkfsid()).build().selectById(); KqglAssoKqj kqj = KqglAssoKqj.builder().id(abp.getDkfsid()).build().selectById();
KqglAssoYhsb kqjry = KqglAssoYhsb.builder().build().selectOne(new QueryWrapper<KqglAssoYhsb>().lambda().eq(KqglAssoYhsb::getUserId, Integer.valueOf(attser[u])).eq(KqglAssoYhsb::getKqjid, kqj.getId())); KqglAssoYhsb kqjry = KqglAssoYhsb.builder().build().selectOne(new QueryWrapper<KqglAssoYhsb>().lambda().eq(KqglAssoYhsb::getUserId, Integer.valueOf(attser[u])).eq(KqglAssoYhsb::getKqjid, kqj.getId()));
if(kqjry == null) { if(kqjry == null) {
KqglAssoYhsb uskqj = KqglAssoYhsb.builder().userId(Integer.valueOf(attser[u])).kqjid(kqj.getId()).type(1).isGly(kqjry.getIsGly()).build(); KqglAssoYhsb uskqj = KqglAssoYhsb.builder().userId(Integer.valueOf(attser[u])).kqjid(kqj.getId()).type(1).build();
UserEquiRelation isgly = userequirelationmapper.selectByuserId(Integer.valueOf(attser[u]));
if(isgly != null) {
uskqj.setIsGly(isgly.getIsGly());
}else {
uskqj.setIsGly(0);
}
if (!uskqj.insert()) if (!uskqj.insert())
return ResultUtil.error("操作失败--新增用户与设备关系"); return ResultUtil.error("操作失败--新增用户与设备关系");
YgglMainEmp yggluser = YgglMainEmp.builder().build().selectOne(new QueryWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getOrgCode, userBean.getOrgCode()).eq(YgglMainEmp::getEmpNum, attser[u])); YgglMainEmp yggluser = YgglMainEmp.builder().build().selectOne(new QueryWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getOrgCode, userBean.getOrgCode()).eq(YgglMainEmp::getEmpNum, attser[u]));
JSONObject vResultJson = new JSONObject();
vResultJson.put("devId", kqj.getCode());
vResultJson.put("userId", attser[u]);
vResultJson.put("userName", yggluser.getName());
String sFinal = vResultJson.toString();
String url = StaticVariable.mac_command+"/addUserName"; String url = StaticVariable.mac_command+"/addUserName";
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
params.add("json", sFinal); params.add("devId", kqj.getCode());
params.add("userId", attser[u]);
params.add("userName", yggluser.getName());
RestTemplate restTemplate = new RestTemplate(); RestTemplate restTemplate = new RestTemplate();
HttpEntity httpEntity = new HttpEntity(params, headers); HttpEntity httpEntity = new HttpEntity(params, headers);
ResponseEntity<String> request = restTemplate.postForEntity(url, httpEntity, String.class); ResponseEntity<String> request = restTemplate.postForEntity(url, httpEntity, String.class);
System.err.print(request.getBody());
} }
} }
} }
...@@ -1187,7 +1195,7 @@ public class TimeCardController { ...@@ -1187,7 +1195,7 @@ public class TimeCardController {
//打卡记录 //打卡记录
@Autowired @Autowired
private PunchRecordMapper punchrecordservice; private PunchRecordMapper punchrecordmapper;
//打卡明细表 //打卡明细表
@Autowired @Autowired
private PunchCardDetailsMapper punchcarddetailsservice; private PunchCardDetailsMapper punchcarddetailsservice;
...@@ -1313,7 +1321,7 @@ public class TimeCardController { ...@@ -1313,7 +1321,7 @@ public class TimeCardController {
String[] str= new String[3]; String[] str= new String[3];
for(int y=0;y<mapucalist.size();y++){ for(int y=0;y<mapucalist.size();y++){
if(y == 0){//上班 if(y == 0){//上班
PunchRecord mindata = punchrecordservice.selectByPrimaryKey(minAttid.getId());//上班 PunchRecord mindata = punchrecordmapper.selectByPrimaryKey(minAttid.getId());//上班
PunchRecord record = new PunchRecord(); PunchRecord record = new PunchRecord();
record.setId(mapucalist.get(y).getId()); record.setId(mapucalist.get(y).getId());
Long time = (mindata.getDktime() - sbdk1)/1000/60; Long time = (mindata.getDktime() - sbdk1)/1000/60;
...@@ -1326,7 +1334,7 @@ public class TimeCardController { ...@@ -1326,7 +1334,7 @@ public class TimeCardController {
} }
record.setAttime(sbdk1); record.setAttime(sbdk1);
record.setBcid(banci.getId());//班次id record.setBcid(banci.getId());//班次id
punchrecordservice.updateByPrimaryKeySelective(record); punchrecordmapper.updateByPrimaryKeySelective(record);
} }
if(y == 1 || y == 2){ if(y == 1 || y == 2){
PunchRecord record = new PunchRecord(); PunchRecord record = new PunchRecord();
...@@ -1356,9 +1364,9 @@ public class TimeCardController { ...@@ -1356,9 +1364,9 @@ public class TimeCardController {
str[1] = String.valueOf(mapucalist.get(y).getId()); str[1] = String.valueOf(mapucalist.get(y).getId());
} }
record.setBcid(banci.getId());//班次id record.setBcid(banci.getId());//班次id
punchrecordservice.updateByPrimaryKeySelective(record); punchrecordmapper.updateByPrimaryKeySelective(record);
} }
PunchRecord maxdata = punchrecordservice.selectByPrimaryKey(maxAttid.getId());//下班 PunchRecord maxdata = punchrecordmapper.selectByPrimaryKey(maxAttid.getId());//下班
if(mapucalist.get(y).getId() == maxdata.getId()){//下班 if(mapucalist.get(y).getId() == maxdata.getId()){//下班
PunchRecord record = new PunchRecord(); PunchRecord record = new PunchRecord();
record.setId(maxdata.getId()); record.setId(maxdata.getId());
...@@ -1374,7 +1382,7 @@ public class TimeCardController { ...@@ -1374,7 +1382,7 @@ public class TimeCardController {
record.setSort(4); record.setSort(4);
record.setAttime(xbdk2); record.setAttime(xbdk2);
record.setBcid(banci.getId());//班次id record.setBcid(banci.getId());//班次id
punchrecordservice.updateByPrimaryKeySelective(record); punchrecordmapper.updateByPrimaryKeySelective(record);
str[2] = String.valueOf(maxdata.getId()); str[2] = String.valueOf(maxdata.getId());
} }
...@@ -1386,11 +1394,11 @@ public class TimeCardController { ...@@ -1386,11 +1394,11 @@ public class TimeCardController {
record.setResults(0);// 打卡结果 record.setResults(0);// 打卡结果
record.setAttime(mapucalist.get(y).getDktime());//上班应打卡时间 record.setAttime(mapucalist.get(y).getDktime());//上班应打卡时间
record.setBcid(banci.getId());//班次id record.setBcid(banci.getId());//班次id
punchrecordservice.updateByPrimaryKeySelective(record); punchrecordmapper.updateByPrimaryKeySelective(record);
} }
} }
//修改打卡明细 //修改打卡明细
PunchRecord mindata = punchrecordservice.selectByPrimaryKey(minAttid.getId());//上班 PunchRecord mindata = punchrecordmapper.selectByPrimaryKey(minAttid.getId());//上班
PunchCardDetails record = new PunchCardDetails(); PunchCardDetails record = new PunchCardDetails();
record.setId(dkmxid);//需修改的明细id record.setId(dkmxid);//需修改的明细id
record.setSbdk1(mindata.getDktime()); record.setSbdk1(mindata.getDktime());
...@@ -1409,7 +1417,7 @@ public class TimeCardController { ...@@ -1409,7 +1417,7 @@ public class TimeCardController {
record.setGzsc(Double.valueOf("0")); record.setGzsc(Double.valueOf("0"));
punchcarddetailsservice.ModifyPunchDetails(record); punchcarddetailsservice.ModifyPunchDetails(record);
for(int t=0;t<str.length;t++){ for(int t=0;t<str.length;t++){
PunchRecord dtdkmx = punchrecordservice.selectByPrimaryKey(Integer.valueOf(str[t]));//单条打卡明细 PunchRecord dtdkmx = punchrecordmapper.selectByPrimaryKey(Integer.valueOf(str[t]));//单条打卡明细
PunchCardDetails dkmx = new PunchCardDetails(); PunchCardDetails dkmx = new PunchCardDetails();
dkmx.setId(dkmxid);//需修改的明细id dkmx.setId(dkmxid);//需修改的明细id
...@@ -1443,8 +1451,8 @@ public class TimeCardController { ...@@ -1443,8 +1451,8 @@ public class TimeCardController {
} }
record.setAttime(sbdk1);//当天应打卡时间 record.setAttime(sbdk1);//当天应打卡时间
record.setBcid(banci.getId());//班次id record.setBcid(banci.getId());//班次id
punchrecordservice.updateByPrimaryKeySelective(record); punchrecordmapper.updateByPrimaryKeySelective(record);
mindataone = punchrecordservice.selectByPrimaryKey(minAttid.getId());//上班 mindataone = punchrecordmapper.selectByPrimaryKey(minAttid.getId());//上班
PunchCardDetails dan = new PunchCardDetails(); PunchCardDetails dan = new PunchCardDetails();
dan.setId(dkmxid);//需修改的明细id dan.setId(dkmxid);//需修改的明细id
dan.setSbdk1(mindataone.getDktime()); dan.setSbdk1(mindataone.getDktime());
...@@ -1468,8 +1476,8 @@ public class TimeCardController { ...@@ -1468,8 +1476,8 @@ public class TimeCardController {
} }
record.setAttime(xbdk1);//当天应打卡时间 record.setAttime(xbdk1);//当天应打卡时间
record.setBcid(banci.getId());//班次id record.setBcid(banci.getId());//班次id
punchrecordservice.updateByPrimaryKeySelective(record); punchrecordmapper.updateByPrimaryKeySelective(record);
PunchRecord dtdkmx = punchrecordservice.selectByPrimaryKey(mapucalist.get(1).getId());//单条打卡明细 PunchRecord dtdkmx = punchrecordmapper.selectByPrimaryKey(mapucalist.get(1).getId());//单条打卡明细
pcd.setXbdk1(dtdkmx.getDktime()); pcd.setXbdk1(dtdkmx.getDktime());
pcd.setXbdk1jg(dtdkmx.getResults()); pcd.setXbdk1jg(dtdkmx.getResults());
} }
...@@ -1487,8 +1495,8 @@ public class TimeCardController { ...@@ -1487,8 +1495,8 @@ public class TimeCardController {
} }
record.setAttime(sbdk2);//当天应打卡时间 record.setAttime(sbdk2);//当天应打卡时间
record.setBcid(banci.getId());//班次id record.setBcid(banci.getId());//班次id
punchrecordservice.updateByPrimaryKeySelective(record); punchrecordmapper.updateByPrimaryKeySelective(record);
PunchRecord dtdkmx = punchrecordservice.selectByPrimaryKey(mapucalist.get(2).getId());//单条打卡明细 PunchRecord dtdkmx = punchrecordmapper.selectByPrimaryKey(mapucalist.get(2).getId());//单条打卡明细
pcd.setSbdk2(dtdkmx.getDktime()); pcd.setSbdk2(dtdkmx.getDktime());
pcd.setSbdk2jg(dtdkmx.getResults()); pcd.setSbdk2jg(dtdkmx.getResults());
} }
...@@ -1506,8 +1514,8 @@ public class TimeCardController { ...@@ -1506,8 +1514,8 @@ public class TimeCardController {
} }
record.setAttime(xbdk2);//当天应打卡时间 record.setAttime(xbdk2);//当天应打卡时间
record.setBcid(banci.getId());//班次id record.setBcid(banci.getId());//班次id
punchrecordservice.updateByPrimaryKeySelective(record); punchrecordmapper.updateByPrimaryKeySelective(record);
PunchRecord dtdkmx = punchrecordservice.selectByPrimaryKey(maxAttid.getId());//单条打卡明细 PunchRecord dtdkmx = punchrecordmapper.selectByPrimaryKey(maxAttid.getId());//单条打卡明细
pcd.setXbdk2(dtdkmx.getDktime()); pcd.setXbdk2(dtdkmx.getDktime());
pcd.setXbdk2jg(dtdkmx.getResults()); pcd.setXbdk2jg(dtdkmx.getResults());
} }
...@@ -1519,7 +1527,7 @@ public class TimeCardController { ...@@ -1519,7 +1527,7 @@ public class TimeCardController {
String[] str= new String[5]; String[] str= new String[5];
for(int y=0;y<mapucalist.size();y++){ for(int y=0;y<mapucalist.size();y++){
if(y == 0){//上班 if(y == 0){//上班
PunchRecord mindata = punchrecordservice.selectByPrimaryKey(minAttid.getId());//上班 PunchRecord mindata = punchrecordmapper.selectByPrimaryKey(minAttid.getId());//上班
PunchRecord record = new PunchRecord(); PunchRecord record = new PunchRecord();
record.setId(mapucalist.get(y).getId()); record.setId(mapucalist.get(y).getId());
Long time = (mindata.getDktime() - sbdk1)/1000/60; Long time = (mindata.getDktime() - sbdk1)/1000/60;
...@@ -1532,7 +1540,7 @@ public class TimeCardController { ...@@ -1532,7 +1540,7 @@ public class TimeCardController {
} }
record.setAttime(sbdk1); record.setAttime(sbdk1);
record.setBcid(banci.getId());//班次id record.setBcid(banci.getId());//班次id
punchrecordservice.updateByPrimaryKeySelective(record); punchrecordmapper.updateByPrimaryKeySelective(record);
} }
if(y == 1 || y == 2 || y == 3 || y == 4){ if(y == 1 || y == 2 || y == 3 || y == 4){
PunchRecord record = new PunchRecord(); PunchRecord record = new PunchRecord();
...@@ -1589,9 +1597,9 @@ public class TimeCardController { ...@@ -1589,9 +1597,9 @@ public class TimeCardController {
} }
} }
record.setBcid(banci.getId());//班次id record.setBcid(banci.getId());//班次id
punchrecordservice.updateByPrimaryKeySelective(record); punchrecordmapper.updateByPrimaryKeySelective(record);
} }
PunchRecord maxdata = punchrecordservice.selectByPrimaryKey(maxAttid.getId());//下班 PunchRecord maxdata = punchrecordmapper.selectByPrimaryKey(maxAttid.getId());//下班
if(mapucalist.get(y).getId() == maxdata.getId()){//下班 if(mapucalist.get(y).getId() == maxdata.getId()){//下班
PunchRecord record = new PunchRecord(); PunchRecord record = new PunchRecord();
record.setId(maxdata.getId()); record.setId(maxdata.getId());
...@@ -1607,7 +1615,7 @@ public class TimeCardController { ...@@ -1607,7 +1615,7 @@ public class TimeCardController {
record.setSort(6); record.setSort(6);
record.setAttime(xbdk3); record.setAttime(xbdk3);
record.setBcid(banci.getId());//班次id record.setBcid(banci.getId());//班次id
punchrecordservice.updateByPrimaryKeySelective(record); punchrecordmapper.updateByPrimaryKeySelective(record);
str[4] = String.valueOf(maxdata.getId()); str[4] = String.valueOf(maxdata.getId());
} }
...@@ -1619,11 +1627,11 @@ public class TimeCardController { ...@@ -1619,11 +1627,11 @@ public class TimeCardController {
record.setResults(0);// 打卡结果 record.setResults(0);// 打卡结果
record.setAttime(mapucalist.get(y).getDktime());//上班应打卡时间 record.setAttime(mapucalist.get(y).getDktime());//上班应打卡时间
record.setBcid(banci.getId());//班次id record.setBcid(banci.getId());//班次id
punchrecordservice.updateByPrimaryKeySelective(record); punchrecordmapper.updateByPrimaryKeySelective(record);
} }
} }
//修改打卡明细 //修改打卡明细
PunchRecord mindata = punchrecordservice.selectByPrimaryKey(minAttid.getId());//上班 PunchRecord mindata = punchrecordmapper.selectByPrimaryKey(minAttid.getId());//上班
PunchCardDetails record = new PunchCardDetails(); PunchCardDetails record = new PunchCardDetails();
record.setId(dkmxid);//需修改的明细id record.setId(dkmxid);//需修改的明细id
record.setSbdk1(mindata.getDktime()); record.setSbdk1(mindata.getDktime());
...@@ -1642,7 +1650,7 @@ public class TimeCardController { ...@@ -1642,7 +1650,7 @@ public class TimeCardController {
record.setGzsc(Double.valueOf("0")); record.setGzsc(Double.valueOf("0"));
punchcarddetailsservice.ModifyPunchDetails(record); punchcarddetailsservice.ModifyPunchDetails(record);
for(int t=0;t<str.length;t++){ for(int t=0;t<str.length;t++){
PunchRecord dtdkmx = punchrecordservice.selectByPrimaryKey(Integer.valueOf(str[t]));//单条打卡明细 PunchRecord dtdkmx = punchrecordmapper.selectByPrimaryKey(Integer.valueOf(str[t]));//单条打卡明细
PunchCardDetails dkmx = new PunchCardDetails(); PunchCardDetails dkmx = new PunchCardDetails();
dkmx.setId(dkmxid);//需修改的明细id dkmx.setId(dkmxid);//需修改的明细id
if(t == 0){ if(t == 0){
...@@ -1681,8 +1689,8 @@ public class TimeCardController { ...@@ -1681,8 +1689,8 @@ public class TimeCardController {
} }
record.setAttime(sbdk1);//当天应打卡时间 record.setAttime(sbdk1);//当天应打卡时间
record.setBcid(banci.getId());//班次id record.setBcid(banci.getId());//班次id
punchrecordservice.updateByPrimaryKeySelective(record); punchrecordmapper.updateByPrimaryKeySelective(record);
mindataone = punchrecordservice.selectByPrimaryKey(minAttid.getId());//上班 mindataone = punchrecordmapper.selectByPrimaryKey(minAttid.getId());//上班
PunchCardDetails dan = new PunchCardDetails(); PunchCardDetails dan = new PunchCardDetails();
dan.setId(dkmxid);//需修改的明细id dan.setId(dkmxid);//需修改的明细id
dan.setSbdk1(mindataone.getDktime()); dan.setSbdk1(mindataone.getDktime());
...@@ -1706,8 +1714,8 @@ public class TimeCardController { ...@@ -1706,8 +1714,8 @@ public class TimeCardController {
} }
record.setAttime(xbdk1);//当天应打卡时间 record.setAttime(xbdk1);//当天应打卡时间
record.setBcid(banci.getId());//班次id record.setBcid(banci.getId());//班次id
punchrecordservice.updateByPrimaryKeySelective(record); punchrecordmapper.updateByPrimaryKeySelective(record);
PunchRecord dtdkmx = punchrecordservice.selectByPrimaryKey(mapucalist.get(1).getId());//单条打卡明细 PunchRecord dtdkmx = punchrecordmapper.selectByPrimaryKey(mapucalist.get(1).getId());//单条打卡明细
pcd.setXbdk1(dtdkmx.getDktime()); pcd.setXbdk1(dtdkmx.getDktime());
pcd.setXbdk1jg(dtdkmx.getResults()); pcd.setXbdk1jg(dtdkmx.getResults());
} }
...@@ -1725,8 +1733,8 @@ public class TimeCardController { ...@@ -1725,8 +1733,8 @@ public class TimeCardController {
} }
record.setAttime(sbdk2);//当天应打卡时间 record.setAttime(sbdk2);//当天应打卡时间
record.setBcid(banci.getId());//班次id record.setBcid(banci.getId());//班次id
punchrecordservice.updateByPrimaryKeySelective(record); punchrecordmapper.updateByPrimaryKeySelective(record);
PunchRecord dtdkmx = punchrecordservice.selectByPrimaryKey(mapucalist.get(2).getId());//单条打卡明细 PunchRecord dtdkmx = punchrecordmapper.selectByPrimaryKey(mapucalist.get(2).getId());//单条打卡明细
pcd.setSbdk2(dtdkmx.getDktime()); pcd.setSbdk2(dtdkmx.getDktime());
pcd.setSbdk2jg(dtdkmx.getResults()); pcd.setSbdk2jg(dtdkmx.getResults());
} }
...@@ -1744,8 +1752,8 @@ public class TimeCardController { ...@@ -1744,8 +1752,8 @@ public class TimeCardController {
} }
record.setAttime(xbdk2);//当天应打卡时间 record.setAttime(xbdk2);//当天应打卡时间
record.setBcid(banci.getId());//班次id record.setBcid(banci.getId());//班次id
punchrecordservice.updateByPrimaryKeySelective(record); punchrecordmapper.updateByPrimaryKeySelective(record);
PunchRecord dtdkmx = punchrecordservice.selectByPrimaryKey(mapucalist.get(3).getId());//单条打卡明细 PunchRecord dtdkmx = punchrecordmapper.selectByPrimaryKey(mapucalist.get(3).getId());//单条打卡明细
pcd.setXbdk2(dtdkmx.getDktime()); pcd.setXbdk2(dtdkmx.getDktime());
pcd.setXbdk2jg(dtdkmx.getResults()); pcd.setXbdk2jg(dtdkmx.getResults());
} }
...@@ -1763,8 +1771,8 @@ public class TimeCardController { ...@@ -1763,8 +1771,8 @@ public class TimeCardController {
} }
record.setAttime(sbdk3);//当天应打卡时间 record.setAttime(sbdk3);//当天应打卡时间
record.setBcid(banci.getId());//班次id record.setBcid(banci.getId());//班次id
punchrecordservice.updateByPrimaryKeySelective(record); punchrecordmapper.updateByPrimaryKeySelective(record);
PunchRecord dtdkmx = punchrecordservice.selectByPrimaryKey(mapucalist.get(4).getId());//单条打卡明细 PunchRecord dtdkmx = punchrecordmapper.selectByPrimaryKey(mapucalist.get(4).getId());//单条打卡明细
pcd.setSbdk3(dtdkmx.getDktime()); pcd.setSbdk3(dtdkmx.getDktime());
pcd.setSbdk3jg(dtdkmx.getResults()); pcd.setSbdk3jg(dtdkmx.getResults());
...@@ -1783,8 +1791,8 @@ public class TimeCardController { ...@@ -1783,8 +1791,8 @@ public class TimeCardController {
} }
record.setAttime(xbdk3);//当天应打卡时间 record.setAttime(xbdk3);//当天应打卡时间
record.setBcid(banci.getId());//班次id record.setBcid(banci.getId());//班次id
punchrecordservice.updateByPrimaryKeySelective(record); punchrecordmapper.updateByPrimaryKeySelective(record);
PunchRecord dtdkmx = punchrecordservice.selectByPrimaryKey(maxAttid.getId());//单条打卡明细 PunchRecord dtdkmx = punchrecordmapper.selectByPrimaryKey(maxAttid.getId());//单条打卡明细
pcd.setXbdk3(dtdkmx.getDktime()); pcd.setXbdk3(dtdkmx.getDktime());
pcd.setXbdk3jg(dtdkmx.getResults()); pcd.setXbdk3jg(dtdkmx.getResults());
} }
...@@ -1849,6 +1857,60 @@ public class TimeCardController { ...@@ -1849,6 +1857,60 @@ public class TimeCardController {
return ResultUtil.data(pageAs, listAs, "操作成功!"); return ResultUtil.data(pageAs, listAs, "操作成功!");
} }
/**
* 根据用户id和假期id查询余额具体数据
*/
@PostMapping(value = "/modify_employee_balance")
@ApiOperation(value = "根据用户id和假期id查询余额具体数据", httpMethod = "POST", notes = "接口发布说明")
// @ApiOperationSupport(order = 45)
public Result<Object> ModifyEmployeeBalance(@RequestBody ModifyEmployeeBalanceDto bala) {
List<KqglAssoLeaveBalance> ballist = kqglassoleavebalancemapper.selectList(new QueryWrapper<KqglAssoLeaveBalance>().lambda().eq(KqglAssoLeaveBalance::getLeaveRulesId, bala.getLeaverulesid()).eq(KqglAssoLeaveBalance::getUserid, bala.getEmpnum()));
return ResultUtil.data(ballist,"操作成功!");
}
/**
* 考勤原始记录-根据 模糊 + 高級查詢-分页
*/
@PostMapping(value = "/attendancecalendar")
@ApiOperation(value = "考勤原始记录-根据 模糊 + 高級查詢-分页", httpMethod = "POST", notes = "接口发布说明")
@ApiOperationSupport(order = 34)
public Result<Object> AttendanceCalendar(@CurrentUser UserBean userBean, @Validated @RequestBody OriginalRecordDto originalrecorddto){
IPage<PunchRecord> page = new Page<PunchRecord>(
originalrecorddto.getCurrentPage() == null ? 1 : originalrecorddto.getCurrentPage(),
originalrecorddto.getTotalPage() == null ? 10 : originalrecorddto.getTotalPage());
originalrecorddto.setQyid(userBean.getOrgCode());
IPage<PunchRecord> pageAs = punchrecordmapper.QueryOriginalRecord(page, originalrecorddto);
List<PunchRecord> listAs = pageAs.getRecords();
return ResultUtil.data(pageAs, listAs, "操作成功!");
}
/**
* 获取考勤组所需加班规则
*/
@GetMapping(value="/attovertimerules")
@ApiOperation(value = "获取考勤组所需加班规则", httpMethod = "GET", notes = "接口发布说明")
@ApiOperationSupport(order = 15)
public Result<Object> getAttOvertimeRules(@CurrentUser UserBean userBean){
List<KqglAssoOvertimeRules> attoverrul = new LambdaQueryChainWrapper<KqglAssoOvertimeRules>(kqglassoovertimerulesmapper).eq(KqglAssoOvertimeRules::getOrgCode, userBean.getOrgCode()).list();
return ResultUtil.data(attoverrul,"操作成功!");
}
// @GetMapping(value = "/summary_report")
// @ApiOperation(value = "考勤汇总报表(暂时不用)", httpMethod = "GET", notes = "接口发布说明")
// public Result<Object> attendance_summary_report() {
// Map<String, Object> map = new HashMap<String, Object>();
//
// return ResultUtil.data(map);
// }
/**************************/ /**************************/
/** /**
* 查询列表-加班补偿方式 * 查询列表-加班补偿方式
......
...@@ -51,13 +51,13 @@ import cn.timer.api.utils.DateUtil; ...@@ -51,13 +51,13 @@ import cn.timer.api.utils.DateUtil;
/** /**
* @author lal * @author lal
* * 考勤报表汇总数据
*/ */
@Component @Component
@Lazy @Lazy
public class AttendanceTaskTiming implements SchedulingConfigurer { public class AttendanceTaskTiming implements SchedulingConfigurer {
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); // private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
static String tablename = null; static String tablename = null;
@Autowired @Autowired
...@@ -125,7 +125,7 @@ public class AttendanceTaskTiming implements SchedulingConfigurer { ...@@ -125,7 +125,7 @@ public class AttendanceTaskTiming implements SchedulingConfigurer {
//逻辑 //逻辑
if(implement) { if(implement) {
System.err.println("当前时间:" + dateFormat.format(new Date())); // System.err.println("时间:" + dateFormat.format(new Date()));
Calendar c = Calendar.getInstance(); Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, 0); c.add(Calendar.MONTH, 0);
...@@ -148,8 +148,8 @@ public class AttendanceTaskTiming implements SchedulingConfigurer { ...@@ -148,8 +148,8 @@ public class AttendanceTaskTiming implements SchedulingConfigurer {
KqglAssoMonthPunchSummary.builder().build().delete(new QueryWrapper<KqglAssoMonthPunchSummary>().lambda().eq(KqglAssoMonthPunchSummary::getBelongYear, year).eq(KqglAssoMonthPunchSummary::getBelongMonth, month)); KqglAssoMonthPunchSummary.builder().build().delete(new QueryWrapper<KqglAssoMonthPunchSummary>().lambda().eq(KqglAssoMonthPunchSummary::getBelongYear, year).eq(KqglAssoMonthPunchSummary::getBelongMonth, month));
// for(int t = 0;t<orgcodelist.size();t++){ for(int t = 0;t<orgcodelist.size();t++){
int org_code = 117;//orgcodelist.get(t).getId();//企业组织代码 int org_code = orgcodelist.get(t).getId();//企业组织代码
List<AdditionalDto> userlist = kqglassoleavebalancemapper.selectAdditionalList(org_code); List<AdditionalDto> userlist = kqglassoleavebalancemapper.selectAdditionalList(org_code);
for(AdditionalDto user : userlist) { for(AdditionalDto user : userlist) {
double traveltotal = 0,egresstotal = 0,overtimetotal = 0; double traveltotal = 0,egresstotal = 0,overtimetotal = 0;
...@@ -193,7 +193,6 @@ public class AttendanceTaskTiming implements SchedulingConfigurer { ...@@ -193,7 +193,6 @@ public class AttendanceTaskTiming implements SchedulingConfigurer {
//具体打卡时间入汇总表(打卡成功才会录入汇总表) //具体打卡时间入汇总表(打卡成功才会录入汇总表)
// KqglAssoMonthPunchSummary isyessum = KqglAssoMonthPunchSummary.builder().build().selectOne(new QueryWrapper<KqglAssoMonthPunchSummary>().lambda() // KqglAssoMonthPunchSummary isyessum = KqglAssoMonthPunchSummary.builder().build().selectOne(new QueryWrapper<KqglAssoMonthPunchSummary>().lambda()
// .eq(KqglAssoMonthPunchSummary::getNum, user.getEmpnum()).eq(KqglAssoMonthPunchSummary::getOrgCode, org_code)); // .eq(KqglAssoMonthPunchSummary::getNum, user.getEmpnum()).eq(KqglAssoMonthPunchSummary::getOrgCode, org_code));
String[] ycqts = new String[31];//应上班的具体天数(yyyy-MM-dd) String[] ycqts = new String[31];//应上班的具体天数(yyyy-MM-dd)
String[] xxts = new String[31];//休息的具体天数(yyyy-MM-dd) String[] xxts = new String[31];//休息的具体天数(yyyy-MM-dd)
List<String> rowData = new ArrayList<String>(); List<String> rowData = new ArrayList<String>();
...@@ -204,16 +203,12 @@ public class AttendanceTaskTiming implements SchedulingConfigurer { ...@@ -204,16 +203,12 @@ public class AttendanceTaskTiming implements SchedulingConfigurer {
double workinghours = 0,seriouslatetimes = 0,seriouslatehours = 0,absenlatetimes = 0; double workinghours = 0,seriouslatetimes = 0,seriouslatehours = 0,absenlatetimes = 0;
// 迟到次数 迟到时长 早退次数 早退时长 // 迟到次数 迟到时长 早退次数 早退时长
int latenum = 0,latehours = 0,leanum = 0,leahours = 0;// 迟到次数 int latenum = 0,latehours = 0,leanum = 0,leahours = 0;// 迟到次数
int answer =0;//班次ID
double workingturncompenleave = 0;//工作日(转调休) //工作日(转调休)、休息日(转调休)、节假日(转调休)
double restturncompenleave = 0;//休息日(转调休) double workingturncompenleave = 0,restturncompenleave = 0,holidayturncompenleave = 0;//工作日(转调休)
double holidayturncompenleave = 0;//节假日(转调休) //工作日(转加班费)、休息日(转加班费)、节假日(转加班费)
double workingtransferovertime = 0;//工作日(转加班费) double workingtransferovertime = 0,resttransferovertime = 0,holidaytransferovertime = 0;
double resttransferovertime = 0;//休息日(转加班费)
double holidaytransferovertime = 0;//节假日(转加班费)
int attgroid = 0; int attgroid = 0;
if(attgro != null){//该员工是否加入到考勤组 排班方式 1:固定排班;2:自由排班;3:自由工时 计算出应出勤,实际出勤,休息天数 if(attgro != null){//该员工是否加入到考勤组 排班方式 1:固定排班;2:自由排班;3:自由工时 计算出应出勤,实际出勤,休息天数
attgroid = attgro.getId(); attgroid = attgro.getId();
// KqglAssoBcsz shif = KqglAssoBcsz.builder().build(); // KqglAssoBcsz shif = KqglAssoBcsz.builder().build();
...@@ -221,7 +216,6 @@ public class AttendanceTaskTiming implements SchedulingConfigurer { ...@@ -221,7 +216,6 @@ public class AttendanceTaskTiming implements SchedulingConfigurer {
// double daysOff = 0,daysOnDuty = 0;//,actualAttDays = 0; // double daysOff = 0,daysOnDuty = 0;//,actualAttDays = 0;
// int zjgzts = 0;//目前为止应该出勤的天数 // int zjgzts = 0;//目前为止应该出勤的天数
if(attgro.getPbfs() == 1){ //固定排班 if(attgro.getPbfs() == 1){ //固定排班
List<KqglAssoTeshu> bxdklist = kqglassoteshumapper.ShouldSpecialDatessetByKqzid(attgro.getId(), ttstr,1);//当前月 必须打卡日期 List<KqglAssoTeshu> bxdklist = kqglassoteshumapper.ShouldSpecialDatessetByKqzid(attgro.getId(), ttstr,1);//当前月 必须打卡日期
int bxdk = bxdklist.size(); int bxdk = bxdklist.size();
String[] bxdkss = new String[bxdk];////特殊-必须打卡天数(工作日) String[] bxdkss = new String[bxdk];////特殊-必须打卡天数(工作日)
...@@ -237,8 +231,6 @@ public class AttendanceTaskTiming implements SchedulingConfigurer { ...@@ -237,8 +231,6 @@ public class AttendanceTaskTiming implements SchedulingConfigurer {
appmaps[d1] = spe.getTsrq(); appmaps[d1] = spe.getTsrq();
d1++; d1++;
} }
List<AttendanceWeeklySch> atwek = attendanceweeklyschmapper.selectAttendanceMadeByUserid(user.getEmpnum()); List<AttendanceWeeklySch> atwek = attendanceweeklyschmapper.selectAttendanceMadeByUserid(user.getEmpnum());
String[] week= new String[atwek.size()]; String[] week= new String[atwek.size()];
String[] needfig = new String[atwek.size()];//应打卡周期时间 String[] needfig = new String[atwek.size()];//应打卡周期时间
...@@ -296,7 +288,6 @@ public class AttendanceTaskTiming implements SchedulingConfigurer { ...@@ -296,7 +288,6 @@ public class AttendanceTaskTiming implements SchedulingConfigurer {
} }
}else if(attgro.getPbfs() == 2){ //自由排班 }else if(attgro.getPbfs() == 2){ //自由排班
DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US); DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
List<Schedule> ycqs = schedulemapper.getAttendanceShouldList(user.getEmpnum(),startDate,endDate); List<Schedule> ycqs = schedulemapper.getAttendanceShouldList(user.getEmpnum(),startDate,endDate);
int xiuxi = 0,shangban = 0,z=0; int xiuxi = 0,shangban = 0,z=0;
String[] ziyoupb = new String[ycqs.size()]; String[] ziyoupb = new String[ycqs.size()];
...@@ -445,9 +436,7 @@ public class AttendanceTaskTiming implements SchedulingConfigurer { ...@@ -445,9 +436,7 @@ public class AttendanceTaskTiming implements SchedulingConfigurer {
//排查请假是否在最后一次打卡范围内 //排查请假是否在最后一次打卡范围内
List<KqglAssoRelationSummary> leainv = kqglassorelationsummarymapper.LeaveInvestigation(user.getEmpnum(), 2, ttstr); List<KqglAssoRelationSummary> leainv = kqglassorelationsummarymapper.LeaveInvestigation(user.getEmpnum(), 2, ttstr);
KqglAssoBcsz shif = KqglAssoBcsz.builder().build(); KqglAssoBcsz shif = KqglAssoBcsz.builder().build();
String beginTime = sdf1.format(new Date()); String beginTime = sdf1.format(new Date());
// List<String> rowData = new ArrayList<String>(); // List<String> rowData = new ArrayList<String>();
//遍历目前为止所有日期 结合该用户发起的审批进行结合 //遍历目前为止所有日期 结合该用户发起的审批进行结合
...@@ -479,7 +468,6 @@ public class AttendanceTaskTiming implements SchedulingConfigurer { ...@@ -479,7 +468,6 @@ public class AttendanceTaskTiming implements SchedulingConfigurer {
} }
} }
rowData.add(lea.getStartTime() +"到"+ lea.getEndTime()+"请"+leavetype+lea.getDuration()+company); rowData.add(lea.getStartTime() +"到"+ lea.getEndTime()+"请"+leavetype+lea.getDuration()+company);
}else if(Arrays.binarySearch(ClockInTool.doChinFilters(ClockInTool.replaceNull(travels),"null"), num) >= 0) {//出差 }else if(Arrays.binarySearch(ClockInTool.doChinFilters(ClockInTool.replaceNull(travels),"null"), num) >= 0) {//出差
KqglAssoRelationSummary lea = KqglAssoRelationSummary.builder().build().selectOne(new QueryWrapper<KqglAssoRelationSummary>().lambda().eq(KqglAssoRelationSummary::getUserId, user.getEmpnum()).eq(KqglAssoRelationSummary::getAppTime, num).eq(KqglAssoRelationSummary::getApprovalType, 3)); KqglAssoRelationSummary lea = KqglAssoRelationSummary.builder().build().selectOne(new QueryWrapper<KqglAssoRelationSummary>().lambda().eq(KqglAssoRelationSummary::getUserId, user.getEmpnum()).eq(KqglAssoRelationSummary::getAppTime, num).eq(KqglAssoRelationSummary::getApprovalType, 3));
rowData.add(lea.getStartTime() +"到"+ lea.getEndTime()+"出差"+lea.getDuration()+"天"); rowData.add(lea.getStartTime() +"到"+ lea.getEndTime()+"出差"+lea.getDuration()+"天");
...@@ -490,7 +478,6 @@ public class AttendanceTaskTiming implements SchedulingConfigurer { ...@@ -490,7 +478,6 @@ public class AttendanceTaskTiming implements SchedulingConfigurer {
KqglAssoRelationSummary lea = KqglAssoRelationSummary.builder().build().selectOne(new QueryWrapper<KqglAssoRelationSummary>().lambda().eq(KqglAssoRelationSummary::getUserId, user.getEmpnum()).eq(KqglAssoRelationSummary::getAppTime, num).eq(KqglAssoRelationSummary::getApprovalType, 5)); KqglAssoRelationSummary lea = KqglAssoRelationSummary.builder().build().selectOne(new QueryWrapper<KqglAssoRelationSummary>().lambda().eq(KqglAssoRelationSummary::getUserId, user.getEmpnum()).eq(KqglAssoRelationSummary::getAppTime, num).eq(KqglAssoRelationSummary::getApprovalType, 5));
rowData.add("已补卡:"+lea.getStartTime()); rowData.add("已补卡:"+lea.getStartTime());
}else if(Arrays.binarySearch(ClockInTool.doChinFilters(ClockInTool.replaceNull(overtimes),"null"), num) >= 0) {//加班 }else if(Arrays.binarySearch(ClockInTool.doChinFilters(ClockInTool.replaceNull(overtimes),"null"), num) >= 0) {//加班
KqglAssoRelationSummary lea = KqglAssoRelationSummary.builder().build().selectOne(new QueryWrapper<KqglAssoRelationSummary>().lambda().eq(KqglAssoRelationSummary::getUserId, user.getEmpnum()).eq(KqglAssoRelationSummary::getAppTime, num).eq(KqglAssoRelationSummary::getApprovalType, 1)); KqglAssoRelationSummary lea = KqglAssoRelationSummary.builder().build().selectOne(new QueryWrapper<KqglAssoRelationSummary>().lambda().eq(KqglAssoRelationSummary::getUserId, user.getEmpnum()).eq(KqglAssoRelationSummary::getAppTime, num).eq(KqglAssoRelationSummary::getApprovalType, 1));
String company = "未知",method = "无";//加班单位、加班补偿方式 String company = "未知",method = "无";//加班单位、加班补偿方式
//最小加班单位 1:按分钟加班、2:按半小时加班、3:按小时加班、4:按半天加班、5:按天加班 //最小加班单位 1:按分钟加班、2:按半小时加班、3:按小时加班、4:按半天加班、5:按天加班
...@@ -550,8 +537,6 @@ public class AttendanceTaskTiming implements SchedulingConfigurer { ...@@ -550,8 +537,6 @@ public class AttendanceTaskTiming implements SchedulingConfigurer {
} }
} }
/****************************************/
if(attgro.getPbfs() == 1){ if(attgro.getPbfs() == 1){
int several = Integer.valueOf(ClockInTool.dateToWeek(num));// int several = Integer.valueOf(ClockInTool.dateToWeek(num));//
KqglAssoTeshu tesu = KqglAssoTeshu.builder().build().selectOne(new QueryWrapper<KqglAssoTeshu>().lambda().eq(KqglAssoTeshu::getKqzid, attgro.getId()).eq(KqglAssoTeshu::getTsrq, num)); KqglAssoTeshu tesu = KqglAssoTeshu.builder().build().selectOne(new QueryWrapper<KqglAssoTeshu>().lambda().eq(KqglAssoTeshu::getKqzid, attgro.getId()).eq(KqglAssoTeshu::getTsrq, num));
...@@ -580,8 +565,7 @@ public class AttendanceTaskTiming implements SchedulingConfigurer { ...@@ -580,8 +565,7 @@ public class AttendanceTaskTiming implements SchedulingConfigurer {
if(shif != null && shif.getSxbcs() != null) { if(shif != null && shif.getSxbcs() != null) {
System.out.println(shif.getSxbcs()); System.out.println(shif.getSxbcs());
int answer = shif.getSxbcs();//1=2次 2=4次 3=6次 answer = shif.getSxbcs();//1=2次 2=4次 3=6次
//未打最后一次卡的时候 判断最后一次打卡时间是否在请假范围内 相对应减少下班缺卡次数 //未打最后一次卡的时候 判断最后一次打卡时间是否在请假范围内 相对应减少下班缺卡次数
//最后一次应打卡时间 //最后一次应打卡时间
String latimeclock = ""; String latimeclock = "";
...@@ -611,7 +595,6 @@ public class AttendanceTaskTiming implements SchedulingConfigurer { ...@@ -611,7 +595,6 @@ public class AttendanceTaskTiming implements SchedulingConfigurer {
System.err.print("该员工未加入考勤组"); System.err.print("该员工未加入考勤组");
} }
String[] range1=ClockInTool.listToString(rowData).split(";"); String[] range1=ClockInTool.listToString(rowData).split(";");
String[] noticesArray=range1[0].split(","); String[] noticesArray=range1[0].split(",");
noticesArray = ClockInTool.arrycopy(noticesArray); noticesArray = ClockInTool.arrycopy(noticesArray);
...@@ -630,8 +613,7 @@ public class AttendanceTaskTiming implements SchedulingConfigurer { ...@@ -630,8 +613,7 @@ public class AttendanceTaskTiming implements SchedulingConfigurer {
} }
KqglAssoMonthPunchSummary summary = KqglAssoMonthPunchSummary.builder().name(user.getEmpname()).num(user.getEmpnum()).dept(department) KqglAssoMonthPunchSummary summary = KqglAssoMonthPunchSummary.builder().name(user.getEmpname()).num(user.getEmpnum()).dept(department)
.post(position).attGroup(attgroid).build(); .post(position).attGroup(attgroid).shift(answer).build();
summary.setDaysOnDuty(daysOnDuty);//应出勤天数 summary.setDaysOnDuty(daysOnDuty);//应出勤天数
summary.setActualAttDays(Double.valueOf(dkjl));//实际出勤天数 summary.setActualAttDays(Double.valueOf(dkjl));//实际出勤天数
summary.setDaysOff(daysOff);//休息天数 summary.setDaysOff(daysOff);//休息天数
...@@ -663,7 +645,6 @@ public class AttendanceTaskTiming implements SchedulingConfigurer { ...@@ -663,7 +645,6 @@ public class AttendanceTaskTiming implements SchedulingConfigurer {
summary.setWorkingTransferOvertime(workingtransferovertime);//工作日(转加班费) summary.setWorkingTransferOvertime(workingtransferovertime);//工作日(转加班费)
summary.setRestTransferOvertime(resttransferovertime);//休息日(转加班费) summary.setRestTransferOvertime(resttransferovertime);//休息日(转加班费)
summary.setHolidayTransferOvertime(holidaytransferovertime);//节假日(转加班费) summary.setHolidayTransferOvertime(holidaytransferovertime);//节假日(转加班费)
summary.setDay1(noticesArray[0]); summary.setDay1(noticesArray[0]);
summary.setDay2(noticesArray[1]); summary.setDay2(noticesArray[1]);
summary.setDay3(noticesArray[2]); summary.setDay3(noticesArray[2]);
...@@ -697,8 +678,7 @@ public class AttendanceTaskTiming implements SchedulingConfigurer { ...@@ -697,8 +678,7 @@ public class AttendanceTaskTiming implements SchedulingConfigurer {
summary.setDay31(noticesArray[30]); summary.setDay31(noticesArray[30]);
summary.insert(); summary.insert();
} }
// } }
// KqglTaskTiming.builder().task("AttendanceTask").id(sockid).executionStatus(0).lastExecutionTime(new Date().getTime()).build().updateById(); // KqglTaskTiming.builder().task("AttendanceTask").id(sockid).executionStatus(0).lastExecutionTime(new Date().getTime()).build().updateById();
return new Exception().getStackTrace()[0].getMethodName(); return new Exception().getStackTrace()[0].getMethodName();
......
...@@ -5,8 +5,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -5,8 +5,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import cn.timer.api.bean.kqmk.AttendanceSocks; import cn.timer.api.bean.kqmk.AttendanceSocks;
public class AttendanceUtil { public class AttendanceUtil {
// 默认cron 5秒一次 // 默认cron 5秒一次 0/5 * * * * ?
private static String cron = "0/5 * * * * ?"; private static String cron = "0 0 19 * * ?";//下午七点
// 数据库cron // 数据库cron
public static String getCron(String tablename) { public static String getCron(String tablename) {
......
...@@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; ...@@ -9,6 +9,7 @@ import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import cn.timer.api.bean.kqmk.KqglAssoLeaveBalance; import cn.timer.api.bean.kqmk.KqglAssoLeaveBalance;
import cn.timer.api.bean.kqmk.KqglAssoLeaveRules;
import cn.timer.api.bean.kqmk.KqglAssoRelationSummary; import cn.timer.api.bean.kqmk.KqglAssoRelationSummary;
import cn.timer.api.bean.yggl.YgglMainEmp; import cn.timer.api.bean.yggl.YgglMainEmp;
import cn.timer.api.controller.kqgl.ClockInTool; import cn.timer.api.controller.kqgl.ClockInTool;
...@@ -43,6 +44,7 @@ public class KqglServiceImpl implements KqglService { ...@@ -43,6 +44,7 @@ public class KqglServiceImpl implements KqglService {
.endTime(new SimpleDateFormat("yyyy-MM-dd' 'HH:mm:ss").format(leaveappr.getEndtime())).build().insert(); .endTime(new SimpleDateFormat("yyyy-MM-dd' 'HH:mm:ss").format(leaveappr.getEndtime())).build().insert();
} }
YgglMainEmp emp = YgglMainEmp.builder().build().selectOne(new QueryWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getEmpNum, leaveappr.getUserid())); YgglMainEmp emp = YgglMainEmp.builder().build().selectOne(new QueryWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getEmpNum, leaveappr.getUserid()));
int modifynumber = 1; int modifynumber = 1;
KqglAssoLeaveBalance balan = kqglassoleavebalancemapper.selectOne(new QueryWrapper<KqglAssoLeaveBalance>().lambda().eq(KqglAssoLeaveBalance::getUserid, leaveappr.getUserid()) KqglAssoLeaveBalance balan = kqglassoleavebalancemapper.selectOne(new QueryWrapper<KqglAssoLeaveBalance>().lambda().eq(KqglAssoLeaveBalance::getUserid, leaveappr.getUserid())
.orderByDesc(KqglAssoLeaveBalance :: getModifyNumber).last("LIMIT 1")); .orderByDesc(KqglAssoLeaveBalance :: getModifyNumber).last("LIMIT 1"));
...@@ -69,6 +71,25 @@ public class KqglServiceImpl implements KqglService { ...@@ -69,6 +71,25 @@ public class KqglServiceImpl implements KqglService {
.overtimeTypeId(overappr.getOvertimetype()).compensateId(overappr.getCompensate()).startTime(new SimpleDateFormat("yyyy-MM-dd' 'HH:mm:ss").format(overappr.getStarttime())) .overtimeTypeId(overappr.getOvertimetype()).compensateId(overappr.getCompensate()).startTime(new SimpleDateFormat("yyyy-MM-dd' 'HH:mm:ss").format(overappr.getStarttime()))
.endTime(new SimpleDateFormat("yyyy-MM-dd' 'HH:mm:ss").format(overappr.getEndtime())).build().insert(); .endTime(new SimpleDateFormat("yyyy-MM-dd' 'HH:mm:ss").format(overappr.getEndtime())).build().insert();
} }
YgglMainEmp emp = YgglMainEmp.builder().build().selectOne(new QueryWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getEmpNum, overappr.getUserid()));
//查询当前公司调休的id
KqglAssoLeaveRules learul = KqglAssoLeaveRules.builder().build().selectOne(new QueryWrapper<KqglAssoLeaveRules>().lambda().eq(KqglAssoLeaveRules::getOrgCode, emp.getOrgCode()).eq(KqglAssoLeaveRules::getRulesType, 2));
if(overappr.getCompensate() == 1) {
int modifynumber = 1;
KqglAssoLeaveBalance balan = kqglassoleavebalancemapper.selectOne(new QueryWrapper<KqglAssoLeaveBalance>().lambda().eq(KqglAssoLeaveBalance::getUserid, overappr.getUserid())
.orderByDesc(KqglAssoLeaveBalance :: getModifyNumber).last("LIMIT 1"));
if(balan != null) {
modifynumber = balan.getModifyNumber()+1;
}
KqglAssoLeaveBalance.builder().leaveRulesId(learul.getId()).userid(overappr.getUserid()).modifyAction(2).balanceDays("+"+overappr.getDuration())
.reason("系统按照规则自动(加班)").modifyUserid(emp.getEmpNum()).modifyTimer(new Date().getTime()).orgCode(emp.getOrgCode()).isAutomatic(1).modifyNumber(modifynumber).build().insert();//员工假期余额
}
return true; return true;
} }
......
...@@ -40,6 +40,7 @@ import cn.timer.api.bean.zzgl.ZzglBmgwM; ...@@ -40,6 +40,7 @@ import cn.timer.api.bean.zzgl.ZzglBmgwM;
import cn.timer.api.config.annotation.CurrentUser; import cn.timer.api.config.annotation.CurrentUser;
import cn.timer.api.config.annotation.UserBean; import cn.timer.api.config.annotation.UserBean;
import cn.timer.api.config.enums.CommonEnum; import cn.timer.api.config.enums.CommonEnum;
import cn.timer.api.config.enums.SysRoleType;
import cn.timer.api.dao.qyzx.QyzxEmpEntAssoMapper; import cn.timer.api.dao.qyzx.QyzxEmpEntAssoMapper;
import cn.timer.api.dao.qyzx.QyzxEmpLoginMapper; import cn.timer.api.dao.qyzx.QyzxEmpLoginMapper;
import cn.timer.api.dao.qyzx.QyzxEntInfoMMapper; import cn.timer.api.dao.qyzx.QyzxEntInfoMMapper;
...@@ -277,8 +278,8 @@ public class QyzxController { ...@@ -277,8 +278,8 @@ public class QyzxController {
return ResultUtil.data(menus, "你不是该企业的用户!"); return ResultUtil.data(menus, "你不是该企业的用户!");
} }
if (CommonEnum.U_TYPE_ADMIN.getType().equals(ctrl.getUserType()) if (SysRoleType.U_TYPE_ADMIN.getType().equals(ctrl.getUserType())
|| CommonEnum.U_TYPE_C_ADMIN.getType().equals(ctrl.getUserType())) { || SysRoleType.U_TYPE_C_ADMIN.getType().equals(ctrl.getUserType())) {
} else { } else {
// 获取权限 // 获取权限
ArrayList<Integer> list = new ArrayList<Integer>(); ArrayList<Integer> list = new ArrayList<Integer>();
......
...@@ -80,9 +80,11 @@ import cn.timer.api.config.annotation.UserBean; ...@@ -80,9 +80,11 @@ import cn.timer.api.config.annotation.UserBean;
import cn.timer.api.config.enuminterface.YgEnumInterface; import cn.timer.api.config.enuminterface.YgEnumInterface;
import cn.timer.api.config.enuminterface.YgEnumInterface.jobStatus; import cn.timer.api.config.enuminterface.YgEnumInterface.jobStatus;
import cn.timer.api.config.enums.CommonEnum; import cn.timer.api.config.enums.CommonEnum;
import cn.timer.api.config.enums.SysRoleType;
import cn.timer.api.config.exception.Regular; import cn.timer.api.config.exception.Regular;
import cn.timer.api.config.validation.ValidList; import cn.timer.api.config.validation.ValidList;
import cn.timer.api.dao.clazz.CommonAreaMapper; import cn.timer.api.dao.clazz.CommonAreaMapper;
import cn.timer.api.dao.qyzx.QyzxEmpEntAssoMapper;
import cn.timer.api.dao.qyzx.QyzxEmpLoginMapper; import cn.timer.api.dao.qyzx.QyzxEmpLoginMapper;
import cn.timer.api.dao.yggl.YgMzDtoMapper; import cn.timer.api.dao.yggl.YgMzDtoMapper;
import cn.timer.api.dao.yggl.YgglMainEmpMapper; import cn.timer.api.dao.yggl.YgglMainEmpMapper;
...@@ -124,6 +126,9 @@ public class YgglController { ...@@ -124,6 +126,9 @@ public class YgglController {
@Autowired @Autowired
private YgglMainEmpMapper ygglMainEmpMapper; private YgglMainEmpMapper ygglMainEmpMapper;
@Autowired
private QyzxEmpEntAssoMapper qyzxEmpEntAssoMapper;
@Autowired @Autowired
private QyzxEmpLoginMapper qyzxEmpLoginMapper; private QyzxEmpLoginMapper qyzxEmpLoginMapper;
...@@ -272,7 +277,7 @@ public class YgglController { ...@@ -272,7 +277,7 @@ public class YgglController {
if (ygglMainEmp == null) { if (ygglMainEmp == null) {
QyzxEmpEntAsso.builder() QyzxEmpEntAsso.builder()
.empNum(login.getId()).orgCode(orgCode).userType(CommonEnum.U_TYPE_EMP.getType()).status(CommonEnum.U_STS_ON.getType()) .empNum(login.getId()).orgCode(orgCode).userType(SysRoleType.U_TYPE_EMP.getType()).status(CommonEnum.U_STS_ON.getType())
.build() .build()
.insert(); .insert();
ygglMainEmp = YgglMainEmp.builder() ygglMainEmp = YgglMainEmp.builder()
...@@ -449,7 +454,7 @@ public class YgglController { ...@@ -449,7 +454,7 @@ public class YgglController {
} }
QyzxEmpEntAsso.builder().empNum(login.getId()).orgCode(orgCode) QyzxEmpEntAsso.builder().empNum(login.getId()).orgCode(orgCode)
.userType(CommonEnum.U_TYPE_EMP.getType()).status(CommonEnum.U_STS_ON.getType()).build().insert();// usertype2普通员工 status1正常 .userType(SysRoleType.U_TYPE_EMP.getType()).status(CommonEnum.U_STS_ON.getType()).build().insert();// usertype2普通员工 status1正常
yme = YgglMainEmp.builder() yme = YgglMainEmp.builder()
.name(name).phone(phone).zjType(zjType).zjNum(zjNum).jobType(jobType) .name(name).phone(phone).zjType(zjType).zjNum(zjNum).jobType(jobType)
.jobStatus(YgEnumInterface.jobStatus.SHIYONG.getType()).rzTime(rzTime) .jobStatus(YgEnumInterface.jobStatus.SHIYONG.getType()).rzTime(rzTime)
...@@ -1298,13 +1303,20 @@ public class YgglController { ...@@ -1298,13 +1303,20 @@ public class YgglController {
YgglMainLzb.builder().empNum(empNum).jobStatus(YgEnumInterface.jobStatus.YILIZHI.getType()).sjlzTime(new Date()) YgglMainLzb.builder().empNum(empNum).jobStatus(YgEnumInterface.jobStatus.YILIZHI.getType()).sjlzTime(new Date())
.build().update(new UpdateWrapper<YgglMainLzb>().lambda().eq(YgglMainLzb::getEmpNum, empNum)); .build().update(new UpdateWrapper<YgglMainLzb>().lambda().eq(YgglMainLzb::getEmpNum, empNum));
LambdaQueryWrapper<QyzxEmpEntAsso> queryWrapper = new QueryWrapper<QyzxEmpEntAsso>().lambda().eq(QyzxEmpEntAsso::getEmpNum, empNum);
// 确认离职 删除员工关联表 // 确认离职 删除员工关联表
QyzxEmpEntAsso.builder().empNum(lzygQueryDto.getEmpNum()).build() qyzxEmpEntAssoMapper.delete(queryWrapper);
.delete(new QueryWrapper<QyzxEmpEntAsso>().lambda().eq(QyzxEmpEntAsso::getEmpNum, empNum));
// 初始化 部门主管 // 初始化 部门主管
zzglBmgwMMapper.update(ZzglBmgwM.builder().leader(null).build(), zzglBmgwMMapper.update(ZzglBmgwM.builder().leader(null).build(),
new UpdateWrapper<ZzglBmgwM>().lambda().eq(ZzglBmgwM::getLeader, empNum)); new UpdateWrapper<ZzglBmgwM>().lambda().eq(ZzglBmgwM::getLeader, empNum));
// 更新当前企业
List<QyzxEmpEntAsso> listEEA = qyzxEmpEntAssoMapper.selectList(queryWrapper);
if (listEEA != null && listEEA.size() > 0) {
QyzxEmpLogin.builder().id(empNum).orgId(CollUtil.getFirst(listEEA).getOrgCode()).build().updateById();
}
return ResultUtil.success("确认离职员工成功"); return ResultUtil.success("确认离职员工成功");
} }
......
...@@ -8,4 +8,9 @@ public interface YgglService { ...@@ -8,4 +8,9 @@ public interface YgglService {
void applicationResignation(LzygQueryDto lzygQueryDto); void applicationResignation(LzygQueryDto lzygQueryDto);
void applicationRegularization(YgzzDto ygzzDto); void applicationRegularization(YgzzDto ygzzDto);
/*
* 根据 员工ID 和 主管层级 查询 主管
*/
Integer selectLeaderEmpNumById(Integer orgCode, Integer id, Integer leave);
} }
package cn.timer.api.controller.yggl.service; package cn.timer.api.controller.yggl.service;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
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 com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.timer.api.bean.yggl.YgglMainEmp; import cn.timer.api.bean.yggl.YgglMainEmp;
import cn.timer.api.bean.yggl.YgglMainLzb; import cn.timer.api.bean.yggl.YgglMainLzb;
import cn.timer.api.bean.zzgl.ZzglBmgwM;
import cn.timer.api.config.enuminterface.YgEnumInterface; import cn.timer.api.config.enuminterface.YgEnumInterface;
import cn.timer.api.dao.yggl.YgglMainEmpMapper;
import cn.timer.api.dao.zzgl.ZzglBmgwMMapper;
import cn.timer.api.dto.yggl.LzygQueryDto; import cn.timer.api.dto.yggl.LzygQueryDto;
import cn.timer.api.dto.yggl.YgzzDto; import cn.timer.api.dto.yggl.YgzzDto;
@Service @Service
public class YgglServiceImpl implements YgglService { public class YgglServiceImpl implements YgglService {
@Autowired
private YgglMainEmpMapper ygglMainEmpMapper;
@Autowired
private ZzglBmgwMMapper zzglBmgwMMapper;
@Override @Override
public void applicationResignation(LzygQueryDto lzygQueryDto) { public void applicationResignation(LzygQueryDto lzygQueryDto) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
...@@ -50,4 +65,50 @@ public class YgglServiceImpl implements YgglService { ...@@ -50,4 +65,50 @@ public class YgglServiceImpl implements YgglService {
.build().update(new UpdateWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getEmpNum, ygzzDto.getEmpNum())); .build().update(new UpdateWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getEmpNum, ygzzDto.getEmpNum()));
} }
@Override
public Integer selectLeaderEmpNumById(Integer orgCode, Integer id, Integer leave) {
// TODO Auto-generated method stub
YgglMainEmp mainEmp = ygglMainEmpMapper.selectOne(new QueryWrapper<YgglMainEmp>().lambda()
.select(YgglMainEmp::getBmgwId)
.eq(YgglMainEmp::getEmpNum, id));
Integer gWId = mainEmp != null ? mainEmp.getBmgwId() : null;
// 企业所有部门岗位
List<ZzglBmgwM> listBM = zzglBmgwMMapper.selectList(new QueryWrapper<ZzglBmgwM>().lambda()
.eq(ZzglBmgwM::getOrgCode, orgCode));
// 岗位
ZzglBmgwM gW = CollUtil.getFirst(listBM.stream().filter(bM -> bM.getId().equals(gWId)).collect(Collectors.toList()));
// 岗位id
Integer baseBmgwId = gW != null ? gW.getUpId() : null;
// 部门列表
// List<ZzglBmgwM> listbM = ListUtil.toList();
// 指定 主管id
Integer leaderId = null;
for (int i = 0,n = leave; i < n; i++) {
ZzglBmgwM bmgwM = getLeaderEmp(listBM, baseBmgwId);
baseBmgwId = bmgwM != null ? bmgwM.getId() : null;
if (i == n-1) {
// listbM.add(bmgwM);
leaderId = baseBmgwId;
}
}
return leaderId;
}
private ZzglBmgwM getLeaderEmp(List<ZzglBmgwM> listBM, Integer baseBmgwId) {
ZzglBmgwM zzglBmgwM = baseBmgwId != null ?
CollUtil.getFirst(listBM.stream()
.filter(bM -> bM.getId().equals(baseBmgwId)).collect(Collectors.toList()))
: null;
return zzglBmgwM;
}
} }
...@@ -2,6 +2,7 @@ package cn.timer.api.controller.zzgl.service; ...@@ -2,6 +2,7 @@ package cn.timer.api.controller.zzgl.service;
import java.util.List; import java.util.List;
import cn.timer.api.bean.yggl.YgglMainEmp;
import cn.timer.api.dto.zzgl.UpEmpDeptDto; import cn.timer.api.dto.zzgl.UpEmpDeptDto;
/** /**
...@@ -17,4 +18,6 @@ public interface ZzglBmgwMService { ...@@ -17,4 +18,6 @@ public interface ZzglBmgwMService {
List<Integer> selectMenuByPostId(Integer id); List<Integer> selectMenuByPostId(Integer id);
public List<YgglMainEmp> selectOtherlistent(Integer orgCode, Integer id);
} }
...@@ -9,6 +9,8 @@ import java.util.stream.Collectors; ...@@ -9,6 +9,8 @@ import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
...@@ -101,4 +103,26 @@ public class ZzglBmgwMServiceImpl implements ZzglBmgwMService { ...@@ -101,4 +103,26 @@ public class ZzglBmgwMServiceImpl implements ZzglBmgwMService {
return menuList; return menuList;
} }
@Override
public List<YgglMainEmp> selectOtherlistent(Integer orgCode, Integer id){
ArrayList<Integer> list = new ArrayList<Integer>();
List<ZzglBmgwM> zzglBmgwMs = ZzglBmgwM.builder().build().selectList(new QueryWrapper<ZzglBmgwM>().lambda()
.eq(ZzglBmgwM::getOrgCode, orgCode));
list.add(id);
ZzglBmgwM.getDepts(list, id, zzglBmgwMs);
if (list == null || list.size() == 0) {
return null;
} else {
LambdaQueryWrapper<YgglMainEmp> ygglMainEmpsLambdaQueryWrapper = new LambdaQueryWrapper<>();
ygglMainEmpsLambdaQueryWrapper
.select(YgglMainEmp::getId, YgglMainEmp::getEmpNum, YgglMainEmp::getName, YgglMainEmp::getPhone,
YgglMainEmp::getBmgwId)
.eq(YgglMainEmp::getOrgCode, orgCode).and(i -> i.in(YgglMainEmp::getBmgwId, list.toArray()));
List<YgglMainEmp> ygglMainEmps = YgglMainEmp.builder().build().selectList(ygglMainEmpsLambdaQueryWrapper);
return ygglMainEmps;
}
}
} }
package cn.timer.api.dao.jxgl; package cn.timer.api.dao.jxgl;
import java.util.List;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
...@@ -12,6 +14,4 @@ import cn.timer.api.bean.jxgl.JxglAppraisalIndicatorsT; ...@@ -12,6 +14,4 @@ import cn.timer.api.bean.jxgl.JxglAppraisalIndicatorsT;
@Repository @Repository
public interface JxglAppraisalIndicatorsTMapper extends BaseMapper<JxglAppraisalIndicatorsT> { public interface JxglAppraisalIndicatorsTMapper extends BaseMapper<JxglAppraisalIndicatorsT> {
} }
package cn.timer.api.dao.jxgl; package cn.timer.api.dao.jxgl;
import java.util.List;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
...@@ -12,6 +14,8 @@ import cn.timer.api.bean.jxgl.JxglAppraisalItemT; ...@@ -12,6 +14,8 @@ import cn.timer.api.bean.jxgl.JxglAppraisalItemT;
@Repository @Repository
public interface JxglAppraisalItemTMapper extends BaseMapper<JxglAppraisalItemT> { public interface JxglAppraisalItemTMapper extends BaseMapper<JxglAppraisalItemT> {
int insertList(List<JxglAppraisalItemT> aItemTs);
} }
package cn.timer.api.dao.jxgl; package cn.timer.api.dao.jxgl;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import cn.timer.api.bean.jxgl.JxglAppraisal; import cn.timer.api.bean.jxgl.JxglAppraisal;
import cn.timer.api.dto.jxgl.AppraisalDetail;
import cn.timer.api.dto.jxgl.AppraisalQuery;
import cn.timer.api.dto.jxgl.EmpPerformanceQuery;
/** /**
* 考核 * 考核
...@@ -12,6 +17,10 @@ import cn.timer.api.bean.jxgl.JxglAppraisal; ...@@ -12,6 +17,10 @@ import cn.timer.api.bean.jxgl.JxglAppraisal;
@Repository @Repository
public interface JxglAppraisalMapper extends BaseMapper<JxglAppraisal> { public interface JxglAppraisalMapper extends BaseMapper<JxglAppraisal> {
IPage<JxglAppraisal> selectListByQuery(IPage<JxglAppraisal> page,@Param("param") AppraisalQuery query);
AppraisalDetail selectDetailById(Integer orgCode, Integer id);
IPage<JxglAppraisal> selectListEmpByQuery(IPage<JxglAppraisal> page,@Param("param") EmpPerformanceQuery query);
} }
...@@ -12,6 +12,8 @@ import cn.timer.api.bean.jxgl.JxglAppraisalT; ...@@ -12,6 +12,8 @@ import cn.timer.api.bean.jxgl.JxglAppraisalT;
@Repository @Repository
public interface JxglAppraisalTMapper extends BaseMapper<JxglAppraisalT> { public interface JxglAppraisalTMapper extends BaseMapper<JxglAppraisalT> {
JxglAppraisalT selectDetailById(Integer id);
} }
...@@ -12,6 +12,8 @@ import cn.timer.api.bean.jxgl.JxglBasicSetting; ...@@ -12,6 +12,8 @@ import cn.timer.api.bean.jxgl.JxglBasicSetting;
@Repository @Repository
public interface JxglBasicSettingMapper extends BaseMapper<JxglBasicSetting> { public interface JxglBasicSettingMapper extends BaseMapper<JxglBasicSetting> {
JxglBasicSetting selectAll(Integer orgCode);
} }
package cn.timer.api.dao.jxgl; package cn.timer.api.dao.jxgl;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import cn.timer.api.bean.jxgl.JxglPerformanceAppraisal; import cn.timer.api.bean.jxgl.JxglPerformanceAppraisal;
import cn.timer.api.bean.spmk.SpmkApproveSummary;
import cn.timer.api.dto.jxgl.EmpAppraisalQuery;
import cn.timer.api.dto.jxgl.PerformanceAppraisalQuery;
/** /**
* 绩效考核 * 绩效考核
...@@ -12,6 +19,13 @@ import cn.timer.api.bean.jxgl.JxglPerformanceAppraisal; ...@@ -12,6 +19,13 @@ import cn.timer.api.bean.jxgl.JxglPerformanceAppraisal;
@Repository @Repository
public interface JxglPerformanceAppraisalMapper extends BaseMapper<JxglPerformanceAppraisal> { public interface JxglPerformanceAppraisalMapper extends BaseMapper<JxglPerformanceAppraisal> {
IPage<JxglPerformanceAppraisal> selectListByQuery(IPage<SpmkApproveSummary> page, @Param("param") PerformanceAppraisalQuery param);
IPage<JxglPerformanceAppraisal> selectListEmpByQuery(IPage<JxglPerformanceAppraisal> page,@Param("param") EmpAppraisalQuery query);
IPage<JxglPerformanceAppraisal> selectArchiveListByQuery(IPage<SpmkApproveSummary> page,@Param("param")
PerformanceAppraisalQuery query);
} }
package cn.timer.api.dao.jxgl; package cn.timer.api.dao.jxgl;
import java.util.List;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
...@@ -12,6 +14,6 @@ import cn.timer.api.bean.jxgl.JxglPerformanceRating; ...@@ -12,6 +14,6 @@ import cn.timer.api.bean.jxgl.JxglPerformanceRating;
@Repository @Repository
public interface JxglPerformanceRatingMapper extends BaseMapper<JxglPerformanceRating> { public interface JxglPerformanceRatingMapper extends BaseMapper<JxglPerformanceRating> {
int insertList(List<JxglPerformanceRating> list);
} }
...@@ -2,8 +2,13 @@ package cn.timer.api.dao.kqgl; ...@@ -2,8 +2,13 @@ package cn.timer.api.dao.kqgl;
import java.util.List; import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.metadata.IPage;
import cn.timer.api.bean.kqgl.AttendanceDetails; import cn.timer.api.bean.kqgl.AttendanceDetails;
import cn.timer.api.bean.kqgl.PunchRecord; import cn.timer.api.bean.kqgl.PunchRecord;
import cn.timer.api.dto.kqmk.OriginalRecordDto;
public interface PunchRecordMapper { public interface PunchRecordMapper {
int deleteByPrimaryKey(Integer id); int deleteByPrimaryKey(Integer id);
...@@ -31,4 +36,8 @@ public interface PunchRecordMapper { ...@@ -31,4 +36,8 @@ public interface PunchRecordMapper {
List<PunchRecord> getMaintenancePunchCardList(Long start,Long end,Integer userId); List<PunchRecord> getMaintenancePunchCardList(Long start,Long end,Integer userId);
List<PunchRecord> selFuzzyOriginalAttendance(AttendanceDetails attendancedetails); List<PunchRecord> selFuzzyOriginalAttendance(AttendanceDetails attendancedetails);
IPage<PunchRecord> QueryOriginalRecord(IPage<PunchRecord> page,@Param("param") OriginalRecordDto originalrecorddto);
} }
\ No newline at end of file
...@@ -16,4 +16,6 @@ import cn.timer.api.dto.kqmk.AttSubsidiaryDto; ...@@ -16,4 +16,6 @@ import cn.timer.api.dto.kqmk.AttSubsidiaryDto;
public interface KqglAssoDkmxMapper extends BaseMapper<KqglAssoDkmx> { public interface KqglAssoDkmxMapper extends BaseMapper<KqglAssoDkmx> {
AttSubsidiaryDto subsidiary(int userid, String data); AttSubsidiaryDto subsidiary(int userid, String data);
int updateByPrimaryKeySelective(KqglAssoDkmx kqglassodkmx);
} }
...@@ -17,4 +17,6 @@ import cn.timer.api.bean.kqmk.KqglAssoLeaveRules; ...@@ -17,4 +17,6 @@ import cn.timer.api.bean.kqmk.KqglAssoLeaveRules;
public interface KqglAssoLeaveRulesMapper extends BaseMapper<KqglAssoLeaveRules> { public interface KqglAssoLeaveRulesMapper extends BaseMapper<KqglAssoLeaveRules> {
int insertleaverulesList(List<KqglAssoLeaveRules> kqglassoleaverules); int insertleaverulesList(List<KqglAssoLeaveRules> kqglassoleaverules);
List<KqglAssoLeaveRules> selHeaderdata(int orgcode,int leavetype,int isopen);
} }
...@@ -6,6 +6,7 @@ import org.springframework.stereotype.Repository; ...@@ -6,6 +6,7 @@ import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import cn.timer.api.bean.kqmk.KqglAssoRulesVice; import cn.timer.api.bean.kqmk.KqglAssoRulesVice;
import cn.timer.api.dto.kqmk.KqglAssoRulesViceDto;
/** /**
...@@ -16,5 +17,7 @@ import cn.timer.api.bean.kqmk.KqglAssoRulesVice; ...@@ -16,5 +17,7 @@ import cn.timer.api.bean.kqmk.KqglAssoRulesVice;
public interface KqglAssoRulesViceMapper extends BaseMapper<KqglAssoRulesVice> { public interface KqglAssoRulesViceMapper extends BaseMapper<KqglAssoRulesVice> {
int insertrulesviceList(List<KqglAssoRulesVice> kqglassorulesvice); int insertrulesviceList(List<KqglAssoRulesVice> kqglassorulesvice);
List<KqglAssoRulesViceDto> leaveRulesIdload(int leaverulesid);
} }
package cn.timer.api.dto.jxgl;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import cn.timer.api.bean.jxgl.JxglAppraisalAssessment;
import cn.timer.api.bean.jxgl.JxglAppraisalIndicators;
import cn.timer.api.bean.jxgl.JxglAppraisalLog;
import cn.timer.api.bean.jxgl.JxglProcessNode;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AppraisalDetail implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "编号 编号", example = "10")
private Integer id;
@ApiModelProperty(value = "绩效考核id 绩效考核id", example = "10")
private Integer performanceAppraisalId;
@ApiModelProperty(value = "员工id 员工id", example = "10")
private Integer empNum;
@ApiModelProperty(value = "名称", example = "名称")
private String name;
@ApiModelProperty(value = "考核说明", example = "考核说明")
private String appraisalExplain;
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建时间", example = "2020-10-10 10:10:10")
private Date createTime;
@TableField(fill = FieldFill.UPDATE)
@ApiModelProperty(value = "更新时间", example = "2020-10-10 10:10:10")
private Date updateTime;
@ApiModelProperty(value = "状态 0目标填写 1目标确认 2自评 3上级评分 4 结果确认 5考核完成 6终止考核 7归档", example = "0")
private Integer sts;
private List<JxglProcessNode> processNodes;
private List<JxglAppraisalAssessment> appraisalAssessments;
private List<JxglAppraisalLog> appraisalLogs;
private List<JxglAppraisalIndicators> appraisalIndicators;
}
package cn.timer.api.dto.jxgl;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import cn.timer.api.config.exception.ValidationMsg;
import cn.timer.api.utils.Page;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AppraisalQuery extends Page{
@NotNull(message = ValidationMsg.NOTNULL)
@ApiModelProperty(value = "绩效考核id", example = "")
private Integer id;
@ApiModelProperty(value = "企业id", example = "")
private Integer orgCode;
@ApiModelProperty(value = "姓名、手机号", example = "")
private String query;
@Max(value = 4,message = ValidationMsg.MAX+" 只能为 0目标填写 1目标确认 2自评 3上级评分 4 结果确认 5考核完成 6终止考核 7绩效归档")
@Min(value = 0,message = ValidationMsg.MIN+" 只能为 0目标填写 1目标确认 2自评 3上级评分 4 结果确认 5考核完成 6终止考核 7绩效归档")
@ApiModelProperty(value = "状态 0目标填写 1目标确认 2自评 3上级评分 4 结果确认 5考核完成 6终止考核 7绩效归档", example = "0")
private Integer sts;
@ApiModelProperty(value = "部门id", example = "")
private Integer bmId;
}
package cn.timer.api.dto.jxgl;
import java.io.Serializable;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import cn.timer.api.config.exception.ValidationMsg;
import cn.timer.api.dto.spmk.User;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BeingAppraisalPerson implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
@NotNull(message = ValidationMsg.NOTNULL)
@ApiModelProperty(value = "id", example = "10")
private Integer id;
/**
* 0员工 1部门
*/
@NotNull(message = ValidationMsg.NOTNULL)
@Min(value = 0,message = ValidationMsg.MIN)
@Max(value = 1,message = ValidationMsg.MAX)
@ApiModelProperty(value = "类型 0员工 1部门", example = "0")
private Integer type;
/**
* 0被考核人 1无需考核人
*/
@NotNull(message = ValidationMsg.NOTNULL)
@Min(value = 0,message = ValidationMsg.MIN)
@Max(value = 1,message = ValidationMsg.MAX)
@ApiModelProperty(value = "状态 0被考核人 1无需考核人", example = "0")
private Integer sts;
}
package cn.timer.api.dto.jxgl; package cn.timer.api.dto.jxgl;
import java.util.Date;
import javax.validation.Valid;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import cn.timer.api.bean.jxgl.JxglPerformanceRating;
import cn.timer.api.config.exception.ValidationMsg; import cn.timer.api.config.exception.ValidationMsg;
import cn.timer.api.config.validation.ValidList; import cn.timer.api.utils.Page;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
...@@ -18,26 +14,12 @@ import lombok.NoArgsConstructor; ...@@ -18,26 +14,12 @@ import lombok.NoArgsConstructor;
@Builder @Builder
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class BasicSettingDto { public class EmpAppraisalQuery extends Page {
@ApiModelProperty(value="编号",example="10")
private Integer id;
@ApiModelProperty(value="企业id",example="10")
private Integer orgCode;
@NotNull(message = ValidationMsg.NOTNULL) @NotNull(message = ValidationMsg.NOTNULL)
@ApiModelProperty(value="最高分",example="100") @ApiModelProperty(value = "员工id", example = "")
private Integer maxScore; private Integer id;
@ApiModelProperty(value="创建时间",example="2020-10-10 10:10:10")
private Date createTime;
@ApiModelProperty(value="更新时间",example="2020-10-10 10:10:10")
private Date updateTime;
@Valid
@ApiModelProperty(value="绩效等级",example="1")
private ValidList<JxglPerformanceRating> performanceRatings;
@ApiModelProperty(value = "企业id", example = "")
private Integer orgCode;
} }
package cn.timer.api.dto.jxgl;
import javax.validation.constraints.NotNull;
import cn.timer.api.config.exception.ValidationMsg;
import cn.timer.api.utils.Page;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class EmpPerformanceQuery extends Page {
@NotNull(message = ValidationMsg.NOTNULL)
@ApiModelProperty(value = "绩效考核id", example = "")
private Integer id;
@ApiModelProperty(value = "企业id", example = "")
private Integer orgCode;
@ApiModelProperty(value = "姓名、手机号", example = "")
private String query;
@ApiModelProperty(value = "部门id", example = "")
private Integer bmId;
}
package cn.timer.api.dto.jxgl;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.validation.Valid;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.google.gson.JsonObject;
import cn.timer.api.config.exception.ValidationMsg;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PerformanceAppraisal implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
@TableId (type = IdType.AUTO)
@ApiModelProperty(value="编号 编号",example="10")
private Integer id;
@ApiModelProperty(value="企业id 企业id",example="10")
private Integer orgCode;
@NotBlank(message = ValidationMsg.NOTBLANK)
@ApiModelProperty(value="名称",example="名称")
private String name;
@NotNull(message = ValidationMsg.NOTNULL)
@ApiModelProperty(value="周期 0月 1季 2年 3半年",example="10")
private Integer period;
@NotNull(message = ValidationMsg.NOTNULL)
@ApiModelProperty(value="开始时间",example="2020-10-10 10:10:10")
private Date appraisalStartTime;
@NotNull(message = ValidationMsg.NOTNULL)
@ApiModelProperty(value="结束时间",example="2020-10-10 10:10:10")
private Date appraisalEndTime;
@NotNull(message = ValidationMsg.NOTNULL)
@Min(value = 0,message = ValidationMsg.MIN)
@Max(value = 1,message = ValidationMsg.MAX)
@ApiModelProperty(value="是否可见 0是 1否。评分及评分结果能否被员工看见",example="1")
private Integer isVisible;
@NotNull(message = ValidationMsg.NOTNULL)
@Min(value = 0,message = ValidationMsg.MIN)
@Max(value = 4,message = ValidationMsg.MAX)
@ApiModelProperty(value="状态 0目标制定 1绩效评分 2结果确认 3绩效归档 4终止考核",example="10")
private Integer sts;
@ApiModelProperty(value="范围",example="部门名称、被考核人名称")
private String scope;
@NotBlank(message = ValidationMsg.NOTBLANK)
@ApiModelProperty(value="考核模板名称",example="考核模板名称")
private String appraisalTName;
@NotNull(message = ValidationMsg.NOTNULL)
@ApiModelProperty(value="考核模板id",example="1")
private Integer appraisalTId;
@ApiModelProperty(value="考核人数 考核人数",example="10")
private Integer appraisalPersonNum;
@NotNull(message = ValidationMsg.NOTNULL)
@ApiModelProperty(value="流程节点",example="")
private List<ProcessNode> processNode;
@Valid
@NotNull(message = ValidationMsg.NOTNULL)
@ApiModelProperty(value="被考核人员",example="")
private List<BeingAppraisalPerson> beingAppraisalPerson;
}
package cn.timer.api.dto.jxgl;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import cn.timer.api.config.exception.ValidationMsg;
import cn.timer.api.utils.Page;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PerformanceAppraisalQuery extends Page{
@ApiModelProperty(value = "企业id", example = "")
private Integer orgCode;
@ApiModelProperty(value = "考核名称", example = "")
private String query;
@Max(value = 4,message = ValidationMsg.MAX+" 只能为 0目标制定 1绩效评分 2结果确认 3绩效归档 4终止考核")
@Min(value = 0,message = ValidationMsg.MIN+" 只能为 0目标制定 1绩效评分 2结果确认 3绩效归档 4终止考核")
@ApiModelProperty(value = "状态 0目标制定 1绩效评分 2结果确认 3绩效归档 4终止考核", example = "0")
private Integer sts;
@ApiModelProperty(value = "开始时间 ", example = "2000-10-10 10:10:10")
private String startTime;
@ApiModelProperty(value = "结束时间 ", example = "2020-10-10 10:10:10")
private String endTime;
}
package cn.timer.api.dto.jxgl;
import java.io.Serializable;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import cn.timer.api.config.exception.ValidationMsg;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ProcessNode implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "执行人id(员工id)", example = "10")
private Integer executorId;
@NotNull(message = ValidationMsg.NOTNULL)
@Min(value = 0,message = ValidationMsg.MIN)
@Max(value = 2,message = ValidationMsg.MAX)
@ApiModelProperty(value = "执行人类型 0被考核人 1主管 2指定成员", example = "10")
private Integer executeType;
@NotNull(message = ValidationMsg.NOTNULL)
@Min(value = 0,message = ValidationMsg.MIN)
@Max(value = 4,message = ValidationMsg.MAX)
@ApiModelProperty(value = "类型 0目标填写 1目标确认 2自评 3上级评分 4 结果确认", example = "10")
private Integer processType;
@Min(value = 0,message = ValidationMsg.MIN)
@Max(value = 1,message = ValidationMsg.MAX)
@ApiModelProperty(value = "主管层级 0直属主管 1上上级主管", example = "10")
private Integer leaderTier;
@Min(value = 0,message = ValidationMsg.MIN)
@Max(value = 100,message = ValidationMsg.MAX)
@ApiModelProperty(value = "权重", example = "10")
private Integer weight;
}
package cn.timer.api.dto.jxgl;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import cn.timer.api.bean.jxgl.JxglProcessNode;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ProcessNodeUpdate implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "编号", example = "10")
private Integer id;
@ApiModelProperty(value = "考核id", example = "10")
private Integer appraisalId;
@ApiModelProperty(value = "执行人id(员工id)", example = "10")
private Integer executorId;
@ApiModelProperty(value = "执行人名称", example = "执行人名称")
private String executorName;
}
...@@ -44,6 +44,9 @@ public class KqglAssoLeaveRulesDto { ...@@ -44,6 +44,9 @@ public class KqglAssoLeaveRulesDto {
@ApiModelProperty(value = "假期余额 0:关(该项余额为“不限余额”);1:开(该项余额为“0”)", example = "101") @ApiModelProperty(value = "假期余额 0:关(该项余额为“不限余额”);1:开(该项余额为“0”)", example = "101")
private Integer leaveBalance; private Integer leaveBalance;
@ApiModelProperty(value = "规则类型(1:事假;2:调休;3:病假;4:年假;5:产假;6:陪产假;7:婚假;8:例假;9:丧假;10:哺乳假)", example = "101")
private Integer rulesType;
@ApiModelProperty(value = "适用范围集合", example = "101") @ApiModelProperty(value = "适用范围集合", example = "101")
private String[] range; private String[] range;
......
package cn.timer.api.dto.kqmk;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class KqglAssoRulesViceDto {
@ApiModelProperty(value = "假期规则id 假期规则id", example = "101")
private Integer leaveRulesId;
}
package cn.timer.api.dto.kqmk;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ModifyEmployeeBalanceDto {
private Integer empnum;
private Integer leaverulesid;
}
package cn.timer.api.dto.kqmk;
import cn.timer.api.utils.Page;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class OriginalRecordDto extends Page {
private Integer qyid;
private String start;
private String end;
private String text;
}
...@@ -20,6 +20,6 @@ public class VacationInformationDto { ...@@ -20,6 +20,6 @@ public class VacationInformationDto {
KqglAssoLeaveRules rules; KqglAssoLeaveRules rules;
@ApiModelProperty(value = "假期规则-适用范围 ", example = "字段说明") @ApiModelProperty(value = "假期规则-适用范围 ", example = "字段说明")
List<KqglAssoRulesVice> range; List<KqglAssoRulesViceDto> range;
} }
package cn.timer.api.dto.yggl;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserInfo {
private String name;
private String phone;
private Integer bmgwId;
}
...@@ -7,10 +7,28 @@ import lombok.Data; ...@@ -7,10 +7,28 @@ import lombok.Data;
* *
*/ */
@Data
public class Page { public class Page {
//当前页 //当前页
private Integer currentPage; private Integer currentPage;
//当前页总条数 //当前页总条数
private Integer totalPage; private Integer totalPage;
public Integer getCurrentPage() {
return currentPage == null || currentPage <= 0 ? 1 : currentPage;
}
public void setCurrentPage(Integer currentPage) {
this.currentPage = currentPage;
}
public Integer getTotalPage() {
return totalPage == null || totalPage <= 0 ? 10 : totalPage;
}
public void setTotalPage(Integer totalPage) {
this.totalPage = totalPage;
}
} }
package cn.timer.api.utils;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
public class StreamUtils {
public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
Map<Object,Boolean> seen = new ConcurrentHashMap<>();
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}
}
...@@ -148,8 +148,6 @@ public class RouterUtils { ...@@ -148,8 +148,6 @@ public class RouterUtils {
List<YgglMainEmp> listYgglMainEmp = selectOtherlistent(Integer.parseInt(obj.get("orgCode",FromData.class).getValue().trim()), Integer.valueOf(listRelations.get(i).getDepartmentId().trim())); List<YgglMainEmp> listYgglMainEmp = selectOtherlistent(Integer.parseInt(obj.get("orgCode",FromData.class).getValue().trim()), Integer.valueOf(listRelations.get(i).getDepartmentId().trim()));
System.out.println(listYgglMainEmp);
if (listYgglMainEmp != null && listYgglMainEmp.size() > 0) { if (listYgglMainEmp != null && listYgglMainEmp.size() > 0) {
List<User> listUsers = new ArrayList<User>(); List<User> listUsers = new ArrayList<User>();
for (YgglMainEmp emp : listYgglMainEmp) { for (YgglMainEmp emp : listYgglMainEmp) {
......
...@@ -26,6 +26,17 @@ ...@@ -26,6 +26,17 @@
content JxglAppraisalItemT_content, content JxglAppraisalItemT_content,
ranks JxglAppraisalItemT_ranks ranks JxglAppraisalItemT_ranks
</sql> </sql>
<insert id="insertList" useGeneratedKeys="true" keyColumn="id" parameterType="list">
INSERT INTO jxgl_appraisal_item_t
(appraisal_indicators_t_id,title,content,ranks)
values
<foreach item="item" index="index" collection="list" open="" separator="," close="">
(
#{item.appraisalIndicatorsTId},#{item.title},#{item.content},#{item.ranks}
)
</foreach>
</insert>
<!-- <!--
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
<resultMap id="BaseResultMap" type="cn.timer.api.bean.jxgl.JxglAppraisal" > <resultMap id="BaseResultMap" type="cn.timer.api.bean.jxgl.JxglAppraisal" >
<id column="id" property="id" /> <id column="id" property="id" />
<result column="performance_appraisal_id" property="performanceAppraisalId" />
<result column="emp_num" property="empNum" /> <result column="emp_num" property="empNum" />
<result column="name" property="name" /> <result column="name" property="name" />
<result column="appraisal_explain" property="appraisalExplain" /> <result column="appraisal_explain" property="appraisalExplain" />
...@@ -12,9 +13,92 @@ ...@@ -12,9 +13,92 @@
<result column="update_time" property="updateTime" /> <result column="update_time" property="updateTime" />
<result column="sts" property="sts" /> <result column="sts" property="sts" />
</resultMap> </resultMap>
<resultMap id="BaseResultMap_All" type="cn.timer.api.bean.jxgl.JxglAppraisal" >
<id column="id" property="id" />
<result column="performance_appraisal_id" property="performanceAppraisalId" />
<result column="emp_num" property="empNum" />
<result column="name" property="name" />
<result column="appraisal_explain" property="appraisalExplain" />
<result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" />
<result column="sts" property="sts" />
<result column="user_name" property="userName" />
<result column="phone" property="phone" />
<result column="bm_name" property="bmName" />
<result column="executor_name" property="executorName" />
<result column="comprehensive_score" property="comprehensiveScore" />
<result column="level" property="level" />
<result column="confirmor" property="confirmor" />
</resultMap>
<resultMap id="BaseResultMap_Emp" type="cn.timer.api.bean.jxgl.JxglAppraisal" >
<id column="id" property="id" />
<result column="performance_appraisal_id" property="performanceAppraisalId" />
<result column="emp_num" property="empNum" />
<result column="name" property="name" />
<result column="appraisal_explain" property="appraisalExplain" />
<result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" />
<result column="sts" property="sts" />
<result column="user_name" property="userName" />
<result column="phone" property="phone" />
<result column="bm_name" property="bmName" />
<result column="rz_time" property="rzTime" />
<result column="archivedPNum" property="archivedPNum" />
<result column="underwayPNum" property="underwayPNum" />
<result column="recentlyProject" property="recentlyProject" />
<result column="recentlyScore" property="recentlyScore" />
<result column="recentlyLevel" property="recentlyLevel" />
</resultMap>
<resultMap id="BaseResultMap_e" type="cn.timer.api.bean.jxgl.JxglAppraisalIndicators" >
<id column="id" property="id" />
<result column="appraisal_id" property="appraisalId" />
<result column="title" property="title" />
<result column="weight" property="weight" />
<result column="is_edit" property="isEdit" />
<result column="is_set_weight" property="isSetWeight" />
<result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" />
<result column="type" property="type" />
<collection column="JxglAppraisalIndicatorsAssessment_id" property="appraisalIndicatorsAssessments" ofType="cn.timer.api.bean.jxgl.JxglAppraisalIndicatorsAssessment"
resultMap="cn.timer.api.dao.jxgl.JxglAppraisalIndicatorsAssessmentMapper.BaseResultMap" columnPrefix="JxglAppraisalIndicatorsAssessment_">
</collection>
<collection column="JxglAppraisalItem_id" property="appraisalItems" ofType="cn.timer.api.bean.jxgl.JxglAppraisalItem"
resultMap="cn.timer.api.dao.jxgl.JxglAppraisalItemMapper.BaseResultMap" columnPrefix="JxglAppraisalItem_">
</collection>
</resultMap>
<resultMap id="BaseResultMap_Detail" type="cn.timer.api.dto.jxgl.AppraisalDetail" >
<id column="id" property="id" />
<result column="performance_appraisal_id" property="performanceAppraisalId" />
<result column="emp_num" property="empNum" />
<result column="name" property="name" />
<result column="appraisal_explain" property="appraisalExplain" />
<result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" />
<result column="sts" property="sts" />
<collection column="JxglProcessNode_id" property="processNodes" ofType="cn.timer.api.bean.jxgl.JxglProcessNode"
resultMap="cn.timer.api.dao.jxgl.JxglProcessNodeMapper.BaseResultMap" columnPrefix="JxglProcessNode_">
</collection>
<collection column="JxglAppraisalAssessment_id" property="appraisalAssessments" ofType="cn.timer.api.bean.jxgl.JxglAppraisalAssessment"
resultMap="cn.timer.api.dao.jxgl.JxglAppraisalAssessmentMapper.BaseResultMap" columnPrefix="JxglAppraisalAssessment_">
</collection>
<collection column="JxglAppraisalLog_id" property="appraisalLogs" ofType="cn.timer.api.bean.jxgl.JxglAppraisalLog"
resultMap="cn.timer.api.dao.jxgl.JxglAppraisalLogMapper.BaseResultMap" columnPrefix="JxglAppraisalLog_">
</collection>
<collection column="e_id" property="appraisalIndicators" ofType="cn.timer.api.bean.jxgl.JxglAppraisalIndicators"
resultMap="cn.timer.api.dao.jxgl.JxglAppraisalMapper.BaseResultMap_e" columnPrefix="e_">
</collection>
</resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, id,
performance_appraisal_id,
emp_num, emp_num,
name, name,
appraisal_explain, appraisal_explain,
...@@ -23,8 +107,88 @@ ...@@ -23,8 +107,88 @@
sts sts
</sql> </sql>
<sql id="Base_Column_List_a">
a.id,
a.performance_appraisal_id,
a.emp_num,
a.name,
a.appraisal_explain,
a.create_time,
a.update_time,
a.sts
</sql>
<sql id="Base_Column_List_Alias_b">
b.id JxglProcessNode_id,
b.appraisal_id JxglProcessNode_appraisal_id,
b.executor_id JxglProcessNode_executor_id,
b.executor_name JxglProcessNode_executor_name,
b.execute_type JxglProcessNode_execute_type,
b.process_type JxglProcessNode_process_type,
b.name JxglProcessNode_name,
b.leader_tier JxglProcessNode_leader_tier,
b.weight JxglProcessNode_weight,
b.sts JxglProcessNode_sts,
b.update_time JxglProcessNode_update_time
</sql>
<sql id="Base_Column_List_Alias_c">
c.id JxglAppraisalAssessment_id,
c.appraisal_id JxglAppraisalAssessment_appraisal_id,
c.assessor_id JxglAppraisalAssessment_assessor_id,
c.assessor_name JxglAppraisalAssessment_assessor_name,
c.comprehensive_score JxglAppraisalAssessment_comprehensive_score,
c.remarks JxglAppraisalAssessment_remarks,
c.type JxglAppraisalAssessment_type,
c.create_time JxglAppraisalAssessment_create_time,
c.level JxglAppraisalAssessment_level
</sql>
<sql id="Base_Column_List_Alias_d">
d.id JxglAppraisalLog_id,
d.appraisal_id JxglAppraisalLog_appraisal_id,
d.executor_id JxglAppraisalLog_executor_id,
d.executor_name JxglAppraisalLog_executor_name,
d.title JxglAppraisalLog_title,
d.remarks JxglAppraisalLog_remarks,
d.create_time JxglAppraisalLog_create_time,
d.type JxglAppraisalLog_type
</sql>
<sql id="Base_Column_List_Alias_e">
e.id e_id,
e.appraisal_id e_id,
e.title e_title,
e.weight e_weight,
e.is_edit e_is_edit,
e.is_set_weight e_is_set_weight,
e.create_time e_create_time,
e.update_time e_update_time,
e.type e_type
</sql>
<sql id="Base_Column_List_Alias_f">
f.id e_JxglAppraisalIndicatorsAssessment_id,
f.appraisal_indicators_id e_JxglAppraisalIndicatorsAssessment_appraisal_indicators_id,
f.assessor_id e_JxglAppraisalIndicatorsAssessment_assessor_id,
f.assessor_name e_JxglAppraisalIndicatorsAssessment_assessor_name,
f.score e_JxglAppraisalIndicatorsAssessment_score,
f.remarks e_JxglAppraisalIndicatorsAssessment_remarks,
f.type e_JxglAppraisalIndicatorsAssessment_type,
f.create_time e_JxglAppraisalIndicatorsAssessment_create_time
</sql>
<sql id="Base_Column_List_Alias_g">
g.id e_JxglAppraisalItem_id,
g.appraisal_indicators_id e_JxglAppraisalItem_appraisal_indicators_id,
g.title e_JxglAppraisalItem_title,
g.content e_JxglAppraisalItem_content,
g.ranks e_JxglAppraisalItem_ranks
</sql>
<sql id="Base_Column_List_Alias"> <sql id="Base_Column_List_Alias">
id JxglAppraisal_id, id JxglAppraisal_id,
performance_appraisal_id JxglAppraisal_performance_appraisal_id,
emp_num JxglAppraisal_emp_num, emp_num JxglAppraisal_emp_num,
name JxglAppraisal_name, name JxglAppraisal_name,
appraisal_explain JxglAppraisal_appraisal_explain, appraisal_explain JxglAppraisal_appraisal_explain,
...@@ -32,12 +196,90 @@ ...@@ -32,12 +196,90 @@
update_time JxglAppraisal_update_time, update_time JxglAppraisal_update_time,
sts JxglAppraisal_sts sts JxglAppraisal_sts
</sql> </sql>
<select id="selectListByQuery" resultMap="BaseResultMap_All" >
SELECT
<include refid="Base_Column_List_a" />,
b.name user_name, b.phone,
(SELECT name FROM zzgl_bmgw_m WHERE id = (SELECT up_id FROM zzgl_bmgw_m WHERE id = b.bmgw_id limit 1) limit 1) as bm_name,
(SELECT name FROM yggl_main_emp WHERE emp_num = c.executor_id AND org_code = #{param.orgCode}) as executor_name,
(SELECT executor_name FROM jxgl_process_node WHERE process_type = 4 AND sts = 2 LIMIT 1) as confirmor,
d.comprehensive_score ,d.level
FROM jxgl_appraisal a
LEFT JOIN yggl_main_emp b ON a.emp_num = b.emp_num AND b.org_code = #{param.orgCode}
LEFT JOIN jxgl_process_node c ON a.id = c.appraisal_id AND c.sts = 1
LEFT JOIN jxgl_appraisal_assessment d ON a.id = d.appraisal_id AND d.type = 1
<!-- 缺部门 搜索 -->
WHERE a.performance_appraisal_id = #{param.id}
<if test="param.query != null and param.query != ''">
and (
b.name like CONCAT('%',#{param.query},'%') or
b.phone like CONCAT('%',#{param.query},'%')
)
</if>
<if test="param.sts != null">
and a.sts = #{param.sts}
</if>
ORDER BY a.id DESC
</select>
<select id="selectListEmpByQuery" resultMap="BaseResultMap_Emp" >
SELECT
a.emp_num,
b.name user_name, b.phone,b.rz_time,
(SELECT name FROM zzgl_bmgw_m WHERE id = (SELECT up_id FROM zzgl_bmgw_m WHERE id = b.bmgw_id limit 1) limit 1) as bm_name,
SUM((CASE WHEN c.sts = 3 THEN 1 ELSE 0 END)) AS archivedPNum,
SUM((CASE WHEN c.sts in (0,1,2) THEN 1 ELSE 0 END)) AS underwayPNum,
(SELECT name FROM jxgl_performance_appraisal WHERE id = a.performance_appraisal_id ORDER BY create_time DESC LIMIT 1 ) recentlyProject,
(SELECT comprehensive_score FROM jxgl_appraisal_assessment WHERE type = 1 AND appraisal_id in (SELECT id FROM jxgl_appraisal WHERE emp_num = a.emp_num) ORDER BY create_time DESC LIMIT 1 ) recentlyScore,
(SELECT level FROM jxgl_appraisal_assessment WHERE type = 1 AND appraisal_id in (SELECT id FROM jxgl_appraisal WHERE emp_num = a.emp_num) ORDER BY create_time DESC LIMIT 1 ) recentlyLevel
FROM jxgl_appraisal a
LEFT JOIN yggl_main_emp b ON a.emp_num = b.emp_num AND b.org_code = #{param.orgCode}
LEFT JOIN jxgl_performance_appraisal c ON a.performance_appraisal_id = c.id
<!-- 缺部门 搜索 -->
<where>
<if test="param.query != null and param.query != ''">
and (
b.name like CONCAT('%',#{param.query},'%') or
b.phone like CONCAT('%',#{param.query},'%')
)
</if>
</where>
GROUP BY a.emp_num
ORDER BY a.id DESC
</select>
<select id="selectDetailById" resultMap="BaseResultMap_Detail">
SELECT
<include refid="Base_Column_List_a" />,
<include refid="Base_Column_List_Alias_b" />,
<include refid="Base_Column_List_Alias_c" />,
<include refid="Base_Column_List_Alias_d" />,
<include refid="Base_Column_List_Alias_e" />,
<include refid="Base_Column_List_Alias_f" />,
<include refid="Base_Column_List_Alias_g" />
FROM
jxgl_appraisal a
LEFT JOIN jxgl_process_node b ON a.id = b.appraisal_id
LEFT JOIN jxgl_appraisal_assessment c ON a.id = c.appraisal_id
LEFT JOIN jxgl_appraisal_log d ON a.id = d.appraisal_id
LEFT JOIN jxgl_appraisal_indicators e ON a.id = e.appraisal_id
LEFT JOIN jxgl_appraisal_indicators_assessment f ON e.id = f.appraisal_indicators_id
LEFT JOIN jxgl_appraisal_item g ON e.id = g.appraisal_indicators_id
WHERE a.id = #{id}
</select>
<!-- <!--
<insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.jxgl.JxglAppraisal"> <insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.jxgl.JxglAppraisal">
INSERT INTO jxgl_appraisal INSERT INTO jxgl_appraisal
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test ='null != performanceAppraisalId'>
performance_appraisal_id,
</if>
<if test ='null != empNum'> <if test ='null != empNum'>
emp_num, emp_num,
</if> </if>
...@@ -58,6 +300,9 @@ ...@@ -58,6 +300,9 @@
</if> </if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test ='null != performanceAppraisalId'>
#{performanceAppraisalId},
</if>
<if test ='null != empNum'> <if test ='null != empNum'>
#{empNum}, #{empNum},
</if> </if>
...@@ -87,6 +332,7 @@ ...@@ -87,6 +332,7 @@
<update id="update" parameterType="cn.timer.api.bean.jxgl.JxglAppraisal"> <update id="update" parameterType="cn.timer.api.bean.jxgl.JxglAppraisal">
UPDATE jxgl_appraisal UPDATE jxgl_appraisal
<set> <set>
<if test ='null != performanceAppraisalId'>performance_appraisal_id = #{performanceAppraisalId},</if>
<if test ='null != empNum'>emp_num = #{empNum},</if> <if test ='null != empNum'>emp_num = #{empNum},</if>
<if test ='null != name'>name = #{name},</if> <if test ='null != name'>name = #{name},</if>
<if test ='null != appraisalExplain'>appraisal_explain = #{appraisalExplain},</if> <if test ='null != appraisalExplain'>appraisal_explain = #{appraisalExplain},</if>
......
...@@ -11,6 +11,33 @@ ...@@ -11,6 +11,33 @@
<result column="create_time" property="createTime" /> <result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" /> <result column="update_time" property="updateTime" />
</resultMap> </resultMap>
<resultMap id="BaseResultMap_b" type="cn.timer.api.bean.jxgl.JxglAppraisalIndicatorsT" >
<id column="id" property="id" />
<result column="appraisal_t_id" property="appraisalTId" />
<result column="title" property="title" />
<result column="weight" property="weight" />
<result column="is_edit" property="isEdit" />
<result column="is_set_weight" property="isSetWeight" />
<result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" />
<result column="type" property="type" />
<collection column="JxglAppraisalItemT_id" property="appraisalItemTs" ofType="cn.timer.api.bean.jxgl.JxglAppraisalItemT"
resultMap="cn.timer.api.dao.jxgl.JxglAppraisalItemTMapper.BaseResultMap" columnPrefix="JxglAppraisalItemT_">
</collection>
</resultMap>
<resultMap id="BaseResultMap_All" type="cn.timer.api.bean.jxgl.JxglAppraisalT" >
<id column="id" property="id" />
<result column="org_code" property="orgCode" />
<result column="name" property="name" />
<result column="appraisal_explain" property="appraisalExplain" />
<result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" />
<collection column="JxglAppraisalIndicatorsT_id" property="appraisalIndicatorsTs" ofType="cn.timer.api.bean.jxgl.JxglAppraisalIndicatorsT"
resultMap="cn.timer.api.dao.jxgl.JxglAppraisalTMapper.BaseResultMap_b" columnPrefix="JxglAppraisalIndicatorsT_">
</collection>
</resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, id,
...@@ -29,6 +56,48 @@ ...@@ -29,6 +56,48 @@
create_time JxglAppraisalT_create_time, create_time JxglAppraisalT_create_time,
update_time JxglAppraisalT_update_time update_time JxglAppraisalT_update_time
</sql> </sql>
<sql id="Base_Column_List_a">
a.id,
a.org_code,
a.name,
a.appraisal_explain,
a.create_time,
a.update_time
</sql>
<sql id="Base_Column_List_Alias_b">
b.id JxglAppraisalIndicatorsT_id,
b.appraisal_t_id JxglAppraisalIndicatorsT_appraisal_t_id,
b.title JxglAppraisalIndicatorsT_title,
b.weight JxglAppraisalIndicatorsT_weight,
b.is_edit JxglAppraisalIndicatorsT_is_edit,
b.is_set_weight JxglAppraisalIndicatorsT_is_set_weight,
b.create_time JxglAppraisalIndicatorsT_create_time,
b.update_time JxglAppraisalIndicatorsT_update_time,
b.type JxglAppraisalIndicatorsT_type
</sql>
<sql id="Base_Column_List_Alias_c">
c.id JxglAppraisalIndicatorsT_JxglAppraisalItemT_id,
c.appraisal_indicators_t_id JxglAppraisalIndicatorsT_JxglAppraisalItemT_appraisal_indicators_t_id,
c.title JxglAppraisalIndicatorsT_JxglAppraisalItemT_title,
c.content JxglAppraisalIndicatorsT_JxglAppraisalItemT_content,
c.ranks JxglAppraisalIndicatorsT_JxglAppraisalItemT_ranks
</sql>
<select id="selectDetailById" resultMap="BaseResultMap_All">
SELECT
<include refid="Base_Column_List_a" />,
<include refid="Base_Column_List_Alias_b" />,
<include refid="Base_Column_List_Alias_c" />
FROM jxgl_appraisal_t a
LEFT JOIN jxgl_appraisal_indicators_t b ON a.id = b.appraisal_t_id
LEFT JOIN jxgl_appraisal_item_t c ON b.id = c.appraisal_indicators_t_id
WHERE a.id = #{id}
</select>
<!-- <!--
......
...@@ -10,6 +10,17 @@ ...@@ -10,6 +10,17 @@
<result column="create_time" property="createTime" /> <result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" /> <result column="update_time" property="updateTime" />
</resultMap> </resultMap>
<resultMap id="BaseResultMap_All" type="cn.timer.api.bean.jxgl.JxglBasicSetting" >
<id column="id" property="id" />
<result column="org_code" property="orgCode" />
<result column="max_score" property="maxScore" />
<result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" />
<collection column="JxglPerformanceRating_id" property="performanceRatings" ofType="cn.timer.api.bean.jxgl.JxglPerformanceRating"
resultMap="cn.timer.api.dao.jxgl.JxglPerformanceRatingMapper.BaseResultMap" columnPrefix="JxglPerformanceRating_">
</collection>
</resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, id,
...@@ -26,7 +37,33 @@ ...@@ -26,7 +37,33 @@
create_time JxglBasicSetting_create_time, create_time JxglBasicSetting_create_time,
update_time JxglBasicSetting_update_time update_time JxglBasicSetting_update_time
</sql> </sql>
<sql id="Base_Column_List_a">
a.id,
a.org_code,
a.max_score,
a.create_time,
a.update_time
</sql>
<sql id="Base_Column_List_Alias_b">
b.id JxglPerformanceRating_id,
b.basic_setting_id JxglPerformanceRating_basic_setting_id,
b.name JxglPerformanceRating_name,
b.section_min_score JxglPerformanceRating_section_min_score,
b.section_max_score JxglPerformanceRating_section_max_score,
b.ranks JxglPerformanceRating_ranks
</sql>
<select id="selectAll" resultMap="BaseResultMap_All">
SELECT
<include refid="Base_Column_List_a" />,
<include refid="Base_Column_List_Alias_b" />
FROM jxgl_basic_setting a
LEFT JOIN jxgl_performance_rating b ON a.id = b.basic_setting_id
WHERE a.org_code = #{orgCode}
</select>
<!-- <!--
<insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.jxgl.JxglBasicSetting"> <insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.jxgl.JxglBasicSetting">
......
...@@ -16,6 +16,37 @@ ...@@ -16,6 +16,37 @@
<result column="appraisal_t_name" property="appraisalTName" /> <result column="appraisal_t_name" property="appraisalTName" />
<result column="appraisal_person_num" property="appraisalPersonNum" /> <result column="appraisal_person_num" property="appraisalPersonNum" />
<result column="process_node" property="processNode" /> <result column="process_node" property="processNode" />
<result column="being_appraisal_person" property="beingAppraisalPerson" />
<result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" />
</resultMap>
<resultMap id="BaseResultMap_ALl" type="cn.timer.api.bean.jxgl.JxglPerformanceAppraisal" >
<id column="id" property="id" />
<result column="org_code" property="orgCode" />
<result column="name" property="name" />
<result column="period" property="period" />
<result column="appraisal_start_time" property="appraisalStartTime" />
<result column="appraisal_end_time" property="appraisalEndTime" />
<result column="is_visible" property="isVisible" />
<result column="sts" property="sts" />
<result column="scope" property="scope" />
<result column="appraisal_t_name" property="appraisalTName" />
<result column="appraisal_person_num" property="appraisalPersonNum" />
<result column="process_node" property="processNode" />
<result column="being_appraisal_person" property="beingAppraisalPerson" />
<result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" />
<result column="target_seting" property="targetSeting" />
<result column="performance_score" property="performanceScore" />
<result column="result_verification" property="resultVerification" />
<result column="performance_archive" property="performanceArchive" />
<association property="appraisal" column="b_id" javaType="cn.timer.api.bean.jxgl.JxglAppraisal" columnPrefix="b_"
resultMap="cn.timer.api.dao.jxgl.JxglAppraisalMapper.BaseResultMap" />
<association property="appraisalAssessment" column="c_id" javaType="cn.timer.api.bean.jxgl.JxglAppraisalAssessment" columnPrefix="c_"
resultMap="cn.timer.api.dao.jxgl.JxglAppraisalAssessmentMapper.BaseResultMap" />
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
...@@ -30,7 +61,51 @@ ...@@ -30,7 +61,51 @@
scope, scope,
appraisal_t_name, appraisal_t_name,
appraisal_person_num, appraisal_person_num,
process_node process_node,
being_appraisal_person,
create_time,
update_time
</sql>
<sql id="Base_Column_List_a">
a.id,
a.org_code,
a.name,
a.period,
a.appraisal_start_time,
a.appraisal_end_time,
a.is_visible,
a.sts,
a.scope,
a.appraisal_t_name,
a.appraisal_person_num,
<!-- a.process_node,
a.being_appraisal_person, -->
a.create_time,
a.update_time
</sql>
<sql id="Base_Column_List_b">
b.id b_id,
b.performance_appraisal_id b_performance_appraisal_id,
b.emp_num b_emp_num,
b.name b_name,
b.appraisal_explain b_appraisal_explain,
b.create_time b_create_time,
b.update_time b_update_time,
b.sts b_sts
</sql>
<sql id="Base_Column_List_c">
c.id c_id,
c.appraisal_id c_appraisal_id,
c.assessor_id c_assessor_id,
c.assessor_name c_assessor_name,
c.comprehensive_score c_comprehensive_score,
c.remarks c_remarks,
c.type c_type,
c.create_time c_create_time,
c.level c_level
</sql> </sql>
<sql id="Base_Column_List_Alias"> <sql id="Base_Column_List_Alias">
...@@ -45,9 +120,79 @@ ...@@ -45,9 +120,79 @@
scope JxglPerformanceAppraisal_scope, scope JxglPerformanceAppraisal_scope,
appraisal_t_name JxglPerformanceAppraisal_appraisal_t_name, appraisal_t_name JxglPerformanceAppraisal_appraisal_t_name,
appraisal_person_num JxglPerformanceAppraisal_appraisal_person_num, appraisal_person_num JxglPerformanceAppraisal_appraisal_person_num,
process_node JxglPerformanceAppraisal_process_node process_node JxglPerformanceAppraisal_process_node,
being_appraisal_person JxglPerformanceAppraisal_being_appraisal_person,
create_time JxglPerformanceAppraisal_create_time,
update_time JxglPerformanceAppraisal_update_time
</sql> </sql>
<select id="selectListByQuery" resultMap="BaseResultMap_ALl" >
SELECT
<include refid="Base_Column_List_a" />,
SUM((CASE WHEN b.sts in (0,1) THEN 1 ELSE 0 END)) AS target_seting,
SUM((CASE WHEN b.sts in (2,3) THEN 1 ELSE 0 END)) AS performance_score,
SUM((CASE WHEN b.sts in (4,5) THEN 1 ELSE 0 END)) AS result_verification,
SUM((CASE WHEN b.sts = 7 THEN 1 ELSE 0 END)) AS performance_archive
FROM jxgl_performance_appraisal a
LEFT JOIN jxgl_appraisal b ON a.id = b.performance_appraisal_id
WHERE a.org_code = #{param.orgCode} AND a.sts != 3
<if test="param.query != null and param.query != ''">
and (
a.name like CONCAT('%',#{param.query},'%')
)
</if>
<if test="param.sts != null">
and a.sts = #{param.sts}
</if>
<if test="param.startTime != null and param.startTime != ''">
and a.create_time <![CDATA[ >= ]]> #{param.startTime}
</if>
<if test="param.endTime != null and param.endTime != ''">
and a.create_time <![CDATA[ <= ]]> #{param.endTime}
</if>
GROUP BY a.id
ORDER BY a.id DESC
</select>
<select id="selectArchiveListByQuery" resultMap="BaseResultMap_ALl" >
SELECT
<include refid="Base_Column_List_a" />,
SUM((CASE WHEN b.sts in (0,1) THEN 1 ELSE 0 END)) AS target_seting,
SUM((CASE WHEN b.sts in (2,3) THEN 1 ELSE 0 END)) AS performance_score,
SUM((CASE WHEN b.sts in (4,5) THEN 1 ELSE 0 END)) AS result_verification,
SUM((CASE WHEN b.sts = 7 THEN 1 ELSE 0 END)) AS performance_archive
FROM jxgl_performance_appraisal a
LEFT JOIN jxgl_appraisal b ON a.id = b.performance_appraisal_id
WHERE a.org_code = #{param.orgCode} AND a.sts = 3
<if test="param.query != null and param.query != ''">
and (
a.name like CONCAT('%',#{param.query},'%')
)
</if>
<if test="param.startTime != null and param.startTime != ''">
and a.create_time <![CDATA[ >= ]]> #{param.startTime}
</if>
<if test="param.endTime != null and param.endTime != ''">
and a.create_time <![CDATA[ <= ]]> #{param.endTime}
</if>
GROUP BY a.id
ORDER BY a.id DESC
</select>
<select id="selectListEmpByQuery" resultMap="BaseResultMap_ALl" >
SELECT
a.name,a.appraisal_start_time,a.appraisal_end_time,
b.sts b_sts,
c.comprehensive_score c_comprehensive_score,
c.level c_level
FROM jxgl_performance_appraisal a
LEFT JOIN jxgl_appraisal b ON b.performance_appraisal_id = a.id
LEFT JOIN jxgl_appraisal_assessment c ON b.id = c.appraisal_id
WHERE a.org_code = #{param.orgCode} AND b.emp_num = #{param.id} AND c.type = 1
</select>
<!-- <!--
<insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.jxgl.JxglPerformanceAppraisal"> <insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.jxgl.JxglPerformanceAppraisal">
...@@ -84,7 +229,16 @@ ...@@ -84,7 +229,16 @@
appraisal_person_num, appraisal_person_num,
</if> </if>
<if test ='null != processNode'> <if test ='null != processNode'>
process_node process_node,
</if>
<if test ='null != beingAppraisalPerson'>
being_appraisal_person,
</if>
<if test ='null != createTime'>
create_time,
</if>
<if test ='null != updateTime'>
update_time
</if> </if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
...@@ -119,7 +273,16 @@ ...@@ -119,7 +273,16 @@
#{appraisalPersonNum}, #{appraisalPersonNum},
</if> </if>
<if test ='null != processNode'> <if test ='null != processNode'>
#{processNode} #{processNode},
</if>
<if test ='null != beingAppraisalPerson'>
#{beingAppraisalPerson},
</if>
<if test ='null != createTime'>
#{createTime},
</if>
<if test ='null != updateTime'>
#{updateTime}
</if> </if>
</trim> </trim>
</insert> </insert>
...@@ -142,7 +305,10 @@ ...@@ -142,7 +305,10 @@
<if test ='null != scope'>scope = #{scope},</if> <if test ='null != scope'>scope = #{scope},</if>
<if test ='null != appraisalTName'>appraisal_t_name = #{appraisalTName},</if> <if test ='null != appraisalTName'>appraisal_t_name = #{appraisalTName},</if>
<if test ='null != appraisalPersonNum'>appraisal_person_num = #{appraisalPersonNum},</if> <if test ='null != appraisalPersonNum'>appraisal_person_num = #{appraisalPersonNum},</if>
<if test ='null != processNode'>process_node = #{processNode}</if> <if test ='null != processNode'>process_node = #{processNode},</if>
<if test ='null != beingAppraisalPerson'>being_appraisal_person = #{beingAppraisalPerson},</if>
<if test ='null != createTime'>create_time = #{createTime},</if>
<if test ='null != updateTime'>update_time = #{updateTime}</if>
</set> </set>
WHERE id = #{id} WHERE id = #{id}
</update> </update>
......
...@@ -29,6 +29,17 @@ ...@@ -29,6 +29,17 @@
section_max_score JxglPerformanceRating_section_max_score, section_max_score JxglPerformanceRating_section_max_score,
ranks JxglPerformanceRating_ranks ranks JxglPerformanceRating_ranks
</sql> </sql>
<insert id="insertList" useGeneratedKeys="true" keyColumn="id" parameterType="list">
INSERT INTO jxgl_performance_rating
(basic_setting_id,name,section_min_score,section_max_score,ranks)
values
<foreach item="item" index="index" collection="list" open="" separator="," close="">
(
#{item.basicSettingId},#{item.name},#{item.sectionMinScore},#{item.sectionMaxScore},#{item.ranks}
)
</foreach>
</insert>
<!-- <!--
......
...@@ -313,7 +313,7 @@ ...@@ -313,7 +313,7 @@
bmgw.post, bmgw.post,
dkmx.* dkmx.*
from kqgl_asso_dkmx dkmx from kqgl_asso_dkmx dkmx
LEFT JOIN yggl_main_emp as info on info.emp_num = dkmx.userid LEFT JOIN yggl_main_emp as info on info.emp_num = dkmx.userid and info.org_code = #{qyid,jdbcType=INTEGER}
LEFT JOIN (select m.name as post,um.name as dept,m.id as mid LEFT JOIN (select m.name as post,um.name as dept,m.id as mid
from zzgl_bmgw_m m from zzgl_bmgw_m m
left join zzgl_bmgw_m um on um.id = m.up_id left join zzgl_bmgw_m um on um.id = m.up_id
...@@ -339,7 +339,7 @@ ...@@ -339,7 +339,7 @@
bmgw.post, bmgw.post,
dkmx.* dkmx.*
from kqgl_asso_dkmx dkmx from kqgl_asso_dkmx dkmx
LEFT JOIN yggl_main_emp as info on info.emp_num = dkmx.userid LEFT JOIN yggl_main_emp as info on info.emp_num = dkmx.userid and info.org_code = #{qyid,jdbcType=INTEGER}
LEFT JOIN (select m.name as post,um.name as dept,m.id as mid LEFT JOIN (select m.name as post,um.name as dept,m.id as mid
from zzgl_bmgw_m m from zzgl_bmgw_m m
left join zzgl_bmgw_m um on um.id = m.up_id left join zzgl_bmgw_m um on um.id = m.up_id
......
...@@ -32,6 +32,32 @@ ...@@ -32,6 +32,32 @@
id, dktime, lon, lat, address, results, user_id, type, status, sort, card_type, macname, id, dktime, lon, lat, address, results, user_id, type, status, sort, card_type, macname,
mac, qyid, attdate, attime, dkmxid,bcid,remarks,punchmode,punchequipment mac, qyid, attdate, attime, dkmxid,bcid,remarks,punchmode,punchequipment
</sql> </sql>
<select id="QueryOriginalRecord" resultMap="BaseResultMap">
select dkjl.*,
bmgw.dept,
bmgw.post,
info.`name` username
from kqgl_asso_dkjl dkjl
LEFT JOIN yggl_main_emp as info on info.emp_num = dkjl.user_id and info.org_code = #{param.qyid}
LEFT JOIN (select m.name as post,um.name as dept,m.id as mid
from zzgl_bmgw_m m
left join zzgl_bmgw_m um on um.id = m.up_id
) as bmgw on bmgw.mid = info.bmgw_id
where dkjl.qyid = #{param.qyid}
<if test="param.start != ''" >
and dkjl.attime &gt;= #{param.start}
</if>
<if test="param.end != ''" >
and dkjl.attime &lt;= #{param.end}
</if>
<if test="param.text != null and param.text != ''" >
and (info.`name` like CONCAT('%',#{param.text},'%') or info.emp_num = #{param.text})
</if>
ORDER BY dkjl.id ASC
</select>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" > <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select select
<include refid="Base_Column_List" /> <include refid="Base_Column_List" />
...@@ -282,7 +308,7 @@ ...@@ -282,7 +308,7 @@
bmgw.post, bmgw.post,
info.`name` username info.`name` username
from kqgl_asso_dkjl dkjl from kqgl_asso_dkjl dkjl
LEFT JOIN yggl_main_emp as info on info.emp_num = dkjl.user_id LEFT JOIN yggl_main_emp as info on info.emp_num = dkjl.user_id and info.org_code = #{qyid,jdbcType=INTEGER}
LEFT JOIN (select m.name as post,um.name as dept,m.id as mid LEFT JOIN (select m.name as post,um.name as dept,m.id as mid
from zzgl_bmgw_m m from zzgl_bmgw_m m
left join zzgl_bmgw_m um on um.id = m.up_id left join zzgl_bmgw_m um on um.id = m.up_id
...@@ -297,7 +323,7 @@ ...@@ -297,7 +323,7 @@
bmgw.post, bmgw.post,
info.`name` username info.`name` username
from kqgl_asso_dkjl dkjl from kqgl_asso_dkjl dkjl
LEFT JOIN yggl_main_emp as info on info.emp_num = dkjl.user_id LEFT JOIN yggl_main_emp as info on info.emp_num = dkjl.user_id and info.org_code = #{qyid,jdbcType=INTEGER}
LEFT JOIN (select m.name as post,um.name as dept,m.id as mid LEFT JOIN (select m.name as post,um.name as dept,m.id as mid
from zzgl_bmgw_m m from zzgl_bmgw_m m
left join zzgl_bmgw_m um on um.id = m.up_id left join zzgl_bmgw_m um on um.id = m.up_id
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
<result column="qyid" property="qyid" jdbcType="INTEGER" /> <result column="qyid" property="qyid" jdbcType="INTEGER" />
<result column="empnum" property="empnum" jdbcType="VARCHAR" /> <result column="empnum" property="empnum" jdbcType="VARCHAR" />
<result column="empname" property="empname" jdbcType="VARCHAR" />
</resultMap> </resultMap>
<sql id="Base_Column_List" > <sql id="Base_Column_List" >
id, kqzid, userid, qyid id, kqzid, userid, qyid
...@@ -107,7 +108,8 @@ ...@@ -107,7 +108,8 @@
<select id="selectAttendanceOfficerByKqzid" resultMap="BaseResultMap"> <select id="selectAttendanceOfficerByKqzid" resultMap="BaseResultMap">
select yhkqz.*, select yhkqz.*,
us.emp_num as empnum us.emp_num as empnum,
us.name as empname
from kqgl_asso_yhkqz yhkqz from kqgl_asso_yhkqz yhkqz
LEFT JOIN yggl_main_emp as us on us.emp_num = yhkqz.userid and us.org_code = #{orgcode} LEFT JOIN yggl_main_emp as us on us.emp_num = yhkqz.userid and us.org_code = #{orgcode}
where yhkqz.kqzid = #{kqzid,jdbcType=INTEGER} where yhkqz.kqzid = #{kqzid,jdbcType=INTEGER}
......
...@@ -95,6 +95,34 @@ ...@@ -95,6 +95,34 @@
and SUBSTR(dk.`data`,1,7) = #{data} and SUBSTR(dk.`data`,1,7) = #{data}
GROUP BY dk.userid GROUP BY dk.userid
</select> </select>
<update id="updateByPrimaryKeySelective" parameterType="cn.timer.api.bean.kqmk.KqglAssoDkmx">
UPDATE kqgl_asso_dkmx
<set>
<if test ='null != userid'>userid = #{userid},</if>
<if test ='null != data'>data = #{data},</if>
<if test ='null != sbdk1'>sbdk1 = #{sbdk1},</if>
<if test ='null != sbdk1jg'>sbdk1jg = #{sbdk1jg},</if>
<if test ='null != xbdk1'>xbdk1 = #{xbdk1},</if>
<if test ='null != xbdk1jg'>xbdk1jg = #{xbdk1jg},</if>
<if test ='null != sbdk2'>sbdk2 = #{sbdk2},</if>
<if test ='null != sbdk2jg'>sbdk2jg = #{sbdk2jg},</if>
<if test ='null != xbdk2'>xbdk2 = #{xbdk2},</if>
<if test ='null != xbdk2jg'>xbdk2jg = #{xbdk2jg},</if>
<if test ='null != sbdk3'>sbdk3 = #{sbdk3},</if>
<if test ='null != sbdk3jg'>sbdk3jg = #{sbdk3jg},</if>
<if test ='null != xbdk3'>xbdk3 = #{xbdk3},</if>
<if test ='null != xbdk3jg'>xbdk3jg = #{xbdk3jg},</if>
<if test ='null != ydkcs'>ydkcs = #{ydkcs},</if>
<if test ='null != gzsc'>gzsc = #{gzsc},</if>
<if test ='null != qyid'>qyid = #{qyid},</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>
WHERE id = #{id}
</update>
<!-- <!--
...@@ -237,34 +265,6 @@ ...@@ -237,34 +265,6 @@
WHERE id = #{id} WHERE id = #{id}
</delete> </delete>
<update id="update" parameterType="cn.timer.api.bean.kqmk.KqglAssoDkmx">
UPDATE kqgl_asso_dkmx
<set>
<if test ='null != userid'>userid = #{userid},</if>
<if test ='null != data'>data = #{data},</if>
<if test ='null != sbdk1'>sbdk1 = #{sbdk1},</if>
<if test ='null != sbdk1jg'>sbdk1jg = #{sbdk1jg},</if>
<if test ='null != xbdk1'>xbdk1 = #{xbdk1},</if>
<if test ='null != xbdk1jg'>xbdk1jg = #{xbdk1jg},</if>
<if test ='null != sbdk2'>sbdk2 = #{sbdk2},</if>
<if test ='null != sbdk2jg'>sbdk2jg = #{sbdk2jg},</if>
<if test ='null != xbdk2'>xbdk2 = #{xbdk2},</if>
<if test ='null != xbdk2jg'>xbdk2jg = #{xbdk2jg},</if>
<if test ='null != sbdk3'>sbdk3 = #{sbdk3},</if>
<if test ='null != sbdk3jg'>sbdk3jg = #{sbdk3jg},</if>
<if test ='null != xbdk3'>xbdk3 = #{xbdk3},</if>
<if test ='null != xbdk3jg'>xbdk3jg = #{xbdk3jg},</if>
<if test ='null != ydkcs'>ydkcs = #{ydkcs},</if>
<if test ='null != gzsc'>gzsc = #{gzsc},</if>
<if test ='null != qyid'>qyid = #{qyid},</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>
WHERE id = #{id}
</update>
<select id="load" resultMap="BaseResultMap"> <select id="load" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List" /> SELECT <include refid="Base_Column_List" />
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
<result column="org_code" property="orgCode" /> <result column="org_code" property="orgCode" />
<result column="is_open" property="isOpen" /> <result column="is_open" property="isOpen" />
<result column="leave_balance" property="leaveBalance" /> <result column="leave_balance" property="leaveBalance" />
<result column="rules_type" property="rulesType" />
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
...@@ -26,7 +27,8 @@ ...@@ -26,7 +27,8 @@
create_userid, create_userid,
org_code, org_code,
is_open, is_open,
leave_balance leave_balance,
rules_type
</sql> </sql>
<sql id="Base_Column_List_Alias"> <sql id="Base_Column_List_Alias">
...@@ -41,9 +43,16 @@ ...@@ -41,9 +43,16 @@
is_open KqglAssoLeaveRules_is_open, is_open KqglAssoLeaveRules_is_open,
leave_balance KqglAssoLeaveRules_leave_balance leave_balance KqglAssoLeaveRules_leave_balance
</sql> </sql>
<select id="selHeaderdata" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List" />
FROM kqgl_asso_leave_rules
WHERE org_code = #{orgcode}
AND (leave_type = #{leavetype} OR is_open = #{isopen})
</select>
<insert id="insertleaverulesList" parameterType="java.util.List" > <insert id="insertleaverulesList" parameterType="java.util.List" >
insert into kqgl_asso_leave_rules (name,company,leave_type,apply,create_time,create_userid,org_code,is_open,leave_balance) insert into kqgl_asso_leave_rules (name,company,leave_type,apply,create_time,create_userid,org_code,is_open,leave_balance,rules_type)
<foreach collection="list" item="item" index="index" open="values " close="" separator=","> <foreach collection="list" item="item" index="index" open="values " close="" separator=",">
( (
<if test="item.name != null" > <if test="item.name != null" >
...@@ -71,7 +80,10 @@ ...@@ -71,7 +80,10 @@
#{item.isOpen,jdbcType=INTEGER}, #{item.isOpen,jdbcType=INTEGER},
</if> </if>
<if test="item.leaveBalance != null" > <if test="item.leaveBalance != null" >
#{item.leaveBalance,jdbcType=INTEGER} #{item.leaveBalance,jdbcType=INTEGER},
</if>
<if test="item.rulesType != null" >
#{item.rulesType,jdbcType=INTEGER}
</if> </if>
) )
</foreach> </foreach>
......
...@@ -8,6 +8,10 @@ ...@@ -8,6 +8,10 @@
<result column="leave_rules_id" property="leaveRulesId" /> <result column="leave_rules_id" property="leaveRulesId" />
<result column="attgroup_id" property="attgroupId" /> <result column="attgroup_id" property="attgroupId" />
</resultMap> </resultMap>
<resultMap id="RulesViceDtoMap" type="cn.timer.api.dto.kqmk.KqglAssoRulesViceDto" >
<result column="leave_rules_id" property="leaveRulesId" />
</resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, id,
...@@ -34,6 +38,13 @@ ...@@ -34,6 +38,13 @@
) )
</foreach> </foreach>
</insert> </insert>
<select id="leaveRulesIdload" resultMap="RulesViceDtoMap">
SELECT <include refid="Base_Column_List" />
FROM kqgl_asso_rules_vice
WHERE leaveRulesId = #{leaverulesid}
</select>
<!-- <!--
<insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.kqmk.KqglAssoRulesVice"> <insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.kqmk.KqglAssoRulesVice">
......
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