|
|
@@ -1,6 +1,19 @@
|
|
|
package cn.tr.module.smart.common.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.tr.core.exception.TRExcCode;
|
|
|
+import cn.tr.core.strategy.LoginUserStrategy;
|
|
|
+import cn.tr.core.tenant.TenantContextHolder;
|
|
|
+import cn.tr.module.smart.common.mapper.BizQuestionGroupMapper;
|
|
|
+import cn.tr.module.smart.common.mapper.BizQuestionMapper;
|
|
|
+import cn.tr.module.smart.common.mapper.BizQuestionSquareMapper;
|
|
|
+import cn.tr.module.smart.common.po.BizQuestionGroupPO;
|
|
|
+import cn.tr.module.smart.common.po.BizQuestionPO;
|
|
|
+import cn.tr.module.smart.common.po.BizQuestionSquarePO;
|
|
|
+import cn.tr.module.smart.common.repository.BizQuestionGroupRepository;
|
|
|
+import cn.tr.module.smart.common.repository.BizQuestionSquareRepository;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
+import org.checkerframework.checker.units.qual.A;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
@@ -12,6 +25,8 @@ import cn.tr.module.smart.common.po.BizQuestionGroupSquarePO;
|
|
|
import cn.tr.module.smart.common.dto.BizQuestionGroupSquareDTO;
|
|
|
import cn.tr.module.smart.common.dto.BizQuestionGroupSquareQueryDTO;
|
|
|
import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
import cn.tr.module.smart.common.service.IBizQuestionGroupSquareService;
|
|
|
import cn.tr.module.smart.common.mapper.BizQuestionGroupSquareMapper;
|
|
|
/**
|
|
|
@@ -25,6 +40,13 @@ public class BizQuestionGroupSquareServiceImpl implements IBizQuestionGroupSquar
|
|
|
@Autowired
|
|
|
private BizQuestionGroupSquareRepository baseRepository;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private BizQuestionSquareRepository bizQuestionSquareRepository;
|
|
|
+ @Autowired
|
|
|
+ private BizQuestionServiceImpl bizQuestionServiceimpl;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private BizQuestionGroupRepository bizQuestionGroupRepository;
|
|
|
|
|
|
/**
|
|
|
* 根据条件查询问卷组广场
|
|
|
@@ -38,7 +60,7 @@ public class BizQuestionGroupSquareServiceImpl implements IBizQuestionGroupSquar
|
|
|
baseRepository.selectList(new LambdaQueryWrapper<BizQuestionGroupSquarePO>()
|
|
|
)
|
|
|
);
|
|
|
- };
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 根据id查询问卷组广场
|
|
|
@@ -49,7 +71,7 @@ public class BizQuestionGroupSquareServiceImpl implements IBizQuestionGroupSquar
|
|
|
@Override
|
|
|
public BizQuestionGroupSquareDTO selectBizQuestionGroupSquareById(String id){
|
|
|
return BizQuestionGroupSquareMapper.INSTANCE.convertDto(baseRepository.selectById(id));
|
|
|
- };
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 编辑问卷组广场
|
|
|
@@ -61,7 +83,7 @@ public class BizQuestionGroupSquareServiceImpl implements IBizQuestionGroupSquar
|
|
|
@Override
|
|
|
public boolean updateBizQuestionGroupSquareById(BizQuestionGroupSquareDTO source){
|
|
|
return baseRepository.updateById(BizQuestionGroupSquareMapper.INSTANCE.convertPO(source))!=0;
|
|
|
- };
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 新增问卷组广场
|
|
|
@@ -73,7 +95,7 @@ public class BizQuestionGroupSquareServiceImpl implements IBizQuestionGroupSquar
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean insertBizQuestionGroupSquare(BizQuestionGroupSquareDTO source){
|
|
|
return baseRepository.insert(BizQuestionGroupSquareMapper.INSTANCE.convertPO(source))!=0;
|
|
|
- };
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 删除问卷组广场详情
|
|
|
@@ -88,5 +110,75 @@ public class BizQuestionGroupSquareServiceImpl implements IBizQuestionGroupSquar
|
|
|
throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
|
|
|
}
|
|
|
return baseRepository.deleteBatchIds(ids);
|
|
|
- };
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param id
|
|
|
+ * @description: TODO
|
|
|
+ * @author wangzl
|
|
|
+ * @date 2025/7/31
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public boolean checkContent(String id) {
|
|
|
+ BizQuestionGroupSquarePO bizQuestionGroupSquarePO = baseRepository.selectById(id);
|
|
|
+ if(ObjectUtil.isNull(bizQuestionGroupSquarePO)){
|
|
|
+ throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"校验的数据不存在");
|
|
|
+ }
|
|
|
+ BizQuestionGroupPO bizQuestionGroupPO = bizQuestionGroupRepository.selectOne(new LambdaQueryWrapper<BizQuestionGroupPO>()
|
|
|
+ .eq(BizQuestionGroupPO::getMd5, bizQuestionGroupSquarePO.getMd5()));
|
|
|
+ return ObjectUtil.isNotNull(bizQuestionGroupPO);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param id
|
|
|
+ * @description: 拉取问卷组到自己医院
|
|
|
+ * @author wangzl
|
|
|
+ * @date 2025/7/31
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public boolean pullQuestionGroup(String id) {
|
|
|
+ String currentUserId = LoginUserStrategy.tr.getCurrentUserId();
|
|
|
+ BizQuestionGroupSquarePO bizQuestionGroupSquarePO = baseRepository.selectById(id);
|
|
|
+ if(ObjectUtil.isNull(bizQuestionGroupSquarePO)){
|
|
|
+ throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"拉取问卷不存在");
|
|
|
+ }
|
|
|
+ List<BizQuestionSquarePO> bizQuestionSquarePOS = bizQuestionSquareRepository.selectList(new LambdaQueryWrapper<BizQuestionSquarePO>()
|
|
|
+ .in(BizQuestionSquarePO::getGroupId, bizQuestionGroupSquarePO.getId()));
|
|
|
+ String tenantId = TenantContextHolder.getTenantId();
|
|
|
+ BizQuestionGroupPO bizQuestionGroupPO = bizQuestionGroupRepository.selectOne(new LambdaQueryWrapper<BizQuestionGroupPO>()
|
|
|
+ .eq(BizQuestionGroupPO::getMd5, bizQuestionGroupSquarePO.getMd5())
|
|
|
+ .eq(BizQuestionGroupPO::getTenantId, tenantId));
|
|
|
+ BizQuestionGroupPO newBizQuestionGroupPO = BizQuestionGroupMapper.INSTANCE.convertQuestionGroupPO(bizQuestionGroupSquarePO);
|
|
|
+ if(ObjectUtil.isNotNull(bizQuestionGroupPO)){
|
|
|
+ //相同内容并且是自己医院问卷对问卷信息做更新
|
|
|
+ newBizQuestionGroupPO.setId(bizQuestionGroupPO.getId());
|
|
|
+ newBizQuestionGroupPO.setUpdateBy(currentUserId);
|
|
|
+ newBizQuestionGroupPO.setUpdateTime(new Date());
|
|
|
+ bizQuestionGroupRepository.updateById(newBizQuestionGroupPO);
|
|
|
+ //每个问卷题目太多意义
|
|
|
+ // 对应太麻烦,所以先删除再添加
|
|
|
+ bizQuestionServiceimpl.remove(new LambdaQueryWrapper<BizQuestionPO>()
|
|
|
+ .in(BizQuestionPO::getGroupId,bizQuestionGroupPO.getId()));
|
|
|
+ List<BizQuestionPO> bizQuestionPOS = bizQuestionSquarePOS.stream().map(bizQuestionSquarePO -> {
|
|
|
+ BizQuestionPO bizQuestionPO = BizQuestionMapper.INSTANCE.convertQuestionPO(bizQuestionSquarePO);
|
|
|
+ bizQuestionPO.setGroupId(bizQuestionGroupPO.getId());
|
|
|
+ return bizQuestionPO;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ bizQuestionServiceimpl.saveOrUpdateBatch(bizQuestionPOS);
|
|
|
+ }else {
|
|
|
+ newBizQuestionGroupPO.setSquareId(bizQuestionGroupSquarePO.getId());
|
|
|
+ bizQuestionGroupRepository.insert(newBizQuestionGroupPO);
|
|
|
+ List<BizQuestionPO> bizQuestionPOS = bizQuestionSquarePOS.stream().map(bizQuestionSquarePO -> {
|
|
|
+ BizQuestionPO bizQuestionPO = BizQuestionMapper.INSTANCE.convertQuestionPO(bizQuestionSquarePO);
|
|
|
+ bizQuestionPO.setGroupId(newBizQuestionGroupPO.getId());
|
|
|
+ return bizQuestionPO;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ bizQuestionServiceimpl.saveOrUpdateBatch(bizQuestionPOS);
|
|
|
+ }
|
|
|
+ //增加引用次数
|
|
|
+ return baseRepository.update(null , new LambdaUpdateWrapper<BizQuestionGroupSquarePO>()
|
|
|
+ .set(BizQuestionGroupSquarePO::getCitationCount,bizQuestionGroupSquarePO.getCitationCount()+1)
|
|
|
+ .eq(BizQuestionGroupSquarePO::getId,bizQuestionGroupSquarePO.getId()))!=0;
|
|
|
+ }
|
|
|
}
|