Ver código fonte

1.国内模板汇总表修改

main
wangqiang 1 dia atrás
pai
commit
2f65190f3f

+ 11
- 26
zs-manager/src/main/java/com/ruoyi/zhushi/entity/EmployeeAttendance.java Ver arquivo

@@ -2,6 +2,7 @@ package com.ruoyi.zhushi.entity;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public class EmployeeAttendance {
private long userId;
@@ -14,15 +15,13 @@ public class EmployeeAttendance {
private int month;
private List<DayRecord> dayRecords;

private int chidaorenshu = 0;
private int chidaocishu = 0;
private int zaotuirenshu = 0;
private int zaotuicishu = 0;
private java.math.BigDecimal workOverTime;
private java.math.BigDecimal restOverTime;

private BigDecimal exceptionCount;

// <用户名,<年假次数:1,迟到次数:1>>
private Map<String, Map<String,Integer>> summary;
// getters and setters

public long getUserId() {
@@ -97,13 +96,7 @@ public class EmployeeAttendance {
this.dayRecords = dayRecords;
}

public int getChidaorenshu() {
return chidaorenshu;
}

public void setChidaorenshu(int chidaorenshu) {
this.chidaorenshu = chidaorenshu;
}

public int getChidaocishu() {
return chidaocishu;
@@ -113,22 +106,6 @@ public class EmployeeAttendance {
this.chidaocishu = chidaocishu;
}

public int getZaotuirenshu() {
return zaotuirenshu;
}

public void setZaotuirenshu(int zaotuirenshu) {
this.zaotuirenshu = zaotuirenshu;
}

public int getZaotuicishu() {
return zaotuicishu;
}

public void setZaotuicishu(int zaotuicishu) {
this.zaotuicishu = zaotuicishu;
}

public BigDecimal getWorkOverTime() {
return workOverTime;
}
@@ -152,4 +129,12 @@ public class EmployeeAttendance {
public void setExceptionCount(BigDecimal exceptionCount) {
this.exceptionCount = exceptionCount;
}

public Map<String, Map<String, Integer>> getSummary() {
return summary;
}

public void setSummary(Map<String, Map<String, Integer>> summary) {
this.summary = summary;
}
}

+ 41
- 36
zs-manager/src/main/java/com/ruoyi/zhushi/service/impl/DkRecordServiceImpl.java Ver arquivo

@@ -160,14 +160,10 @@ public class DkRecordServiceImpl implements DkRecordService {
inputStream = resource.getInputStream();
}

// 定义迟到人数
int latePersonCount = 0;
// 定义早退人数
int earlyPersonCount = 0;
// 定义迟到次数
int lateCount = 0;
// 定义早退次数
int earlyCount = 0;

//汇总表参数 记录每个用户的 迟到总数和年假总数
Map<String, Map<String,Integer>> summary = new HashMap<>();

Workbook workbook = WorkbookFactory.create(inputStream);
// 遍历所有人员
for (int i = 0; i <= users.size(); i++){
@@ -179,7 +175,7 @@ public class DkRecordServiceImpl implements DkRecordService {
workbook.setSheetName(newSheetIndex, "汇总");
// 获取新创建的Sheet
Sheet newSheet = workbook.getSheetAt(newSheetIndex);
fillTemplateHuiZong(newSheet, latePersonCount, earlyPersonCount, lateCount, earlyCount);
fillTemplateHuiZong(newSheet, summary);
}
}else{
DkAttendanceGroupAndUser user = users.get(i);
@@ -198,21 +194,20 @@ public class DkRecordServiceImpl implements DkRecordService {
if(Constans.GUONEI.equals(dkCheckInRecordDTO.getModelType())){
// 构造导出数据
EmployeeAttendance attendanceData = prepareSampleData(dkCheckInRecordDTO);
//计算总共 迟到 早退次数
//记录每个人的迟到次数
if(attendanceData.getChidaocishu() > 0){
latePersonCount ++;
lateCount = lateCount + attendanceData.getChidaocishu();
}
if(attendanceData.getZaotuicishu() > 0){
earlyPersonCount ++;
earlyCount = earlyCount + attendanceData.getZaotuicishu();
if (summary.containsKey(user.getNickName())) {
Map map = summary.get(user.getNickName());
map.put("lateCount",attendanceData.getChidaocishu());
} else {
Map map = new HashMap();
map.put("lateCount",attendanceData.getChidaocishu());
summary.put(user.getNickName(),map);
}
}
// 填充数据到模板
/* if (attendanceData.getDayRecords().size() == 0){
continue;
}*/

//excel内容构建
fillTemplate(newSheet, attendanceData,dkCheckInRecordDTO.getStrMonth(),user);
fillTemplate(newSheet, attendanceData,dkCheckInRecordDTO.getStrMonth(),user,summary);
}
// 日本模版
if(Constans.RIBEN.equals(dkCheckInRecordDTO.getModelType())){
@@ -325,17 +320,19 @@ public class DkRecordServiceImpl implements DkRecordService {
return clockOut.isBefore(endDateTime);
}
/*--------------------------------------------------国内汇总信息 --------------------------*/
private void fillTemplateHuiZong(Sheet sheet, int latePersonCount, int earlyPersonCount, int lateCount,
int earlyCount) {

setCellValue(sheet, 0, 1, "人数");
setCellValue(sheet, 0, 2, "次数");
setCellValue(sheet, 1, 0, "迟到");
setCellValue(sheet, 2, 0, "早退");
setCellValue(sheet, 1, 1, latePersonCount);
setCellValue(sheet, 1, 2, lateCount);
setCellValue(sheet, 2, 1, earlyPersonCount);
setCellValue(sheet, 2, 2, earlyCount);
private void fillTemplateHuiZong(Sheet sheet, Map<String, Map<String,Integer>> summary) {

setCellValue(sheet, 0, 0, "姓名");
setCellValue(sheet, 0, 1, "年假合计");
setCellValue(sheet, 0, 2, "迟到合计");
int i =1;
for (String key : summary.keySet()) {
Map<String,Integer> value = summary.get(key);
setCellValue(sheet, i, 0, key);
setCellValue(sheet, i, 1, value.get("njCount"));
setCellValue(sheet, i, 2, value.get("lateCount"));
i++;
}

}

@@ -474,7 +471,6 @@ public class DkRecordServiceImpl implements DkRecordService {
}

data.setChidaocishu(lateCount);
data.setZaotuicishu(earlyCount);
data.setWorkOverTime(workOverTime);
data.setRestOverTime(restOverTime);
data.setExceptionCount(exceptionCount);
@@ -482,7 +478,7 @@ public class DkRecordServiceImpl implements DkRecordService {
return data;
}

private void fillTemplate(Sheet sheet, EmployeeAttendance data,String date,DkAttendanceGroupAndUser user) {
private void fillTemplate(Sheet sheet, EmployeeAttendance data,String date,DkAttendanceGroupAndUser user,Map<String, Map<String,Integer>> summary) {
// 1.填充标题区域
setCellValue(sheet, 6, 6, user.getUserName());
setCellValue(sheet, 6, 9, user.getNickName());
@@ -523,8 +519,7 @@ public class DkRecordServiceImpl implements DkRecordService {
QueryWrapper<NjBalanceManageDetail> njWrapper = new QueryWrapper<>();
njWrapper.eq("user_id", user.getUserId());
njWrapper.eq("status","2");
njWrapper.apply("YEAR(create_time) = {0}", Integer.parseInt(date.substring(0,4)));
njWrapper.apply("MONTH(create_time) = {0}",Integer.parseInt(date.substring(5)));
njWrapper.like("apply_dates",date);
List<NjBalanceManageDetail> njList = njBalanceManageDetailMapper.selectList(njWrapper);

boolean isLeave = false;
@@ -570,6 +565,16 @@ public class DkRecordServiceImpl implements DkRecordService {
setCellValue(sheet, 41, 7, formatOvertime(data.getWorkOverTime()==null?0:data.getWorkOverTime().doubleValue()));
setCellValue(sheet, 41, 8, formatOvertime(data.getRestOverTime()==null?0:data.getRestOverTime().doubleValue()));
setCellValue(sheet, 41, 10, njCount);
if (njCount>0) {
if (summary.containsKey(user.getNickName())) {
Map map = summary.get(user.getNickName());
map.put("njCount",njCount);
} else {
Map map = new HashMap();
map.put("njCount",njCount);
summary.put(user.getNickName(),map);
}
}
}

private void fillTemplateCell(Sheet sheet, int rowIndex, DayRecord record) {

Carregando…
Cancelar
Salvar