|
|
@ -102,14 +102,14 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> imp |
|
|
|
} |
|
|
|
//2.新增核酸基础信息数据
|
|
|
|
IcNatEntity entity = ConvertUtils.sourceToTarget(formDTO, IcNatEntity.class); |
|
|
|
if(StringUtils.isNotBlank(formDTO.getUserId())){ |
|
|
|
if (StringUtils.isNotBlank(formDTO.getUserId())) { |
|
|
|
entity.setIsResiUser("1"); |
|
|
|
} |
|
|
|
insert(entity); |
|
|
|
//3.核酸记录关系表新增与组织的关系数据
|
|
|
|
IcNatRelationEntity relationEntity = ConvertUtils.sourceToTarget(formDTO, IcNatRelationEntity.class); |
|
|
|
relationEntity.setIcNatId(entity.getId()); |
|
|
|
relationEntity.setPids(StringUtils.isNotBlank(agencyInfo.getPids())?agencyInfo.getPids()+":"+formDTO.getAgencyId():agencyInfo.getPids()); |
|
|
|
relationEntity.setPids(StringUtils.isNotBlank(agencyInfo.getPids()) ? agencyInfo.getPids() + ":" + formDTO.getAgencyId() : formDTO.getAgencyId()); |
|
|
|
icNatRelationDao.insert(relationEntity); |
|
|
|
|
|
|
|
//3.新增通知表信息
|
|
|
@ -215,17 +215,7 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> imp |
|
|
|
log.error(String.format("数据修改失败,核酸记录Id->%s", formDTO.getIcNatId())); |
|
|
|
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "核酸记录修改失败"); |
|
|
|
} |
|
|
|
|
|
|
|
//2.更新与组织的关系表数据
|
|
|
|
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(formDTO.getAgencyId()); |
|
|
|
if (null == agencyInfo) { |
|
|
|
throw new RenException(String.format("获取组织缓存信息失败%s", formDTO.getAgencyId())); |
|
|
|
} |
|
|
|
LambdaQueryWrapper<IcNatRelationEntity> wrapper = new LambdaQueryWrapper<>(); |
|
|
|
wrapper.eq(IcNatRelationEntity::getIcNatId, formDTO.getIcNatId()); |
|
|
|
IcNatRelationEntity relationEntity = ConvertUtils.sourceToTarget(formDTO, IcNatRelationEntity.class); |
|
|
|
relationEntity.setPids(StringUtils.isNotBlank(agencyInfo.getPids()) ? agencyInfo.getPids() + ":" + formDTO.getAgencyId() : agencyInfo.getPids()); |
|
|
|
icNatRelationDao.update(relationEntity, wrapper); |
|
|
|
//修改只涉及到基础信息的修改 不会修改关系数据 关系表不涉及更新
|
|
|
|
|
|
|
|
//3.新增通知表信息
|
|
|
|
if (CollectionUtils.isNotEmpty(formDTO.getChannel())) { |
|
|
@ -240,7 +230,6 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> imp |
|
|
|
dto.setStaffId(formDTO.getStaffId()); |
|
|
|
icNoticeService.sendNotice(dto); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@ -250,11 +239,13 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> imp |
|
|
|
@Override |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public void del(MyNatListFormDTO formDTO) { |
|
|
|
//1.物理删除业务数据
|
|
|
|
//1.确定删除则需要删除基础数据以及所有可能存在的关系数据,物理删除业务数据
|
|
|
|
if (baseDao.delById(formDTO.getIcNatId()) < NumConstant.ONE) { |
|
|
|
log.error(String.format("数据删除/取消同步失败,核酸记录Id->%s", formDTO.getIcNatId())); |
|
|
|
log.error(String.format("数据删除失败,核酸记录Id->%s", formDTO.getIcNatId())); |
|
|
|
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "数据操作失败"); |
|
|
|
} |
|
|
|
//关系数据删除
|
|
|
|
icNatRelationDao.delRelation(formDTO.getIcNatId(), null); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@ -264,25 +255,46 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> imp |
|
|
|
@Override |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public void synchro(MyNatListFormDTO formDTO) { |
|
|
|
//1.获取工作人员缓存数据
|
|
|
|
//1.检验核酸基础信息是否存在
|
|
|
|
IcNatEntity entity = baseDao.selectById(formDTO.getIcNatId()); |
|
|
|
if (null == entity) { |
|
|
|
log.error(String.format("核酸记录数据不存在同步失败,核酸记录Id->%s", formDTO.getIcNatId())); |
|
|
|
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "数据同步失败,核酸记录数据不存在"); |
|
|
|
} |
|
|
|
//获取工作人员缓存数据
|
|
|
|
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId()); |
|
|
|
if (null == staffInfo) { |
|
|
|
throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", formDTO.getUserId())); |
|
|
|
} |
|
|
|
//1.根据核酸记录Id查询业务数据并进行必要校验
|
|
|
|
IcNatEntity entity = baseDao.selectById(formDTO.getIcNatId()); |
|
|
|
if (null == entity || staffInfo.getAgencyId().equals(entity.getAgencyId()) |
|
|
|
|| (!"import".equals(entity.getUserType()) && !"synchro".equals(entity.getUserType()))) { |
|
|
|
log.error(String.format("数据同步失败,核酸记录Id->%s", formDTO.getIcNatId())); |
|
|
|
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "数据同步失败,不是导入数据或非本组织数据"); |
|
|
|
//2.不管是否已存在关系数据都是先删后增
|
|
|
|
icNatRelationDao.delRelation(formDTO.getIcNatId(), null); |
|
|
|
//3.新增关系数据
|
|
|
|
IcNatRelationEntity relationEntity = new IcNatRelationEntity(); |
|
|
|
relationEntity.setCustomerId(formDTO.getCustomerId()); |
|
|
|
relationEntity.setIcNatId(formDTO.getIcNatId()); |
|
|
|
relationEntity.setAgencyId(staffInfo.getAgencyId()); |
|
|
|
relationEntity.setPids(StringUtils.isNotBlank(staffInfo.getAgencyPIds())?staffInfo.getAgencyPIds()+":"+formDTO.getAgencyId():staffInfo.getAgencyId()); |
|
|
|
relationEntity.setUserType("synchro"); |
|
|
|
icNatRelationDao.insert(relationEntity); |
|
|
|
} |
|
|
|
|
|
|
|
//3.待同步组织新增业务数据
|
|
|
|
entity.setId(""); |
|
|
|
entity.setAgencyId(staffInfo.getAgencyId()); |
|
|
|
entity.setPids(staffInfo.getAgencyPIds()); |
|
|
|
entity.setUserType("synchro"); |
|
|
|
insert(entity); |
|
|
|
/** |
|
|
|
* @Author sun |
|
|
|
* @Description 【核酸】核酸检测信息取消同步 |
|
|
|
**/ |
|
|
|
@Override |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public void cancelSynchro(MyNatListFormDTO formDTO) { |
|
|
|
//1.获取工作人员缓存数据
|
|
|
|
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId()); |
|
|
|
if (null == staffInfo) { |
|
|
|
throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", formDTO.getUserId())); |
|
|
|
} |
|
|
|
//1.物理删除关系数据
|
|
|
|
if (icNatRelationDao.delRelation(formDTO.getIcNatId(), staffInfo.getAgencyId()) < NumConstant.ONE) { |
|
|
|
log.error(String.format("数据取消同步失败,核酸记录Id->%s", formDTO.getIcNatId())); |
|
|
|
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "取消同步操作失败"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Async |
|
|
|