(部级录像可用率,重点录像可用率,录像可用率)计算可用率bug修复,hk接口bug修复,
5个文件已修改
79 ■■■■■ 已修改文件
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/ReportVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/task/DeleteWorkOrderImgTask.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/ReportVO.java
@@ -78,12 +78,14 @@
    /**
     * 生效时间
     */
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date beginCreateTime;
    /**
     * 失效时间
     */
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endCreateTime;
ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java
@@ -342,6 +342,7 @@
                item.setResultStr(records.get(0).getResult() ? "通过" : "未通过");
                item.setResultRemark(records.get(0).getResultRemark());
                item.setAuditingTime(records.get(0).getCreateTime());
            } else {
                item.setResultStr("审核中");
            }
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -8,6 +8,7 @@
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.util.StringUtil;
import com.ycl.config.PlatformConfig;
import com.ycl.exception.ServiceException;
import com.ycl.platform.domain.entity.*;
@@ -30,6 +31,7 @@
import com.ycl.system.mapper.SysConfigMapper;
import com.ycl.system.model.LoginUser;
import com.ycl.system.page.PageUtil;
import com.ycl.task.DeleteWorkOrderImgTask;
import com.ycl.utils.DateUtils;
import com.ycl.utils.SecurityUtils;
import com.ycl.utils.http.HttpUtils;
@@ -106,6 +108,8 @@
    @Autowired
    private RedisCache redisCache;
    @Autowired
    private DeleteWorkOrderImgTask deleteWorkOrderImgTask;
    @Override
    public synchronized Boolean innerAddWorkOrder(List<WorkOrder> workOrderList) {
@@ -609,33 +613,41 @@
            img.setWorkOrderNo(workOrder.getWorkOrderNo());
            img.setImgUrl(frameImg);
            img.setCreateTime(new Date());
            //判断该工单的图片是否已经大于5张了
            LambdaQueryChainWrapper<WorkOrderCheckImg> qw = new LambdaQueryChainWrapper<>(workOrderCheckImgMapper);
            //按照创建日期降序排列
            List<WorkOrderCheckImg> workOrderList = workOrderCheckImgMapper.selectList(
                    new LambdaQueryChainWrapper<>(workOrderCheckImgMapper)
                            .eq(WorkOrderCheckImg::getWorkOrderNo, workOrder.getWorkOrderNo())
                            .orderByDesc(WorkOrderCheckImg::getCreateTime)
            );
            //保留最新的5张
            if (workOrderList.size()>=5){
                List<String> imgList = workOrderList.subList(4,workOrderList.size()).stream().map(WorkOrderCheckImg::getImgUrl).collect(Collectors.toList());
                List<Integer> idList = workOrderList.subList(4, workOrderList.size()).stream().map(WorkOrderCheckImg::getId).collect(Collectors.toList());
                //删除照片 ,并且物理删除服务器内对应照片的名字
//                /profile/2024-11-18_1d8e6d37-a4d0-4bba-8473-ff4e50eda83d.png
                for (String filePath: imgList){
                    delImgFormClient(filePath);
                }
                workOrderCheckImgMapper.deleteBatchIds(idList);
            }
            workOrderCheckImgMapper.insert(img);
        }
    }
    /**
     * 清理工单图片
     * */
    public void clearWorkOrderImg(String workOrderNo) {
        //判断该工单的图片是否已经大于5张了
        //按照创建日期降序排列
        if (StringUtil.isEmpty(workOrderNo)) {
            return;
        }
        List<WorkOrderCheckImg> workOrderList = new LambdaQueryChainWrapper<WorkOrderCheckImg>(workOrderCheckImgMapper)
                .select()
                .eq(WorkOrderCheckImg::getWorkOrderNo, workOrderNo)
                .orderByDesc(WorkOrderCheckImg::getCreateTime)
                .list();
        if (workOrderList.size()>=5){
            List<String> imgList = workOrderList.subList(4,workOrderList.size()).stream().map(WorkOrderCheckImg::getImgUrl).collect(Collectors.toList());
            List<Integer> idList = workOrderList.subList(4, workOrderList.size()).stream().map(WorkOrderCheckImg::getId).collect(Collectors.toList());
            //删除照片 ,并且物理删除服务器内对应照片的名字
//                /profile/2024-11-18_1d8e6d37-a4d0-4bba-8473-ff4e50eda83d.png
            log.error("删除工单照片集合url:{}",imgList);
            log.error("删除工单存储数据集合id:{}",idList);
            for (String filePath: imgList){
                delImgFormClient(filePath);
            }
            workOrderCheckImgMapper.deleteBatchIds(idList);
        }
    }
    @Override
    public List<WorkOrderYwConditionRecordVO> selectYwConditionByYwId(String workOrderNo) {
@@ -697,7 +709,8 @@
            log.error("url错误:{}",imgPath);
        }else{
            //提取日期部分 组装目录 : /opt/zgyw/uploadPath  + /  + yyyy-MM-dd +
            String pathName = PlatformConfig.getUploadPath() + "/" + FileUtils.extractDateFromString(url);
            String pathName = DeleteWorkOrderImgTask.imgSaveBasePath + "/" + FileUtils.extractDateFromString(url);
            log.error("删除工单图片集合{}",pathName+"/" + imgPath);
            FileUtils.deleteFile(pathName+"/" + imgPath);
        }
    }
@@ -1231,6 +1244,8 @@
        List<SysDictData> errorList = workOrderErrorTypeService.getBaseMapper().getErrorList(workOrder.getWorkOrderNo());
        List<String> errList = errorList.stream().map(SysDictData::getDictLabel).collect(Collectors.toList());
        workOrder.setErrorTypeList(errList);
        //详情时再次清理
        clearWorkOrderImg(workOrderNo);
        // 检测图片
        List<WorkOrderCheckImg> imgList = new LambdaQueryChainWrapper<>(workOrderCheckImgMapper)
                .eq(WorkOrderCheckImg::getWorkOrderNo, workOrderNo)
ycl-server/src/main/java/com/ycl/task/DeleteWorkOrderImgTask.java
@@ -17,26 +17,29 @@
@Component("DeleteWorkOrderImgTask")
public class DeleteWorkOrderImgTask {
    private final ISysConfigService configService;
    public static String imgSaveBasePath = "/opt/zgyw/uploadPath";
    public void delWorkOrderImg() {
        String basePath = PlatformConfig.getUploadPath();
        log.info("开始删除工单照片");
        log.info("删除主路径:{}",basePath); //  /opt/zgyw/uploadPath
        log.info("删除主路径:{}",basePath); //  /opt/zgyw/uploadPath/upload
        log.info("静态设置地址:{}",imgSaveBasePath);
        //字典查询需要删除时间在几个月前的照片
        String dictLabel = configService.selectConfigByKey("del.workorder.time");
        log.info("清理时间:{}月",dictLabel);
        if (StringUtils.isEmpty(dictLabel)) {
            log.info("未设置删除时间范围");;
            dictLabel = "6";
            log.info("默认6月前的图片");
        }
        log.info("默认6月前的图片");
        //获得当前时间
        LocalDate nowDate = LocalDate.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        //计算 ? 月前的日期  ? 用字典存入系统中
        LocalDate sixMonthAgo = nowDate.minusMonths(Long.parseLong(dictLabel));
        //读取服务器中的文件夹名
        File directory = new File(basePath);
        File directory = new File(imgSaveBasePath);
        //检测路径存在 并且是一个目录
        if (directory.exists() && directory.isDirectory()) {
            //获得 目录集合
ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml
@@ -16,6 +16,8 @@
        <result column="report_content" property="reportContent" />
        <result column="report_materials" property="reportMaterials" />
        <result column="error_type" property="errorType" />
        <result column="begin_create_time" property="beginCreateTime"/>
        <result column="end_create_time" property="endCreateTime"/>
    </resultMap>
    <select id="page" resultType="com.ycl.platform.domain.vo.ReportVO">