修改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<>();
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user