| package com.doumee.service.business.impl; | 
|   | 
| 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.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
| import com.doumee.core.constants.ResponseStatus; | 
| import com.doumee.core.exception.BusinessException; | 
| import com.doumee.core.model.PageData; | 
| import com.doumee.core.model.PageWrap; | 
| import com.doumee.core.utils.Constants; | 
| import com.doumee.core.utils.Utils; | 
| import com.doumee.dao.business.ApproveParamMapper; | 
| import com.doumee.dao.business.model.ApproveParam; | 
| import com.doumee.dao.business.vo.ApproveParamDataVO; | 
| import com.doumee.service.business.ApproveParamService; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.stereotype.Service; | 
| import org.springframework.util.CollectionUtils; | 
|   | 
| import java.util.List; | 
| import java.util.Objects; | 
| import java.util.Optional; | 
| import java.util.stream.Collectors; | 
|   | 
| /** | 
|  * 审批模版配置信息表Service实现 | 
|  * @author 江蹄蹄 | 
|  * @date 2023/12/28 11:46 | 
|  */ | 
| @Service | 
| public class ApproveParamServiceImpl implements ApproveParamService { | 
|   | 
|     @Autowired | 
|     private ApproveParamMapper approveParamMapper; | 
|   | 
|     @Override | 
|     public Integer create(ApproveParam approveParam) { | 
|         this.checkData(approveParam); | 
|         approveParamMapper.insert(approveParam); | 
|         return approveParam.getId(); | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 验证数据必填 | 
|      * @param approveParam | 
|      */ | 
|     public void checkData(ApproveParam approveParam){ | 
|         if(Objects.isNull(approveParam) | 
|                 ||Objects.isNull(approveParam.getType()) | 
|                 ||Objects.isNull(approveParam.getMemberType()) | 
|                 ||Objects.isNull(approveParam.getLevel()) | 
|         ){ | 
|             throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
|         } | 
|         if(approveParam.getType().equals(Constants.ZERO)){ | 
|             if(approveParam.getMemberType().equals(Constants.ONE) | 
|                     && | 
|                     (Objects.isNull(approveParam.getObjIds())||Objects.isNull(approveParam.getObjNames())) | 
|             ){ | 
|                 //指定人员类型 判断数据必填 | 
|                 throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
|             }else if(approveParam.getMemberType().equals(Constants.TWO) | 
|                     && | 
|                     (Objects.isNull(approveParam.getObjLevel())||Objects.isNull(approveParam.getNoleaderOpt())) | 
|             ){ | 
|                 //指定部门主管 判断数据必填 | 
|                 throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
|             } | 
|         }else{ | 
|             if(Objects.isNull(approveParam.getObjIds())||Objects.isNull(approveParam.getObjNames())){ | 
|                 //指定人员类型 判断数据必填 | 
|                 throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
|             } | 
|         } | 
|     } | 
|   | 
|   | 
|     @Override | 
|     public ApproveParamDataVO getApproveParamData(){ | 
|         ApproveParamDataVO approveParamDataVO = new ApproveParamDataVO(); | 
|         List<ApproveParam> approveParamList = approveParamMapper.selectList(new QueryWrapper<ApproveParam>() | 
|                 .lambda().eq(ApproveParam::getIsdeleted,Constants.ZERO) | 
|                 .orderByAsc(ApproveParam::getLevel) | 
|         ); | 
|         approveParamDataVO.setAuditApproveList(approveParamList.stream().filter(m->m.getType().equals(Constants.ZERO)).collect(Collectors.toList())); | 
|         Optional<ApproveParam> paramOptional = approveParamList.stream().filter(m->m.getType().equals(Constants.ONE)).findFirst(); | 
|         if(paramOptional.isPresent()){ | 
|             approveParamDataVO.setCopyForConfig(paramOptional.get()); | 
|         } | 
|         return approveParamDataVO; | 
|     } | 
|   | 
|   | 
|     @Override | 
|     public void deleteById(Integer id) { | 
|         approveParamMapper.deleteById(id); | 
|     } | 
|   | 
|     @Override | 
|     public void delete(ApproveParam approveParam) { | 
|         UpdateWrapper<ApproveParam> deleteWrapper = new UpdateWrapper<>(approveParam); | 
|         approveParamMapper.delete(deleteWrapper); | 
|     } | 
|   | 
|     @Override | 
|     public void deleteByIdInBatch(List<Integer> ids) { | 
|         if (CollectionUtils.isEmpty(ids)) { | 
|             return; | 
|         } | 
|         approveParamMapper.deleteBatchIds(ids); | 
|     } | 
|   | 
|     @Override | 
|     public void updateById(ApproveParam approveParam) { | 
|         this.checkData(approveParam); | 
|         approveParamMapper.updateById(approveParam); | 
|     } | 
|   | 
|     @Override | 
|     public void updateByIdInBatch(List<ApproveParam> approveParams) { | 
|         if (CollectionUtils.isEmpty(approveParams)) { | 
|             return; | 
|         } | 
|         for (ApproveParam approveParam: approveParams) { | 
|             this.updateById(approveParam); | 
|         } | 
|     } | 
|   | 
|     @Override | 
|     public ApproveParam findById(Integer id) { | 
|         return approveParamMapper.selectById(id); | 
|     } | 
|   | 
|     @Override | 
|     public ApproveParam findOne(ApproveParam approveParam) { | 
|         QueryWrapper<ApproveParam> wrapper = new QueryWrapper<>(approveParam); | 
|         return approveParamMapper.selectOne(wrapper); | 
|     } | 
|   | 
|     @Override | 
|     public List<ApproveParam> findList(ApproveParam approveParam) { | 
|         QueryWrapper<ApproveParam> wrapper = new QueryWrapper<>(approveParam); | 
|         return approveParamMapper.selectList(wrapper); | 
|     } | 
|    | 
|     @Override | 
|     public PageData<ApproveParam> findPage(PageWrap<ApproveParam> pageWrap) { | 
|         IPage<ApproveParam> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); | 
|         QueryWrapper<ApproveParam> queryWrapper = new QueryWrapper<>(); | 
|         Utils.MP.blankToNull(pageWrap.getModel()); | 
|         if (pageWrap.getModel().getId() != null) { | 
|             queryWrapper.lambda().eq(ApproveParam::getId, pageWrap.getModel().getId()); | 
|         } | 
|         if (pageWrap.getModel().getCreator() != null) { | 
|             queryWrapper.lambda().eq(ApproveParam::getCreator, pageWrap.getModel().getCreator()); | 
|         } | 
|         if (pageWrap.getModel().getCreateDate() != null) { | 
|             queryWrapper.lambda().ge(ApproveParam::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); | 
|             queryWrapper.lambda().le(ApproveParam::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); | 
|         } | 
|         if (pageWrap.getModel().getEditor() != null) { | 
|             queryWrapper.lambda().eq(ApproveParam::getEditor, pageWrap.getModel().getEditor()); | 
|         } | 
|         if (pageWrap.getModel().getEditDate() != null) { | 
|             queryWrapper.lambda().ge(ApproveParam::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); | 
|             queryWrapper.lambda().le(ApproveParam::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); | 
|         } | 
|         if (pageWrap.getModel().getIsdeleted() != null) { | 
|             queryWrapper.lambda().eq(ApproveParam::getIsdeleted, pageWrap.getModel().getIsdeleted()); | 
|         } | 
|         if (pageWrap.getModel().getRemark() != null) { | 
|             queryWrapper.lambda().eq(ApproveParam::getRemark, pageWrap.getModel().getRemark()); | 
|         } | 
|         if (pageWrap.getModel().getType() != null) { | 
|             queryWrapper.lambda().eq(ApproveParam::getType, pageWrap.getModel().getType()); | 
|         } | 
|         if (pageWrap.getModel().getMemberType() != null) { | 
|             queryWrapper.lambda().eq(ApproveParam::getMemberType, pageWrap.getModel().getMemberType()); | 
|         } | 
|         if (pageWrap.getModel().getLevel() != null) { | 
|             queryWrapper.lambda().eq(ApproveParam::getLevel, pageWrap.getModel().getLevel()); | 
|         } | 
|         if (pageWrap.getModel().getObjNames() != null) { | 
|             queryWrapper.lambda().eq(ApproveParam::getObjNames, pageWrap.getModel().getObjNames()); | 
|         } | 
|         if (pageWrap.getModel().getObjIds() != null) { | 
|             queryWrapper.lambda().eq(ApproveParam::getObjIds, pageWrap.getModel().getObjIds()); | 
|         } | 
|         if (pageWrap.getModel().getObjLevel() != null) { | 
|             queryWrapper.lambda().eq(ApproveParam::getObjLevel, pageWrap.getModel().getObjLevel()); | 
|         } | 
|         if (pageWrap.getModel().getApproveType() != null) { | 
|             queryWrapper.lambda().eq(ApproveParam::getApproveType, pageWrap.getModel().getApproveType()); | 
|         } | 
|         if (pageWrap.getModel().getNoleaderOpt() != null) { | 
|             queryWrapper.lambda().eq(ApproveParam::getNoleaderOpt, pageWrap.getModel().getNoleaderOpt()); | 
|         } | 
|         for(PageWrap.SortData sortData: pageWrap.getSorts()) { | 
|             if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { | 
|                 queryWrapper.orderByDesc(sortData.getProperty()); | 
|             } else { | 
|                 queryWrapper.orderByAsc(sortData.getProperty()); | 
|             } | 
|         } | 
|         return PageData.from(approveParamMapper.selectPage(page, queryWrapper)); | 
|     } | 
|   | 
|     @Override | 
|     public long count(ApproveParam approveParam) { | 
|         QueryWrapper<ApproveParam> wrapper = new QueryWrapper<>(approveParam); | 
|         return approveParamMapper.selectCount(wrapper); | 
|     } | 
| } |