| | |
| | | import java.time.ZoneId; |
| | | import java.time.format.DateTimeFormatter; |
| | | |
| | | /** 根据标准维护保存动作同步生成、归档标准查新记录。 */ |
| | | /** 根据标准维护保存动作同步生成或更新现行标准查新记录。 */ |
| | | @Component |
| | | @RequiredArgsConstructor |
| | | public class StandardMethodSearchNewListener { |
| | |
| | | ProcessMethodSearchNew current = searchNewMapper.selectOne(Wrappers.<ProcessMethodSearchNew>lambdaQuery() |
| | | .eq(ProcessMethodSearchNew::getCurrentAutoStandardId, event.getStandardMethodId()) |
| | | .last("FOR UPDATE")); |
| | | if (current == null && searchNewMapper.selectCount(Wrappers.<ProcessMethodSearchNew>lambdaQuery() |
| | | .eq(ProcessMethodSearchNew::getStandardMethodId, event.getStandardMethodId()) |
| | | .eq(ProcessMethodSearchNew::getIsAutoArchived, 1)) > 0) { |
| | | return; |
| | | } |
| | | if (!event.isEdit() && current != null) { |
| | | return; |
| | | } |
| | | |
| | | LocalDateTime now = LocalDateTime.now(CHINA_ZONE); |
| | | if (current != null) { |
| | | searchNewMapper.update(null, Wrappers.<ProcessMethodSearchNew>lambdaUpdate() |
| | | .eq(ProcessMethodSearchNew::getMethodSearchNewId, current.getMethodSearchNewId()) |
| | | .set(ProcessMethodSearchNew::getIsNewStandard, 0) |
| | | .set(ProcessMethodSearchNew::getIsAutoArchived, 1) |
| | | .set(ProcessMethodSearchNew::getCurrentAutoStandardId, null) |
| | | .set(ProcessMethodSearchNew::getAutoArchivedTime, now)); |
| | | .set(ProcessMethodSearchNew::getMethodName, event.getName()) |
| | | .set(ProcessMethodSearchNew::getStandardNo, event.getCode())); |
| | | return; |
| | | } |
| | | |
| | | LocalDateTime now = LocalDateTime.now(CHINA_ZONE); |
| | | ProcessMethodSearchNew created = new ProcessMethodSearchNew(); |
| | | created.setMethodName(event.getName()); |
| | | created.setStandardNo(event.getCode()); |