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);
|
}
|
}
|