/* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill 庄骞 (smallchill@163.com) */ package org.springblade.modules.place.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xxl.job.core.util.FileUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springblade.common.constant.CommonConstant; import org.springblade.common.constant.DictConstant; import org.springblade.common.utils.SpringUtils; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.SpringUtil; import org.springblade.modules.patrol.entity.PatrolRecord; import org.springblade.modules.patrol.service.IPatrolRecordService; import org.springblade.modules.place.dto.PlaceCheckDTO; import org.springblade.modules.place.entity.PlaceCheckEntity; import org.springblade.modules.place.service.IPlaceService; import org.springblade.modules.place.vo.PlaceCheckVO; import org.springblade.modules.place.mapper.PlaceCheckMapper; import org.springblade.modules.place.service.IPlaceCheckService; import org.springblade.modules.task.service.ITaskService; import org.springblade.modules.taskPlaceRectification.entity.TaskPlaceRectificationEntity; import org.springblade.modules.taskPlaceRectification.service.ITaskPlaceRectificationService; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.concurrent.atomic.AtomicReference; /** * 场所检查表 服务实现类 * * @author BladeX * @since 2024-01-27 */ @Service public class PlaceCheckServiceImpl extends ServiceImpl implements IPlaceCheckService { private static Logger logger = LoggerFactory.getLogger(PlaceCheckServiceImpl.class); @Override public IPage selectPlaceCheckPage(IPage page, PlaceCheckVO placeCheck) { List placeCheckVOS = baseMapper.selectPlaceCheckPage(page, placeCheck); for (PlaceCheckVO placeCheckVO : placeCheckVOS) { int number = 0; for (PatrolRecord patrolRecord : placeCheckVO.getPatrolRecordVOList()) { if (patrolRecord.getState().equals(0)) { number++; } } placeCheckVO.setNumber(number); } return page.setRecords(placeCheckVOS); } @Override @Transactional(rollbackFor = Exception.class) public Boolean savePlace(PlaceCheckVO placeCheck) throws Exception { placeCheck.setCreateUser(AuthUtil.getUserId()); List patrolRecordVOList = placeCheck.getPatrolRecordVOList(); AtomicReference number = new AtomicReference<>(0); patrolRecordVOList.stream().forEach(item -> { if (item.getState().equals(0)) { number.getAndSet(number.get() + 1); } }); placeCheck.setHiddenDangerNumber(number.get()); boolean save = save(placeCheck); if (save) { IPatrolRecordService bean = SpringUtil.getBean(IPatrolRecordService.class); patrolRecordVOList.stream().forEach(item -> { item.setPlaceCheckId(placeCheck.getId()); item.setCreateUser(AuthUtil.getUserId()); }); boolean b = bean.saveBatch(patrolRecordVOList); updateById(placeCheck); if (b) { // 隐患问题大于0 则创建任务 try { Integer integer = number.get(); if (integer > 0) { // 保存任务表 ITaskService bean2 = SpringUtils.getBean(ITaskService.class); Long aLong = bean2.saveTask(CommonConstant.NUMBER_FOUR, DictConstant.FIRE_RECTIFICATION_NOTICE, 1, "", AuthUtil.getUserId(), placeCheck.getHouseCode(), CommonConstant.NUMBER_EIGHT,4); if (aLong > 0) { // 保存任务详情表 ITaskPlaceRectificationService bean1 = SpringUtil.getBean(ITaskPlaceRectificationService.class); TaskPlaceRectificationEntity copy = BeanUtil.copy(placeCheck, TaskPlaceRectificationEntity.class); copy.setTaskId(aLong); copy.setPlaceCheckId(placeCheck.getId()); copy.setId(null); copy.setStatus(4); bean1.save(copy); } } } catch (Exception e) { logger.error("任务保存失败!", e); } return b; } throw new Exception("保存失败!"); } return false; } /** * 查询场所检查表 * * @param id 场所检查表ID * @return 场所检查表 */ @Override public PlaceCheckVO selectPlaceCheckById(Long id) { return this.baseMapper.selectPlaceCheckById(id); } /** * 查询场所检查表列表 * * @param placeCheckDTO 场所检查表 * @return 场所检查表集合 */ @Override public List selectPlaceCheckList(PlaceCheckDTO placeCheckDTO) { return this.baseMapper.selectPlaceCheckList(placeCheckDTO); } }