Browse Source

update: 特种设备模块逻辑修改

zhongwei
liwen 7 months ago
parent
commit
d2a6a4d9f2
  1. 50
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/SpecialDeviceInspectionServiceImpl.java

50
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/SpecialDeviceInspectionServiceImpl.java

@ -10,11 +10,15 @@ import com.hnac.hzims.safeproduct.enums.DeviceStatusEnum;
import com.hnac.hzims.safeproduct.mapper.SpecialDeviceInspectionMapper; import com.hnac.hzims.safeproduct.mapper.SpecialDeviceInspectionMapper;
import com.hnac.hzims.safeproduct.service.ISpecialDeviceInspectionService; import com.hnac.hzims.safeproduct.service.ISpecialDeviceInspectionService;
import com.hnac.hzims.safeproduct.service.ISpecialDeviceService; import com.hnac.hzims.safeproduct.service.ISpecialDeviceService;
import com.xxl.job.core.util.DateUtil;
import org.springblade.core.mp.support.Query; import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.utils.CollectionUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@ -35,17 +39,32 @@ public class SpecialDeviceInspectionServiceImpl extends ServiceImpl<SpecialDevic
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean saveInspection(SpecialDeviceInspectionEntity specialDeviceInspectionEntity) { public boolean saveInspection(SpecialDeviceInspectionEntity specialDeviceInspectionEntity) {
Long deviceId = specialDeviceInspectionEntity.getDeviceId();
// 获取对应特种设备
SpecialDeviceEntity specialDeviceEntity = deviceService.getById(deviceId);
// 计算下一次检验时间
Integer period = specialDeviceEntity.getInspectionPeriod();
Date nextInspectDate = DateUtil.addDays(specialDeviceInspectionEntity.getInspectionTime(), period);
specialDeviceInspectionEntity.setNextInspectionTime(nextInspectDate);
specialDeviceEntity.setInspectionNextTime(nextInspectDate);
// 获取上一次检验时间
QueryWrapper<SpecialDeviceInspectionEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(SpecialDeviceInspectionEntity::getDeviceId, deviceId)
.orderByDesc(SpecialDeviceInspectionEntity::getInspectionTime);
List<SpecialDeviceInspectionEntity> list = this.list(queryWrapper);
if (CollectionUtil.isNotEmpty(list)) {
SpecialDeviceInspectionEntity lastDeviceInspection = list.get(0);
Date lastInspectionTime = lastDeviceInspection.getInspectionTime();
specialDeviceInspectionEntity.setLastInspectionTime(lastInspectionTime);
specialDeviceEntity.setInspectionLastTime(lastInspectionTime);
}
// 本次检验时间
specialDeviceEntity.setInspectionCurrentTime(specialDeviceInspectionEntity.getInspectionTime());
boolean save = this.save(specialDeviceInspectionEntity); boolean save = this.save(specialDeviceInspectionEntity);
if (save) { if (save) {
SpecialDeviceEntity specialDeviceEntity = deviceService.getById(specialDeviceInspectionEntity.getDeviceId());
if (specialDeviceEntity != null) {
specialDeviceEntity.setInspectionLastTime(specialDeviceInspectionEntity.getLastInspectionTime());
specialDeviceEntity.setInspectionCurrentTime(specialDeviceInspectionEntity.getInspectionTime());
specialDeviceEntity.setInspectionNextTime(specialDeviceInspectionEntity.getNextInspectionTime());
specialDeviceEntity.setDeviceStatus(DeviceStatusEnum.NORMAL.getValue()); specialDeviceEntity.setDeviceStatus(DeviceStatusEnum.NORMAL.getValue());
return deviceService.updateById(specialDeviceEntity); return deviceService.updateById(specialDeviceEntity);
} }
}
return false; return false;
} }
@ -55,10 +74,23 @@ public class SpecialDeviceInspectionServiceImpl extends ServiceImpl<SpecialDevic
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean updateInspection(SpecialDeviceInspectionEntity specialDeviceInspectionEntity) { public boolean updateInspection(SpecialDeviceInspectionEntity specialDeviceInspectionEntity) {
Long deviceId = specialDeviceInspectionEntity.getDeviceId();
// 获取对应特种设备
SpecialDeviceEntity specialDeviceEntity = deviceService.getById(deviceId);
// 计算下一次检验时间
Integer period = specialDeviceEntity.getInspectionPeriod();
Date nextInspectDate = DateUtil.addDays(specialDeviceInspectionEntity.getInspectionTime(), period);
specialDeviceInspectionEntity.setNextInspectionTime(nextInspectDate);
// 更新设备检验记录
boolean update = this.updateById(specialDeviceInspectionEntity); boolean update = this.updateById(specialDeviceInspectionEntity);
if (update) { // 获取按检验时间倒序排列的检验记录数据
SpecialDeviceEntity specialDeviceEntity = deviceService.getById(specialDeviceInspectionEntity.getDeviceId()); QueryWrapper<SpecialDeviceInspectionEntity> queryWrapper = new QueryWrapper<>();
if (specialDeviceEntity != null) { queryWrapper.lambda().eq(SpecialDeviceInspectionEntity::getDeviceId, deviceId)
.orderByDesc(SpecialDeviceInspectionEntity::getInspectionTime);
List<SpecialDeviceInspectionEntity> list = this.list(queryWrapper);
if (CollectionUtil.isNotEmpty(list)) {
// 仅最新的检验记录对特种设备的检验时间造成影响
if (specialDeviceInspectionEntity.getId().equals(list.get(0).getId()) && update) {
specialDeviceEntity.setInspectionLastTime(specialDeviceInspectionEntity.getLastInspectionTime()); specialDeviceEntity.setInspectionLastTime(specialDeviceInspectionEntity.getLastInspectionTime());
specialDeviceEntity.setInspectionCurrentTime(specialDeviceInspectionEntity.getInspectionTime()); specialDeviceEntity.setInspectionCurrentTime(specialDeviceInspectionEntity.getInspectionTime());
specialDeviceEntity.setInspectionNextTime(specialDeviceInspectionEntity.getNextInspectionTime()); specialDeviceEntity.setInspectionNextTime(specialDeviceInspectionEntity.getNextInspectionTime());

Loading…
Cancel
Save