| | |
| | | |
| | | import com.alibaba.excel.util.StringUtils; |
| | | import com.dy.pmsGlobal.daoBa.BaUserMapper; |
| | | import com.dy.pmsGlobal.daoOth.OthFileMapper; |
| | | import com.dy.pmsGlobal.daoPlt.PltProductMapper; |
| | | import com.dy.pmsGlobal.daoPlt.PltStationMapper; |
| | | import com.dy.pmsGlobal.daoPr.PrAssemblyPlanMapper; |
| | | import com.dy.pmsGlobal.daoPr.PrProductionNodeMapper; |
| | | 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.PltProduct; |
| | | 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 |
| | | public class WorkOrderSv { |
| | | private static final int STATUS_NORMAL = 1; |
| | | private static final int STATUS_WORK_LAST_LOGOUT = 2; |
| | | private static final int STATUS_REPAIR = 3; |
| | | private static final int STATUS_WASTE = 4; |
| | | |
| | | private static final String USER_PREFIX = "101"; |
| | | private static final String STATION_PREFIX = "103"; |
| | | |
| | | private PrAssemblyPlanMapper assemblyDao; |
| | | private BaUserMapper baUserDao; |
| | | private PltStationMapper pltStationDao; |
| | | private StaAssemblyWorkLastMapper assemblyWorkLastDao; |
| | | private FileOperate fileOperate; |
| | | private OthFileMapper othFileMapper; |
| | | @Value("${dy.webFile.fmUrl}") |
| | | private String fmUrl ; |
| | | private StaAssemblyWorkHistoryMapper assemblyWorkHistoryDao; |
| | | private PrProductionNodeMapper nodeDao; |
| | | private PltProductMapper productDao; |
| | | |
| | | @Autowired |
| | | public void setAssemblyDao(PrAssemblyPlanMapper assemblyDao) { |
| | | this.assemblyDao = assemblyDao; |
| | | } |
| | | |
| | | @Autowired |
| | | private void setBaUserDao(BaUserMapper baUserDao){ |
| | | private void setBaUserDao(BaUserMapper baUserDao) { |
| | | this.baUserDao = baUserDao; |
| | | } |
| | | |
| | | @Autowired |
| | | private void setPltStationDao(PltStationMapper pltStationDao){ |
| | | private void setPltStationDao(PltStationMapper pltStationDao) { |
| | | this.pltStationDao = pltStationDao; |
| | | } |
| | | |
| | | @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; |
| | | private void setStaAssemblyWorkHistoryDao(StaAssemblyWorkHistoryMapper assemblyWorkHistoryDao) { |
| | | this.assemblyWorkHistoryDao = assemblyWorkHistoryDao; |
| | | } |
| | | |
| | | public BaUser getUserInfo(String id){ |
| | | @Autowired |
| | | private void setStaAssemblyWorkLastDao(StaAssemblyWorkLastMapper assemblyWorkLastDao) { |
| | | this.assemblyWorkLastDao = assemblyWorkLastDao; |
| | | } |
| | | |
| | | @Autowired |
| | | public void setNodeDao(PrProductionNodeMapper nodeDao) { |
| | | this.nodeDao = nodeDao; |
| | | } |
| | | |
| | | @Autowired |
| | | public void setPltProductDao(PltProductMapper productDao) { |
| | | this.productDao = productDao; |
| | | } |
| | | |
| | | |
| | | public BaUser getUserInfo(String id) { |
| | | Long userId = null; |
| | | if(StringUtils.isBlank(id)){ |
| | | if (StringUtils.isBlank(id)) { |
| | | throw new RuntimeException("员工编码不能为空"); |
| | | } |
| | | //用户101 |
| | | if(id.startsWith("101")){ |
| | | if (id.startsWith(USER_PREFIX)) { |
| | | userId = Long.parseLong(id.toString().substring(3)); |
| | | }else{ |
| | | } else { |
| | | userId = Long.parseLong(id.toString()); |
| | | } |
| | | BaUser userInfo = baUserDao.selectByPrimaryKey(userId); |
| | | if(userInfo == null){ |
| | | throw new RuntimeException("员工编码:"+ userId +"不在系统中,请先维护员工信息"); |
| | | }else if(userInfo.getDisabled()){ |
| | | throw new RuntimeException("员工("+userInfo.getName()+")编码:"+ userId +"在系统已禁用,请先启用员工"); |
| | | if (userInfo == null) { |
| | | throw new RuntimeException("员工编码:" + userId + "不在系统中,请先维护员工信息"); |
| | | } else if (userInfo.getDisabled()) { |
| | | throw new RuntimeException("员工(" + userInfo.getName() + ")编码:" + userId + "在系统已禁用,请先启用员工"); |
| | | } |
| | | return userInfo; |
| | | } |
| | | |
| | | public PltStation getStationInfo(String id){ |
| | | public PltStation getStationInfo(String id) { |
| | | //仅检查工站信息以及工站占用情况 |
| | | Long stationId = null; |
| | | if(StringUtils.isBlank(id)){ |
| | | if (StringUtils.isBlank(id)) { |
| | | throw new RuntimeException("工站编码不能为空"); |
| | | } |
| | | //工站103 |
| | | if(id.startsWith("103")){ |
| | | if (id.startsWith(STATION_PREFIX)) { |
| | | stationId = Long.parseLong(id.toString().substring(3)); |
| | | }else{ |
| | | } else { |
| | | stationId = Long.parseLong(id.toString()); |
| | | } |
| | | PltStation stationInfo = pltStationDao.selectByPrimaryKey(stationId); |
| | | if(stationInfo == null){ |
| | | throw new RuntimeException("工站编码:"+ stationId +"不在系统中,请先维护工站信息"); |
| | | }else if(stationInfo.getDisabled()){ |
| | | throw new RuntimeException("工站("+stationInfo.getName()+")编码:"+ stationId +"在系统已禁用,请先启用工站"); |
| | | if (stationInfo == null) { |
| | | throw new RuntimeException("工站编码:" + stationId + "不在系统中,请先维护工站信息"); |
| | | } else if (stationInfo.getDisabled()) { |
| | | throw new RuntimeException("工站(" + stationInfo.getName() + ")编码:" + stationId + "在系统已禁用,请先启用工站"); |
| | | } |
| | | return stationInfo; |
| | | } |
| | | public StaAssemblyWorkLast checkStationUsed(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()); |
| | | }else{ |
| | | stationInfo = getStationInfo(last.getStationId()); |
| | | if (vo.getStationId().startsWith(USER_PREFIX)) { |
| | | userInfo = getUserInfo(vo.getStationId()); |
| | | } else { |
| | | stationInfo = getStationInfo(vo.getStationId()); |
| | | } |
| | | if(last.getUserId().startsWith("103")){ |
| | | stationInfo = getStationInfo(last.getUserId()); |
| | | }else{ |
| | | userInfo = getUserInfo(last.getUserId()); |
| | | if (vo.getUserId().startsWith(STATION_PREFIX)) { |
| | | stationInfo = getStationInfo(vo.getUserId()); |
| | | } else { |
| | | userInfo = getUserInfo(vo.getUserId()); |
| | | } |
| | | if(userInfo == null && stationInfo == null){ |
| | | throw new RuntimeException("员工编码:"+ last.getUserId() + "和工站编码:" + last.getStationId() + "不正确,请检查"); |
| | | }else if(userInfo == null){ |
| | | throw new RuntimeException("员工编码:"+ last.getUserId() + "不正确,请检查"); |
| | | }else if(stationInfo == null){ |
| | | throw new RuntimeException("工站编码:" + last.getStationId() + "不正确,请检查"); |
| | | 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(stationInfo.getId()); |
| | | param.setStatus(1); |
| | | param.setStatus(STATUS_NORMAL); |
| | | 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); |
| | | 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{ |
| | | } else { |
| | | result.setUserId(userInfo.getId()); |
| | | result.setUserName(userInfo.getName()); |
| | | result.setStationId(stationInfo.getId()); |
| | |
| | | } |
| | | return result; |
| | | } |
| | | @Transactional |
| | | public int save(QueryVo last) { |
| | | //先check |
| | | StaAssemblyWorkLast checkResult = checkStationUsed(last); |
| | | |
| | | public StaAssemblyWorkLast getWorkLast(String workId) { |
| | | if(StringUtils.isBlank(workId)){ |
| | | throw new RuntimeException("登录ID为空,请联系管理员查看并解决问题."); |
| | | } |
| | | StaAssemblyWorkLast result = assemblyWorkLastDao.selectByPrimaryKey(Long.parseLong(workId)); |
| | | if (result == null) { |
| | | throw new RuntimeException("系统中没有该条登录信息"); |
| | | //return null; |
| | | } |
| | | BaUser userInfo = getUserInfo(result.getUserId().toString()); |
| | | PltStation stationInfo = getStationInfo(result.getStationId().toString()); |
| | | //校验planId processId nodeId |
| | | PrAssemblyPlan params = new PrAssemblyPlan(); |
| | | params.setStatus(1); |
| | | params.setId(last.getPlanId()); |
| | | params.setProcessId(last.getProcessId()); |
| | | List<PrAssemblyPlan> planList = selectAssyPlanList(params); |
| | | boolean hasNodeId= planList.stream() |
| | | .flatMap(process -> process.nodes.stream()) |
| | | .anyMatch(node -> node.id.equals(last.getNodeId())); |
| | | if(!hasNodeId){ |
| | | PrAssemblyPlan assyPlan = assemblyDao.selectByPrimaryKey(result.getPlanId()); |
| | | boolean hasNodeId = assyPlan.getProcess().getNodes().stream() |
| | | .anyMatch(node -> node.id.equals(result.getNodeId())); |
| | | if (userInfo == null || stationInfo == null || assyPlan == null || (!hasNodeId)) { |
| | | //直接删除记录 |
| | | logout(result.getId().toString()); |
| | | result.setId(null); |
| | | result.setStatus(STATUS_WORK_LAST_LOGOUT); |
| | | if(userInfo == null){ |
| | | result.setUserId(null); |
| | | result.setUserName(""); |
| | | } |
| | | if(stationInfo == null){ |
| | | result.setStationId(null); |
| | | result.setStationName(""); |
| | | } |
| | | if(assyPlan == null){ |
| | | result.setPlanId(null); |
| | | result.setPlanName(""); |
| | | } |
| | | if(!hasNodeId){ |
| | | result.setNodeId(null); |
| | | result.setNodeName(""); |
| | | } |
| | | return result; |
| | | }else { |
| | | result.setPlanName(assyPlan.getName()); |
| | | result.setProcessName(assyPlan.getProcessName()); |
| | | result.setNodeName(assyPlan.getProcess().getNodes().get(0).getContent()); |
| | | //找到对应的产品信息 |
| | | PltProduct product = productDao.selectByPrimaryKey(assyPlan.getProId()); |
| | | if (product != null) { |
| | | result.setProId(product.getId()); |
| | | result.setProName(product.getName()); |
| | | String devicePrefix = "110" + product.getCode() + assyPlan.getBatchNo(); |
| | | result.setDevicePrefix(devicePrefix); |
| | | } |
| | | } |
| | | result.setStationId(stationInfo.getId()); |
| | | result.setStationName(stationInfo.getName()); |
| | | result.setLineId(stationInfo.getLineId()); |
| | | result.setLineName(stationInfo.getLineName()); |
| | | return result; |
| | | } |
| | | |
| | | public StaAssemblyWorkLast checkStationUsed(String stationId) { |
| | | StaAssemblyWorkLast result = new StaAssemblyWorkLast(); |
| | | PltStation stationInfo = null; |
| | | if (StringUtils.isBlank(stationId)) { |
| | | throw new RuntimeException("工站编码不能为空,请检查"); |
| | | } |
| | | stationInfo = getStationInfo(stationId); |
| | | //检查表中stationId是否已经存在 |
| | | StaAssemblyWorkLast param = new StaAssemblyWorkLast(); |
| | | param.setStationId(stationInfo.getId()); |
| | | param.setStatus(STATUS_NORMAL); |
| | | List<StaAssemblyWorkLast> workLasts = assemblyWorkLastDao.selectList(param); |
| | | if (workLasts.size() > 0) { |
| | | result = getWorkLast(workLasts.get(0).getId().toString()); |
| | | } |
| | | result.setStationId(stationInfo.getId()); |
| | | result.setStationName(stationInfo.getName()); |
| | | result.setLineId(stationInfo.getLineId()); |
| | | result.setLineName(stationInfo.getLineName()); |
| | | return result; |
| | | } |
| | | |
| | | @Transactional |
| | | public StaAssemblyWorkLast save(QueryVo vo) { |
| | | //先check |
| | | StaAssemblyWorkLast checkResult = checkUserAndStationUsed(vo); |
| | | //校验planId processId nodeId |
| | | PrAssemblyPlan assyPlan = assemblyDao.selectByPrimaryKey(vo.getPlanId()); |
| | | if (assyPlan == null) { |
| | | throw new RuntimeException("组装任务已经在系统中删除请检查,刷新并重新选择任务"); |
| | | } |
| | | boolean hasNodeId = assyPlan.getProcess().getNodes().stream() |
| | | .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); |
| | | if (checkResult.getId() == null) { |
| | | BeanUtils.copyProperties(vo, staLast);//vo拷贝到staLast |
| | | staLast.setUserId(checkResult.getUserId()); |
| | | staLast.setStationId(checkResult.getStationId()); |
| | | staLast.setStatus(1); |
| | | staLast.setStatus(STATUS_NORMAL); |
| | | staLast.setStartTime(new Date()); |
| | | count = assemblyWorkLastDao.insertSelective(staLast); |
| | | }else{ |
| | | BeanUtils.copyProperties(checkResult,staLast); |
| | | staLast.setPlanId(last.getPlanId()); |
| | | staLast.setProcessId(last.getProcessId()); |
| | | staLast.setNodeId(last.getNodeId()); |
| | | staLast.setStatus(1); |
| | | } else { |
| | | //保存一条history? |
| | | BeanUtils.copyProperties(checkResult, staLast); |
| | | staLast.setPlanId(assyPlan.getId()); |
| | | staLast.setProcessId(assyPlan.getProcess().getId()); |
| | | staLast.setNodeId(vo.getNodeId()); |
| | | staLast.setStatus(STATUS_NORMAL); |
| | | staLast.setStartTime(new Date()); |
| | | count = assemblyWorkLastDao.updateByPrimaryKeySelective(staLast); |
| | | } |
| | | if (count <= 0) { |
| | | throw new RuntimeException("数据库存储失败"); |
| | | } |
| | | StaAssemblyWorkLast result = assemblyWorkLastDao.selectByPrimaryKey(staLast.getId()); |
| | | List<PrProductionNode> nodeInfo = assyPlan.getProcess().getNodes().stream() |
| | | .filter(node -> node.id.equals(vo.getNodeId())).collect(Collectors.toList()); |
| | | result.setPlanName(assyPlan.getName()); |
| | | result.setProcessName(assyPlan.getProcessName()); |
| | | result.setNodeName(assyPlan.getProcess().getNodes().get(0).getContent()); |
| | | //找到对应的产品信息 |
| | | PltProduct product = productDao.selectByPrimaryKey(assyPlan.getProId()); |
| | | if (product == null) { |
| | | throw new RuntimeException("产品信息有误或被其他人员修改,请登录管理系统查看任务关联产品ID为:" + assyPlan.getProId()); |
| | | } |
| | | result.setProId(product.getId()); |
| | | result.setProName(product.getName()); |
| | | String devicePrefix = "110" + product.getCode() + assyPlan.getBatchNo(); |
| | | result.setDevicePrefix(devicePrefix); |
| | | return result; |
| | | } |
| | | |
| | | @Transactional |
| | | public int logout(String id) { |
| | | //找到登录记录 |
| | | StaAssemblyWorkLast workLast = assemblyWorkLastDao.selectByPrimaryKey(Long.parseLong(id)); |
| | | if (workLast == null) { |
| | | throw new RuntimeException("系统中没有该条登录信息"); |
| | | } |
| | | //更新登录记录 |
| | | workLast.setStatus(STATUS_WORK_LAST_LOGOUT); |
| | | 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.nodes.forEach(node -> { |
| | | |
| | | public List<PrAssemblyPlan> selectAssyPlanList(PrAssemblyPlan params) { |
| | | List<PrAssemblyPlan> planList = assemblyDao.selectAssyPlanSimplify(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; |
| | | |
| | | public int addAssistant(String workId, String assistant) { |
| | | //找到workId |
| | | StaAssemblyWorkLast workLast = assemblyWorkLastDao.selectByPrimaryKey(Long.parseLong(workId)); |
| | | if (workLast == null) { |
| | | throw new RuntimeException("系统中没有当前登录信息,请检查或重新登录"); |
| | | } |
| | | OthFile file = othFileMapper.selectByPrimaryKey(ins.fileId); |
| | | if (file == null) { |
| | | return; |
| | | BaUser userInfo = getUserInfo(assistant); |
| | | //当前登录人不能是辅助人员 |
| | | if (workLast.getUserId() == userInfo.getId()) { |
| | | throw new RuntimeException(userInfo.getName() + "是当前登录人员,不必添加为辅助人员."); |
| | | } |
| | | FileRestVo fileRestVo = fileOperate.parseHashcode(fmUrl, file.hash); |
| | | ins.webUrl = fileRestVo.fileSysRestUrl + fileRestVo.fileWebDownloadPath + ins.fileId; |
| | | ins.orgName = file.orgName; |
| | | ins.extName = file.extName; |
| | | 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(USER_PREFIX)) { |
| | | 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; |
| | | } |
| | | } |