Commit 90e07860 authored by 廖旭伟's avatar 廖旭伟

Merge remote-tracking branch 'origin/master'

parents 27a725b9 7b9a9c6e
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
} }
}) })
this.$nextTick(() => { this.$nextTick(() => {
this.selection = arr.map(item => item.id) this.selection = arr.map(item => item.id)
}) })
if(arr.length < 1){ if(arr.length < 1){
this.$message.error('请至少选择一条处理') this.$message.error('请至少选择一条处理')
...@@ -100,12 +100,12 @@ ...@@ -100,12 +100,12 @@
label: "全部考勤组", label: "全部考勤组",
fuzzy: false fuzzy: false
}, },
{ /* {
name: "classId", name: "classId",
type: "select", type: "select",
label: "全部班次", label: "全部班次",
fuzzy: false fuzzy: false
}, },*/
{ {
name: "errorStatus", name: "errorStatus",
type: "select", type: "select",
...@@ -149,8 +149,8 @@ ...@@ -149,8 +149,8 @@
{label: "员工姓名", prop: "staffName",fixed:'left',width:100}, {label: "员工姓名", prop: "staffName",fixed:'left',width:100},
{label: "工号", prop: "workNum"}, {label: "工号", prop: "workNum"},
{label: "部门", prop: "deptName"}, {label: "部门", prop: "deptName"},
{label: "考勤组", prop: "deptName"}, {label: "考勤组", prop: "attendanceGroupName"},
{label: "班次", prop: "shiftsName"}, /* {label: "班次", prop: "shiftsName"},*/
{label: "异常状态", prop: "errorStatus",formatter: this.formattereErrorStatus}, {label: "异常状态", prop: "errorStatus",formatter: this.formattereErrorStatus},
{label: "异常时间", prop: "errorDateTime", formatter: this.formatterDate}, {label: "异常时间", prop: "errorDateTime", formatter: this.formatterDate},
{label: "处理结果", prop: "processResult", formatter: this.formatters}, {label: "处理结果", prop: "processResult", formatter: this.formatters},
...@@ -175,7 +175,7 @@ ...@@ -175,7 +175,7 @@
}else{ }else{
return ( return (
<span> <span>
<el-button type="text" size='mini' onClick={() => { <el-button type="text" size='mini' onClick={() => {
this.reCancle(row) this.reCancle(row)
}}>撤销</el-button> }}>撤销</el-button>
...@@ -192,4 +192,4 @@ ...@@ -192,4 +192,4 @@
} }
} }
} }
</script> </script>
\ No newline at end of file
...@@ -498,12 +498,11 @@ export default { ...@@ -498,12 +498,11 @@ export default {
{ label: "员工工号", prop: "workNum" }, { label: "员工工号", prop: "workNum" },
{ {
label: "考勤组", label: "考勤组",
prop: "attendanceGroupName", prop: "attendanceGroupName"
formatter: this.formatters,
}, },
{ label: "部门", prop: "deptName", formatter: this.formatters }, { label: "部门", prop: "deptName" },
{ label: "职位", prop: "positionName", formatter: this.formatters }, { label: "职位", prop: "positionName"},
{ label: "班次", prop: "shiftsName", formatter: this.formatters }, { label: "班次", prop: "classId", formatter: this.formatter },
{ {
label: "签到结果", label: "签到结果",
prop: "signInResult", prop: "signInResult",
......
...@@ -17,9 +17,9 @@ module.exports = { ...@@ -17,9 +17,9 @@ module.exports = {
hot: true,//自动保存 hot: true,//自动保存
proxy: { proxy: {
'/attendance': { '/attendance': {
target: 'http://192.168.0.98:11039', //target: 'http://192.168.0.98:11039',
// target: 'http://112.19.80.237:11039', // target: 'http://112.19.80.237:11039',
// target: 'http://localhost:17500', target: 'http://localhost:17500',
changeOrigin: true, changeOrigin: true,
secure: false, secure: false,
cookieDomainRewrite: 'localhost', cookieDomainRewrite: 'localhost',
......
...@@ -84,6 +84,39 @@ ...@@ -84,6 +84,39 @@
<skipUi>false</skipUi> <skipUi>false</skipUi>
</properties> </properties>
</profile> </profile>
<profile>
<id>product</id>
<properties>
<profiles.active>product</profiles.active>
<profiles.server.port>17500</profiles.server.port>
<profiles.server.path>/attendance</profiles.server.path>
<profiles.publish.path>/home/publish</profiles.publish.path>
<profiles.nacos.server-addr>127.0.0.1:8848</profiles.nacos.server-addr>
<profiles.nacos.group>DEFAULT_GROUP</profiles.nacos.group>
<profiles.nacos.namespace>smart-gov</profiles.nacos.namespace>
<profiles.log.path>/home/mortals/app/logs</profiles.log.path>
<profiles.log.level>INFO</profiles.log.level>
<profiles.sms.smsSendUrl>http://127.0.0.1:8089/api/index/index</profiles.sms.smsSendUrl>
<profiles.sms.apiId>k6BVS1PEbyzcJAE4</profiles.sms.apiId>
<profiles.hik.host>8.136.255.30:8001</profiles.hik.host>
<profiles.hik.protocol>http://</profiles.hik.protocol>
<profiles.hik.appKey>25128371</profiles.hik.appKey>
<profiles.hik.appSecret>2m9RcPJOKq5j2QPQM4v5</profiles.hik.appSecret>
<profiles.dingtalk.domain>https://oapi.dingtalk.com</profiles.dingtalk.domain>
<profiles.dingtalk.oaUrl>api.dingtalk.com</profiles.dingtalk.oaUrl>
<profiles.dingtalk.agentId>2652674890</profiles.dingtalk.agentId>
<profiles.dingtalk.appKey>dingpqzradgfr4efdi2j</profiles.dingtalk.appKey>
<profiles.dingtalk.appSecret>bF2WALmo5_Wuj3hg5gXeWqezrYnZChUJ88HjzNWpkA9ivdOxfBDGOGYcfVRfB3vd</profiles.dingtalk.appSecret>
<profiles.dingtalk.aesKey>1QcPYuSpAc98OS3qQwwx5HPH85CZDidxF95yBGad2fJ</profiles.dingtalk.aesKey>
<profiles.dingtalk.token>m3WeuVx5kcTY76kh22uWZOTSu0XjvcwNhd</profiles.dingtalk.token>
<profiles.dingtalk.opUserId>manager8325</profiles.dingtalk.opUserId>
<profiles.webUrl>http://8.136.255.30:21039/attendance</profiles.webUrl>
<package.environment>build</package.environment>
<skipUi>false</skipUi>
</properties>
</profile>
<profile> <profile>
<id>yibin</id> <id>yibin</id>
<properties> <properties>
......
package com.mortals.xhx.base.system.user.model; package com.mortals.xhx.base.system.user.model;
import com.mortals.framework.annotation.desensitization.MobileDesensitize;
import com.mortals.framework.ap.SysConstains; import com.mortals.framework.ap.SysConstains;
import com.mortals.framework.service.IUser; import com.mortals.framework.service.IUser;
import com.mortals.xhx.base.system.user.model.vo.UserVo; import com.mortals.xhx.base.system.user.model.vo.UserVo;
...@@ -34,6 +35,7 @@ public class UserEntity extends UserVo implements IUser { ...@@ -34,6 +35,7 @@ public class UserEntity extends UserVo implements IUser {
/** /**
* 用户手机号 * 用户手机号
*/ */
@MobileDesensitize
private String mobile; private String mobile;
/** /**
* 用户联系电话 * 用户联系电话
......
...@@ -141,16 +141,16 @@ public class DingMessageController { ...@@ -141,16 +141,16 @@ public class DingMessageController {
if(result.getTasks().size() >0 ){ // if(result.getTasks().size() >0 ){
if(result.getTasks().get(0).getCreateTime() != null && result.getTasks().get(0).getFinishTime() != null){ // if(result.getTasks().get(0).getCreateTime() != null && result.getTasks().get(0).getFinishTime() != null){
Date startTime = dateFormat(result.getTasks().get(0).getCreateTime(),"yyyy-MM-dd'T'HH:mm'Z'",false); // Date startTime = dateFormat(result.getTasks().get(0).getCreateTime(),"yyyy-MM-dd'T'HH:mm'Z'",false);
//
Date endTime = dateFormat(result.getTasks().get(0).getFinishTime(),"yyyy-MM-dd'T'HH:mm'Z'",false); // Date endTime = dateFormat(result.getTasks().get(0).getFinishTime(),"yyyy-MM-dd'T'HH:mm'Z'",false);
leaveRecordEntity.setStartTime(startTime); // leaveRecordEntity.setStartTime(startTime);
leaveRecordEntity.setEndTime(endTime); // leaveRecordEntity.setEndTime(endTime);
leaveRecordEntity.setDuration((int) ((endTime.getTime() - startTime.getTime())/1000)); // leaveRecordEntity.setDuration((int) ((endTime.getTime() - startTime.getTime())/1000));
} // }
} // }
String leave_code = LeaveRulesEnum.事假.getLeave_code(); String leave_code = LeaveRulesEnum.事假.getLeave_code();
String leave_name = "事假"; String leave_name = "事假";
...@@ -169,7 +169,7 @@ public class DingMessageController { ...@@ -169,7 +169,7 @@ public class DingMessageController {
switch (jsonArray.get(3).toString()){ switch (jsonArray.get(3).toString()){
case "halfDay": case "halfDay":
case "day": case "day":
leaveRecordEntity.setDuration((int) (Float.parseFloat(jsonArray.get(2).toString())*60*60*24)); //小时转换成秒 leaveRecordEntity.setDuration((int) (Float.parseFloat(jsonArray.get(2).toString())*60*60*24)); //转换成秒
break; break;
default: //除了按天和半天计算的假期 其余都是按小时返回 default: //除了按天和半天计算的假期 其余都是按小时返回
leaveRecordEntity.setDuration((int) (Float.parseFloat(jsonArray.get(2).toString())*60*60)); //小时转换成秒 leaveRecordEntity.setDuration((int) (Float.parseFloat(jsonArray.get(2).toString())*60*60)); //小时转换成秒
...@@ -281,21 +281,24 @@ public class DingMessageController { ...@@ -281,21 +281,24 @@ public class DingMessageController {
if(result.getResult().compareToIgnoreCase("AGREE") == 0){ if(result.getResult().compareToIgnoreCase("AGREE") == 0){
if(result.getTasks().size() > 1){ // if(result.getTasks().size() > 1){
if(result.getTasks().get(1).getStatus().compareToIgnoreCase("CANCELED") != 0){ // if(result.getTasks().get(1).getStatus().compareToIgnoreCase("CANCELED") == 0){
leaveRecordEntity.setAuditResult(4); //撤销审批完成 // leaveRecordEntity.setAuditResult(4); //撤销审批完成
}else { // }else {
leaveRecordEntity.setAuditResult(1); // leaveRecordEntity.setAuditResult(1);
} // }
} // }
}else if(result.equals("")){ //撤销假期审批中result会为空 撤销审批通过后result为AGREE leaveRecordEntity.setAuditResult(1);
}
else if(result.equals("")){ //撤销假期审批中result会为空 撤销审批通过后result为AGREE
if(result.getTasks().size() > 1){ if(result.getTasks().size() > 1){
log.info("status"+result.getTasks().get(1).getStatus()); log.info("status"+result.getTasks().get(1).getStatus());
if(result.getTasks().get(1).getStatus().compareToIgnoreCase("CANCELED") != 0){ if(result.getTasks().get(1).getStatus().compareToIgnoreCase("CANCELED") != 0){
leaveRecordEntity.setAuditResult(3); //撤销审批中 leaveRecordEntity.setAuditResult(3); //撤销审批中
} }
} }
}else { }
else {
leaveRecordEntity.setAuditResult(2); //请假审批中 leaveRecordEntity.setAuditResult(2); //请假审批中
} }
......
...@@ -14,7 +14,7 @@ import lombok.Data; ...@@ -14,7 +14,7 @@ import lombok.Data;
* 考勤打卡记录信息实体对象 * 考勤打卡记录信息实体对象
* *
* @author zxfei * @author zxfei
* @date 2023-07-27 * @date 2023-08-03
*/ */
@Data @Data
public class AttendanceRecordEntity extends AttendanceRecordVo { public class AttendanceRecordEntity extends AttendanceRecordVo {
...@@ -61,15 +61,6 @@ public class AttendanceRecordEntity extends AttendanceRecordVo { ...@@ -61,15 +61,6 @@ public class AttendanceRecordEntity extends AttendanceRecordVo {
*/ */
@Excel(name = "所属考勤组名称") @Excel(name = "所属考勤组名称")
private String attendanceGroupName; private String attendanceGroupName;
/**
* 班次ID
*/
private Long shiftsId;
/**
* 班次名称
*/
@Excel(name = "班次名称")
private String shiftsName;
/** /**
* 打卡日期 * 打卡日期
*/ */
...@@ -82,12 +73,12 @@ public class AttendanceRecordEntity extends AttendanceRecordVo { ...@@ -82,12 +73,12 @@ public class AttendanceRecordEntity extends AttendanceRecordVo {
/** /**
* 签到结果(0.否,1.是) * 签到结果(0.否,1.是)
*/ */
@Excel(name = "签到结果", readConverterExp = "0=异常,1=正常") @Excel(name = "签到结果", readConverterExp = "0=否,1=是")
private Integer signInResult; private Integer signInResult;
/** /**
* 签退结果(0.否,1.是) * 签退结果(0.否,1.是)
*/ */
@Excel(name = "签退结果", readConverterExp = "0=异常,1=正常") @Excel(name = "签退结果", readConverterExp = "0=否,1=是")
private Integer signOutResult; private Integer signOutResult;
/** /**
* 考勤类型 * 考勤类型
...@@ -96,8 +87,16 @@ public class AttendanceRecordEntity extends AttendanceRecordVo { ...@@ -96,8 +87,16 @@ public class AttendanceRecordEntity extends AttendanceRecordVo {
/** /**
* 打卡结果(0.否,1.是) * 打卡结果(0.否,1.是)
*/ */
@Excel(name = "打卡结果", readConverterExp = "0=异常,1=正常") @Excel(name = "打卡结果", readConverterExp = "0=否,1=是")
private Integer punchResult; private Integer punchResult;
/**
* 班次ID
*/
private Long classId;
/**
* 班次名称
*/
private String className;
@Override @Override
public int hashCode() { public int hashCode() {
return this.getId().hashCode(); return this.getId().hashCode();
...@@ -124,13 +123,13 @@ public class AttendanceRecordEntity extends AttendanceRecordVo { ...@@ -124,13 +123,13 @@ public class AttendanceRecordEntity extends AttendanceRecordVo {
this.positionName = ""; this.positionName = "";
this.attendanceGroupId = 0L; this.attendanceGroupId = 0L;
this.attendanceGroupName = ""; this.attendanceGroupName = "";
this.shiftsId = 0L;
this.shiftsName = "";
this.attendanceDate = new Date(); this.attendanceDate = new Date();
this.remark = ""; this.remark = "";
this.signInResult = 0; this.signInResult = 0;
this.signOutResult = 0; this.signOutResult = 0;
this.attendType = ""; this.attendType = "";
this.punchResult = 0; this.punchResult = 0;
this.classId = 0L;
this.className = "";
} }
} }
\ No newline at end of file
...@@ -39,28 +39,24 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At ...@@ -39,28 +39,24 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At
protected void findAfter(AttendanceRecordErrorEntity params, PageInfo pageInfo, Context context, List<AttendanceRecordErrorEntity> list) throws AppException { protected void findAfter(AttendanceRecordErrorEntity params, PageInfo pageInfo, Context context, List<AttendanceRecordErrorEntity> list) throws AppException {
list.forEach(item -> { list.forEach(item -> {
AttendanceClassEntity attendanceClassEntity = attendanceClassService.get(item.getShiftsId(), context); AttendanceClassDetailEntity attendanceClassDetailEntity = classDetailService.get(item.getShiftsId(), context);
if(!ObjectUtils.isEmpty(attendanceClassEntity)&&!ObjectUtils.isEmpty(attendanceClassEntity.getAttendanceClassDetailList())){ if (!ObjectUtils.isEmpty(attendanceClassDetailEntity)) {
for (AttendanceClassDetailEntity attendanceClassDetailEntity : attendanceClassEntity.getAttendanceClassDetailList()) { String str = DateUtil.formatTime(item.getGoOffDateTime());
if (!ObjectUtils.isEmpty(attendanceClassDetailEntity)) { String goStr = DateUtil.formatTime(attendanceClassDetailEntity.getGoWorkDate());
String str = DateUtil.formatTime(item.getGoOffDateTime()); String offStr = DateUtil.formatTime(attendanceClassDetailEntity.getOffWorkDate());
String goStr = DateUtil.formatTime(attendanceClassDetailEntity.getGoWorkDate());
String offStr = DateUtil.formatTime(attendanceClassDetailEntity.getOffWorkDate());
if (!ObjectUtils.isEmpty(str)&&str.equals(goStr)) { if (!ObjectUtils.isEmpty(str) && str.equals(goStr)) {
item.setGoOrOff("上班"); item.setGoOrOff("上班");
}
if (!ObjectUtils.isEmpty(str)&&str.equals(offStr)) {
item.setGoOrOff("下班");
}
if (ObjectUtils.isEmpty(item.getGoOrOff())) {
item.setGoOrOff("上班");
}
}
} }
}else { if (!ObjectUtils.isEmpty(str) && str.equals(offStr)) {
item.setGoOrOff("上班"); item.setGoOrOff("下班");
}
if (ObjectUtils.isEmpty(item.getGoOrOff())) {
item.setGoOrOff("");
}
} else {
item.setGoOrOff("");
} }
}); });
} }
......
...@@ -127,6 +127,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte ...@@ -127,6 +127,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
commonData.setContext(context); commonData.setContext(context);
commonData.setAttendanceGroupEntity(attendanceGroupEntity); commonData.setAttendanceGroupEntity(attendanceGroupEntity);
commonData.setAttendanceRecordEntity(attendanceRecordEntity); commonData.setAttendanceRecordEntity(attendanceRecordEntity);
commonData.setAttendanceDate(attendanceRecordEntity.getAttendanceDate());
commonData.setDetailEntityList(detailEntityList); commonData.setDetailEntityList(detailEntityList);
commonData.setStaffId(attendanceRecordEntity.getStaffId()); commonData.setStaffId(attendanceRecordEntity.getStaffId());
commonData.setDateStr(dateStr); commonData.setDateStr(dateStr);
...@@ -149,6 +150,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte ...@@ -149,6 +150,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
commonData.setAttendanceGroupEntity(attendanceGroupEntity); commonData.setAttendanceGroupEntity(attendanceGroupEntity);
commonData.setAttendanceRecordEntity(attendanceRecordEntity); commonData.setAttendanceRecordEntity(attendanceRecordEntity);
commonData.setDetailEntityList(detailEntityList); commonData.setDetailEntityList(detailEntityList);
commonData.setAttendanceDate(attendanceRecordEntity.getAttendanceDate());
commonData.setStaffId(attendanceRecordEntity.getStaffId()); commonData.setStaffId(attendanceRecordEntity.getStaffId());
commonData.setDateStr(dateStr); commonData.setDateStr(dateStr);
workAbstract.doHandleWork(commonData); workAbstract.doHandleWork(commonData);
...@@ -194,7 +196,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte ...@@ -194,7 +196,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
//判断是否存在记录 如果存在 则更新 维度 staffId attendanceDate shiftsId attendanceGroupId //判断是否存在记录 如果存在 则更新 维度 staffId attendanceDate shiftsId attendanceGroupId
AttendanceRecordQuery query = new AttendanceRecordQuery(); AttendanceRecordQuery query = new AttendanceRecordQuery();
query.setStaffId(attendanceRecordEntity.getStaffId()); query.setStaffId(attendanceRecordEntity.getStaffId());
query.setShiftsId(attendanceRecordEntity.getShiftsId()); query.setClassId(attendanceRecordEntity.getClassId());
query.setAttendanceGroupId(attendanceRecordEntity.getAttendanceGroupId()); query.setAttendanceGroupId(attendanceRecordEntity.getAttendanceGroupId());
query.setAttendanceDate(attendanceRecordEntity.getAttendanceDate()); query.setAttendanceDate(attendanceRecordEntity.getAttendanceDate());
...@@ -297,8 +299,8 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte ...@@ -297,8 +299,8 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
} }
if (!ObjectUtils.isEmpty(detailEntityList)) { if (!ObjectUtils.isEmpty(detailEntityList)) {
AttendanceClassDetailEntity attendanceClassDetailEntity = attendanceClassDetailService.get(detailEntityList.get(0).getShiftsId(), context); AttendanceClassDetailEntity attendanceClassDetailEntity = attendanceClassDetailService.get(detailEntityList.get(0).getShiftsId(), context);
attendanceRecordEntity.setShiftsId(attendanceClassDetailEntity == null ? 0L : attendanceClassDetailEntity.getClassId()); attendanceRecordEntity.setClassId(attendanceClassDetailEntity == null ? 0L : attendanceClassDetailEntity.getClassId());
attendanceRecordEntity.setShiftsName(attendanceClassDetailEntity == null ? "" : attendanceClassDetailEntity.getClassName()); attendanceRecordEntity.setClassName(attendanceClassDetailEntity == null ? "" : attendanceClassDetailEntity.getClassName());
} }
//生成异常记录 //生成异常记录
genErrorAttendRecord(context, dateStr, attendanceRecordEntity, detailEntityList); genErrorAttendRecord(context, dateStr, attendanceRecordEntity, detailEntityList);
...@@ -339,7 +341,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte ...@@ -339,7 +341,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
//判断是否存在记录 如果存在 则更新 维度 staffId attendanceDate shiftsId attendanceGroupId //判断是否存在记录 如果存在 则更新 维度 staffId attendanceDate shiftsId attendanceGroupId
AttendanceRecordQuery query = new AttendanceRecordQuery(); AttendanceRecordQuery query = new AttendanceRecordQuery();
query.setStaffId(attendanceRecordEntity.getStaffId()); query.setStaffId(attendanceRecordEntity.getStaffId());
query.setShiftsId(attendanceRecordEntity.getShiftsId()); query.setClassId(attendanceRecordEntity.getClassId());
query.setAttendanceGroupId(attendanceRecordEntity.getAttendanceGroupId()); query.setAttendanceGroupId(attendanceRecordEntity.getAttendanceGroupId());
query.setAttendanceDate(attendanceRecordEntity.getAttendanceDate()); query.setAttendanceDate(attendanceRecordEntity.getAttendanceDate());
......
...@@ -228,8 +228,8 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract { ...@@ -228,8 +228,8 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract {
} }
if (!ObjectUtils.isEmpty(commonData.getDetailEntityList())) { if (!ObjectUtils.isEmpty(commonData.getDetailEntityList())) {
AttendanceClassDetailEntity attendanceClassDetailEntity = attendanceClassDetailService.get(commonData.getDetailEntityList().get(0).getShiftsId()); AttendanceClassDetailEntity attendanceClassDetailEntity = attendanceClassDetailService.get(commonData.getDetailEntityList().get(0).getShiftsId());
commonData.getAttendanceRecordEntity().setShiftsId(attendanceClassDetailEntity == null ? 0L : attendanceClassDetailEntity.getClassId()); commonData.getAttendanceRecordEntity().setClassId(attendanceClassDetailEntity == null ? 0L : attendanceClassDetailEntity.getClassId());
commonData.getAttendanceRecordEntity().setShiftsName(attendanceClassDetailEntity == null ? "" : attendanceClassDetailEntity.getClassName()); commonData.getAttendanceRecordEntity().setClassName(attendanceClassDetailEntity == null ? "" : attendanceClassDetailEntity.getClassName());
} }
//生成异常记录 //生成异常记录
genErrorAttendRecord(commonData.getContext(), commonData.getDateStr(), commonData.getAttendanceRecordEntity(), commonData.getDetailEntityList()); genErrorAttendRecord(commonData.getContext(), commonData.getDateStr(), commonData.getAttendanceRecordEntity(), commonData.getDetailEntityList());
...@@ -249,7 +249,9 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract { ...@@ -249,7 +249,9 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract {
AttendanceRecordErrorEntity errorEntity = new AttendanceRecordErrorEntity(); AttendanceRecordErrorEntity errorEntity = new AttendanceRecordErrorEntity();
errorEntity.initAttrValue(); errorEntity.initAttrValue();
BeanUtils.copyProperties(attendanceRecordEntity, errorEntity, new String[]{"id"}); BeanUtils.copyProperties(attendanceRecordEntity, errorEntity, new String[]{"id"});
errorEntity.setGoOffDateTime(errorEntity.getErrorDateTime());
errorEntity.setShiftsId(recordDetailEntity.getShiftsId());
errorEntity.setShiftsName(recordDetailEntity.getShiftsName());
errorEntity.setProcessStatus(YesNoEnum.NO.getValue()); errorEntity.setProcessStatus(YesNoEnum.NO.getValue());
errorEntity.setCreateTime(new Date()); errorEntity.setCreateTime(new Date());
errorEntity.setCreateUserId(context.getUser().getId()); errorEntity.setCreateUserId(context.getUser().getId());
...@@ -257,7 +259,7 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract { ...@@ -257,7 +259,7 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract {
//判断上班 //判断上班
if (GoWorkResultEnum.正常.getValue() != goWorkResult) { if (GoWorkResultEnum.正常.getValue() != goWorkResult) {
Date goWorkDate = attendanceClassDetailEntity.getGoWorkDate(); Date goWorkDate = attendanceClassDetailEntity.getGoWorkDate();
errorEntity.setGoOffDateTime(goWorkDate); errorEntity.setGoOffDateTime(DateUtil.parseDateTime(dateStr + " " + DateUtil.formatTime(goWorkDate)).toJdkDate());
if (!ObjectUtils.isEmpty(recordDetailEntity.getGoWorkDate())) { if (!ObjectUtils.isEmpty(recordDetailEntity.getGoWorkDate())) {
errorEntity.setErrorDateTime(recordDetailEntity.getGoWorkDate()); errorEntity.setErrorDateTime(recordDetailEntity.getGoWorkDate());
errorEntity.setActualAttendanceDateTime(recordDetailEntity.getGoWorkDate()); errorEntity.setActualAttendanceDateTime(recordDetailEntity.getGoWorkDate());
...@@ -280,7 +282,7 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract { ...@@ -280,7 +282,7 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract {
//判断下班 //判断下班
if (OffWorkResultEnum.正常.getValue() != offWorkResult) { if (OffWorkResultEnum.正常.getValue() != offWorkResult) {
Date offWorkDate = attendanceClassDetailEntity.getOffWorkDate(); Date offWorkDate = attendanceClassDetailEntity.getOffWorkDate();
errorEntity.setGoOffDateTime(offWorkDate); errorEntity.setGoOffDateTime(DateUtil.parseDateTime(dateStr + " " + DateUtil.formatTime(offWorkDate)).toJdkDate());
if (!ObjectUtils.isEmpty(recordDetailEntity.getGoWorkDate())) { if (!ObjectUtils.isEmpty(recordDetailEntity.getGoWorkDate())) {
errorEntity.setErrorDateTime(recordDetailEntity.getGoWorkDate()); errorEntity.setErrorDateTime(recordDetailEntity.getGoWorkDate());
errorEntity.setActualAttendanceDateTime(recordDetailEntity.getGoWorkDate()); errorEntity.setActualAttendanceDateTime(recordDetailEntity.getGoWorkDate());
...@@ -296,13 +298,26 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract { ...@@ -296,13 +298,26 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract {
if (OffWorkResultEnum.迟到.getValue() == recordDetailEntity.getOffWorkResult()) { if (OffWorkResultEnum.迟到.getValue() == recordDetailEntity.getOffWorkResult()) {
errorEntity.setErrorStatus(ErrorStatusEnum.迟到.getValue()); errorEntity.setErrorStatus(ErrorStatusEnum.迟到.getValue());
} }
errorEntity.setActualAttendanceDateTime(attendanceRecordEntity.getAttendanceDate());
errorEntityList.add(errorEntity); errorEntityList.add(errorEntity);
} }
} }
if (!ObjectUtils.isEmpty(errorEntityList)) { if (!ObjectUtils.isEmpty(errorEntityList)) {
errorService.save(errorEntityList, context); for (AttendanceRecordErrorEntity errorEntity : errorEntityList) {
//查看是否存在相同的异常记录,如果存在 则不添加
AttendanceRecordErrorQuery errorQuery = new AttendanceRecordErrorQuery();
errorQuery.setShiftsId(errorEntity.getShiftsId());
errorQuery.setGoOffDateTime(errorEntity.getErrorDateTime());
errorQuery.setStaffId(errorEntity.getStaffId());
int count = errorService.count(errorQuery, context);
if (count == 0) {
errorService.save(errorEntity, context);
} else {
log.info("已经存在相同的异常记录,不做保存!");
}
}
} }
} }
} }
...@@ -146,8 +146,8 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle ...@@ -146,8 +146,8 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle
attendanceExportRecordEntity.setDeptName(deptEntity==null?"":deptEntity.getDeptName()); attendanceExportRecordEntity.setDeptName(deptEntity==null?"":deptEntity.getDeptName());
} }
if(!ObjectUtils.isEmpty(query.getShiftsId())){ if(!ObjectUtils.isEmpty(query.getClassId())){
AttendanceClassEntity attendanceClassEntity = classService.get(query.getShiftsId(), context); AttendanceClassEntity attendanceClassEntity = classService.get(query.getClassId(), context);
attendanceExportRecordEntity.setClassName(attendanceClassEntity==null?"":attendanceClassEntity.getClassName()); attendanceExportRecordEntity.setClassName(attendanceClassEntity==null?"":attendanceClassEntity.getClassName());
} }
attendanceExportRecordEntity.setCreateUserId(context.getUser().getId()); attendanceExportRecordEntity.setCreateUserId(context.getUser().getId());
...@@ -161,7 +161,7 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle ...@@ -161,7 +161,7 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle
@Override @Override
protected void doListBefore(AttendanceRecordEntity query, Map<String, Object> model, Context context) throws AppException { protected void doListBefore(AttendanceRecordEntity query, Map<String, Object> model, Context context) throws AppException {
if (query.getClassId() != null) { if (query.getClassId() != null) {
query.setShiftsId(query.getClassId()); query.setClassId(query.getClassId());
} }
if (query.getGroupId() != null) { if (query.getGroupId() != null) {
query.setAttendanceGroupId(query.getGroupId()); query.setAttendanceGroupId(query.getGroupId());
......
package com.mortals.xhx.module.feedback.web; package com.mortals.xhx.module.feedback.web;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.OrderCol;
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 org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -46,5 +48,8 @@ public class FeedbackFileController extends BaseCRUDJsonBodyMappingController<Fe ...@@ -46,5 +48,8 @@ public class FeedbackFileController extends BaseCRUDJsonBodyMappingController<Fe
super.init(model, context); super.init(model, context);
} }
@Override
protected void doListBefore(FeedbackFileEntity query, Map<String, Object> model, Context context) throws AppException {
query.setOrderColList(Arrays.asList(new OrderCol("createTime")));
}
} }
\ No newline at end of file
...@@ -5,6 +5,8 @@ import java.util.List; ...@@ -5,6 +5,8 @@ import java.util.List;
import java.util.ArrayList; import java.util.ArrayList;
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.annotation.desensitization.IdCardDesensitize;
import com.mortals.framework.annotation.desensitization.MobileDesensitize;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.staff.model.vo.StaffVo; import com.mortals.xhx.module.staff.model.vo.StaffVo;
import lombok.Data; import lombok.Data;
...@@ -40,11 +42,13 @@ public class StaffEntity extends StaffVo { ...@@ -40,11 +42,13 @@ public class StaffEntity extends StaffVo {
* 联系电话 * 联系电话
*/ */
@Excel(name = "联系电话") @Excel(name = "联系电话")
@MobileDesensitize
private String phoneNumber; private String phoneNumber;
/** /**
* 身份证号码 * 身份证号码
*/ */
@Excel(name = "身份证号码") @Excel(name = "身份证号码")
@IdCardDesensitize
private String idCard; private String idCard;
/** /**
* 工号 * 工号
......
package com.mortals.xhx.module.staff.model.vo; package com.mortals.xhx.module.staff.model.vo;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.annotation.desensitization.IdCardDesensitize;
import com.mortals.framework.annotation.desensitization.MobileDesensitize;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
import lombok.Data; import lombok.Data;
...@@ -12,6 +15,17 @@ import java.util.List; ...@@ -12,6 +15,17 @@ import java.util.List;
@Data @Data
public class StaffVo extends BaseEntityLong { public class StaffVo extends BaseEntityLong {
/**
* 联系电话
*/
@MobileDesensitize
private String phoneNumber;
/**
* 身份证号码
*/
@IdCardDesensitize
private String idCard;
private List <Long> idList; private List <Long> idList;
private List<HolidayListVo> holidayLists; private List<HolidayListVo> holidayLists;
......
...@@ -821,3 +821,34 @@ ALTER TABLE mortals_xhx_check_other_record ADD COLUMN `auditStatus` tinyint(1) ...@@ -821,3 +821,34 @@ ALTER TABLE mortals_xhx_check_other_record ADD COLUMN `auditStatus` tinyint(1)
ALTER TABLE mortals_xhx_perform_attend_appeal ADD COLUMN `windowNum` varchar(255) DEFAULT '' COMMENT '窗口编号'; ALTER TABLE mortals_xhx_perform_attend_appeal ADD COLUMN `windowNum` varchar(255) DEFAULT '' COMMENT '窗口编号';
-- ----------------------------
-- 考勤打卡记录信息表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_attendance_record`;
CREATE TABLE mortals_xhx_attendance_record(
`id` bigint(20) AUTO_INCREMENT COMMENT '序号,主键,自增长',
`staffId` bigint(20) COMMENT '员工ID',
`staffName` varchar(64) NOT NULL COMMENT '员工姓名',
`workNum` varchar(128) COMMENT '工号',
`deptId` bigint(20) COMMENT '所属部门',
`deptName` varchar(128) COMMENT '所属部门名称',
`positionId` bigint(20) COMMENT '职位ID',
`positionName` varchar(128) COMMENT '职位名称',
`attendanceGroupId` bigint(20) COMMENT '所属考勤组ID',
`attendanceGroupName` varchar(128) COMMENT '所属考勤组名称',
`attendanceDate` datetime COMMENT '打卡日期',
`remark` varchar(255) COMMENT '备注',
`createUserId` bigint(20) NOT NULL COMMENT '创建用户',
`createTime` datetime NOT NULL COMMENT '创建时间',
`updateUserId` bigint(20) COMMENT '更新用户',
`updateTime` datetime COMMENT '更新时间',
`signInResult` tinyint(2) DEFAULT '0' COMMENT '签到结果(0.否,1.是)',
`signOutResult` tinyint(2) DEFAULT '0' COMMENT '签退结果(0.否,1.是)',
`attendType` varchar(128) DEFAULT '' COMMENT '考勤类型',
`punchResult` tinyint(2) DEFAULT '0' COMMENT '打卡结果(0.否,1.是)',
`classId` bigint(20) COMMENT '班次ID',
`className` varchar(128) COMMENT '班次名称',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='考勤打卡记录信息';
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