package org.jeecg.modules.dnc.service.impl; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.shiro.SecurityUtils; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.dnc.entity.*; import org.jeecg.modules.dnc.exception.ExceptionCast; import org.jeecg.modules.dnc.mapper.PartsInfoMapper; import org.jeecg.modules.dnc.mapper.WorkStepMapper; import org.jeecg.modules.dnc.response.CommonCode; import org.jeecg.modules.dnc.response.ProcessInfoCode; import org.jeecg.modules.dnc.response.ProductInfoCode; import org.jeecg.modules.dnc.response.UcenterCode; import org.jeecg.modules.dnc.service.IPartsInfoService; import org.jeecg.modules.dnc.service.IPermissionStreamService; import org.jeecg.modules.dnc.service.IWorkStepService; import org.jeecg.modules.dnc.utils.ValidateUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Collections; import java.util.List; /** * @Description: TODO * @Author: zhangherong * @Date: Created in 2020/9/20 9:19 * @Version: 1.0 * @Modified By: */ @Service public class WorkStepServiceImpl extends ServiceImpl implements IWorkStepService { @Autowired private IPermissionStreamService permissionStreamService; @Override public List getByUserPerms(String userId) { if(!ValidateUtil.validateString(userId)) return Collections.emptyList(); return super.getBaseMapper().getByUserPerms(userId); } /** * 根据用户id获取授权的工步信息 * @param userId * @param queryParam 查询条件 * @return */ @Override public List getByUserPerms(String userId,String queryParam){ if(!ValidateUtil.validateString(userId)) return Collections.emptyList(); if(!ValidateUtil.validateString(queryParam)) return Collections.emptyList(); LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); if(ValidateUtil.validateString(queryParam)) { queryWrapper.and(wrapper->wrapper.like(WorkStep::getStepName, queryParam) .or() .like(WorkStep::getStepName, queryParam)); } queryWrapper.orderByAsc(WorkStep::getCreateTime); return super.list(queryWrapper); } /** * 新增产品信息 * @param workStep * @return */ @Override public boolean addWorkStep(WorkStep workStep){ if(workStep == null) ExceptionCast.cast(CommonCode.INVALID_PARAM); if(!ValidateUtil.validateString(workStep.getProductId())) ExceptionCast.cast(ProcessInfoCode.PROCESS_PRODUCT_NONE); if(!ValidateUtil.validateString(workStep.getComponentId())) ExceptionCast.cast(ProcessInfoCode.PROCESS_COMPONENT_NONE); if(!ValidateUtil.validateString(workStep.getStepName())) ExceptionCast.cast(ProcessInfoCode.PROCESS_NAME_NONE); if(!ValidateUtil.validateString(workStep.getStepCode())) ExceptionCast.cast(ProcessInfoCode.PROCESS_CODE_NONE); LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String userId = user.getId(); if(!ValidateUtil.validateString(userId)) ExceptionCast.cast(UcenterCode.UCENTER_ACCOUNT_NOT_EXIST); WorkStep en =getByWorkStepNo(workStep.getProcessId(), workStep.getCraftNo()); if(en != null) { ExceptionCast.cast(ProcessInfoCode.WORKSTEP_NOT_EXIST); } boolean b =super.save(workStep); if(!b) ExceptionCast.cast(CommonCode.FAIL); //添加权限验证 PermissionStream permissionStream = new PermissionStream(); permissionStream.setUserId(userId); permissionStream.setProductId(workStep.getProductId()); permissionStream.setComponentId(workStep.getComponentId()); if (StrUtil.isNotEmpty(workStep.getPartsId())){ permissionStream.setPartsId(workStep.getPartsId()); } permissionStream.setProcessId(workStep.getProcessId()); permissionStream.setStepId(workStep.getId()); return permissionStreamService.save(permissionStream); } /** * 编辑产品信息 * @param id * @param workStep * @return */ @Override public boolean editWorkStep(String id ,WorkStep workStep){ if(!ValidateUtil.validateString(id) || workStep == null) ExceptionCast.cast(CommonCode.INVALID_PARAM); if(!ValidateUtil.validateString(workStep.getStepName())) ExceptionCast.cast(ProcessInfoCode.PROCESS_NAME_NONE); WorkStep en = super.getById(id); if(en == null) ExceptionCast.cast(ProcessInfoCode.WORKSTEP_NOT_EXIST); // workStep.setStepId(id); // workStep.setProductId(null); // workStep.setComponentId(null); // workStep.setPartsId(null); // workStep.setProcessId(null); // workStep.setStepName(workStep.getStepName().toUpperCase()); // workStep.setStepCode(null); return super.updateById(workStep); } @Override public WorkStep getByWorkStepNo(String processId,String craftNo){ if(ValidateUtil.validateString(processId)) { List list = super.lambdaQuery().eq(WorkStep::getProcessId, processId).eq(WorkStep::getCraftNo,craftNo).list(); if(list == null || list.isEmpty()) return null; return list.get(0); } return null; } }