lohir
2024-10-24 99cc61dad74f04a7616c3541f5e87762585abb93
白名单导入
8个文件已修改
113 ■■■■■ 已修改文件
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderWhite.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/controller/YwThresholdController.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderWhiteMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/IYwThresholdService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/WorkOrderWhiteMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderWhite.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@@ -39,4 +40,10 @@
    /** 备注 */
    @TableField("remark")
    private String remark;
    public WorkOrderWhite(String serialNumber, String pointName, String createBy) {
        this.serialNumber = serialNumber;
        this.pointName = pointName;
        this.createBy = createBy;
    }
}
ycl-server/src/main/java/com/ycl/platform/controller/YwThresholdController.java
@@ -4,17 +4,26 @@
import com.ycl.platform.domain.entity.YwThreshold;
import com.ycl.platform.service.IYwThresholdService;
import com.ycl.system.AjaxResult;
import com.ycl.system.Result;
import com.ycl.system.controller.BaseController;
import com.ycl.system.page.TableDataInfo;
import com.ycl.utils.poi.ExcelUtil;
import enumeration.BusinessType;
import io.swagger.annotations.ApiOperation;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutionException;
/**
 * 运维阈值Controller
@@ -82,4 +91,17 @@
    {
        return toAjax(ywThresholdService.deleteYwThresholdByIds(ids));
    }
    /**
     * 导入数据
     *
     * @param file 文件
     * @return {@link Result }
     * @author
     */
    @PostMapping("/import")
    @ApiOperation(value = "导入数据", notes = "导入数据")
    public Result importData(MultipartFile file) throws IOException, ParseException, ExecutionException, InterruptedException {
        return ywThresholdService.importData(file);
    }
}
ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderWhiteMapper.java
@@ -60,4 +60,12 @@
     * @author
     */
    List<WorkOrderWhite> selectList();
    /**
     * 按序列号更新
     *
     * @param white 白色
     * @author
     */
    void updateBySerialNumber(WorkOrderWhite white);
}
ycl-server/src/main/java/com/ycl/platform/service/IYwThresholdService.java
@@ -4,6 +4,8 @@
import com.ycl.platform.domain.entity.YwThreshold;
import com.ycl.platform.domain.result.HK.FaceDeviceInspectionResult;
import com.ycl.platform.domain.result.HK.VehicleDeviceInspectionResult;
import com.ycl.system.Result;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Map;
@@ -83,4 +85,13 @@
     * 阈值无法判断的,校验故障类型生成工单。优云
     */
    public void errorTypeCheckUY(List list);
    /**
     * 导入数据
     *
     * @param file 文件
     * @return {@link Result }
     * @author
     */
    Result importData(MultipartFile file);
}
ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
@@ -4,6 +4,7 @@
import com.ycl.platform.domain.entity.WorkOrder;
import com.ycl.platform.domain.entity.WorkOrderAuditingRecord;
import com.ycl.platform.domain.entity.WorkOrderWhite;
import com.ycl.platform.domain.excel.PointExport;
import com.ycl.platform.domain.form.*;
import com.ycl.platform.domain.query.*;
import com.ycl.platform.domain.vo.*;
@@ -261,4 +262,12 @@
     * @author
     */
    Result batchDeleteWorkOrderWhite(List<String> ids);
    /**
     * 批量导入工单白名单
     *
     * @param dataList 数据列表
     * @author
     */
    void batchImportWhite(List<PointExport> dataList);
}
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -14,6 +14,7 @@
import com.ycl.config.ServerConfig;
import com.ycl.exception.ServiceException;
import com.ycl.platform.domain.entity.*;
import com.ycl.platform.domain.excel.PointExport;
import com.ycl.platform.domain.form.*;
import com.ycl.platform.domain.query.*;
import com.ycl.platform.domain.vo.*;
@@ -1053,4 +1054,26 @@
        workOrderWhiteMapper.batchDelete(ids);
        return Result.ok();
    }
    /**
     * 批量导入白名单
     *
     * @param dataList 数据列表
     * @author
     */
    @Override
    public void batchImportWhite(List<PointExport> dataList) {
        // 获得所有需要新增的白名单对象
        List<WorkOrderWhite> whitelist = dataList.stream().map(pointExport ->
                        new WorkOrderWhite(pointExport.getSerialNumber(), pointExport.getPointName(), SecurityUtils.getUsername()))
                .collect(Collectors.toList());
        // 获得所有已存在的白名单设备编码
        List<String> serialNumbers = workOrderWhiteMapper.selectList().stream().map(WorkOrderWhite::getSerialNumber).collect(Collectors.toList());
        // 筛选出新增、修改的白名单对象
        List<WorkOrderWhite> updateWhiteList = whitelist.stream().filter(white -> serialNumbers.contains(white.getSerialNumber())).collect(Collectors.toList());
        List<WorkOrderWhite> insertWhiteList = whitelist.stream().filter(white ->!serialNumbers.contains(white.getSerialNumber())).collect(Collectors.toList());
        // 新增/修改白名单设备记录
        updateWhiteList.stream().forEach(white -> workOrderWhiteMapper.updateBySerialNumber(white));
        insertWhiteList.stream().forEach(white -> workOrderWhiteMapper.insert(white));
    }
}
ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
@@ -4,12 +4,18 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.platform.domain.entity.WorkOrder;
import com.ycl.platform.domain.entity.YwThreshold;
import com.ycl.platform.domain.excel.PointExport;
import com.ycl.platform.domain.result.HK.FaceDeviceInspectionResult;
import com.ycl.platform.domain.result.HK.VehicleDeviceInspectionResult;
import com.ycl.platform.domain.vo.DynamicColumnVO;
import com.ycl.platform.mapper.YwThresholdMapper;
import com.ycl.platform.service.IYwThresholdService;
import com.ycl.platform.service.WorkOrderService;
import com.ycl.system.Result;
import com.ycl.utils.ip.PingUtil;
import com.ycl.utils.poi.EasyExcelImportUtils;
import com.ycl.utils.uuid.IdUtils;
import constant.PointHeaderConstant;
import constant.YwThreadConstants;
import enumeration.CompareType;
import enumeration.ErrorType;
@@ -19,6 +25,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import utils.DateUtils;
import java.util.*;
@@ -146,6 +153,21 @@
        // 亮度异常故障检测
    }
    @Override
    public Result importData(MultipartFile file) {
        List<Map<String, String>> list = EasyExcelImportUtils.makeData(file);
        List<PointExport> dataList = new ArrayList<>();
        for (Map<String, String> map : list) {
            PointExport pointExport = new PointExport();
            pointExport.setPointName(map.get(PointHeaderConstant.Point_Name));
            pointExport.setSerialNumber(map.get(PointHeaderConstant.Serial_Number));
            dataList.add(pointExport);
        }
        workOrderService.batchImportWhite(dataList);
        return Result.ok("导入成功");
    }
    /**
     * 判断人脸阈值是否满足下发条件
     *
ycl-server/src/main/resources/mapper/zgyw/WorkOrderWhiteMapper.xml
@@ -15,7 +15,16 @@
    <sql id="selectWorkOrderWhiteVo">
        select id, serial_number, point_name, create_by, remark from t_work_order_white
    </sql>
    <update id="updateBySerialNumber">
        update t_work_order_white
        <set>
            <if test="pointName != null and pointName != ''">point_name = #{pointName},</if>
            <if test="createBy != null">create_by = #{createBy},</if>
            <if test="remark != null">remark = #{remark},</if>
        </set>
        where serial_number = #{serialNumber}
    </update>
    <select id="page" parameterType="Long" resultMap="WorkOrderWhiteResult">
        <include refid="selectWorkOrderWhiteVo"/>
        <where>