| | |
| | | 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.*; |
| | |
| | | import com.ycl.platform.wvp.WVPResult; |
| | | import com.ycl.system.Result; |
| | | import com.ycl.system.domain.SysConfig; |
| | | import com.ycl.system.entity.SysDept; |
| | | import com.ycl.system.entity.SysDictData; |
| | | import com.ycl.system.mapper.SysConfigMapper; |
| | | import com.ycl.system.model.LoginUser; |
| | | import com.ycl.system.page.PageUtil; |
| | | import com.ycl.system.service.ISysDeptService; |
| | | import com.ycl.task.DeleteWorkOrderImgTask; |
| | | import com.ycl.utils.DateUtils; |
| | | import com.ycl.utils.SecurityUtils; |
| | | import com.ycl.utils.http.HttpUtils; |
| | |
| | | import pojo.CascadeOption; |
| | | import utils.file.FileUtils; |
| | | |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.time.ZoneId; |
| | | import java.util.*; |
| | |
| | | |
| | | @Autowired |
| | | private RedisCache redisCache; |
| | | @Autowired |
| | | private DeleteWorkOrderImgTask deleteWorkOrderImgTask; |
| | | |
| | | @Override |
| | | public synchronized Boolean innerAddWorkOrder(List<WorkOrder> workOrderList) { |
| | |
| | | return Result.ok("操作成功"); |
| | | } |
| | | |
| | | @Override |
| | | public Result ywConditionList(WorkOrderYWConditionsForm form) { |
| | | List<WorkOrder> workOrderList = new LambdaQueryChainWrapper<>(baseMapper) |
| | | .in(WorkOrder::getWorkOrderNo,form.getWorkOrderNumbers()) |
| | | .list(); |
| | | System.out.println("--------------"); |
| | | System.out.println(workOrderList); |
| | | if (CollectionUtils.isEmpty(workOrderList)) { |
| | | throw new ServiceException("工单不存在"); |
| | | } |
| | | // 工单状态 |
| | | for (WorkOrder workOrder : workOrderList) { |
| | | workOrder.setStatus(WorkOrderStatusEnum.YW_HANDLE); |
| | | workOrder.setYwHandleTime(LocalDateTime.now()); |
| | | } |
| | | baseMapper.updateMany(workOrderList); |
| | | // 添加一条运维情况记录 |
| | | for (WorkOrder workOrder : workOrderList) { |
| | | WorkOrderYwConditionRecord workOrderYwConditionRecord = new WorkOrderYwConditionRecord(); |
| | | workOrderYwConditionRecord.setWorkOrderNo(workOrder.getWorkOrderNo()); |
| | | workOrderYwConditionRecord.setCommitUser(SecurityUtils.getLoginUser().getUserId().intValue()); |
| | | workOrderYwConditionRecord.setYwCondition(form.getYwCondition()); |
| | | workOrderYwConditionRecord.setYwProofMaterials(form.getYwProofMaterials()); |
| | | workOrderYwConditionRecord.setSysMsg(Boolean.FALSE); |
| | | workOrderYwConditionRecordMapper.insert(workOrderYwConditionRecord); |
| | | WorkOrderServiceImpl self = applicationContext.getBean(WorkOrderServiceImpl.class); |
| | | self.getImage(workOrder); |
| | | } |
| | | return Result.ok("操作成功"); |
| | | } |
| | | |
| | | @Async("threadPoolTaskExecutor") |
| | | public void getImage(WorkOrder workOrder) { |
| | | List<DeviceInfo> gbDevices = new LambdaQueryChainWrapper<>(deviceInfoMapper) |
| | |
| | | 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()); |
| | | //删除照片 ,并且物理删除服务器内对应照片的名字 |
| | | for (String filePath: imgList){ |
| | | FileUtils.deleteFile( PlatformConfig.getUploadPath()+ 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) { |
| | |
| | | return Result.error("删除失败"); |
| | | } |
| | | |
| | | /*** |
| | | * 通过url删除服务器内的图片 |
| | | * @param url |
| | | */ |
| | | public void delImgFormClient(String url){ |
| | | //提取文件名 /profile/2024-11-17_79c02666-da1e-45ba-9f29-7523c848fa4a.png |
| | | // 这部分2024-11-17_79c02666-da1e-45ba-9f29-7523c848fa4a.png |
| | | String imgPath = FileUtils.getImgName(url); |
| | | if (imgPath.isEmpty()){ |
| | | log.error("url错误:{}",imgPath); |
| | | }else{ |
| | | //提取日期部分 组装目录 : /opt/zgyw/uploadPath + / + yyyy-MM-dd + |
| | | String pathName = DeleteWorkOrderImgTask.imgSaveBasePath + "/" + FileUtils.extractDateFromString(url); |
| | | log.error("删除工单图片集合{}",pathName+"/" + imgPath); |
| | | FileUtils.deleteFile(pathName+"/" + imgPath); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * id删除 |
| | | * |
| | |
| | | log.error("删除路径:{}",PlatformConfig.getUploadPath()); |
| | | |
| | | for (String filePath: workOrderImg){ |
| | | FileUtils.deleteFile( PlatformConfig.getUploadPath()+ filePath); |
| | | delImgFormClient(filePath); |
| | | } |
| | | // /home/zgyw/uploadPath |
| | | |
| | | //删除工单图片记录 |
| | | workOrderCheckImgMapper.delete(new QueryWrapper<WorkOrderCheckImg>().eq("work_order_no", workOrderNo)); |
| | |
| | | //删除工单情况记录 |
| | | workOrderYwConditionRecordMapper.delete(new QueryWrapper<WorkOrderYwConditionRecord>().eq("work_order_no", workOrderNo)); |
| | | |
| | | |
| | | |
| | | |
| | | if (baseMapper.deleteById(id) > 0) { |
| | | return Result.ok("删除成功"); |
| | | } |
| | |
| | | |
| | | |
| | | |
| | | |
| | | private final ISysDeptService deptService; |
| | | /** |
| | | * 分页查询 |
| | | * |
| | |
| | | */ |
| | | @Override |
| | | public Result page(WorkOrderQuery query) { |
| | | LoginUser loginUser = SecurityUtils.getLoginUser(); |
| | | SysDept sysDept = null; |
| | | Long deptId =null; |
| | | if (loginUser.getDeptId() != null){ |
| | | deptId = loginUser.getDeptId(); |
| | | sysDept = deptService.selectDeptById(deptId); |
| | | } |
| | | //查询指定区数据 |
| | | // 登录账号的存在部门 不在部门内就不传值,默认查询全部 |
| | | if (sysDept !=null){ |
| | | //更具部门id获得对应枚举 部门code |
| | | AreaDeptEnum areaDeptEnum = AreaDeptEnum.fromDept(Math.toIntExact(sysDept.getDeptId())); |
| | | if (areaDeptEnum != null){ |
| | | query.setDept(areaDeptEnum.getCode()); |
| | | } |
| | | } |
| | | |
| | | |
| | | IPage<WorkOrderVO> page = PageUtil.getPage(query, WorkOrderVO.class); |
| | | if (query.getUnitId() == null) { |
| | | query.setUnitId(SecurityUtils.getUnitId()); |
| | |
| | | if (query.getEnd() != null) query.setEnd(DateUtils.getDayEnd(query.getEnd())); |
| | | baseMapper.distributePage(page, query); |
| | | return Result.ok().data(page).total(page.getTotal()); |
| | | } |
| | | |
| | | @Override |
| | | public List<WorkOrderVO> distributeList(){ |
| | | return baseMapper.distributeList(); |
| | | } |
| | | |
| | | @Override |
| | |
| | | distributeUnLock(); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | | @Transactional |
| | |
| | | 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) |