package doumeemes.service.ext.impl; 
 | 
  
 | 
import com.github.pagehelper.PageHelper; 
 | 
import com.github.pagehelper.PageInfo; 
 | 
import doumeemes.core.constants.ResponseStatus; 
 | 
import doumeemes.core.exception.BusinessException; 
 | 
import doumeemes.core.model.ApiResponse; 
 | 
import doumeemes.core.model.LoginUserInfo; 
 | 
import doumeemes.core.model.PageData; 
 | 
import doumeemes.core.model.PageWrap; 
 | 
import doumeemes.core.utils.Constants; 
 | 
import doumeemes.dao.business.model.Workorder; 
 | 
import doumeemes.dao.ext.CheckAttrExtMapper; 
 | 
import doumeemes.dao.ext.WorkorderCheckAttrExtMapper; 
 | 
import doumeemes.dao.ext.WorkorderExtMapper; 
 | 
import doumeemes.dao.ext.dto.QueryCheckAttrExtDTO; 
 | 
import doumeemes.dao.ext.dto.QueryDepartmentExtDTO; 
 | 
import doumeemes.dao.ext.dto.QueryWorkorderCheckAttrExtDTO; 
 | 
import doumeemes.dao.ext.vo.CheckAttrExtListVO; 
 | 
import doumeemes.dao.ext.vo.DepartmentExtListVO; 
 | 
import doumeemes.dao.ext.vo.WorkorderCheckAttrExtListVO; 
 | 
import doumeemes.service.business.impl.WorkorderServiceImpl; 
 | 
import doumeemes.service.ext.CheckAttrExtService; 
 | 
import org.apache.shiro.SecurityUtils; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.stereotype.Service; 
 | 
  
 | 
import java.util.List; 
 | 
import java.util.stream.Collectors; 
 | 
  
 | 
/** 
 | 
 * 设置类-检点属性信息表Service实现 
 | 
 * @author 江蹄蹄 
 | 
 * @date 2022/05/10 09:30 
 | 
 */ 
 | 
@Service 
 | 
public class CheckAttrExtServiceImpl implements CheckAttrExtService { 
 | 
  
 | 
    @Autowired 
 | 
    private WorkorderCheckAttrExtMapper workorderCheckAttrExtMapper; 
 | 
    @Autowired 
 | 
    private CheckAttrExtMapper checkAttrExtMapper; 
 | 
    @Autowired 
 | 
    private WorkorderServiceImpl workorderServiceimpl; 
 | 
  
 | 
    @Autowired 
 | 
    private WorkorderExtMapper workorderExtMapper; 
 | 
  
 | 
  
 | 
    @Autowired 
 | 
    private DepartmentExtServiceImpl departmentExtServiceimpl; 
 | 
    @Override 
 | 
    public PageData<CheckAttrExtListVO> findPage(PageWrap<QueryCheckAttrExtDTO> pageWrap) { 
 | 
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); 
 | 
        if( pageWrap.getModel().getWorkOrderID() != null){ 
 | 
            Workorder mp = new Workorder(); 
 | 
            mp.setDeleted(Constants.ZERO); 
 | 
            mp.setId(pageWrap.getModel().getWorkOrderID()); 
 | 
            mp.setRootDepartId(user.getRootDepartment().getId()); 
 | 
            mp = workorderExtMapper.selectOne(mp); 
 | 
            if(mp== null){ 
 | 
                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "对不起,工单记录不存在!"); 
 | 
            } 
 | 
            pageWrap.getModel().setProcedureId(mp.getProcedureId()); 
 | 
        } 
 | 
        pageWrap.getModel().setDeleted(Constants.ZERO); 
 | 
        pageWrap.getModel().setRootDepartId(user.getRootDepartment().getId()); 
 | 
  
 | 
        //当前登录用户所在所有工厂型组织 
 | 
        QueryDepartmentExtDTO querydepart=new QueryDepartmentExtDTO(); 
 | 
        querydepart.setType(Constants.ONE); 
 | 
        List<DepartmentExtListVO> departList= departmentExtServiceimpl.getDepartmentListByConditon(querydepart); 
 | 
        if(departList.size()>0){ 
 | 
            List<Integer> departIds =departList.stream().map(DepartmentExtListVO::getId).collect(Collectors.toList()); 
 | 
            pageWrap.getModel().setDepartIds(departIds); 
 | 
        } 
 | 
  
 | 
        PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity()); 
 | 
  
 | 
  
 | 
        List<CheckAttrExtListVO> result = checkAttrExtMapper.selectList(pageWrap.getModel()); 
 | 
        if(result!=null && result.size()>0 && pageWrap.getModel().getWorkOrderID()!=null){ 
 | 
            QueryWorkorderCheckAttrExtDTO p = new QueryWorkorderCheckAttrExtDTO(); 
 | 
            p.setWorkorderId(pageWrap.getModel().getWorkOrderID()); 
 | 
            p.setDeleted(Constants.ZERO); 
 | 
            List<WorkorderCheckAttrExtListVO>  wList =workorderCheckAttrExtMapper.selectList(p); 
 | 
            for(CheckAttrExtListVO model : result){ 
 | 
                model.setWmodel(getWmodelFromList(wList,model.getId())); 
 | 
            } 
 | 
        } 
 | 
        return PageData.from(new PageInfo<>(result)); 
 | 
    } 
 | 
  
 | 
    private WorkorderCheckAttrExtListVO getWmodelFromList(List<WorkorderCheckAttrExtListVO> wList, Integer id) { 
 | 
        if(wList!=null){ 
 | 
            for(WorkorderCheckAttrExtListVO t :wList){ 
 | 
                if(Constants.equalsInteger(t.getAttrId(),id)){ 
 | 
                    return  t; 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        return  null; 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public ApiResponse<List<CheckAttrExtListVO>> getListByCondition(QueryCheckAttrExtDTO query ) { 
 | 
        if(query.getWorkOrderID()!=null){ 
 | 
            Workorder workorder= workorderServiceimpl.findById(query.getWorkOrderID()); 
 | 
            if(workorder!=null){ 
 | 
                query.setProcedureId(workorder.getProcedureId()); 
 | 
            }else{ 
 | 
               // return ApiResponse.failed("工单不存在"); 
 | 
            } 
 | 
        }else{ 
 | 
          //  return ApiResponse.failed("参数错误"); 
 | 
        } 
 | 
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); 
 | 
        query.setDeleted(Constants.ZERO); 
 | 
        query.setRootDepartId(user.getRootDepartment().getId()); 
 | 
        List<CheckAttrExtListVO> result = checkAttrExtMapper.selectList(query); 
 | 
        return ApiResponse.success(result); 
 | 
    } 
 | 
} 
 |