|
@@ -0,0 +1,180 @@
|
|
|
+package com.diagbot.facade;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.diagbot.dto.KlScaleByIdDTO;
|
|
|
+import com.diagbot.dto.KlScaleInfoDTO;
|
|
|
+import com.diagbot.entity.KlConceptScale;
|
|
|
+import com.diagbot.entity.KlConceptStatic;
|
|
|
+import com.diagbot.entity.wrapper.KlScaleDetailWrapper;
|
|
|
+import com.diagbot.enums.IsDeleteEnum;
|
|
|
+import com.diagbot.exception.CommonErrorCode;
|
|
|
+import com.diagbot.exception.CommonException;
|
|
|
+import com.diagbot.util.BeanUtil;
|
|
|
+import com.diagbot.util.DateUtil;
|
|
|
+import com.diagbot.util.ListUtil;
|
|
|
+import com.diagbot.vo.KlScaleByIdVO;
|
|
|
+import com.diagbot.vo.KlScaleClearVO;
|
|
|
+import com.diagbot.vo.KlScaleDetailMenuVO;
|
|
|
+import com.diagbot.vo.KlScaleInfoVO;
|
|
|
+import com.diagbot.vo.KlScaleSatartOrdisaVO;
|
|
|
+import com.diagbot.vo.KlScaleSaveUpDetailVO;
|
|
|
+import com.diagbot.vo.KlScaleSaveUpParentVO;
|
|
|
+import com.diagbot.vo.KlScaleSaveUpVO;
|
|
|
+import com.diagbot.vo.KlScaleSubDetailVO;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author wangfeng
|
|
|
+ * @Description:
|
|
|
+ * @date 2021-05-10 10:29
|
|
|
+ */
|
|
|
+@Component
|
|
|
+public class KlScaleFacade {
|
|
|
+ @Autowired
|
|
|
+ KlConceptScaleFacade klConceptScaleFacade;
|
|
|
+ @Autowired
|
|
|
+ KlConceptStaticFacade klConceptStaticFacade;
|
|
|
+
|
|
|
+ public IPage<KlScaleInfoDTO> getKlScaleInfoAll(KlScaleInfoVO klScaleInfoVO) {
|
|
|
+ IPage<KlScaleInfoDTO> klScaleInfoPage = klConceptStaticFacade.getKlScaleInfoPage(klScaleInfoVO);
|
|
|
+ return klScaleInfoPage;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param klScaleByIdVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public List<KlScaleByIdDTO> getKlScaleById(KlScaleByIdVO klScaleByIdVO) {
|
|
|
+ List<KlScaleByIdDTO> klScaleInfoData = klConceptStaticFacade.getklScaleInfo(klScaleByIdVO);
|
|
|
+ List<Long> conceptId = new ArrayList<>();
|
|
|
+ if (ListUtil.isNotEmpty(klScaleInfoData)) {
|
|
|
+ for (KlScaleByIdDTO data : klScaleInfoData) {
|
|
|
+ conceptId.add(data.getConceptId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (ListUtil.isEmpty(conceptId)) {
|
|
|
+ throw new CommonException(CommonErrorCode.NOT_EXISTS, "该数据不存在!");
|
|
|
+ }
|
|
|
+ KlScaleDetailMenuVO detailMenuVO = new KlScaleDetailMenuVO();
|
|
|
+ detailMenuVO.setConceptId(conceptId);
|
|
|
+ List<KlScaleDetailWrapper> vteFormDetailData = klConceptScaleFacade.getKlScaleDetailData(detailMenuVO);
|
|
|
+ //把子级数据,放在父级下
|
|
|
+ Map<Long, List<KlScaleDetailWrapper>> mapParentId = vteFormDetailData.stream().collect(Collectors.groupingBy(KlScaleDetailWrapper::getConceptId));
|
|
|
+ for (Long key : mapParentId.keySet()) {
|
|
|
+ for (KlScaleByIdDTO klScaleByIdData : klScaleInfoData) {
|
|
|
+ if (klScaleByIdData.getConceptId().equals(key)) {
|
|
|
+ klScaleByIdData.setKlScaleDetail(mapParentId.get(key));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return klScaleInfoData;
|
|
|
+ }
|
|
|
+
|
|
|
+ public Boolean saveUpKlScaleAll(KlScaleSaveUpVO klScaleSaveUpVO) {
|
|
|
+ boolean res = false;
|
|
|
+ Date now = DateUtil.now();
|
|
|
+ int count = klConceptStaticFacade.count(new QueryWrapper<KlConceptStatic>()
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq("concept_id", klScaleSaveUpVO.getConceptId())
|
|
|
+ .ne("id", klScaleSaveUpVO.getId() == null ? -1 : klScaleSaveUpVO.getId()));
|
|
|
+ if (count > 0) {
|
|
|
+ throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该量表已存在");
|
|
|
+ }
|
|
|
+ UpdateWrapper<KlConceptScale> KlConceptScaleUp = new UpdateWrapper<>();
|
|
|
+ KlConceptScaleUp.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("concept_id", klScaleSaveUpVO.getConceptId());
|
|
|
+ res = klConceptScaleFacade.remove(KlConceptScaleUp);
|
|
|
+ if (null == klScaleSaveUpVO.getId()) {
|
|
|
+ KlConceptStatic klScale = new KlConceptStatic();
|
|
|
+ klScale.setConceptId(klScaleSaveUpVO.getConceptId());
|
|
|
+ klScale.setGmtModified(now);
|
|
|
+ klScale.setModifier("");
|
|
|
+ klScale.setStatus(1);
|
|
|
+ res = klConceptStaticFacade.save(klScale);
|
|
|
+ } else {
|
|
|
+ UpdateWrapper<KlConceptStatic> klScaleUp = new UpdateWrapper<>();
|
|
|
+ klScaleUp.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("id", klScaleSaveUpVO.getId())
|
|
|
+ .set("concept_id", klScaleSaveUpVO.getConceptId())
|
|
|
+ .set("modifier", "")
|
|
|
+ .set("gmt_modified", now);
|
|
|
+ ;
|
|
|
+ res = klConceptStaticFacade.update(klScaleUp);
|
|
|
+ }
|
|
|
+ if (res) {
|
|
|
+ List<KlScaleSaveUpParentVO> klScaleParent = klScaleSaveUpVO.getKlScaleParent();
|
|
|
+ if (ListUtil.isNotEmpty(klScaleParent)) {
|
|
|
+ for (KlScaleSaveUpParentVO data : klScaleParent) {
|
|
|
+ KlConceptScale klConceptScale = new KlConceptScale();
|
|
|
+ BeanUtil.copyProperties(data, klConceptScale);
|
|
|
+ klConceptScale.setGmtModified(now);
|
|
|
+ klConceptScale.setModifier("");
|
|
|
+ klConceptScale.setParentId(-1L);
|
|
|
+ klConceptScale.setConceptId(klScaleSaveUpVO.getConceptId());
|
|
|
+ res = klConceptScaleFacade.save(klConceptScale);
|
|
|
+ List<KlScaleSaveUpDetailVO> klScaleSub = data.getKlScaleSub();
|
|
|
+ if (ListUtil.isNotEmpty(klScaleSub)) {
|
|
|
+ for (KlScaleSaveUpDetailVO data1 : klScaleSub) {
|
|
|
+ KlConceptScale klConceptScaleSub = new KlConceptScale();
|
|
|
+ BeanUtil.copyProperties(data1, klConceptScaleSub);
|
|
|
+ klConceptScaleSub.setGmtModified(now);
|
|
|
+ klConceptScaleSub.setModifier("");
|
|
|
+ klConceptScaleSub.setParentId(klConceptScale.getId());
|
|
|
+ klConceptScaleSub.setConceptId(klScaleSaveUpVO.getConceptId());
|
|
|
+ res = klConceptScaleFacade.save(klConceptScaleSub);
|
|
|
+ List<KlScaleSubDetailVO> klScaleDetail = data1.getKlScaleDetail();
|
|
|
+ if (ListUtil.isNotEmpty(klScaleDetail)) {
|
|
|
+ for (KlScaleSubDetailVO data2 : klScaleDetail) {
|
|
|
+ KlConceptScale klConceptScaleDetail = new KlConceptScale();
|
|
|
+ BeanUtil.copyProperties(data2, klConceptScaleDetail);
|
|
|
+ klConceptScaleDetail.setGmtModified(now);
|
|
|
+ klConceptScaleDetail.setModifier("");
|
|
|
+ klConceptScaleDetail.setParentId(klConceptScaleSub.getId());
|
|
|
+ klConceptScaleDetail.setConceptId(klScaleSaveUpVO.getConceptId());
|
|
|
+ res = klConceptScaleFacade.save(klConceptScaleDetail);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
+ public Boolean clearKlScaleAll(KlScaleClearVO klScaleClearVO) {
|
|
|
+ boolean res = false;
|
|
|
+ UpdateWrapper<KlConceptScale> KlConceptScaleUp = new UpdateWrapper<>();
|
|
|
+ KlConceptScaleUp.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("concept_id", klScaleClearVO.getConceptId());
|
|
|
+ res = klConceptScaleFacade.remove(KlConceptScaleUp);
|
|
|
+ UpdateWrapper<KlConceptStatic> klScale = new UpdateWrapper<>();
|
|
|
+ klScale.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("concept_id", klScaleClearVO.getConceptId());
|
|
|
+ res = klConceptStaticFacade.remove(klScale);
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
+ public Boolean startOrDisableScale(KlScaleSatartOrdisaVO klScaleSatartOrdisaVO, int start) {
|
|
|
+ boolean res = false;
|
|
|
+ Date now = DateUtil.now();
|
|
|
+ int sum = klConceptStaticFacade.count(new QueryWrapper<KlConceptStatic>().eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq("id", klScaleSatartOrdisaVO.getId()));
|
|
|
+ if (sum == 0) {
|
|
|
+ throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该数据已不存在!");
|
|
|
+ }
|
|
|
+ UpdateWrapper<KlConceptStatic> klScaleUpdate = new UpdateWrapper<>();
|
|
|
+ klScaleUpdate.eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq("id", klScaleSatartOrdisaVO.getId())
|
|
|
+ .set("status", start)
|
|
|
+ .set("modifier", "")
|
|
|
+ .set("gmt_modified", now);
|
|
|
+ return klConceptStaticFacade.update(klScaleUpdate);
|
|
|
+ }
|
|
|
+}
|