修改考勤统计逻辑
This commit is contained in:
parent
cf8cb15921
commit
13a447bcdf
@ -151,7 +151,7 @@ public class AssessmentController extends AbstractController {
|
|||||||
private Map<String, Object> listUserSignStatusParams() {
|
private Map<String, Object> listUserSignStatusParams() {
|
||||||
Map<String, Object> params = requestParams();
|
Map<String, Object> params = requestParams();
|
||||||
if (!Objects.isNull(params.get("userType")) && !StringUtils.isBlank(params.get("userType").toString())) {
|
if (!Objects.isNull(params.get("userType")) && !StringUtils.isBlank(params.get("userType").toString())) {
|
||||||
if (StringUtils.equals("4", params.get("userType").toString())) {
|
if (StringUtils.equals("N", params.get("userType").toString())) {
|
||||||
params.put("roleId", BaseService.ROLE_N_PERSON);
|
params.put("roleId", BaseService.ROLE_N_PERSON);
|
||||||
} else {
|
} else {
|
||||||
params.put("communityBossLevel", params.get("userType").toString());
|
params.put("communityBossLevel", params.get("userType").toString());
|
||||||
|
@ -12,6 +12,7 @@ import com.cm.common.result.SuccessResultData;
|
|||||||
import com.cm.common.result.SuccessResultList;
|
import com.cm.common.result.SuccessResultList;
|
||||||
import com.cm.systemcity.pojo.dtos.worknote.WorkNoteDTO;
|
import com.cm.systemcity.pojo.dtos.worknote.WorkNoteDTO;
|
||||||
import com.cm.systemcity.pojo.vos.worknote.WorkNoteVO;
|
import com.cm.systemcity.pojo.vos.worknote.WorkNoteVO;
|
||||||
|
import com.cm.systemcity.service.assessment.IAssessmentService;
|
||||||
import com.cm.systemcity.service.worknote.IWorkNoteService;
|
import com.cm.systemcity.service.worknote.IWorkNoteService;
|
||||||
import io.swagger.annotations.*;
|
import io.swagger.annotations.*;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@ -34,6 +35,8 @@ public class WorkNoteAppController extends AbstractController {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IWorkNoteService workNoteService;
|
private IWorkNoteService workNoteService;
|
||||||
|
@Autowired
|
||||||
|
private IAssessmentService assessmentService;
|
||||||
|
|
||||||
@ApiOperation(value = "新增工作日志", notes = "新增工作日志接口")
|
@ApiOperation(value = "新增工作日志", notes = "新增工作日志接口")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ -116,5 +119,16 @@ public class WorkNoteAppController extends AbstractController {
|
|||||||
Map<String, Object> params = requestParams();
|
Map<String, Object> params = requestParams();
|
||||||
return workNoteService.countWorkNote(params);
|
return workNoteService.countWorkNote(params);
|
||||||
}
|
}
|
||||||
|
@ApiOperation(value = "考勤统计手动调用接口(勿乱用)", notes = "考勤统计手动调用接口(勿乱用)")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "day", value = "日期yyyy-MM-dd", paramType = "query")
|
||||||
|
})
|
||||||
|
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||||
|
@GetMapping(ISystemConstant.APP_RELEASE_SUFFIX + "/savedayassessmentusersignin")
|
||||||
|
public SuccessResult saveDayAssessmentUserSignin2() throws Exception {
|
||||||
|
Map<String, Object> params = requestParams();
|
||||||
|
assessmentService.saveDayAssessmentUserSignin(params.get("day").toString());
|
||||||
|
return new SuccessResult();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -124,7 +124,7 @@ public class AssessmentAreaExcelDTO {
|
|||||||
.append(assessmentUserCount);
|
.append(assessmentUserCount);
|
||||||
sb.append(",\"shouldSignCount\":")
|
sb.append(",\"shouldSignCount\":")
|
||||||
.append("\"").append(shouldSignCount).append("\"");
|
.append("\"").append(shouldSignCount).append("\"");
|
||||||
sb.append(",\"signCount\":")
|
sb.append(",\"signInCount\":")
|
||||||
.append("\"").append(signCount).append("\"");
|
.append("\"").append(signCount).append("\"");
|
||||||
sb.append(",\"unSignCount\":")
|
sb.append(",\"unSignCount\":")
|
||||||
.append("\"").append(unSignCount).append("\"");
|
.append("\"").append(unSignCount).append("\"");
|
||||||
|
@ -24,8 +24,12 @@ public class AssessmentDTO {
|
|||||||
private String positionNames;
|
private String positionNames;
|
||||||
@ApiModelProperty(name = "departmentNames", value = "部门名称列表")
|
@ApiModelProperty(name = "departmentNames", value = "部门名称列表")
|
||||||
private String departmentNames;
|
private String departmentNames;
|
||||||
|
@ApiModelProperty(name = "shouldSigninCount", value = "应签到次数")
|
||||||
|
private Integer shouldSigninCount;
|
||||||
@ApiModelProperty(name = "signinCount", value = "签到次数")
|
@ApiModelProperty(name = "signinCount", value = "签到次数")
|
||||||
private Integer signinCount;
|
private Integer signinCount;
|
||||||
|
@ApiModelProperty(name = "shouldSignoutCount", value = "应签退次数")
|
||||||
|
private Integer shouldSignoutCount;
|
||||||
@ApiModelProperty(name = "signoutCount", value = "签退次数")
|
@ApiModelProperty(name = "signoutCount", value = "签退次数")
|
||||||
private Integer signoutCount;
|
private Integer signoutCount;
|
||||||
@ApiModelProperty(name = "unSigninCount", value = "未签到次数")
|
@ApiModelProperty(name = "unSigninCount", value = "未签到次数")
|
||||||
@ -177,6 +181,22 @@ public class AssessmentDTO {
|
|||||||
this.deductionPercent = deductionPercent;
|
this.deductionPercent = deductionPercent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Integer getShouldSigninCount() {
|
||||||
|
return shouldSigninCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setShouldSigninCount(Integer shouldSigninCount) {
|
||||||
|
this.shouldSigninCount = shouldSigninCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getShouldSignoutCount() {
|
||||||
|
return shouldSignoutCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setShouldSignoutCount(Integer shouldSignoutCount) {
|
||||||
|
this.shouldSignoutCount = shouldSignoutCount;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
final StringBuilder sb = new StringBuilder("{");
|
final StringBuilder sb = new StringBuilder("{");
|
||||||
@ -188,8 +208,12 @@ public class AssessmentDTO {
|
|||||||
.append(positionNames).append('\"');
|
.append(positionNames).append('\"');
|
||||||
sb.append(",\"departmentNames\":\"")
|
sb.append(",\"departmentNames\":\"")
|
||||||
.append(departmentNames).append('\"');
|
.append(departmentNames).append('\"');
|
||||||
|
sb.append(",\"shouldSigninCount\":")
|
||||||
|
.append(shouldSigninCount);
|
||||||
sb.append(",\"signinCount\":")
|
sb.append(",\"signinCount\":")
|
||||||
.append(signinCount);
|
.append(signinCount);
|
||||||
|
sb.append(",\"shouldSignoutCount\":")
|
||||||
|
.append(shouldSignoutCount);
|
||||||
sb.append(",\"signoutCount\":")
|
sb.append(",\"signoutCount\":")
|
||||||
.append(signoutCount);
|
.append(signoutCount);
|
||||||
sb.append(",\"unSigninCount\":")
|
sb.append(",\"unSigninCount\":")
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package com.cm.systemcity.pojo.dtos.assessment;
|
package com.cm.systemcity.pojo.dtos.assessment;
|
||||||
|
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* When you feel like quitting. Think about why you started
|
* When you feel like quitting. Think about why you started
|
||||||
@ -12,6 +14,8 @@ import com.alibaba.excel.annotation.ExcelProperty;
|
|||||||
* @Date: 2019/10/30 8:47 下午
|
* @Date: 2019/10/30 8:47 下午
|
||||||
* @Version: 1.0
|
* @Version: 1.0
|
||||||
**/
|
**/
|
||||||
|
@Data
|
||||||
|
@ToString
|
||||||
public class AssessmentExcelDTO {
|
public class AssessmentExcelDTO {
|
||||||
|
|
||||||
@ExcelProperty(value = "人员名称")
|
@ExcelProperty(value = "人员名称")
|
||||||
@ -20,10 +24,14 @@ public class AssessmentExcelDTO {
|
|||||||
private String positionNames;
|
private String positionNames;
|
||||||
@ExcelProperty(value = "部门名称列表")
|
@ExcelProperty(value = "部门名称列表")
|
||||||
private String departmentNames;
|
private String departmentNames;
|
||||||
|
@ExcelProperty(value = "应签到次数")
|
||||||
|
private String shouldSignInCount;
|
||||||
@ExcelProperty(value = "签到次数")
|
@ExcelProperty(value = "签到次数")
|
||||||
private String signCount;
|
private String signInCount;
|
||||||
@ExcelProperty(value = "漏签次数")
|
@ExcelProperty(value = "应签退次数")
|
||||||
private String unSignCount;
|
private String shouldSignOutCount;
|
||||||
|
@ExcelProperty(value = "签退次数")
|
||||||
|
private String signOutCount;
|
||||||
@ExcelProperty(value = "请假天数")
|
@ExcelProperty(value = "请假天数")
|
||||||
private String leaveTimeSum;
|
private String leaveTimeSum;
|
||||||
@ExcelProperty(value = "旷工次数")
|
@ExcelProperty(value = "旷工次数")
|
||||||
@ -37,120 +45,4 @@ public class AssessmentExcelDTO {
|
|||||||
@ExcelProperty(value = "绩效扣除比例(%)")
|
@ExcelProperty(value = "绩效扣除比例(%)")
|
||||||
private String deductionPercent;
|
private String deductionPercent;
|
||||||
|
|
||||||
public String getUserName() {
|
|
||||||
return userName == null ? "" : userName.trim();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUserName(String userName) {
|
|
||||||
this.userName = userName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPositionNames() {
|
|
||||||
return positionNames == null ? "" : positionNames.trim();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPositionNames(String positionNames) {
|
|
||||||
this.positionNames = positionNames;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDepartmentNames() {
|
|
||||||
return departmentNames == null ? "" : departmentNames;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDepartmentNames(String departmentNames) {
|
|
||||||
this.departmentNames = departmentNames;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSignCount() {
|
|
||||||
return signCount == null ? "" : signCount.trim();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSignCount(String signCount) {
|
|
||||||
this.signCount = signCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUnSignCount() {
|
|
||||||
return unSignCount == null ? "" : unSignCount.trim();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUnSignCount(String unSignCount) {
|
|
||||||
this.unSignCount = unSignCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLeaveTimeSum() {
|
|
||||||
return leaveTimeSum == null ? "" : leaveTimeSum;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLeaveTimeSum(String leaveTimeSum) {
|
|
||||||
this.leaveTimeSum = leaveTimeSum;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAbsenteeismCount() {
|
|
||||||
return absenteeismCount == null ? "" : absenteeismCount.trim();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAbsenteeismCount(String absenteeismCount) {
|
|
||||||
this.absenteeismCount = absenteeismCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getOutOfContactOneHourCount() {
|
|
||||||
return outOfContactOneHourCount == null ? "" : outOfContactOneHourCount.trim();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOutOfContactOneHourCount(String outOfContactOneHourCount) {
|
|
||||||
this.outOfContactOneHourCount = outOfContactOneHourCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getContactHour() {
|
|
||||||
return contactHour == null ? "" : contactHour.trim();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setContactHour(String contactHour) {
|
|
||||||
this.contactHour = contactHour;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getWorkDistance() {
|
|
||||||
return workDistance == null ? "" : workDistance.trim();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWorkDistance(String workDistance) {
|
|
||||||
this.workDistance = workDistance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDeductionPercent() {
|
|
||||||
return deductionPercent == null ? "" : deductionPercent.trim();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDeductionPercent(String deductionPercent) {
|
|
||||||
this.deductionPercent = deductionPercent;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
final StringBuilder sb = new StringBuilder("{");
|
|
||||||
sb.append("\"userName\":\"")
|
|
||||||
.append(userName).append('\"');
|
|
||||||
sb.append(",\"positionNames\":\"")
|
|
||||||
.append(positionNames).append('\"');
|
|
||||||
sb.append(",\"departmentNames\":\"")
|
|
||||||
.append(departmentNames).append('\"');
|
|
||||||
sb.append(",\"signCount\":\"")
|
|
||||||
.append(signCount).append('\"');
|
|
||||||
sb.append(",\"unSignCount\":\"")
|
|
||||||
.append(unSignCount).append('\"');
|
|
||||||
sb.append(",\"leaveTimeSum\":\"")
|
|
||||||
.append(leaveTimeSum).append('\"');
|
|
||||||
sb.append(",\"absenteeismCount\":\"")
|
|
||||||
.append(absenteeismCount).append('\"');
|
|
||||||
sb.append(",\"outOfContactOneHourCount\":\"")
|
|
||||||
.append(outOfContactOneHourCount).append('\"');
|
|
||||||
sb.append(",\"contactHour\":\"")
|
|
||||||
.append(contactHour).append('\"');
|
|
||||||
sb.append(",\"workDistance\":\"")
|
|
||||||
.append(workDistance).append('\"');
|
|
||||||
sb.append(",\"deductionPercent\":\"")
|
|
||||||
.append(deductionPercent).append('\"');
|
|
||||||
sb.append('}');
|
|
||||||
return sb.toString();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -124,7 +124,7 @@ public class UserSignDayStatusExcelDTO {
|
|||||||
.append(positionNames).append('\"');
|
.append(positionNames).append('\"');
|
||||||
sb.append(",\"departmentNames\":\"")
|
sb.append(",\"departmentNames\":\"")
|
||||||
.append(departmentNames).append('\"');
|
.append(departmentNames).append('\"');
|
||||||
sb.append(",\"signCount\":\"")
|
sb.append(",\"signInCount\":\"")
|
||||||
.append(signCount).append('\"');
|
.append(signCount).append('\"');
|
||||||
sb.append(",\"leaveTimeSum\":\"")
|
sb.append(",\"leaveTimeSum\":\"")
|
||||||
.append(leaveTimeSum).append('\"');
|
.append(leaveTimeSum).append('\"');
|
||||||
|
@ -6,7 +6,6 @@ import com.alibaba.fastjson.JSONObject;
|
|||||||
import com.cm.common.exception.AccessTokenException;
|
import com.cm.common.exception.AccessTokenException;
|
||||||
import com.cm.common.exception.SearchException;
|
import com.cm.common.exception.SearchException;
|
||||||
import com.cm.common.plugin.oauth.service.department.IDepartmentService;
|
import com.cm.common.plugin.oauth.service.department.IDepartmentService;
|
||||||
import com.cm.common.plugin.oauth.service.menu.IMenuService;
|
|
||||||
import com.cm.common.plugin.oauth.service.user.IUserService;
|
import com.cm.common.plugin.oauth.service.user.IUserService;
|
||||||
import com.cm.common.plugin.oauth.token.ClientTokenManager;
|
import com.cm.common.plugin.oauth.token.ClientTokenManager;
|
||||||
import com.cm.common.plugin.pojo.bos.ClientTokenBO;
|
import com.cm.common.plugin.pojo.bos.ClientTokenBO;
|
||||||
@ -41,7 +40,6 @@ import com.cm.systemcity.service.usersignin.IUserSigninService;
|
|||||||
import com.cm.systemcity.service.usersignout.IUserSignoutService;
|
import com.cm.systemcity.service.usersignout.IUserSignoutService;
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.joda.time.DateTime;
|
import org.joda.time.DateTime;
|
||||||
import org.joda.time.Days;
|
import org.joda.time.Days;
|
||||||
@ -133,8 +131,8 @@ public class AssessmentServiceImpl extends BaseService implements IAssessmentSer
|
|||||||
params.clear();
|
params.clear();
|
||||||
params.put("orderBy", "user");
|
params.put("orderBy", "user");
|
||||||
params.put("userIds", userIds);
|
params.put("userIds", userIds);
|
||||||
params.put("startTime", String.format("%s %s", showDay, config.get("amStartPunchTime").toString()));
|
params.put("startTime", String.format("%s %s", showDay, "09:00:00"));
|
||||||
params.put("endTime", String.format("%s %s", showDay, config.get("pmEndPunchTime").toString()));
|
params.put("endTime", String.format("%s %s", showDay, "18:00:00"));
|
||||||
params.put("isOverstep", 0);
|
params.put("isOverstep", 0);
|
||||||
if (!StringUtils.equals(showDay, DateUtil.getDay())) {
|
if (!StringUtils.equals(showDay, DateUtil.getDay())) {
|
||||||
params.put("today", "today");
|
params.put("today", "today");
|
||||||
@ -205,10 +203,10 @@ public class AssessmentServiceImpl extends BaseService implements IAssessmentSer
|
|||||||
// N员
|
// N员
|
||||||
shouldSignInCount = 1;
|
shouldSignInCount = 1;
|
||||||
shouldSignOutCount = 1;
|
shouldSignOutCount = 1;
|
||||||
} else if (userSignDayStatusDTO.getCommunityBossLevel() != null && userSignDayStatusDTO.getCommunityBossLevel() == 3) {
|
} else if (userSignDayStatusDTO.getCommunityBossLevel() != null && userSignDayStatusDTO.getCommunityBossLevel() == 4) {
|
||||||
// 3级网格长
|
// 3级网格长
|
||||||
shouldSignInCount = 2;
|
shouldSignInCount = 1;
|
||||||
shouldSignOutCount = 2;
|
shouldSignOutCount = 1;
|
||||||
}
|
}
|
||||||
// 设置应签到次数
|
// 设置应签到次数
|
||||||
userSignDayStatusDTO.setShouldSigninCount(shouldSignInCount);
|
userSignDayStatusDTO.setShouldSigninCount(shouldSignInCount);
|
||||||
@ -233,13 +231,16 @@ public class AssessmentServiceImpl extends BaseService implements IAssessmentSer
|
|||||||
int unSignCount = unSigninCount + unSignoutCount;
|
int unSignCount = unSigninCount + unSignoutCount;
|
||||||
double deductionPercent = 0D;
|
double deductionPercent = 0D;
|
||||||
double leaveDayCountDeductionPercent = dayLeaveCount * 2.4D;
|
double leaveDayCountDeductionPercent = dayLeaveCount * 2.4D;
|
||||||
if (shouldSignInCount == 1) {
|
|
||||||
// N员签到、签退各1次,每次2.4,不包括请假
|
|
||||||
deductionPercent = unSignCount * 2.4D - leaveDayCountDeductionPercent;
|
deductionPercent = unSignCount * 2.4D - leaveDayCountDeductionPercent;
|
||||||
} else if (shouldSignInCount == 2) {
|
|
||||||
// 网格长员签到、签退各2次,每次1.2,不包括请假
|
// if (shouldSignInCount == 1) {
|
||||||
deductionPercent = unSignCount * 1.2D - leaveDayCountDeductionPercent;
|
// // N员签到、签退各1次,每次2.4,不包括请假
|
||||||
}
|
// deductionPercent = unSignCount * 2.4D - leaveDayCountDeductionPercent;
|
||||||
|
// } else if (shouldSignInCount == 2) {
|
||||||
|
// // 网格长员签到、签退各2次,每次1.2,不包括请假
|
||||||
|
// deductionPercent = unSignCount * 1.2D - leaveDayCountDeductionPercent;
|
||||||
|
// }
|
||||||
userSignDayStatusDTO.setDeductionPercent(deductionPercent < 0 ? 0 : deductionPercent);
|
userSignDayStatusDTO.setDeductionPercent(deductionPercent < 0 ? 0 : deductionPercent);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -332,8 +333,10 @@ public class AssessmentServiceImpl extends BaseService implements IAssessmentSer
|
|||||||
assessmentExcelDTO.setUserName(assessmentDTO.getUserName());
|
assessmentExcelDTO.setUserName(assessmentDTO.getUserName());
|
||||||
assessmentExcelDTO.setPositionNames(assessmentDTO.getPositionNames());
|
assessmentExcelDTO.setPositionNames(assessmentDTO.getPositionNames());
|
||||||
assessmentExcelDTO.setDepartmentNames(assessmentDTO.getDepartmentNames());
|
assessmentExcelDTO.setDepartmentNames(assessmentDTO.getDepartmentNames());
|
||||||
assessmentExcelDTO.setSignCount(String.valueOf(assessmentDTO.getSigninCount() + assessmentDTO.getSignoutCount()));
|
assessmentExcelDTO.setShouldSignInCount(String.valueOf(assessmentDTO.getShouldSigninCount()));
|
||||||
assessmentExcelDTO.setUnSignCount(String.valueOf(assessmentDTO.getUnSigninCount() + assessmentDTO.getUnSignoutCount()));
|
assessmentExcelDTO.setSignInCount(String.valueOf(assessmentDTO.getSigninCount()));
|
||||||
|
assessmentExcelDTO.setShouldSignOutCount(String.valueOf(assessmentDTO.getShouldSignoutCount()));
|
||||||
|
assessmentExcelDTO.setSignOutCount(String.valueOf(assessmentDTO.getSignoutCount()));
|
||||||
assessmentExcelDTO.setLeaveTimeSum(assessmentDTO.getLeaveTimeSum().toString());
|
assessmentExcelDTO.setLeaveTimeSum(assessmentDTO.getLeaveTimeSum().toString());
|
||||||
assessmentExcelDTO.setAbsenteeismCount(assessmentDTO.getAbsenteeismCount().toString());
|
assessmentExcelDTO.setAbsenteeismCount(assessmentDTO.getAbsenteeismCount().toString());
|
||||||
assessmentExcelDTO.setOutOfContactOneHourCount(assessmentDTO.getOutOfContactOneHourCount().toString());
|
assessmentExcelDTO.setOutOfContactOneHourCount(assessmentDTO.getOutOfContactOneHourCount().toString());
|
||||||
@ -342,7 +345,7 @@ public class AssessmentServiceImpl extends BaseService implements IAssessmentSer
|
|||||||
assessmentExcelDTO.setDeductionPercent(assessmentDTO.getDeductionPercent().toString());
|
assessmentExcelDTO.setDeductionPercent(assessmentDTO.getDeductionPercent().toString());
|
||||||
assessmentExcelDTOs.add(assessmentExcelDTO);
|
assessmentExcelDTOs.add(assessmentExcelDTO);
|
||||||
}
|
}
|
||||||
String[] excelHeaderNames = {"人员名称", "职位", "部门", "签到次数", "漏签次数", "请假天数", "旷工次数", "失联1小时情况(次)", "工作时长(小时)", "工作里程(KM)", "绩效扣除比例(%)"};
|
String[] excelHeaderNames = {"人员名称", "职位", "部门", "应签到次数", "签到次数", "应签退次数", "签退次数", "请假天数", "旷工次数", "失联1小时情况(次)", "工作时长(小时)", "工作里程(KM)", "绩效扣除比例(%)"};
|
||||||
List<List<String>> excelHeaders = simpleExcelHeader(excelHeaderNames);
|
List<List<String>> excelHeaders = simpleExcelHeader(excelHeaderNames);
|
||||||
EasyExcel.write(response.getOutputStream()).sheet("历史考勤统计").head(excelHeaders).doWrite(assessmentExcelDTOs);
|
EasyExcel.write(response.getOutputStream()).sheet("历史考勤统计").head(excelHeaders).doWrite(assessmentExcelDTOs);
|
||||||
}
|
}
|
||||||
|
@ -246,8 +246,8 @@ public class UserLocationServiceImpl extends BaseService implements IUserLocatio
|
|||||||
today = DateUtil.getDay();
|
today = DateUtil.getDay();
|
||||||
}
|
}
|
||||||
Map<String, Object> config = CacheManager.getInstance().getConfig();
|
Map<String, Object> config = CacheManager.getInstance().getConfig();
|
||||||
String startTime = Objects.isNull(params.get("startTime")) ? String.format("%s %s", today, config.get(startTimeKey).toString()) : params.get("startTime").toString();
|
String startTime = Objects.isNull(params.get("startTime")) ? String.format("%s %s", today, "09:00:00") : params.get("startTime").toString();
|
||||||
String endTime = Objects.isNull(params.get("endTime")) ? String.format("%s %s", today, config.get(endTimeKey).toString()) : params.get("endTime").toString();
|
String endTime = Objects.isNull(params.get("endTime")) ? String.format("%s %s", today, "18:00:00") : params.get("endTime").toString();
|
||||||
if (!isStartAndEndTimeParams(startTime, endTime, params)) {
|
if (!isStartAndEndTimeParams(startTime, endTime, params)) {
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
@ -40,8 +40,10 @@
|
|||||||
<result property="userName" column="user_name"/>
|
<result property="userName" column="user_name"/>
|
||||||
<result property="positionNames" column="position_names"/>
|
<result property="positionNames" column="position_names"/>
|
||||||
<result property="departmentNames" column="department_names"/>
|
<result property="departmentNames" column="department_names"/>
|
||||||
|
<result property="shouldSigninCount" column="should_signin_count"/>
|
||||||
<result property="signinCount" column="signin_count"/>
|
<result property="signinCount" column="signin_count"/>
|
||||||
<result property="unSigninCount" column="unsignin_count"/>
|
<result property="unSigninCount" column="unsignin_count"/>
|
||||||
|
<result property="shouldSignoutCount" column="should_signout_count"/>
|
||||||
<result property="signoutCount" column="signout_count"/>
|
<result property="signoutCount" column="signout_count"/>
|
||||||
<result property="unSignoutCount" column="unsignout_count"/>
|
<result property="unSignoutCount" column="unsignout_count"/>
|
||||||
<result property="amDayLeaveCount" column="am_day_leave_count"/>
|
<result property="amDayLeaveCount" column="am_day_leave_count"/>
|
||||||
@ -158,10 +160,7 @@
|
|||||||
t1.*
|
t1.*
|
||||||
FROM
|
FROM
|
||||||
city_assessment t1
|
city_assessment t1
|
||||||
INNER JOIN
|
INNER JOIN sys_user t2 ON t1.user_id = t2.user_id
|
||||||
sys_user t2
|
|
||||||
ON
|
|
||||||
t1.user_id = t2.user_id
|
|
||||||
WHERE
|
WHERE
|
||||||
t2.is_delete = 0
|
t2.is_delete = 0
|
||||||
<if test="showDay != null and showDay != ''">
|
<if test="showDay != null and showDay != ''">
|
||||||
@ -201,8 +200,10 @@
|
|||||||
t1.user_name,
|
t1.user_name,
|
||||||
t1.position_names,
|
t1.position_names,
|
||||||
t1.department_names,
|
t1.department_names,
|
||||||
|
SUM(t1.should_signin_count) should_signin_count,
|
||||||
SUM(t1.signin_count) signin_count,
|
SUM(t1.signin_count) signin_count,
|
||||||
SUM(t1.unsignin_count) unsignin_count,
|
SUM(t1.unsignin_count) unsignin_count,
|
||||||
|
SUM(t1.should_signout_count) should_signout_count,
|
||||||
SUM(t1.signout_count) signout_count,
|
SUM(t1.signout_count) signout_count,
|
||||||
SUM(t1.unsignout_count) unsignout_count,
|
SUM(t1.unsignout_count) unsignout_count,
|
||||||
SUM(t1.am_day_leave_count) am_day_leave_count,
|
SUM(t1.am_day_leave_count) am_day_leave_count,
|
||||||
@ -245,10 +246,6 @@
|
|||||||
AND
|
AND
|
||||||
t1.community_boss_level = #{communityBossLevel}
|
t1.community_boss_level = #{communityBossLevel}
|
||||||
</if>
|
</if>
|
||||||
<if test="communityBossLevel != null and communityBossLevel != ''">
|
|
||||||
AND
|
|
||||||
t1.community_boss_level = #{communityBossLevel}
|
|
||||||
</if>
|
|
||||||
<if test="roleId != null and roleId != ''">
|
<if test="roleId != null and roleId != ''">
|
||||||
AND
|
AND
|
||||||
t1.role_ids LIKE CONCAT('%', #{roleId}, '%')
|
t1.role_ids LIKE CONCAT('%', #{roleId}, '%')
|
||||||
|
@ -610,8 +610,7 @@
|
|||||||
GROUP_CONCAT( t9.role_id ) role_ids
|
GROUP_CONCAT( t9.role_id ) role_ids
|
||||||
FROM
|
FROM
|
||||||
sys_user t1
|
sys_user t1
|
||||||
LEFT JOIN
|
LEFT JOIN city_community_boss t2 ON t1.user_id = t2.community_boss_user_id
|
||||||
city_community_boss t2 ON t1.user_id = t2.community_boss_id
|
|
||||||
AND
|
AND
|
||||||
t2.is_delete = 0
|
t2.is_delete = 0
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
|
@ -47,10 +47,11 @@
|
|||||||
<div class="layui-inline" style="width: 150px;">
|
<div class="layui-inline" style="width: 150px;">
|
||||||
<select id="userType" name="userType">
|
<select id="userType" name="userType">
|
||||||
<option value="">人员类别</option>
|
<option value="">人员类别</option>
|
||||||
<option value="1">一级网格长</option>
|
<option value="1">二级网格长</option>
|
||||||
<option value="2">二级网格长</option>
|
<option value="2">三级网格长</option>
|
||||||
<option value="3">三级网格长</option>
|
<option value="3">四级网格长</option>
|
||||||
<option value="4">专管员</option>
|
<option value="4">五级网格员</option>
|
||||||
|
<option value="N">专管员</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="layui-inline">
|
<div class="layui-inline">
|
||||||
|
@ -47,10 +47,11 @@
|
|||||||
<div class="layui-inline" style="width: 150px;">
|
<div class="layui-inline" style="width: 150px;">
|
||||||
<select id="userType" name="userType">
|
<select id="userType" name="userType">
|
||||||
<option value="">人员类别</option>
|
<option value="">人员类别</option>
|
||||||
<option value="1">一级网格长</option>
|
<option value="1">二级网格长</option>
|
||||||
<option value="2">二级网格长</option>
|
<option value="2">三级网格长</option>
|
||||||
<option value="3">三级网格长</option>
|
<option value="3">四级网格长</option>
|
||||||
<option value="4">专管员</option>
|
<option value="4">五级网格员</option>
|
||||||
|
<option value="N">专管员</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="layui-inline">
|
<div class="layui-inline">
|
||||||
@ -151,7 +152,7 @@
|
|||||||
return rowData;
|
return rowData;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{field: 'signoutCount', width: 120, title: '未签到次数', align:'center',
|
{field: 'signoutCount', width: 120, title: '签退次数', align:'center',
|
||||||
templet: function(row) {
|
templet: function(row) {
|
||||||
var rowData = row[this.field];
|
var rowData = row[this.field];
|
||||||
if(typeof(rowData) === 'undefined' || rowData == null || rowData === '') {
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData === '') {
|
||||||
|
Loading…
Reference in New Issue
Block a user