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.LoginUserInfo; 
 | 
import doumeemes.core.model.PageData; 
 | 
import doumeemes.core.model.PageWrap; 
 | 
import doumeemes.core.utils.Constants; 
 | 
import doumeemes.dao.business.model.Plans; 
 | 
import doumeemes.dao.business.model.Workorder; 
 | 
import doumeemes.dao.ext.UserDeviceExtMapper; 
 | 
import doumeemes.dao.ext.dto.QueryUserDeviceExtDTO; 
 | 
import doumeemes.dao.ext.vo.UserDeviceExtListVO; 
 | 
import doumeemes.service.business.impl.PlansServiceImpl; 
 | 
import doumeemes.service.business.impl.WorkorderServiceImpl; 
 | 
import doumeemes.service.ext.UserDeviceExtService; 
 | 
import org.apache.commons.lang3.StringUtils; 
 | 
import org.apache.shiro.SecurityUtils; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.stereotype.Service; 
 | 
  
 | 
import java.util.ArrayList; 
 | 
import java.util.List; 
 | 
  
 | 
/** 
 | 
 * 设置类-人员绑定设备关联表Service实现 
 | 
 * @author 江蹄蹄 
 | 
 * @date 2022/05/10 09:30 
 | 
 */ 
 | 
@Service 
 | 
public class UserDeviceExtServiceImpl implements UserDeviceExtService { 
 | 
  
 | 
    @Autowired 
 | 
    private UserDeviceExtMapper userDeviceExtMapper; 
 | 
  
 | 
    @Autowired 
 | 
    private PlansServiceImpl plansServiceimpl; 
 | 
  
 | 
    @Autowired 
 | 
    private WorkorderServiceImpl workorderServiceimpl; 
 | 
  
 | 
    @Override 
 | 
    public PageData<UserDeviceExtListVO> findPage(PageWrap<QueryUserDeviceExtDTO> pageWrap) { 
 | 
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); 
 | 
        if(!Constants.equalsInteger(user.getType(),Constants.USERTYPE.COM)){ 
 | 
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对不起,您无权限进行该操作!"); 
 | 
        } 
 | 
        //只能查看当前根组织的数据 
 | 
        pageWrap.getModel().setUmodelRootDepartId(user.getRootDepartment().getId()); 
 | 
//        if(!Constants.equalsInteger(user.getCurComDepartment().getId(),user.getRootDepartment().getId())){ 
 | 
            //如果当前选择的公司级组织非根组织信息,只能查看当前选择公司级组织数据 
 | 
            pageWrap.getModel().setUmodelComDepartId(user.getCurComDepartment().getId()); 
 | 
//        } 
 | 
        //数据权限 
 | 
//        pageWrap.getModel().setCreateUser(user.getId()); 
 | 
        List<Integer> dataPermission = user.getDepartPermissionList(); 
 | 
        if(dataPermission!=null){ 
 | 
            pageWrap.getModel().setCreateUser(user.getId()); 
 | 
            pageWrap.getModel().setDepartIds(dataPermission); 
 | 
           /* if(dataPermission.size() == 0){ 
 | 
                //只能看自己的 
 | 
                pageWrap.getModel().setCreateUser(user.getId()); 
 | 
            }else{ 
 | 
                //否则走数据权限 
 | 
                pageWrap.getModel().setDepartIds(dataPermission); 
 | 
            }*/ 
 | 
        } 
 | 
        PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity()); 
 | 
        pageWrap.getModel().setDeleted(Constants.ZERO); 
 | 
        List<UserDeviceExtListVO> result = userDeviceExtMapper.selectList(pageWrap.getModel()); 
 | 
        return PageData.from(new PageInfo<>(result)); 
 | 
    } 
 | 
  
 | 
  
 | 
    @Override 
 | 
    public List<UserDeviceExtListVO> findAll(QueryUserDeviceExtDTO pageWrap) { 
 | 
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); 
 | 
        if(!Constants.equalsInteger(user.getType(),Constants.USERTYPE.COM)){ 
 | 
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对不起,您无权限进行该操作!"); 
 | 
        } 
 | 
        //只能查看当前根组织的数据 
 | 
        pageWrap. setUmodelRootDepartId(user.getRootDepartment().getId()); 
 | 
//        if(!Constants.equalsInteger(user.getCurComDepartment().getId(),user.getRootDepartment().getId())){ 
 | 
            //如果当前选择的公司级组织非根组织信息,只能查看当前选择公司级组织数据 
 | 
            pageWrap. setUmodelComDepartId(user.getCurComDepartment().getId()); 
 | 
//        } 
 | 
        //数据权限 
 | 
        List<Integer> dataPermission = user.getDepartPermissionList(); 
 | 
        if(dataPermission!=null){ 
 | 
            if(dataPermission.size() == 0){ 
 | 
                //只能看自己的 
 | 
                pageWrap. setUmodelUserId(user.getId()); 
 | 
            }else{ 
 | 
                //否则走数据权限 
 | 
                pageWrap. setDepartIds(dataPermission); 
 | 
            } 
 | 
        } 
 | 
        pageWrap.setDeleted(Constants.ZERO); 
 | 
        List<UserDeviceExtListVO> result = userDeviceExtMapper.selectList(pageWrap); 
 | 
  
 | 
  
 | 
        /** 
 | 
         * 返工返修在做计划分配的时候,如果分配当天有工单生产相同的产品(物料编码+工序相同,则优先分配给相同的生产人员和设备) 
 | 
         *  班组长在分配不良品返工返修计划时,系统应建议自动默认分配给当日相同产品的生产机台/人员(便于充分利用生产机器工装资源),如果当日没有相同产品生产任务,则不作默认由班组长自行选择处理 
 | 
         */ 
 | 
        Plans plan= plansServiceimpl.findById(pageWrap.getPlanId()); 
 | 
        List<Integer> userlist=new ArrayList<>(); 
 | 
        if(plan!=null&&plan.getType()==2){ 
 | 
            for (String role : user.getRoles()) { 
 | 
                if(StringUtils.equals(role,"001")){ 
 | 
                    Workorder workorder=new Workorder(); 
 | 
                    workorder.setDeleted(Constants.ZERO); 
 | 
                    workorder.setPlanId(plan.getId()); 
 | 
                    workorder.setProcedureId(plan.getProcedureId()); 
 | 
                    workorder.setMaterialId(plan.getMaterialId()); 
 | 
                    List<Workorder> workorderList= workorderServiceimpl.findList(workorder); 
 | 
                    for(int w=0;w<workorderList.size();w++){ 
 | 
                        Workorder wodata=workorderList.get(w); 
 | 
                      /* for(int i=0;i<result.size();i++){ 
 | 
                           UserDeviceExtListVO userDeviceExtListVO=result.get(i); 
 | 
  
 | 
                       }*/ 
 | 
                        if(wodata.getProUserId()!=null){ 
 | 
                            userlist.add( wodata.getProUserId()); 
 | 
                        } 
 | 
                    } 
 | 
                     for(int i=0;i<result.size();i++){ 
 | 
                           UserDeviceExtListVO userDeviceExtListVO=result.get(i); 
 | 
                         userDeviceExtListVO.setUserlist(userlist); 
 | 
                       } 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
  
 | 
        return result; 
 | 
    } 
 | 
  
 | 
  
 | 
    @Override 
 | 
    public List<UserDeviceExtListVO> getList(QueryUserDeviceExtDTO queryUserDeviceExtDTO) { 
 | 
        return userDeviceExtMapper.selectList(queryUserDeviceExtDTO); 
 | 
    } 
 | 
} 
 |