| | |
| | | return result; |
| | | } |
| | | |
| | | public StaAssemblyWorkLast checkUserAndStationUsed(QueryVo last){ |
| | | public StaAssemblyWorkLast checkUserAndStationUsed(QueryVo vo){ |
| | | StaAssemblyWorkLast result = new StaAssemblyWorkLast(); |
| | | PltStation stationInfo = null; |
| | | BaUser userInfo = null; |
| | | if(StringUtils.isBlank(last.getStationId()) || StringUtils.isBlank(last.getUserId())){ |
| | | if(StringUtils.isBlank(vo.getStationId()) || StringUtils.isBlank(vo.getUserId())){ |
| | | throw new RuntimeException("工站编码或员工编码均不能为空,请检查"); |
| | | } |
| | | //工站103 |
| | | if(last.getStationId().startsWith("101")){ |
| | | userInfo = getUserInfo(last.getStationId()); |
| | | if(vo.getStationId().startsWith("101")){ |
| | | userInfo = getUserInfo(vo.getStationId()); |
| | | }else{ |
| | | stationInfo = getStationInfo(last.getStationId()); |
| | | stationInfo = getStationInfo(vo.getStationId()); |
| | | } |
| | | if(last.getUserId().startsWith("103")){ |
| | | stationInfo = getStationInfo(last.getUserId()); |
| | | if(vo.getUserId().startsWith("103")){ |
| | | stationInfo = getStationInfo(vo.getUserId()); |
| | | }else{ |
| | | userInfo = getUserInfo(last.getUserId()); |
| | | userInfo = getUserInfo(vo.getUserId()); |
| | | } |
| | | if(userInfo == null && stationInfo == null){ |
| | | throw new RuntimeException("员工编码:"+ last.getUserId() + "和工站编码:" + last.getStationId() + "不正确,请检查"); |
| | | throw new RuntimeException("员工编码:"+ vo.getUserId() + "和工站编码:" + vo.getStationId() + "不正确,请检查"); |
| | | }else if(userInfo == null){ |
| | | throw new RuntimeException("员工编码:"+ last.getUserId() + "不正确,请检查"); |
| | | throw new RuntimeException("员工编码:"+ vo.getUserId() + "不正确,请检查"); |
| | | }else if(stationInfo == null){ |
| | | throw new RuntimeException("工站编码:" + last.getStationId() + "不正确,请检查"); |
| | | throw new RuntimeException("工站编码:" + vo.getStationId() + "不正确,请检查"); |
| | | } |
| | | //检查表中stationId是否已经存在 |
| | | StaAssemblyWorkLast param = new StaAssemblyWorkLast(); |
| | |
| | | return result; |
| | | } |
| | | @Transactional |
| | | public StaAssemblyWorkLast save(QueryVo last) { |
| | | public StaAssemblyWorkLast save(QueryVo vo) { |
| | | //先check |
| | | StaAssemblyWorkLast checkResult = checkUserAndStationUsed(last); |
| | | StaAssemblyWorkLast checkResult = checkUserAndStationUsed(vo); |
| | | //校验planId processId nodeId |
| | | PrAssemblyPlan params = new PrAssemblyPlan(); |
| | | params.setStatus(1); |
| | | params.setId(last.getPlanId()); |
| | | params.setProcessId(last.getProcessId()); |
| | | params.setId(vo.getPlanId()); |
| | | params.setProcessId(vo.getProcessId()); |
| | | List<PrAssemblyPlan> planList = selectAssyPlanList(params); |
| | | boolean hasNodeId= planList.stream() |
| | | .flatMap(process -> process.nodes.stream()) |
| | | .anyMatch(node -> node.id.equals(last.getNodeId())); |
| | | .anyMatch(node -> node.id.equals(vo.getNodeId())); |
| | | if(!hasNodeId){ |
| | | throw new RuntimeException("节点信息有误或被其他人员修改,请重新选择节点信息"); |
| | | } |
| | | last.setLineId(checkResult.getLineId()); |
| | | vo.setLineId(checkResult.getLineId()); |
| | | StaAssemblyWorkLast staLast = new StaAssemblyWorkLast(); |
| | | BeanUtils.copyProperties(last,staLast); |
| | | BeanUtils.copyProperties(vo,staLast); |
| | | staLast.setUserId(checkResult.getUserId()); |
| | | staLast.setStationId(checkResult.getStationId()); |
| | | int count = 0; |
| | | if(checkResult.getId() == null){ |
| | | BeanUtils.copyProperties(last,staLast); |
| | | BeanUtils.copyProperties(vo,staLast); |
| | | staLast.setUserId(checkResult.getUserId()); |
| | | staLast.setStationId(checkResult.getStationId()); |
| | | staLast.setStatus(1); |
| | |
| | | }else{ |
| | | //保存一条history? |
| | | BeanUtils.copyProperties(checkResult,staLast); |
| | | staLast.setPlanId(last.getPlanId()); |
| | | staLast.setProcessId(last.getProcessId()); |
| | | staLast.setNodeId(last.getNodeId()); |
| | | staLast.setPlanId(vo.getPlanId()); |
| | | staLast.setProcessId(vo.getProcessId()); |
| | | staLast.setNodeId(vo.getNodeId()); |
| | | staLast.setStatus(1); |
| | | staLast.setStartTime(new Date()); |
| | | count = assemblyWorkLastDao.updateByPrimaryKeySelective(staLast); |
| | |
| | | ins.orgName = file.orgName; |
| | | ins.extName = file.extName; |
| | | } |
| | | //workId assistants 传的是单个的userId 必传参数 |
| | | public List<BaUser> updateAssistant(QueryVo vo) { |
| | | //找到workId |
| | | StaAssemblyWorkLast workLast = assemblyWorkLastDao.selectByPrimaryKey(vo.getWorkId()); |
| | | if(workLast == null){ |
| | | throw new RuntimeException("系统中没有该条登录信息,请检查或重新登录"); |
| | | } |
| | | //如果assistants 有101 则删掉 |
| | | StringBuilder sb = new StringBuilder(); |
| | | String[] assistantArr = vo.getAssistants().split(","); |
| | | for (String item : assistantArr) { |
| | | if(item.startsWith("101")){ |
| | | sb.append(item.substring(3)).append(","); |
| | | }else{ |
| | | sb.append(item).append(","); |
| | | } |
| | | } |
| | | String assistantStr = assistantArr.length > 0 ? sb.deleteCharAt(sb.length() - 1).toString() : ""; |
| | | List<BaUser> userInfo = baUserDao.selectByAssistants(vo.getAssistants()); |
| | | return userInfo; |
| | | } |
| | | |
| | | public int addAssistant(String workId ,String assistant) { |
| | | //找到workId |
| | | StaAssemblyWorkLast workLast = assemblyWorkLastDao.selectByPrimaryKey(Long.parseLong(workId)); |
| | | if(workLast == null){ |
| | | throw new RuntimeException("系统中没有当前登录信息,请检查或重新登录"); |
| | | } |
| | | BaUser userInfo = getUserInfo(assistant); |
| | | //当前登录人不能是辅助人员 |
| | | if(workLast.getUserId() == userInfo.getId()){ |
| | | throw new RuntimeException(userInfo.getName() +"是当前登录人员,不必添加为辅助人员."); |
| | | } |
| | | String userId = userInfo.getId().toString(); |
| | | if(StringUtils.isBlank(workLast.getAssistants())){ |
| | | workLast.setAssistants(userId); |
| | | }else{ |
| | | //已经添加的辅助人员 不必重复添加 |
| | | String assistants = workLast.getAssistants(); |
| | | String[] assistantArr = assistants.split(","); |
| | | for (String item : assistantArr) { |
| | | if(userId.equals(item)){ |
| | | throw new RuntimeException(userInfo.getName() +"已经添加为辅助人员,不必重复添加."); |
| | | } |
| | | } |
| | | workLast.setAssistants(assistants +","+ userId); |
| | | } |
| | | int count = assemblyWorkLastDao.updateByPrimaryKey(workLast); |
| | | return count; |
| | | } |
| | | public int removeAssistant(String workId ,String assistant) { |
| | | //找到workId |
| | | StaAssemblyWorkLast workLast = assemblyWorkLastDao.selectByPrimaryKey(Long.parseLong(workId)); |
| | | if(workLast == null){ |
| | | throw new RuntimeException("系统中没有当前登录信息,请检查或重新登录"); |
| | | } |
| | | if((!StringUtils.isBlank(assistant)) && assistant.startsWith("101")){ |
| | | assistant = assistant.substring(3); |
| | | } |
| | | if(!StringUtils.isBlank(workLast.getAssistants())){ |
| | | StringBuilder sb = new StringBuilder(); |
| | | String[] assistantArr = workLast.getAssistants().split(","); |
| | | for (String item : assistantArr) { |
| | | if((!StringUtils.isBlank(assistant)) && (!assistant.equals(item))){ |
| | | sb.append(item).append(","); |
| | | } |
| | | } |
| | | String assistantStr = sb.length() > 0 ? sb.deleteCharAt(sb.length() - 1).toString() : ""; |
| | | workLast.setAssistants(assistantStr); |
| | | } |
| | | int count = assemblyWorkLastDao.updateByPrimaryKey(workLast); |
| | | return count; |
| | | } |
| | | public List<BaUser> getAssistantList(String workId) { |
| | | //找到workId |
| | | StaAssemblyWorkLast workLast = assemblyWorkLastDao.selectByPrimaryKey(Long.parseLong(workId)); |
| | | if(workLast == null){ |
| | | throw new RuntimeException("系统中没有当前登录信息,请检查或重新登录"); |
| | | } |
| | | List<BaUser> assistantList = baUserDao.selectByAssistants(workLast.getAssistants()); |
| | | return assistantList; |
| | | } |
| | | } |