|
|
@@ -1,22 +1,28 @@
|
|
|
package cn.tr.module.smart.common.service.impl;
|
|
|
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
+import cn.hutool.core.date.DateTime;
|
|
|
+import cn.hutool.core.date.DateUnit;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.crypto.digest.DigestUtil;
|
|
|
import cn.tr.core.exception.ServiceException;
|
|
|
import cn.tr.core.exception.TRExcCode;
|
|
|
import cn.tr.core.strategy.LoginUserStrategy;
|
|
|
import cn.tr.core.utils.JsonUtils;
|
|
|
+import cn.tr.module.smart.common.constant.PhaseConstant;
|
|
|
import cn.tr.module.smart.common.dto.BizMissionDocAndSquareCoverDTO;
|
|
|
import cn.tr.module.smart.common.dto.BizMissionDocDTO;
|
|
|
import cn.tr.module.smart.common.dto.BizMissionDocJsonDTO;
|
|
|
import cn.tr.module.smart.common.dto.BizMissionDocQueryDTO;
|
|
|
import cn.tr.module.smart.common.mapper.BizMissionDocMapper;
|
|
|
import cn.tr.module.smart.common.mapper.BizMissionDocSquareMapper;
|
|
|
-import cn.tr.module.smart.common.po.BizMissionDocPO;
|
|
|
-import cn.tr.module.smart.common.po.BizMissionDocSquarePO;
|
|
|
-import cn.tr.module.smart.common.repository.BizMissionDocRepository;
|
|
|
-import cn.tr.module.smart.common.repository.BizMissionDocSquareRepository;
|
|
|
+import cn.tr.module.smart.common.po.*;
|
|
|
+import cn.tr.module.smart.common.repository.*;
|
|
|
import cn.tr.module.smart.common.service.IBizMissionDocService;
|
|
|
+import cn.tr.module.smart.wx.controller.vo.BizDeptAndDocVO;
|
|
|
+import cn.tr.module.smart.wx.dto.BizWxKnowledgeDocQueryDTO;
|
|
|
+import cn.tr.module.smart.wx.dto.BizWxMissionDocQueryDTO;
|
|
|
+import cn.tr.module.smart.wx.dto.BizWxQueryPO;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
@@ -42,7 +48,13 @@ public class BizMissionDocServiceImpl implements IBizMissionDocService {
|
|
|
|
|
|
@Resource
|
|
|
private BizMissionDocSquareRepository bizMissionDocSquareRepository;
|
|
|
+ @Resource
|
|
|
+ private BizClinicRepository bizClinicRepository;
|
|
|
+ @Resource
|
|
|
+ private BizDocDeptRepository bizDocDeptRepository;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private BizDeptRepository bizDeptRepository;
|
|
|
|
|
|
/**
|
|
|
* 根据条件查询宣教文档
|
|
|
@@ -184,4 +196,56 @@ public class BizMissionDocServiceImpl implements IBizMissionDocService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @param query 查询参数
|
|
|
+ * @description: 查询首页宣教文档列表
|
|
|
+ * @author wangzl
|
|
|
+ * @date 2025/6/3
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<BizDeptAndDocVO> selectWxMissionDocList(BizWxMissionDocQueryDTO query) {
|
|
|
+ BizClinicPO bizClinicPO = bizClinicRepository.selectById(query.getClinicId());
|
|
|
+ if (Objects.isNull(bizClinicPO)) {
|
|
|
+ throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "患者手术信息不存在");
|
|
|
+ }
|
|
|
+ DateTime clinicStartTime = DateUtil.beginOfDay(bizClinicPO.getClinicStartTime());
|
|
|
+ DateTime queryDate = DateUtil.beginOfDay(query.getQueryDate());
|
|
|
+ //计算传入时间跟查无如时间差值
|
|
|
+ long time = DateUtil.between(clinicStartTime, queryDate, DateUnit.DAY);
|
|
|
+ //判断传入时间跟手术开始时间之前 手术当天算术前
|
|
|
+ boolean isBefore = DateUtil.compare(queryDate, clinicStartTime) <= 0;
|
|
|
+ String phase;
|
|
|
+ if (isBefore) {
|
|
|
+ phase = PhaseConstant.BEFORE;
|
|
|
+ } else {
|
|
|
+ phase = PhaseConstant.AFTER;
|
|
|
+ }
|
|
|
+ return baseRepository.selectBizDeptAndDocByDeptIdList(new BizWxQueryPO(bizClinicPO.getDeptId(), time, phase));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param query 查询参数
|
|
|
+ * @description: 查询首页知识库列表
|
|
|
+ * @author wangzl
|
|
|
+ * @date 2025/6/3
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<BizDeptAndDocVO> selectWxKnowledgeDocList(BizWxKnowledgeDocQueryDTO query) {
|
|
|
+ return baseRepository.selectBizDeptAndDocByDeptIdList(new BizWxQueryPO(query.getDeptId(), query.getTitle()));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public BizDeptAndDocVO selectMissionDocDetail(String docId) {
|
|
|
+ BizMissionDocPO bizMissionDocPO = baseRepository.selectById(docId);
|
|
|
+ BizDocDeptPO bizDocDeptPO = bizDocDeptRepository.selectOne(new LambdaQueryWrapper<BizDocDeptPO>()
|
|
|
+ .eq(BizDocDeptPO::getDocId, docId)
|
|
|
+ .orderByDesc(BizDocDeptPO::getCreateTime)
|
|
|
+ .last("limit 1"));
|
|
|
+ BizDeptAndDocVO bizDeptAndDocVO = BizMissionDocMapper.INSTANCE.convertWxVODetail(bizMissionDocPO);
|
|
|
+ bizDeptAndDocVO.setDeptId(bizDocDeptPO.getDeptId());
|
|
|
+ BizDeptPO bizDeptPO = bizDeptRepository.selectById(bizDocDeptPO.getDeptId());
|
|
|
+ bizDeptAndDocVO.setDeptName(bizDeptPO.getName());
|
|
|
+ return bizDeptAndDocVO;
|
|
|
+ }
|
|
|
+
|
|
|
}
|