diff --git a/common/src/main/java/com/foreverwin/mesnac/common/service/impl/FileServiceImpl.java b/common/src/main/java/com/foreverwin/mesnac/common/service/impl/FileServiceImpl.java index d2e2ed43..8378e787 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/service/impl/FileServiceImpl.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/service/impl/FileServiceImpl.java @@ -90,22 +90,47 @@ public class FileServiceImpl implements FileService { public Map getFilePathsByItemBo(String itemBo) throws IOException { FTPClient connect = null; Map pathMap = new HashMap<>(); + List list=new ArrayList(); try { - connect = cappFtpClient.login(); +// connect = cappFtpClient.login(); String vision= GetDrawingVersionUtil.GetDrawingVerson(itemBo, connect); String path="/"+ StringUtil.trimHandle(itemBo)+"_"+vision+"/"; - - connect.changeWorkingDirectory(path); +// connect.changeWorkingDirectory(path); +// connect.enterLocalPassiveMode(); +// +// FTPFile[] files = connect.listFiles(); +// if(files!=null){ +// for (int i = 0; i < files.length; i++) { +// if(files[i].isFile()){ +// String filename=files[i].getName(); +// pathMap.put(filename,path+filename); +// } +// } +// } +// connect.disconnect(); + connect = cappFtpClient.login(); + boolean flag=connect.changeWorkingDirectory(path); connect.enterLocalPassiveMode(); - FTPFile[] files = connect.listFiles(); - if(files!=null){ - for (int i = 0; i < files.length; i++) { - if(files[i].isFile()){ - String filename=files[i].getName(); - pathMap.put(filename,path+filename); + if(files!=null&&flag){ + for (FTPFile ftpFile:files){ + String tmp=ftpFile.getName().substring(ftpFile.getName().lastIndexOf("_")+1,ftpFile.getName().lastIndexOf("_")+2); + Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$"); + if (pattern.matcher(tmp).matches()){ + list.add(Integer.parseInt(tmp)); + } + if (ftpFile.getName().equals(path.substring(1,path.length()-1)+".pdf")&&ftpFile.isFile()){ + pathMap.put(ftpFile.getName(),path+ftpFile.getName()); } } + int max = (int) Collections.max(list); + for (FTPFile ftpFile:files){ + if (ftpFile.getName().substring(ftpFile.getName().lastIndexOf("_")+1,ftpFile.getName().lastIndexOf("_")+2).equals(String.valueOf(max))&&ftpFile.isFile()){ + pathMap.put(ftpFile.getName(),path+ftpFile.getName()); + } + } + }else { + throw new BaseException("未找到当前工序的图纸版本号和工艺卡片相应信息,请联系计划部门确认"); } connect.disconnect(); }catch (Exception e){ @@ -116,6 +141,9 @@ public class FileServiceImpl implements FileService { connect.disconnect(); } } + if (pathMap==null){ + throw new BaseException("未找到当前工序的图纸版本号和工艺卡片相应信息,请联系计划部门确认"); + } return pathMap; } diff --git a/production/src/main/resources/mapper/AccessoryLogMapper.xml b/production/src/main/resources/mapper/AccessoryLogMapper.xml index 945f1812..7f81b55f 100644 --- a/production/src/main/resources/mapper/AccessoryLogMapper.xml +++ b/production/src/main/resources/mapper/AccessoryLogMapper.xml @@ -535,7 +535,7 @@ SD.ACTUAL_START_DATE, SD.ACTUAL_COMPLETE_DATE, SD.REMARK, SD.DISPATCH_SEQ, SD.DISPATCH_SEQ-1 BEFORE_SEQ, SD.DISPATCH_SEQ+1 AFTER_SEQ, SD.EARLIEST_START_DATE, SD.LATEST_END_DATE, CASE WHEN CC.VALUE = '9' THEN N'是' ELSE N'否' END IS_MAJOR, CASE WHEN SD.TURN_OPERATION = 'true' THEN N'是' ELSE N'否' END TURN_OPERATION, SD.IS_UPDATE_ZJH_COMPLETE, SD.BLANKING_SIZE, MAX(BC.COMPONENT_GBO) COMPONENT_BO, WR.WORK_CENTER RESOURCE_WORK_CENTER,WT.DESCRIPTION WORK_CENTER_DESCRIPTION, MAX(CP.ITEM) COMPONENT, MAX(CT.DESCRIPTION) COMPONENT_DESCRIPTION, MAX(C3.VALUE) TEXTURE, MAX(C4.VALUE) MAT_SPEC ,SD.OTHER_2, - ZAL.ITEM ACCESSORY_ITEM,NVL2(ZAL.ITEM, IT.DESCRIPTION, NULL) ACCESSORY_DESCRIPTION,ZAL.QTY ACCESSORY_QTY + ZAL.ITEM ACCESSORY_ITEM,IT1.DESCRIPTION ACCESSORY_DESCRIPTION,ZAL.QTY ACCESSORY_QTY FROM Z_SFC_DISPATCH SD INNER JOIN SFC SC ON SC.SITE = SD.SITE AND SC.SFC = SD.SFC LEFT JOIN RESRCE RS ON SD.SITE = RS.SITE AND SD.RESRCE = RS.RESRCE @@ -557,8 +557,10 @@ LEFT JOIN WORK_CENTER WR ON WR.HANDLE = WCM.WORK_CENTER_BO LEFT JOIN WORK_CENTER WR1 ON WR1.WORK_CENTER = SD.WORK_CENTER LEFT JOIN WORK_CENTER_T WT ON WT.WORK_CENTER_BO = WR1.HANDLE AND WT.LOCALE = 'zh' - LEFT JOIN Z_ACCESSORY_LOG ZAL ON ZAL.SFC = SD.SFC AND ZAL.SHOP_ORDER = SD.SHOP_ORDER AND ZAL.STEP_ID = SD.STEP_ID - WHERE SD.SITE = #{site} + LEFT JOIN Z_ACCESSORY_LOG ZAL ON ZAL.SFC = SD.SFC AND ZAL.STEP_ID = SD.STEP_ID + INNER JOIN ITEM IM1 ON IM1.ITEM = ZAL.ITEM + LEFT JOIN ITEM_T IT1 ON IT1.ITEM_BO = IM1.HANDLE AND IT1.LOCALE = 'zh' + WHERE SD.SITE = #{site} AND ZAL.ITEM IS NOT NULL AND SD.OPERATION LIKE #{workCenter}||'%' @@ -638,7 +640,7 @@ SD.STEP_ID, SD.OPERATION, OT.DESCRIPTION, SD.RESOURCE_TYPE, SD.RESRCE, SD.EMPLOYEE, SD.EMPLOYEE, SD.DISPATCH_QTY, SD.PROD_HOURS, RS.DESCRIPTION, SD.DISPATCH_STATUS, SD.DISPATCH_QTY, SD.PLANNED_START_DATE, SD.PLANNED_COMP_DATE, SD.WORK_CENTER, SD.IS_DISPATCH, SD.EMPLOYEE_DESCRIPTION, SD.ACTUAL_START_DATE, SD.ACTUAL_COMPLETE_DATE, SD.REMARK, SD.DISPATCH_SEQ, SD.EARLIEST_START_DATE, SD.LATEST_END_DATE, - CC.VALUE, SD.TURN_OPERATION,SD.IS_UPDATE_ZJH_COMPLETE, SD.BLANKING_SIZE, WR.WORK_CENTER ,SD.OTHER_2,ZAL.ITEM ,ZAL.QTY,WT.DESCRIPTION + CC.VALUE, SD.TURN_OPERATION,SD.IS_UPDATE_ZJH_COMPLETE, SD.BLANKING_SIZE, WR.WORK_CENTER ,SD.OTHER_2,ZAL.ITEM ,ZAL.QTY,WT.DESCRIPTION,IT1.DESCRIPTION ) WIP LEFT JOIN Z_SFC_DISPATCH V1 ON V1.SITE = WIP.SITE AND V1.SFC = WIP.SFC AND V1.ROUTER_BO = WIP.ROUTER_BO AND V1.DISPATCH_SEQ = WIP.BEFORE_SEQ LEFT JOIN Z_SFC_DISPATCH V2 ON V2.SITE = WIP.SITE AND V2.SFC = WIP.SFC AND V2.ROUTER_BO = WIP.ROUTER_BO AND V2.DISPATCH_SEQ = WIP.AFTER_SEQ