|
|
|
@ -11,13 +11,13 @@ import com.engine.kq.biz.KQReportBiz;
|
|
|
|
|
import com.engine.kq.util.PageUidFactory;
|
|
|
|
|
import weaver.backup.logging.Logger;
|
|
|
|
|
import weaver.conn.RecordSet;
|
|
|
|
|
import weaver.general.BaseBean;
|
|
|
|
|
import weaver.general.TimeUtil;
|
|
|
|
|
import weaver.general.Util;
|
|
|
|
|
import weaver.hrm.company.DepartmentComInfo;
|
|
|
|
|
import weaver.hrm.company.SubCompanyComInfo;
|
|
|
|
|
import weaver.hrm.job.JobTitlesComInfo;
|
|
|
|
|
import weaver.hrm.resource.ResourceComInfo;
|
|
|
|
|
import weaver.systemExpAndImp.logging.LoggerFactory;
|
|
|
|
|
import weaver.systeminfo.SystemEnv;
|
|
|
|
|
|
|
|
|
|
import java.time.LocalDate;
|
|
|
|
@ -31,8 +31,7 @@ import java.util.concurrent.Executors;
|
|
|
|
|
* @Date: 2024/3/19
|
|
|
|
|
**/
|
|
|
|
|
public class AttendanceSummaryServiceImpl extends Service implements AttendanceSummaryService {
|
|
|
|
|
|
|
|
|
|
private Logger log = LoggerFactory.getLogger(this.getClass());
|
|
|
|
|
BaseBean bs = new BaseBean();
|
|
|
|
|
/**
|
|
|
|
|
* 新增出勤汇总
|
|
|
|
|
* 基于入参中的出勤汇总主表id,获取主表信息,根据主表中的分部、考勤时间区间等字段,
|
|
|
|
@ -47,7 +46,7 @@ public class AttendanceSummaryServiceImpl extends Service implements AttendanceS
|
|
|
|
|
ExecutorService taskExecutor = Executors.newCachedThreadPool();
|
|
|
|
|
taskExecutor.execute(() -> {
|
|
|
|
|
String mainIds = Util.null2String(params.get("mainIds"));
|
|
|
|
|
log.info("mainids : " + mainIds);
|
|
|
|
|
bs.writeLog("mainids : " + mainIds);
|
|
|
|
|
List<String> mainIdList = new ArrayList<>();
|
|
|
|
|
if (!mainIds.equals("")) {
|
|
|
|
|
mainIdList = Arrays.asList(mainIds.split(","));
|
|
|
|
@ -60,33 +59,33 @@ public class AttendanceSummaryServiceImpl extends Service implements AttendanceS
|
|
|
|
|
String subCompany = Util.null2String(data.get("fb"));
|
|
|
|
|
String startDate = Util.null2String(data.get("ksrq"));
|
|
|
|
|
String endDate = Util.null2String(data.get("jsrq"));
|
|
|
|
|
log.info("subCompany : " + subCompany + ", startDate : " + startDate + ", endDate : " + endDate);
|
|
|
|
|
bs.writeLog("subCompany : " + subCompany + ", startDate : " + startDate + ", endDate : " + endDate);
|
|
|
|
|
if (!subCompany.equals("") && !startDate.equals("") && !endDate.equals("")) {
|
|
|
|
|
String subCompanyListStr = SubCompanyComInfo.getAllChildSubcompanyId(subCompany, subCompany);
|
|
|
|
|
//汇总出勤结果表、补打卡表、出勤津贴表数据
|
|
|
|
|
//出勤结果表
|
|
|
|
|
List<Map<String, String>> cqAddList = getCqAddList(mainId, subCompanyListStr, startDate, endDate);
|
|
|
|
|
log.info("cqAddList_size : " + cqAddList.size());
|
|
|
|
|
bs.writeLog("cqAddList_size : " + cqAddList.size());
|
|
|
|
|
if (cqAddList.size() > 0) {
|
|
|
|
|
addList.addAll(cqAddList);
|
|
|
|
|
}
|
|
|
|
|
//补打卡表
|
|
|
|
|
List<Map<String, String>> bdkAddList = getBdkAddList(mainId, startDate, endDate);
|
|
|
|
|
log.info("bdkAddList_size : " + bdkAddList.size());
|
|
|
|
|
bs.writeLog("bdkAddList_size : " + bdkAddList.size());
|
|
|
|
|
if (bdkAddList.size() > 0) {
|
|
|
|
|
addList.addAll(bdkAddList);
|
|
|
|
|
}
|
|
|
|
|
//出勤津贴表
|
|
|
|
|
List<Map<String, String>> cqjtAddList = getCqjtAddList(mainId, startDate, endDate);
|
|
|
|
|
log.info("cqjtAddList_size : " + cqjtAddList.size());
|
|
|
|
|
bs.writeLog("cqjtAddList_size : " + cqjtAddList.size());
|
|
|
|
|
if (cqjtAddList.size() > 0) {
|
|
|
|
|
addList.addAll(cqjtAddList);
|
|
|
|
|
}
|
|
|
|
|
log.info("addList_size : " + addList.size());
|
|
|
|
|
bs.writeLog("addList_size : " + addList.size());
|
|
|
|
|
//删除已有汇总数据
|
|
|
|
|
String delSql = "delete from uf_jcl_kq_cqhz_dt1 where mainid = " + mainId;
|
|
|
|
|
boolean delSign = DbTools.update(delSql);
|
|
|
|
|
log.info("delSign : " + delSign + ", delSql : " + delSql);
|
|
|
|
|
bs.writeLog("delSign : " + delSign + ", delSql : " + delSql);
|
|
|
|
|
//插入汇总数据
|
|
|
|
|
List<List> dataList = new ArrayList<>();
|
|
|
|
|
String insertSql = " insert into uf_jcl_kq_cqhz_dt1(mainid,ry,kqxm," +
|
|
|
|
@ -108,14 +107,14 @@ public class AttendanceSummaryServiceImpl extends Service implements AttendanceS
|
|
|
|
|
}
|
|
|
|
|
if(dataList.size()>0){
|
|
|
|
|
RecordSet rs = new RecordSet();
|
|
|
|
|
log.info("addlist :[{}]", (Throwable) dataList);
|
|
|
|
|
bs.writeLog("addlist :[{}]", (Throwable) dataList);
|
|
|
|
|
boolean insertSign =rs.executeBatchSql(insertSql,dataList);
|
|
|
|
|
log.info("insertSign : " + insertSign);
|
|
|
|
|
bs.writeLog("insertSign : " + insertSign);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
return null;
|
|
|
|
|
return new HashMap<>();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@ -149,7 +148,7 @@ public class AttendanceSummaryServiceImpl extends Service implements AttendanceS
|
|
|
|
|
String subCompanyId = Util.null2String(jsonObj.get("subCompanyId"));
|
|
|
|
|
String departmentId = Util.null2String(jsonObj.get("departmentId"));
|
|
|
|
|
String resourceId = Util.null2String(jsonObj.get("resourceId"));
|
|
|
|
|
log.info("status : " + status + ", subCompanyId : " + subCompanyId + ", departmentId : " + departmentId + ", resourceId : " + resourceId);
|
|
|
|
|
bs.writeLog("status : " + status + ", subCompanyId : " + subCompanyId + ", departmentId : " + departmentId + ", resourceId : " + resourceId);
|
|
|
|
|
String allLevel = Util.null2String(jsonObj.get("allLevel"));
|
|
|
|
|
String isNoAccount = Util.null2String(jsonObj.get("isNoAccount"));
|
|
|
|
|
String viewScope = Util.null2String(jsonObj.get("viewScope"));
|
|
|
|
@ -212,26 +211,27 @@ public class AttendanceSummaryServiceImpl extends Service implements AttendanceS
|
|
|
|
|
column.put("showDetial", "1");
|
|
|
|
|
columns.add(column);
|
|
|
|
|
}
|
|
|
|
|
bs.writeLog("columns : " + columns);
|
|
|
|
|
//获取列表结果,typeSelect为9、10时查询出勤汇总明细表数据,其他则生成临时汇总数据
|
|
|
|
|
List<Map<String,Object>> dtDates = null;
|
|
|
|
|
LocalDate targetDate = LocalDate.now(); // 获取当前日期
|
|
|
|
|
log.info("currentDate : " + targetDate);
|
|
|
|
|
bs.writeLog("currentDate : " + targetDate);
|
|
|
|
|
if (typeSelect.equals("9")) {
|
|
|
|
|
String targetYear = String.valueOf(targetDate.getYear());
|
|
|
|
|
String targetMonth = targetDate.getMonth().toString();
|
|
|
|
|
log.info("targetYear : " + targetYear + ", targetMonth : " + targetMonth);
|
|
|
|
|
bs.writeLog("targetYear : " + targetYear + ", targetMonth : " + targetMonth);
|
|
|
|
|
dtDates = getDtDates(targetYear, targetMonth, subCompanyId, departmentId, resourceId, status);
|
|
|
|
|
} else if (typeSelect.equals("10")) {
|
|
|
|
|
targetDate = targetDate.minusMonths(1);
|
|
|
|
|
String targetYear = String.valueOf(targetDate.getYear());
|
|
|
|
|
String targetMonth = targetDate.getMonth().toString();
|
|
|
|
|
log.info("targetYear : " + targetYear + ", targetMonth : " + targetMonth);
|
|
|
|
|
bs.writeLog("targetYear : " + targetYear + ", targetMonth : " + targetMonth);
|
|
|
|
|
dtDates = getDtDates(targetYear, targetMonth, subCompanyId, departmentId, resourceId, status);
|
|
|
|
|
} else {
|
|
|
|
|
//调用临时汇总数据方法,生成数据
|
|
|
|
|
dtDates = getTemAttendanceSummary(jsonObj);
|
|
|
|
|
}
|
|
|
|
|
log.info("dtDates_size : " + (dtDates==null ? "null" : dtDates.size()));
|
|
|
|
|
bs.writeLog("dtDates_size : " + (dtDates==null ? "null" : dtDates.size()));
|
|
|
|
|
//处理明细表数据,分组生成列表数据
|
|
|
|
|
Map<String, Map<String, String>> groupData = new HashMap<>();
|
|
|
|
|
for (Map<String, Object> map : dtDates) {
|
|
|
|
@ -303,7 +303,7 @@ public class AttendanceSummaryServiceImpl extends Service implements AttendanceS
|
|
|
|
|
retmap.put("ishavepre", isHavePre);
|
|
|
|
|
retmap.put("ishavenext", isHaveNext);
|
|
|
|
|
}catch (Exception e){
|
|
|
|
|
log.info(e);
|
|
|
|
|
bs.writeLog(e);
|
|
|
|
|
}
|
|
|
|
|
return retmap;
|
|
|
|
|
}
|
|
|
|
@ -334,7 +334,7 @@ public class AttendanceSummaryServiceImpl extends Service implements AttendanceS
|
|
|
|
|
for (Map<String, Object> map : mainDates) {
|
|
|
|
|
mainIds.add(map.get("id").toString());
|
|
|
|
|
}
|
|
|
|
|
log.info("mainIds : " + mainIds);
|
|
|
|
|
bs.writeLog("mainIds : " + mainIds);
|
|
|
|
|
String dtListSql = "select * from uf_jcl_kq_cqhz_dt1 a left join hrmresource b on a.ry = b.id where 1=1";
|
|
|
|
|
if (!status.equals("") && !status.equals("9")) {
|
|
|
|
|
dtListSql = dtListSql + " and b.status = " + status;
|
|
|
|
@ -351,7 +351,7 @@ public class AttendanceSummaryServiceImpl extends Service implements AttendanceS
|
|
|
|
|
if (mainIds.size() > 0) {
|
|
|
|
|
dtListSql = dtListSql + " and a.mainid in (" + String.join(",", mainIds) + ")";
|
|
|
|
|
List<Map<String,Object>> dtDates = DbTools.getSqlToList(dtListSql);
|
|
|
|
|
log.info("dtDates_size : " + dtDates.size() + ", dtListSql : " + dtListSql);
|
|
|
|
|
bs.writeLog("dtDates_size : " + dtDates.size() + ", dtListSql : " + dtListSql);
|
|
|
|
|
return dtDates;
|
|
|
|
|
} else {
|
|
|
|
|
return null;
|
|
|
|
@ -369,7 +369,7 @@ public class AttendanceSummaryServiceImpl extends Service implements AttendanceS
|
|
|
|
|
*/
|
|
|
|
|
public List<Map<String, Object>> getTemAttendanceSummary(Map<String, Object> params) {
|
|
|
|
|
|
|
|
|
|
log.info("params : " + params);
|
|
|
|
|
bs.writeLog("params : " + params);
|
|
|
|
|
List<Map<String, Object>> addList = new ArrayList<>();
|
|
|
|
|
//处理筛选条件
|
|
|
|
|
//时间范围,今天-1,本周-2,本月-3,本季-4,本年-5,指定日期范围-6,上个月-7,上一年-8
|
|
|
|
@ -395,24 +395,24 @@ public class AttendanceSummaryServiceImpl extends Service implements AttendanceS
|
|
|
|
|
String empIds = Util.null2String(params.get("resourceId"));//可以多个人员id,以,分隔
|
|
|
|
|
//人员状态,试用-0,正式-1,临时-2,试用延期-3,解聘-4,离职-5,退休-6,无效-7,在职-8,全部-9
|
|
|
|
|
String empStatus = Util.null2String(params.get("status"));//人员状态
|
|
|
|
|
log.info("startDate : " + startDate + ", endDate : " + endDate + ", subCompanyIds : " + subCompanyIds + ", departmentIds : " + departmentIds + ", empIds : " + empIds + ", empStatus : " + empStatus);
|
|
|
|
|
bs.writeLog("startDate : " + startDate + ", endDate : " + endDate + ", subCompanyIds : " + subCompanyIds + ", departmentIds : " + departmentIds + ", empIds : " + empIds + ", empStatus : " + empStatus);
|
|
|
|
|
if (!startDate.equals("") && !endDate.equals("")) {
|
|
|
|
|
//临时汇总出勤结果表、补打卡表、出勤津贴表数据
|
|
|
|
|
//出勤结果表
|
|
|
|
|
List<Map<String, Object>> cqAddList = getTemCqAddList(startDate, endDate, subCompanyIds, departmentIds, empIds, empStatus);
|
|
|
|
|
log.info("cqAddList_size : " + cqAddList.size());
|
|
|
|
|
bs.writeLog("cqAddList_size : " + cqAddList.size());
|
|
|
|
|
if (cqAddList.size() > 0) {
|
|
|
|
|
addList.addAll(cqAddList);
|
|
|
|
|
}
|
|
|
|
|
//补打卡表
|
|
|
|
|
List<Map<String, Object>> bdkAddList = getTemBdkAddList(startDate, endDate, subCompanyIds, departmentIds, empIds, empStatus);
|
|
|
|
|
log.info("bdkAddList_size : " + bdkAddList.size());
|
|
|
|
|
bs.writeLog("bdkAddList_size : " + bdkAddList.size());
|
|
|
|
|
if (bdkAddList.size() > 0) {
|
|
|
|
|
addList.addAll(bdkAddList);
|
|
|
|
|
}
|
|
|
|
|
//出勤津贴表
|
|
|
|
|
List<Map<String, Object>> cqjtAddList = getTemCqjtAddList(startDate, endDate, subCompanyIds, departmentIds, empIds, empStatus);
|
|
|
|
|
log.info("cqjtAddList_size : " + cqjtAddList.size());
|
|
|
|
|
bs.writeLog("cqjtAddList_size : " + cqjtAddList.size());
|
|
|
|
|
if (cqjtAddList.size() > 0) {
|
|
|
|
|
addList.addAll(cqjtAddList);
|
|
|
|
|
}
|
|
|
|
|