修改mps_market调岗记录时,同时修改 dept_id 和 dept_name
This commit is contained in:
parent
8363ecac83
commit
fe37c2a266
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user