package jnpf.limsService.impl; import jnpf.audit.sdk.annotation.AuditLog; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import jnpf.exception.DataException; import jnpf.limsEntity.LimsShebeiJiliangQijuEntity; import jnpf.limsEntity.LimsShebeiYiqiJiaozhunWaibuEntity; import jnpf.limsMapper.LimsShebeiJiliangQijuMapper; import jnpf.limsMapper.LimsShebeiYiqiJiaozhunWaibuMapper; import jnpf.limsService.LimsShebeiYiqiJiaozhunWaibuService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service public class LimsShebeiYiqiJiaozhunWaibuServiceImpl implements LimsShebeiYiqiJiaozhunWaibuService { private static final String BIZ_STATUS_YIJIAOZHUN = "yijiaozhun"; @Autowired private LimsShebeiYiqiJiaozhunWaibuMapper jiaozhunWaibuMapper; @Autowired private LimsShebeiJiliangQijuMapper jiliangQijuMapper; @Override @Transactional(rollbackFor = Exception.class) @AuditLog(action = "CALIBRATION_SYNC", label = "同步外部校准结果", bizType = "SHEBEI_YIQI", bizCodeExpr = "#jiaozhunId", bizCodeRequired = false, targetTable = "lims_shebei_yiqi_qiju", targetIdExpr = "T(jnpf.limsService.support.LimsAuditTargetIds).qijuByExternalCalibration(#jiaozhunId)", diff = true, entityClass = LimsShebeiJiliangQijuEntity.class) public void syncToQiju(String jiaozhunId) throws DataException { String id = trimToEmpty(jiaozhunId); if (id.isEmpty()) { throw new DataException("校准记录ID(jiaozhun_id)不能为空"); } LimsShebeiYiqiJiaozhunWaibuEntity jiaozhun = jiaozhunWaibuMapper.selectById(id); if (jiaozhun == null) { throw new DataException("外部校准记录不存在:" + id); } String qijuId = trimToEmpty(jiaozhun.getQijuId()); if (qijuId.isEmpty()) { throw new DataException("外部校准记录未关联计量器具"); } if (jiliangQijuMapper.selectById(qijuId) == null) { throw new DataException("计量器具不存在:" + qijuId); } LambdaUpdateWrapper update = new LambdaUpdateWrapper<>(); update.eq(LimsShebeiJiliangQijuEntity::getId, qijuId) .set(LimsShebeiJiliangQijuEntity::getBizStatus, BIZ_STATUS_YIJIAOZHUN) .set(LimsShebeiJiliangQijuEntity::getJiandingRiqi, jiaozhun.getSongjianShijian()) .set(LimsShebeiJiliangQijuEntity::getJiliangBianhao, jiaozhun.getJiliangBianhao()) .set(LimsShebeiJiliangQijuEntity::getJiliangShijian, jiaozhun.getJiliangShijian()) .set(LimsShebeiJiliangQijuEntity::getJiliangYouxiaoqi, jiaozhun.getYouxiaoqi()) .set(LimsShebeiJiliangQijuEntity::getJianyanDanwei, jiaozhun.getJianyanDanwei()); if (jiliangQijuMapper.update(null, update) != 1) { throw new DataException("计量器具校准信息更新失败,请刷新后重试"); } } private String trimToEmpty(String value) { return value == null ? "" : value.trim(); } }