修改mps_market调岗记录时,同时修改 dept_id 和 dept_name

This commit is contained in:
CYQ 2025-09-24 16:37:29 +08:00
parent 8363ecac83
commit fe37c2a266

View File

@ -203,10 +203,21 @@ public class DeptTransferProcessor extends AbstractBusinessProcessor {
Map<String, List<DeptTimeSegment>> timeLines = new HashMap<>(); Map<String, List<DeptTimeSegment>> timeLines = new HashMap<>();
// 查询调岗记录使用mkt_no作为经办人员标识 // 查询调岗记录使用mkt_no作为经办人员标识
String sql = "SELECT mkt_no, transfer_date, old_dept_id, new_dept_id " + String sql = "SELECT " +
"FROM sys_dept_transfer " + " a.mkt_no " +
"WHERE transfer_date > ? AND transfer_date <= ? " + " ,a.transfer_date " +
"ORDER BY mkt_no, transfer_date"; " ,a.old_dept_id " +
" ,a.new_dept_id " +
" ,new.dept_name as new_dept_name " +
" ,old.dept_name as old_dept_name " +
"FROM sys_dept_transfer a " +
"LEFT JOIN sys_dept new on a.new_dept_id=new.dept_id " +
"LEFT JOIN sys_dept old on a.old_dept_id=old.dept_id " +
"WHERE " +
" a.transfer_date > ? AND a.transfer_date <= ? " +
"ORDER BY " +
" a.mkt_no, " +
" a.transfer_date asc";
try (ResultSet rs = executeParameterizedQuery(connection, sql, startDate, endDate)) { try (ResultSet rs = executeParameterizedQuery(connection, sql, startDate, endDate)) {
// 按经办人员分组 // 按经办人员分组
@ -217,6 +228,8 @@ public class DeptTransferProcessor extends AbstractBusinessProcessor {
String transferDate = rs.getString("transfer_date"); String transferDate = rs.getString("transfer_date");
String oldDeptId = rs.getString("old_dept_id"); String oldDeptId = rs.getString("old_dept_id");
String newDeptId = rs.getString("new_dept_id"); String newDeptId = rs.getString("new_dept_id");
String newDeptName = rs.getString("new_dept_name");
String oldDeptName = rs.getString("old_dept_name");
// 跳过无效记录 // 跳过无效记录
if (mktNo == null || mktNo.isEmpty() || transferDate == null || transferDate.isEmpty()) { if (mktNo == null || mktNo.isEmpty() || transferDate == null || transferDate.isEmpty()) {
@ -225,7 +238,7 @@ public class DeptTransferProcessor extends AbstractBusinessProcessor {
} }
recordsByEmployee.computeIfAbsent(mktNo, k -> new ArrayList<>()) recordsByEmployee.computeIfAbsent(mktNo, k -> new ArrayList<>())
.add(new TransferRecord(mktNo, transferDate, oldDeptId, newDeptId)); .add(new TransferRecord(mktNo, transferDate, oldDeptId, newDeptId, newDeptName, oldDeptName));
} }
// 为每个经办人员构建时间线 // 为每个经办人员构建时间线
@ -233,8 +246,8 @@ public class DeptTransferProcessor extends AbstractBusinessProcessor {
String mktNo = entry.getKey(); String mktNo = entry.getKey();
List<TransferRecord> empRecords = entry.getValue(); List<TransferRecord> empRecords = entry.getValue();
// 确保记录按日期排序 // 确保记录按日期排序-sql查询时已经进行了排序
empRecords.sort((r1, r2) -> r1.transferDate.compareTo(r2.transferDate)); // empRecords.sort((r1, r2) -> r1.transferDate.compareTo(r2.transferDate));
List<DeptTimeSegment> segments = new ArrayList<>(); List<DeptTimeSegment> segments = new ArrayList<>();
@ -249,7 +262,8 @@ public class DeptTransferProcessor extends AbstractBusinessProcessor {
segments.add(new DeptTimeSegment( segments.add(new DeptTimeSegment(
first.oldDeptId, first.oldDeptId,
startDate, startDate,
DateUtils.getPreviousDay(firstTransferDate) DateUtils.getPreviousDay(firstTransferDate),
first.oldDeptName
)); ));
// 中间时间段每次调岗区间 // 中间时间段每次调岗区间
@ -275,7 +289,7 @@ public class DeptTransferProcessor extends AbstractBusinessProcessor {
segmentEnd = endDate; segmentEnd = endDate;
} }
segments.add(new DeptTimeSegment(current.newDeptId, segmentStart, segmentEnd)); segments.add(new DeptTimeSegment(current.newDeptId, segmentStart, segmentEnd, current.newDeptName));
} }
timeLines.put(mktNo, segments); timeLines.put(mktNo, segments);
@ -332,21 +346,22 @@ public class DeptTransferProcessor extends AbstractBusinessProcessor {
*/ */
private int updateSegmentRecords(Connection connection, String jbId, DeptTimeSegment segment) throws SQLException { private int updateSegmentRecords(Connection connection, String jbId, DeptTimeSegment segment) throws SQLException {
String updateSql = "UPDATE mps_market " + String updateSql = "UPDATE mps_market " +
"SET dept_id = ? " + "SET " +
" dept_id = ? " +
" ,dept_name = ? " +
"WHERE jb_id = ? " + "WHERE jb_id = ? " +
"AND date >= ? AND date < ?" + "AND date >= ? AND date < ? " +
"AND del_flag='0' "; "AND del_flag='0' ";
int updated = executeParameterizedSql(connection, updateSql, int updated = executeParameterizedSql(connection, updateSql,
segment.deptId, segment.deptId,
segment.deptName,
jbId, jbId,
segment.startDate, segment.startDate,
segment.endDate); segment.endDate);
if (logger.isDebugEnabled()) { logger.debug("更新时间段: jbId={}, deptId={}, newDeptName={}, startDate={}, endDate={}, 更新记录数: {}",
logger.debug("更新时间段: jbId={}, deptId={}, startDate={}, endDate={}, 更新记录数: {}", jbId, segment.deptId, segment.deptName, segment.startDate, segment.endDate, updated);
jbId, segment.deptId, segment.startDate, segment.endDate, updated);
}
return updated; return updated;
} }
@ -421,12 +436,16 @@ public class DeptTransferProcessor extends AbstractBusinessProcessor {
final String transferDate; final String transferDate;
final String oldDeptId; final String oldDeptId;
final String newDeptId; final String newDeptId;
final String newDeptName;
final String oldDeptName;
TransferRecord(String mktNo, String transferDate, String oldDeptId, String newDeptId) { TransferRecord(String mktNo, String transferDate, String oldDeptId, String newDeptId, String newDeptName, String oldDeptName) {
this.mktNo = mktNo; this.mktNo = mktNo;
this.transferDate = transferDate; this.transferDate = transferDate;
this.oldDeptId = oldDeptId; this.oldDeptId = oldDeptId;
this.newDeptId = newDeptId; this.newDeptId = newDeptId;
this.newDeptName = newDeptName;
this.oldDeptName = oldDeptName;
} }
} }
@ -434,11 +453,13 @@ public class DeptTransferProcessor extends AbstractBusinessProcessor {
final String deptId; final String deptId;
final String startDate; final String startDate;
final String endDate; final String endDate;
final String deptName;
DeptTimeSegment(String deptId, String startDate, String endDate) { DeptTimeSegment(String deptId, String startDate, String endDate, String deptName) {
this.deptId = deptId; this.deptId = deptId;
this.startDate = startDate; this.startDate = startDate;
this.endDate = endDate; this.endDate = endDate;
this.deptName = deptName;
} }
} }