package com.project.enforce.service.impl; import cn.hutool.core.convert.Convert; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.project.common.annotation.DataScope; import com.project.common.constant.CheckLevelCodeConstants; import com.project.common.core.domain.entity.SysRole; import com.project.common.core.domain.entity.SysUser; import com.project.common.exception.base.BaseException; import com.project.common.utils.SecurityUtils; import com.project.common.utils.StringUtils; import com.project.enforce.domain.EnforceOrder; import com.project.enforce.domain.bo.editBo.EnforceOrderBo; import com.project.enforce.domain.bo.queryBo.EnforceOrderQueryBo; import com.project.enforce.domain.vo.EnforceOrderVo; import com.project.enforce.mapper.EnforceOrderMapper; import com.project.enforce.service.IEnforceOrderService; import com.project.system.service.ISysDeptService; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Collection; import java.util.List; import java.util.stream.Collectors; /** * 执法单Service业务层处理 * * @author manton */ @Service @RequiredArgsConstructor(onConstructor_ = @Autowired) public class EnforceOrderServiceImpl extends ServiceImpl implements IEnforceOrderService { private final ISysDeptService deptService; @Override//列表查询 @DataScope(deptAlias = "apply_dept_id", userAlias = "apply_user_id") public List queryList(EnforceOrderQueryBo bo) { QueryWrapper qw = getQw(bo); qw.apply(bo.getParams().get("dataScope") != null, bo.getParams().get("dataScope").toString());//数据权限控制 List list = this.list(qw); return Convert.toList(EnforceOrderVo.class , list); } @Override//待审核列表 public List queryCheckList(EnforceOrderQueryBo bo) { SysUser loginUser = SecurityUtils.getLoginUser().getUser(); if (!"01".equals(loginUser.getUserType())) { throw new BaseException("您没有审批权限,请重试!"); } List roleKeys = loginUser.getRoles().stream().map(SysRole::getRoleKey).collect(Collectors.toList()); if (roleKeys.contains(CheckLevelCodeConstants.CHECK_LEVEL_ONE) && roleKeys.contains(CheckLevelCodeConstants.CHECK_LEVEL_TWO)){ bo.setCheckLevel(null); } else if (roleKeys.contains(CheckLevelCodeConstants.CHECK_LEVEL_ONE)){ bo.setCheckLevel(0); } else if (roleKeys.contains(CheckLevelCodeConstants.CHECK_LEVEL_TWO)) { bo.setCheckLevel(1); } else { throw new BaseException("您没有审批权限,请重试!"); } bo.setCheckDeptId(deptService.getCheckDeptIdByLoginDeptId(loginUser.getDeptId())); return this.baseMapper.selectCheckList(bo); } @Override//id查询 public EnforceOrderVo queryById(Long orderId) { EnforceOrder db = this.baseMapper.selectById(orderId); return Convert.convert(EnforceOrderVo.class , db); } @Override//添加 @Transactional public Boolean insertByBo(EnforceOrderBo bo) { EnforceOrder add = Convert.convert(EnforceOrder.class, bo); validEntityBeforeSave(add); return this.save(add); } @Override//修改 @Transactional public Boolean updateByBo(EnforceOrderBo bo) { EnforceOrder update = Convert.convert(EnforceOrder.class, bo); validEntityBeforeSave(update); return this.updateById(update); } @Override//删除 @Transactional public Boolean deleteByIds(Collection ids) { //做一些业务上的校验,判断是否需要校验 return this.removeByIds(ids); } //------------------------------------------------------------------------------------- //保存前校验 private void validEntityBeforeSave(EnforceOrder entity) { if (entity.getOrderId()==null){ entity.setCheckDeptId(deptService.getCheckDeptIdByLoginDeptId(entity.getApplyDeptId())); } } //获取查询参数 private QueryWrapper getQw(EnforceOrderQueryBo bo) { QueryWrapper qw = Wrappers.query(); qw.eq(StringUtils.isNotEmpty(bo.getOrderNo()), "order_no", bo.getOrderNo()); qw.eq(bo.getCompanyId() != null, "company_id", bo.getCompanyId()); qw.like(StringUtils.isNotEmpty(bo.getCompanyName()), "company_name", bo.getCompanyName()); qw.eq(StringUtils.isNotEmpty(bo.getCompanyCode()), "company_code", bo.getCompanyCode()); qw.eq(StringUtils.isNotEmpty(bo.getCompanyUser()), "company_user", bo.getCompanyUser()); qw.eq(StringUtils.isNotEmpty(bo.getCompanyPhone()), "company_phone", bo.getCompanyPhone()); qw.eq(StringUtils.isNotEmpty(bo.getCompanyAddress()), "company_address", bo.getCompanyAddress()); qw.eq(StringUtils.isNotEmpty(bo.getRegionCode()), "region_code", bo.getRegionCode()); qw.like(StringUtils.isNotEmpty(bo.getRegionName()), "region_name", bo.getRegionName()); qw.eq(StringUtils.isNotEmpty(bo.getEnforceReason()), "enforce_reason", bo.getEnforceReason()); qw.eq(bo.getApplyId() != null, "apply_id", bo.getApplyId()); qw.eq(StringUtils.isNotEmpty(bo.getApplyUser()), "apply_user", bo.getApplyUser()); qw.eq(StringUtils.isNotEmpty(bo.getApplyPhone()), "apply_phone", bo.getApplyPhone()); qw.eq(bo.getApplyDeptId() != null, "apply_dept_id", bo.getApplyDeptId()); qw.like(StringUtils.isNotEmpty(bo.getApplyDeptName()), "apply_dept_name", bo.getApplyDeptName()); qw.eq(bo.getApplyTime() != null, "apply_time", bo.getApplyTime()); qw.eq(bo.getUserNum() != null, "user_num", bo.getUserNum()); qw.eq(bo.getWarnStatus() != null, "warn_status", bo.getWarnStatus()); qw.eq(StringUtils.isNotEmpty(bo.getWarnReason()), "warn_reason", bo.getWarnReason()); qw.eq(bo.getOrderStatus() != null, "order_status", bo.getOrderStatus()); qw.eq(bo.getCheckDeptId() != null, "check_dept_id", bo.getCheckDeptId()); qw.like(StringUtils.isNotEmpty(bo.getCheckDeptName()), "check_dept_name", bo.getCheckDeptName()); qw.eq(bo.getCheckStatus() != null, "check_status", bo.getCheckStatus()); qw.eq(StringUtils.isNotEmpty(bo.getCheckReason()), "check_reason", bo.getCheckReason()); qw.eq(bo.getCheckLevel() != null, "check_level", bo.getCheckLevel()); qw.eq(bo.getExecuteId() != null, "execute_id", bo.getExecuteId()); qw.eq(StringUtils.isNotEmpty(bo.getExecuteUser()), "execute_user", bo.getExecuteUser()); qw.eq(StringUtils.isNotEmpty(bo.getExecutePhone()), "execute_phone", bo.getExecutePhone()); qw.eq(bo.getExecuteDeptId() != null, "execute_dept_id", bo.getExecuteDeptId()); qw.like(StringUtils.isNotEmpty(bo.getExecuteDeptName()), "execute_dept_name", bo.getExecuteDeptName()); qw.eq(bo.getExecuteTime() != null, "execute_time", bo.getExecuteTime()); qw.eq(bo.getRegionStatus() != null, "region_status", bo.getRegionStatus()); qw.eq(StringUtils.isNotEmpty(bo.getRegionReason()), "region_reason", bo.getRegionReason()); qw.eq(StringUtils.isNotEmpty(bo.getRegionImgs()), "region_imgs", bo.getRegionImgs()); qw.eq(StringUtils.isNotEmpty(bo.getRegionVideos()), "region_videos", bo.getRegionVideos()); qw.eq(bo.getIsNoticeCompany() != null, "is_notice_company", bo.getIsNoticeCompany()); qw.eq(bo.getIsShow() != null, "is_show", bo.getIsShow()); qw.eq(bo.getIsEva() != null, "is_eva", bo.getIsEva()); qw.eq(bo.getTotalScore() != null, "total_score", bo.getTotalScore()); if (StringUtils.isNotEmpty(bo.getIsAsc()) && StringUtils.isNotEmpty(bo.getOrderByColumn())){ if ("acs".equals(bo.getIsAsc())) { qw.orderByAsc(bo.getOrderByColumn()); } else if ("desc".equals(bo.getIsAsc())) { qw.orderByDesc(bo.getOrderByColumn()); } } return qw; } }