package com.doumee.service.business.impl; 
 | 
  
 | 
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.system.vo.ApproveParamDataVO; 
 | 
import com.doumee.service.business.ApproveParamService; 
 | 
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 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); 
 | 
    } 
 | 
} 
 |