Browse Source

生成报告插入、报告推送接口

hanzhengyi 2 years ago
parent
commit
f454d6929e

+ 39 - 11
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/DemReportInfoController.java

@@ -3,15 +3,17 @@ package com.usky.fire.controller.web;
 
 import com.usky.common.core.bean.ApiResult;
 import com.usky.common.core.bean.CommonPage;
-import com.usky.fire.domain.BaseBuild;
+import com.usky.common.log.annotation.Log;
+import com.usky.common.log.enums.BusinessType;
 import com.usky.fire.domain.BaseCompany;
+import com.usky.fire.domain.DemReportInfo;
 import com.usky.fire.service.DemReportInfoService;
+import com.usky.fire.service.vo.CompanyAddVO;
+import com.usky.fire.service.vo.CompanyDataVo;
+import com.usky.fire.service.vo.DemReportInfoIdVo;
+import com.usky.fire.service.vo.DemReportInfoVo;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
@@ -30,18 +32,44 @@ public class DemReportInfoController {
     private DemReportInfoService demReportInfoService;
 
     /**
-     * 单位管理-单位列表查询
+     * 消防报告-历史报告列表查询
      *
      * @param companyId  单位ID
+     * @param sourceType  来源类型
      * @param pageNum      当前页
      * @param pageSize     每页条数
      * @return
      */
     @GetMapping("reportInfoList")
-    public ApiResult<CommonPage<Object>> reportInfoList(@RequestParam(value = "companyId", required = false) String companyId,
-                                                     @RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum,
-                                                     @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
-        return ApiResult.success(demReportInfoService.reportInfoList(companyId,pageNum, pageSize));
+    public ApiResult<CommonPage<DemReportInfo>> reportInfoList(@RequestParam(value = "companyId", required = false) String companyId,
+                                                               @RequestParam(value = "sourceType", required = false) String sourceType,
+                                                               @RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum,
+                                                               @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
+        return ApiResult.success(demReportInfoService.reportInfoList(companyId,sourceType,pageNum, pageSize));
+    }
+
+    /**
+     * 生成报告单位信息-列表查询
+     *
+     * @param demReportInfoVo
+     * @return
+     */
+    @PostMapping("reportInfoAdd")
+    public ApiResult<List<DemReportInfoVo>> reportInfoAdd(@RequestBody DemReportInfoVo demReportInfoVo) {
+        return ApiResult.success(demReportInfoService.reportInfoAdd(demReportInfoVo));
+    }
+
+    /**
+     * 消防报告-推送
+     *
+     * @param demReportInfoIdVo
+     * @return
+     */
+    @Log(title = "消防报告-推送", businessType = BusinessType.UPDATE)
+    @PutMapping("propelsReport")
+    public ApiResult<Void> propelsReport(@RequestBody DemReportInfoIdVo demReportInfoIdVo) {
+        demReportInfoService.propelsReport(demReportInfoIdVo);
+        return ApiResult.success();
     }
 }
 

+ 23 - 2
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/DemReportInfoService.java

@@ -3,6 +3,10 @@ package com.usky.fire.service;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.fire.domain.DemReportInfo;
 import com.usky.common.mybatis.core.CrudService;
+import com.usky.fire.service.vo.DemReportInfoIdVo;
+import com.usky.fire.service.vo.DemReportInfoVo;
+
+import java.util.List;
 
 /**
  * <p>
@@ -14,12 +18,29 @@ import com.usky.common.mybatis.core.CrudService;
  */
 public interface DemReportInfoService extends CrudService<DemReportInfo> {
     /**
-     * 单位管理-单位列表查询
+     * 消防报告-历史报告列表查询
      *
      * @param companyId  单位名称
+     * @param sourceType  来源类型
      * @param pageNum      当前页
      * @param pageSize     每页条数
      * @return
      */
-    CommonPage<Object> reportInfoList(String companyId, Integer pageNum, Integer pageSize);
+    CommonPage<DemReportInfo> reportInfoList(String companyId, String sourceType,Integer pageNum, Integer pageSize);
+
+    /**
+     * 生成报告单位信息-列表查询
+     *
+     * @param demReportInfoVo
+     * @return
+     */
+    List<DemReportInfoVo> reportInfoAdd(DemReportInfoVo demReportInfoVo);
+
+    /**
+     * 消防报告-推送
+     *
+     * @param demReportInfoIdVo
+     * @return
+     */
+    void propelsReport(DemReportInfoIdVo demReportInfoIdVo);
 }

+ 55 - 9
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemReportInfoServiceImpl.java

@@ -7,15 +7,17 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.usky.common.core.bean.CommonPage;
-import com.usky.fire.domain.BaseCompany;
-import com.usky.fire.domain.BaseCompanyAttach1;
-import com.usky.fire.domain.BaseCompanyPerson;
 import com.usky.fire.domain.DemReportInfo;
 import com.usky.fire.mapper.DemReportInfoMapper;
 import com.usky.fire.service.DemReportInfoService;
 import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.fire.service.vo.CompanyDataVo;
+import com.usky.fire.service.vo.DemReportInfoIdVo;
+import com.usky.fire.service.vo.DemReportInfoVo;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -32,14 +34,58 @@ import java.util.Map;
 @Service
 public class DemReportInfoServiceImpl extends AbstractCrudService<DemReportInfoMapper, DemReportInfo> implements DemReportInfoService {
     @Override
-    public CommonPage<Object> reportInfoList(String companyId,Integer pageNum, Integer pageSize) {
-        List<Object> list = new ArrayList<>();
+    public CommonPage<DemReportInfo> reportInfoList(String companyId,String sourceType,Integer pageNum, Integer pageSize) {
         IPage<DemReportInfo> page = new Page<>(pageNum, pageSize);
         LambdaQueryWrapper<DemReportInfo> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.eq(StringUtils.isNotBlank(companyId), DemReportInfo::getCompanyId, companyId)
-                .orderByDesc(DemReportInfo::getId);
+        if ("2".equals(sourceType)){
+            queryWrapper.eq(StringUtils.isNotBlank(companyId), DemReportInfo::getCompanyId, companyId)
+                    .eq(DemReportInfo::getReportStatus, 1)
+                    .orderByDesc(DemReportInfo::getId);
+        }else {
+            queryWrapper.eq(StringUtils.isNotBlank(companyId), DemReportInfo::getCompanyId, companyId)
+                    .orderByDesc(DemReportInfo::getId);
+        }
         page = this.page(page, queryWrapper);
-        list.add(page.getRecords());
-        return new CommonPage<>(list, page.getTotal(), pageSize, pageNum);
+        return ToCommonPage(page);
+    }
+
+    @Override
+    public List<DemReportInfoVo> reportInfoAdd(DemReportInfoVo demReportInfoVo) {
+        List<DemReportInfoVo> list = new ArrayList<>();
+        List<CompanyDataVo> companyList = demReportInfoVo.getCompanyList();
+        if (CollectionUtils.isNotEmpty(companyList)) {
+            for (int i = 0; i < companyList.size(); i++) {
+                DemReportInfo demReportInfo = new DemReportInfo();
+                demReportInfo.setCompanyId(companyList.get(i).getCompanyId());
+                demReportInfo.setReportName(demReportInfoVo.getReportName());
+                demReportInfo.setCreateTime(LocalDateTime.now());
+                demReportInfo.setStartTime(demReportInfoVo.getStartTime());
+                demReportInfo.setEndTime(demReportInfoVo.getEndTime());
+                demReportInfo.setReportStatus(0);
+                this.save(demReportInfo);
+                int ID = demReportInfo.getId();
+                DemReportInfoVo demReportInfoVo1 = new DemReportInfoVo();
+                demReportInfoVo1.setId(ID);
+                demReportInfoVo1.setCompanyName(companyList.get(i).getCompanyName());
+                demReportInfoVo1.setCompanyId(companyList.get(i).getCompanyId());
+                list.add(demReportInfoVo1);
+            }
+        }
+        return list;
+    }
+
+    @Transactional
+    @Override
+    public void propelsReport(DemReportInfoIdVo demReportInfoIdVo) {
+        List<Integer> reportInfoIdList = demReportInfoIdVo.getReportIdList();
+        if (CollectionUtils.isNotEmpty(reportInfoIdList)) {
+            for (int i = 0; i < reportInfoIdList.size(); i++) {
+                DemReportInfo demReportInfo = new DemReportInfo();
+                demReportInfo.setId(reportInfoIdList.get(i));
+                demReportInfo.setReportStatus(1);
+                demReportInfo.setSendTime(LocalDateTime.now());
+                this.updateById(demReportInfo);
+            }
+        }
     }
 }

+ 31 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/vo/DemReportInfoIdVo.java

@@ -0,0 +1,31 @@
+package com.usky.fire.service.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.usky.fire.domain.BaseBuild;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author han
+ * @since 2023-03-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class DemReportInfoIdVo implements Serializable {
+    /**
+     * 报告Id集合
+     */
+    private List<Integer> reportIdList;
+
+}

+ 63 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/vo/DemReportInfoVo.java

@@ -0,0 +1,63 @@
+package com.usky.fire.service.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.usky.fire.domain.BaseBuild;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author han
+ * @since 2023-03-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class DemReportInfoVo implements Serializable {
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 报告标题
+     */
+    private String reportName;
+
+    /**
+     * 开始时间
+     */
+    private LocalDateTime startTime;
+
+    /**
+     * 结束时间
+     */
+    private LocalDateTime endTime;
+
+    /**
+     * 单位ID
+     */
+    private String companyId;
+
+    /**
+     * 单位名称
+     */
+    private String companyName;
+
+    /**
+     * 单位清单集合
+     */
+    private List<CompanyDataVo> companyList;
+
+}