luowei 1 год назад
Родитель
Сommit
5526bf5630

+ 11 - 2
project_data/sql/0.0.4/soc/soc.sql

@@ -14,7 +14,7 @@ update sys_dict_data set dict_label='登记中' where dict_type='edu_training_do
 -- 履职状态描述变更
 update sys_dict_data set dict_label='履职中' where dict_type='resumption_status' and dict_label='进行中' and dict_value=2 LIMIT 1;
 
-delete from sys_menu where id in (1731503585113534466,1729308502301728769,1731496383090913282,1731498925506031618,1731499700525330433,1731501484262158338,1731502833360039937);
+delete from sys_menu where id in (1731872300761878529,1731503585113534466,1729308502301728769,1731496383090913282,1731498925506031618,1731499700525330433,1731501484262158338,1731502833360039937);
 INSERT INTO sys_menu (id, menu_name, parent_id, order_num, path, component, query, is_frame, is_cache, menu_type, visible, status, perms, platform_type, icon, image_path, create_by, create_time, update_by, update_time, remark)
 VALUES (1729308502301728769, '导出全省农信系统物防建设达标情况', 103, 5, '', null, null, 1, 0, 'F', '0', '0', 'system:dept:exportConstruction', '1', null, null, null, now(), '', null, '');
 INSERT INTO `sys_menu`(`id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `platform_type`, `icon`, `image_path`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
@@ -29,9 +29,18 @@ INSERT INTO `sys_menu`(`id`, `menu_name`, `parent_id`, `order_num`, `path`, `com
 VALUES (1731502833360039937, '导出', 1724607752400044034, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'core:resumptionReport:export', '1', NULL, NULL, '省联社账号', '2023-11-28 15:52:54', '', NULL, '');
 INSERT INTO `sys_menu`(`id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `platform_type`, `icon`, `image_path`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
 VALUES (1731503585113534466, '导出', 1726904309791121409, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'core:safetyInspectReport:export', '1', NULL, NULL, '省联社账号', '2023-11-28 15:52:54', '', NULL, '');
+INSERT INTO `sys_menu`(`id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `platform_type`, `icon`, `image_path`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
+VALUES (1731872300761878529, '导出', 1719892877586239490, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'core:evaluateTaskReport:export', '1', NULL, NULL, '省联社账号', '2023-11-28 15:52:54', '', NULL, '');
+
 
+delete from sys_role_menu where menu_id in (1731872300761878529,1731503585113534466,1731502833360039937,1729308502301728769,1731496383090913282,1731498925506031618,1731499700525330433,1731501484262158338);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (115, 1731872300761878529);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (116, 1731872300761878529);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (117, 1731872300761878529);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (118, 1731872300761878529);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (119, 1731872300761878529);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (120, 1731872300761878529);
 
-delete from sys_role_menu where menu_id in (1731503585113534466,1731502833360039937,1729308502301728769,1731496383090913282,1731498925506031618,1731499700525330433,1731501484262158338);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (115, 1731503585113534466);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (116, 1731503585113534466);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (117, 1731503585113534466);

+ 45 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/evaluate/controller/CoreEvaluateTaskController.java

@@ -3,6 +3,7 @@ package com.xunmei.core.evaluate.controller;
 
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
+import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.web.controller.BaseController;
 import com.xunmei.common.core.web.domain.AjaxResult;
@@ -18,12 +19,18 @@ import com.xunmei.core.evaluate.service.ICoreEvaluatePlanService;
 import com.xunmei.core.evaluate.service.ICoreEvaluateTaskService;
 import com.xunmei.core.evaluate.vo.CoreEvaluatePlanVO;
 import com.xunmei.core.evaluate.vo.CoreEvaluateTaskVO;
+import com.xunmei.core.reportForms.monitor.dto.MonitoringAccessDTO;
 import com.xunmei.core.retrieval.service.impl.CoreMonitoringRetrievalTaskServiceImpl;
+import com.xunmei.system.api.RemoteOrgService;
+import com.xunmei.system.api.domain.SysOrg;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.time.LocalDate;
 import java.util.Date;
 import java.util.List;
@@ -45,7 +52,8 @@ public class CoreEvaluateTaskController extends BaseController {
     private ICoreEvaluatePlanService coreEvaluatePlanService;
     @Autowired
     private CoreMonitoringRetrievalTaskServiceImpl coreMonitoringRetrievalTaskService;
-
+    @Resource
+    private RemoteOrgService remoteOrgService;
     /**
      * 查询外包评价任务列表
      */
@@ -65,6 +73,40 @@ public class CoreEvaluateTaskController extends BaseController {
     public TableDataInfo<CoreEvaluateTaskVO> appList(EvaluateTaskDTO coreEvaluateTask) {
         return coreEvaluateTaskService.selectAPPPage(coreEvaluateTask);
     }
+
+    @ApiOperation(value = "外包履职评价导出")
+    @RequiresPermissions("core:evaluateTaskReport:export")
+    @Log(title = "外包履职评价导出", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(EvaluateTaskStatisticsDTO evaluateTaskStatisticsDTO, HttpServletResponse response) throws IOException {
+        if (null != evaluateTaskStatisticsDTO.getPlanId()) {
+            CoreEvaluatePlanVO coreEvaluatePlanVO = coreEvaluatePlanService.selectCoreEvaluatePlanById(evaluateTaskStatisticsDTO.getPlanId());
+            LocalDate localDate = LocalDate.now();
+            try {
+                switch (coreEvaluatePlanVO.getEvaluateCycle()) {
+                    case "0":
+                        evaluateTaskStatisticsDTO.setStartTime(DateUtils.parseDate(localDate.getYear() + "-" + localDate.getMonthValue() + "-01 00:00:00", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm:ss.SSS"));
+                        String lastDay = coreMonitoringRetrievalTaskService.getLastDay(localDate.getYear(), localDate.getMonthValue(), "yyyy-MM-dd");
+                        evaluateTaskStatisticsDTO.setEndTime(DateUtils.parseDate(lastDay + " 23:59:59", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm:ss.SSS"));
+                        break;
+                    case "1":
+                        DateTime beginOfQuarter = DateUtil.beginOfQuarter(new java.util.Date());
+                        DateTime endOfQuarter = DateUtil.endOfQuarter(new Date());
+                        evaluateTaskStatisticsDTO.setStartTime(beginOfQuarter);
+                        evaluateTaskStatisticsDTO.setEndTime(endOfQuarter);
+                        break;
+                    default:
+                        evaluateTaskStatisticsDTO.setStartTime(DateUtils.parseDate(localDate.getYear() + "-01-01 00:00:00", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm:ss.SSS"));
+                        evaluateTaskStatisticsDTO.setEndTime(DateUtils.parseDate(localDate.getYear() + "-12-31 23:59:59", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm:ss.SSS"));
+                        break;
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        coreEvaluateTaskService.export(evaluateTaskStatisticsDTO, response);
+    }
+
     @ApiOperation(value = "统计")
     @RequiresPermissions("core:evaluateTask:list")
     @GetMapping("/statistics")
@@ -104,6 +146,8 @@ public class CoreEvaluateTaskController extends BaseController {
             ajaxResult.put("tittle", coreEvaluatePlanVO.getEvaluateName() + "(" + dateTitle);
         }
         ajaxResult.put(AjaxResult.DATA_TAG, coreEvaluateTaskService.statistics(evaluateTaskStatisticsDTO));
+        SysOrg sysOrg = remoteOrgService.selectSysOrgById(evaluateTaskStatisticsDTO.getOrgId(), SecurityConstants.INNER);
+        ajaxResult.put("orgName", sysOrg.getShortName());
         return ajaxResult;
     }
 

+ 2 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/evaluate/service/ICoreEvaluatePlanService.java

@@ -6,9 +6,11 @@ import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.core.evaluate.domain.CoreEvaluatePlan;
 import com.xunmei.core.evaluate.dto.CoreEvaluatePlanDTO;
 import com.xunmei.core.evaluate.dto.EvaluateQueryDTO;
+import com.xunmei.core.evaluate.dto.EvaluateTaskStatisticsDTO;
 import com.xunmei.core.evaluate.vo.CoreEvaluatePlanListVO;
 import com.xunmei.core.evaluate.vo.CoreEvaluatePlanVO;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 /**

+ 4 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/evaluate/service/ICoreEvaluateTaskService.java

@@ -11,6 +11,8 @@ import com.xunmei.core.evaluate.dto.EvaluateTaskDTO;
 import com.xunmei.core.evaluate.dto.EvaluateTaskStatisticsDTO;
 import com.xunmei.core.evaluate.vo.CoreEvaluateTaskVO;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
@@ -100,4 +102,6 @@ public interface ICoreEvaluateTaskService extends IService<CoreEvaluateTask> {
      * @return
      */
     Map  statistics(EvaluateTaskStatisticsDTO evaluateTaskDTO);
+
+    void export(EvaluateTaskStatisticsDTO evaluateTaskStatisticsDTO, HttpServletResponse response)throws IOException;
 }

+ 2 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/evaluate/service/impl/CoreEvaluatePlanServiceImpl.java

@@ -14,6 +14,7 @@ import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.core.evaluate.domain.*;
 import com.xunmei.core.evaluate.dto.CoreEvaluatePlanDTO;
 import com.xunmei.core.evaluate.dto.EvaluateQueryDTO;
+import com.xunmei.core.evaluate.dto.EvaluateTaskStatisticsDTO;
 import com.xunmei.core.evaluate.mapper.CoreEvaluateContentMapper;
 import com.xunmei.core.evaluate.mapper.CoreEvaluatePlanContentMapper;
 import com.xunmei.core.evaluate.mapper.CoreEvaluatePlanMapper;
@@ -31,6 +32,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.ZoneId;

+ 57 - 2
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/evaluate/service/impl/CoreEvaluateTaskServiceImpl.java

@@ -3,6 +3,7 @@ package com.xunmei.core.evaluate.service.impl;
 
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.excel.EasyExcel;
 import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.C;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@@ -13,6 +14,7 @@ import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.panel.dto.PanelListDto;
 import com.xunmei.common.core.domain.panel.enums.PanelTypeEnums;
 import com.xunmei.common.core.domain.panel.vo.PanelListVo;
+import com.xunmei.common.core.utils.DateHelper;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.utils.StringUtils;
 import com.xunmei.common.core.web.page.TableDataInfo;
@@ -28,6 +30,7 @@ import com.xunmei.core.evaluate.mapper.*;
 import com.xunmei.core.evaluate.service.ICoreEvaluatePlanService;
 import com.xunmei.core.evaluate.service.ICoreEvaluateTaskService;
 import com.xunmei.core.evaluate.vo.*;
+import com.xunmei.core.reportForms.monitor.vo.MonitoringAccessVO;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.RemoteRoleService;
 import com.xunmei.system.api.RemoteUserService;
@@ -39,6 +42,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -120,6 +126,55 @@ public class CoreEvaluateTaskServiceImpl extends ServiceImpl<CoreEvaluateTaskMap
         return panelListVos;
     }
 
+    @Override
+    public void export(EvaluateTaskStatisticsDTO evaluateTaskStatisticsDTO, HttpServletResponse response) throws IOException {
+        String orgName = null;
+        if (null != evaluateTaskStatisticsDTO.getOrgId()) {
+            SysOrg sysOrg = remoteOrgService.selectSysOrgById(evaluateTaskStatisticsDTO.getOrgId(), SecurityConstants.INNER);
+            orgName = sysOrg.getName();
+        }
+        List<SysOrg> sysOrgs = remoteOrgService.selectSysOrgByParentId(evaluateTaskStatisticsDTO.getOrgId(), SecurityConstants.INNER);
+        List<EvaluateTaskExportVO> list = new ArrayList<>();
+        for (int i = 0; i < sysOrgs.size(); i++) {
+            EvaluateTaskExportVO evaluateTaskExportVO = new EvaluateTaskExportVO();
+            evaluateTaskExportVO.setOrderNum(i + 1);
+            evaluateTaskExportVO.setOrgName(sysOrgs.get(i).getShortName());
+            evaluateTaskStatisticsDTO.setOrgId(sysOrgs.get(i).getId());
+            LinkedHashMap linkedHashMap = baseMapper.statisticsAll(evaluateTaskStatisticsDTO);
+            if (null == linkedHashMap) {
+                evaluateTaskExportVO.setEvaluatedOrgName("");
+                evaluateTaskExportVO.setScore(0);
+            } else {
+                evaluateTaskExportVO.setEvaluatedOrgName(linkedHashMap.get("被评价机构名称").toString());
+            }
+            if (null != linkedHashMap) {
+                Object id = linkedHashMap.get("id");
+                List<Map> contentByTaskId = baseMapper.getContentByTaskId((Long) id, evaluateTaskStatisticsDTO.getStartTime(), evaluateTaskStatisticsDTO.getEndTime());
+                if (CollectionUtils.isNotEmpty(contentByTaskId)) {
+                    int total = 0;
+                    for (int l = 0; l < contentByTaskId.size(); l++) {
+                        Double score = Double.valueOf(contentByTaskId.get(l).get("score").toString());
+                        total += score;
+                    }
+                    evaluateTaskExportVO.setScore(total);
+                }
+            }
+            list.add(evaluateTaskExportVO);
+        }
+        if (ObjectUtil.isEmpty(list)) {
+            throw new RuntimeException("导出数据为空!");
+        }
+
+        if (list.size() > 10000) {
+            throw new RuntimeException("导出数据量过大(单次导出限量10000条数据),请填写条件分批导出");
+        }
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("utf-8");
+        String fileName = URLEncoder.encode("【" + orgName + "】-监控调阅报表" + DateHelper.getDateString(new Date()), "UTF-8");
+        response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+        // 调用EasyExcel的导出方法
+        EasyExcel.write(response.getOutputStream(), EvaluateTaskExportVO.class).sheet("Sheet1").doWrite(list);
+    }
 
     @Override
     public Map statistics(EvaluateTaskStatisticsDTO evaluateTaskStatisticsDTO) {
@@ -142,7 +197,7 @@ public class CoreEvaluateTaskServiceImpl extends ServiceImpl<CoreEvaluateTaskMap
             }
             Object id = linkedHashMap.get("id");
             linkedHashMap.remove("id");
-            List<Map> contentByTaskId = baseMapper.getContentByTaskId((Long) id,evaluateTaskStatisticsDTO.getStartTime(),evaluateTaskStatisticsDTO.getEndTime());
+            List<Map> contentByTaskId = baseMapper.getContentByTaskId((Long) id, evaluateTaskStatisticsDTO.getStartTime(), evaluateTaskStatisticsDTO.getEndTime());
             if (CollectionUtils.isNotEmpty(contentByTaskId)) {
                 int total = 0;
                 for (int l = 0; l < contentByTaskId.size(); l++) {
@@ -292,7 +347,7 @@ public class CoreEvaluateTaskServiceImpl extends ServiceImpl<CoreEvaluateTaskMap
         }
         List<Long> roleByEvaluateId = coreEvaluateRoleMapper.getRoleByEvaluateId(coreEvaluateTask.getPlanId());
         Set<Long> rIds = new HashSet<>();
-        if(ObjectUtil.isNotEmpty(roleByEvaluateId)){
+        if (ObjectUtil.isNotEmpty(roleByEvaluateId)) {
             rIds.addAll(roleByEvaluateId);
         }
         List<SysRole> roleByUserId = remoteRoleService.getRoleByUserId(SecurityUtils.getUserId(), SecurityConstants.INNER);

+ 20 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/evaluate/vo/EvaluateTaskExportVO.java

@@ -0,0 +1,20 @@
+package com.xunmei.core.evaluate.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+/**
+ * @author :LuoWei
+ * @date : 2023/12/5
+ */
+@Data
+public class EvaluateTaskExportVO {
+    @ExcelProperty("序号")
+    private Integer orderNum;
+    @ExcelProperty("评价机构")
+    private String orgName;
+    @ExcelProperty("被评价机构名称")
+    private String evaluatedOrgName;
+    @ExcelProperty("评价得分")
+    private Integer score;
+}