| | |
| | | package com.dy.pmsStation.workOrder; |
| | | |
| | | 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.daoPr.PrProductionNodeMapper; |
| | | import com.dy.pmsGlobal.daoPr.PrProductionProcessMapper; |
| | | import com.dy.pmsGlobal.daoPr.PrWorkingInstructionMapper; |
| | | 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.PrWorkingInstruction; |
| | | import com.dy.pmsGlobal.pojoSta.StaAssemblyWorkLast; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.List; |
| | |
| | | @Service |
| | | public class WorkOrderSv { |
| | | 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 ; |
| | | @Autowired |
| | | public void setAssemblyDao(PrAssemblyPlanMapper assemblyDao) { |
| | | this.assemblyDao = assemblyDao; |
| | | } |
| | | |
| | | public String isStationUsed(StaAssemblyWorkLast last){ |
| | | String stationId = ""; |
| | | String userId = ""; |
| | | //判断哪个是人员, 哪个是工站信息 |
| | | /* if(last.getStationId() != null && last.getStationId().toString().startsWith("103")){ |
| | | |
| | | } |
| | | if(last.getUserId() != null && last.getStationId().toString().startsWith("103")){ |
| | | |
| | | } |
| | | PrAssemblyPlan params = new PrAssemblyPlan(); |
| | | params.setStatus(1); |
| | | List<PrAssemblyPlan> list = sv.selectList(params); |
| | | return BaseResponseUtils.buildSuccess(list); |
| | | |
| | | |
| | | log.info("获取工站编号"); |
| | | String maxCode = dao.selectMaxCode(); |
| | | if (StringUtils.isBlank(maxCode)) { |
| | | return DEFAULT_CODE; |
| | | } else { |
| | | int nextCode = Integer.parseInt(maxCode) + 1; |
| | | // 检查溢出 |
| | | if (nextCode > 9999) { |
| | | throw new RuntimeException("工站编号溢出"); |
| | | } |
| | | return String.format(CODE_FORMAT, nextCode); |
| | | }*/ |
| | | return "OK"; |
| | | @Autowired |
| | | private void setBaUserDao(BaUserMapper baUserDao){ |
| | | this.baUserDao = baUserDao; |
| | | } |
| | | @Autowired |
| | | 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; |
| | | } |
| | | |
| | | public List<PrAssemblyPlan> selectList(PrAssemblyPlan params){ |
| | | List<PrAssemblyPlan> planList = assemblyDao.selectList(params); |
| | | public BaUser getUserInfo(String id){ |
| | | Long userId = null; |
| | | if(StringUtils.isBlank(id)){ |
| | | throw new RuntimeException("员工编码不能为空"); |
| | | } |
| | | //用户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){ |
| | | throw new RuntimeException("员工编码:"+ userId +"不在系统中,请先维护员工信息"); |
| | | }else if(userInfo.getDisabled()){ |
| | | throw new RuntimeException("员工("+userInfo.getName()+")编码:"+ userId +"在系统已禁用,请先启用员工"); |
| | | } |
| | | return userInfo; |
| | | } |
| | | |
| | | public PltStation getStationInfo(String id){ |
| | | Long stationId = null; |
| | | if(StringUtils.isBlank(id)){ |
| | | throw new RuntimeException("工站编码不能为空"); |
| | | } |
| | | //工站103 |
| | | if(id.startsWith("103")){ |
| | | stationId = Long.parseLong(id.toString().substring(3)); |
| | | }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 +"在系统已禁用,请先启用工站"); |
| | | } |
| | | //检查表中stationId是否已经存在 |
| | | StaAssemblyWorkLast param = new StaAssemblyWorkLast(); |
| | | param.setStationId(stationId); |
| | | param.setStatus(1); |
| | | List<StaAssemblyWorkLast> userStationList = assemblyWorkLastDao.selectList(param); |
| | | if(userStationList.size() > 0){ |
| | | throw new RuntimeException("员工("+userStationList.get(0).getUserName()+")编码:"+ userStationList.get(0).getUserId() + "已经绑定该工站("+userStationList.get(0).getStationName()+")编码:" + userStationList.get(0).getStationId() + ".请先让其解绑"); |
| | | } |
| | | return stationInfo; |
| | | } |
| | | public String checkUserAndStation(QueryVo last){ |
| | | String message = "OK"; |
| | | Long userId = null; |
| | | Long stationId = null; |
| | | String userMsg ="";// checkUser(last.getUserId()); |
| | | String stationMsg = "";//checkStationUsed(last.getStationId()); |
| | | //工站103 |
| | | if(last.getUserId().startsWith("103")){ |
| | | stationId = getStationInfo(last.getUserId()).getId(); |
| | | }else{ |
| | | userId = getUserInfo(last.getUserId()).getId(); |
| | | } |
| | | if(last.getStationId().startsWith("103")){ |
| | | stationId = getStationInfo(last.getStationId()).getId(); |
| | | }else{ |
| | | //userMsg = checkUser(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]); |
| | | } |
| | | } |
| | | if(userId == null || stationId == null){ |
| | | message = "FALSE^员工编码:"+ last.getUserId() + "或工站编码:" + last.getStationId() + "不正确,请检查"; |
| | | return message; |
| | | } |
| | | return message; |
| | | } |
| | | public List<PrAssemblyPlan> selectAssyPlanList(PrAssemblyPlan params){ |
| | | List<PrAssemblyPlan> planList = assemblyDao.selectAssyPlanList(params); |
| | | planList.stream().forEach(process -> { |
| | | process.nodes.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; |
| | | } |
| | | |
| | | } |