|
|
@ -13,6 +13,7 @@ import org.apache.commons.lang3.StringUtils;
|
|
|
|
import weaver.conn.RecordSet;
|
|
|
|
import weaver.conn.RecordSet;
|
|
|
|
import weaver.hrm.company.DepartmentComInfo;
|
|
|
|
import weaver.hrm.company.DepartmentComInfo;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.time.LocalDate;
|
|
|
|
import java.time.Year;
|
|
|
|
import java.time.Year;
|
|
|
|
import java.time.YearMonth;
|
|
|
|
import java.time.YearMonth;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.ArrayList;
|
|
|
@ -31,7 +32,7 @@ public class ReportCollectServiceImpl extends Service implements ReportCollectSe
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public TendencyReportVO getPersonTendency(TendencyReportParam tendencyReportParam) {
|
|
|
|
public TendencyReportVO getPersonTendency(TendencyReportParam tendencyReportParam) {
|
|
|
|
|
|
|
|
|
|
|
|
List<ReportColumns> columns = getReportColumns();
|
|
|
|
List<ReportColumns> columns = getPTReportColumns();
|
|
|
|
List<Integer> deptList = new ArrayList<>();
|
|
|
|
List<Integer> deptList = new ArrayList<>();
|
|
|
|
RecordSet rs = new RecordSet();
|
|
|
|
RecordSet rs = new RecordSet();
|
|
|
|
rs.executeQuery("select a.deptid from hrmdepartmentdefined a left join hrmdepartment b on a.deptid =b.id where a.bmcj in (0,1)");
|
|
|
|
rs.executeQuery("select a.deptid from hrmdepartmentdefined a left join hrmdepartment b on a.deptid =b.id where a.bmcj in (0,1)");
|
|
|
@ -59,15 +60,7 @@ public class ReportCollectServiceImpl extends Service implements ReportCollectSe
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
//求和
|
|
|
|
//求和
|
|
|
|
List<Integer> result = countLists.stream()
|
|
|
|
List<Integer> result = summary(countLists);
|
|
|
|
.reduce((a, b) -> {
|
|
|
|
|
|
|
|
List<Integer> sum = new ArrayList<>();
|
|
|
|
|
|
|
|
for (int i = 0; i < a.size(); i++) {
|
|
|
|
|
|
|
|
sum.add(a.get(i) + b.get(i));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return sum;
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
.orElse(new ArrayList<>());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<String> stringList = result.stream()
|
|
|
|
List<String> stringList = result.stream()
|
|
|
|
.map(String::valueOf)
|
|
|
|
.map(String::valueOf)
|
|
|
@ -84,11 +77,74 @@ public class ReportCollectServiceImpl extends Service implements ReportCollectSe
|
|
|
|
.build();
|
|
|
|
.build();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@Override
|
|
|
|
*
|
|
|
|
public TendencyReportVO getOnJobStatistics() {
|
|
|
|
* @param param
|
|
|
|
List<ReportColumns> columns = getOJSReportColumns();
|
|
|
|
* @return
|
|
|
|
List<Integer> deptList = new ArrayList<>();
|
|
|
|
*/
|
|
|
|
RecordSet rs = new RecordSet();
|
|
|
|
|
|
|
|
rs.executeQuery("select a.deptid from hrmdepartmentdefined a left join hrmdepartment b on a.deptid =b.id where a.bmcj in (0,1)");
|
|
|
|
|
|
|
|
while (rs.next()) {
|
|
|
|
|
|
|
|
deptList.add(Util.getIntValue(rs.getString("deptid")));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<ReportChildrenData> datas = new ArrayList<>();
|
|
|
|
|
|
|
|
List<List<Integer>> countLists = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
deptList.forEach(id -> {
|
|
|
|
|
|
|
|
List<Integer> countList = new ArrayList<>();
|
|
|
|
|
|
|
|
ReportChildrenData childrenData = getOnJobChildrenData(id,countList);
|
|
|
|
|
|
|
|
datas.add(childrenData);
|
|
|
|
|
|
|
|
countLists.add(countList);
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//求和
|
|
|
|
|
|
|
|
List<Integer> result = summary(countLists);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<String> stringList = result.stream()
|
|
|
|
|
|
|
|
.map(String::valueOf)
|
|
|
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<String> sums = new ArrayList<>();
|
|
|
|
|
|
|
|
sums.add("/");
|
|
|
|
|
|
|
|
sums.add("全公司");
|
|
|
|
|
|
|
|
sums.addAll(stringList);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
datas.add(ReportChildrenData.builder().data(sums).build());
|
|
|
|
|
|
|
|
return TendencyReportVO.builder()
|
|
|
|
|
|
|
|
.columns(columns)
|
|
|
|
|
|
|
|
.datas(datas)
|
|
|
|
|
|
|
|
.build();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@SneakyThrows
|
|
|
|
|
|
|
|
private ReportChildrenData getOnJobChildrenData(Integer id, List<Integer> countList) {
|
|
|
|
|
|
|
|
RecordSet rs = new RecordSet();
|
|
|
|
|
|
|
|
DepartmentComInfo departmentComInfo = new DepartmentComInfo();
|
|
|
|
|
|
|
|
List<String> data = new ArrayList<>();
|
|
|
|
|
|
|
|
data.add(departmentComInfo.getDepartmentCode(String.valueOf(id)));
|
|
|
|
|
|
|
|
data.add(departmentComInfo.getDepartmentName(String.valueOf(id)));
|
|
|
|
|
|
|
|
ArrayList<String> allSubDepartment = new ArrayList<>();
|
|
|
|
|
|
|
|
departmentComInfo.getAllChildDeptByDepId(allSubDepartment, String.valueOf(id));
|
|
|
|
|
|
|
|
allSubDepartment.add(String.valueOf(id));
|
|
|
|
|
|
|
|
String allId = StringUtils.join(allSubDepartment, ",");
|
|
|
|
|
|
|
|
List<YearMonth> yearMonths = CommonDateUtil.getYearMonths(LocalDate.now());
|
|
|
|
|
|
|
|
StringBuilder st = new StringBuilder();
|
|
|
|
|
|
|
|
st.append("select count(1) as sum from hrmresource where status < 4 and companystartdate <= ? and departmentid in");
|
|
|
|
|
|
|
|
st.append(" (").append(allId).append(")");
|
|
|
|
|
|
|
|
yearMonths.forEach(yearMonth -> {
|
|
|
|
|
|
|
|
String endMonth = CommonDateUtil.getFormatYear(CommonDateUtil.toDateEndOfMonth(yearMonth));
|
|
|
|
|
|
|
|
rs.executeQuery(st.toString(),endMonth);
|
|
|
|
|
|
|
|
if (rs.next()) {
|
|
|
|
|
|
|
|
Integer sum = Util.getIntValue(rs.getString("sum"),0);
|
|
|
|
|
|
|
|
data.add(String.valueOf(sum));
|
|
|
|
|
|
|
|
countList.add(sum);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
return ReportChildrenData.builder().data(data).build();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@SneakyThrows
|
|
|
|
@SneakyThrows
|
|
|
|
private ReportChildrenData getReportChildrenData(TendencyReportParam param, Integer id,List<Integer> countList) {
|
|
|
|
private ReportChildrenData getReportChildrenData(TendencyReportParam param, Integer id,List<Integer> countList) {
|
|
|
|
RecordSet rs = new RecordSet();
|
|
|
|
RecordSet rs = new RecordSet();
|
|
|
@ -128,10 +184,10 @@ public class ReportCollectServiceImpl extends Service implements ReportCollectSe
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 月份
|
|
|
|
* 月份1
|
|
|
|
* @return
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
private List<ReportColumns> getReportColumns() {
|
|
|
|
private List<ReportColumns> getPTReportColumns() {
|
|
|
|
List<ReportColumns> columns = new ArrayList<>();
|
|
|
|
List<ReportColumns> columns = new ArrayList<>();
|
|
|
|
columns.add(ReportColumns.builder().title("月份").key("0").build());
|
|
|
|
columns.add(ReportColumns.builder().title("月份").key("0").build());
|
|
|
|
columns.add(ReportColumns.builder().title("1月").key("1").build());
|
|
|
|
columns.add(ReportColumns.builder().title("1月").key("1").build());
|
|
|
@ -149,5 +205,44 @@ public class ReportCollectServiceImpl extends Service implements ReportCollectSe
|
|
|
|
return columns;
|
|
|
|
return columns;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 月份2
|
|
|
|
|
|
|
|
* @return
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
private List<ReportColumns> getOJSReportColumns() {
|
|
|
|
|
|
|
|
List<ReportColumns> columns = new ArrayList<>();
|
|
|
|
|
|
|
|
columns.add(ReportColumns.builder().title("部门编号").key("-1").build());
|
|
|
|
|
|
|
|
columns.add(ReportColumns.builder().title("部门名称").key("0").build());
|
|
|
|
|
|
|
|
columns.add(ReportColumns.builder().title("一月").key("1").build());
|
|
|
|
|
|
|
|
columns.add(ReportColumns.builder().title("二月").key("2").build());
|
|
|
|
|
|
|
|
columns.add(ReportColumns.builder().title("三月").key("3").build());
|
|
|
|
|
|
|
|
columns.add(ReportColumns.builder().title("四月").key("4").build());
|
|
|
|
|
|
|
|
columns.add(ReportColumns.builder().title("五月").key("5").build());
|
|
|
|
|
|
|
|
columns.add(ReportColumns.builder().title("六月").key("6").build());
|
|
|
|
|
|
|
|
columns.add(ReportColumns.builder().title("七月").key("7").build());
|
|
|
|
|
|
|
|
columns.add(ReportColumns.builder().title("八月").key("8").build());
|
|
|
|
|
|
|
|
columns.add(ReportColumns.builder().title("九月").key("9").build());
|
|
|
|
|
|
|
|
columns.add(ReportColumns.builder().title("十月").key("10").build());
|
|
|
|
|
|
|
|
columns.add(ReportColumns.builder().title("十一月").key("11").build());
|
|
|
|
|
|
|
|
columns.add(ReportColumns.builder().title("十二月").key("12").build());
|
|
|
|
|
|
|
|
return columns;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 求和
|
|
|
|
|
|
|
|
* @return
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
private List<Integer> summary(List<List<Integer>> countLists){
|
|
|
|
|
|
|
|
return countLists.stream()
|
|
|
|
|
|
|
|
.reduce((a, b) -> {
|
|
|
|
|
|
|
|
List<Integer> sum = new ArrayList<>();
|
|
|
|
|
|
|
|
for (int i = 0; i < a.size(); i++) {
|
|
|
|
|
|
|
|
sum.add(a.get(i) + b.get(i));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return sum;
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
.orElse(new ArrayList<>());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|