111
k94314517
2023-08-18 efd825d47f9cab3d7535e069d4a1b5e094e92e44
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
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);
    }
}