| | |
| | | package org.jeecg.modules.eam.controller; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.jeecg.common.api.vo.Result; |
| | | import org.jeecg.common.constant.CommonConstant; |
| | | import org.jeecg.common.system.base.controller.JeecgController; |
| | |
| | | import org.jeecg.modules.eam.vo.EamEquipmentTree; |
| | | import org.jeecg.modules.mdc.entity.MdcEquipment; |
| | | import org.jeecg.modules.mdc.service.IMdcEquipmentService; |
| | | import org.jeecgframework.poi.excel.ExcelImportUtil; |
| | | import org.jeecgframework.poi.excel.entity.ImportParams; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | import org.springframework.web.multipart.MultipartHttpServletRequest; |
| | | import org.springframework.web.servlet.ModelAndView; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.IOException; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @Description: 设备台账 |
| | |
| | | return Result.OK("添加失败!"); |
| | | } |
| | | //调用mdcEquipment插入MDC设备 |
| | | if(CommonConstant.DEFAULT_1.equals(eamEquipment.getMdcFlag())) { |
| | | if (CommonConstant.DEFAULT_1.equals(eamEquipment.getMdcFlag())) { |
| | | //插入MDC设备 |
| | | MdcEquipment mdcEquipment = new MdcEquipment(); |
| | | mdcEquipment.setEquipmentId(entity.getEquipmentCode()); |
| | |
| | | @DeleteMapping(value = "/delete") |
| | | public Result<?> delete(@RequestParam(name = "id", required = true) String id) { |
| | | EamEquipment entity = eamEquipmentService.getById(id); |
| | | if(entity != null) { |
| | | if (entity != null) { |
| | | entity.setDelFlag(CommonConstant.DEL_FLAG_1); |
| | | eamEquipmentService.updateById(entity); |
| | | } |
| | |
| | | List<String> list = Arrays.asList(ids.split(",")); |
| | | list.forEach(id -> { |
| | | EamEquipment entity = eamEquipmentService.getById(id); |
| | | if(entity != null) { |
| | | if (entity != null) { |
| | | entity.setDelFlag(CommonConstant.DEL_FLAG_1); |
| | | eamEquipmentService.updateById(entity); |
| | | } |
| | |
| | | */ |
| | | @RequestMapping(value = "/importExcel", method = RequestMethod.POST) |
| | | public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { |
| | | return super.importExcel(request, response, EamEquipment.class); |
| | | MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; |
| | | Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); |
| | | for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { |
| | | // 获取上传文件对象 |
| | | MultipartFile file = entity.getValue(); |
| | | ImportParams params = new ImportParams(); |
| | | params.setTitleRows(0); |
| | | params.setHeadRows(1); |
| | | params.setNeedSave(true); |
| | | 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) { |
| | | //必填字段校验 |
| | | if (StringUtils.isBlank(eamEquipment.getEquipmentCode()) || StringUtils.isBlank(eamEquipment.getEquipmentName())) { |
| | | sb.append(String.format("设备编码[%s]或设备名称[%s]为空,无法导入\n\n", eamEquipment.getEquipmentCode(), eamEquipment.getEquipmentName())); |
| | | continue; |
| | | } |
| | | if (StringUtils.isBlank(eamEquipment.getEquipmentCategory())) { |
| | | sb.append(String.format("设备编码[%s]设备分类为空,无法导入\n\n", eamEquipment.getEquipmentCode())); |
| | | continue; |
| | | } |
| | | 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())); |
| | | continue; |
| | | } |
| | | 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()); |
| | | } |
| | | } |
| | | //400条 saveBatch消耗时间1592毫秒 循环插入消耗时间1947毫秒 |
| | | //1200条 saveBatch消耗时间3687毫秒 循环插入消耗时间5212毫秒 |
| | | log.info("消耗时间" + (System.currentTimeMillis() - start) + "毫秒"); |
| | | //update-end-author:taoyan date:20190528 for:批量插入数据 |
| | | if (sb.length() > 0) { |
| | | return Result.ok(sb.toString()); |
| | | } |
| | | 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) { |
| | | return Result.error("文件导入失败:有重复数据!"); |
| | | } else { |
| | | return Result.error("文件导入失败:" + e.getMessage()); |
| | | } |
| | | //update-end-author:taoyan date:20211124 for: 导入数据重复增加提示 |
| | | } finally { |
| | | try { |
| | | file.getInputStream().close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | return Result.error("文件导入失败!"); |
| | | } |
| | | |
| | | @ApiOperation(value = "设备表-通过车间ids获取设备树", notes = "设备表-通过车间ids获取设备树") |