liuliang 11 months ago
commit b84e9921f9

@ -21,8 +21,7 @@ import weaver.systeminfo.SystemEnv;
import java.time.LocalDate;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* @Author: sy
@ -45,76 +44,89 @@ public class AttendanceSummaryServiceImpl extends Service implements AttendanceS
bs.writeLog("params : " + params);
String mainIds = Util.null2String(params.get("mainIds"));
bs.writeLog("mainIds : " + mainIds);
ExecutorService taskExecutor = Executors.newCachedThreadPool();
taskExecutor.execute(() -> {
Thread thread1 = new Thread(() -> {
List<String> mainIdList = new ArrayList<>();
if (!mainIds.equals("")) {
mainIdList = Arrays.asList(mainIds.split(","));
}
for (String mainId : mainIdList) {
List<Map<String, String>> addList = new ArrayList<>();
//查询出勤汇总主表信息
String sql = "select * from uf_jcl_kq_cqhz where id="+mainId;
Map<String,Object> data = DbTools.getSqlToMap(sql);
String subCompany = Util.null2String(data.get("fb"));
String startDate = Util.null2String(data.get("ksrq"));
String endDate = Util.null2String(data.get("jsrq"));
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);
bs.writeLog("cqAddList_size : " + cqAddList.size());
if (cqAddList.size() > 0) {
addList.addAll(cqAddList);
}
//补打卡表
List<Map<String, String>> bdkAddList = getBdkAddList(mainId, subCompanyListStr, startDate, endDate);
bs.writeLog("bdkAddList_size : " + bdkAddList.size());
if (bdkAddList.size() > 0) {
addList.addAll(bdkAddList);
}
//出勤津贴表
List<Map<String, String>> cqjtAddList = getCqjtAddList(mainId, subCompanyListStr, startDate, endDate);
bs.writeLog("cqjtAddList_size : " + cqjtAddList.size());
if (cqjtAddList.size() > 0) {
addList.addAll(cqjtAddList);
}
bs.writeLog("addList_size : " + addList.size());
//删除已有汇总数据
String delSql = "delete from uf_jcl_kq_cqhz_dt1 where mainid = " + mainId;
boolean delSign = DbTools.update(delSql);
bs.writeLog("delSign : " + delSign + ", delSql : " + delSql);
//插入汇总数据
List<List> dataList = new ArrayList<>();
String insertSql = " insert into uf_jcl_kq_cqhz_dt1(mainid,ry,kqxm," +
"lc,lf,ls,lt," +
"gzfb,gzbm) values(?,?,?,?,?,?,?,?,?)";
for (Map<String, String> map : addList) {
List<String> list = new ArrayList<>();
list.add(mainId);
list.add(map.get("ry"));
list.add(map.get("kqxm"));
list.add(map.get("lc"));
list.add(map.get("lf"));
list.add(map.get("ls"));
list.add(map.get("lt"));
list.add("".equals(map.get("gzfb")) ? null : map.get("gzfb"));
list.add("".equals(map.get("gzbm")) ? null : map.get("gzbm"));
//更新汇总主表的汇总状态字段为汇总中
String startUpdateSql = "update uf_jcl_kq_cqhz set hzzt = 1 where id in (" + mainIds + ")";
DbTools.update(startUpdateSql);
try {
for (String mainId : mainIdList) {
List<Map<String, String>> addList = new ArrayList<>();
//查询出勤汇总主表信息
String sql = "select * from uf_jcl_kq_cqhz where id="+mainId;
Map<String,Object> data = DbTools.getSqlToMap(sql);
String subCompany = Util.null2String(data.get("fb"));
String startDate = Util.null2String(data.get("ksrq"));
String endDate = Util.null2String(data.get("jsrq"));
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);
bs.writeLog("cqAddList_size : " + cqAddList.size());
if (cqAddList.size() > 0) {
addList.addAll(cqAddList);
}
//补打卡表
List<Map<String, String>> bdkAddList = getBdkAddList(mainId, subCompanyListStr, startDate, endDate);
bs.writeLog("bdkAddList_size : " + bdkAddList.size());
if (bdkAddList.size() > 0) {
addList.addAll(bdkAddList);
}
//出勤津贴表
List<Map<String, String>> cqjtAddList = getCqjtAddList(mainId, subCompanyListStr, startDate, endDate);
bs.writeLog("cqjtAddList_size : " + cqjtAddList.size());
if (cqjtAddList.size() > 0) {
addList.addAll(cqjtAddList);
}
bs.writeLog("addList_size : " + addList.size());
//删除已有汇总数据
String delSql = "delete from uf_jcl_kq_cqhz_dt1 where mainid = " + mainId;
boolean delSign = DbTools.update(delSql);
bs.writeLog("delSign : " + delSign + ", delSql : " + delSql);
//插入汇总数据
List<List> dataList = new ArrayList<>();
String insertSql = " insert into uf_jcl_kq_cqhz_dt1(mainid,ry,kqxm," +
"lc,lf,ls,lt," +
"gzfb,gzbm) values(?,?,?,?,?,?,?,?,?)";
for (Map<String, String> map : addList) {
List<String> list = new ArrayList<>();
list.add(mainId);
list.add(map.get("ry"));
list.add(map.get("kqxm"));
list.add(map.get("lc"));
list.add(map.get("lf"));
list.add(map.get("ls"));
list.add(map.get("lt"));
list.add("".equals(map.get("gzfb")) ? null : map.get("gzfb"));
list.add("".equals(map.get("gzbm")) ? null : map.get("gzbm"));
dataList.add(list);
}
bs.writeLog("dataList_size : " + dataList.size());
if(dataList.size() > 0){
RecordSet rs = new RecordSet();
bs.writeLog("入库开始---");
boolean insertSign =rs.executeBatchSql(insertSql,dataList);
bs.writeLog("insertSign : " + insertSign);
dataList.add(list);
}
bs.writeLog("dataList_size : " + dataList.size());
if(dataList.size() > 0){
RecordSet rs = new RecordSet();
bs.writeLog("入库开始---");
boolean insertSign =rs.executeBatchSql(insertSql,dataList);
bs.writeLog("insertSign : " + insertSign);
}
}
}
//更新汇总主表的汇总状态字段为汇总中
String endUpdateSql = "update uf_jcl_kq_cqhz set hzzt = 2 where id in (" + mainIds + ")";
DbTools.update(endUpdateSql);
} catch (Exception e) {
e.printStackTrace();
//更新汇总主表的汇总状态字段为未汇总
String endUpdateSql = "update uf_jcl_kq_cqhz set hzzt = 0 where id in (" + mainIds + ")";
DbTools.update(endUpdateSql);
}
});
thread1.start();
return new HashMap<>();
}

Loading…
Cancel
Save