| | |
| | | |
| | | import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
| | | import com.baomidou.mybatisplus.core.toolkit.StringUtils; |
| | | import com.dy.pmsGlobal.daoPlt.PltProductMapper; |
| | | import com.dy.pmsGlobal.daoPlt.PltProductQualityInspectionItemsMapper; |
| | | import com.dy.pmsGlobal.daoPlt.PltProductTestInspectionItemsMapper; |
| | | import com.dy.pmsGlobal.daoOth.OthFileMapper; |
| | | import com.dy.pmsGlobal.daoPlt.*; |
| | | import com.dy.pmsGlobal.daoPr.PrAssemblyPlanMapper; |
| | | import com.dy.pmsGlobal.daoPr.PrProductionNodeMapper; |
| | | import com.dy.pmsGlobal.daoSta.*; |
| | | import com.dy.pmsGlobal.pojoPlt.PltProduct; |
| | | import com.dy.pmsGlobal.pojoPlt.PltProductQualityInspectionItems; |
| | | import com.dy.pmsGlobal.pojoPlt.PltProductTestInspectionItems; |
| | | import com.dy.pmsGlobal.dyFile.FileOperate; |
| | | import com.dy.pmsGlobal.dyFile.FileRestVo; |
| | | import com.dy.pmsGlobal.pojoOth.OthFile; |
| | | import com.dy.pmsGlobal.pojoPlt.*; |
| | | import com.dy.pmsGlobal.pojoPr.PrAssemblyPlan; |
| | | import com.dy.pmsGlobal.pojoPr.PrProductionNode; |
| | | import com.dy.pmsGlobal.pojoPr.PrWorkingInstruction; |
| | | import com.dy.pmsGlobal.pojoSta.*; |
| | | import com.dy.pmsGlobal.util.DeviceStatus; |
| | | import com.dy.pmsGlobal.util.QrCodeConstant; |
| | | 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; |
| | | |
| | |
| | | private PltProductQualityInspectionItemsMapper qualityItemsDao; |
| | | private PltProductTestInspectionItemsMapper testItemsDao; |
| | | private PltProductMapper productDao; |
| | | private PltProParamsMapper paramsDao; |
| | | private PltProductFileMapper productFileDao; |
| | | private FileOperate fileOperate; |
| | | private OthFileMapper othFileMapper; |
| | | @Value("${dy.webFile.fmUrl}") |
| | | private String fmUrl; |
| | | @Autowired |
| | | public void setDeviceLastDao(StaDeviceLastMapper deviceLastDao) { |
| | | this.deviceLastDao = deviceLastDao; |
| | |
| | | @Autowired |
| | | public void setProductDao(PltProductMapper productDao) { |
| | | this.productDao = productDao; |
| | | } |
| | | |
| | | @Autowired |
| | | public void setParamsDao(PltProParamsMapper paramsDao) { |
| | | this.paramsDao = paramsDao; |
| | | } |
| | | |
| | | @Autowired |
| | | public void setProductFileDao(PltProductFileMapper productFileDao) { |
| | | this.productFileDao = productFileDao; |
| | | } |
| | | |
| | | @Autowired |
| | | public void setFileOperate(FileOperate fileOperate) { |
| | | this.fileOperate = fileOperate; |
| | | } |
| | | |
| | | @Autowired |
| | | public void setOthFileMapper(OthFileMapper othFileMapper) { |
| | | this.othFileMapper = othFileMapper; |
| | | } |
| | | |
| | | @Transactional |
| | |
| | | |
| | | record.updatedBy = workLast.userId; |
| | | record.assistants = params.assistants; |
| | | record.errorMsg = params.errorMsg; |
| | | |
| | | PrProductionNode node = nodeDao.selectByPrimaryKey(workLast.nodeId); |
| | | record.nodeContent = node.content; |
| | |
| | | saveDeviceProductionLog(deviceLast); |
| | | return count; |
| | | } |
| | | //根据节点查出节点作业指导书 |
| | | public PrProductionNode getSopByNodeId(String nodeId) { |
| | | if(com.alibaba.excel.util.StringUtils.isBlank(nodeId)){ |
| | | throw new RuntimeException("节点ID不能为空"); |
| | | } |
| | | PrProductionNode node = nodeDao.selectByPrimaryKey(Long.parseLong(nodeId)); |
| | | if(node == null){ |
| | | throw new RuntimeException("节点ID不存在,请检查"); |
| | | } |
| | | if(node.instruction != null){ |
| | | addUrl(node.instruction); |
| | | } |
| | | return node; |
| | | } |
| | | //主要技术参数 俩个方法同 platform-->product-->productSv |
| | | public List<PltProductParams> getParamsByProId(String proId) { |
| | | if(StringUtils.isBlank(proId)){ |
| | | throw new RuntimeException("产品ID不能为空"); |
| | | } |
| | | List<PltProductParams> proParams = paramsDao.selectParams(Long.parseLong(proId)); |
| | | return proParams; |
| | | } |
| | | // 根据产品查出产品文件 |
| | | public List<PltProductFile> getFileByProId(String proId) { |
| | | if(StringUtils.isBlank(proId)){ |
| | | throw new RuntimeException("产品ID不能为空"); |
| | | } |
| | | List<PltProductFile> proFiles = productFileDao.selectDocuments(Long.parseLong(proId)); |
| | | proFiles.stream().forEach(doc -> { |
| | | OthFile file = othFileMapper.selectByPrimaryKey(doc.fileId); |
| | | if (file == null) { |
| | | return; |
| | | } |
| | | FileRestVo fileRestVo = fileOperate.parseHashcode(fmUrl, file.hash); |
| | | doc.webUrl = fileRestVo.fileSysRestUrl + fileRestVo.fileWebDownloadPath + doc.fileId; |
| | | doc.orgName = file.orgName; |
| | | doc.extName = file.extName; |
| | | }); |
| | | return proFiles; |
| | | } |
| | | |
| | | public List<PltProductQualityInspectionItems> getQualityItems(String proId) { |
| | | Map<String, Object> params = new HashMap<>(); |
| | |
| | | } |
| | | return false; |
| | | } |
| | | 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; |
| | | } |
| | | private PltProduct addWebUrl(PltProduct pro) { |
| | | if (pro != null) { |
| | | if (pro.image != null) { |
| | | String filePathWithWebUrl = getFilePathWithWebUrl(pro.image); |
| | | pro.imageWebPath = filePathWithWebUrl; |
| | | pro.imageWebPathZip = fileOperate.getImgFileZipPath(filePathWithWebUrl); |
| | | } |
| | | |
| | | pro.proFiles.stream().forEach(doc -> { |
| | | OthFile file = othFileMapper.selectByPrimaryKey(doc.fileId); |
| | | if (file == null) { |
| | | return; |
| | | } |
| | | FileRestVo fileRestVo = fileOperate.parseHashcode(fmUrl, file.hash); |
| | | doc.webUrl = fileRestVo.fileSysRestUrl + fileRestVo.fileWebDownloadPath + doc.fileId; |
| | | doc.orgName = file.orgName; |
| | | doc.extName = file.extName; |
| | | }); |
| | | } |
| | | return pro; |
| | | } |
| | | private String getFilePathWithWebUrl(Long fileId) { |
| | | OthFile file = othFileMapper.selectByPrimaryKey(fileId); |
| | | FileRestVo fileRestVo = fileOperate.parseHashcode(fmUrl, file.hash); |
| | | return fileRestVo.fileWebUrl + file.filePath; |
| | | } |
| | | |
| | | public Map<String,String> queryByDeviceNo(String deviceNo) { |
| | | Map<String,String> map = new HashMap<>(); |
| | | map.put("deviceNo", deviceNo); |
| | | map.put("proName", "-"); |
| | | map.put("proType", "-"); |
| | | |
| | | PltProduct product = productDao.selectByCode(deviceNo.substring(3,6)); |
| | | if(product != null){ |
| | | map.put("proName", product.getName()); |
| | | map.put("proType", product.getType()); |
| | | } |
| | | return map; |
| | | } |
| | | |
| | | public List<StaDeviceLife> queryLifeByDeviceNo(String deviceNo) { |
| | | return deviceLifeDao.selectByEquipNo(deviceNo); |
| | | } |
| | | |
| | | public List<StaDeviceProductionLog> queryLogByDeviceNo(String devoiceNo) { |
| | | return deviceProductionLogDao.selectByEquipNo(devoiceNo); |
| | | } |
| | | } |