|  |  | 
 |  |  | import com.alibaba.excel.util.StringUtils; | 
 |  |  | import com.dy.common.webUtil.BaseResponseUtils; | 
 |  |  | import com.dy.pmsGlobal.daoBa.BaUserMapper; | 
 |  |  | import com.dy.pmsGlobal.daoOth.OthFileMapper; | 
 |  |  | import com.dy.pmsGlobal.daoPlt.PltStationMapper; | 
 |  |  | import com.dy.pmsGlobal.daoPr.PrAssemblyPlanMapper; | 
 |  |  | import com.dy.pmsGlobal.daoSta.StaAssemblyWorkHistoryMapper; | 
 |  |  | import com.dy.pmsGlobal.daoSta.StaAssemblyWorkLastMapper; | 
 |  |  | import com.dy.pmsGlobal.dyFile.FileOperate; | 
 |  |  | import com.dy.pmsGlobal.dyFile.FileRestVo; | 
 |  |  | import com.dy.pmsGlobal.pojoBa.BaUser; | 
 |  |  | import com.dy.pmsGlobal.pojoOth.OthFile; | 
 |  |  | import com.dy.pmsGlobal.pojoPlt.PltStation; | 
 |  |  | import com.dy.pmsGlobal.pojoPr.PrAssemblyPlan; | 
 |  |  | import com.dy.pmsGlobal.pojoPr.PrProductionNode; | 
 |  |  | import com.dy.pmsGlobal.pojoPr.PrWorkingInstruction; | 
 |  |  | import com.dy.pmsGlobal.pojoSta.StaAssemblyWorkHistory; | 
 |  |  | import com.dy.pmsGlobal.pojoSta.StaAssemblyWorkLast; | 
 |  |  | import lombok.extern.slf4j.Slf4j; | 
 |  |  | import org.springframework.beans.BeanUtils; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.beans.factory.annotation.Value; | 
 |  |  | import org.springframework.stereotype.Service; | 
 |  |  | import org.springframework.transaction.annotation.Transactional; | 
 |  |  |  | 
 |  |  | import java.util.Date; | 
 |  |  | import java.util.List; | 
 |  |  | import java.util.concurrent.atomic.AtomicLong; | 
 |  |  | import java.util.stream.Collectors; | 
 |  |  |  | 
 |  |  | @Slf4j | 
 |  |  | @Service | 
 |  |  | 
 |  |  |     private BaUserMapper baUserDao; | 
 |  |  |     private PltStationMapper pltStationDao; | 
 |  |  |     private StaAssemblyWorkLastMapper assemblyWorkLastDao; | 
 |  |  |  | 
 |  |  |     private StaAssemblyWorkHistoryMapper assemblyWorkHistoryDao; | 
 |  |  |     private FileOperate fileOperate; | 
 |  |  |     private OthFileMapper othFileMapper; | 
 |  |  |     @Value("${dy.webFile.fmUrl}") | 
 |  |  |     private String fmUrl ; | 
 |  |  |     @Autowired | 
 |  |  |     public void setAssemblyDao(PrAssemblyPlanMapper assemblyDao) { | 
 |  |  |         this.assemblyDao = assemblyDao; | 
 |  |  | 
 |  |  |         this.pltStationDao = pltStationDao; | 
 |  |  |     } | 
 |  |  |     @Autowired | 
 |  |  |     private void setStaAssemblyWorkHistoryDao(StaAssemblyWorkHistoryMapper assemblyWorkHistoryDao){ | 
 |  |  |         this.assemblyWorkHistoryDao = assemblyWorkHistoryDao; | 
 |  |  |     } | 
 |  |  |     @Autowired | 
 |  |  |     private void setStaAssemblyWorkLastDao(StaAssemblyWorkLastMapper assemblyWorkLastDao){ | 
 |  |  |         this.assemblyWorkLastDao = assemblyWorkLastDao; | 
 |  |  |     } | 
 |  |  |     @Autowired | 
 |  |  |     public void setFileOperate(FileOperate fileOperate){ | 
 |  |  |         this.fileOperate = fileOperate; | 
 |  |  |     } | 
 |  |  |     @Autowired | 
 |  |  |     public void setOthFileMapper(OthFileMapper othFileMapper){ | 
 |  |  |         this.othFileMapper = othFileMapper; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public String checkUser(String id){ | 
 |  |  |     public BaUser getUserInfo(String id){ | 
 |  |  |         Long userId = null; | 
 |  |  |         String message = "USER"; | 
 |  |  |         if(StringUtils.isBlank(id)){ | 
 |  |  |             message = "FALSE^员工编码不能为空"; | 
 |  |  |             return message; | 
 |  |  |         } | 
 |  |  |         //工站103 | 
 |  |  |         if((!StringUtils.isBlank(id)) && id.toString().startsWith("103")){ | 
 |  |  |             message = checkStation(id); | 
 |  |  |             return message; | 
 |  |  |             throw new RuntimeException("员工编码不能为空"); | 
 |  |  |         } | 
 |  |  |         //用户101 | 
 |  |  |         if(id.toString().startsWith("101")){ | 
 |  |  |         if(id.startsWith("101")){ | 
 |  |  |             userId = Long.parseLong(id.toString().substring(3)); | 
 |  |  |         }else{ | 
 |  |  |             userId = Long.parseLong(id.toString()); | 
 |  |  |         } | 
 |  |  |         BaUser userInfo = baUserDao.selectByPrimaryKey(userId); | 
 |  |  |         if(userInfo == null){ | 
 |  |  |             message = "FALSE^员工编码:"+ userId +"不在系统中,请先维护员工信息"; | 
 |  |  |             return message; | 
 |  |  |             throw new RuntimeException("员工编码:"+ userId +"不在系统中,请先维护员工信息"); | 
 |  |  |         }else if(userInfo.getDisabled()){ | 
 |  |  |             throw new RuntimeException("员工("+userInfo.getName()+")编码:"+ userId +"在系统已禁用,请先启用员工"); | 
 |  |  |         } | 
 |  |  |         message += "^"+ userId; | 
 |  |  |         return message; | 
 |  |  |         return userInfo; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public String checkStation(String id){ | 
 |  |  |     public PltStation getStationInfo(String id){ | 
 |  |  |         //仅检查工站信息以及工站占用情况 | 
 |  |  |         Long stationId = null; | 
 |  |  |         String message = "STATION"; | 
 |  |  |         if(StringUtils.isBlank(id)){ | 
 |  |  |             message = "FALSE^工站编码不能为空"; | 
 |  |  |             return message; | 
 |  |  |         } | 
 |  |  |         //用户101 | 
 |  |  |         if((!StringUtils.isBlank(id)) && id.toString().startsWith("101")){ | 
 |  |  |             message = checkUser(id); | 
 |  |  |             return message; | 
 |  |  |             throw new RuntimeException("工站编码不能为空"); | 
 |  |  |         } | 
 |  |  |         //工站103 | 
 |  |  |         if(id.toString().startsWith("103")){ | 
 |  |  |         if(id.startsWith("103")){ | 
 |  |  |             stationId = Long.parseLong(id.toString().substring(3)); | 
 |  |  |         }else{ | 
 |  |  |             stationId = Long.parseLong(id.toString()); | 
 |  |  |         } | 
 |  |  |         PltStation record = new PltStation(); | 
 |  |  |         record.setId(stationId); | 
 |  |  |         List<PltStation> stationInfo = pltStationDao.selectStationList(record); | 
 |  |  |         if(stationInfo.size() == 0){ | 
 |  |  |             message = "FALSE^工站编码:"+ stationId +"不在系统中,请先维护工站信息"; | 
 |  |  |             return message; | 
 |  |  |         PltStation stationInfo = pltStationDao.selectByPrimaryKey(stationId); | 
 |  |  |         if(stationInfo == null){ | 
 |  |  |             throw new RuntimeException("工站编码:"+ stationId +"不在系统中,请先维护工站信息"); | 
 |  |  |         }else if(stationInfo.getDisabled()){ | 
 |  |  |             throw new RuntimeException("工站("+stationInfo.getName()+")编码:"+ stationId +"在系统已禁用,请先启用工站"); | 
 |  |  |         } | 
 |  |  |        //检查工站 | 
 |  |  |         message += "^"+ stationId; | 
 |  |  |         return message; | 
 |  |  |         return stationInfo; | 
 |  |  |     } | 
 |  |  |     public String checkStationUsed(QueryVo last){ | 
 |  |  |         String message = "OK"; | 
 |  |  |         Long userId = null; | 
 |  |  |         Long stationId = null; | 
 |  |  |         String userMsg = checkUser(last.getUserId()); | 
 |  |  |         String stationMsg = checkStation(last.getStationId()); | 
 |  |  |         if(userMsg.startsWith("FALSE") || stationMsg.startsWith("FALSE")){ | 
 |  |  |             if(userMsg.startsWith("FALSE") && stationMsg.startsWith("FALSE")){ | 
 |  |  |                 message = userMsg +","+ stationMsg.split("\\^")[1]; | 
 |  |  |             }else if(userMsg.startsWith("FALSE")){ | 
 |  |  |                 message = userMsg; | 
 |  |  |             }else if(stationMsg.startsWith("FALSE")){ | 
 |  |  |                 message = stationMsg; | 
 |  |  |             } | 
 |  |  |             return message; | 
 |  |  |         }else{//根据结果 找到对应的ID值 | 
 |  |  |             if(userMsg.startsWith("USER")){ | 
 |  |  |                 userId =  Long.parseLong(userMsg.split("\\^")[1]); | 
 |  |  |             }else if(userMsg.startsWith("STATION")){ | 
 |  |  |                 stationId = Long.parseLong(userMsg.split("\\^")[1]); | 
 |  |  |             } | 
 |  |  |             if(stationMsg.startsWith("USER")){ | 
 |  |  |                 userId =  Long.parseLong(stationMsg.split("\\^")[1]); | 
 |  |  |             }else if(stationMsg.startsWith("STATION")){ | 
 |  |  |                 stationId = Long.parseLong(stationMsg.split("\\^")[1]); | 
 |  |  |             } | 
 |  |  |     public StaAssemblyWorkLast checkStationUsed(String id){ | 
 |  |  |         StaAssemblyWorkLast result = new StaAssemblyWorkLast(); | 
 |  |  |         PltStation stationInfo = null; | 
 |  |  |         if(StringUtils.isBlank(id)){ | 
 |  |  |             throw new RuntimeException("工站编码不能为空,请检查"); | 
 |  |  |         } | 
 |  |  |         if(userId == null || stationId == null){ | 
 |  |  |             message = "FALSE^员工编码:"+ last.getUserId() + "或工站编码:" + last.getStationId() + "不正确,请检查"; | 
 |  |  |             return message; | 
 |  |  |         stationInfo = getStationInfo(id); | 
 |  |  |         //检查表中stationId是否已经存在 | 
 |  |  |         StaAssemblyWorkLast param = new StaAssemblyWorkLast(); | 
 |  |  |         param.setStationId(stationInfo.getId()); | 
 |  |  |         param.setStatus(1); | 
 |  |  |         List<StaAssemblyWorkLast> workLasts = assemblyWorkLastDao.selectList(param); | 
 |  |  |         if(workLasts.size() > 0){ | 
 |  |  |             BeanUtils.copyProperties(workLasts.get(0),result); | 
 |  |  |         }else{ | 
 |  |  |             result.setStationId(stationInfo.getId()); | 
 |  |  |             result.setStationName(stationInfo.getName()); | 
 |  |  |             result.setLineId(stationInfo.getLineId()); | 
 |  |  |             result.setLineName(stationInfo.getLineName()); | 
 |  |  |         } | 
 |  |  |         return result; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public StaAssemblyWorkLast checkUserAndStationUsed(QueryVo vo){ | 
 |  |  |         StaAssemblyWorkLast result = new StaAssemblyWorkLast(); | 
 |  |  |         PltStation stationInfo = null; | 
 |  |  |         BaUser userInfo = null; | 
 |  |  |         if(StringUtils.isBlank(vo.getStationId()) || StringUtils.isBlank(vo.getUserId())){ | 
 |  |  |             throw new RuntimeException("工站编码或员工编码均不能为空,请检查"); | 
 |  |  |         } | 
 |  |  |         //工站103 | 
 |  |  |         if(vo.getStationId().startsWith("101")){ | 
 |  |  |             userInfo = getUserInfo(vo.getStationId()); | 
 |  |  |         }else{ | 
 |  |  |             stationInfo = getStationInfo(vo.getStationId()); | 
 |  |  |         } | 
 |  |  |         if(vo.getUserId().startsWith("103")){ | 
 |  |  |             stationInfo = getStationInfo(vo.getUserId()); | 
 |  |  |         }else{ | 
 |  |  |             userInfo = getUserInfo(vo.getUserId()); | 
 |  |  |         } | 
 |  |  |         if(userInfo == null && stationInfo == null){ | 
 |  |  |             throw new RuntimeException("员工编码:"+ vo.getUserId() + "和工站编码:" + vo.getStationId() + "不正确,请检查"); | 
 |  |  |         }else if(userInfo == null){ | 
 |  |  |             throw new RuntimeException("员工编码:"+ vo.getUserId() + "不正确,请检查"); | 
 |  |  |         }else if(stationInfo == null){ | 
 |  |  |             throw new RuntimeException("工站编码:" + vo.getStationId() + "不正确,请检查"); | 
 |  |  |         } | 
 |  |  |         //检查表中stationId是否已经存在 | 
 |  |  |         StaAssemblyWorkLast param = new StaAssemblyWorkLast(); | 
 |  |  |         param.setStationId(stationId); | 
 |  |  |         param.setStationId(stationInfo.getId()); | 
 |  |  |         param.setStatus(1); | 
 |  |  |         List<StaAssemblyWorkLast> userStationList = assemblyWorkLastDao.selectList(param); | 
 |  |  |         if(userStationList.size() > 0){ | 
 |  |  |             message = "FALSE^员工编码:"+ userStationList.get(0).getUserId() + "已经绑定该工站编码:" + userStationList.get(0).getStationId() + ".请先让其解绑"; | 
 |  |  |         }//message = "OK^员工编码:"+ userId+ "已经绑定该工站编码:" + stationId + ".验证通过"; | 
 |  |  |         return message; | 
 |  |  |         List<StaAssemblyWorkLast> workLasts = assemblyWorkLastDao.selectList(param); | 
 |  |  |         long userId = userInfo.getId(); | 
 |  |  |         if(workLasts.size() > 0){ | 
 |  |  |             List<StaAssemblyWorkLast>  userStationList =  workLasts.stream().filter(item->userId == item.getUserId()).collect(Collectors.toList()); | 
 |  |  |             if(userStationList.size() == 0){ | 
 |  |  |                 throw new RuntimeException("员工("+workLasts.get(0).getUserName()+")编码:"+ workLasts.get(0).getUserId() + "已经绑定该工站("+workLasts.get(0).getStationName()+")编码:" + workLasts.get(0).getStationId() + ".请先让其解绑"); | 
 |  |  |             }else{ | 
 |  |  |                 BeanUtils.copyProperties(userStationList.get(0),result); | 
 |  |  |             } | 
 |  |  |         }else{ | 
 |  |  |             result.setUserId(userInfo.getId()); | 
 |  |  |             result.setUserName(userInfo.getName()); | 
 |  |  |             result.setStationId(stationInfo.getId()); | 
 |  |  |             result.setStationName(stationInfo.getName()); | 
 |  |  |             result.setLineId(stationInfo.getLineId()); | 
 |  |  |         } | 
 |  |  |         return result; | 
 |  |  |     } | 
 |  |  |     public List<PrAssemblyPlan> selectList(PrAssemblyPlan params){ | 
 |  |  |         List<PrAssemblyPlan> planList = assemblyDao.selectList(params); | 
 |  |  |     @Transactional | 
 |  |  |     public StaAssemblyWorkLast save(QueryVo vo) { | 
 |  |  |         //先check | 
 |  |  |         StaAssemblyWorkLast checkResult = checkUserAndStationUsed(vo); | 
 |  |  |         //校验planId processId nodeId | 
 |  |  |         PrAssemblyPlan params = new PrAssemblyPlan(); | 
 |  |  |         params.setStatus(1); | 
 |  |  |         params.setId(vo.getPlanId()); | 
 |  |  |         params.setProcessId(vo.getProcessId()); | 
 |  |  |         List<PrAssemblyPlan> planList = selectAssyPlanList(params); | 
 |  |  |         boolean hasNodeId= planList.stream() | 
 |  |  |                 .flatMap(process -> process.getProcess().getNodes().stream()) | 
 |  |  |                 .anyMatch(node -> node.id.equals(vo.getNodeId())); | 
 |  |  |         if(!hasNodeId){ | 
 |  |  |             throw new RuntimeException("节点信息有误或被其他人员修改,请重新选择节点信息"); | 
 |  |  |         } | 
 |  |  |         vo.setLineId(checkResult.getLineId()); | 
 |  |  |         StaAssemblyWorkLast staLast = new StaAssemblyWorkLast(); | 
 |  |  |         BeanUtils.copyProperties(vo,staLast); | 
 |  |  |         staLast.setUserId(checkResult.getUserId()); | 
 |  |  |         staLast.setStationId(checkResult.getStationId()); | 
 |  |  |         int count = 0; | 
 |  |  |         if(checkResult.getId() == null){ | 
 |  |  |             BeanUtils.copyProperties(vo,staLast); | 
 |  |  |             staLast.setUserId(checkResult.getUserId()); | 
 |  |  |             staLast.setStationId(checkResult.getStationId()); | 
 |  |  |             staLast.setStatus(1); | 
 |  |  |             staLast.setStartTime(new Date()); | 
 |  |  |             count = assemblyWorkLastDao.insertSelective(staLast); | 
 |  |  |         }else{ | 
 |  |  |             //保存一条history? | 
 |  |  |             BeanUtils.copyProperties(checkResult,staLast); | 
 |  |  |             staLast.setPlanId(vo.getPlanId()); | 
 |  |  |             staLast.setProcessId(vo.getProcessId()); | 
 |  |  |             staLast.setNodeId(vo.getNodeId()); | 
 |  |  |             staLast.setStatus(1); | 
 |  |  |             staLast.setStartTime(new Date()); | 
 |  |  |             count = assemblyWorkLastDao.updateByPrimaryKeySelective(staLast); | 
 |  |  |         } | 
 |  |  |         if (count <= 0) { | 
 |  |  |             throw new RuntimeException("数据库存储失败"); | 
 |  |  |         } | 
 |  |  |         StaAssemblyWorkLast result = assemblyWorkLastDao.selectByPrimaryKey(staLast.getId()); | 
 |  |  |         return result; | 
 |  |  |     } | 
 |  |  |     @Transactional | 
 |  |  |     public int logout(String id) { | 
 |  |  |         //找到登录记录 | 
 |  |  |         StaAssemblyWorkLast workLast = assemblyWorkLastDao.selectByPrimaryKey(Long.parseLong(id)); | 
 |  |  |         if(workLast == null){ | 
 |  |  |             throw new RuntimeException("系统中没有该条登录信息"); | 
 |  |  |         } | 
 |  |  |         //更新登录记录 | 
 |  |  |         workLast.setStatus(2); | 
 |  |  |         workLast.setEndTime(new Date()); | 
 |  |  |         // 保存history | 
 |  |  |         StaAssemblyWorkHistory history = new StaAssemblyWorkHistory(); | 
 |  |  |         BeanUtils.copyProperties(workLast,history); | 
 |  |  |         history.setId(null); | 
 |  |  |         int count = assemblyWorkHistoryDao.insertSelective(history); | 
 |  |  |         //删除last | 
 |  |  |         assemblyWorkLastDao.deleteByPrimaryKey(Long.parseLong(id)); | 
 |  |  |         return count; | 
 |  |  |     } | 
 |  |  |     public List<PrAssemblyPlan> selectAssyPlanList(PrAssemblyPlan params){ | 
 |  |  |         List<PrAssemblyPlan> planList = assemblyDao.selectAssyPlanList(params); | 
 |  |  |         planList.stream().forEach(process -> { | 
 |  |  |             process.getProcess().getNodes().forEach(node -> { | 
 |  |  |                 if(node.instruction != null){ | 
 |  |  |                     addUrl(node.instruction); | 
 |  |  |                 } | 
 |  |  |             }); | 
 |  |  |         }); | 
 |  |  |         return planList; | 
 |  |  |     } | 
 |  |  | } | 
 |  |  |     private void addUrl(PrWorkingInstruction ins){ | 
 |  |  |         if (ins == null || ins.fileId == null) { | 
 |  |  |             return; | 
 |  |  |         } | 
 |  |  |         OthFile file = othFileMapper.selectByPrimaryKey(ins.fileId); | 
 |  |  |         if (file == null) { | 
 |  |  |             return; | 
 |  |  |         } | 
 |  |  |         FileRestVo fileRestVo = fileOperate.parseHashcode(fmUrl, file.hash); | 
 |  |  |         ins.webUrl = fileRestVo.fileSysRestUrl + fileRestVo.fileWebDownloadPath + ins.fileId; | 
 |  |  |         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; | 
 |  |  |     } | 
 |  |  | } |