“linengliang”
2023-10-10 fbd45b5367da79ca5001fe7aba53b3220b5e1384
精度参数模板导入1.0
已修改2个文件
112 ■■■■ 文件已修改
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/PrecisionParametersTemplateController.java 97 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/PrecisionParametersTemplateDetailController.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/PrecisionParametersTemplateController.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
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;
@@ -250,31 +251,77 @@
                InputStream fis = file.getInputStream();
                Workbook workbook = new XSSFWorkbook(fis);
                Sheet sheet = workbook.getSheetAt(0);
                PrecisionParametersTemplate precisionParametersTemplate = new PrecisionParametersTemplate();
                Row row1 = sheet.getRow(1);
                Cell cell15 = row1.getCell(5);
                if(ObjectUtils.isNotNull(cell15)&&cell15.getCellType()==CellType.NUMERIC){
                    String num = (int)cell15.getNumericCellValue()+"";
                    precisionParametersTemplate.setNum(num);
                    EquipmentPrecisionParameters equipmentPrecisionParameters = new EquipmentPrecisionParameters();
                }
                for (Row row : sheet) {
                    Cell cell1 = row.getCell(1);
                    if(row.getRowNum()>4){
                    PrecisionParametersTemplate precisionParametersTemplate = precisionParametersTemplateService.getOne(new QueryWrapper<PrecisionParametersTemplate>().eq("num",num).eq("del_flag",0),false);
                    if(ObjectUtils.isNull(precisionParametersTemplate)){
                        precisionParametersTemplate = new PrecisionParametersTemplate();
                        precisionParametersTemplate.setNum(num);
                        precisionParametersTemplate.setName(num+"精度检验单");
                        precisionParametersTemplate.setDelFlag(0);
                        precisionParametersTemplateService.save(precisionParametersTemplate);
                    }
                    for (Cell cell : row) {
                        String cellValue = "";
                        if (cell.getCellType() == CellType.STRING) {
                            cellValue = cell.getStringCellValue();
                        } else if (cell.getCellType() == CellType.NUMERIC) {
                            cellValue = String.valueOf(cell.getNumericCellValue());
                    precisionParametersTemplateDetailService.remove(new QueryWrapper<PrecisionParametersTemplateDetail>().eq("precision_parameters_template_id",precisionParametersTemplate.getId()));
                    for (Row row : sheet) {
                        if(row.getRowNum()>3&&row.getRowNum()<sheet.getLastRowNum()){
                            PrecisionParametersTemplateDetail precisionParametersTemplateDetail = new PrecisionParametersTemplateDetail();
                            Cell cell1 = row.getCell(1);
                            String cellValue1 = "";
                            if(isMergedCell(sheet,cell1)){
                                cellValue1 = getMergedCellValue(sheet,cell1);
                            }
                            else if (cell1.getCellType() == CellType.STRING) {
                                cellValue1 = cell1.getStringCellValue();
                            }
                            Cell cell3 = row.getCell(3);
                            String cellValue3 = "";
                            if (cell3.getCellType() == CellType.STRING) {
                                cellValue3 = cell3.getStringCellValue();
                            }
                            Cell cell4 = row.getCell(4);
                            String cellValue4 = "";
                            if(isMergedCell(sheet,cell4)){
                                cellValue4 = getMergedCellValue(sheet,cell4);
                            }
                            else if (cell4.getCellType() == CellType.STRING) {
                                cellValue4 = cell4.getStringCellValue();
                            }else if(cell4.getCellType() == CellType.NUMERIC){
                                cellValue4 = String.valueOf(cell4.getNumericCellValue());
                            }
                            PrecisionParameters precisionParameters = precisionParametersService.getOne(new QueryWrapper<PrecisionParameters>().eq("name",cellValue1).eq("precision_parameters_uda1",cellValue3).eq("del_flag",0));
                            if(ObjectUtils.isNull(precisionParameters)){
                                precisionParameters = new PrecisionParameters();
                                precisionParameters.setName(cellValue1);
                                precisionParameters.setPrecisionParametersUda1(cellValue3);
                                precisionParameters.setDelFlag(0);
                                precisionParametersService.save(precisionParameters);
                            }
                            precisionParametersTemplateDetail.setPrecisionParametersTemplateId(precisionParametersTemplate.getId());
                            precisionParametersTemplateDetail.setPrecisionParametersId(precisionParameters.getId());
                            precisionParametersTemplateDetail.setPrecisionParametersUda1(cellValue3);
                            precisionParametersTemplateDetail.setTolerance(cellValue4);
                            String[] needs = cellValue4.split("/");
                            if(needs.length==2){
                                precisionParametersTemplateDetail.setDistance(Double.valueOf(needs[1]));
                            }
                            if(StringUtils.isNotBlank(needs[0])){
                                precisionParametersTemplateDetail.setBase(Double.valueOf(needs[0]));
                            }
                            precisionParametersTemplateDetail.setSort(row.getRowNum()-4);
                            precisionParametersTemplateDetailService.save(precisionParametersTemplateDetail);
                        }
                        // 在这里可以根据您的逻辑处理和清理数据
                        System.out.println("Cell Value: " + cellValue);
                    }
                    Equipment equipment = equipmentService.getOne(new QueryWrapper<Equipment>().eq("num",num).eq("del_flag",0),false);
                    if(ObjectUtils.isNotNull(equipment)&&StringUtils.isBlank(equipment.getPrecisionParametersTemplateId())){
                        equipment.setPrecisionParametersTemplateId(precisionParametersTemplate.getId());
                        equipmentService.updateById(equipment);
                    }
                    return Result.OK("导入成功");
                }
                else {
                    return Result.OK("导入失败,统一编码格式错误,请正确填写表头");
                }
            } catch (IOException e) {
                e.printStackTrace();
@@ -283,7 +330,11 @@
        }
        return Result.error("文件导入失败!");
    }
    // 检查单元格是否在合并单元格范围内
    /**
     *
     * 检查单元格是否在合并单元格范围内.
     *
     */
    private boolean isMergedCell(Sheet sheet, Cell cell) {
        for (CellRangeAddress mergedRegion : sheet.getMergedRegions()) {
            if (mergedRegion.isInRange(cell.getRowIndex(), cell.getColumnIndex())) {
@@ -292,8 +343,11 @@
        }
        return false;
    }
    // 获取合并单元格的值
    /**
     *
     * 获取合并单元格的值.
     *
     */
    private String getMergedCellValue(Sheet sheet, Cell cell) {
        for (CellRangeAddress mergedRegion : sheet.getMergedRegions()) {
            if (mergedRegion.isInRange(cell.getRowIndex(), cell.getColumnIndex())) {
@@ -312,4 +366,5 @@
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/PrecisionParametersTemplateDetailController.java
@@ -1,7 +1,7 @@
package org.jeecg.modules.eam.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -23,6 +23,7 @@
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
/**
@@ -64,18 +65,18 @@
    public Result<IPage<PrecisionParametersTemplateDetail>> listByPrecisionParametersTemplateId(PrecisionParametersTemplateDetail precisionParametersTemplateDetail, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
        QueryWrapper<PrecisionParametersTemplateDetail> queryWrapper = QueryGenerator.initQueryWrapper(precisionParametersTemplateDetail, req.getParameterMap());
        Page<PrecisionParametersTemplateDetail> page = new Page<PrecisionParametersTemplateDetail>(pageNo, pageSize);
        queryWrapper.orderByAsc("sort");
        OrderItem orderItem  = new OrderItem();
        orderItem.setColumn("sort");
        orderItem.setAsc(true);
        List<OrderItem> orderItems = new ArrayList<>();
        orderItems.add(orderItem);
        page.setOrders(orderItems);
        IPage<PrecisionParametersTemplateDetail> pageList = precisionParametersTemplateDetailService.page(page, queryWrapper);
        List<PrecisionParametersTemplateDetail> records = pageList.getRecords();
        for (PrecisionParametersTemplateDetail record : records) {
            PrecisionParameters precisionParameters = precisionParametersService.getById(record.getPrecisionParametersId());
//            record.setPrecisionParametersNum(precisionParameters.getNum());
            record.setPrecisionParametersName(precisionParameters.getName());
            record.setPrecisionParametersUda1(precisionParameters.getPrecisionParametersUda1());
//            record.setPrecisionParametersCategory(precisionParametersCategoryService.getById(precisionParameters.getPrecisionParametersCategoryId()).getName());
//            record.setUnit(unitService.getById(precisionParameters.getUnitId()).getName());
//            String unitName = sysBaseApi.getUnitNameById(precisionParameters.getUnitId());
//            record.setUnit(unitName);
        }
        return Result.OK(pageList);
    }