houjie
2023-09-04 a1f67e8727f7af3b3b472446616ab6c591caaebc
lxzn-module-eam/src/main/java/org/jeecg/modules/spare/controller/SparesPartInventoryController.java
@@ -2,6 +2,7 @@
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;
@@ -10,19 +11,23 @@
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;
@@ -42,6 +47,20 @@
    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;
    /**
     * 分页列表查询
@@ -167,10 +186,106 @@
     * @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("文件导入失败!");
    }