From 70dfa087a9f61ecc33f3b5bc618202c2023e38f3 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 19 八月 2024 15:45:26 +0800
Subject: [PATCH] 优云接口工单生成

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java |  166 +++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 119 insertions(+), 47 deletions(-)

diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java
index a18f98b..8ae4329 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java
@@ -1,34 +1,39 @@
 package com.ycl.platform.service.impl;
 
-import com.ycl.platform.domain.entity.Region;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ycl.platform.domain.entity.Report;
 import com.ycl.platform.domain.entity.YwPeople;
+import com.ycl.platform.domain.entity.YwPoint;
 import com.ycl.platform.domain.entity.YwUnit;
-import com.ycl.platform.mapper.RegionMapper;
+import com.ycl.platform.domain.form.ReportAuditingForm;
+import com.ycl.platform.domain.form.ReportForm;
+import com.ycl.platform.domain.query.ReportQuery;
+import com.ycl.platform.domain.vo.ReportVO;
 import com.ycl.platform.mapper.ReportMapper;
 import com.ycl.platform.mapper.YwPeopleMapper;
+import com.ycl.platform.mapper.YwPointMapper;
 import com.ycl.platform.mapper.YwUnitMapper;
 import com.ycl.platform.service.ReportService;
 import com.ycl.system.Result;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ycl.platform.domain.form.ReportForm;
-import com.ycl.platform.domain.vo.ReportVO;
-import com.ycl.platform.domain.query.ReportQuery;
-import java.util.List;
-import org.apache.commons.lang3.StringUtils;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ycl.system.page.PageUtil;
-import org.springframework.stereotype.Service;
-import org.springframework.security.core.context.SecurityContextHolder;
+import com.ycl.utils.SecurityUtils;
+import com.ycl.utils.uuid.IdUtils;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
-import org.springframework.transaction.annotation.Transactional;
+import org.springframework.context.annotation.Bean;
+import org.springframework.stereotype.Service;
 import org.springframework.util.Assert;
+import org.springframework.util.CollectionUtils;
+
 import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
-import lombok.RequiredArgsConstructor;
 
 /**
  * 鎶ュ 鏈嶅姟瀹炵幇绫�
@@ -40,10 +45,9 @@
 @RequiredArgsConstructor
 public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> implements ReportService {
 
-    private final ReportMapper reportMapper;
     private final YwUnitMapper unitMapper;
+    private final YwPointMapper ywpointMapper;
     private final YwPeopleMapper peopleMapper;
-    private final RegionMapper regionMapper;
 
     /**
      * 娣诲姞
@@ -52,9 +56,16 @@
      */
     @Override
     public Result add(ReportForm form) {
-        form.setPeopleId(1);
-        form.setUnitId(2);
+        Long userId = SecurityUtils.getUserId();
+        YwPeople people = new LambdaQueryChainWrapper<>(peopleMapper).eq(YwPeople::getUserId, userId).one();
+        form.setPeopleId(people.getId());
+        form.setUnitId(people.getBelongUnit());
         Report entity = ReportForm.getEntityByForm(form, null);
+        entity.setStatus(0);
+        entity.setIdentify(IdUtils.timeAddRandomNO(3));
+        Date now = new Date();
+        entity.setCreateTime(now);
+        entity.setUpdateTime(now);
         if(baseMapper.insert(entity) > 0) {
             return Result.ok("娣诲姞鎴愬姛");
         }
@@ -70,14 +81,26 @@
     public Result update(ReportForm form) {
 
         Report entity = baseMapper.selectById(form.getId());
-
         // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
         Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
-        BeanUtils.copyProperties(form, entity);
-        if (baseMapper.updateById(entity) > 0) {
-            return Result.ok("淇敼鎴愬姛");
+        Date now = new Date();
+        entity.setUpdateTime(now);
+        if (0 == entity.getStatus()) {
+            // 寰呭鏍哥殑鐩存帴鏀�
+            BeanUtils.copyProperties(form, entity);
+            baseMapper.updateById(entity);
+        } else if (2 == entity.getStatus()) {
+            // 濡傛灉鏄湭瀹℃牳閫氳繃锛岃繘琛屼慨鏀癸紝閭d箞鐩存帴鏂板锛堜负浜嗕繚瀛樺鏍歌褰曪級
+            Report report = new Report();
+            BeanUtils.copyProperties(entity, report);
+            BeanUtils.copyProperties(form, report);
+            report.setId(null);
+            report.setStatus(0);
+            report.setAuditingTime(null);
+            report.setAuditOpinion(null);
+            baseMapper.insert(report);
         }
-        return Result.error("淇敼澶辫触");
+        return Result.ok("淇敼鎴愬姛");
     }
 
     /**
@@ -113,29 +136,9 @@
      */
     @Override
     public Result page(ReportQuery query) {
-
-        IPage<Report> page = new LambdaQueryChainWrapper<>(baseMapper)
-                .eq(StringUtils.isNotBlank(query.getReportType()), Report::getReportType, query.getReportType())
-                .le(Objects.nonNull(query.getBeginCreateTime()), Report::getBeginCreateTime, query.getBeginCreateTime())
-                .ge(Objects.nonNull(query.getEndCreateTime()), Report::getEndCreateTime, query.getEndCreateTime())
-                .orderByDesc(Report::getCreateTime)
-                .page(PageUtil.getPage(query, Report.class));
-
-        List<ReportVO> vos = page.getRecords().stream()
-                .map(
-                        entity -> {
-                            ReportVO vo = ReportVO.getVoByEntity(entity, null);
-                            YwUnit unit = unitMapper.selectById(vo.getUnitId());
-                            vo.setUnitName(unit.getUnitName());
-                            YwPeople ywPeople = peopleMapper.selectById(vo.getPeopleId());
-                            vo.setPeopleName(ywPeople.getYwPersonName());
-                            Region region = regionMapper.selectById(vo.getPointId());
-                            vo.setPointName(region.getFullName());
-                            return vo;
-                        }
-                )
-                .collect(Collectors.toList());
-        return Result.ok().data(vos).total(page.getTotal());
+        IPage<ReportVO> page = PageUtil.getPage(query, ReportVO.class);
+        baseMapper.page(page, query);
+        return Result.ok().data(page).total(page.getTotal());
     }
 
     /**
@@ -166,4 +169,73 @@
                 .collect(Collectors.toList());
         return Result.ok().data(vos);
     }
+
+    public List<ReportVO> export(ReportQuery query) {
+
+        if (StringUtils.isNotBlank(query.getPointId())) {
+            LambdaQueryWrapper<YwPoint> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.like(YwPoint::getPointName, query.getPointId());
+            query.setPointIdList(ywpointMapper.selectList(queryWrapper).stream().map(YwPoint::getId).collect(Collectors.toList()));
+            if(CollectionUtils.isEmpty(query.getPointIdList())) {
+                return new ArrayList<>();
+            }
+        }
+        if (StringUtils.isNotBlank(query.getPeopleId())) {
+            LambdaQueryWrapper<YwPeople> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.like(YwPeople::getYwPersonName, query.getPeopleId());
+            query.setPeopleIdList(peopleMapper.selectList(queryWrapper).stream().map(YwPeople::getId).collect(Collectors.toList()));
+            if(CollectionUtils.isEmpty(query.getPeopleIdList())) {
+                return new ArrayList<>();
+            }
+        }
+
+        IPage<Report> page = new LambdaQueryChainWrapper<>(baseMapper)
+                .eq(StringUtils.isNotBlank(query.getReportType()), Report::getReportType, query.getReportType())
+//                .le(Objects.nonNull(query.getBeginCreateTime()), Report::getBeginCreateTime, query.getBeginCreateTime())
+//                .ge(Objects.nonNull(query.getEndCreateTime()), Report::getEndCreateTime, query.getEndCreateTime())
+                .in(!CollectionUtils.isEmpty(query.getPointIdList()), Report::getPointId, query.getPointIdList())
+                .in(!CollectionUtils.isEmpty(query.getPeopleIdList()), Report::getPeopleId, query.getPeopleIdList())
+                .orderByDesc(Report::getCreateTime)
+                .page(PageUtil.getPage(query, Report.class));
+
+        List<ReportVO> vos = page.getRecords().stream()
+                .map(
+                        entity -> {
+                            ReportVO vo = ReportVO.getVoByEntity(entity, null);
+                            YwUnit unit = unitMapper.selectById(vo.getUnitId());
+                            vo.setUnitName(unit.getUnitName());
+                            YwPeople ywPeople = peopleMapper.selectById(vo.getPeopleId());
+                            vo.setPeopleName(ywPeople.getYwPersonName());
+                            YwPoint ywPoint = ywpointMapper.selectById(vo.getPointId());
+                            vo.setPointName(ywPoint.getPointName());
+                            return vo;
+                        }
+                )
+                .collect(Collectors.toList());
+        return vos;
+    }
+
+
+    @Override
+    public Result auditingRecord(Integer id) {
+        List<ReportVO> reportList = baseMapper.examineRecord(id);
+        return Result.ok().data(reportList);
+    }
+
+    @Override
+    public Result auditing(ReportAuditingForm form) {
+        Report report = baseMapper.selectById(form.getId());
+        if (Objects.isNull(report)) {
+            throw new RuntimeException("瀹℃牳鐨勬姤澶囦笉瀛樺湪");
+        }
+        if (form.getAuditingResult()) {
+            report.setStatus(1);
+        } else {
+            report.setStatus(2);
+        }
+        report.setAuditOpinion(form.getAuditOpinion());
+        report.setAuditingTime(new Date());
+        baseMapper.updateById(report);
+        return Result.ok("鎿嶄綔鎴愬姛");
+    }
 }

--
Gitblit v1.8.0