/* * 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.taskPlaceSelfCheck.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.vo.PlaceCheckVO; import org.springblade.modules.task.service.ITaskService; import org.springblade.modules.taskPlaceRecord.entity.TaskPlaceRecordEntity; import org.springblade.modules.taskPlaceRecord.service.ITaskPlaceRecordService; import org.springblade.modules.taskPlaceRecord.vo.TaskPlaceRecordVO; import org.springblade.modules.taskPlaceRectification.entity.TaskPlaceRectificationEntity; import org.springblade.modules.taskPlaceRectification.service.ITaskPlaceRectificationService; import org.springblade.modules.taskPlaceSelfCheck.dto.TaskPlaceSelfCheckDTO; import org.springblade.modules.taskPlaceSelfCheck.entity.TaskPlaceSelfCheckEntity; import org.springblade.modules.taskPlaceSelfCheck.vo.TaskPlaceSelfCheckVO; import org.springblade.modules.taskPlaceSelfCheck.mapper.TaskPlaceSelfCheckMapper; import org.springblade.modules.taskPlaceSelfCheck.service.ITaskPlaceSelfCheckService; import org.springblade.core.mp.base.BaseServiceImpl; 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; import java.util.stream.Collectors; /** * 消防自查记任务表 服务实现类 * * @author BladeX * @since 2024-02-04 */ @Service public class TaskPlaceSelfCheckServiceImpl extends ServiceImpl implements ITaskPlaceSelfCheckService { @Override public IPage selectTaskPlaceSelfCheckPage(IPage page, TaskPlaceSelfCheckVO taskPlaceSelfCheck) { return page.setRecords(baseMapper.selectTaskPlaceSelfCheckPage(page, taskPlaceSelfCheck)); } /** * 查询消防自查记任务表 * * @param id 消防自查记任务表ID * @return 消防自查记任务表 */ @Override public TaskPlaceSelfCheckDTO selectTaskPlaceSelfCheckById(Long id) { return this.baseMapper.selectTaskPlaceSelfCheckById(id); } /** * 查询消防自查记任务表列表 * * @param taskPlaceSelfCheckDTO 消防自查记任务表 * @return 消防自查记任务表集合 */ @Override public List selectTaskPlaceSelfCheckList(TaskPlaceSelfCheckDTO taskPlaceSelfCheckDTO) { return this.baseMapper.selectTaskPlaceSelfCheckList(taskPlaceSelfCheckDTO); } @Override @Transactional(rollbackFor = Exception.class) public Boolean savePlace(TaskPlaceSelfCheckVO taskPlaceSelfCheck) throws Exception { taskPlaceSelfCheck.setCreateUser(AuthUtil.getUserId()); // 1.保存任务表 ITaskService bean2 = SpringUtils.getBean(ITaskService.class); Long aLong = bean2.saveTask(CommonConstant.NUMBER_ONE, DictConstant.FIRE_SELF_CHECK_NOTICE, 1, "", AuthUtil.getUserId(), taskPlaceSelfCheck.getHouseCode(), CommonConstant.NUMBER_TWO, 4); if (aLong <= 0) { return false; } taskPlaceSelfCheck.setTaskId(aLong); // 2.保存任务详情 boolean save = save(taskPlaceSelfCheck); if (save) { // 3.保存题目记录 List taskPlaceRecordList = taskPlaceSelfCheck.getTaskPlaceRecordVOList(); ITaskPlaceRecordService bean = SpringUtil.getBean(ITaskPlaceRecordService.class); taskPlaceRecordList.stream().forEach(item -> { item.setTaskPlaceSelfCheckId(taskPlaceSelfCheck.getId()); item.setCreateUser(AuthUtil.getUserId()); }); List collect = taskPlaceRecordList.stream().filter(item -> item.getState().equals(0)).collect(Collectors.toList()); boolean b = bean.saveBatch(collect); updateById(taskPlaceSelfCheck); if (b) { return b; } throw new Exception("保存失败!"); } return false; } @Override @Transactional(rollbackFor = Exception.class) public Boolean examine(TaskPlaceSelfCheckVO taskPlaceSelfCheck) throws Exception { // 1.更新任务表 ITaskService bean2 = SpringUtils.getBean(ITaskService.class); Long aLong = bean2.updateTask(null, null, null, taskPlaceSelfCheck.getReasonFailure(), AuthUtil.getUserId(), taskPlaceSelfCheck.getTaskId(), taskPlaceSelfCheck.getStatus()); if (aLong <= 0) { return false; } // 2.更新任务详情 boolean save = updateById(taskPlaceSelfCheck); if (save) { // 3.更新题目记录 List taskPlaceRecordList = taskPlaceSelfCheck.getTaskPlaceRecordVOList(); ITaskPlaceRecordService bean = SpringUtil.getBean(ITaskPlaceRecordService.class); List collect = taskPlaceRecordList.stream().filter(item -> item.getState().equals(0)).collect(Collectors.toList()); boolean b = bean.updateBatchById(collect); if (b) { return b; } throw new Exception("保存失败!"); } throw new Exception("保存失败!"); } }