Jelajahi Sumber

问卷组推送数据到广场上

wangzl 4 bulan lalu
induk
melakukan
79bb61ca3a

+ 5 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/mapper/BizQuestionGroupSquareMapper.java

@@ -30,6 +30,11 @@ public interface BizQuestionGroupSquareMapper {
 
     @Mappings({
             @Mapping(target = "hospitalGroupId", source = "id"),
+            @Mapping(target = "id", ignore = true),
+            @Mapping(target = "createTime", ignore = true),
+            @Mapping(target = "updateTime", ignore = true),
+            @Mapping(target = "createBy", ignore = true),
+            @Mapping(target = "updateBy", ignore = true)
     })
     BizQuestionGroupSquarePO convertPO(BizQuestionGroupPO source);
 }

+ 18 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/mapper/BizQuestionSquareMapper.java

@@ -1,8 +1,11 @@
 package cn.tr.module.smart.common.mapper;
 
+import cn.tr.module.smart.common.po.BizQuestionPO;
 import cn.tr.module.smart.common.po.BizQuestionSquarePO;
 import cn.tr.module.smart.common.dto.BizQuestionSquareDTO;
 import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.Mappings;
 import org.mapstruct.factory.Mappers;
 
 import java.util.List;
@@ -25,4 +28,19 @@ public interface BizQuestionSquareMapper {
 
     List<BizQuestionSquarePO> convertPOList(List<BizQuestionSquareDTO> source);
 
+    @Mappings({
+            @Mapping(target = "groupId", ignore = true),
+            @Mapping(target = "id",  ignore = true),
+            @Mapping(target = "createTime", ignore = true),
+            @Mapping(target = "updateTime", ignore = true),
+            @Mapping(target = "createBy", ignore = true),
+            @Mapping(target = "updateBy", ignore = true)
+    })
+    BizQuestionSquarePO convertQuestionSquarePO(BizQuestionPO source);
+
+    @Mappings({
+            @Mapping(target = "groupId", ignore = true),
+            @Mapping(target = "id",  ignore = true)
+    })
+    List<BizQuestionSquarePO> convertQuestionSquareListPO(List<BizQuestionPO> source);
 }

+ 2 - 1
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/po/BizMissionDocSquarePO.java

@@ -2,6 +2,7 @@ package cn.tr.module.smart.common.po;
 
 import cn.tr.core.annotation.ColumnDefaultValue;
 import cn.tr.core.annotation.Comment;
+import cn.tr.plugin.mybatis.pojo.BasePO;
 import cn.tr.plugin.mybatis.pojo.TenantPO;
 import com.baomidou.mybatisplus.annotation.*;
 import io.swagger.annotations.ApiModelProperty;
@@ -20,7 +21,7 @@ import org.apache.ibatis.type.JdbcType;
 @TableName(value="biz_mission_doc_square",autoResultMap = true)
 @EqualsAndHashCode(callSuper = true)
 @ToString
-public class BizMissionDocSquarePO extends TenantPO {
+public class BizMissionDocSquarePO extends BasePO {
 
     /** id */
     @TableId

+ 29 - 7
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizQuestionGroupServiceImpl.java

@@ -11,21 +11,25 @@ import cn.tr.module.smart.common.dto.BizQuestionGroupDTO;
 import cn.tr.module.smart.common.dto.BizQuestionGroupQueryDTO;
 import cn.tr.module.smart.common.mapper.BizQuestionGroupMapper;
 import cn.tr.module.smart.common.mapper.BizQuestionGroupSquareMapper;
+import cn.tr.module.smart.common.mapper.BizQuestionSquareMapper;
 import cn.tr.module.smart.common.po.BizQuestionGroupPO;
 import cn.tr.module.smart.common.po.BizQuestionGroupSquarePO;
 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.BizQuestionGroupSquareRepository;
 import cn.tr.module.smart.common.repository.BizQuestionRepository;
 import cn.tr.module.smart.common.repository.BizQuestionSquareRepository;
 import cn.tr.module.smart.common.service.IBizQuestionGroupService;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 医院的问卷组Service接口实现类
@@ -42,6 +46,8 @@ public class BizQuestionGroupServiceImpl implements IBizQuestionGroupService {
     @Autowired
     private BizQuestionGroupSquareRepository bizQuestionGroupSquareRepository;
     @Autowired
+    private BizQuestionSquareServiceImpl bizQuestionSquareServiceImpl;
+    @Autowired
     private BizQuestionSquareRepository bizQuestionSquareRepository;
 
     private static final String[] MD5_FIELDS = {"name", "type", "interval", "frequency"};
@@ -159,15 +165,31 @@ public class BizQuestionGroupServiceImpl implements IBizQuestionGroupService {
         }
         BizQuestionGroupSquarePO bizQuestionGroupSquarePO = bizQuestionGroupSquareRepository.selectOne(new LambdaQueryWrapper<BizQuestionGroupSquarePO>()
                 .eq(BizQuestionGroupSquarePO::getHospitalGroupId, id));
+        BizQuestionGroupSquarePO newBizQuestionGroupSquarePO = BizQuestionGroupSquareMapper.INSTANCE.convertPO(bizQuestionGroupPO);
         if(ObjectUtil.isNull(bizQuestionGroupSquarePO)){
-             bizQuestionGroupSquarePO = BizQuestionGroupSquareMapper.INSTANCE.convertPO(bizQuestionGroupPO);
-             bizQuestionGroupSquarePO.setCitationCount(0);
-             bizQuestionGroupSquareRepository.insert(bizQuestionGroupSquarePO);
-//             bizQuestionSquareRepository.sa(BizQuestionGroupSquareMapper.INSTANCE.convertPOList(bizQuestionPOS),bizQuestionGroupSquarePO.getId());
+            newBizQuestionGroupSquarePO.setCitationCount(0);
+            bizQuestionGroupSquareRepository.insert(newBizQuestionGroupSquarePO);
+            List<BizQuestionSquarePO> bizQuestionSquarePoList = bizQuestionPOS.stream().map(bizQuestionPO -> {
+                BizQuestionSquarePO bizQuestionSquarePO = BizQuestionSquareMapper.INSTANCE.convertQuestionSquarePO(bizQuestionPO);
+                bizQuestionSquarePO.setGroupId(newBizQuestionGroupSquarePO.getId());
+                return bizQuestionSquarePO;
+            }).collect(Collectors.toList());
+            return  bizQuestionSquareServiceImpl.saveOrUpdateBatch(bizQuestionSquarePoList);
         }else {
-
+            Date newDate  = new Date();
+            newBizQuestionGroupSquarePO.setId(bizQuestionGroupSquarePO.getId());
+            newBizQuestionGroupSquarePO.setUpdateBy(currentUserId);
+            newBizQuestionGroupSquarePO.setUpdateTime(newDate);
+            bizQuestionGroupSquareRepository.updateById(newBizQuestionGroupSquarePO);
+            //每个问卷题目太多意义对应太麻烦,所以先删除再添加
+            bizQuestionSquareServiceImpl.remove(new LambdaQueryWrapper<BizQuestionSquarePO>()
+                    .in(BizQuestionSquarePO::getGroupId,bizQuestionGroupSquarePO.getId()));
+            List<BizQuestionSquarePO> bizQuestionSquarePoList = bizQuestionPOS.stream().map(bizQuestionPO -> {
+                BizQuestionSquarePO bizQuestionSquarePO = BizQuestionSquareMapper.INSTANCE.convertQuestionSquarePO(bizQuestionPO);
+                bizQuestionSquarePO.setGroupId(newBizQuestionGroupSquarePO.getId());
+                return bizQuestionSquarePO;
+            }).collect(Collectors.toList());
+            return  bizQuestionSquareServiceImpl.saveOrUpdateBatch(bizQuestionSquarePoList);
         }
-
-        return false;
     }
 }

+ 2 - 1
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizQuestionSquareServiceImpl.java

@@ -1,6 +1,7 @@
 package cn.tr.module.smart.common.service.impl;
 
 import cn.tr.core.exception.TRExcCode;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import cn.hutool.core.collection.CollectionUtil;
@@ -21,7 +22,7 @@ import cn.tr.module.smart.common.mapper.BizQuestionSquareMapper;
  * @date  2025/05/23 16:50
  **/
 @Service
-public class BizQuestionSquareServiceImpl implements IBizQuestionSquareService {
+public class BizQuestionSquareServiceImpl extends ServiceImpl<BizQuestionSquareRepository, BizQuestionSquarePO> implements IBizQuestionSquareService {
     @Autowired
     private BizQuestionSquareRepository baseRepository;
 

+ 3 - 0
tr-test/src/main/resources/application.yml

@@ -93,6 +93,9 @@ tr:
       - sys_export_row
 #      数据对接模块
       - joint_datasource
+      - biz_question_group_square
+      - biz_question_square
+      - biz_mission_doc_square
     ignore-urls:
       - /oauth2/psw/token
       - /sys/log/**