123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- 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.KlScaleSaveGroupVO;
- 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, Map<Integer, List<KlScaleDetailWrapper>>> collect = vteFormDetailData.stream().filter(i -> !i.getParentId().equals(-1)).collect(Collectors.groupingBy(KlScaleDetailWrapper::getConceptId, Collectors.groupingBy(KlScaleDetailWrapper::getGroupNum)));
- //把子级数据,放在父级下
- 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(klScaleSaveUpVO.getModifier());
- klScale.setStatus(1);
- res = klConceptStaticFacade.save(klScale);
- }
- //保存问题明细
- if (res) {
- //组别默认从1开始
- int baseGroup = 0;
- 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(klScaleSaveUpVO.getModifier());
- klConceptScale.setParentId(-1L);
- klConceptScale.setConceptId(klScaleSaveUpVO.getConceptId());
- res = klConceptScaleFacade.save(klConceptScale);
- List<KlScaleSaveGroupVO> klScaleSaveGroup = data.getKlScaleSaveGroup();
- if (ListUtil.isNotEmpty(klScaleSaveGroup)) {
- for (KlScaleSaveGroupVO groupData : klScaleSaveGroup) {//组别
- baseGroup = baseGroup + 1;
- List<KlScaleSaveUpDetailVO> klScaleSub = groupData.getKlScaleSub();
- if (ListUtil.isNotEmpty(klScaleSub)) {
- for (KlScaleSaveUpDetailVO data1 : klScaleSub) {//问题
- KlConceptScale klConceptScaleSub = new KlConceptScale();
- BeanUtil.copyProperties(data1, klConceptScaleSub);
- klConceptScaleSub.setGmtModified(now);
- klConceptScaleSub.setGroupNum(baseGroup);
- klConceptScaleSub.setModifier(klScaleSaveUpVO.getModifier());
- 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(klScaleSaveUpVO.getModifier());
- 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", klScaleSatartOrdisaVO.getModifier())
- .set("gmt_modified", now);
- return klConceptStaticFacade.update(klScaleUpdate);
- }
- }
|