| | |
| | | * 物料命名规范正则 |
| | | */ |
| | | public enum MaterialNamingStandard { |
| | | RES_0311_0312("电阻","封装形式-电阻类型,例如:贴片电阻-通用","[\\u4E00-\\u9FA5]*电阻-[\\u4E00-\\u9FA5]*","电阻值±精度_功率_温度系数_封装形式(贴片),例如:1K±1%_1/8W_±100ppm_R0805","[0-9]+[a-zA-Z]+±[0-9]+%_[0-9]+[/0-9]*[A-Z]_±[0-9]+[a-z]+[_a-zA-Z0-9]*"), |
| | | CAPACITOR_TP_0301("贴片电容","封装形式-电容类型,例如:贴片电容-陶瓷","[\\u4E00-\\u9FA5]*电容-[\\u4E00-\\u9FA5]*","容值±误差_电压 材质_封装,例如:10nF±10%_50V X7R_C0805","[0-9]+[a-zA-Z]+±[0-9]+%_[0-9]+[a-zA-Z]*[vV][\\s]+[a-zA-Z0-9]+_[_a-zA-Z0-9]*"), |
| | | CAPACITOR_CJ_0301_0302("插件电容-无极","封装形式-电容类型,例如:插件电容-CBB","[\\u4E00-\\u9FA5]*电容-[\\u4E00-\\u9FA5]*","容值/电压±误差_材质_脚距*宽度(mm),例如:10nF/1000V±10%_CBB_7.62*5.08","[0-9]+[a-zA-Z]+/[0-9]+[a-zA-Z]*[vV]±[0-9]+%_[a-zA-Z0-9]+_[0-9]*.*[0-9]*\\*[0-9]*.*[0-9]*"), |
| | | CAPACITOR_DJ_0301_0302("插件电容-电解","封装形式-电容类型,例如:插件电容-电解","[\\u4E00-\\u9FA5]*电容-[\\u4E00-\\u9FA5]*","容值/电压±误差_温度℃_系列-封装(数值x数值)_寿命,例如:1000uF/63V±20%_105℃_CD294BW-35x50_2000H","[0-9]+[a-zA-Z]+/[0-9]+[a-zA-Z]*[vV]±[0-9]+%_[0-9]+℃_[a-zA-Z0-9]+-[0-9]+x[0-9]+_[0-9]+H"), |
| | | RES_0311_0312("电阻","封装形式-电阻类型,例如:贴片电阻-通用","[\\u4E00-\\u9FA5]*电阻-[\\u4E00-\\u9FA5]*","电阻值±精度_功率_温度系数_封装形式(贴片),例如:1K±1%_1/8W_±100ppm_R0805",num()+"[a-zA-Z]+±[0-9.]+%_[0-9]+[/0-9]*[A-Z]_±[0-9]+[a-z]+[_a-zA-Z0-9.\\-\\_]*"), |
| | | CAPACITOR_TP_0301("贴片电容","封装形式-电容类型,例如:贴片电容-陶瓷","[\\u4E00-\\u9FA5]*电容-[\\u4E00-\\u9FA5]*","容值±误差_电压 材质_封装,例如:10nF±10%_50V X7R_C0805","[0-9]+[a-zA-Z]+±[0-9.]+%_[0-9]+[a-zA-Z]*[vV][\\s]+[a-zA-Z0-9]+_[_a-zA-Z0-9.\\-\\_]*"), |
| | | CAPACITOR_CJ_0301_0302("插件电容-无极","封装形式-电容类型,例如:插件电容-CBB","[\\u4E00-\\u9FA5]*电容-[\\u4E00-\\u9FA5]*","容值/电压±误差_材质_脚距*宽度(mm),例如:10nF/1000V±10%_CBB_7.62*5.08","[0-9]+[a-zA-Z]+/[0-9]+[a-zA-Z]*[vV]±[0-9.]+%_[a-zA-Z0-9]+_[0-9]*.*[0-9]*\\*[0-9]*.*[0-9]*"), |
| | | CAPACITOR_DJ_0301_0302("插件电容-电解","封装形式-电容类型,例如:插件电容-电解","[\\u4E00-\\u9FA5]*电容-[\\u4E00-\\u9FA5]*","容值/电压±误差_温度℃_系列-封装(数值x数值)_寿命,例如:1000uF/63V±20%_105℃_CD294BW-35x50_2000H","[0-9]+[a-zA-Z]+/[0-9]+[a-zA-Z]*[vV]±[0-9.]+%_[0-9]+℃_[a-zA-Z0-9]+-[0-9]+x[0-9]+_[0-9]+H"), |
| | | DIODE_WY_0321_0322("二极管-稳压","封装形式-二极管类型,例如:插件二极管-稳压","[\\u4E00-\\u9FA5]*二极管-稳压","型号编码_电压功率_封装形式,例如:1N4742_12V1W_DO-41",all()+"_"+num()+lettersLowCase0()+"V"+num()+lettersLowCase0()+"W_"+allWithSymbol1()), |
| | | DIODE_FWY_0321_0322("二极管-非稳压","封装形式-二极管类型,例如:插件二极管-整流","[\\u4E00-\\u9FA5]*二极管-[\\u4E00-\\u9FA5]+","型号编码_电流电压_封装形式,例如:1N4007_1A1000V_DO-41",all()+"_"+num()+lettersLowCase0()+"A"+num()+lettersLowCase0()+"V_"+allWithZhCN()), |
| | | DIODE_TP_0321("贴片-发光二极管","封装形式-二极管类型,例如:贴片-发光二极管","贴片-发光二极管","LED_材质_颜色_封装,例如:LED_Gap_NG_0603","LED_"+letters()+"_"+lettersUpCase()+"_"+allWithZhCN()), |
| | |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.IOException; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | |
| | | Material material = ActionUtil.getGson().fromJson(materialStr, Material.class); |
| | | return service.updatePicOrDwg(file,material); |
| | | } |
| | | |
| | | @PostMapping("checkNaming") |
| | | @ApiOperation("命名规范校验") |
| | | public void checkNaming( HttpServletResponse response,@RequestParam MultipartFile file) throws IOException, InvalidFormatException { |
| | | service.checkNaming(file.getInputStream(),response); |
| | | } |
| | | |
| | | } |
| | |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.whyc.dto.FileDirPath; |
| | | import com.whyc.dto.MaterialCheckDTO; |
| | | import com.whyc.dto.Response; |
| | | import com.whyc.mapper.MaterialMapper; |
| | | import com.whyc.pojo.DocUser; |
| | |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.ByteArrayOutputStream; |
| | | import java.io.File; |
| | | import java.io.FileOutputStream; |
| | | import java.io.IOException; |
| | | import java.io.*; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.LinkedList; |
| | | import java.util.List; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Service |
| | |
| | | public List<Material> getSameSubCodeAndModel(List<ProductBom> bomList) { |
| | | return mapper.getSameSubCodeAndModel(bomList); |
| | | } |
| | | |
| | | public void checkNaming(InputStream inputStream, HttpServletResponse response) throws IOException, InvalidFormatException { |
| | | List<MaterialCheckDTO> checkList = new LinkedList<>(); |
| | | Workbook workbook = null; |
| | | workbook = WorkbookFactory.create(inputStream); |
| | | inputStream.close(); |
| | | //取第一个sheet表 |
| | | Sheet sheet = workbook.getSheetAt(0); |
| | | int lastRowNum = sheet.getLastRowNum(); |
| | | for (int i = 1; i <= lastRowNum; i++) { |
| | | System.out.println(i); |
| | | //从第二行开始 |
| | | Row row = sheet.getRow(i); |
| | | Cell cell = row.getCell(0); |
| | | cell.setCellType(CellType.STRING); |
| | | String code = cell.getStringCellValue(); |
| | | String name = row.getCell(1).getStringCellValue(); |
| | | Cell cell2 = row.getCell(2); |
| | | cell2.setCellType(CellType.STRING); |
| | | String model = cell2.getStringCellValue(); |
| | | |
| | | MaterialCheckDTO dto = new MaterialCheckDTO(); |
| | | dto.setNum(i); |
| | | dto.setSubName(name); |
| | | dto.setSubCode(code); |
| | | dto.setSubModel(model); |
| | | checkList.add(dto); |
| | | } |
| | | List<MaterialCheckDTO> materialCheckDTOS = CommonUtil.checkFormat(checkList); |
| | | int size = materialCheckDTOS.size(); |
| | | //ECR编号,申请日期,申请人,变更描述,变更料号,变更型号,变更所属型号,处理方式,创建时间 |
| | | String[] title = new String[]{"序号","物料编码","物料名称","规格型号","不规范原因"}; |
| | | String[][] values = new String[size][]; //size行 |
| | | for (int i = 0; i < size; i++) { |
| | | values[i] = new String[5]; |
| | | MaterialCheckDTO dto = materialCheckDTOS.get(i); |
| | | values[i][0] = dto.getNum().toString(); |
| | | values[i][1] = dto.getSubCode(); |
| | | values[i][2] = dto.getSubName(); |
| | | values[i][3] = dto.getSubModel(); |
| | | values[i][4] = dto.getIrregularDesc(); |
| | | } |
| | | ExcelUtil.exportExcel("清单","物料",title,values,null,response); |
| | | } |
| | | } |