| | |
| | | import java.io.ByteArrayInputStream; |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.util.Arrays; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.*; |
| | | import java.util.regex.Matcher; |
| | | import java.util.regex.Pattern; |
| | | import java.util.stream.Collectors; |
| | |
| | | |
| | | ImportParams params = new ImportParams(); |
| | | params.setTitleRows(2); // 跳过前2行标题 |
| | | params.setHeadRows(1); // 第3行是表头 |
| | | params.setHeadRows(2); // 第3行是表头 |
| | | params.setSheetNum(1); // 读取第一个工作表 |
| | | |
| | | int dataEndRow = findDataEndRow(file.getInputStream()); |
| | | log.info("计算出的数据结束行: {}", dataEndRow); |
| | | |
| | | params.setLastOfInvalidRow(dataEndRow); |
| | | params.setNeedSave(true); |
| | | |
| | | EamMaintenanceStandardRequest standardRequest = new EamMaintenanceStandardRequest(); |
| | |
| | | |
| | | List<MaintenanceStandardImport> list = ExcelImportUtil.importExcel(file.getInputStream(), MaintenanceStandardImport.class, params); |
| | | log.info("实际读取到的明细数量: {}", list.size()); |
| | | |
| | | // 打印前几条记录用于调试 |
| | | if (!list.isEmpty()) { |
| | | log.info("前3条记录详情:"); |
| | | for (int i = 0; i < Math.min(3, list.size()); i++) { |
| | | MaintenanceStandardImport item = list.get(i); |
| | | log.info("第{}条: NO={}, 点检条件={}, 部位名称={}, 点检内容={}", |
| | | i+1, item.getItemCode(), item.getCondition(), |
| | | item.getItemPart(), item.getItemName()); |
| | | //明细项 |
| | | List<EamMaintenanceStandardDetail> tableList = new ArrayList<>(); |
| | | for(MaintenanceStandardImport maintenanceStandardImport : list) { |
| | | try { |
| | | Integer.valueOf(maintenanceStandardImport.getItemCode()); |
| | | } catch (NumberFormatException e) { |
| | | break; |
| | | } |
| | | } else { |
| | | log.warn("未读取到任何明细记录"); |
| | | tableList.add(new EamMaintenanceStandardDetail(maintenanceStandardImport)); |
| | | } |
| | | |
| | | //明细项 |
| | | List<EamMaintenanceStandardDetail> tableList = list.stream().map(EamMaintenanceStandardDetail::new).collect(Collectors.toList()); |
| | | standardRequest.setTableDetailList(tableList); |
| | | log.info("转换后的明细数量: {}", tableList.size()); |
| | | |
| | |
| | | |
| | | |
| | | |
| | | @Excel(name = "NO", orderNum = "1") |
| | | @Excel(name = "NO") |
| | | private String itemCode; |
| | | |
| | | @Excel(name = "点检条件", orderNum = "2") |
| | | @Excel(name = "点检条件") |
| | | private String condition; |
| | | |
| | | @Excel(name = "部位名称", orderNum = "3") |
| | | @Excel(name = "部位名称") |
| | | private String itemPart; |
| | | |
| | | @Excel(name = "点检内容", orderNum = "4") |
| | | @Excel(name = "点检内容") |
| | | private String itemName; |
| | | |
| | | @Excel(name = "点检方法", orderNum = "5") |
| | | @Excel(name = "点检方法") |
| | | private String subItemName; |
| | | |
| | | @Excel(name = "基准", orderNum = "6") |
| | | @Excel(name = "基准") |
| | | private String itemDemand; |
| | | |
| | | @Excel(name = "异常处理基准", orderNum = "7") |
| | | @Excel(name = "异常处理基准") |
| | | private String abnormal; |
| | | |
| | | @Excel(name = "周期", orderNum = "8") |
| | | @Excel(name = "周期") |
| | | private String period; |
| | | |
| | | } |
| | |
| | | /** |
| | | * 使用部门 |
| | | */ |
| | | @Excel(name = "使用车间", width = 25, dictTable = "mdc_production", dicText = "production_name", dicCode = "id", orderNum = "9") |
| | | @Excel(name = "使用车间", width = 25, dictTable = "base_factory", dicText = "factory_name", dicCode = "id", orderNum = "9") |
| | | @ApiModelProperty(value = "使用部门") |
| | | @Dict(dicCode = "mdc_production, production_name, id") |
| | | @Dict(dicCode = "base_factory, factory_name, id") |
| | | private String orgId; |
| | | /** |
| | | * 设备管理员 |
| | |
| | | */ |
| | | @ApiModelProperty(value = "参考文件") |
| | | private String referenceFile; |
| | | /** |
| | | * 最新生成工单时间 |
| | | * 下一次生成时间为此时间 + 保养周期 |
| | | */ |
| | | @ApiModelProperty(value = "最新生成工单时间") |
| | | private Date lastGenerateTime; |
| | | |
| | | //列表展示 |
| | | @TableField(exist = false) |
| | |
| | | if (sysUser == null) { |
| | | return page; |
| | | } |
| | | if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) { |
| | | //选择了设备,根据设备id过滤设备 |
| | | List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(",")); |
| | | queryWrapper.in("e.equipment_code", equipArr); |
| | | } else { |
| | | //没有选择设备,根据车间过滤设备 |
| | | queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id", sysUser.getId()); |
| | | } |
| | | // if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) { |
| | | // //选择了设备,根据设备id过滤设备 |
| | | // List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(",")); |
| | | // queryWrapper.in("e.equipment_code", equipArr); |
| | | // } else { |
| | | // //没有选择设备,根据车间过滤设备 |
| | | // queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id", sysUser.getId()); |
| | | // } |
| | | //查询条件过滤 |
| | | if (eamEquipment != null) { |
| | | if (StringUtils.isNotBlank(eamEquipment.getEquipmentCode())) { |
| | |
| | | if (sysUser == null) { |
| | | return page; |
| | | } |
| | | if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) { |
| | | //选择了设备,根据设备id过滤设备 |
| | | List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(",")); |
| | | queryWrapper.in("e.equipment_code", equipArr); |
| | | } else { |
| | | //没有选择设备,根据车间过滤设备 |
| | | queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id ", sysUser.getId()); |
| | | } |
| | | // if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) { |
| | | // //选择了设备,根据设备id过滤设备 |
| | | // List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(",")); |
| | | // queryWrapper.in("e.equipment_code", equipArr); |
| | | // } else { |
| | | // //没有选择设备,根据车间过滤设备 |
| | | // queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id ", sysUser.getId()); |
| | | // } |
| | | if(eamMaintenanceStandard != null) { |
| | | //编码 模糊查询 |
| | | if(StringUtils.isNotBlank(eamMaintenanceStandard.getStandardCode())) { |