package com.doumee.service.business.impl; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.model.LoginUserInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; import com.doumee.dao.business.YwPatrolPointMapper; import com.doumee.dao.business.model.Category; import com.doumee.dao.business.model.YwDevice; import com.doumee.dao.business.model.YwPatrolPoint; import com.doumee.dao.system.MultifileMapper; import com.doumee.dao.system.model.Multifile; import com.doumee.dao.system.model.SystemUser; import com.doumee.service.business.YwPatrolPointService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.Date; import java.util.List; import java.util.Objects; /** * 运维巡检点信息表Service实现 * @author 江蹄蹄 * @date 2024/11/19 16:07 */ @Service public class YwPatrolPointServiceImpl implements YwPatrolPointService { @Autowired private YwPatrolPointMapper ywPatrolPointMapper; @Autowired private SystemDictDataBiz systemDictDataBiz; @Autowired private MultifileMapper multifileMapper; @Override public Integer create(YwPatrolPoint ywPatrolPoint) { if(Objects.isNull(ywPatrolPoint) || Objects.isNull(ywPatrolPoint.getCode()) || Objects.isNull(ywPatrolPoint.getName()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } if(ywPatrolPointMapper.selectCount(new QueryWrapper().lambda().eq(YwPatrolPoint::getIsdeleted,Constants.ZERO) .eq(YwPatrolPoint::getCode,ywPatrolPoint.getCode()))>Constants.ZERO){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"巡检点编码重复!"); } LoginUserInfo loginUserInfo = ywPatrolPoint.getLoginUserInfo(); ywPatrolPoint.setCreateDate(new Date()); ywPatrolPoint.setCreator(loginUserInfo.getId()); ywPatrolPoint.setIsdeleted(Constants.ZERO); ywPatrolPoint.setStatus(Constants.ZERO); ywPatrolPointMapper.insert(ywPatrolPoint); if(Objects.nonNull(ywPatrolPoint.getMultifile())){ ywPatrolPoint.getMultifile().setCreator(loginUserInfo.getId()); ywPatrolPoint.getMultifile().setCreateDate(new Date()); ywPatrolPoint.getMultifile().setIsdeleted(Constants.ZERO); ywPatrolPoint.getMultifile().setObjType(Constants.MultiFile.FN_PATROL_POINT_FILE.getKey()); ywPatrolPoint.getMultifile().setObjId(ywPatrolPoint.getId()); multifileMapper.insert(ywPatrolPoint.getMultifile()); } return ywPatrolPoint.getId(); } @Override public void deleteById(Integer id, LoginUserInfo user) { ywPatrolPointMapper.update(new UpdateWrapper().lambda().set(YwPatrolPoint::getIsdeleted,Constants.ONE) .set(YwPatrolPoint::getEditDate," now() ") .set(YwPatrolPoint::getEditor,user.getId()) .eq(YwPatrolPoint::getId,user.getId()) ); } @Override public void delete(YwPatrolPoint ywPatrolPoint) { UpdateWrapper deleteWrapper = new UpdateWrapper<>(ywPatrolPoint); ywPatrolPointMapper.delete(deleteWrapper); } @Override public void deleteByIdInBatch(List ids, LoginUserInfo user) { if (CollectionUtils.isEmpty(ids)) { return; } ywPatrolPointMapper.deleteBatchIds(ids); } @Override public void updateById(YwPatrolPoint ywPatrolPoint) { if(Objects.isNull(ywPatrolPoint) || Objects.isNull(ywPatrolPoint.getId()) || Objects.isNull(ywPatrolPoint.getCode()) || Objects.isNull(ywPatrolPoint.getName()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } if(ywPatrolPointMapper.selectCount(new QueryWrapper().lambda().eq(YwPatrolPoint::getIsdeleted,Constants.ZERO) .eq(YwPatrolPoint::getCode,ywPatrolPoint.getCode()).ne(YwPatrolPoint::getId,ywPatrolPoint.getId()))>Constants.ZERO){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"巡检点编码重复!"); } LoginUserInfo loginUserInfo = ywPatrolPoint.getLoginUserInfo(); ywPatrolPoint.setEditDate(new Date()); ywPatrolPoint.setEditor(loginUserInfo.getId()); ywPatrolPointMapper.updateById(ywPatrolPoint); multifileMapper.delete(new QueryWrapper().lambda() .eq(Multifile::getObjId,ywPatrolPoint.getId()) .eq(Multifile::getObjType,Constants.MultiFile.FN_PATROL_POINT_FILE.getKey()) ); if(Objects.nonNull(ywPatrolPoint.getMultifile())){ ywPatrolPoint.getMultifile().setCreator(loginUserInfo.getId()); ywPatrolPoint.getMultifile().setCreateDate(new Date()); ywPatrolPoint.getMultifile().setIsdeleted(Constants.ZERO); ywPatrolPoint.getMultifile().setObjType(Constants.MultiFile.FN_PATROL_POINT_FILE.getKey()); ywPatrolPoint.getMultifile().setObjId(ywPatrolPoint.getId()); multifileMapper.insert(ywPatrolPoint.getMultifile()); } } @Override public void updateByIdInBatch(List ywPatrolPoints) { if (CollectionUtils.isEmpty(ywPatrolPoints)) { return; } for (YwPatrolPoint ywPatrolPoint: ywPatrolPoints) { this.updateById(ywPatrolPoint); } } @Override public YwPatrolPoint findById(Integer id) { return ywPatrolPointMapper.selectById(id); } @Override public YwPatrolPoint getDetail(Integer id) { YwPatrolPoint ywPatrolPoint = ywPatrolPointMapper.selectById(id); Multifile multifile = multifileMapper.selectOne(new QueryWrapper().lambda().eq(Multifile::getObjId,id) .eq(Multifile::getObjType,Constants.MultiFile.FN_PATROL_POINT_FILE).last(" limit 1")); if(Objects.nonNull(multifile)){ String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +systemDictDataBiz.queryByCode(Constants.FTP,Constants.YW_PATROL).getCode(); multifile.setFileurlFull(path + multifile.getFileurl()); ywPatrolPoint.setMultifile(multifile); } return ywPatrolPoint; } @Override public YwPatrolPoint findOne(YwPatrolPoint ywPatrolPoint) { QueryWrapper wrapper = new QueryWrapper<>(ywPatrolPoint); return ywPatrolPointMapper.selectOne(wrapper); } @Override public List findList(YwPatrolPoint ywPatrolPoint) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda().eq(YwPatrolPoint::getIsdeleted,Constants.ZERO); if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywPatrolPoint.getIdLists())){ wrapper.lambda().notIn(YwPatrolPoint::getId,ywPatrolPoint.getIdLists()); } return ywPatrolPointMapper.selectList(wrapper); } @Override public PageData findPage(PageWrap pageWrap) { IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper queryWrapper = new MPJLambdaWrapper(); Utils.MP.blankToNull(pageWrap.getModel()); YwPatrolPoint model = pageWrap.getModel(); queryWrapper.selectAll(YwPatrolPoint.class) .selectAs(Category::getName,YwPatrolPoint::getAreaName) .selectAs(YwDevice::getName,YwPatrolPoint::getDeviceName) .leftJoin(Category.class,Category::getId,YwPatrolPoint::getAreaId) .leftJoin(YwDevice.class,YwDevice::getId,YwPatrolPoint::getDeviceId) .and(Objects.nonNull(model)&&StringUtils.isNotBlank(model.getName()), i->i.like(YwPatrolPoint::getName,model.getName()).or().like(YwPatrolPoint::getCode,model.getName())) .eq(Objects.nonNull(model.getAreaId()),YwPatrolPoint::getAreaId,model.getAreaId()) .eq(YwPatrolPoint::getIsdeleted,Constants.ZERO) .orderByDesc(YwPatrolPoint::getCreateDate) ; IPage iPage = ywPatrolPointMapper.selectJoinPage(page,YwPatrolPoint.class,queryWrapper); return PageData.from(iPage); } @Override public long count(YwPatrolPoint ywPatrolPoint) { QueryWrapper wrapper = new QueryWrapper<>(ywPatrolPoint); return ywPatrolPointMapper.selectCount(wrapper); } }