| | |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.StringUtils; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | |
| | | import org.jeecg.common.aspect.annotation.AutoLog; |
| | | import org.jeecg.common.system.base.controller.JeecgController; |
| | | import org.jeecg.common.system.query.QueryGenerator; |
| | | import org.jeecg.modules.eam.entity.MaintenanceOrderActualWorkingHour; |
| | | import org.jeecg.modules.base.entity.*; |
| | | import org.jeecg.modules.base.service.*; |
| | | import org.jeecg.modules.spare.entity.SparePart; |
| | | import org.jeecg.modules.spare.entity.SparesPartInventory; |
| | | import org.jeecg.modules.spare.service.ISparePartService; |
| | | import org.jeecg.modules.spare.service.ISparesPartInventoryService; |
| | | import org.jeecg.modules.spare.vo.AuxiliaryUnitVo; |
| | | 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.math.BigDecimal; |
| | | import java.io.IOException; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | |
| | | private ISparesPartInventoryService sparesPartInventoryService; |
| | | @Autowired |
| | | private ISparePartService sparePartService; |
| | | @Autowired |
| | | private IUnitService unitService; |
| | | @Autowired |
| | | private ISupplierService supplierService; |
| | | |
| | | @Autowired |
| | | private IWarehouseService warehouseService; |
| | | |
| | | @Autowired |
| | | private IWarehouseAreaService warehouseAreaService; |
| | | |
| | | @Autowired |
| | | private IWarehouseLocationService warehouseLocationService; |
| | | |
| | | |
| | | /** |
| | | * 分页列表查询 |
| | |
| | | * @param response |
| | | * @return |
| | | */ |
| | | /** |
| | | * 导入 |
| | | * |
| | | * @return |
| | | */ |
| | | @RequestMapping(value = "/importExcel/{mainId}") |
| | | public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response, @PathVariable("mainId") String mainId) { |
| | | 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(2); |
| | | params.setHeadRows(1); |
| | | params.setNeedSave(true); |
| | | try { |
| | | List<SparesPartInventory> list = ExcelImportUtil.importExcel(file.getInputStream(), SparesPartInventory.class, params); |
| | | long start = System.currentTimeMillis(); |
| | | for (int i = 0; i < list.size(); i++) { |
| | | Supplier supplier = null; |
| | | Unit unit = null; |
| | | Warehouse warehouse = null; |
| | | WarehouseArea warehouseArea = null; |
| | | WarehouseLocation warehouseLocation = null; |
| | | list.get(i).setSparePartId(mainId); |
| | | |
| | | @RequestMapping(value = "/importExcel", method = RequestMethod.POST) |
| | | public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { |
| | | return super.importExcel(request, response, SparesPartInventory.class); |
| | | String mainUnitName = list.get(i).getMainUnitId(); |
| | | String supplierName = list.get(i).getSupplierId(); |
| | | String warehouseName = list.get(i).getWarehouseId(); |
| | | String warehouseAreaName = list.get(i).getWarehouseAreaId(); |
| | | String warehouseLocationName = list.get(i).getWarehouseLocationId(); |
| | | String num =list.get(i).getValidityForecast(); |
| | | |
| | | if (supplierName != null) { |
| | | supplier = supplierService.getByName(supplierName); |
| | | } |
| | | if (mainUnitName != null) { |
| | | unit = unitService.getUnitByName(mainUnitName); |
| | | } |
| | | if (warehouseName != null) { |
| | | warehouse = warehouseService.getByName(warehouseName); |
| | | } |
| | | if (warehouseAreaName != null) { |
| | | warehouseArea = warehouseAreaService.getByName(warehouseAreaName); |
| | | } |
| | | if (warehouseLocationName != null) { |
| | | warehouseLocation = warehouseLocationService.getByName(warehouseLocationName); |
| | | } |
| | | if (!StringUtils.isNotEmpty(list.get(i).getBatchNum())) |
| | | return Result.error("文件导入失败: 第" + (i + 1) + "行批次号不能为空"); |
| | | if (list.get(i).getMainQuantity() <= 0) |
| | | return Result.error("文件导入失败: 第" + (i + 1) + "行数量不能为小于等于0"); |
| | | |
| | | if (unit != null) { |
| | | if (!StringUtils.isNotEmpty(unit.getId())) |
| | | return Result.error("文件导入失败: 第" + (i + 1) + "行单位不存在"); |
| | | list.get(i).setMainUnitId(unit.getId()); |
| | | } |
| | | if (supplier != null) { |
| | | if (!StringUtils.isNotEmpty(supplier.getId())) |
| | | return Result.error("文件导入失败: 第" + (i + 1) + "行供应商不存在"); |
| | | list.get(i).setSupplierId(supplier.getId()); |
| | | } |
| | | |
| | | if (warehouse != null) { |
| | | if (!StringUtils.isNotEmpty(warehouse.getId())) |
| | | return Result.error("文件导入失败: 第" + (i + 1) + "行仓库不存在"); |
| | | list.get(i).setWarehouseId(warehouse.getId()); |
| | | } |
| | | if (warehouseArea != null) { |
| | | if (!StringUtils.isNotEmpty(warehouseArea.getId())) |
| | | return Result.error("文件导入失败: 第" + (i + 1) + "行库区不存在"); |
| | | list.get(i).setWarehouseAreaId(warehouseArea.getId()); |
| | | } |
| | | |
| | | if (warehouseLocation != null) { |
| | | if (!StringUtils.isNotEmpty(warehouseLocation.getId())) |
| | | return Result.error("文件导入失败: 第" + (i + 1) + "行库位不存在"); |
| | | list.get(i).setWarehouseLocationId(warehouseLocation.getId()); |
| | | } |
| | | list.get(i).setValidityForecast(num); |
| | | |
| | | } |
| | | |
| | | sparesPartInventoryService.saveBatch(list); |
| | | log.info("消耗时间" + (System.currentTimeMillis() - start) + "毫秒"); |
| | | return Result.OK("文件导入成功!数据行数:" + list.size()); |
| | | } catch (Exception e) { |
| | | log.error(e.getMessage(), e); |
| | | return Result.error("文件导入失败:" + e.getMessage()); |
| | | } finally { |
| | | try { |
| | | file.getInputStream().close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | return Result.error("文件导入失败!"); |
| | | } |
| | | |
| | | |