lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java
@@ -34,6 +34,7 @@ private java.lang.String id; /**创建人*/ @ApiModelProperty(value = "创建人") @Dict(dicCode = "sys_user, realname, username") private java.lang.String createBy; /**创建时间*/ @ApiModelProperty(value = "创建时间") @@ -42,6 +43,7 @@ private java.util.Date createTime; /**更新人*/ @ApiModelProperty(value = "更新人") @Dict(dicCode = "sys_user, realname, username") private java.lang.String updateBy; /**更新时间*/ @ApiModelProperty(value = "更新时间") @@ -60,11 +62,11 @@ @ApiModelProperty(value = "设备名称") private java.lang.String equipmentName; /**关键设备标识*/ @Excel(name = "关键设备标识", width = 15) @Excel(name = "关键设备标识", width = 15, dicCode = "yn") @ApiModelProperty(value = "关键设备标识") private java.lang.String equipmentImportance; /**技术状态*/ @Excel(name = "设备状态", width = 15, dicCode = "technology_status") @Excel(name = "技术状态", width = 15, dicCode = "technology_status") @ApiModelProperty(value = "技术状态") @Dict(dicCode = "technology_status") private java.lang.String technologyStatus; @@ -73,17 +75,17 @@ @ApiModelProperty(value = "操作系统") private java.lang.String operationSystem; /**使用部门*/ @Excel(name = "使用部门", width = 15, dicCode = "mdc_production, production_name, id") @Excel(name = "使用车间", width = 25, dictTable = "mdc_production", dicText = "production_name", dicCode = "id") @ApiModelProperty(value = "使用部门") @Dict(dicCode = "mdc_production, production_name, id") private java.lang.String orgId; /**设备管理员*/ @Excel(name = "设备管理员", width = 15, dicCode = "sys_user, realname, username") @Excel(name = "设备管理员", width = 35, dictTable = "sys_user", dicText = "realname", dicCode = "username") @ApiModelProperty(value = "设备管理员") @Dict(dicCode = "sys_user, realname, username") private java.lang.String equipmentManager; /**设备分类*/ @Excel(name = "设备分类", width = 15, dicCode = "equipment_category") @Excel(name = "设备所属分类", width = 15, dicCode = "equipment_category") @ApiModelProperty(value = "设备分类") @Dict(dicCode = "equipment_category") private java.lang.String equipmentCategory; @@ -96,7 +98,7 @@ @ApiModelProperty(value = "设备规格") private java.lang.String equipmentSpecification; /**主轴连接尺寸*/ @Excel(name = "主轴连接尺寸", width = 15) @Excel(name = "主轴连接尺寸", width = 25) @ApiModelProperty(value = "主轴连接尺寸") private java.lang.String spindleConnectDimension; /**总功率*/ @@ -125,31 +127,35 @@ @ApiModelProperty(value = "机床厂家") private java.lang.String manufacturingEnterprise; /**来源国家*/ @Excel(name = "来源国家", width = 15) @Excel(name = "机床来源国家", width = 25) @ApiModelProperty(value = "来源国家") private java.lang.String originCountry; /**出厂日期*/ @Excel(name = "出厂日期", width = 25, format = "yyyy-MM-dd") @ApiModelProperty(value = "出厂日期") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") private java.util.Date leaveFactoryDate; /**验收日期*/ @Excel(name = "验收日期", width = 25, format = "yyyy-MM-dd") @ApiModelProperty(value = "验收日期") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") private java.util.Date acceptanceCheckDate; /**质保开始日期*/ @Excel(name = "质保开始日期", width = 25, format = "yyyy-MM-dd") @ApiModelProperty(value = "质保开始日期") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") private java.util.Date warrantyStartDate; /**质保结束日期*/ @Excel(name = "质保结束日期", width = 25, format = "yyyy-MM-dd") @ApiModelProperty(value = "质保结束日期") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") private java.util.Date warrantyEndDate; /**是否实施MDC*/ @Excel(name = "是否实施MDC", width = 15) @Excel(name = "是否实施MDC", width = 15, dicCode = "yn") @ApiModelProperty(value = "是否实施MDC") private java.lang.String mdcFlag; /*=====================上面是沃克模板字段======================*/ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
@@ -1,10 +1,12 @@ 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; @@ -14,14 +16,20 @@ 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: 设备台账 @@ -169,7 +177,91 @@ */ @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获取设备树")