| | |
| | | import org.jeecg.common.constant.CommonConstant; |
| | | import org.jeecg.common.system.base.controller.JeecgController; |
| | | import org.jeecg.common.util.TranslateDictTextUtils; |
| | | import org.jeecg.modules.eam.constant.AssetStatusEnum; |
| | | import org.jeecg.modules.eam.constant.MaintenanceCategoryEnum; |
| | | import org.jeecg.modules.eam.constant.MaintenanceStandardStatusEnum; |
| | | import org.jeecg.modules.eam.entity.EamEquipment; |
| | |
| | | // @AutoLog(value = "设备台账-分页列表查询") |
| | | @ApiOperation(value = "设备台账-分页列表查询", notes = "设备台账-分页列表查询") |
| | | @GetMapping(value = "/list") |
| | | public Result<?> queryPageList(EamEquipmentQuery eamEquipment, |
| | | @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, |
| | | @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { |
| | | public Result<?> queryPageList(EamEquipmentQuery eamEquipment, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { |
| | | // QueryWrapper<EamEquipment> queryWrapper = QueryGenerator.initQueryWrapper(eamEquipment, req.getParameterMap()); |
| | | IPage<EamEquipment> page = new Page<>(pageNo, pageSize); |
| | | IPage<EamEquipment> pageList = eamEquipmentService.queryPageList(page, eamEquipment); |
| | |
| | | return Result.error("未找到对应数据"); |
| | | } |
| | | EamEquipmentExtend extend = eamEquipmentExtendService.getById(id); |
| | | if(extend != null){ |
| | | if (extend != null) { |
| | | eamEquipment.setRepairStatus(extend.getRepairStatus()); |
| | | eamEquipment.setMaintenanceStatus(extend.getMaintenanceStatus()); |
| | | } |
| | |
| | | // 获取上传文件对象 |
| | | MultipartFile file = entity.getValue(); |
| | | ImportParams params = new ImportParams(); |
| | | params.setTitleRows(0); |
| | | params.setHeadRows(1); |
| | | params.setNeedSave(true); |
| | | params.setHeadRows(1); // 跳过第1行,从第2行开始读取列名 |
| | | params.setTitleRows(1); // 第1行为标题行(可选) |
| | | params.setStartSheetIndex(0); |
| | | params.setSheetNum(1); |
| | | try { |
| | | List<EamEquipment> list = ExcelImportUtil.importExcel(file.getInputStream(), EamEquipment.class, params); |
| | | //update-begin-author:taoyan date:20190528 for:批量插入数据 |
| | | long start = System.currentTimeMillis(); |
| | | // service.saveBatch(list); |
| | | StringBuilder sb = new StringBuilder(); |
| | | for (EamEquipment eamEquipment : list) { |
| | | //必填字段校验 |
| | | boolean isInvalid = false; |
| | | StringBuilder errorMsg = new StringBuilder(); |
| | | // 设备编号和设备名称校验 |
| | | if (StringUtils.isBlank(eamEquipment.getEquipmentCode()) || StringUtils.isBlank(eamEquipment.getEquipmentName())) { |
| | | sb.append(String.format("设备编码[%s]或设备名称[%s]为空,无法导入\n\n", eamEquipment.getEquipmentCode(), eamEquipment.getEquipmentName())); |
| | | continue; |
| | | errorMsg.append(String.format("设备编码[%s]或设备名称为空,无法导入\n\n", eamEquipment.getEquipmentCode(), eamEquipment.getEquipmentName())); |
| | | isInvalid = true; |
| | | } |
| | | if (StringUtils.isBlank(eamEquipment.getEquipmentCategory())) { |
| | | sb.append(String.format("设备编码[%s]设备分类为空,无法导入\n\n", eamEquipment.getEquipmentCode())); |
| | | continue; |
| | | // 所属产线校验 |
| | | if (StringUtils.isBlank(eamEquipment.getOrgId())) { |
| | | errorMsg.append(String.format("设备编码[%s]所属产线为空,无法导入\n\n", eamEquipment.getEquipmentCode())); |
| | | isInvalid = true; |
| | | } |
| | | if (StringUtils.isBlank(eamEquipment.getOrgId()) || StringUtils.isBlank(eamEquipment.getEquipmentManager())) { |
| | | sb.append(String.format("设备编码[%s]使用车间或设备管理员为空,无法导入\n\n", eamEquipment.getEquipmentCode())); |
| | | continue; |
| | | } |
| | | // if (eamEquipment.getAcceptanceCheckDate() == null) { |
| | | // sb.append(String.format("设备编码[%s]验收为空,无法导入\n\r", eamEquipment.getEquipmentCode())); |
| | | // continue; |
| | | // } |
| | | // if (StringUtils.isBlank(eamEquipment.getTechnologyStatus())) { |
| | | // sb.append(String.format("设备编码[%s]技术状态为空,无法导入\n\r", eamEquipment.getEquipmentCode())); |
| | | // continue; |
| | | // } |
| | | // 设备编码唯一性校验 |
| | | EamEquipment one = eamEquipmentService.getOne(new LambdaQueryWrapper<EamEquipment>().eq(EamEquipment::getEquipmentCode, eamEquipment.getEquipmentCode()).eq(EamEquipment::getDelFlag, CommonConstant.DEL_FLAG_0)); |
| | | if (one != null) { |
| | | sb.append(String.format("设备编码[%s]已存在,无法重复导入\n\r", eamEquipment.getEquipmentCode())); |
| | | errorMsg.append(String.format("设备编码[%s]已存在,无法重复导入\n\r", eamEquipment.getEquipmentCode())); |
| | | isInvalid = true; |
| | | } |
| | | // 校验不通过,记录错误并跳过导入 |
| | | if (isInvalid) { |
| | | sb.append(errorMsg); |
| | | continue; |
| | | } |
| | | // 校验通过,执行导入 |
| | | if (!CommonConstant.DEFAULT_1.equals(eamEquipment.getMdcFlag())) { |
| | | eamEquipment.setMdcFlag(CommonConstant.DEFAULT_0); |
| | | } |
| | | EamEquipment equipment = eamEquipmentService.saveEquipment(eamEquipment); |
| | | if (equipment == null) { |
| | | //保存失败,跳过本次循环 |
| | | sb.append(String.format("设备编码[%s]保存失败,无法导入\n\r", eamEquipment.getEquipmentCode())); |
| | | continue; |
| | | } |
| | | //调用mdcEquipment插入MDC设备 |
| | | // if (CommonConstant.DEFAULT_1.equals(eamEquipment.getMdcFlag())) { |
| | | // //插入MDC设备 |
| | | // MdcEquipment mdcEquipment = new MdcEquipment(); |
| | | // mdcEquipment.setEquipmentId(eamEquipment.getEquipmentCode()); |
| | | // mdcEquipment.setEquipmentType(eamEquipment.getDeviceType()); |
| | | // mdcEquipment.setEquipmentName(eamEquipment.getEquipmentName()); |
| | | // mdcEquipmentService.addNewEquipmentFromEam(mdcEquipment, eamEquipment.getOrgId()); |
| | | // } |
| | | // MDC设备相关逻辑(若有需要) |
| | | // if (CommonConstant.DEFAULT_1.equals(eamEquipment.getMdcFlag())) { |
| | | // MdcEquipment mdcEquipment = new MdcEquipment(); |
| | | // mdcEquipment.setEquipmentId(eamEquipment.getEquipmentCode()); |
| | | // mdcEquipment.setEquipmentType(eamEquipment.getDeviceType()); |
| | | // mdcEquipment.setEquipmentName(eamEquipment.getEquipmentName()); |
| | | // mdcEquipmentService.addNewEquipmentFromEam(mdcEquipment, eamEquipment.getOrgId()); |
| | | // } |
| | | } |
| | | //400条 saveBatch消耗时间1592毫秒 循环插入消耗时间1947毫秒 |
| | | //1200条 saveBatch消耗时间3687毫秒 循环插入消耗时间5212毫秒 |
| | |
| | | } |
| | | return Result.ok("文件导入成功!数据行数:" + list.size()); |
| | | } catch (Exception e) { |
| | | //update-begin-author:taoyan date:20211124 for: 导入数据重复增加提示 |
| | | |
| | | String msg = e.getMessage(); |
| | | log.error(msg, e); |
| | | if (msg != null && msg.indexOf("Duplicate entry") >= 0) { |
| | |
| | | } else { |
| | | return Result.error("文件导入失败:" + e.getMessage()); |
| | | } |
| | | //update-end-author:taoyan date:20211124 for: 导入数据重复增加提示 |
| | | |
| | | } finally { |
| | | try { |
| | | file.getInputStream().close(); |
| | |
| | | return Result.error("文件导入失败!"); |
| | | } |
| | | |
| | | // @ApiOperation(value = "设备表-通过车间ids获取设备树", notes = "设备表-通过车间ids获取设备树") |
| | | // @GetMapping(value = "/loadTreeListByProductionIds") |
| | | // public Result<List<EamEquipmentTree>> loadTreeListByProductionIds(@RequestParam(name = "ids", required = true) String ids) { |
| | | // Result<List<EamEquipmentTree>> result = new Result<>(); |
| | | // try { |
| | | // List<EamEquipmentTree> mdcEquipmentTreeList = eamEquipmentService.loadTreeListByProductionIds(ids); |
| | | // result.setSuccess(true); |
| | | // result.setResult(mdcEquipmentTreeList); |
| | | // } catch (Exception e) { |
| | | // log.error(e.getMessage(), e); |
| | | // } |
| | | // return result; |
| | | // } |
| | | |
| | | /** |
| | | * 检索设备 |
| | | * @param keyword 查询关键词 设备编号,设备名称模糊匹配 |
| | | * |
| | | * @param keyword 查询关键词 设备编号,设备名称模糊匹配 |
| | | * @param pageSize 一次返回多少记录 |
| | | * @param id 设备主键 |
| | | * @param id 设备主键 |
| | | * @return |
| | | */ |
| | | @ApiOperation(value = "设备表-异步加载设备列表", notes = "设备表-异步加载设备列表") |
| | | @GetMapping(value = "/asyncLoadEquipment") |
| | | public Result<?> asyncLoadEquipment(@RequestParam(name="keyword",required = false) String keyword, |
| | | @RequestParam(value = "pageSize", required = false, defaultValue = "20") Integer pageSize, |
| | | @RequestParam(name="id",required = false) String id) { |
| | | public Result<?> asyncLoadEquipment(@RequestParam(name = "keyword", required = false) String keyword, @RequestParam(value = "pageSize", required = false, defaultValue = "20") Integer pageSize, @RequestParam(name = "id", required = false) String id) { |
| | | List<EquipmentSearchResult> resultList = eamEquipmentService.asyncLoadEquipment(keyword, pageSize, id); |
| | | return Result.ok(resultList); |
| | | } |
| | |
| | | if (workOrder == null) { |
| | | return Result.error("工单不存在!"); |
| | | } |
| | | List<Map<String, Object>> equipmentMapList = eamEquipmentService.list(new LambdaQueryWrapper<EamEquipment>() |
| | | .eq(EamEquipment::getOrgId, workOrder.getFactoryId()) |
| | | .eq(EamEquipment::getDelFlag, CommonConstant.DEL_FLAG_0) |
| | | .apply("NOT EXISTS (SELECT 1 FROM eam_inspection_order t WHERE t.equipment_id = eam_equipment.id AND t.work_order_id = {0})", orderId) |
| | | .apply("EXISTS (SELECT 1 FROM eam_maintenance_standard t WHERE t.equipment_id = eam_equipment.id AND t.del_flag = {0} " + |
| | | "AND t.standard_status = {1} AND t.maintenance_category = {2})", |
| | | CommonConstant.DEL_FLAG_0, MaintenanceStandardStatusEnum.NORMAL.name(), MaintenanceCategoryEnum.POINT_INSPECTION.name())) |
| | | .stream().map(e -> (Map<String, Object>) new HashMap<String, Object>() {{ |
| | | put("value", e.getId()); |
| | | put("label", e.getEquipmentCode() + "[" + e.getEquipmentName() + "]"); |
| | | put("text", e.getEquipmentCode() + "[" + e.getEquipmentName() + "]"); |
| | | }}).collect(Collectors.toList()); |
| | | List<Map<String, Object>> equipmentMapList = eamEquipmentService.list(new LambdaQueryWrapper<EamEquipment>().eq(EamEquipment::getOrgId, workOrder.getFactoryId()).eq(EamEquipment::getDelFlag, CommonConstant.DEL_FLAG_0).apply("NOT EXISTS (SELECT 1 FROM eam_inspection_order t WHERE t.equipment_id = eam_equipment.id AND t.work_order_id = {0})", orderId).apply("EXISTS (SELECT 1 FROM eam_maintenance_standard t WHERE t.equipment_id = eam_equipment.id AND t.del_flag = {0} " + "AND t.standard_status = {1} AND t.maintenance_category = {2})", CommonConstant.DEL_FLAG_0, MaintenanceStandardStatusEnum.NORMAL.name(), MaintenanceCategoryEnum.POINT_INSPECTION.name())).stream().map(e -> (Map<String, Object>) new HashMap<String, Object>() {{ |
| | | put("value", e.getId()); |
| | | put("label", e.getEquipmentCode() + "[" + e.getEquipmentName() + "]"); |
| | | put("text", e.getEquipmentCode() + "[" + e.getEquipmentName() + "]"); |
| | | }}).collect(Collectors.toList()); |
| | | return Result.ok(equipmentMapList); |
| | | } |
| | | |
| | |
| | | if (workOrder == null) { |
| | | return Result.error("工单不存在!"); |
| | | } |
| | | List<Map<String, Object>> equipmentMapList = eamEquipmentService.list(new LambdaQueryWrapper<EamEquipment>() |
| | | .eq(EamEquipment::getOrgId, workOrder.getFactoryId()) |
| | | .eq(EamEquipment::getDelFlag, CommonConstant.DEL_FLAG_0) |
| | | .apply("EXISTS (SELECT 1 FROM eam_equipment_process_parameters t WHERE t.equipment_id = eam_equipment.id)") |
| | | .apply("NOT EXISTS (SELECT 1 FROM eam_process_check t WHERE t.equipment_id = eam_equipment.id AND t.work_order_id = {0})", orderId)) |
| | | .stream().map(e -> (Map<String, Object>) new HashMap<String, Object>() {{ |
| | | put("value", e.getId()); |
| | | put("label", e.getEquipmentCode() + "[" + e.getEquipmentName() + "]"); |
| | | put("text", e.getEquipmentCode() + "[" + e.getEquipmentName() + "]"); |
| | | }}).collect(Collectors.toList()); |
| | | List<Map<String, Object>> equipmentMapList = eamEquipmentService.list(new LambdaQueryWrapper<EamEquipment>().eq(EamEquipment::getOrgId, workOrder.getFactoryId()).eq(EamEquipment::getDelFlag, CommonConstant.DEL_FLAG_0).apply("EXISTS (SELECT 1 FROM eam_equipment_process_parameters t WHERE t.equipment_id = eam_equipment.id)").apply("NOT EXISTS (SELECT 1 FROM eam_process_check t WHERE t.equipment_id = eam_equipment.id AND t.work_order_id = {0})", orderId)).stream().map(e -> (Map<String, Object>) new HashMap<String, Object>() {{ |
| | | put("value", e.getId()); |
| | | put("label", e.getEquipmentCode() + "[" + e.getEquipmentName() + "]"); |
| | | put("text", e.getEquipmentCode() + "[" + e.getEquipmentName() + "]"); |
| | | }}).collect(Collectors.toList()); |
| | | return Result.ok(equipmentMapList); |
| | | } |
| | | } |