123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282 |
- package com.diagbot.facade;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
- import com.diagbot.client.UserServiceClient;
- import com.diagbot.dto.RespDTO;
- import com.diagbot.dto.VersionDetailDTO;
- import com.diagbot.dto.VersionDetailSpecDTO;
- import com.diagbot.entity.VersionDetail;
- import com.diagbot.entity.VersionInfo;
- import com.diagbot.enums.IsDeleteEnum;
- import com.diagbot.enums.StatusEnum;
- import com.diagbot.exception.CommonErrorCode;
- import com.diagbot.exception.CommonException;
- import com.diagbot.service.impl.VersionDetailServiceImpl;
- import com.diagbot.service.impl.VersionInfoServiceImpl;
- import com.diagbot.util.BeanUtil;
- import com.diagbot.util.DateUtil;
- import com.diagbot.util.ListUtil;
- import com.diagbot.util.StringUtil;
- import com.diagbot.util.UserUtils;
- import com.diagbot.vo.VersionDetailIdVO;
- import com.diagbot.vo.VersionDetailVO;
- import com.diagbot.vo.VersionInfoAndDetailIdVO;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.stream.Collectors;
- /**
- * 版本详情
- *
- * @author wangfeng
- * @Description: TODO
- * @date 2018年11月21日 上午11:38:40
- */
- @Component
- public class VersionDetailFacade extends VersionDetailServiceImpl {
- @Autowired
- VersionDetailServiceImpl versionDetailServiceImpl;
- @Autowired
- UserServiceClient userServiceClient;
- @Autowired
- VersionInfoServiceImpl versionInfoServiceImpl;
- /**
- * 根据版本id查询版本详情
- *
- * @param id
- * @return
- */
- public List<VersionDetailDTO> getById(Long id) {
- QueryWrapper<VersionDetail> versionDetailQuery = new QueryWrapper<>();
- versionDetailQuery
- .eq("is_deleted", IsDeleteEnum.N.getKey())
- .eq("STATUS", StatusEnum.Enable.getKey())
- .eq("version_id", id).orderByAsc("order_no");
- VersionDetail versionDetail = new VersionDetail();
- versionDetail.setVersionId(id);
- List<VersionDetail> datas = list(versionDetailQuery);
- // System.out.println("List<VersionDetail>==="+datas.toString());
- List<VersionDetailDTO> dataNew = new ArrayList<VersionDetailDTO>();
- // 过滤字段
- for (VersionDetail versionData : datas) {
- VersionDetailDTO versionDTO = new VersionDetailDTO();
- versionDTO.setId(versionData.getId());
- //versionDTO.setCreator(versionData.getCreator());
- versionDTO.setDescription(versionData.getDescription());
- versionDTO.setGmtCreate(versionData.getGmtCreate());
- versionDTO.setOrderNo(versionData.getOrderNo());
- versionDTO.setRemark(versionData.getRemark());
- versionDTO.setStatus(versionData.getStatus());
- versionDTO.setTitle(versionData.getTitle());
- versionDTO.setVersionId(versionData.getVersionId());
- dataNew.add(versionDTO);
- }
- return dataNew;
- }
- /**
- * 根据版本id查询版本详情
- *
- * @param id
- * @return
- */
- public List<VersionDetailSpecDTO> getById2(Long id) {
- QueryWrapper<VersionDetail> versionDetailQuery = new QueryWrapper<>();
- Map<String, Object> mapAll = new HashMap<>();
- mapAll.put("is_deleted", IsDeleteEnum.N.getKey());
- mapAll.put("version_id", id);
- mapAll.put("STATUS", StatusEnum.Enable.getKey());
- versionDetailQuery.allEq(mapAll).orderByAsc("order_no");
- VersionDetail versionDetail = new VersionDetail();
- versionDetail.setVersionId(id);
- List<VersionDetail> datas = list(versionDetailQuery);
- List<VersionDetailSpecDTO> dataNew = new ArrayList<>();
- //过滤字段
- dataNew = BeanUtil.listCopyTo(datas, VersionDetailSpecDTO.class);
- return dataNew;
- }
- /**
- * 根据版本ids查询版本详情
- *
- * @param ids
- * @return
- */
- public List<VersionDetailDTO> getByIds(List<Long> ids) {
- List<VersionDetailDTO> dataNew = new ArrayList<VersionDetailDTO>();
- if (ListUtil.isNotEmpty(ids)) {
- QueryWrapper<VersionDetail> versionDetailQuery = new QueryWrapper<>();
- versionDetailQuery
- .eq("is_deleted", IsDeleteEnum.N.getKey())
- .eq("STATUS", StatusEnum.Enable.getKey())
- .in("version_id", ids)
- .orderByAsc("order_no");
- List<VersionDetail> datas = list(versionDetailQuery);
- List<String> modifierid = new ArrayList<>();
- modifierid = datas.stream().map(ac -> ac.getModifier()).collect(Collectors.toList());
- Map<String, String> userNames = new HashMap<>();
- if (modifierid.size() > 0) {
- RespDTO<Map<String, String>> userNamesDTO = userServiceClient.getUserInfoByIds(modifierid);
- if (userNamesDTO == null || !CommonErrorCode.OK.getCode().equals(userNamesDTO.code)) {
- throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
- "获取所有用户信息失败");
- }
- userNames = userNamesDTO.data;
- }
- // 过滤字段
- for (VersionDetail versionData : datas) {
- VersionDetailDTO versionDTO = new VersionDetailDTO();
- versionDTO.setId(versionData.getId());
- //versionDTO.setCreator(versionData.getCreator());
- versionDTO.setModifierid(userNames.get(versionData.getModifier()));
- versionDTO.setDescription(versionData.getDescription());
- versionDTO.setGmtCreate(versionData.getGmtCreate());
- versionDTO.setOrderNo(versionData.getOrderNo());
- versionDTO.setRemark(versionData.getRemark());
- versionDTO.setStatus(versionData.getStatus());
- versionDTO.setTitle(versionData.getTitle());
- versionDTO.setVersionId(versionData.getVersionId());
- dataNew.add(versionDTO);
- }
- }
- return dataNew;
- }
- /**
- * 更新接口
- *
- * @param versionDetailVO
- * @return
- */
- public boolean updateVersionDetail(VersionDetailVO versionDetailVO) {
- // 1.先判断数据是否存在有效
- VersionDetail versionDetailres = checkExist(versionDetailVO.getDetailId());
- //验证主表是否是可修改状态
- checkExistMain(versionDetailres.getVersionId());
- // 3.修改版本详情信息
- VersionDetail versionDetail = new VersionDetail();
- versionDetail.setGmtModified(DateUtil.now());// 修改时间
- versionDetail.setModifier(UserUtils.getCurrentPrincipleID());
- versionDetail.setTitle(versionDetailVO.getTitle());
- versionDetail.setOrderNo(versionDetailVO.getOrderNo());
- versionDetail.setStatus(versionDetailVO.getStatus());
- versionDetail.setId(versionDetailVO.getDetailId());
- versionDetail.setDescription(versionDetailVO.getDescription());
- versionDetail.setRemark(versionDetailVO.getRemark());
- boolean res = updateById(versionDetail);
- if (!res) {
- throw new CommonException(CommonErrorCode.UPDATE_INFO_FAIL);
- }
- return res;
- }
- /**
- * 删除接口
- *
- * @param versionDetailIdVO
- * @return
- */
- public boolean cancelVersionDetail(VersionDetailIdVO versionDetailIdVO) {
- // 1.先判断数据是否存在有效
- VersionDetail versionDetailres = checkExist(versionDetailIdVO.getId());
- //验证主表是否是可修改状态
- checkExistMain(versionDetailres.getVersionId());
- UpdateWrapper<VersionDetail> versionDetailNew = new UpdateWrapper<>();
- versionDetailNew
- .in("id", versionDetailIdVO.getId())
- .eq("is_deleted", IsDeleteEnum.N.getKey())
- .set("is_deleted", IsDeleteEnum.Y.getKey())
- .set("modifier", UserUtils.getCurrentPrincipleID())
- .set("gmt_modified", DateUtil.now());
- return update(new VersionDetail(), versionDetailNew);
- }
- /**
- * 增加明细接口
- *
- * @param versionInfoAndDetailIdVO
- * @return
- */
- public boolean addVersionDetail(VersionInfoAndDetailIdVO versionInfoAndDetailIdVO) {
- //1.增加明细前先判断主版本号的id是否有效
- checkExistMain(versionInfoAndDetailIdVO.getVersionInfoId());
- List<VersionDetail> dataNew = new ArrayList<VersionDetail>();
- List<VersionDetailVO> datas = versionInfoAndDetailIdVO.getVersionDetail();
- for (VersionDetailVO data : datas) {
- VersionDetail versionDetail = new VersionDetail();
- versionDetail.setCreator(UserUtils.getCurrentPrincipleID());
- versionDetail.setGmtCreate(DateUtil.now());
- versionDetail.setGmtModified(DateUtil.now());
- versionDetail.setModifier(UserUtils.getCurrentPrincipleID());
- versionDetail.setDescription(data.getDescription());
- versionDetail.setOrderNo(data.getOrderNo());
- versionDetail.setTitle(data.getTitle());
- versionDetail.setVersionId(versionInfoAndDetailIdVO.getVersionInfoId());
- versionDetail.setRemark(data.getRemark());
- versionDetail.setStatus(String.valueOf(StatusEnum.Enable.getKey()));
- dataNew.add(versionDetail);
- }
- boolean res = versionDetailServiceImpl.saveBatch(dataNew);
- return res;
- }
- /**
- * 判断数据是否存在有效
- *
- * @param id
- */
- private VersionDetail checkExist(Long id) {
- // 1.先判断数据是否存在有效
- QueryWrapper<VersionDetail> VersionInfoFand = new QueryWrapper<>();
- VersionInfoFand.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("id", id);
- VersionDetail versionDetail = getOne(VersionInfoFand, false);
- if (null == versionDetail) {
- throw new CommonException(CommonErrorCode.NOT_EXISTS, "该数据不存在");
- }
- return versionDetail;
- }
- /**
- * 判断数据是否存在有效(主版本)
- *
- * @param id
- */
- private void checkExistMain(Long id) {
- // 1.先判断数据是否存在有效
- QueryWrapper<VersionInfo> VersionInfoFand = new QueryWrapper<>();
- VersionInfoFand.eq("is_deleted", IsDeleteEnum.N.getKey())
- .eq("id", id);
- VersionInfo versionInfo = versionInfoServiceImpl.getOne(VersionInfoFand, false);
- if (null == versionInfo) {
- throw new CommonException(CommonErrorCode.NOT_EXISTS, "主版本号数据不存在");
- }
- if (StringUtil.isNotBlank(versionInfo.getStatus())
- && versionInfo.getStatus().equals(String.valueOf(StatusEnum.Disable.getKey()))) {
- throw new CommonException(CommonErrorCode.NOT_EXISTS, "该版本已停用");
- }
- }
- }
|