Commit 4cad9a2a authored by wenqy's avatar wenqy

考勤模块提交

parent 56b22778
...@@ -3,6 +3,8 @@ package com.mortals.xhx.module.attendance.model; ...@@ -3,6 +3,8 @@ package com.mortals.xhx.module.attendance.model;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.ArrayList; import java.util.ArrayList;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel; import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
...@@ -28,6 +30,8 @@ public class AttendanceClassDetailEntity extends AttendanceClassDetailVo { ...@@ -28,6 +30,8 @@ public class AttendanceClassDetailEntity extends AttendanceClassDetailVo {
/** /**
* 上班打卡时间 * 上班打卡时间
*/ */
@JsonFormat(pattern = "HH:mm")
@JSONField(format = "HH:mm")
private Date goWorkDate; private Date goWorkDate;
/** /**
* 上班打卡前时间段,单位分钟 * 上班打卡前时间段,单位分钟
...@@ -40,6 +44,8 @@ public class AttendanceClassDetailEntity extends AttendanceClassDetailVo { ...@@ -40,6 +44,8 @@ public class AttendanceClassDetailEntity extends AttendanceClassDetailVo {
/** /**
* 下班打卡时间 * 下班打卡时间
*/ */
@JsonFormat(pattern = "HH:mm")
@JSONField(format = "HH:mm")
private Date offWorkDate; private Date offWorkDate;
/** /**
* 下班打卡前时间段,单位分钟 * 下班打卡前时间段,单位分钟
......
...@@ -8,11 +8,11 @@ import com.mortals.framework.annotation.Excel; ...@@ -8,11 +8,11 @@ import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.attendance.model.vo.AttendanceRecordDetailVo; import com.mortals.xhx.module.attendance.model.vo.AttendanceRecordDetailVo;
/** /**
* 考勤打卡记录详细信息实体对象 * 考勤打卡记录详细信息实体对象
* *
* @author zxfei * @author zxfei
* @date 2023-04-07 * @date 2023-04-09
*/ */
public class AttendanceRecordDetailEntity extends AttendanceRecordDetailVo { public class AttendanceRecordDetailEntity extends AttendanceRecordDetailVo {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -49,6 +49,10 @@ public class AttendanceRecordDetailEntity extends AttendanceRecordDetailVo { ...@@ -49,6 +49,10 @@ public class AttendanceRecordDetailEntity extends AttendanceRecordDetailVo {
* 备注 * 备注
*/ */
private String remark; private String remark;
/**
* 排序字段
*/
private Integer orderNum;
...@@ -165,6 +169,20 @@ public class AttendanceRecordDetailEntity extends AttendanceRecordDetailVo { ...@@ -165,6 +169,20 @@ public class AttendanceRecordDetailEntity extends AttendanceRecordDetailVo {
public void setRemark(String remark){ public void setRemark(String remark){
this.remark = remark; this.remark = remark;
} }
/**
* 获取 排序字段
* @return Integer
*/
public Integer getOrderNum(){
return orderNum;
}
/**
* 设置 排序字段
* @param orderNum
*/
public void setOrderNum(Integer orderNum){
this.orderNum = orderNum;
}
...@@ -195,6 +213,7 @@ public class AttendanceRecordDetailEntity extends AttendanceRecordDetailVo { ...@@ -195,6 +213,7 @@ public class AttendanceRecordDetailEntity extends AttendanceRecordDetailVo {
sb.append(",offWorkDate:").append(getOffWorkDate()); sb.append(",offWorkDate:").append(getOffWorkDate());
sb.append(",offWorkResult:").append(getOffWorkResult()); sb.append(",offWorkResult:").append(getOffWorkResult());
sb.append(",remark:").append(getRemark()); sb.append(",remark:").append(getRemark());
sb.append(",orderNum:").append(getOrderNum());
return sb.toString(); return sb.toString();
} }
...@@ -215,5 +234,7 @@ public class AttendanceRecordDetailEntity extends AttendanceRecordDetailVo { ...@@ -215,5 +234,7 @@ public class AttendanceRecordDetailEntity extends AttendanceRecordDetailVo {
this.offWorkResult = null; this.offWorkResult = null;
this.remark = ""; this.remark = "";
this.orderNum = 1;
} }
} }
...@@ -4,11 +4,11 @@ import java.util.Date; ...@@ -4,11 +4,11 @@ import java.util.Date;
import java.util.List; import java.util.List;
import com.mortals.xhx.module.attendance.model.AttendanceRecordDetailEntity; import com.mortals.xhx.module.attendance.model.AttendanceRecordDetailEntity;
/** /**
* 考勤打卡记录详细信息查询对象 * 考勤打卡记录详细信息查询对象
* *
* @author zxfei * @author zxfei
* @date 2023-04-07 * @date 2023-04-09
*/ */
public class AttendanceRecordDetailQuery extends AttendanceRecordDetailEntity { public class AttendanceRecordDetailQuery extends AttendanceRecordDetailEntity {
/** 开始 序号,主键,自增长 */ /** 开始 序号,主键,自增长 */
private Long idStart; private Long idStart;
...@@ -149,6 +149,21 @@ public class AttendanceRecordDetailQuery extends AttendanceRecordDetailEntity { ...@@ -149,6 +149,21 @@ public class AttendanceRecordDetailQuery extends AttendanceRecordDetailEntity {
/** 结束 更新时间 */ /** 结束 更新时间 */
private String updateTimeEnd; private String updateTimeEnd;
/** 开始 排序字段 */
private Integer orderNumStart;
/** 结束 排序字段 */
private Integer orderNumEnd;
/** 增加 排序字段 */
private Integer orderNumIncrement;
/** 排序字段列表 */
private List <Integer> orderNumList;
/** 排序字段排除列表 */
private List <Integer> orderNumNotList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */ /** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<AttendanceRecordDetailQuery> orConditionList; private List<AttendanceRecordDetailQuery> orConditionList;
...@@ -916,6 +931,87 @@ public class AttendanceRecordDetailQuery extends AttendanceRecordDetailEntity { ...@@ -916,6 +931,87 @@ public class AttendanceRecordDetailQuery extends AttendanceRecordDetailEntity {
this.updateTimeEnd = updateTimeEnd; this.updateTimeEnd = updateTimeEnd;
} }
/**
* 获取 开始 排序字段
* @return orderNumStart
*/
public Integer getOrderNumStart(){
return this.orderNumStart;
}
/**
* 设置 开始 排序字段
* @param orderNumStart
*/
public void setOrderNumStart(Integer orderNumStart){
this.orderNumStart = orderNumStart;
}
/**
* 获取 结束 排序字段
* @return $orderNumEnd
*/
public Integer getOrderNumEnd(){
return this.orderNumEnd;
}
/**
* 设置 结束 排序字段
* @param orderNumEnd
*/
public void setOrderNumEnd(Integer orderNumEnd){
this.orderNumEnd = orderNumEnd;
}
/**
* 获取 增加 排序字段
* @return orderNumIncrement
*/
public Integer getOrderNumIncrement(){
return this.orderNumIncrement;
}
/**
* 设置 增加 排序字段
* @param orderNumIncrement
*/
public void setOrderNumIncrement(Integer orderNumIncrement){
this.orderNumIncrement = orderNumIncrement;
}
/**
* 获取 排序字段
* @return orderNumList
*/
public List<Integer> getOrderNumList(){
return this.orderNumList;
}
/**
* 设置 排序字段
* @param orderNumList
*/
public void setOrderNumList(List<Integer> orderNumList){
this.orderNumList = orderNumList;
}
/**
* 获取 排序字段
* @return orderNumNotList
*/
public List<Integer> getOrderNumNotList(){
return this.orderNumNotList;
}
/**
* 设置 排序字段
* @param orderNumNotList
*/
public void setOrderNumNotList(List<Integer> orderNumNotList){
this.orderNumNotList = orderNumNotList;
}
/** /**
* 设置 序号,主键,自增长 * 设置 序号,主键,自增长
* @param id * @param id
...@@ -1336,6 +1432,60 @@ public class AttendanceRecordDetailQuery extends AttendanceRecordDetailEntity { ...@@ -1336,6 +1432,60 @@ public class AttendanceRecordDetailQuery extends AttendanceRecordDetailEntity {
} }
/**
* 设置 排序字段
* @param orderNum
*/
public AttendanceRecordDetailQuery orderNum(Integer orderNum){
setOrderNum(orderNum);
return this;
}
/**
* 设置 开始 排序字段
* @param orderNumStart
*/
public AttendanceRecordDetailQuery orderNumStart(Integer orderNumStart){
this.orderNumStart = orderNumStart;
return this;
}
/**
* 设置 结束 排序字段
* @param orderNumEnd
*/
public AttendanceRecordDetailQuery orderNumEnd(Integer orderNumEnd){
this.orderNumEnd = orderNumEnd;
return this;
}
/**
* 设置 增加 排序字段
* @param orderNumIncrement
*/
public AttendanceRecordDetailQuery orderNumIncrement(Integer orderNumIncrement){
this.orderNumIncrement = orderNumIncrement;
return this;
}
/**
* 设置 排序字段
* @param orderNumList
*/
public AttendanceRecordDetailQuery orderNumList(List<Integer> orderNumList){
this.orderNumList = orderNumList;
return this;
}
/**
* 设置 排序字段
* @param orderNumNotList
*/
public AttendanceRecordDetailQuery orderNumNotList(List<Integer> orderNumNotList){
this.orderNumNotList = orderNumNotList;
return this;
}
/** /**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) * 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList * @return orConditionList
......
...@@ -24,7 +24,7 @@ public class AttendanceRecordHikEntity extends AttendanceRecordHikVo { ...@@ -24,7 +24,7 @@ public class AttendanceRecordHikEntity extends AttendanceRecordHikVo {
/** /**
* 员工姓名 * 员工姓名
*/ */
@Excel(name = "员工姓名") @Excel(name = "姓名")
private String staffName; private String staffName;
/** /**
* 工号 * 工号
...@@ -70,7 +70,7 @@ public class AttendanceRecordHikEntity extends AttendanceRecordHikVo { ...@@ -70,7 +70,7 @@ public class AttendanceRecordHikEntity extends AttendanceRecordHikVo {
/** /**
* 考勤日期 * 考勤日期
*/ */
@Excel(name = "考勤日期", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "考勤时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date attendanceDate; private Date attendanceDate;
/** /**
* 考勤点名称 * 考勤点名称
......
package com.mortals.xhx.module.attendance.model.vo; package com.mortals.xhx.module.attendance.model.vo;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.attendance.model.AttendanceClassDetailEntity; import com.mortals.xhx.module.attendance.model.AttendanceClassDetailEntity;
import lombok.Data;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
...@@ -9,6 +11,16 @@ import java.util.List; ...@@ -9,6 +11,16 @@ import java.util.List;
* @author zxfei * @author zxfei
* @date 2023-04-08 * @date 2023-04-08
*/ */
@Data
public class AttendanceClassDetailVo extends BaseEntityLong { public class AttendanceClassDetailVo extends BaseEntityLong {
//2023-04-01
/** 开始 上班打卡时间 */
private String goWorkDateStart;
//2023-04-02
/** 结束 上班打卡时间 */
private String goWorkDateEnd;
} }
package com.mortals.xhx.module.attendance.model.vo; package com.mortals.xhx.module.attendance.model.vo;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.attendance.model.AttendanceGroupEntity; import com.mortals.xhx.module.attendance.model.AttendanceGroupEntity;
import com.mortals.xhx.module.attendance.model.AttendanceGroupFixedworkEntity;
import com.mortals.xhx.module.attendance.model.AttendanceGroupFixedworkSpecialEntity;
import com.mortals.xhx.module.attendance.model.AttendanceGroupResponsibleEntity;
import lombok.Data;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
...@@ -9,6 +14,19 @@ import java.util.List; ...@@ -9,6 +14,19 @@ import java.util.List;
* @author zxfei * @author zxfei
* @date 2023-04-08 * @date 2023-04-08
*/ */
@Data
public class AttendanceGroupVo extends BaseEntityLong { public class AttendanceGroupVo extends BaseEntityLong {
/**
* 考勤组班次实体类
*/
private AttendanceGroupFixedworkEntity attendanceGroupFixedworkEntity;
/**
* 考勤组固定班次特殊日期配置
*/
private List<AttendanceGroupFixedworkSpecialEntity> fixedworkSpecial;
private AttendanceGroupResponsibleEntity groupResponsibleEntity;
} }
package com.mortals.xhx.module.attendance.model.vo; package com.mortals.xhx.module.attendance.model.vo;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.attendance.model.AttendanceRecordHikEntity; import com.mortals.xhx.module.attendance.model.AttendanceRecordHikEntity;
import lombok.Data;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
...@@ -9,6 +12,10 @@ import java.util.List; ...@@ -9,6 +12,10 @@ import java.util.List;
* @author zxfei * @author zxfei
* @date 2023-04-08 * @date 2023-04-08
*/ */
@Data
public class AttendanceRecordHikVo extends BaseEntityLong { public class AttendanceRecordHikVo extends BaseEntityLong {
@Excel(name = "所属组织")
private String orgName;
} }
package com.mortals.xhx.module.attendance.model.vo; package com.mortals.xhx.module.attendance.model.vo;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.attendance.model.AttendanceRecordDetailEntity;
import com.mortals.xhx.module.attendance.model.AttendanceRecordEntity; import com.mortals.xhx.module.attendance.model.AttendanceRecordEntity;
import lombok.Data;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
...@@ -9,6 +12,11 @@ import java.util.List; ...@@ -9,6 +12,11 @@ import java.util.List;
* @author zxfei * @author zxfei
* @date 2023-04-07 * @date 2023-04-07
*/ */
@Data
public class AttendanceRecordVo extends BaseEntityLong { public class AttendanceRecordVo extends BaseEntityLong {
private List<AttendanceGroupFixedworkSpecialVo> list;
private AttendanceRecordDetailEntity attendanceRecordDetailEntity;
} }
package com.mortals.xhx.module.attendance.service.impl; package com.mortals.xhx.module.attendance.service.impl;
import com.mortals.framework.model.PageInfo;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
...@@ -14,6 +15,7 @@ import org.springframework.util.ObjectUtils; ...@@ -14,6 +15,7 @@ import org.springframework.util.ObjectUtils;
import java.util.Date; import java.util.Date;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* AttendanceRecordService * AttendanceRecordService
...@@ -27,6 +29,22 @@ public class AttendanceRecordServiceImpl extends AbstractCRUDServiceImpl<Attenda ...@@ -27,6 +29,22 @@ public class AttendanceRecordServiceImpl extends AbstractCRUDServiceImpl<Attenda
@Autowired @Autowired
private AttendanceRecordDetailService attendanceRecordDetailService; private AttendanceRecordDetailService attendanceRecordDetailService;
@Override
protected void findAfter(AttendanceRecordEntity params, PageInfo pageInfo, Context context, List<AttendanceRecordEntity> list) throws AppException {
list.stream().map(item->{
//chax
List<AttendanceRecordDetailEntity> attendanceRecordDetailEntities = attendanceRecordDetailService.find(new AttendanceRecordDetailQuery().recordId(item.getId()));
item.setAttendanceRecordDetailList(attendanceRecordDetailEntities);
return item;
}).collect(Collectors.toList());
super.findAfter(params, pageInfo, context, list);
}
@Override @Override
protected void saveAfter(AttendanceRecordEntity entity, Context context) throws AppException { protected void saveAfter(AttendanceRecordEntity entity, Context context) throws AppException {
if(!ObjectUtils.isEmpty(entity.getAttendanceRecordDetailList())){ if(!ObjectUtils.isEmpty(entity.getAttendanceRecordDetailList())){
......
package com.mortals.xhx.module.attendance.web; package com.mortals.xhx.module.attendance.web;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService; import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.module.attendance.model.AttendanceClassDetailEntity;
import com.mortals.xhx.module.workman.model.WorkmanEntity;
import com.mortals.xhx.module.workman.model.WorkmanQuery;
import com.mortals.xhx.module.workman.service.WorkmanService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
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;
...@@ -13,12 +18,10 @@ import com.mortals.xhx.module.attendance.model.AttendanceClassEntity; ...@@ -13,12 +18,10 @@ import com.mortals.xhx.module.attendance.model.AttendanceClassEntity;
import com.mortals.xhx.module.attendance.service.AttendanceClassService; import com.mortals.xhx.module.attendance.service.AttendanceClassService;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils; import com.mortals.framework.util.StringUtils;
import java.util.HashMap;
import java.util.List; import java.util.*;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import java.util.Arrays;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*; import static com.mortals.framework.ap.SysConstains.*;
...@@ -35,6 +38,8 @@ public class AttendanceClassController extends BaseCRUDJsonBodyMappingController ...@@ -35,6 +38,8 @@ public class AttendanceClassController extends BaseCRUDJsonBodyMappingController
@Autowired @Autowired
private ParamService paramService; private ParamService paramService;
@Autowired
private WorkmanService workmanService;
public AttendanceClassController(){ public AttendanceClassController(){
super.setModuleDesc( "考勤班次信息"); super.setModuleDesc( "考勤班次信息");
...@@ -42,8 +47,13 @@ public class AttendanceClassController extends BaseCRUDJsonBodyMappingController ...@@ -42,8 +47,13 @@ public class AttendanceClassController extends BaseCRUDJsonBodyMappingController
@Override @Override
protected void init(Map<String, Object> model, Context context) { protected void init(Map<String, Object> model, Context context) {
this.addDict(model,"workManId",workmanService.find(new WorkmanQuery()).stream().collect(Collectors.toMap(x->x.getId().toString(),y->y.getName(),(o,n)->n)));
super.init(model, context); super.init(model, context);
} }
@Override
protected void saveBefore(AttendanceClassEntity entity, Map<String, Object> model, Context context) throws AppException {
entity.setClassResponsiblePersonName(workmanService.selectOne(new WorkmanQuery().id(entity.getClassResponsiblePersonId())).getName());
super.saveBefore(entity, model, context);
}
} }
package com.mortals.xhx.module.attendance.web; package com.mortals.xhx.module.attendance.web;
import cn.hutool.core.stream.CollectorUtil;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService; import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.module.attendance.model.*;
import com.mortals.xhx.module.attendance.service.*;
import com.mortals.xhx.module.dept.model.DeptEntity;
import com.mortals.xhx.module.dept.model.DeptQuery;
import com.mortals.xhx.module.dept.model.DeptTreeSelect;
import com.mortals.xhx.module.dept.service.DeptService;
import com.mortals.xhx.module.workman.model.WorkmanQuery;
import com.mortals.xhx.module.workman.service.WorkmanService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
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 org.springframework.web.bind.annotation.*;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.attendance.model.AttendanceGroupEntity;
import com.mortals.xhx.module.attendance.service.AttendanceGroupService;
import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import java.util.Arrays;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*;
/** /**
* *
* 考勤组信息 * 考勤组信息
...@@ -35,6 +33,18 @@ public class AttendanceGroupController extends BaseCRUDJsonBodyMappingController ...@@ -35,6 +33,18 @@ public class AttendanceGroupController extends BaseCRUDJsonBodyMappingController
@Autowired @Autowired
private ParamService paramService; private ParamService paramService;
@Autowired
private WorkmanService workmanService;
@Autowired
private AttendanceClassService attendanceClassService;
@Autowired
private DeptService deptService;
@Autowired
private AttendanceGroupFixedworkService attendanceGroupFixedworkService;
@Autowired
private AttendanceGroupFixedworkSpecialService specialService;
@Autowired
private AttendanceGroupResponsibleService groupResponsibleService;
public AttendanceGroupController(){ public AttendanceGroupController(){
super.setModuleDesc( "考勤组信息"); super.setModuleDesc( "考勤组信息");
...@@ -44,8 +54,31 @@ public class AttendanceGroupController extends BaseCRUDJsonBodyMappingController ...@@ -44,8 +54,31 @@ public class AttendanceGroupController extends BaseCRUDJsonBodyMappingController
protected void init(Map<String, Object> model, Context context) { protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "type", paramService.getParamBySecondOrganize("AttendanceGroup","type")); this.addDict(model, "type", paramService.getParamBySecondOrganize("AttendanceGroup","type"));
this.addDict(model, "attendanceType", paramService.getParamBySecondOrganize("AttendanceGroup","attendanceType")); this.addDict(model, "attendanceType", paramService.getParamBySecondOrganize("AttendanceGroup","attendanceType"));
List<DeptEntity> list = deptService.find(new DeptQuery());
List<DeptTreeSelect> treeSelects = deptService.buildDeptTreeSelect(list);
this.addDict(model,"deptId",treeSelects);
List<AttendanceClassEntity> attendanceClassEntities = attendanceClassService.find(new AttendanceClassQuery());
this.addDict(model,"classId",attendanceClassEntities);
this.addDict(model,"workMan",workmanService.find(new WorkmanQuery()).stream().collect(Collectors.toMap(x->x.getId().toString(), y->y.getName(),(o, n)->n)));
super.init(model, context); super.init(model, context);
} }
@Override
protected int saveAfter(AttendanceGroupEntity entity, Map<String, Object> model, Context context) throws AppException {
entity.getAttendanceGroupFixedworkEntity().setGroupId(entity.getId());
entity.getAttendanceGroupFixedworkEntity().setGroupName(entity.getGroupName());
AttendanceGroupFixedworkEntity save = attendanceGroupFixedworkService.save(entity.getAttendanceGroupFixedworkEntity());
List<AttendanceGroupFixedworkSpecialEntity> fixedworkSpecial = entity.getFixedworkSpecial();
if (fixedworkSpecial!=null && fixedworkSpecial.size()>0){
fixedworkSpecial.forEach(item->{
item.setFixedWorkId(save.getId());
});
}
specialService.save(fixedworkSpecial);
AttendanceGroupResponsibleEntity responsibleEntity = entity.getGroupResponsibleEntity();
responsibleEntity.setGroupId(entity.getId());
responsibleEntity.setGroupName(entity.getGroupName());
groupResponsibleService.save(responsibleEntity);
return super.saveAfter(entity, model, context);
}
} }
...@@ -46,4 +46,5 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle ...@@ -46,4 +46,5 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle
} }
} }
...@@ -4,10 +4,12 @@ import java.util.List; ...@@ -4,10 +4,12 @@ import java.util.List;
import java.util.ArrayList; import java.util.ArrayList;
import com.mortals.xhx.module.dept.model.vo.DeptVo; import com.mortals.xhx.module.dept.model.vo.DeptVo;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;
import com.mortals.xhx.module.staff.model.StaffEntity;
import lombok.Data; import lombok.Data;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import java.io.Serializable; import java.io.Serializable;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
* 部门信息前端映射树结构实体类 * 部门信息前端映射树结构实体类
...@@ -35,12 +37,19 @@ public class DeptTreeSelect implements Serializable { ...@@ -35,12 +37,19 @@ public class DeptTreeSelect implements Serializable {
@JsonInclude(JsonInclude.Include.NON_EMPTY) @JsonInclude(JsonInclude.Include.NON_EMPTY)
private List<DeptTreeSelect> children; private List<DeptTreeSelect> children;
/**
* 子节点
*/
@JsonInclude(JsonInclude.Include.NON_EMPTY)
private List<Map<String,Object>> personList;
public DeptTreeSelect(DeptEntity entity) { public DeptTreeSelect(DeptEntity entity) {
this.id = entity.getId(); this.id = entity.getId();
this.label = entity.getDeptName(); this.label = entity.getDeptName();
if(!ObjectUtils.isEmpty(entity.getChildren())){ if(!ObjectUtils.isEmpty(entity.getChildren())){
this.children = entity.getChildren().stream().map(DeptTreeSelect::new).collect(Collectors.toList()); this.children = entity.getChildren().stream().map(DeptTreeSelect::new).collect(Collectors.toList());
} }
this.personList = entity.getPersonList();
} }
} }
package com.mortals.xhx.module.dept.model.vo; package com.mortals.xhx.module.dept.model.vo;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.dept.model.DeptEntity; import com.mortals.xhx.module.dept.model.DeptEntity;
import com.mortals.xhx.module.staff.model.StaffEntity;
import lombok.Data; import lombok.Data;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 部门信息视图对象 * 部门信息视图对象
* *
...@@ -16,7 +19,7 @@ public class DeptVo extends BaseEntityLong { ...@@ -16,7 +19,7 @@ public class DeptVo extends BaseEntityLong {
/** 子部门信息 */ /** 子部门信息 */
private List<DeptEntity> children = new ArrayList<>(); private List<DeptEntity> children = new ArrayList<>();
/** 子节点人员信息 */
private List<Map<String,Object>> personList = new ArrayList<>();
//成员数量 //成员数量
} }
package com.mortals.xhx.module.dept.service.impl; package com.mortals.xhx.module.dept.service.impl;
import com.mortals.xhx.module.staff.model.StaffEntity;
import com.mortals.xhx.module.staff.model.StaffQuery;
import com.mortals.xhx.module.staff.service.StaffService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
...@@ -25,6 +29,9 @@ import java.util.stream.Collectors; ...@@ -25,6 +29,9 @@ import java.util.stream.Collectors;
@Service("deptService") @Service("deptService")
public class DeptServiceImpl extends AbstractCRUDServiceImpl<DeptDao, DeptEntity, Long> implements DeptService { public class DeptServiceImpl extends AbstractCRUDServiceImpl<DeptDao, DeptEntity, Long> implements DeptService {
@Autowired
private StaffService staffService;
@Override @Override
protected void saveBefore(DeptEntity entity, Context context) throws AppException { protected void saveBefore(DeptEntity entity, Context context) throws AppException {
if(ObjectUtils.isEmpty(entity.getParentId())){ if(ObjectUtils.isEmpty(entity.getParentId())){
...@@ -129,7 +136,16 @@ public class DeptServiceImpl extends AbstractCRUDServiceImpl<DeptDao, DeptEntity ...@@ -129,7 +136,16 @@ public class DeptServiceImpl extends AbstractCRUDServiceImpl<DeptDao, DeptEntity
for (Iterator<DeptEntity> iterator = list.iterator(); iterator.hasNext(); ) { for (Iterator<DeptEntity> iterator = list.iterator(); iterator.hasNext(); ) {
DeptEntity deptEntity = iterator.next(); DeptEntity deptEntity = iterator.next();
List<StaffEntity> staffEntities = staffService.find(new StaffQuery().deptId(deptEntity.getId()));
List<Map<String,Object>> personList = new ArrayList<>();
staffEntities.forEach(item->{
Map<String,Object> map= new HashMap<>();
map.put("staffId",item.getId());
map.put("staffName",item.getName());
map.put("deptId",item.getDeptId());
personList.add(map);
});
deptEntity.setPersonList(personList);
if (!tempList.contains(deptEntity.getParentId())) { if (!tempList.contains(deptEntity.getParentId())) {
recursionFn(list, deptEntity); recursionFn(list, deptEntity);
returnList.add(deptEntity); returnList.add(deptEntity);
......
...@@ -55,4 +55,11 @@ public class WorkmanController extends BaseCRUDJsonBodyMappingController<Workman ...@@ -55,4 +55,11 @@ public class WorkmanController extends BaseCRUDJsonBodyMappingController<Workman
deptEntity.setWorkName(entity.getName()); deptEntity.setWorkName(entity.getName());
return super.saveAfter(entity, model, context); return super.saveAfter(entity, model, context);
} }
@Override
protected void saveBefore(WorkmanEntity entity, Map<String, Object> model, Context context) throws AppException {
DeptEntity deptEntity = deptService.selectOne(new DeptQuery().id(entity.getDeptId()));
entity.setDeptName(deptEntity.getDeptName());
super.saveBefore(entity, model, context);
}
} }
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd"> "mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.attendance.dao.ibatis.AttendanceRecordDetailDaoImpl"> <mapper namespace="com.mortals.xhx.module.attendance.dao.ibatis.AttendanceRecordDetailDaoImpl">
<!-- 字段和属性映射 --> <!-- 字段和属性映射 -->
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
<result property="createTime" column="createTime" /> <result property="createTime" column="createTime" />
<result property="updateUserId" column="updateUserId" /> <result property="updateUserId" column="updateUserId" />
<result property="updateTime" column="updateTime" /> <result property="updateTime" column="updateTime" />
<result property="orderNum" column="orderNum" />
</resultMap> </resultMap>
...@@ -64,23 +65,26 @@ ...@@ -64,23 +65,26 @@
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateTime') or colPickMode == 1 and data.containsKey('updateTime')))"> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateTime') or colPickMode == 1 and data.containsKey('updateTime')))">
a.updateTime, a.updateTime,
</if> </if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('orderNum') or colPickMode == 1 and data.containsKey('orderNum')))">
a.orderNum,
</if>
</trim> </trim>
</sql> </sql>
<!-- 新增 区分主键自增加还是业务插入 --> <!-- 新增 区分主键自增加还是业务插入 -->
<insert id="insert" parameterType="AttendanceRecordDetailEntity" useGeneratedKeys="true" keyProperty="id"> <insert id="insert" parameterType="AttendanceRecordDetailEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_xhx_attendance_record_detail insert into mortals_xhx_attendance_record_detail
(recordId,shiftsId,shiftsName,goWorkDate,goWorkResult,offWorkDate,offWorkResult,remark,createUserId,createTime,updateUserId,updateTime) (recordId,shiftsId,shiftsName,goWorkDate,goWorkResult,offWorkDate,offWorkResult,remark,createUserId,createTime,updateUserId,updateTime,orderNum)
VALUES VALUES
(#{recordId},#{shiftsId},#{shiftsName},#{goWorkDate},#{goWorkResult},#{offWorkDate},#{offWorkResult},#{remark},#{createUserId},#{createTime},#{updateUserId},#{updateTime}) (#{recordId},#{shiftsId},#{shiftsName},#{goWorkDate},#{goWorkResult},#{offWorkDate},#{offWorkResult},#{remark},#{createUserId},#{createTime},#{updateUserId},#{updateTime},#{orderNum})
</insert> </insert>
<!-- 批量新增 --> <!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto"> <insert id="insertBatch" parameterType="paramDto">
insert into mortals_xhx_attendance_record_detail insert into mortals_xhx_attendance_record_detail
(recordId,shiftsId,shiftsName,goWorkDate,goWorkResult,offWorkDate,offWorkResult,remark,createUserId,createTime,updateUserId,updateTime) (recordId,shiftsId,shiftsName,goWorkDate,goWorkResult,offWorkDate,offWorkResult,remark,createUserId,createTime,updateUserId,updateTime,orderNum)
VALUES VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," > <foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.recordId},#{item.shiftsId},#{item.shiftsName},#{item.goWorkDate},#{item.goWorkResult},#{item.offWorkDate},#{item.offWorkResult},#{item.remark},#{item.createUserId},#{item.createTime},#{item.updateUserId},#{item.updateTime}) (#{item.recordId},#{item.shiftsId},#{item.shiftsName},#{item.goWorkDate},#{item.goWorkResult},#{item.offWorkDate},#{item.offWorkResult},#{item.remark},#{item.createUserId},#{item.createTime},#{item.updateUserId},#{item.updateTime},#{item.orderNum})
</foreach> </foreach>
</insert> </insert>
...@@ -144,6 +148,12 @@ ...@@ -144,6 +148,12 @@
<if test="(colPickMode==0 and data.containsKey('updateTime')) or (colPickMode==1 and !data.containsKey('updateTime'))"> <if test="(colPickMode==0 and data.containsKey('updateTime')) or (colPickMode==1 and !data.containsKey('updateTime'))">
a.updateTime=#{data.updateTime}, a.updateTime=#{data.updateTime},
</if> </if>
<if test="(colPickMode==0 and data.containsKey('orderNum')) or (colPickMode==1 and !data.containsKey('orderNum'))">
a.orderNum=#{data.orderNum},
</if>
<if test="(colPickMode==0 and data.containsKey('orderNumIncrement')) or (colPickMode==1 and !data.containsKey('orderNumIncrement'))">
a.orderNum=ifnull(a.orderNum,0) + #{data.orderNumIncrement},
</if>
</trim> </trim>
<trim suffixOverrides="where" suffix=""> <trim suffixOverrides="where" suffix="">
where where
...@@ -270,6 +280,18 @@ ...@@ -270,6 +280,18 @@
</if> </if>
</foreach> </foreach>
</trim> </trim>
<trim prefix="orderNum=(case" suffix="ELSE orderNum end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('orderNum')) or (colPickMode==1 and !item.containsKey('orderNum'))">
when a.id=#{item.id} then #{item.orderNum}
</when>
<when test="(colPickMode==0 and item.containsKey('orderNumIncrement')) or (colPickMode==1 and !item.containsKey('orderNumIncrement'))">
when a.id=#{item.id} then ifnull(a.orderNum,0) + #{item.orderNumIncrement}
</when>
</choose>
</foreach>
</trim>
</trim> </trim>
where id in where id in
<foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")"> <foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")">
...@@ -677,6 +699,33 @@ ...@@ -677,6 +699,33 @@
<if test="conditionParamRef.containsKey('updateTimeEnd') and conditionParamRef.updateTimeEnd != null and conditionParamRef.updateTimeEnd!=''"> <if test="conditionParamRef.containsKey('updateTimeEnd') and conditionParamRef.updateTimeEnd != null and conditionParamRef.updateTimeEnd!=''">
${_conditionType_} a.updateTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s') ${_conditionType_} a.updateTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if> </if>
<if test="conditionParamRef.containsKey('orderNum')">
<if test="conditionParamRef.orderNum != null ">
${_conditionType_} a.orderNum = #{${_conditionParam_}.orderNum}
</if>
<if test="conditionParamRef.orderNum == null">
${_conditionType_} a.orderNum is null
</if>
</if>
<if test="conditionParamRef.containsKey('orderNumList')">
${_conditionType_} a.orderNum in
<foreach collection="conditionParamRef.orderNumList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('orderNumNotList')">
${_conditionType_} a.orderNum not in
<foreach collection="conditionParamRef.orderNumNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('orderNumStart') and conditionParamRef.orderNumStart != null">
${_conditionType_} a.orderNum <![CDATA[ >= ]]> #{${_conditionParam_}.orderNumStart}
</if>
<if test="conditionParamRef.containsKey('orderNumEnd') and conditionParamRef.orderNumEnd != null">
${_conditionType_} a.orderNum <![CDATA[ <= ]]> #{${_conditionParam_}.orderNumEnd}
</if>
</sql> </sql>
<sql id="_orderCols_"> <sql id="_orderCols_">
<if test="orderColList != null and !orderColList.isEmpty()"> <if test="orderColList != null and !orderColList.isEmpty()">
...@@ -755,6 +804,11 @@ ...@@ -755,6 +804,11 @@
<if test='orderCol.updateTime != null and "DESC".equalsIgnoreCase(orderCol.updateTime)'>DESC</if> <if test='orderCol.updateTime != null and "DESC".equalsIgnoreCase(orderCol.updateTime)'>DESC</if>
, ,
</if> </if>
<if test="orderCol.containsKey('orderNum')">
a.orderNum
<if test='orderCol.orderNum != null and "DESC".equalsIgnoreCase(orderCol.orderNum)'>DESC</if>
,
</if>
</trim> </trim>
</if> </if>
</sql> </sql>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd"> "mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.attendance.dao.ibatis.AttendanceRecordDaoImpl"> <mapper namespace="com.mortals.xhx.module.attendance.dao.ibatis.AttendanceRecordDaoImpl">
<!-- 字段和属性映射 --> <!-- 字段和属性映射 -->
...@@ -39,6 +39,7 @@ ...@@ -39,6 +39,7 @@
<result property="createTime" column="createTime" /> <result property="createTime" column="createTime" />
<result property="updateUserId" column="updateUserId" /> <result property="updateUserId" column="updateUserId" />
<result property="updateTime" column="updateTime" /> <result property="updateTime" column="updateTime" />
<result property="orderNum" column="orderNum" />
</resultMap> </resultMap>
...@@ -104,7 +105,7 @@ ...@@ -104,7 +105,7 @@
<!-- 子表所有列 --> <!-- 子表所有列 -->
<sql id="_columns_sub"> <sql id="_columns_sub">
<trim suffixOverrides="," suffix=""> <trim suffixOverrides="," suffix="">
b.id,b.recordId,b.shiftsId,b.shiftsName,b.goWorkDate,b.goWorkResult,b.offWorkDate,b.offWorkResult,b.remark,b.createUserId,b.createTime,b.updateUserId,b.updateTime, b.id,b.recordId,b.shiftsId,b.shiftsName,b.goWorkDate,b.goWorkResult,b.offWorkDate,b.offWorkResult,b.remark,b.createUserId,b.createTime,b.updateUserId,b.updateTime,b.orderNum,
</trim> </trim>
</sql> </sql>
<!-- 新增 区分主键自增加还是业务插入 --> <!-- 新增 区分主键自增加还是业务插入 -->
......
...@@ -230,9 +230,10 @@ INSERT INTO `mortals_xhx_resource` VALUES (null, '考勤组信息-菜单管理- ...@@ -230,9 +230,10 @@ INSERT INTO `mortals_xhx_resource` VALUES (null, '考勤组信息-菜单管理-
-- ---------------------------- -- ----------------------------
-- 考勤组信息参数 SQL -- 考勤组信息参数 SQL
-- ---------------------------- -- ----------------------------
INSERT INTO `mortals_xhx_param` VALUES (null, '类型', 'AttendanceGroup', 'type', '1', '固定班', 1, 4, 0, 'type', NULL, NULL, NULL); INSERT INTO `mortals_xhx_param` VALUES (null, '类型', 'AttendanceGroup', 'type', '1', '固定班', 1, 4, 0, 'type', NULL, NULL, NULL);
-- ---------------------------- -- ----------------------------
-- 考勤班次信息菜单 SQL -- 考勤班次信息菜单 SQL
-- ---------------------------- -- ----------------------------
INSERT INTO `mortals_xhx_menu` VALUES (null, '考勤班次信息', '/attendance/class/list', 0, 1, 1, 0, 0,'',NULL, NULL, NULL, 0, 0, 1, NULL, NULL, NULL); INSERT INTO `mortals_xhx_menu` VALUES (null, '考勤班次信息', '/attendance/class/list', 0, 1, 1, 0, 0,'',NULL, NULL, NULL, 0, 0, 1, NULL, NULL, NULL);
......
...@@ -329,6 +329,7 @@ PRIMARY KEY (`id`) ...@@ -329,6 +329,7 @@ PRIMARY KEY (`id`)
-- ---------------------------- -- ----------------------------
-- 请假记录信息表 -- 请假记录信息表
-- ---------------------------- -- ----------------------------
......
...@@ -6925,7 +6925,7 @@ data|object|数据对象 ...@@ -6925,7 +6925,7 @@ data|object|数据对象
&emsp;&emsp;groupName|String|考勤组名称 &emsp;&emsp;groupName|String|考勤组名称
&emsp;&emsp;personNum|Integer|人数 &emsp;&emsp;personNum|Integer|人数
&emsp;&emsp;responsiblePerson|String|负责人 &emsp;&emsp;responsiblePerson|String|负责人
&emsp;&emsp;type|Integer|类型(1.固定班) &emsp;&emsp;type|Integer|类型(1.固定班)
&emsp;&emsp;attendanceTime|Integer|考勤时间 &emsp;&emsp;attendanceTime|Integer|考勤时间
&emsp;&emsp;remark|String|备注 &emsp;&emsp;remark|String|备注
&emsp;&emsp;createUserId|Long|创建用户 &emsp;&emsp;createUserId|Long|创建用户
...@@ -6975,7 +6975,7 @@ data|object|数据对象 ...@@ -6975,7 +6975,7 @@ data|object|数据对象
&emsp;groupName|String|考勤组名称 &emsp;groupName|String|考勤组名称
&emsp;personNum|Integer|人数 &emsp;personNum|Integer|人数
&emsp;responsiblePerson|String|负责人 &emsp;responsiblePerson|String|负责人
&emsp;type|Integer|类型(1.固定班) &emsp;type|Integer|类型(1.固定班)
&emsp;attendanceTime|Integer|考勤时间 &emsp;attendanceTime|Integer|考勤时间
&emsp;remark|String|备注 &emsp;remark|String|备注
&emsp;createUserId|Long|创建用户 &emsp;createUserId|Long|创建用户
...@@ -7022,7 +7022,7 @@ dict|object|字典对象 ...@@ -7022,7 +7022,7 @@ dict|object|字典对象
groupName|String|否|考勤组名称 groupName|String|否|考勤组名称
personNum|Integer|否|人数 personNum|Integer|否|人数
responsiblePerson|String|否|负责人 responsiblePerson|String|否|负责人
type|Integer|否|类型(1.固定班) type|Integer|否|类型(1.固定班)
attendanceTime|Integer|否|考勤时间 attendanceTime|Integer|否|考勤时间
remark|String|否|备注 remark|String|否|备注
...@@ -7051,7 +7051,7 @@ data|object|数据对象 ...@@ -7051,7 +7051,7 @@ data|object|数据对象
&emsp;&emsp;groupName|String|考勤组名称 &emsp;&emsp;groupName|String|考勤组名称
&emsp;&emsp;personNum|Integer|人数 &emsp;&emsp;personNum|Integer|人数
&emsp;&emsp;responsiblePerson|String|负责人 &emsp;&emsp;responsiblePerson|String|负责人
&emsp;&emsp;type|Integer|类型(1.固定班) &emsp;&emsp;type|Integer|类型(1.固定班)
&emsp;&emsp;attendanceTime|Integer|考勤时间 &emsp;&emsp;attendanceTime|Integer|考勤时间
&emsp;&emsp;remark|String|备注 &emsp;&emsp;remark|String|备注
&emsp;&emsp;createUserId|Long|创建用户 &emsp;&emsp;createUserId|Long|创建用户
...@@ -10707,7 +10707,7 @@ msg|String|消息|- ...@@ -10707,7 +10707,7 @@ msg|String|消息|-
### type ### type
字典参数key|字典参数值|其它 字典参数key|字典参数值|其它
:---|:---|:--- :---|:---|:---
1|固定班|- 1|固定班|-
### leaveType ### leaveType
字典参数key|字典参数值|其它 字典参数key|字典参数值|其它
:---|:---|:--- :---|:---|:---
......
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