123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261 |
- package com.ruoyi.gas.service.impl;
- import cn.hutool.core.bean.BeanUtil;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
- import com.ruoyi.common.core.page.PagePlus;
- import com.ruoyi.common.core.page.TableDataInfo;
- import com.ruoyi.common.utils.PageUtils;
- import com.ruoyi.common.utils.StringUtils;
- import com.ruoyi.gas.domain.*;
- import com.ruoyi.gas.domain.bo.*;
- import com.ruoyi.gas.domain.vo.GRoadSectionInspectionVo;
- import com.ruoyi.gas.mapper.GRoadSectionInspectionMapper;
- import com.ruoyi.gas.service.IGRoadSectionInspectionPhotoService;
- import com.ruoyi.gas.service.IGRoadSectionInspectionService;
- import com.ruoyi.gas.service.IGRoadsectionProcessService;
- import com.ruoyi.gas.service.IGUserService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import org.springframework.util.ObjectUtils;
- import java.util.*;
- import java.util.stream.Collectors;
- /**
- * 路段巡查Service业务层处理
- *
- * @author ruoyi
- * @date 2024-03-06
- */
- @Service
- public class GRoadSectionInspectionServiceImpl extends ServicePlusImpl<GRoadSectionInspectionMapper, GRoadSectionInspection, GRoadSectionInspectionVo> implements IGRoadSectionInspectionService {
- @Override
- public GRoadSectionInspectionVo queryById(Long id) {
- GRoadSectionInspectionVo voById = getVoById(id);
- voById.setPhotoList(baseMapper.getPhoto(voById.getId()));
- return voById;
- }
- @Autowired
- private IGUserService gUserService;
- @Override
- public TableDataInfo<GRoadSectionInspectionVo> queryPageList(GRoadSectionInspectionBo bo) {
- String ranks = bo.getRanks();
- if (StringUtils.isNotEmpty(ranks)) {
- bo.setUids(gUserService.getByRanks(ranks));
- }
- PagePlus<GRoadSectionInspection, GRoadSectionInspectionVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
- TableDataInfo<GRoadSectionInspectionVo> tableDataInfo = PageUtils.buildDataInfo(result);
- tableDataInfo.getRows().forEach(item -> {
- item.setPhotoList(baseMapper.getPhoto(item.getId()));
- // item.setCreateByName(baseMapper.getName(item.getCreateBy()));
- if (!ObjectUtils.isEmpty(bo.getPostNameArias())) {
- //按照顺序审核
- //未审核过队长先展示
- List<GRoadsectionProcess> listed = roadsectionProcessService.list(new QueryWrapper<GRoadsectionProcess>().eq("emr_id", item.getId()).eq("process_status","0"));
- if (ObjectUtils.isEmpty(listed)){
- String regex = "^xx.*";
- if (bo.getPostNameArias().matches(regex)){
- item.setFlag(true);
- }
- }
- else {
- String regex = "^xx.*";
- if (bo.getPostNameArias().matches(regex)){
- if ("0".equals(item.getProcessStatus())){ item.setFlag(false); }
- if ("1".equals(item.getProcessStatus())){ item.setFlag(false); }
- if ("2".equals(item.getProcessStatus())){ item.setFlag(false); }
- if ("-1".equals(item.getProcessStatus())){ item.setFlag(true); }
- }else {
- if ("0".equals(item.getProcessStatus())){ item.setFlag(true); }
- if ("1".equals(item.getProcessStatus())){ item.setFlag(false); }
- if ("2".equals(item.getProcessStatus())){ item.setFlag(false); }
- if ("-1".equals(item.getProcessStatus())){
- if (listed.get(0).getProcessStatus().equals("0")){ item.setFlag(true); }
- if (listed.get(0).getProcessStatus().equals("1")){ item.setFlag(false); }
- }
- }
- }
- }
- });
- return tableDataInfo;
- }
- @Override
- public List<GRoadSectionInspectionVo> queryList(GRoadSectionInspectionBo bo) {
- return listVo(buildQueryWrapper(bo));
- }
- private LambdaQueryWrapper<GRoadSectionInspection> buildQueryWrapper(GRoadSectionInspectionBo bo) {
- Map<String, Object> params = bo.getParams();
- LambdaQueryWrapper<GRoadSectionInspection> lqw = Wrappers.lambdaQuery();
- lqw.orderByDesc(GRoadSectionInspection::getCreateTime);
- lqw.like(StringUtils.isNotBlank(bo.getSectionName()), GRoadSectionInspection::getSectionName, bo.getSectionName());
- lqw.eq(StringUtils.isNotBlank(bo.getSamplingMeterCount()), GRoadSectionInspection::getSamplingMeterCount, bo.getSamplingMeterCount());
- lqw.eq(StringUtils.isNotBlank(bo.getFindProblem()), GRoadSectionInspection::getFindProblem, bo.getFindProblem());
- lqw.eq(bo.getFindTime() != null, GRoadSectionInspection::getFindTime, bo.getFindTime());
- lqw.in(StringUtils.isNotEmpty(bo.getRanks()), GRoadSectionInspection::getCreateBy, !ObjectUtils.isEmpty(bo.getUids()) && bo.getUids().size() > 0 ? bo.getUids() : Arrays.asList(0L));
- lqw.eq(StringUtils.isNotBlank(bo.getCreateBy()), GRoadSectionInspection::getCreateBy, bo.getCreateBy());
- if (!"-1".equals(bo.getProcessStatus())) {
- lqw.eq(StringUtils.isNotBlank(bo.getProcessStatus()), GRoadSectionInspection::getProcessStatus, bo.getProcessStatus());
- }else{
- lqw.or().in(StringUtils.isNotBlank(bo.getProcessStatus()), GRoadSectionInspection::getProcessStatus, "-1","");
- lqw.or().isNull(GRoadSectionInspection::getProcessStatus);
- }
- if (!ObjectUtils.isEmpty(bo.getCreateTimes())){
- lqw.ge(GRoadSectionInspection::getCreateTime, bo.getCreateTimes().get(0));
- lqw.le(GRoadSectionInspection::getCreateTime, bo.getCreateTimes().get(1));
- }
- lqw.orderByDesc(GRoadSectionInspection::getCreateTime);
- return lqw;
- }
- @Autowired
- private IGRoadSectionInspectionPhotoService service;
- @Override
- public Boolean insertByBo(GRoadSectionInspectionBo bo) {
- GRoadSectionInspection add = BeanUtil.toBean(bo, GRoadSectionInspection.class);
- validEntityBeforeSave(add);
- boolean flag = save(add);
- if (flag) {
- bo.setId(add.getId());
- //添加照片
- List<String> piclist = bo.getPhotoList();
- if (piclist != null) {
- for (int i = 0; i < bo.getPhotoList().size(); i++) {
- GRoadSectionInspectionPhotoBo photo = new GRoadSectionInspectionPhotoBo();
- photo.setParentId(bo.getId());
- photo.setPicUrl(bo.getPhotoList().get(i));
- service.insertByBo(photo);
- }
- }
- }
- return flag;
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean updateByBo(GRoadSectionInspectionBo bo) {
- GRoadSectionInspection update = BeanUtil.toBean(bo, GRoadSectionInspection.class);
- validEntityBeforeSave(update);
- List<String> piclist = bo.getPhotoList();
- if (piclist != null) {
- //原有的照片
- List<String> photolist = baseMapper.getPhoto(bo.getId());
- //原有的照片不在新传的照片里
- List<String> dellist = photolist.stream().filter(i -> !piclist.contains(i)).collect(Collectors.toList());
- //删除照片
- if (dellist.size() > 0) {
- service.deleteByUrl(bo.getId(), dellist);
- }
- //新传的照片不在原有的照片里
- List<String> inslist = piclist.stream().filter(i -> !photolist.contains(i)).collect(Collectors.toList());
- if (inslist.size() > 0) {
- for (int i = 0; i < inslist.size(); i++) {
- if (StringUtils.isNotEmpty(inslist.get(i))) {
- //添加照片
- GRoadSectionInspectionPhotoBo photo = new GRoadSectionInspectionPhotoBo();
- photo.setParentId(bo.getId());
- photo.setPicUrl(inslist.get(i));
- service.insertByBo(photo);
- }
- }
- }
- }
- update.setProcessStatus("-1");
- return updateById(update);
- }
- /**
- * 保存前的数据校验
- *
- * @param entity 实体类数据
- */
- private void validEntityBeforeSave(GRoadSectionInspection entity) {
- //TODO 做一些数据校验,如唯一约束
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
- if(isValid){
- //TODO 做一些业务上的校验,判断是否需要校验
- }
- roadsectionProcessService.remove(new QueryWrapper<GRoadsectionProcess>().in("emr_id", ids));
- return removeByIds(ids);
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean batchReview(BatchReviewBo bo) {
- List<GRoadSectionInspection> list = new ArrayList<>();
- Collection<GRoadsectionProcess> processList = new ArrayList<>();
- if (!ObjectUtils.isEmpty(bo.getUids())) {
- bo.getUids().forEach(item -> {
- GRoadSectionInspection roadSectionInspection = new GRoadSectionInspection();
- roadSectionInspection.setId(item);
- GRoadsectionProcess processBo = new GRoadsectionProcess();
- processBo.setEmrId(item);
- processBo.setProcessStatus(bo.getProcessStatus());
- processBo.setProcessComments(bo.getProcessComments());
- processBo.setUserPost(bo.getPostNameArias());
- processList.add(processBo);
- list.add(roadSectionInspection);
- });
- }
- boolean b = roadsectionProcessService.saveBatch(processList);
- //更新主表状态
- updateNetworkManage(list);
- return b;
- }
- // @Async
- public void updateNetworkManage(Collection<GRoadSectionInspection> boxList) {
- boxList.stream().forEach(obj->{
- //最新一条
- QueryWrapper<GRoadsectionProcess> queryWrapper = new QueryWrapper<GRoadsectionProcess>().eq("emr_id", obj.getId()).orderByDesc("create_time");
- List<GRoadsectionProcess> listed = roadsectionProcessService.list(queryWrapper);
- if(!ObjectUtils.isEmpty(listed)) {
- //队长审核不通过
- GRoadsectionProcess gTeamProcess = listed.get(0);
- String regex = "^xx.*";
- if (gTeamProcess.getUserPost().matches(regex)) {
- if (gTeamProcess.getProcessStatus().equals("1")){
- obj.setProcessStatus("2");
- updateById(obj);
- }else if (gTeamProcess.getProcessStatus().equals("0")){
- //队长通过 处事没审核
- obj.setProcessStatus("0");
- updateById(obj);
- }
- }else {
- //处事审核通过 即主表状态通过
- if (gTeamProcess.getProcessStatus().equals("0")){
- obj.setProcessStatus("1");
- updateById(obj);
- }
- //处事审核不通过
- else if (gTeamProcess.getProcessStatus().equals("1")){
- obj.setProcessStatus("2");
- updateById(obj);
- }
- }
- }
- });
- }
- @Autowired
- private IGRoadsectionProcessService roadsectionProcessService;
- }
|