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