/* * 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 org.springblade.core.secure.utils.AuthUtil; 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.vo.PlaceCheckVO; import org.springblade.modules.place.mapper.PlaceCheckMapper; import org.springblade.modules.place.service.IPlaceCheckService; 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.stream.Collectors; /** * 场所检查表 服务实现类 * * @author BladeX * @since 2024-01-27 */ @Service public class PlaceCheckServiceImpl extends ServiceImpl implements IPlaceCheckService { @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()); boolean save = save(placeCheck); if (save) { IPatrolRecordService bean = SpringUtil.getBean(IPatrolRecordService.class); List patrolRecordVOList = placeCheck.getPatrolRecordVOList(); patrolRecordVOList.stream().forEach(item -> { item.setPlaceCheckId(placeCheck.getId()); item.setCreateUser(AuthUtil.getUserId()); }); boolean b = bean.saveBatch(placeCheck.getPatrolRecordVOList()); if (b) { 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); } }