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.LimsShebeiYiqiPeijianGenghuanEntity; import jnpf.limsEntity.LimsShebeiYiqiPeijianGenghuanZixiangEntity; import jnpf.limsMapper.LimsShebeiYiqiPeijianGenghuanMapper; import jnpf.limsMapper.LimsShebeiYiqiPeijianGenghuanZixiangMapper; import jnpf.limsService.LimsShebeiYiqiPeijianGenghuanService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service public class LimsShebeiYiqiPeijianGenghuanServiceImpl implements LimsShebeiYiqiPeijianGenghuanService { @Autowired private LimsShebeiYiqiPeijianGenghuanMapper genghuanMapper; @Autowired private LimsShebeiYiqiPeijianGenghuanZixiangMapper genghuanZixiangMapper; @Override @Transactional(rollbackFor = Exception.class) @AuditLog(action = "PART_REPLACEMENT_SYNC", label = "同步仪器配件更换子项", bizType = "SHEBEI_YIQI", bizCodeExpr = "#result > 0 ? #genghuanId : ''", targetTable = "lims_shebei_yiqi_peijian_genghuan_zixiang", targetIdExpr = "T(jnpf.limsService.support.LimsAuditTargetIds).firstPartReplacementItem(#genghuanId)", diff = true, entityClass = LimsShebeiYiqiPeijianGenghuanZixiangEntity.class) public int syncToZixiang(String genghuanId) throws DataException { String id = trimToEmpty(genghuanId); if (id.isEmpty()) { throw new DataException("配件更换记录ID(genghuan_id)不能为空"); } LimsShebeiYiqiPeijianGenghuanEntity genghuan = genghuanMapper.selectById(id); if (genghuan == null) { throw new DataException("配件更换记录不存在:" + id); } LambdaUpdateWrapper update = new LambdaUpdateWrapper<>(); update.eq(LimsShebeiYiqiPeijianGenghuanZixiangEntity::getForeignId, id) .set(LimsShebeiYiqiPeijianGenghuanZixiangEntity::getYiqiId, genghuan.getYiqiId()) .set(LimsShebeiYiqiPeijianGenghuanZixiangEntity::getYiqiMingcheng, genghuan.getYiqiMingcheng()) .set(LimsShebeiYiqiPeijianGenghuanZixiangEntity::getYiqiBianhao, genghuan.getYiqiBianhao()) .set(LimsShebeiYiqiPeijianGenghuanZixiangEntity::getGenghuanRen, genghuan.getGenghuanRen()) .set(LimsShebeiYiqiPeijianGenghuanZixiangEntity::getGenghuanRiqi, genghuan.getGenghuanRiqi()); int updated = genghuanZixiangMapper.update(null, update); if (updated <= 0) { throw new DataException("未找到关联的配件更换子项:" + id); } return updated; } private String trimToEmpty(String value) { return value == null ? "" : value.trim(); } }