考勤,汇总数据生成逻辑中添加汇总主表中汇总状态变更过程

zm_dev
sy 11 months ago
parent d48b132e9b
commit b0b6748ae6

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

Loading…
Cancel
Save