shc 10 сар өмнө
parent
commit
7beeac96b0

+ 2 - 9
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/listener/NbaQueueEventListener.java

@@ -2,11 +2,9 @@ package com.qunzhixinxi.hnqz.report.listener;
 
 import cn.hutool.json.JSONUtil;
 import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
-import com.qunzhixinxi.hnqz.admin.api.constant.enums.ReportTypeEnum;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
 import com.qunzhixinxi.hnqz.report.event.NbaQueueEvent;
 import com.qunzhixinxi.hnqz.report.service.ReportExportService;
-import com.qunzhixinxi.hnqz.report.service.ReportHandlerDeptRelationService;
 import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import lombok.AllArgsConstructor;
@@ -33,7 +31,7 @@ import java.util.concurrent.TimeUnit;
 @AllArgsConstructor
 public class NbaQueueEventListener {
 
-    private final ReportHandlerDeptRelationService reportHandlerDeptRelationService;
+    private final ReportExportService reportExportService;
     private final StringRedisTemplate redisTemplate;
 
     private static final long DEF_REPORT_TTL = 7L * 24 * 60 * 60 * 1000;
@@ -55,12 +53,7 @@ public class NbaQueueEventListener {
         String resStr = "ERROR_未知错误,请联系管理员";
 
         try {
-            // 根据企业获取对应报告处理类
-            ReportExportService reportExportService =
-                    reportHandlerDeptRelationService.getHandlerClass(ReportTypeEnum.NBA.getType(), deptId);
-
-
-            R r = reportExportService.newExportNba(wmScorePackage, deptId, username);
+            R<?> r = reportExportService.newExportNba(wmScorePackage, deptId, username);
 
             if (r.getCode() == CommonConstants.SUCCESS) {
                 // url

+ 8 - 8
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/ReportExportService.java

@@ -33,13 +33,13 @@ public interface ReportExportService {
     /**
      * 企业承接任务的导出、任务中心单的导出
      *
-     * @param wmScorePackage
-     * @param deptId
-     * @param username
-     * @return
-     * @throws IOException
+     * @param wmScorePackage 积分包
+     * @param deptId         企业ID
+     * @param username       操作人
+     * @return 导出结果
+     * @throws IOException 异常
      */
-    R newExportNba(WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException;
+    R<?> newExportNba(WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException;
 
     /**
      * 企业承接任务的导出、任务中心单的导出History
@@ -50,7 +50,7 @@ public interface ReportExportService {
      * @return
      * @throws IOException
      */
-    R newExportNbaHistory(WmScorePackage wmScorePackage,Integer deptId,String username) throws IOException;
+    R newExportNbaHistory(WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException;
 
     /**
      * 结算报告管理,结算报告审批的导出
@@ -61,7 +61,7 @@ public interface ReportExportService {
      * @return
      * @throws IOException
      */
-    R newExportNb(WmReport wmReport,Integer deptId, String username) throws IOException;
+    R newExportNb(WmReport wmReport, Integer deptId, String username) throws IOException;
 
     List<Map<String, Object>> exportZbInfo(WmTask wmTask) throws IOException;
 

+ 0 - 550
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/impl/ReportExportForGuangshengtangServiceImpl.java

@@ -1,550 +0,0 @@
-package com.qunzhixinxi.hnqz.report.service.impl;
-
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.map.MapUtil;
-import cn.hutool.core.util.ArrayUtil;
-import cn.hutool.core.util.StrUtil;
-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.google.common.base.Joiner;
-import com.google.common.base.Splitter;
-import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
-import com.qunzhixinxi.hnqz.report.config.UpmsConfig;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEnt;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmReport;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskContent;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskContentConfig;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmUserSign;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmUserSignDetail;
-import com.qunzhixinxi.hnqz.admin.api.entity.XlsTask;
-import com.qunzhixinxi.hnqz.report.service.ReportExportForGuangshengtangService;
-import com.qunzhixinxi.hnqz.report.service.ReportExportService;
-import com.qunzhixinxi.hnqz.report.service.SysDeptService;
-import com.qunzhixinxi.hnqz.report.service.SysFileService;
-import com.qunzhixinxi.hnqz.report.service.SysUserService;
-import com.qunzhixinxi.hnqz.report.service.WmDaDrugEntDrugtableService;
-import com.qunzhixinxi.hnqz.report.service.WmDaDrugEntService;
-import com.qunzhixinxi.hnqz.report.service.WmScorePackageService;
-import com.qunzhixinxi.hnqz.report.service.WmScorePackageStatusService;
-import com.qunzhixinxi.hnqz.report.service.WmTaskContentConfigService;
-import com.qunzhixinxi.hnqz.report.service.WmTaskContentService;
-import com.qunzhixinxi.hnqz.report.service.WmTaskService;
-import com.qunzhixinxi.hnqz.report.service.WmTaskTypeService;
-import com.qunzhixinxi.hnqz.report.service.WmUserSignService;
-import com.qunzhixinxi.hnqz.report.util.ExportReport;
-import com.qunzhixinxi.hnqz.report.util.Html2ImageByJsWrapper;
-import com.qunzhixinxi.hnqz.common.core.util.R;
-import lombok.AllArgsConstructor;
-import org.apache.commons.io.IOUtils;
-import org.springframework.mock.web.MockMultipartFile;
-import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.lang.reflect.Field;
-import java.math.BigDecimal;
-import java.sql.Timestamp;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-
-/**
- * <p>
- * 报告管理 服务实现类
- * </p>
- *
- * @author hnqz
- * @since 2018-01-20
- */
-@Service("ReportExportForGuangshengtangServiceImpl")
-@AllArgsConstructor
-public class ReportExportForGuangshengtangServiceImpl implements ReportExportService {
-
-    private final WmTaskService wmTaskService;
-    private final WmScorePackageService wmScorePackageService;
-    private final UpmsConfig upmsConfig;
-    private final SysFileService sysFileService;
-    private final WmDaDrugEntService wmDaDrugEntService;
-    private final WmTaskTypeService wmTaskTypeService;
-    private final SysUserService sysUserService;
-    private final SysDeptService sysDeptService;
-    private final WmTaskContentService wmTaskContentService;
-    private final WmTaskContentConfigService wmTaskContentConfigService;
-    private final WmDaDrugEntDrugtableService wmDaDrugEntDrugtableService;
-    private final WmUserSignService wmUserSignService;
-    private final WmScorePackageStatusService wmScorePackageStatusService;
-    private final ReportExportService reportExportService;
-
-    /**
-     * 个人承接按积分制-单独用于广生堂
-     *
-     * @param wmTask
-     * @param username
-     * @return
-     * @throws IOException
-     */
-    @Override
-    public R newExportZb(WmTask wmTask, String username) throws IOException {
-        String packageId = wmTask.getScorePackageDrugId();
-        if (null == packageId) {
-            return R.failed("积分包ID不能为空");
-        }
-        LambdaQueryWrapper<WmTask> queryWrapper = new LambdaQueryWrapper();
-        queryWrapper.in(WmTask::getScorePackageId, Arrays.asList(packageId.split(",")));
-        queryWrapper.eq(WmTask::getTaskStatus, "3");
-        queryWrapper.eq(WmTask::getDelFlag, "0");
-        queryWrapper.eq(WmTask::getEnableFlag, "0");
-        queryWrapper.eq(WmTask::getRealFlag, "0");
-        List<WmTask> taskList = wmTaskService.list(queryWrapper);
-        if (taskList.isEmpty()) {
-            return R.failed("未查询到审核通过的任务");
-        }
-        String ids = taskList.stream().map(WmTask::getId).collect(Collectors.joining(","));
-        wmTask.setScorePackageId(packageId);
-        wmTask.setId(ids);
-        return exportZbForGuangshengtang(wmTask, username);
-    }
-
-    /**
-     * 个人报告导出--众包代表业绩报告-单独用于广生堂
-     *
-     * @param wmTask
-     * @return
-     * @throws IOException
-     */
-    private R exportZbForGuangshengtang(WmTask wmTask, String username) throws IOException {
-
-        WmTask wmTaskparam = wmTask;
-        String packageId = wmTask.getScorePackageId();  // 获取积分包ID
-        if (null == packageId) {
-            packageId = wmTask.getScorePackageDrugId();
-        }
-
-        if (null == packageId) {
-            return R.failed("积分包ID不能为空");
-        }
-
-        WmScorePackage wmScorePackage1 = wmScorePackageService.getById(packageId);
-
-        Map<String, Object> excelMap = exportZbCommonForGuangshengtang(wmTask);
-        if (null == excelMap) {
-            return R.failed("未查询到审核通过的任务");
-        }
-
-        List<Map<String, Object>> infoList = exportZbInfo(wmTaskparam);
-        if (null != infoList && infoList.size() > 0) {
-            excelMap.put("infoList", infoList);
-        }
-        //区分全职兼职学术推广员模版
-        excelMap.put("userType", wmScorePackage1.getTypeid());
-//        excelMap.put("scoreId", wmScorePackage1.getScorePackageName());
-        List<String> extIds = wmTask.getExtIds();
-        List<WmScorePackage> wmScorePackages = wmScorePackageService.listByIds(extIds);
-        String scoreIds = wmScorePackages.stream().map(WmScorePackage::getScorePackageName).collect(Collectors.joining(","));
-        excelMap.put("scoreId", StrUtil.isBlank(scoreIds) ? wmScorePackage1.getScorePackageName() : scoreIds);
-
-        if (ArrayUtil.isNotEmpty(wmScorePackage1.getDrugProducerList())) {
-            List<String> drugList = wmDaDrugEntDrugtableService.listDrugByDrugEntName(wmScorePackage1.getDrugProducerList());
-            excelMap.put("drugList", String.join(",", drugList));
-        }
-
-        File f = null;
-        if (wmScorePackage1.getPackageType1().equals("1")) {//定额
-            f = ExportReport.main_bulidTemplate1_guangshengtang(excelMap, 2, upmsConfig.getBasePath());
-        } else {//定量
-            f = ExportReport.main_bulidTemplate2(excelMap, 2, upmsConfig.getBasePath());
-        }
-
-        FileInputStream input = new FileInputStream(f);
-
-        String fileNamePrefix = "";
-        if (StrUtil.equals(wmScorePackage1.getTypeid(), "3")) {
-            fileNamePrefix = "全职学术信息沟通专员业绩报告";
-        } else if (StrUtil.equals(wmScorePackage1.getTypeid(), "5")) {
-            fileNamePrefix = "招商经理业绩报告";
-        } else if (StrUtil.equals(wmScorePackage1.getTypeid(), "4")) {
-            fileNamePrefix = "兼职学术信息沟通专员业绩报告";
-        }
-
-        MultipartFile multipartFile = new MockMultipartFile(fileNamePrefix + "(" + packageId + ")", "兼职学术推广员业绩报告(" + packageId + ").doc", "text/plain", IOUtils
-                .toByteArray(input));
-        return sysFileService.uploadFileAllUrlRealName(multipartFile, username);
-
-    }
-
-    /**
-     * 合并导出--汇总,表格数据封装
-     *
-     * @param wmTask
-     * @return
-     */
-    private Map<String, Object> exportZbCommonForGuangshengtang(WmTask wmTask) {
-        String packageId = wmTask.getScorePackageId();  // 获取积分包ID
-        if (null == packageId) {
-            packageId = wmTask.getScorePackageDrugId();
-        }
-
-        Map<String, Object> excelMap = new HashMap<>();
-        WmScorePackage wmScorePackage1 = wmScorePackageService.getById(packageId);
-        WmDaDrugEnt wmDaDrugEnt = wmDaDrugEntService.getById(wmScorePackage1.getDrugEntId());
-        if (wmDaDrugEnt == null) {
-            wmDaDrugEnt = new WmDaDrugEnt();
-            wmDaDrugEnt.setEntname("无");
-        }
-
-        List<String> strs = new ArrayList<>();
-        if (packageId.contains(",")) {
-            strs.addAll(Arrays.asList(packageId.split(",")));
-        } else {
-            strs.add(packageId);
-        }
-        wmTask.setExtIds(strs);
-
-
-        List<Map<String, Object>> wmTaskList = wmTaskService.getTaskListByIdsOld(wmTask);
-        if (wmScorePackage1.getPackageType2().equals("2")) {
-            wmTaskList = wmTaskService.getTaskListByIdsJs(wmTask);
-        }
-        if (wmTaskList.size() > 0) {
-            List<XlsTask> xlsTaskList = new ArrayList<>();
-            Map<String, Object> userMap = new HashMap<>();
-            for (Map<String, Object> wmt : wmTaskList) {
-                XlsTask xlsTask = new XlsTask();
-                xlsTask.setTaskNum(Integer.valueOf(wmt.get("score_count") + ""));
-                xlsTask.setTaskType(wmt.get("base_id") + "");
-                xlsTask.setUsername(wmt.get("realname") + "");
-                xlsTask.setScore(Integer.parseInt((wmt.get("score") == null ? "0" : wmt.get("score")) + ""));
-                xlsTask.setDrugEntName(wmDaDrugEnt.getEntname());
-                xlsTask.setDeptName(wmt.get("dept_name") + "");
-                xlsTask.setCreateTime(wmt.get("create_time") + "");
-                xlsTaskList.add(xlsTask);
-
-                String buildKey = wmt.get("realname") + "_" + wmDaDrugEnt.getEntname() + "_" + wmt.get("dept_name") + "";
-                if (userMap.containsKey(buildKey)) {
-                    try {
-                        userMap.put(buildKey, Integer.parseInt(wmt.get("score") == null ? "0" : wmt.get("score") + "") + Integer
-                                .parseInt(userMap.get(buildKey) == null ? "0" : userMap.get(buildKey) + ""));
-                        userMap.put(buildKey + "_total", Integer.parseInt(wmt.get("score_count") + "") + Integer.parseInt(userMap
-                                .get(buildKey + "_total") + ""));
-
-                    } catch (Exception ex) {
-                    }
-                } else {
-                    userMap.put(buildKey, wmt.get("score"));
-                    userMap.put(buildKey + "_total", Integer.parseInt(wmt.get("score_count") + ""));
-                }
-            }
-
-
-            List<WmTask> wmTaskDetialList = wmTaskService.getTaskListByIdsReturnWmtaskInfo(wmTask);
-            List<Map<String, Object>> wmTaskDetialMap = new ArrayList<>();
-
-            List<String> listPackageIds = new ArrayList<>();
-
-            if (wmTaskDetialList.size() > 0) {
-                for (WmTask wmTask1 :
-                        wmTaskDetialList) {
-                    Map<String, Object> map = new HashMap<>();
-                    WmTaskType wmTaskTypeTemp1 = wmTaskTypeService.getById(wmTask1.getTaskTypeId());
-                    map.put("taskType", wmTaskTypeTemp1.getTaskTypeName());
-                    DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-                    String strDate2 = dtf2.format(wmTask1.getCreateTime());
-                    map.put("taskTime", strDate2);
-                    if (wmScorePackage1.getPackageType2().equals("2")) {
-                        map.put("taskUser", sysUserService.getByIdIgnore(wmTask1.getTaskUserId()).getRealname());
-                    } else {
-                        map.put("taskUser", sysUserService.getByIdIgnore(wmTask1.getTaskUserId()).getRealname());
-                    }
-
-                    map.put("taskTypeId", wmTask1.getTaskTypeId());
-                    map.put("score", wmTask1.getScore());
-                    map.put("taskNum", 1);
-                    wmTaskDetialMap.add(map);
-
-                    if (listPackageIds.size() == 0) {
-                        listPackageIds.add(wmTask1.getScorePackageId());
-                    } else {
-                        boolean isInscore = true;
-                        for (String str : listPackageIds) {
-                            if (str.equals(wmTask1.getScorePackageId())) {
-                                isInscore = false;
-                            }
-                        }
-
-                        if (isInscore) {
-                            listPackageIds.add(wmTask1.getScorePackageId());
-                        }
-                    }
-                }
-            }
-
-            if (listPackageIds.size() > 0) {
-                List<WmScorePackage> wmScorePackageList = wmScorePackageService.listByIds(listPackageIds);
-                Integer totalScorePackage = 0;
-                BigDecimal settleAmount = new BigDecimal("0");
-                if (wmScorePackageList.size() > 0) {
-                    for (WmScorePackage wmScorePackage : wmScorePackageList) {
-                        totalScorePackage += wmScorePackage.getScore();
-                        if (wmScorePackage.getSettleStatus() != null && wmScorePackage.getSettleStatus() == 1) {
-                            settleAmount = settleAmount.add(wmScorePackage.getSettleAmount());
-                        }
-                    }
-                }
-                excelMap.put("settleAmount", "0".equals(settleAmount.toString()) ? " " : settleAmount);
-                excelMap.put("totalscorePackageScore", totalScorePackage);
-                if (wmScorePackage1.getPackageType1().equals("2") || wmScorePackage1.getPackageType1().equals("3")) {
-                    if (!wmScorePackage1.getPackageType2().equals("2")) {
-                        excelMap.put("totalscorePackageTaskNum", wmScorePackage1.getTaskNum() * wmScorePackage1.getUserNum());//积分包值任务个数
-                    }
-                }
-
-                List<WmTask> tasks = wmTaskService.list(Wrappers.<WmTask>lambdaQuery()
-                        .in(WmTask::getScorePackageId, listPackageIds));
-
-                if (CollUtil.isNotEmpty(tasks)) {
-                    int sum = tasks.stream()
-                            .filter(t -> "3".equals( t.getTaskStatus()) && WmTask.TaskSettleStatusEnum.SETTLED.getCode().equals(t.getTaskSettleStatus()))
-                            .mapToInt(WmTask::getScore).sum();
-                    excelMap.put("submitAmount", sum);
-                }
-            }
-
-            excelMap.put("rwmxTable", wmTaskDetialMap);
-            excelMap.put("mxTable", xlsTaskList);
-            excelMap.put("ryTable", userMap);
-
-            if (CollUtil.isNotEmpty(wmTaskDetialList)) {
-                // 封装临床拜访汇总表数据
-                List<Map<String, Object>> visitList = new ArrayList<>();
-                // 查询医院拜访任务类型
-                List<String> visitTaskContIdList = wmTaskDetialList.stream()
-                        .filter(task -> "5".equals(task.getTaskTypeId()))
-                        .map(WmTask::getTaskContentId)
-                        .collect(Collectors.toList());
-                if (CollUtil.isNotEmpty(visitTaskContIdList)) {
-                    // 查询任务详情
-                    List<WmTaskContent> taskContentList = wmTaskContentService.listByIds(visitTaskContIdList);
-                    if (CollUtil.isNotEmpty(taskContentList)) {
-                        List<Integer> signIdList = taskContentList.stream()
-                                .map(wmTaskContent -> Integer.valueOf(wmTaskContent.getTemp3()))
-                                .collect(Collectors.toList());
-                        // 查询打卡记录
-                        List<WmUserSign> wmUserSignList = wmUserSignService.listUserSign(signIdList);
-                        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-                        wmUserSignList.forEach(wmUserSign -> {
-                            Map<String, Object> visitMap = MapUtil.newHashMap(5);
-                            visitMap.put("taskTime", dateTimeFormatter.format(wmUserSign.getSignDate()));
-                            visitMap.put("entName", wmUserSign.getSignEntName());
-                            WmUserSignDetail userSignDetail = wmUserSign.getUserSignDetail();
-                            if (userSignDetail != null) {
-                                visitMap.put("purpose", String.join(",", userSignDetail.getPurposeName()));
-                                visitMap.put("result", userSignDetail.getResultName());
-                                visitMap.put("remark", userSignDetail.getRemark());
-                            }
-                            visitList.add(visitMap);
-                        });
-                        // 推广周期
-                        String startTaskTime = dateTimeFormatter.format(wmUserSignList.get(0).getSignDate());
-                        String endTaskTime = dateTimeFormatter.format(wmUserSignList.get(wmUserSignList.size()-1).getSignDate());
-                        excelMap.put("visitCycle", String.format("%s至%s", startTaskTime, endTaskTime));
-                    }
-                }
-                excelMap.put("visitTable", visitList);
-                excelMap.put("visitTotalCount", visitTaskContIdList.size());
-
-                // 封装学术会议登记表数据
-                List<Map<String, Object>> meetingList = new ArrayList<>();
-                // 查询会议举办的任务类型1,2,3,4
-                List<String> meetingTaskContIdList = wmTaskDetialList.stream()
-                        .filter(task -> StrUtil.equalsAny(task.getTaskTypeId(), "1", "2", "3", "4"))
-                        .map(WmTask::getTaskContentId)
-                        .collect(Collectors.toList());
-                if (CollUtil.isNotEmpty(meetingTaskContIdList)) {
-                    // 查询任务详情
-                    List<WmTaskContent> taskContentList = wmTaskContentService.listByIds(meetingTaskContIdList);
-                    if (CollUtil.isNotEmpty(taskContentList)) {
-                        taskContentList.forEach(wmTaskContent -> {
-                            WmTaskType taskType = wmTaskTypeService.getById(wmTaskContent.getTemp3());
-                            Map<String, Object> meetingMap = MapUtil.newHashMap(6);
-                            meetingMap.put("taskTime", wmTaskContent.getTemp4().substring(0, 10));
-                            meetingMap.put("taskDrugList", wmTaskContent.getTemp12());
-                            meetingMap.put("meetingTitle", wmTaskContent.getTemp2());
-                            meetingMap.put("meetingType", taskType.getTaskTypeName());
-                            meetingMap.put("meetingSign", wmTaskContent.getTemp31());
-                            meetingMap.put("meetingSummary", wmTaskContent.getTemp9());
-                            meetingList.add(meetingMap);
-                        });
-                    }
-                }
-                excelMap.put("meetingTable", meetingList);
-            }
-        }
-
-
-        Map<String, Timestamp> maxMaxTime = wmTaskService.getMaxCreateTime(wmTask);
-        System.out.println(maxMaxTime);
-        LocalDateTime MaxTime = maxMaxTime.get("MaxTime").toLocalDateTime();
-        excelMap.put("year", MaxTime.getYear() + "");
-        Integer month = MaxTime.getMonthValue();
-        if (month < 10) {
-            excelMap.put("month", "0" + MaxTime.getMonthValue() + "");
-        } else {
-            excelMap.put("month", MaxTime.getMonthValue() + "");
-        }
-        Integer day = MaxTime.getDayOfMonth();
-        if (day < 10) {
-            excelMap.put("day", "0" + MaxTime.getDayOfMonth() + "");
-        } else {
-            excelMap.put("day", MaxTime.getDayOfMonth() + "");
-        }
-
-        List<Map<String, Object>> wmTaskCount = wmTaskService.getTaskListByIdsCount(wmTask);
-        if (wmTaskCount.size() > 0) {
-            Integer total = 0;
-            Integer sum = 0;
-            for (Map<String, Object> map :
-                    wmTaskCount) {
-                if (null != map.get("taskCount")) {
-                    total += Integer.parseInt(map.get("taskCount") + "");
-                }
-
-                if (null != map.get("taskSum")) {
-                    sum += Integer.parseInt(map.get("taskSum") + "");
-                }
-
-            }
-            Map<String, Object> totalMap = new HashMap<>();
-            totalMap.put("taskTypeName", "合计");
-            totalMap.put("taskCount", total);
-            totalMap.put("taskSum", sum);
-            wmTaskCount.add(totalMap);
-
-            excelMap.put("totalSubmitScore", sum);
-            excelMap.put("totalSubmitTaskNum", total);
-            excelMap.put("ztTable", wmTaskCount);
-        }
-
-
-        SysDept paramDept = new SysDept();
-        paramDept.setDeptId(Integer.valueOf(wmScorePackage1.getSendPackageDeptId()));
-        SysDept wmDaAgent = sysDeptService.selectDeptById(paramDept);
-        excelMap.put("wt_ent", wmDaAgent.getName());
-
-        excelMap.put("drugEnt", "");
-
-
-        List<Map<String, Object>> wmTaskZd = wmTaskService.getTaskListByIdsZd(wmTask);
-        if (wmScorePackage1.getPackageType2().equals("2")) {
-            wmTaskZd = wmTaskService.getTaskListByIdsZdJs(wmTask);
-        }
-        String minDateStr = null;
-        String maxDateStr = null;
-        if (null != wmTaskZd) {
-            if (wmTaskZd.size() > 0) {
-                Map<String, Object> stringMap = wmTaskZd.get(0);
-                if (null == stringMap) {
-                    return null;
-                }
-                // 服务周期取 积分包领取审核通过时间~管理员审核积分包时最后审核通过的时间
-                Map<String, String> serviceTimeRangeMap = wmScorePackageStatusService.getServiceTimeRange(wmScorePackage1);
-                excelMap.put("service_date", serviceTimeRangeMap.get("service_start_date") + "至" + serviceTimeRangeMap.get("service_end_date"));
-//                excelMap.put("service_date", stringMap.get("mindate") + "至" + stringMap.get("maxdate"));
-                try {
-                    minDateStr = serviceTimeRangeMap.get("service_start_date").substring(5, 7);
-                    maxDateStr = serviceTimeRangeMap.get("service_end_date").substring(5, 7);
-
-                } catch (Exception ex) {
-                    ex.printStackTrace();
-                }
-                excelMap.put("tMoney", stringMap.get("sumscore") + "");
-                excelMap.put("report_users", stringMap.get("realname") + "");
-
-
-                String ruleDate = wmScorePackage1.getBelongDate();
-
-                excelMap.put("rule_year", ruleDate.substring(0, 4));
-
-                String monthStr = ruleDate.substring(5, 7);
-                if (null != minDateStr && null != maxDateStr) {
-                    if (minDateStr.equals(maxDateStr)) {
-                        monthStr = minDateStr;
-                    } else {
-                        // 跨年情况判断
-                        if (!ruleDate.substring(0, 4).equals(serviceTimeRangeMap.get("service_end_date").substring(0, 4))) {
-                            monthStr = String.format("%s月至%s年%s",
-                                    minDateStr, serviceTimeRangeMap.get("service_end_date").substring(0, 4), maxDateStr);
-                        } else {
-                            // 跨年情况判断
-                            if (!ruleDate.substring(0, 4).equals(serviceTimeRangeMap.get("service_end_date").substring(0, 4))) {
-                                monthStr = String.format("%s月至%s年%s",
-                                        minDateStr, serviceTimeRangeMap.get("service_end_date").substring(0, 4), maxDateStr);
-                            } else {
-                                monthStr = minDateStr + "月至" + maxDateStr;
-                            }
-                        }
-                    }
-                } else if (null != minDateStr) {
-                    monthStr = minDateStr;
-                } else if (null != maxDateStr) {
-                    monthStr = maxDateStr;
-                }
-
-                excelMap.put("rule_month", monthStr);
-
-
-            }
-        }
-        return excelMap;
-    }
-
-    /**
-     * 个人报告导出--报告详情
-     *
-     * @param wmTask
-     * @return
-     * @throws IOException
-     */
-    public List<Map<String, Object>> exportZbInfo(WmTask wmTask) throws IOException {
-        return reportExportService.exportZbInfo(wmTask);
-    }
-
-    public String getFieldValueByFieldName(String fieldName, Object object) {
-        try {
-            Field field = object.getClass().getDeclaredField(fieldName);
-            //对private的属性的访问
-            field.setAccessible(true);
-            return field.get(object) + "";
-        } catch (Exception e) {
-            e.printStackTrace();
-            return null;
-        }
-    }
-
-    @Override
-    public R newExportNba(WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException {
-        return null;
-    }
-
-    @Override
-    public R newExportNbaHistory(WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException {
-        return null;
-    }
-
-    @Override
-    public R newExportNb(WmReport wmReport, Integer deptId, String username) throws IOException {
-        return null;
-    }
-}

+ 0 - 1258
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/impl/ReportExportForJinpaiServiceImpl.java

@@ -1,1258 +0,0 @@
-package com.qunzhixinxi.hnqz.report.service.impl;
-
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.util.StrUtil;
-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.qunzhixinxi.hnqz.admin.api.entity.SysDept;
-import com.qunzhixinxi.hnqz.report.config.UpmsConfig;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEnt;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmReport;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackageSettleNote;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskContent;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskContentConfig;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
-import com.qunzhixinxi.hnqz.admin.api.entity.XlsTask;
-import com.qunzhixinxi.hnqz.admin.api.constant.enums.ReportEnum;
-import com.qunzhixinxi.hnqz.report.mapper.WmScorePackageSettleNoteMapper;
-import com.qunzhixinxi.hnqz.report.mapper.WmTaskMapper;
-import com.qunzhixinxi.hnqz.report.service.ReportExportService;
-import com.qunzhixinxi.hnqz.report.service.SysDeptService;
-import com.qunzhixinxi.hnqz.report.service.SysFileService;
-import com.qunzhixinxi.hnqz.report.service.SysUserService;
-import com.qunzhixinxi.hnqz.report.service.WmDaDrugEntService;
-import com.qunzhixinxi.hnqz.report.service.WmReportService;
-import com.qunzhixinxi.hnqz.report.service.WmScorePackageService;
-import com.qunzhixinxi.hnqz.report.service.WmScorePackageStatusService;
-import com.qunzhixinxi.hnqz.report.service.WmTaskContentConfigService;
-import com.qunzhixinxi.hnqz.report.service.WmTaskContentService;
-import com.qunzhixinxi.hnqz.report.service.WmTaskService;
-import com.qunzhixinxi.hnqz.report.service.WmTaskTypeService;
-import com.qunzhixinxi.hnqz.report.util.ExportReport;
-import com.qunzhixinxi.hnqz.report.util.Html2ImageByJsWrapper;
-import com.qunzhixinxi.hnqz.common.core.util.R;
-import lombok.AllArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.io.IOUtils;
-import org.springframework.context.annotation.Primary;
-import org.springframework.mock.web.MockMultipartFile;
-import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.lang.reflect.Field;
-import java.math.BigDecimal;
-import java.sql.Timestamp;
-import java.text.SimpleDateFormat;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-
-/**
- * <p>
- * 报告管理 服务实现类
- * </p>
- *
- * @author hnqz
- * @since 2018-01-20
- */
-@Slf4j
-@Service("ReportExportForJinpaiServiceImpl")
-@AllArgsConstructor
-public class ReportExportForJinpaiServiceImpl implements ReportExportService {
-
-    private final WmTaskService wmTaskService;
-    private final WmScorePackageService wmScorePackageService;
-    private final UpmsConfig upmsConfig;
-    private final SysFileService sysFileService;
-    private final WmDaDrugEntService wmDaDrugEntService;
-    private final WmTaskTypeService wmTaskTypeService;
-    private final SysUserService sysUserService;
-    private final SysDeptService sysDeptService;
-    private final WmTaskContentService wmTaskContentService;
-    private final WmTaskContentConfigService wmTaskContentConfigService;
-    private final WmTaskMapper wmTaskMapper;
-    private final WmReportService wmReportService;
-    private final WmScorePackageStatusService wmScorePackageStatusService;
-    private final WmScorePackageSettleNoteMapper wmScorePackageSettleNoteMapper;
-    private final ReportExportService reportExportService;
-
-    /**
-     * 结算报告--导出汇总报告--学术推广服务报告
-     *
-     * @param wmReport
-     * @return
-     * @throws IOException
-     */
-    @Override
-    public R newExportNb(WmReport wmReport, Integer deptId, String username) throws IOException {
-
-
-        wmReport = wmReportService.getById(wmReport.getId());
-        List<WmTask> taskList = new ArrayList<>();//该报告关联的所有未提交的任务
-        //更新任务表审批意见
-        WmScorePackage scorePackage = wmScorePackageService.getById(wmReport.getScoreId());
-        WmTask wmTask = new WmTask();
-        wmTask.setDelFlag("0");
-        wmTask.setEnableFlag("0");
-        wmTask.setRealFlag("0");
-
-        SysDept sysDept = sysDeptService.getById(scorePackage.getSendPackageDeptId());
-
-
-        if ("0".equals(scorePackage.getTypeid())) {//药企
-            wmTask.setReportDrugId(wmReport.getId());
-            wmTask.setReportDrugApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());//审核通过的状态
-            taskList = wmTaskService.list(Wrappers.query(wmTask));
-        } else if ("1".equals(scorePackage.getTypeid())) {//一级代理商类型
-            wmTask.setReportOneId(wmReport.getId());
-            if (sysDept.getLevel() == 2) {
-                wmTask.setReportDrugApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());//审核通过的状态
-            } else {
-                wmTask.setReportOneApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());//审核通过的状态
-            }
-
-            taskList = wmTaskService.list(Wrappers.query(wmTask));
-        } else if ("2".equals(scorePackage.getTypeid())) {//二级代理商类型
-            wmTask.setReportSecondId(wmReport.getId());
-            wmTask.setReportSecondApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());//审核通过的状态
-            taskList = wmTaskService.list(Wrappers.query(wmTask));
-        }
-        if (null == taskList || taskList.size() <= 0) {
-            return R.failed("ERROR_未查询到该报告关联的审批通过的任务");
-        }
-        String ids = taskList.stream().map(WmTask::getId).collect(Collectors.joining(","));
-        wmTask.setScorePackageId(wmReport.getScoreId().toString());
-        wmTask.setId(ids);
-
-        return exportNb(wmTask, wmReport, deptId, username);//报告汇总
-    }
-
-
-    /**
-     * 结算报告--导出汇总报告--学术推广服务报告
-     *
-     * @param wmTask
-     * @param wmReport
-     * @return
-     * @throws IOException
-     */
-    private R exportNb(WmTask wmTask, WmReport wmReport, Integer deptId, String username) throws IOException {
-
-        WmTask wmTaskparam = wmTask;
-        String packageId = wmTask.getScorePackageId();  // 获取积分包ID
-        if (null == packageId) {
-            return R.failed("积分包ID不能为空");
-        }
-
-        List<String> list = new ArrayList<>();
-        list.add(packageId);
-
-        wmTask.setExtIds(list);
-
-        Map<String, Object> excelMap = new HashMap<>();
-
-        WmScorePackage wmScorePackage = wmScorePackageService.getById(packageId);
-        if (null == wmScorePackage) {
-            return R.failed("获取积分包失败");
-        }
-
-        excelMap.put("totalscorePackageScore", wmScorePackage.getScore());
-        if (wmScorePackage.getPackageType1().equals("2") || wmScorePackage.getPackageType1().equals("3")) {
-            excelMap.put("totalscorePackageTaskNum", wmScorePackage.getTaskNum() * wmScorePackage.getUserNum());//积分包值任务个数
-        }
-
-        List<WmScorePackageSettleNote> settleNoteList = wmScorePackageSettleNoteMapper.selectList(Wrappers.<WmScorePackageSettleNote>lambdaQuery()
-                .eq(WmScorePackageSettleNote::getPackageId, packageId));
-        if (CollUtil.isNotEmpty(settleNoteList)) {
-            BigDecimal totalActualAmount = settleNoteList.stream()
-                    .map(WmScorePackageSettleNote::getActualAmount)
-                    .reduce(BigDecimal.ZERO, BigDecimal::add);
-            // 个体经营者生产经营所得(税后),即实际支付金额
-            excelMap.put("actualAmount", totalActualAmount);
-        }
-
-        List<Map<String, Object>> wmTaskList = wmTaskService.getTaskListByIds(wmTask);
-
-
-        List<XlsTask> xlsTaskList = new ArrayList<>();//mxTable
-        Integer totalMoney = 0;
-//		wmTask.setScorePackageId(null);
-//		wmTask.setScorePackageDrugId(null);
-
-        //当前登陆人的机构
-        SysDept sysDept = sysDeptService.getById(deptId);
-
-        Map<String, Object> userMap = new HashMap<>();
-
-        //委托公司(结算企业)
-        SysDept drugEnt = sysDeptService.getById(wmReport.getDrugEntId());
-        //WmDaDrugEnt wmDaDrugEnt = wmDaDrugEntService.getById(SecurityUtils.getUser().getDrugEntId());
-
-        //报告公司(申请结算企业)
-        SysDept applydrugEnt = sysDeptService.getById(wmReport.getApplyDrugEntId());
-        //WmDaAgent wmDaAgent = wmDaAgentService.getById(wmScorePackage.getLevel1Id());
-
-        for (Map<String, Object> wmT : wmTaskList) {
-            totalMoney += Integer.parseInt(wmT.get("score") + "");
-            XlsTask xlsTask = new XlsTask();
-            xlsTask.setTaskNum(1);
-            xlsTask.setCreateTime(wmT.get("create_time") + "");
-
-            xlsTask.setDeptName(sysDept.getName());
-
-            //level=2是药企
-            if (sysDept.getLevel() == 2) {
-                xlsTask.setAgentDeptName(applydrugEnt.getName());
-            }
-
-            xlsTask.setDrugEntName(drugEnt.getName());
-
-
-            xlsTask.setScore(Integer.parseInt(wmT.get("score") + ""));
-
-            xlsTask.setUsername(wmT.get("realname") + "");
-            xlsTask.setTaskType(wmT.get("base_id") + "");
-
-            xlsTaskList.add(xlsTask);
-
-            String buildKey = wmT.get("realname") + "_" + drugEnt.getName() + "_" + sysDept.getName();
-            //人员表格
-            if (userMap.containsKey(buildKey)) {
-                try {
-                    userMap.put(buildKey, Integer.parseInt(wmT.get("score") + "") + Integer.parseInt(userMap.get(buildKey) + ""));
-                    userMap.put(buildKey + "_total", Integer.parseInt(wmT.get("score_count") + "") + Integer.parseInt(userMap
-                            .get(buildKey + "_total") + ""));
-
-                } catch (Exception ex) {
-                }
-            } else {
-                userMap.put(buildKey, Integer.parseInt(wmT.get("score") + ""));
-                userMap.put(buildKey + "_total", Integer.parseInt(wmT.get("score_count") + ""));
-            }
-        }
-
-//		List<String> list1 = new ArrayList<>();
-//		list1.add(packageId);
-
-        //学术推广服务任务明细表格
-        List<WmTask> wmTaskDetialList = wmTaskService.getTaskListByIdsReturnWmtaskInfo(wmTask);
-        List<Map<String, Object>> wmTaskDetialMap = new ArrayList<>();
-
-        if (wmTaskDetialList.size() > 0) {
-
-
-             for (WmTask wmTask1 : wmTaskDetialList) {
-                 Map<String, Object> map = new HashMap<>();
-                 WmTaskType wmTaskTypeTemp1 = wmTaskTypeService.getById(wmTask1.getTaskTypeId());
-                 map.put("taskType", wmTaskTypeTemp1.getTaskTypeName());
-                 DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-                 String strDate2 = dtf2.format(wmTask1.getCreateTime());
-                 map.put("taskTime", strDate2);
- //				map.put("taskUser", sysUserService.getById(wmTask1.getTaskUserId()).getRealname());
-                 map.put("taskUser", sysUserService.getByIdIgnore(wmTask1.getTaskUserId()).getRealname());
-                 map.put("taskTypeId", wmTask1.getTaskTypeId());
-                 map.put("score", wmTask1.getScore());
-                 map.put("taskNum", 1);
-
-                 wmTaskDetialMap.add(map);
-             }
-
-        }
-
-        excelMap.put("rwmxTable", wmTaskDetialMap);//学术推广服务任务明细表格
-
-        if (totalMoney > wmScorePackage.getScore()) {
-            totalMoney = wmScorePackage.getScore();
-        }
-
-        excelMap.put("ryTable", userMap);//人员表格
-        excelMap.put("tMoney", totalMoney);
-
-        if (xlsTaskList.size() > 0) {
-            excelMap.put("wt_ent", xlsTaskList.get(0).getDrugEntName());//委托公司
-            excelMap.put("drugEnt", xlsTaskList.get(0).getDrugEntName());//服务药企
-            excelMap.put("mxTable", xlsTaskList);
-        }
-
-        List<Map<String, String>> ztTableList = new ArrayList<>();
-        Map<String, String> ztMap = new HashMap<>();
-        List<Map<String, Object>> wmTaskCount = wmTaskService.getTaskListByIdsCount(wmTask);
-        if (wmTaskCount.size() > 0) {
-            Integer total = 0;
-            Integer sum = 0;
-            for (Map<String, Object> map :
-                    wmTaskCount) {
-                if (null != map.get("taskCount")) {
-                    total += Integer.parseInt(map.get("taskCount") + "");
-                }
-
-                if (null != map.get("taskSum")) {
-                    sum += Integer.parseInt(map.get("taskSum") + "");
-                }
-
-            }
-            Map<String, Object> totalMap = new HashMap<>();
-            totalMap.put("taskTypeName", "合计");
-            totalMap.put("taskCount", total);
-            totalMap.put("taskSum", sum);
-            wmTaskCount.add(totalMap);
-
-            excelMap.put("totalSubmitScore", sum);
-            excelMap.put("totalSubmitTaskNum", total);
-
-            excelMap.put("ztTable", wmTaskCount);//学术推广服务整体概况表格
-        }
-
-        // 任务小类及对应的任务个数和积分值
-        List<WmTask> taskList = wmTaskMapper.selectBatchIds(Arrays.asList(wmTask.getId().split(",")));
-
-        // 查询taskType
-        List<WmTaskType> taskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
-                .eq(WmTaskType::getTaskTypeLevel, "1")
-                .eq(WmTaskType::getDelFlag, "0")
-//                .eq(WmTaskType::getEnableFlag, "0")
-        );
-        // taskType通过id分组(key为parentId,value为taskTypeId的set)
-        Map<String, String> taskTypeIdMap = taskTypeList.stream()
-                .collect(Collectors.toMap(WmTaskType::getId, WmTaskType::getTaskTypeName));
-
-        // task通过taskTypeId分组
-        Map<String, List<WmTask>> taskTypeMap = taskList.stream()
-                .collect(Collectors.groupingBy(WmTask::getTaskTypeId, Collectors.toList()));
-
-        // 封装brief table1数据(统计每个小类任务的积分、任务数)
-        List<Map<String, Object>> briefTable1List = new ArrayList<>();
-        taskTypeMap.forEach((taskTypeId, wmTasks) -> {
-            Map<String, Object> briefTable1Params = new HashMap<>();
-            briefTable1Params.put("taskTypeName", taskTypeIdMap.get(taskTypeId));
-            briefTable1Params.put("taskCount", wmTasks.size());
-            briefTable1Params.put("taskSum", wmTasks.stream().map(WmTask::getScore).reduce(0, Integer::sum));
-            briefTable1List.add(briefTable1Params);
-        });
-        Map<String, Object> briefTable1TotalParams = new HashMap<>();
-        briefTable1TotalParams.put("taskTypeName", "合计");
-        briefTable1TotalParams.put("taskCount", taskList.size());
-        briefTable1TotalParams.put("taskSum", taskList.stream().map(WmTask::getScore).reduce(0, Integer::sum));
-        briefTable1List.add(briefTable1TotalParams);
-        excelMap.put("briefTable", briefTable1List);
-
-        //WmTaskRule wmTaskRule = wmTaskRuleService.getById(wmScorePackage.getTaskRuleId());
-        String entDate = wmScorePackage.getBelongDate() + "-31";
-        try {
-            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-            format.parse(entDate);
-        } catch (Exception ex) {
-            entDate = wmScorePackage.getBelongDate() + "-30";
-        }
-        //excelMap.put("service_date", wmTaskRule.getRuleMonth() + "-01 至 " + entDate);
-
-        List<Map<String, Object>> wmTaskZd = wmTaskService.getTaskListByIdsZd(wmTask);
-        String minDateStr = null;
-        String maxDateStr = null;
-        // 服务周期取 积分包领取审核通过时间~管理员审核积分包时最后审核通过的时间
-        Map<String, String> serviceTimeRangeMap = wmScorePackageStatusService.getServiceTimeRange(wmScorePackage);
-        if (null != wmTaskZd) {
-            if (wmTaskZd.size() > 0) {
-                Map<String, Object> stringMap = wmTaskZd.get(0);
-                if (null == stringMap) {
-                    return R.failed("未找到审核通过的任务");
-                }
-                excelMap.put("service_date", serviceTimeRangeMap.get("service_start_date") + "至" + serviceTimeRangeMap.get("service_end_date"));
-//                excelMap.put("service_date", stringMap.get("mindate") + "至" + stringMap.get("maxdate"));
-
-                try {
-                    minDateStr = serviceTimeRangeMap.get("service_start_date").substring(5, 7);
-                    maxDateStr = serviceTimeRangeMap.get("service_end_date").substring(5, 7);
-
-                } catch (Exception ex) {
-                    ex.printStackTrace();
-                }
-            }
-        }
-
-        if (null != applydrugEnt) {
-            excelMap.put("report_ent", applydrugEnt.getName());
-        } else {
-            excelMap.put("report_ent", "");
-        }
-
-
-        String ruleDate = wmScorePackage.getBelongDate();
-
-        excelMap.put("rule_year", ruleDate.substring(0, 4));
-
-        String monthStr = ruleDate.substring(5, 7);
-        if (null != minDateStr && null != maxDateStr) {
-            if (minDateStr.equals(maxDateStr)) {
-                monthStr = minDateStr;
-            } else {
-                // 跨年情况判断
-                if (!ruleDate.substring(0, 4).equals(serviceTimeRangeMap.get("service_end_date").substring(0, 4))) {
-                    monthStr = String.format("%s月至%s年%s",
-                            minDateStr, serviceTimeRangeMap.get("service_end_date").substring(0, 4), maxDateStr);
-                } else {
-                    monthStr = minDateStr + "月至" + maxDateStr;
-                }
-            }
-        } else if (null != minDateStr) {
-            monthStr = minDateStr;
-        } else if (null != maxDateStr) {
-            monthStr = maxDateStr;
-        }
-
-        excelMap.put("rule_month", monthStr);
-
-        //报告日期
-        Map<String, Timestamp> maxMaxTime = wmTaskService.getMaxCreateTime(wmTask);
-        System.out.println(maxMaxTime);
-        LocalDateTime MaxTime = maxMaxTime.get("MaxTime").toLocalDateTime();
-        excelMap.put("year", MaxTime.getYear() + "");
-        Integer month = MaxTime.getMonthValue();
-        if (month < 10) {
-            excelMap.put("month", "0" + MaxTime.getMonthValue() + "");
-        } else {
-            excelMap.put("month", MaxTime.getMonthValue() + "");
-        }
-        Integer day = MaxTime.getDayOfMonth();
-        if (day < 10) {
-            excelMap.put("day", "0" + MaxTime.getDayOfMonth() + "");
-        } else {
-            excelMap.put("day", MaxTime.getDayOfMonth() + "");
-        }
-
-        excelMap.put("tMoney", totalMoney);
-        excelMap.put("scoreId", wmScorePackage.getScorePackageName());
-
-        List<Map<String, Object>> infoList = exportZbInfo(wmTaskparam);
-        if (null != infoList && infoList.size() > 0) {
-            excelMap.put("infoList", infoList);
-        } else {
-            return R.failed("未查询到审核通过的任务");
-        }
-        //区分全职兼职学术推广员模版
-        excelMap.put("userType", wmScorePackage.getTypeid());
-
-        File f = null;
-        if (wmScorePackage.getPackageType1().equals("1")) {//定额
-            f = ExportReport.main_bulidTemplate1_jinpai(excelMap, 1, upmsConfig.getBasePath());
-        } else {//定量
-            f = ExportReport.main_bulidTemplate2(excelMap, 1, upmsConfig.getBasePath());
-        }
-
-        FileInputStream input = new FileInputStream(f);
-
-        MultipartFile multipartFile = new MockMultipartFile("学术推广服务报告(" + packageId + ")", "学术推广服务报告(" + packageId + ").doc", "text/plain", IOUtils
-                .toByteArray(input));
-        return sysFileService.uploadFileAllUrlRealName(multipartFile, username);
-    }
-
-
-    @Override
-    public R newExportNba(WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException {
-
-        wmScorePackage = wmScorePackageService.getById(wmScorePackage.getId());
-
-        HashSet<String> idSet = new HashSet<>();
-        idSet.add(wmScorePackage.getId());
-        int size = idSet.size();
-        do {
-            Set<String> collect = wmScorePackageService.list(Wrappers.<WmScorePackage>lambdaQuery().in(WmScorePackage::getRelationScoreId, idSet))
-                    .stream()
-                    .map(WmScorePackage::getId)
-                    .collect(Collectors.toSet());
-            idSet.addAll(collect);
-            size += collect.size();
-        } while (size != idSet.size());
-
-        List<WmTask> taskList = wmTaskMapper.selectList(Wrappers.<WmTask>lambdaQuery().in(WmTask::getScorePackageId, idSet)
-                .eq(WmTask::getTaskStatus, 3)
-                .and(item -> item.in(WmTask::getReportDrugApprovalStatus, Arrays.asList(5,6)).eq(WmTask::getReportDrugApprovalOpinion, 1)
-                        .or(item2 -> item2.in(WmTask::getReportOneApprovalStatus, Arrays.asList(5,6)).eq(WmTask::getReportOneApprovalOpinion,1))));
-
-        //更新任务表审批意见
-        WmTask wmTask = new WmTask();
-        wmTask.setDelFlag("0");
-        wmTask.setEnableFlag("0");
-
-        if (null == taskList || taskList.size() <= 0) {
-            return R.failed("ERROR_未查询到该报告关联的审批通过的任务");
-        }
-        String ids = taskList.stream().map(WmTask::getId).collect(Collectors.joining(","));
-        wmTask.setScorePackageId(wmScorePackage.getId());
-        wmTask.setId(ids);
-
-
-        return exportNba(wmTask, wmScorePackage, deptId, username);
-    }
-
-    @Override
-    public R newExportNbaHistory(WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException {
-        wmScorePackage=wmScorePackageService.getById(wmScorePackage.getId());
-        if(wmScorePackage==null){
-            return R.failed("未查询到积分包信息");
-        }
-        LambdaQueryWrapper<WmTask> queryWrapper=new LambdaQueryWrapper();
-        queryWrapper.eq(WmTask::getScorePackageDrugId, wmScorePackage.getId());
-        queryWrapper.eq(WmTask::getTaskStatus,"3");
-        queryWrapper.eq(WmTask::getDelFlag,"0");
-        queryWrapper.eq(WmTask::getEnableFlag,"0");
-        queryWrapper.eq(WmTask::getRealFlag,"0");
-        List<WmTask> taskList=wmTaskService.list(queryWrapper);
-        //List<WmTask> taskList = wmTaskMapper.selectListByWmTask(wmScorePackage);
-        //更新任务表审批意见
-        WmTask wmTask=new WmTask();
-        wmTask.setDelFlag("0");
-        wmTask.setEnableFlag("0");
-
-        if(null==taskList||taskList.size()<=0){
-            return R.failed("ERROR_未查询到该报告关联的审批通过的任务");
-        }
-        String ids = taskList.stream().map(WmTask::getId).collect(Collectors.joining("," ));
-        wmTask.setScorePackageId(wmScorePackage.getId());
-        //wmTask.setId(ids);
-        wmTask.setId("(select id from wm_task where del_flag=0 and real_flag=0 and enable_flag=0 and task_status=3  and score_package_drug_id="+wmScorePackage.getId()+")");
-
-        return exportNba(wmTask,wmScorePackage,deptId,username);//报告汇总
-    }
-
-
-    /**
-     * 结算报告--导出汇总报告--学术推广服务报告
-     *
-     * @param wmTask
-     * @param wmScorePackage
-     * @return
-     * @throws IOException
-     */
-    private R exportNba(WmTask wmTask, WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException {
-
-        WmTask wmTaskparam = wmTask;
-        String packageId = wmTask.getScorePackageId();  // 获取积分包ID
-        if (null == packageId) {
-            return R.failed("积分包ID不能为空");
-        }
-
-        List<String> list = new ArrayList<>();
-        list.add(packageId);
-
-        wmTask.setExtIds(list);
-
-        Map<String, Object> excelMap = new HashMap<>();
-
-        wmScorePackage = wmScorePackageService.getById(packageId);
-        if (null == wmScorePackage) {
-            return R.failed("获取积分包失败");
-        }
-
-        excelMap.put("totalscorePackageScore", wmScorePackage.getScore());
-        if (wmScorePackage.getPackageType1().equals("2") || wmScorePackage.getPackageType1().equals("3")) {
-            excelMap.put("totalscorePackageTaskNum", wmScorePackage.getTaskNum() * wmScorePackage.getUserNum());//积分包值任务个数
-        }
-
-        List<WmScorePackageSettleNote> settleNoteList = wmScorePackageSettleNoteMapper.selectList(Wrappers.<WmScorePackageSettleNote>lambdaQuery()
-                .eq(WmScorePackageSettleNote::getPackageId, packageId));
-        if (CollUtil.isNotEmpty(settleNoteList)) {
-            BigDecimal totalActualAmount = settleNoteList.stream()
-                    .map(WmScorePackageSettleNote::getActualAmount)
-                    .reduce(BigDecimal.ZERO, BigDecimal::add);
-            // 个体经营者生产经营所得(税后),即实际支付金额
-            excelMap.put("actualAmount", totalActualAmount);
-        }
-
-        List<Map<String, Object>> wmTaskList = wmTaskService.getTaskListByIdsOld(wmTask);
-
-
-        List<XlsTask> xlsTaskList = new ArrayList<>();//mxTable
-        Integer totalMoney = 0;
-//		wmTask.setScorePackageId(null);
-//		wmTask.setScorePackageDrugId(null);
-
-        //当前登陆人的机构
-        SysDept sysDept = sysDeptService.getById(deptId);
-
-        Map<String, Object> userMap = new HashMap<>();
-
-        //委托公司(结算企业)
-        SysDept drugEnt = sysDeptService.getById(wmScorePackage.getSendPackageDeptId());
-        //WmDaDrugEnt wmDaDrugEnt = wmDaDrugEntService.getById(SecurityUtils.getUser().getDrugEntId());
-
-        //报告公司(申请结算企业)
-        SysDept applydrugEnt = sysDeptService.getById(wmScorePackage.getDeptId());
-        //WmDaAgent wmDaAgent = wmDaAgentService.getById(wmScorePackage.getLevel1Id());
-
-        for (Map<String, Object> wmT : wmTaskList) {
-            totalMoney += Integer.parseInt(wmT.get("score") + "");
-            XlsTask xlsTask = new XlsTask();
-            xlsTask.setTaskNum(1);
-            xlsTask.setCreateTime(wmT.get("create_time") + "");
-
-            xlsTask.setDeptName(sysDept.getName());
-
-            //level=2是药企
-            if (sysDept.getLevel() == 2) {
-                xlsTask.setAgentDeptName(applydrugEnt.getName());
-            }
-
-            xlsTask.setDrugEntName(drugEnt.getName());
-
-
-            xlsTask.setScore(Integer.parseInt(wmT.get("score") + ""));
-
-            xlsTask.setUsername(wmT.get("realname") + "");
-            xlsTask.setTaskType(wmT.get("base_id") + "");
-
-            xlsTaskList.add(xlsTask);
-
-            String buildKey = wmT.get("realname") + "_" + drugEnt.getName() + "_" + sysDept.getName();
-            //人员表格
-            if (userMap.containsKey(buildKey)) {
-                try {
-                    userMap.put(buildKey, Integer.parseInt(wmT.get("score") + "") + Integer.parseInt(userMap.get(buildKey) + ""));
-                    userMap.put(buildKey + "_total", Integer.parseInt(wmT.get("score_count") + "") + Integer.parseInt(userMap
-                            .get(buildKey + "_total") + ""));
-
-                } catch (Exception ex) {
-                }
-            } else {
-                userMap.put(buildKey, Integer.parseInt(wmT.get("score") + ""));
-                userMap.put(buildKey + "_total", Integer.parseInt(wmT.get("score_count") + ""));
-            }
-        }
-
-//		List<String> list1 = new ArrayList<>();
-//		list1.add(packageId);
-
-        //学术推广服务任务明细表格
-        List<WmTask> wmTaskDetialList = wmTaskService.getTaskListByIdsReturnWmtaskInfo(wmTask);
-        List<Map<String, Object>> wmTaskDetialMap = new ArrayList<>();
-
-        if (wmTaskDetialList.size() > 0) {
-            for (WmTask wmTask1 :
-                    wmTaskDetialList) {
-                Map<String, Object> map = new HashMap<>();
-                WmTaskType wmTaskTypeTemp1 = wmTaskTypeService.getById(wmTask1.getTaskTypeId());
-                map.put("taskType", wmTaskTypeTemp1.getTaskTypeName());
-                DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-                String strDate2 = dtf2.format(wmTask1.getCreateTime());
-                map.put("taskTime", strDate2);
-//				map.put("taskUser", sysUserService.getById(wmTask1.getTaskUserId()).getRealname());
-                map.put("taskUser", sysUserService.getByIdIgnore(wmTask1.getTaskUserId()).getRealname());
-                map.put("taskTypeId", wmTask1.getTaskTypeId());
-                map.put("score", wmTask1.getScore());
-                map.put("taskNum", 1);
-
-                wmTaskDetialMap.add(map);
-            }
-
-        }
-
-        excelMap.put("rwmxTable", wmTaskDetialMap);//学术推广服务任务明细表格
-
-        if (totalMoney > wmScorePackage.getScore()) {
-            totalMoney = wmScorePackage.getScore();
-        }
-
-        excelMap.put("ryTable", userMap);//人员表格
-        excelMap.put("tMoney", totalMoney);
-
-        if (xlsTaskList.size() > 0) {
-            excelMap.put("wt_ent", xlsTaskList.get(0).getDrugEntName());//委托公司
-            excelMap.put("drugEnt", xlsTaskList.get(0).getDrugEntName());//服务药企
-            excelMap.put("mxTable", xlsTaskList);
-        }
-
-        List<Map<String, String>> ztTableList = new ArrayList<>();
-        Map<String, String> ztMap = new HashMap<>();
-        List<Map<String, Object>> wmTaskCount = wmTaskService.getTaskListByIdsCount(wmTask);
-        if (wmTaskCount.size() > 0) {
-            Integer total = 0;
-            Integer sum = 0;
-            for (Map<String, Object> map :
-                    wmTaskCount) {
-                if (null != map.get("taskCount")) {
-                    total += Integer.parseInt(map.get("taskCount") + "");
-                }
-
-                if (null != map.get("taskSum")) {
-                    sum += Integer.parseInt(map.get("taskSum") + "");
-                }
-
-            }
-            Map<String, Object> totalMap = new HashMap<>();
-            totalMap.put("taskTypeName", "合计");
-            totalMap.put("taskCount", total);
-            totalMap.put("taskSum", sum);
-            wmTaskCount.add(totalMap);
-
-            excelMap.put("totalSubmitScore", sum);
-            excelMap.put("totalSubmitTaskNum", total);
-
-            excelMap.put("ztTable", wmTaskCount);//学术推广服务整体概况表格
-        }
-
-        // 任务小类及对应的任务个数和积分值
-        List<WmTask> taskList = wmTaskMapper.selectBatchIds(Arrays.asList(wmTask.getId().split(",")));
-
-        // 查询taskType
-        List<WmTaskType> taskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
-                .eq(WmTaskType::getTaskTypeLevel, "1")
-                .eq(WmTaskType::getDelFlag, "0")
-//                .eq(WmTaskType::getEnableFlag, "0")
-        );
-        // taskType通过id分组(key为parentId,value为taskTypeId的set)
-        Map<String, String> taskTypeIdMap = taskTypeList.stream()
-                .collect(Collectors.toMap(WmTaskType::getId, WmTaskType::getTaskTypeName));
-
-        // task通过taskTypeId分组
-        Map<String, List<WmTask>> taskTypeMap = taskList.stream()
-                .collect(Collectors.groupingBy(WmTask::getTaskTypeId, Collectors.toList()));
-
-        // 封装brief table1数据(统计每个小类任务的积分、任务数)
-        List<Map<String, Object>> briefTable1List = new ArrayList<>();
-        taskTypeMap.forEach((taskTypeId, wmTasks) -> {
-            Map<String, Object> briefTable1Params = new HashMap<>();
-            briefTable1Params.put("taskTypeName", taskTypeIdMap.get(taskTypeId));
-            briefTable1Params.put("taskCount", wmTasks.size());
-            briefTable1Params.put("taskSum", wmTasks.stream().map(WmTask::getScore).reduce(0, Integer::sum));
-            briefTable1List.add(briefTable1Params);
-        });
-        Map<String, Object> briefTable1TotalParams = new HashMap<>();
-        briefTable1TotalParams.put("taskTypeName", "合计");
-        briefTable1TotalParams.put("taskCount", taskList.size());
-        briefTable1TotalParams.put("taskSum", taskList.stream().map(WmTask::getScore).reduce(0, Integer::sum));
-        briefTable1List.add(briefTable1TotalParams);
-        excelMap.put("briefTable", briefTable1List);
-
-        //WmTaskRule wmTaskRule = wmTaskRuleService.getById(wmScorePackage.getTaskRuleId());
-        String entDate = wmScorePackage.getBelongDate() + "-31";
-        try {
-            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-            format.parse(entDate);
-        } catch (Exception ex) {
-            entDate = wmScorePackage.getBelongDate() + "-30";
-        }
-        //excelMap.put("service_date", wmTaskRule.getRuleMonth() + "-01 至 " + entDate);
-
-        List<Map<String, Object>> wmTaskZd = wmTaskService.getTaskListByIdsZd(wmTask);
-        String minDateStr = null;
-        String maxDateStr = null;
-        // 服务周期取 积分包领取审核通过时间~管理员审核积分包时最后审核通过的时间
-        Map<String, String> serviceTimeRangeMap = wmScorePackageStatusService.getServiceTimeRange(wmScorePackage);
-        if (null != wmTaskZd) {
-            if (wmTaskZd.size() > 0) {
-                Map<String, Object> stringMap = wmTaskZd.get(0);
-                if (null == stringMap) {
-                    return R.failed("未找到审核通过的任务");
-                }
-                excelMap.put("service_date", serviceTimeRangeMap.get("service_start_date") + "至" + serviceTimeRangeMap.get("service_end_date"));
-//                excelMap.put("service_date", stringMap.get("mindate") + "至" + stringMap.get("maxdate"));
-
-                try {
-                    minDateStr = serviceTimeRangeMap.get("service_start_date").substring(5, 7);
-                    maxDateStr = serviceTimeRangeMap.get("service_end_date").substring(5, 7);
-
-                } catch (Exception ex) {
-                    ex.printStackTrace();
-                }
-            }
-        }
-
-        if (null != applydrugEnt) {
-            excelMap.put("report_ent", applydrugEnt.getName());
-        } else {
-            excelMap.put("report_ent", "");
-        }
-
-
-        String ruleDate = wmScorePackage.getBelongDate();
-
-        excelMap.put("rule_year", ruleDate.substring(0, 4));
-
-        String monthStr = ruleDate.substring(5, 7);
-        if (null != minDateStr && null != maxDateStr) {
-            if (minDateStr.equals(maxDateStr)) {
-                monthStr = minDateStr;
-            } else {
-                // 跨年情况判断
-                if (!ruleDate.substring(0, 4).equals(serviceTimeRangeMap.get("service_end_date").substring(0, 4))) {
-                    monthStr = String.format("%s月至%s年%s",
-                            minDateStr, serviceTimeRangeMap.get("service_end_date").substring(0, 4), maxDateStr);
-                } else {
-                    monthStr = minDateStr + "月至" + maxDateStr;
-                }
-            }
-        } else if (null != minDateStr) {
-            monthStr = minDateStr;
-        } else if (null != maxDateStr) {
-            monthStr = maxDateStr;
-        }
-
-        excelMap.put("rule_month", monthStr);
-
-        //报告日期
-        Map<String, Timestamp> maxMaxTime = wmTaskService.getMaxCreateTime(wmTask);
-        System.out.println(maxMaxTime);
-        LocalDateTime MaxTime = maxMaxTime.get("MaxTime").toLocalDateTime();
-        excelMap.put("year", MaxTime.getYear() + "");
-        Integer month = MaxTime.getMonthValue();
-        if (month < 10) {
-            excelMap.put("month", "0" + MaxTime.getMonthValue() + "");
-        } else {
-            excelMap.put("month", MaxTime.getMonthValue() + "");
-        }
-        Integer day = MaxTime.getDayOfMonth();
-        if (day < 10) {
-            excelMap.put("day", "0" + MaxTime.getDayOfMonth() + "");
-        } else {
-            excelMap.put("day", MaxTime.getDayOfMonth() + "");
-        }
-
-        excelMap.put("tMoney", totalMoney);
-        excelMap.put("scoreId", wmScorePackage.getScorePackageName());
-
-        List<Map<String, Object>> infoList = exportZbInfo(wmTaskparam);
-        if (null != infoList && infoList.size() > 0) {
-            excelMap.put("infoList", infoList);
-        } else {
-            return R.failed("未查询到审核通过的任务");
-        }
-        //区分全职兼职学术推广员模版
-        excelMap.put("userType", wmScorePackage.getTypeid());
-
-        File f = null;
-        if (wmScorePackage.getPackageType1().equals("1")) {//定额
-            f = ExportReport.main_bulidTemplate1_jinpai(excelMap, 1, upmsConfig.getBasePath());
-        } else {//定量
-            f = ExportReport.main_bulidTemplate2(excelMap, 1, upmsConfig.getBasePath());
-        }
-
-        FileInputStream input = new FileInputStream(f);
-
-        MultipartFile multipartFile = new MockMultipartFile("学术推广服务报告(" + packageId + ")", "学术推广服务报告(" + packageId + ").doc", "text/plain", IOUtils
-                .toByteArray(input));
-        return sysFileService.uploadFileAllUrlRealName(multipartFile, username);
-    }
-
-
-    /**
-     * 个人承接按积分制
-     * @param wmTask
-     * @param username
-     * @return
-     * @throws IOException
-     */
-    @Override
-    public R newExportZb(WmTask wmTask, String username) throws IOException {
-        String packageId = wmTask.getScorePackageDrugId();
-        if (null == packageId) {
-            return R.failed("积分包ID不能为空");
-        }
-        LambdaQueryWrapper<WmTask> queryWrapper = new LambdaQueryWrapper();
-        queryWrapper.in(WmTask::getScorePackageId, Arrays.asList(packageId.split(",")));
-        queryWrapper.eq(WmTask::getTaskStatus, "3");
-        queryWrapper.eq(WmTask::getDelFlag, "0");
-        queryWrapper.eq(WmTask::getEnableFlag, "0");
-        queryWrapper.eq(WmTask::getRealFlag, "0");
-        List<WmTask> taskList = wmTaskService.list(queryWrapper);
-        if (taskList.isEmpty()) {
-            return R.failed("未查询到审核通过的任务");
-        }
-        String ids = taskList.stream().map(WmTask::getId).collect(Collectors.joining(","));
-        wmTask.setScorePackageId(packageId);
-        wmTask.setId(ids);
-        return exportZb(wmTask, username);
-    }
-
-    /**
-     * 个人报告导出--众包代表业绩报告
-     *
-     * @param wmTask
-     * @return
-     * @throws IOException
-     */
-    private R exportZb(WmTask wmTask, String username) throws IOException {
-
-        WmTask wmTaskparam = wmTask;
-        String packageId = wmTask.getScorePackageId();  // 获取积分包ID
-        if (null == packageId) {
-            packageId = wmTask.getScorePackageDrugId();
-        }
-
-        if (null == packageId) {
-            return R.failed("积分包ID不能为空");
-        }
-
-        WmScorePackage wmScorePackage1 = wmScorePackageService.getById(packageId);
-
-        Map<String, Object> excelMap = exportZbCommon(wmTask);
-        if (null == excelMap) {
-            return R.failed("未查询到审核通过的任务");
-        }
-
-        List<Map<String, Object>> infoList = exportZbInfo(wmTaskparam);
-        if (null != infoList && infoList.size() > 0) {
-            excelMap.put("infoList", infoList);
-        }
-        //区分全职兼职学术推广员模版
-        excelMap.put("userType", wmScorePackage1.getTypeid());
-//        excelMap.put("scoreId", wmScorePackage1.getScorePackageName());
-        List<String> extIds = wmTask.getExtIds();
-        List<WmScorePackage> wmScorePackages = wmScorePackageService.listByIds(extIds);
-        String scoreIds = wmScorePackages.stream().map(WmScorePackage::getScorePackageName).collect(Collectors.joining(","));
-        excelMap.put("scoreId", StrUtil.isBlank(scoreIds) ? wmScorePackage1.getScorePackageName() : scoreIds);
-
-        List<WmScorePackageSettleNote> settleNoteList = wmScorePackageSettleNoteMapper.selectList(Wrappers.<WmScorePackageSettleNote>lambdaQuery()
-                .eq(WmScorePackageSettleNote::getPackageId, packageId));
-        if (CollUtil.isNotEmpty(settleNoteList)) {
-            BigDecimal totalActualAmount = settleNoteList.stream()
-                    .map(WmScorePackageSettleNote::getActualAmount)
-                    .reduce(BigDecimal.ZERO, BigDecimal::add);
-            // 个体经营者生产经营所得(税后),即实际支付金额
-            excelMap.put("actualAmount", totalActualAmount);
-        }
-
-        File f = null;
-        if (wmScorePackage1.getPackageType1().equals("1")) {//定额
-            f = ExportReport.main_bulidTemplate1_jinpai(excelMap, 2, upmsConfig.getBasePath());
-        } else {//定量
-            f = ExportReport.main_bulidTemplate2(excelMap, 2, upmsConfig.getBasePath());
-        }
-
-        FileInputStream input = new FileInputStream(f);
-
-        String fileNamePrefix = "";
-        if (StrUtil.equals(wmScorePackage1.getTypeid(), "3")) {
-            fileNamePrefix = "全职学术信息沟通专员业绩报告";
-        } else if (StrUtil.equals(wmScorePackage1.getTypeid(), "5")) {
-            fileNamePrefix = "招商经理业绩报告";
-        } else if (StrUtil.equals(wmScorePackage1.getTypeid(), "4")) {
-            fileNamePrefix = "兼职学术信息沟通专员业绩报告";
-        }
-
-        MultipartFile multipartFile = new MockMultipartFile(fileNamePrefix + "(" + packageId + ")", "兼职学术推广员业绩报告(" + packageId + ").doc", "text/plain", IOUtils
-                .toByteArray(input));
-        return sysFileService.uploadFileAllUrlRealName(multipartFile, username);
-
-    }
-
-    /*合并导出--汇总
-     */
-    public Map<String, Object> exportZbCommon(WmTask wmTask) {
-        String packageId = wmTask.getScorePackageId();  // 获取积分包ID
-        if (null == packageId) {
-            packageId = wmTask.getScorePackageDrugId();
-        }
-
-        Map<String, Object> excelMap = new HashMap<>();
-        WmScorePackage wmScorePackage1 = wmScorePackageService.getById(packageId);
-        WmDaDrugEnt wmDaDrugEnt = wmDaDrugEntService.getById(wmScorePackage1.getDrugEntId());
-        if (wmDaDrugEnt == null) {
-            wmDaDrugEnt = new WmDaDrugEnt();
-            wmDaDrugEnt.setEntname("无");
-        }
-
-        List<String> strs = new ArrayList<>();
-        if (packageId.contains(",")) {
-            strs.addAll(Arrays.asList(packageId.split(",")));
-        } else {
-            strs.add(packageId);
-        }
-        wmTask.setExtIds(strs);
-
-
-        List<Map<String, Object>> wmTaskList = wmTaskService.getTaskListByIdsOld(wmTask);
-        if (wmScorePackage1.getPackageType2().equals("2")) {
-            wmTaskList = wmTaskService.getTaskListByIdsJs(wmTask);
-        }
-        if (wmTaskList.size() > 0) {
-            List<XlsTask> xlsTaskList = new ArrayList<>();
-            Map<String, Object> userMap = new HashMap<>();
-            for (Map<String, Object> wmt : wmTaskList) {
-                XlsTask xlsTask = new XlsTask();
-                xlsTask.setTaskNum(Integer.valueOf(wmt.get("score_count") + ""));
-                xlsTask.setTaskType(wmt.get("base_id") + "");
-                xlsTask.setUsername(wmt.get("realname") + "");
-                xlsTask.setScore(Integer.parseInt((wmt.get("score") == null ? "0" : wmt.get("score")) + ""));
-                xlsTask.setDrugEntName(wmDaDrugEnt.getEntname());
-                xlsTask.setDeptName(wmt.get("dept_name") + "");
-                xlsTask.setCreateTime(wmt.get("create_time") + "");
-                xlsTaskList.add(xlsTask);
-
-                String buildKey = wmt.get("realname") + "_" + wmDaDrugEnt.getEntname() + "_" + wmt.get("dept_name") + "";
-                if (userMap.containsKey(buildKey)) {
-                    try {
-                        userMap.put(buildKey, Integer.parseInt(wmt.get("score") == null ? "0" : wmt.get("score") + "") + Integer
-                                .parseInt(userMap.get(buildKey) == null ? "0" : userMap.get(buildKey) + ""));
-                        userMap.put(buildKey + "_total", Integer.parseInt(wmt.get("score_count") + "") + Integer.parseInt(userMap
-                                .get(buildKey + "_total") + ""));
-
-                    } catch (Exception ex) {
-                    }
-                } else {
-                    userMap.put(buildKey, wmt.get("score"));
-                    userMap.put(buildKey + "_total", Integer.parseInt(wmt.get("score_count") + ""));
-                }
-            }
-
-
-            List<WmTask> wmTaskDetialList = wmTaskService.getTaskListByIdsReturnWmtaskInfo(wmTask);
-            List<Map<String, Object>> wmTaskDetialMap = new ArrayList<>();
-
-            List<String> listPackageIds = new ArrayList<>();
-
-            if (wmTaskDetialList.size() > 0) {
-                for (WmTask wmTask1 :
-                        wmTaskDetialList) {
-                    Map<String, Object> map = new HashMap<>();
-                    WmTaskType wmTaskTypeTemp1 = wmTaskTypeService.getById(wmTask1.getTaskTypeId());
-                    map.put("taskType", wmTaskTypeTemp1.getTaskTypeName());
-                    DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-                    String strDate2 = dtf2.format(wmTask1.getCreateTime());
-                    map.put("taskTime", strDate2);
-                    if (wmScorePackage1.getPackageType2().equals("2")) {
-                        map.put("taskUser", sysUserService.getByIdIgnore(wmTask1.getTaskUserId()).getRealname());
-                    } else {
-                        map.put("taskUser", sysUserService.getByIdIgnore(wmTask1.getTaskUserId()).getRealname());
-                    }
-
-                    map.put("taskTypeId", wmTask1.getTaskTypeId());
-                    map.put("score", wmTask1.getScore());
-                    map.put("taskNum", 1);
-                    wmTaskDetialMap.add(map);
-
-                    if (listPackageIds.size() == 0) {
-                        listPackageIds.add(wmTask1.getScorePackageId());
-                    } else {
-                        boolean isInscore = true;
-                        for (String str : listPackageIds) {
-                            if (str.equals(wmTask1.getScorePackageId())) {
-                                isInscore = false;
-                            }
-                        }
-
-                        if (isInscore) {
-                            listPackageIds.add(wmTask1.getScorePackageId());
-                        }
-                    }
-                }
-            }
-
-            if (listPackageIds.size() > 0) {
-                List<WmScorePackage> wmScorePackageList = wmScorePackageService.listByIds(listPackageIds);
-                Integer totalScorePackage = 0;
-                BigDecimal settleAmount = new BigDecimal("0");
-                if (wmScorePackageList.size() > 0) {
-                    for (WmScorePackage wmScorePackage : wmScorePackageList) {
-                        totalScorePackage += wmScorePackage.getScore();
-                        if (wmScorePackage.getSettleStatus() != null && wmScorePackage.getSettleStatus() == 1) {
-                            settleAmount = settleAmount.add(wmScorePackage.getSettleAmount());
-                        }
-                    }
-                }
-                excelMap.put("settleAmount", "0".equals(settleAmount.toString()) ? " " : settleAmount);
-                excelMap.put("totalscorePackageScore", totalScorePackage);
-                if (wmScorePackage1.getPackageType1().equals("2") || wmScorePackage1.getPackageType1().equals("3")) {
-                    if (!wmScorePackage1.getPackageType2().equals("2")) {
-                        excelMap.put("totalscorePackageTaskNum", wmScorePackage1.getTaskNum() * wmScorePackage1.getUserNum());//积分包值任务个数
-                    }
-                }
-
-                List<WmTask> tasks = wmTaskService.list(Wrappers.<WmTask>lambdaQuery()
-                        .in(WmTask::getScorePackageId, listPackageIds));
-
-                if (CollUtil.isNotEmpty(tasks)) {
-                    int sum = tasks.stream()
-//                            .filter(t -> "3".equals( t.getTaskStatus()) && WmTask.TaskSettleStatusEnum.SETTLED.getCode().equals(t.getTaskSettleStatus()))
-                            .filter(t -> "3".equals( t.getTaskStatus()))
-                            .mapToInt(WmTask::getScore).sum();
-                    excelMap.put("submitAmount", sum);
-                }
-            }
-
-            excelMap.put("rwmxTable", wmTaskDetialMap);
-            excelMap.put("mxTable", xlsTaskList);
-            excelMap.put("ryTable", userMap);
-
-        }
-
-        Map<String, Timestamp> maxMaxTime = wmTaskService.getMaxCreateTime(wmTask);
-        System.out.println(maxMaxTime);
-        LocalDateTime MaxTime = maxMaxTime.get("MaxTime").toLocalDateTime();
-        excelMap.put("year", MaxTime.getYear() + "");
-        Integer month = MaxTime.getMonthValue();
-        if (month < 10) {
-            excelMap.put("month", "0" + MaxTime.getMonthValue() + "");
-        } else {
-            excelMap.put("month", MaxTime.getMonthValue() + "");
-        }
-        Integer day = MaxTime.getDayOfMonth();
-        if (day < 10) {
-            excelMap.put("day", "0" + MaxTime.getDayOfMonth() + "");
-        } else {
-            excelMap.put("day", MaxTime.getDayOfMonth() + "");
-        }
-
-        List<Map<String, Object>> wmTaskCount = wmTaskService.getTaskListByIdsCount(wmTask);
-        if (wmTaskCount.size() > 0) {
-            Integer total = 0;
-            Integer sum = 0;
-            for (Map<String, Object> map :
-                    wmTaskCount) {
-                if (null != map.get("taskCount")) {
-                    total += Integer.parseInt(map.get("taskCount") + "");
-                }
-
-                if (null != map.get("taskSum")) {
-                    sum += Integer.parseInt(map.get("taskSum") + "");
-                }
-
-            }
-            Map<String, Object> totalMap = new HashMap<>();
-            totalMap.put("taskTypeName", "合计");
-            totalMap.put("taskCount", total);
-            totalMap.put("taskSum", sum);
-            wmTaskCount.add(totalMap);
-
-            excelMap.put("totalSubmitScore", sum);
-            excelMap.put("totalSubmitTaskNum", total);
-            excelMap.put("ztTable", wmTaskCount);
-        }
-
-        // 任务小类及对应的任务个数和积分值
-        List<WmTask> taskList = wmTaskMapper.selectBatchIds(Arrays.asList(wmTask.getId().split(",")));
-
-        // 查询taskType
-        List<WmTaskType> taskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
-                .eq(WmTaskType::getTaskTypeLevel, "1")
-                .eq(WmTaskType::getDelFlag, "0")
-//                .eq(WmTaskType::getEnableFlag, "0")
-        );
-        // taskType通过id分组(key为parentId,value为taskTypeId的set)
-        Map<String, String> taskTypeIdMap = taskTypeList.stream()
-                .collect(Collectors.toMap(WmTaskType::getId, WmTaskType::getTaskTypeName));
-
-        // task通过taskTypeId分组
-        Map<String, List<WmTask>> taskTypeMap = taskList.stream()
-                .collect(Collectors.groupingBy(WmTask::getTaskTypeId, Collectors.toList()));
-
-        // 封装brief table1数据(统计每个小类任务的积分、任务数)
-        List<Map<String, Object>> briefTable1List = new ArrayList<>();
-        taskTypeMap.forEach((taskTypeId, wmTasks) -> {
-            Map<String, Object> briefTable1Params = new HashMap<>();
-            briefTable1Params.put("taskTypeName", taskTypeIdMap.get(taskTypeId));
-            briefTable1Params.put("taskCount", wmTasks.size());
-            briefTable1Params.put("taskSum", wmTasks.stream().map(WmTask::getScore).reduce(0, Integer::sum));
-            briefTable1List.add(briefTable1Params);
-        });
-        Map<String, Object> briefTable1TotalParams = new HashMap<>();
-        briefTable1TotalParams.put("taskTypeName", "合计");
-        briefTable1TotalParams.put("taskCount", taskList.size());
-        briefTable1TotalParams.put("taskSum", taskList.stream().map(WmTask::getScore).reduce(0, Integer::sum));
-        briefTable1List.add(briefTable1TotalParams);
-        excelMap.put("briefTable", briefTable1List);
-
-        SysDept paramDept = new SysDept();
-        paramDept.setDeptId(Integer.valueOf(wmScorePackage1.getSendPackageDeptId()));
-        SysDept wmDaAgent = sysDeptService.selectDeptById(paramDept);
-        excelMap.put("wt_ent", wmDaAgent.getName());
-
-        excelMap.put("drugEnt", "");
-
-
-        List<Map<String, Object>> wmTaskZd = wmTaskService.getTaskListByIdsZd(wmTask);
-        if (wmScorePackage1.getPackageType2().equals("2")) {
-            wmTaskZd = wmTaskService.getTaskListByIdsZdJs(wmTask);
-        }
-        String minDateStr = null;
-        String maxDateStr = null;
-        if (null != wmTaskZd) {
-            if (wmTaskZd.size() > 0) {
-                Map<String, Object> stringMap = wmTaskZd.get(0);
-                if (null == stringMap) {
-                    return null;
-                }
-                // 服务周期取 积分包领取审核通过时间~管理员审核积分包时最后审核通过的时间
-                Map<String, String> serviceTimeRangeMap = wmScorePackageStatusService.getServiceTimeRange(wmScorePackage1);
-                excelMap.put("service_date", serviceTimeRangeMap.get("service_start_date") + "至" + serviceTimeRangeMap.get("service_end_date"));
-//                excelMap.put("service_date", stringMap.get("mindate") + "至" + stringMap.get("maxdate"));
-                try {
-                    minDateStr = serviceTimeRangeMap.get("service_start_date").substring(5, 7);
-                    maxDateStr = serviceTimeRangeMap.get("service_end_date").substring(5, 7);
-
-                } catch (Exception ex) {
-                    ex.printStackTrace();
-                }
-                excelMap.put("tMoney", stringMap.get("sumscore") + "");
-                excelMap.put("report_users", stringMap.get("realname") + "");
-
-
-                String ruleDate = wmScorePackage1.getBelongDate();
-
-                excelMap.put("rule_year", ruleDate.substring(0, 4));
-
-                String monthStr = ruleDate.substring(5, 7);
-                if (null != minDateStr && null != maxDateStr) {
-                    if (minDateStr.equals(maxDateStr)) {
-                        monthStr = minDateStr;
-                    } else {
-                        // 跨年情况判断
-                        if (!ruleDate.substring(0, 4).equals(serviceTimeRangeMap.get("service_end_date").substring(0, 4))) {
-                            monthStr = String.format("%s月至%s年%s",
-                                    minDateStr, serviceTimeRangeMap.get("service_end_date").substring(0, 4), maxDateStr);
-                        } else {
-                            monthStr = minDateStr + "月至" + maxDateStr;
-                        }
-                    }
-                } else if (null != minDateStr) {
-                    monthStr = minDateStr;
-                } else if (null != maxDateStr) {
-                    monthStr = maxDateStr;
-                }
-
-                excelMap.put("rule_month", monthStr);
-
-
-            }
-        }
-        return excelMap;
-    }
-
-    /**
-     * 个人报告导出--报告详情
-     *
-     * @param wmTask
-     * @return
-     * @throws IOException
-     */
-    public List<Map<String, Object>> exportZbInfo(WmTask wmTask) throws IOException {
-        return reportExportService.exportZbInfo(wmTask);
-    }
-
-    public String getFieldValueByFieldName(String fieldName, Object object) {
-        try {
-            Field field = object.getClass().getDeclaredField(fieldName);
-            //对private的属性的访问
-            field.setAccessible(true);
-            return field.get(object) + "";
-        } catch (Exception e) {
-            e.printStackTrace();
-            return null;
-        }
-    }
-
-}

+ 0 - 1228
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/impl/ReportExportForPushiServiceImpl.java

@@ -1,1228 +0,0 @@
-package com.qunzhixinxi.hnqz.admin.service.impl;
-
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.util.StrUtil;
-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.qunzhixinxi.hnqz.admin.api.entity.SysDept;
-import com.qunzhixinxi.hnqz.report.config.UpmsConfig;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEnt;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmReport;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskContent;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskContentConfig;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
-import com.qunzhixinxi.hnqz.admin.api.entity.XlsTask;
-import com.qunzhixinxi.hnqz.admin.api.constant.enums.ReportEnum;
-import com.qunzhixinxi.hnqz.report.mapper.WmTaskMapper;
-import com.qunzhixinxi.hnqz.report.service.ReportExportForPushiService;
-import com.qunzhixinxi.hnqz.report.service.ReportExportService;
-import com.qunzhixinxi.hnqz.report.service.SysDeptService;
-import com.qunzhixinxi.hnqz.report.service.SysFileService;
-import com.qunzhixinxi.hnqz.report.service.SysUserService;
-import com.qunzhixinxi.hnqz.report.service.WmDaDrugEntService;
-import com.qunzhixinxi.hnqz.report.service.WmReportService;
-import com.qunzhixinxi.hnqz.report.service.WmScorePackageService;
-import com.qunzhixinxi.hnqz.report.service.WmScorePackageStatusService;
-import com.qunzhixinxi.hnqz.report.service.WmTaskContentConfigService;
-import com.qunzhixinxi.hnqz.report.service.WmTaskContentService;
-import com.qunzhixinxi.hnqz.report.service.WmTaskService;
-import com.qunzhixinxi.hnqz.report.service.WmTaskTypeService;
-import com.qunzhixinxi.hnqz.report.util.ExportReport;
-import com.qunzhixinxi.hnqz.report.util.Html2ImageByJsWrapper;
-import com.qunzhixinxi.hnqz.common.core.util.R;
-import lombok.AllArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.io.IOUtils;
-import org.springframework.mock.web.MockMultipartFile;
-import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.lang.reflect.Field;
-import java.math.BigDecimal;
-import java.sql.Timestamp;
-import java.text.SimpleDateFormat;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-
-/**
- * <p>
- * 报告管理 服务实现类
- * </p>
- *
- * @author hnqz
- * @since 2018-01-20
- */
-@Slf4j
-@Service("ReportExportForPushiServiceImpl")
-@AllArgsConstructor
-public class ReportExportForPushiServiceImpl implements ReportExportService {
-
-    private final WmTaskService wmTaskService;
-    private final WmScorePackageService wmScorePackageService;
-    private final UpmsConfig upmsConfig;
-    private final SysFileService sysFileService;
-    private final WmDaDrugEntService wmDaDrugEntService;
-    private final WmTaskTypeService wmTaskTypeService;
-    private final SysUserService sysUserService;
-    private final SysDeptService sysDeptService;
-    private final WmTaskContentService wmTaskContentService;
-    private final WmTaskContentConfigService wmTaskContentConfigService;
-    private final WmTaskMapper wmTaskMapper;
-    private final WmReportService wmReportService;
-    private final WmScorePackageStatusService wmScorePackageStatusService;
-    private final ReportExportService reportExportService;
-
-    /**
-     * 结算报告--导出汇总报告--学术推广服务报告
-     *
-     * @param wmReport
-     * @return
-     * @throws IOException
-     */
-    @Override
-    public R newExportNb(WmReport wmReport, Integer deptId, String username) throws IOException {
-
-
-        wmReport = wmReportService.getById(wmReport.getId());
-        List<WmTask> taskList = new ArrayList<>();//该报告关联的所有未提交的任务
-        //更新任务表审批意见
-        WmScorePackage scorePackage = wmScorePackageService.getById(wmReport.getScoreId());
-        WmTask wmTask = new WmTask();
-        wmTask.setDelFlag("0");
-        wmTask.setEnableFlag("0");
-        wmTask.setRealFlag("0");
-
-        SysDept sysDept = sysDeptService.getById(scorePackage.getSendPackageDeptId());
-
-
-        if ("0".equals(scorePackage.getTypeid())) {//药企
-            wmTask.setReportDrugId(wmReport.getId());
-            wmTask.setReportDrugApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());//审核通过的状态
-            taskList = wmTaskService.list(Wrappers.query(wmTask));
-        } else if ("1".equals(scorePackage.getTypeid())) {//一级代理商类型
-            wmTask.setReportOneId(wmReport.getId());
-            if (sysDept.getLevel() == 2) {
-                wmTask.setReportDrugApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());//审核通过的状态
-            } else {
-                wmTask.setReportOneApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());//审核通过的状态
-            }
-
-            taskList = wmTaskService.list(Wrappers.query(wmTask));
-        } else if ("2".equals(scorePackage.getTypeid())) {//二级代理商类型
-            wmTask.setReportSecondId(wmReport.getId());
-            wmTask.setReportSecondApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());//审核通过的状态
-            taskList = wmTaskService.list(Wrappers.query(wmTask));
-        }
-        if (null == taskList || taskList.size() <= 0) {
-            return R.failed("ERROR_未查询到该报告关联的审批通过的任务");
-        }
-        String ids = taskList.stream().map(WmTask::getId).collect(Collectors.joining(","));
-        wmTask.setScorePackageId(wmReport.getScoreId().toString());
-        wmTask.setId(ids);
-
-        return exportNb(wmTask, wmReport, deptId, username);//报告汇总
-    }
-
-
-    /**
-     * 结算报告--导出汇总报告--学术推广服务报告
-     *
-     * @param wmTask
-     * @param wmReport
-     * @return
-     * @throws IOException
-     */
-    private R exportNb(WmTask wmTask, WmReport wmReport, Integer deptId, String username) throws IOException {
-
-        WmTask wmTaskparam = wmTask;
-        String packageId = wmTask.getScorePackageId();  // 获取积分包ID
-        if (null == packageId) {
-            return R.failed("积分包ID不能为空");
-        }
-
-        List<String> list = new ArrayList<>();
-        list.add(packageId);
-
-        wmTask.setExtIds(list);
-
-        Map<String, Object> excelMap = new HashMap<>();
-
-        WmScorePackage wmScorePackage = wmScorePackageService.getById(packageId);
-        if (null == wmScorePackage) {
-            return R.failed("获取积分包失败");
-        }
-
-        excelMap.put("totalscorePackageScore", wmScorePackage.getScore());
-        if (wmScorePackage.getPackageType1().equals("2") || wmScorePackage.getPackageType1().equals("3")) {
-            excelMap.put("totalscorePackageTaskNum", wmScorePackage.getTaskNum() * wmScorePackage.getUserNum());//积分包值任务个数
-        }
-
-
-        List<Map<String, Object>> wmTaskList = wmTaskService.getTaskListByIds(wmTask);
-
-
-        List<XlsTask> xlsTaskList = new ArrayList<>();//mxTable
-        Integer totalMoney = 0;
-//		wmTask.setScorePackageId(null);
-//		wmTask.setScorePackageDrugId(null);
-
-        //当前登陆人的机构
-        SysDept sysDept = sysDeptService.getById(deptId);
-
-        Map<String, Object> userMap = new HashMap<>();
-
-        //委托公司(结算企业)
-        SysDept drugEnt = sysDeptService.getById(wmReport.getDrugEntId());
-        //WmDaDrugEnt wmDaDrugEnt = wmDaDrugEntService.getById(SecurityUtils.getUser().getDrugEntId());
-
-        //报告公司(申请结算企业)
-        SysDept applydrugEnt = sysDeptService.getById(wmReport.getApplyDrugEntId());
-        //WmDaAgent wmDaAgent = wmDaAgentService.getById(wmScorePackage.getLevel1Id());
-
-        for (Map<String, Object> wmT : wmTaskList) {
-            totalMoney += Integer.parseInt(wmT.get("score") + "");
-            XlsTask xlsTask = new XlsTask();
-            xlsTask.setTaskNum(1);
-            xlsTask.setCreateTime(wmT.get("create_time") + "");
-
-            xlsTask.setDeptName(sysDept.getName());
-
-            //level=2是药企
-            if (sysDept.getLevel() == 2) {
-                xlsTask.setAgentDeptName(applydrugEnt.getName());
-            }
-
-            xlsTask.setDrugEntName(drugEnt.getName());
-
-
-            xlsTask.setScore(Integer.parseInt(wmT.get("score") + ""));
-
-            xlsTask.setUsername(wmT.get("realname") + "");
-            xlsTask.setTaskType(wmT.get("base_id") + "");
-
-            xlsTaskList.add(xlsTask);
-
-            String buildKey = wmT.get("realname") + "_" + drugEnt.getName() + "_" + sysDept.getName();
-            //人员表格
-            if (userMap.containsKey(buildKey)) {
-                try {
-                    userMap.put(buildKey, Integer.parseInt(wmT.get("score") + "") + Integer.parseInt(userMap.get(buildKey) + ""));
-                    userMap.put(buildKey + "_total", Integer.parseInt(wmT.get("score_count") + "") + Integer.parseInt(userMap
-                            .get(buildKey + "_total") + ""));
-
-                } catch (Exception ex) {
-                }
-            } else {
-                userMap.put(buildKey, Integer.parseInt(wmT.get("score") + ""));
-                userMap.put(buildKey + "_total", Integer.parseInt(wmT.get("score_count") + ""));
-            }
-        }
-
-//		List<String> list1 = new ArrayList<>();
-//		list1.add(packageId);
-
-        //学术推广服务任务明细表格
-        List<WmTask> wmTaskDetialList = wmTaskService.getTaskListByIdsReturnWmtaskInfo(wmTask);
-        List<Map<String, Object>> wmTaskDetialMap = new ArrayList<>();
-
-        if (wmTaskDetialList.size() > 0) {
-
-
-             for (WmTask wmTask1 : wmTaskDetialList) {
-                 Map<String, Object> map = new HashMap<>();
-                 WmTaskType wmTaskTypeTemp1 = wmTaskTypeService.getById(wmTask1.getTaskTypeId());
-                 map.put("taskType", wmTaskTypeTemp1.getTaskTypeName());
-                 DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-                 String strDate2 = dtf2.format(wmTask1.getCreateTime());
-                 map.put("taskTime", strDate2);
- //				map.put("taskUser", sysUserService.getById(wmTask1.getTaskUserId()).getRealname());
-                 map.put("taskUser", sysUserService.getByIdIgnore(wmTask1.getTaskUserId()).getRealname());
-                 map.put("taskTypeId", wmTask1.getTaskTypeId());
-                 map.put("score", wmTask1.getScore());
-                 map.put("taskNum", 1);
-
-                 wmTaskDetialMap.add(map);
-             }
-
-        }
-
-        excelMap.put("rwmxTable", wmTaskDetialMap);//学术推广服务任务明细表格
-
-        if (totalMoney > wmScorePackage.getScore()) {
-            totalMoney = wmScorePackage.getScore();
-        }
-
-        excelMap.put("ryTable", userMap);//人员表格
-        excelMap.put("tMoney", totalMoney);
-
-        if (xlsTaskList.size() > 0) {
-            excelMap.put("wt_ent", xlsTaskList.get(0).getDrugEntName());//委托公司
-            excelMap.put("drugEnt", xlsTaskList.get(0).getDrugEntName());//服务药企
-            excelMap.put("mxTable", xlsTaskList);
-        }
-
-        List<Map<String, String>> ztTableList = new ArrayList<>();
-        Map<String, String> ztMap = new HashMap<>();
-        List<Map<String, Object>> wmTaskCount = wmTaskService.getTaskListByIdsCount(wmTask);
-        if (wmTaskCount.size() > 0) {
-            Integer total = 0;
-            Integer sum = 0;
-            for (Map<String, Object> map :
-                    wmTaskCount) {
-                if (null != map.get("taskCount")) {
-                    total += Integer.parseInt(map.get("taskCount") + "");
-                }
-
-                if (null != map.get("taskSum")) {
-                    sum += Integer.parseInt(map.get("taskSum") + "");
-                }
-
-            }
-            Map<String, Object> totalMap = new HashMap<>();
-            totalMap.put("taskTypeName", "合计");
-            totalMap.put("taskCount", total);
-            totalMap.put("taskSum", sum);
-            wmTaskCount.add(totalMap);
-
-            excelMap.put("totalSubmitScore", sum);
-            excelMap.put("totalSubmitTaskNum", total);
-
-            excelMap.put("ztTable", wmTaskCount);//学术推广服务整体概况表格
-        }
-
-        // 任务小类及对应的任务个数和积分值
-        List<WmTask> taskList = wmTaskMapper.selectBatchIds(Arrays.asList(wmTask.getId().split(",")));
-
-        // 查询taskType
-        List<WmTaskType> taskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
-                .eq(WmTaskType::getTaskTypeLevel, "1")
-                .eq(WmTaskType::getDelFlag, "0")
-//                .eq(WmTaskType::getEnableFlag, "0")
-        );
-        // taskType通过id分组(key为parentId,value为taskTypeId的set)
-        Map<String, String> taskTypeIdMap = taskTypeList.stream()
-                .collect(Collectors.toMap(WmTaskType::getId, WmTaskType::getTaskTypeName));
-
-        // task通过taskTypeId分组
-        Map<String, List<WmTask>> taskTypeMap = taskList.stream()
-                .collect(Collectors.groupingBy(WmTask::getTaskTypeId, Collectors.toList()));
-
-        // 封装brief table1数据(统计每个小类任务的积分、任务数)
-        List<Map<String, Object>> briefTable1List = new ArrayList<>();
-        taskTypeMap.forEach((taskTypeId, wmTasks) -> {
-            Map<String, Object> briefTable1Params = new HashMap<>();
-            briefTable1Params.put("taskTypeName", taskTypeIdMap.get(taskTypeId));
-            briefTable1Params.put("taskCount", wmTasks.size());
-            briefTable1Params.put("taskSum", wmTasks.stream().map(WmTask::getScore).reduce(0, Integer::sum));
-            briefTable1List.add(briefTable1Params);
-        });
-        Map<String, Object> briefTable1TotalParams = new HashMap<>();
-        briefTable1TotalParams.put("taskTypeName", "合计");
-        briefTable1TotalParams.put("taskCount", taskList.size());
-        briefTable1TotalParams.put("taskSum", taskList.stream().map(WmTask::getScore).reduce(0, Integer::sum));
-        briefTable1List.add(briefTable1TotalParams);
-        excelMap.put("briefTable", briefTable1List);
-
-        //WmTaskRule wmTaskRule = wmTaskRuleService.getById(wmScorePackage.getTaskRuleId());
-        String entDate = wmScorePackage.getBelongDate() + "-31";
-        try {
-            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-            format.parse(entDate);
-        } catch (Exception ex) {
-            entDate = wmScorePackage.getBelongDate() + "-30";
-        }
-        //excelMap.put("service_date", wmTaskRule.getRuleMonth() + "-01 至 " + entDate);
-
-        List<Map<String, Object>> wmTaskZd = wmTaskService.getTaskListByIdsZd(wmTask);
-        String minDateStr = null;
-        String maxDateStr = null;
-        // 服务周期取 积分包领取审核通过时间~管理员审核积分包时最后审核通过的时间
-        Map<String, String> serviceTimeRangeMap = wmScorePackageStatusService.getServiceTimeRange(wmScorePackage);
-        if (null != wmTaskZd) {
-            if (wmTaskZd.size() > 0) {
-                Map<String, Object> stringMap = wmTaskZd.get(0);
-                if (null == stringMap) {
-                    return R.failed("未找到审核通过的任务");
-                }
-                excelMap.put("service_date", serviceTimeRangeMap.get("service_start_date") + "至" + serviceTimeRangeMap.get("service_end_date"));
-//                excelMap.put("service_date", stringMap.get("mindate") + "至" + stringMap.get("maxdate"));
-
-                try {
-                    minDateStr = serviceTimeRangeMap.get("service_start_date").substring(5, 7);
-                    maxDateStr = serviceTimeRangeMap.get("service_end_date").substring(5, 7);
-
-                } catch (Exception ex) {
-                    ex.printStackTrace();
-                }
-            }
-        }
-
-        if (null != applydrugEnt) {
-            excelMap.put("report_ent", applydrugEnt.getName());
-        } else {
-            excelMap.put("report_ent", "");
-        }
-
-
-        String ruleDate = wmScorePackage.getBelongDate();
-
-        excelMap.put("rule_year", ruleDate.substring(0, 4));
-
-        String monthStr = ruleDate.substring(5, 7);
-        if (null != minDateStr && null != maxDateStr) {
-            if (minDateStr.equals(maxDateStr)) {
-                monthStr = minDateStr;
-            } else {
-                // 跨年情况判断
-                if (!ruleDate.substring(0, 4).equals(serviceTimeRangeMap.get("service_end_date").substring(0, 4))) {
-                    monthStr = String.format("%s月至%s年%s",
-                            minDateStr, serviceTimeRangeMap.get("service_end_date").substring(0, 4), maxDateStr);
-                } else {
-                    monthStr = minDateStr + "月至" + maxDateStr;
-                }
-            }
-        } else if (null != minDateStr) {
-            monthStr = minDateStr;
-        } else if (null != maxDateStr) {
-            monthStr = maxDateStr;
-        }
-
-        excelMap.put("rule_month", monthStr);
-
-        //报告日期
-        Map<String, Timestamp> maxMaxTime = wmTaskService.getMaxCreateTime(wmTask);
-        System.out.println(maxMaxTime);
-        LocalDateTime MaxTime = maxMaxTime.get("MaxTime").toLocalDateTime();
-        excelMap.put("year", MaxTime.getYear() + "");
-        Integer month = MaxTime.getMonthValue();
-        if (month < 10) {
-            excelMap.put("month", "0" + MaxTime.getMonthValue() + "");
-        } else {
-            excelMap.put("month", MaxTime.getMonthValue() + "");
-        }
-        Integer day = MaxTime.getDayOfMonth();
-        if (day < 10) {
-            excelMap.put("day", "0" + MaxTime.getDayOfMonth() + "");
-        } else {
-            excelMap.put("day", MaxTime.getDayOfMonth() + "");
-        }
-
-        excelMap.put("tMoney", totalMoney);
-        excelMap.put("scoreId", wmScorePackage.getScorePackageName());
-
-        List<Map<String, Object>> infoList = exportZbInfo(wmTaskparam);
-        if (null != infoList && infoList.size() > 0) {
-            excelMap.put("infoList", infoList);
-        } else {
-            return R.failed("未查询到审核通过的任务");
-        }
-        //区分全职兼职学术推广员模版
-        excelMap.put("userType", wmScorePackage.getTypeid());
-
-        File f = null;
-        if (wmScorePackage.getPackageType1().equals("1")) {//定额
-            f = ExportReport.main_bulidTemplate1_pushi(excelMap, 1, upmsConfig.getBasePath());
-        } else {//定量
-            f = ExportReport.main_bulidTemplate2(excelMap, 1, upmsConfig.getBasePath());
-        }
-
-        FileInputStream input = new FileInputStream(f);
-
-        MultipartFile multipartFile = new MockMultipartFile("学术推广服务报告(" + packageId + ")", "学术推广服务报告(" + packageId + ").doc", "text/plain", IOUtils
-                .toByteArray(input));
-        return sysFileService.uploadFileAllUrlRealName(multipartFile, username);
-    }
-
-
-    @Override
-    public R newExportNba(WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException {
-
-        wmScorePackage = wmScorePackageService.getById(wmScorePackage.getId());
-
-        HashSet<String> idSet = new HashSet<>();
-        idSet.add(wmScorePackage.getId());
-        int size = idSet.size();
-        do {
-            Set<String> collect = wmScorePackageService.list(Wrappers.<WmScorePackage>lambdaQuery().in(WmScorePackage::getRelationScoreId, idSet))
-                    .stream()
-                    .map(WmScorePackage::getId)
-                    .collect(Collectors.toSet());
-            idSet.addAll(collect);
-            size += collect.size();
-        } while (size != idSet.size());
-
-        List<WmTask> taskList = wmTaskMapper.selectList(Wrappers.<WmTask>lambdaQuery().in(WmTask::getScorePackageId, idSet)
-                .eq(WmTask::getTaskStatus, 3)
-                .and(item -> item.in(WmTask::getReportDrugApprovalStatus, Arrays.asList(5,6)).eq(WmTask::getReportDrugApprovalOpinion, 1)
-                        .or(item2 -> item2.in(WmTask::getReportOneApprovalStatus, Arrays.asList(5,6)).eq(WmTask::getReportOneApprovalOpinion,1))));
-
-        //更新任务表审批意见
-        WmTask wmTask = new WmTask();
-        wmTask.setDelFlag("0");
-        wmTask.setEnableFlag("0");
-
-        if (null == taskList || taskList.size() <= 0) {
-            return R.failed("ERROR_未查询到该报告关联的审批通过的任务");
-        }
-        String ids = taskList.stream().map(WmTask::getId).collect(Collectors.joining(","));
-        wmTask.setScorePackageId(wmScorePackage.getId());
-        wmTask.setId(ids);
-
-
-        return exportNba(wmTask, wmScorePackage, deptId, username);
-    }
-
-    @Override
-    public R newExportNbaHistory(WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException {
-        wmScorePackage=wmScorePackageService.getById(wmScorePackage.getId());
-        if(wmScorePackage==null){
-            return R.failed("未查询到积分包信息");
-        }
-        LambdaQueryWrapper<WmTask> queryWrapper=new LambdaQueryWrapper();
-        queryWrapper.eq(WmTask::getScorePackageDrugId, wmScorePackage.getId());
-        queryWrapper.eq(WmTask::getTaskStatus,"3");
-        queryWrapper.eq(WmTask::getDelFlag,"0");
-        queryWrapper.eq(WmTask::getEnableFlag,"0");
-        queryWrapper.eq(WmTask::getRealFlag,"0");
-        List<WmTask> taskList=wmTaskService.list(queryWrapper);
-        //List<WmTask> taskList = wmTaskMapper.selectListByWmTask(wmScorePackage);
-        //更新任务表审批意见
-        WmTask wmTask=new WmTask();
-        wmTask.setDelFlag("0");
-        wmTask.setEnableFlag("0");
-
-        if(null==taskList||taskList.size()<=0){
-            return R.failed("ERROR_未查询到该报告关联的审批通过的任务");
-        }
-        String ids = taskList.stream().map(WmTask::getId).collect(Collectors.joining("," ));
-        wmTask.setScorePackageId(wmScorePackage.getId());
-        //wmTask.setId(ids);
-        wmTask.setId("(select id from wm_task where del_flag=0 and real_flag=0 and enable_flag=0 and task_status=3  and score_package_drug_id="+wmScorePackage.getId()+")");
-
-        return exportNba(wmTask,wmScorePackage,deptId,username);//报告汇总
-    }
-
-
-    /**
-     * 结算报告--导出汇总报告--学术推广服务报告
-     *
-     * @param wmTask
-     * @param wmScorePackage
-     * @return
-     * @throws IOException
-     */
-    private R exportNba(WmTask wmTask, WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException {
-
-        WmTask wmTaskparam = wmTask;
-        String packageId = wmTask.getScorePackageId();  // 获取积分包ID
-        if (null == packageId) {
-            return R.failed("积分包ID不能为空");
-        }
-
-        List<String> list = new ArrayList<>();
-        list.add(packageId);
-
-        wmTask.setExtIds(list);
-
-        Map<String, Object> excelMap = new HashMap<>();
-
-        wmScorePackage = wmScorePackageService.getById(packageId);
-        if (null == wmScorePackage) {
-            return R.failed("获取积分包失败");
-        }
-
-        excelMap.put("totalscorePackageScore", wmScorePackage.getScore());
-        if (wmScorePackage.getPackageType1().equals("2") || wmScorePackage.getPackageType1().equals("3")) {
-            excelMap.put("totalscorePackageTaskNum", wmScorePackage.getTaskNum() * wmScorePackage.getUserNum());//积分包值任务个数
-        }
-
-
-        List<Map<String, Object>> wmTaskList = wmTaskService.getTaskListByIdsOld(wmTask);
-
-
-        List<XlsTask> xlsTaskList = new ArrayList<>();//mxTable
-        Integer totalMoney = 0;
-//		wmTask.setScorePackageId(null);
-//		wmTask.setScorePackageDrugId(null);
-
-        //当前登陆人的机构
-        SysDept sysDept = sysDeptService.getById(deptId);
-
-        Map<String, Object> userMap = new HashMap<>();
-
-        //委托公司(结算企业)
-        SysDept drugEnt = sysDeptService.getById(wmScorePackage.getSendPackageDeptId());
-        //WmDaDrugEnt wmDaDrugEnt = wmDaDrugEntService.getById(SecurityUtils.getUser().getDrugEntId());
-
-        //报告公司(申请结算企业)
-        SysDept applydrugEnt = sysDeptService.getById(wmScorePackage.getDeptId());
-        //WmDaAgent wmDaAgent = wmDaAgentService.getById(wmScorePackage.getLevel1Id());
-
-        for (Map<String, Object> wmT : wmTaskList) {
-            totalMoney += Integer.parseInt(wmT.get("score") + "");
-            XlsTask xlsTask = new XlsTask();
-            xlsTask.setTaskNum(1);
-            xlsTask.setCreateTime(wmT.get("create_time") + "");
-
-            xlsTask.setDeptName(sysDept.getName());
-
-            //level=2是药企
-            if (sysDept.getLevel() == 2) {
-                xlsTask.setAgentDeptName(applydrugEnt.getName());
-            }
-
-            xlsTask.setDrugEntName(drugEnt.getName());
-
-
-            xlsTask.setScore(Integer.parseInt(wmT.get("score") + ""));
-
-            xlsTask.setUsername(wmT.get("realname") + "");
-            xlsTask.setTaskType(wmT.get("base_id") + "");
-
-            xlsTaskList.add(xlsTask);
-
-            String buildKey = wmT.get("realname") + "_" + drugEnt.getName() + "_" + sysDept.getName();
-            //人员表格
-            if (userMap.containsKey(buildKey)) {
-                try {
-                    userMap.put(buildKey, Integer.parseInt(wmT.get("score") + "") + Integer.parseInt(userMap.get(buildKey) + ""));
-                    userMap.put(buildKey + "_total", Integer.parseInt(wmT.get("score_count") + "") + Integer.parseInt(userMap
-                            .get(buildKey + "_total") + ""));
-
-                } catch (Exception ex) {
-                }
-            } else {
-                userMap.put(buildKey, Integer.parseInt(wmT.get("score") + ""));
-                userMap.put(buildKey + "_total", Integer.parseInt(wmT.get("score_count") + ""));
-            }
-        }
-
-//		List<String> list1 = new ArrayList<>();
-//		list1.add(packageId);
-
-        //学术推广服务任务明细表格
-        List<WmTask> wmTaskDetialList = wmTaskService.getTaskListByIdsReturnWmtaskInfo(wmTask);
-        List<Map<String, Object>> wmTaskDetialMap = new ArrayList<>();
-
-        if (wmTaskDetialList.size() > 0) {
-            for (WmTask wmTask1 :
-                    wmTaskDetialList) {
-                Map<String, Object> map = new HashMap<>();
-                WmTaskType wmTaskTypeTemp1 = wmTaskTypeService.getById(wmTask1.getTaskTypeId());
-                map.put("taskType", wmTaskTypeTemp1.getTaskTypeName());
-                DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-                String strDate2 = dtf2.format(wmTask1.getCreateTime());
-                map.put("taskTime", strDate2);
-//				map.put("taskUser", sysUserService.getById(wmTask1.getTaskUserId()).getRealname());
-                map.put("taskUser", sysUserService.getByIdIgnore(wmTask1.getTaskUserId()).getRealname());
-                map.put("taskTypeId", wmTask1.getTaskTypeId());
-                map.put("score", wmTask1.getScore());
-                map.put("taskNum", 1);
-
-                wmTaskDetialMap.add(map);
-            }
-
-        }
-
-        excelMap.put("rwmxTable", wmTaskDetialMap);//学术推广服务任务明细表格
-
-        if (totalMoney > wmScorePackage.getScore()) {
-            totalMoney = wmScorePackage.getScore();
-        }
-
-        excelMap.put("ryTable", userMap);//人员表格
-        excelMap.put("tMoney", totalMoney);
-
-        if (xlsTaskList.size() > 0) {
-            excelMap.put("wt_ent", xlsTaskList.get(0).getDrugEntName());//委托公司
-            excelMap.put("drugEnt", xlsTaskList.get(0).getDrugEntName());//服务药企
-            excelMap.put("mxTable", xlsTaskList);
-        }
-
-        List<Map<String, String>> ztTableList = new ArrayList<>();
-        Map<String, String> ztMap = new HashMap<>();
-        List<Map<String, Object>> wmTaskCount = wmTaskService.getTaskListByIdsCount(wmTask);
-        if (wmTaskCount.size() > 0) {
-            Integer total = 0;
-            Integer sum = 0;
-            for (Map<String, Object> map :
-                    wmTaskCount) {
-                if (null != map.get("taskCount")) {
-                    total += Integer.parseInt(map.get("taskCount") + "");
-                }
-
-                if (null != map.get("taskSum")) {
-                    sum += Integer.parseInt(map.get("taskSum") + "");
-                }
-
-            }
-            Map<String, Object> totalMap = new HashMap<>();
-            totalMap.put("taskTypeName", "合计");
-            totalMap.put("taskCount", total);
-            totalMap.put("taskSum", sum);
-            wmTaskCount.add(totalMap);
-
-            excelMap.put("totalSubmitScore", sum);
-            excelMap.put("totalSubmitTaskNum", total);
-
-            excelMap.put("ztTable", wmTaskCount);//学术推广服务整体概况表格
-        }
-
-        // 任务小类及对应的任务个数和积分值
-        List<WmTask> taskList = wmTaskMapper.selectBatchIds(Arrays.asList(wmTask.getId().split(",")));
-
-        // 查询taskType
-        List<WmTaskType> taskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
-                .eq(WmTaskType::getTaskTypeLevel, "1")
-                .eq(WmTaskType::getDelFlag, "0")
-//                .eq(WmTaskType::getEnableFlag, "0")
-        );
-        // taskType通过id分组(key为parentId,value为taskTypeId的set)
-        Map<String, String> taskTypeIdMap = taskTypeList.stream()
-                .collect(Collectors.toMap(WmTaskType::getId, WmTaskType::getTaskTypeName));
-
-        // task通过taskTypeId分组
-        Map<String, List<WmTask>> taskTypeMap = taskList.stream()
-                .collect(Collectors.groupingBy(WmTask::getTaskTypeId, Collectors.toList()));
-
-        // 封装brief table1数据(统计每个小类任务的积分、任务数)
-        List<Map<String, Object>> briefTable1List = new ArrayList<>();
-        taskTypeMap.forEach((taskTypeId, wmTasks) -> {
-            Map<String, Object> briefTable1Params = new HashMap<>();
-            briefTable1Params.put("taskTypeName", taskTypeIdMap.get(taskTypeId));
-            briefTable1Params.put("taskCount", wmTasks.size());
-            briefTable1Params.put("taskSum", wmTasks.stream().map(WmTask::getScore).reduce(0, Integer::sum));
-            briefTable1List.add(briefTable1Params);
-        });
-        Map<String, Object> briefTable1TotalParams = new HashMap<>();
-        briefTable1TotalParams.put("taskTypeName", "合计");
-        briefTable1TotalParams.put("taskCount", taskList.size());
-        briefTable1TotalParams.put("taskSum", taskList.stream().map(WmTask::getScore).reduce(0, Integer::sum));
-        briefTable1List.add(briefTable1TotalParams);
-        excelMap.put("briefTable", briefTable1List);
-
-        //WmTaskRule wmTaskRule = wmTaskRuleService.getById(wmScorePackage.getTaskRuleId());
-        String entDate = wmScorePackage.getBelongDate() + "-31";
-        try {
-            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-            format.parse(entDate);
-        } catch (Exception ex) {
-            entDate = wmScorePackage.getBelongDate() + "-30";
-        }
-        //excelMap.put("service_date", wmTaskRule.getRuleMonth() + "-01 至 " + entDate);
-
-        List<Map<String, Object>> wmTaskZd = wmTaskService.getTaskListByIdsZd(wmTask);
-        String minDateStr = null;
-        String maxDateStr = null;
-        // 服务周期取 积分包领取审核通过时间~管理员审核积分包时最后审核通过的时间
-        Map<String, String> serviceTimeRangeMap = wmScorePackageStatusService.getServiceTimeRange(wmScorePackage);
-        if (null != wmTaskZd) {
-            if (wmTaskZd.size() > 0) {
-                Map<String, Object> stringMap = wmTaskZd.get(0);
-                if (null == stringMap) {
-                    return R.failed("未找到审核通过的任务");
-                }
-                excelMap.put("service_date", serviceTimeRangeMap.get("service_start_date") + "至" + serviceTimeRangeMap.get("service_end_date"));
-//                excelMap.put("service_date", stringMap.get("mindate") + "至" + stringMap.get("maxdate"));
-
-                try {
-                    minDateStr = serviceTimeRangeMap.get("service_start_date").substring(5, 7);
-                    maxDateStr = serviceTimeRangeMap.get("service_end_date").substring(5, 7);
-
-                } catch (Exception ex) {
-                    ex.printStackTrace();
-                }
-            }
-        }
-
-        if (null != applydrugEnt) {
-            excelMap.put("report_ent", applydrugEnt.getName());
-        } else {
-            excelMap.put("report_ent", "");
-        }
-
-
-        String ruleDate = wmScorePackage.getBelongDate();
-
-        excelMap.put("rule_year", ruleDate.substring(0, 4));
-
-        String monthStr = ruleDate.substring(5, 7);
-        if (null != minDateStr && null != maxDateStr) {
-            if (minDateStr.equals(maxDateStr)) {
-                monthStr = minDateStr;
-            } else {
-                // 跨年情况判断
-                if (!ruleDate.substring(0, 4).equals(serviceTimeRangeMap.get("service_end_date").substring(0, 4))) {
-                    monthStr = String.format("%s月至%s年%s",
-                            minDateStr, serviceTimeRangeMap.get("service_end_date").substring(0, 4), maxDateStr);
-                } else {
-                    monthStr = minDateStr + "月至" + maxDateStr;
-                }
-            }
-        } else if (null != minDateStr) {
-            monthStr = minDateStr;
-        } else if (null != maxDateStr) {
-            monthStr = maxDateStr;
-        }
-
-        excelMap.put("rule_month", monthStr);
-
-        //报告日期
-        Map<String, Timestamp> maxMaxTime = wmTaskService.getMaxCreateTime(wmTask);
-        System.out.println(maxMaxTime);
-        LocalDateTime MaxTime = maxMaxTime.get("MaxTime").toLocalDateTime();
-        excelMap.put("year", MaxTime.getYear() + "");
-        Integer month = MaxTime.getMonthValue();
-        if (month < 10) {
-            excelMap.put("month", "0" + MaxTime.getMonthValue() + "");
-        } else {
-            excelMap.put("month", MaxTime.getMonthValue() + "");
-        }
-        Integer day = MaxTime.getDayOfMonth();
-        if (day < 10) {
-            excelMap.put("day", "0" + MaxTime.getDayOfMonth() + "");
-        } else {
-            excelMap.put("day", MaxTime.getDayOfMonth() + "");
-        }
-
-        excelMap.put("tMoney", totalMoney);
-        excelMap.put("scoreId", wmScorePackage.getScorePackageName());
-
-        List<Map<String, Object>> infoList = exportZbInfo(wmTaskparam);
-        if (null != infoList && infoList.size() > 0) {
-            excelMap.put("infoList", infoList);
-        } else {
-            return R.failed("未查询到审核通过的任务");
-        }
-        //区分全职兼职学术推广员模版
-        excelMap.put("userType", wmScorePackage.getTypeid());
-
-        File f = null;
-        if (wmScorePackage.getPackageType1().equals("1")) {//定额
-            f = ExportReport.main_bulidTemplate1_pushi(excelMap, 1, upmsConfig.getBasePath());
-        } else {//定量
-            f = ExportReport.main_bulidTemplate2_pushi(excelMap, 1, upmsConfig.getBasePath());
-        }
-
-        FileInputStream input = new FileInputStream(f);
-
-        MultipartFile multipartFile = new MockMultipartFile("学术推广服务报告(" + packageId + ")", "学术推广服务报告(" + packageId + ").doc", "text/plain", IOUtils
-                .toByteArray(input));
-        return sysFileService.uploadFileAllUrlRealName(multipartFile, username);
-    }
-
-
-    /**
-     * 个人承接按积分制
-     * @param wmTask
-     * @param username
-     * @return
-     * @throws IOException
-     */
-    @Override
-    public R newExportZb(WmTask wmTask, String username) throws IOException {
-        String packageId = wmTask.getScorePackageDrugId();
-        if (null == packageId) {
-            return R.failed("积分包ID不能为空");
-        }
-        LambdaQueryWrapper<WmTask> queryWrapper = new LambdaQueryWrapper();
-        queryWrapper.in(WmTask::getScorePackageId, Arrays.asList(packageId.split(",")));
-        queryWrapper.eq(WmTask::getTaskStatus, "3");
-        queryWrapper.eq(WmTask::getDelFlag, "0");
-        queryWrapper.eq(WmTask::getEnableFlag, "0");
-        queryWrapper.eq(WmTask::getRealFlag, "0");
-        List<WmTask> taskList = wmTaskService.list(queryWrapper);
-        if (taskList.isEmpty()) {
-            return R.failed("未查询到审核通过的任务");
-        }
-        String ids = taskList.stream().map(WmTask::getId).collect(Collectors.joining(","));
-        wmTask.setScorePackageId(packageId);
-        wmTask.setId(ids);
-        return exportZb(wmTask, username);
-    }
-
-    /**
-     * 个人报告导出--众包代表业绩报告
-     *
-     * @param wmTask
-     * @return
-     * @throws IOException
-     */
-    private R exportZb(WmTask wmTask, String username) throws IOException {
-
-        WmTask wmTaskparam = wmTask;
-        String packageId = wmTask.getScorePackageId();  // 获取积分包ID
-        if (null == packageId) {
-            packageId = wmTask.getScorePackageDrugId();
-        }
-
-        if (null == packageId) {
-            return R.failed("积分包ID不能为空");
-        }
-
-        WmScorePackage wmScorePackage1 = wmScorePackageService.getById(packageId);
-
-        Map<String, Object> excelMap = exportZbCommon(wmTask);
-        if (null == excelMap) {
-            return R.failed("未查询到审核通过的任务");
-        }
-
-        List<Map<String, Object>> infoList = exportZbInfo(wmTaskparam);
-        if (null != infoList && infoList.size() > 0) {
-            excelMap.put("infoList", infoList);
-        }
-        //区分全职兼职学术推广员模版
-        excelMap.put("userType", wmScorePackage1.getTypeid());
-//        excelMap.put("scoreId", wmScorePackage1.getScorePackageName());
-        List<String> extIds = wmTask.getExtIds();
-        List<WmScorePackage> wmScorePackages = wmScorePackageService.listByIds(extIds);
-        String scoreIds = wmScorePackages.stream().map(WmScorePackage::getScorePackageName).collect(Collectors.joining(","));
-        excelMap.put("scoreId", StrUtil.isBlank(scoreIds) ? wmScorePackage1.getScorePackageName() : scoreIds);
-
-        File f = null;
-        if (wmScorePackage1.getPackageType1().equals("1")) {//定额
-            f = ExportReport.main_bulidTemplate1_pushi(excelMap, 2, upmsConfig.getBasePath());
-        } else {//定量
-            f = ExportReport.main_bulidTemplate2_pushi(excelMap, 2, upmsConfig.getBasePath());
-        }
-
-        FileInputStream input = new FileInputStream(f);
-
-        String fileNamePrefix = "";
-        if (StrUtil.equals(wmScorePackage1.getTypeid(), "3")) {
-            fileNamePrefix = "全职学术信息沟通专员业绩报告";
-        } else if (StrUtil.equals(wmScorePackage1.getTypeid(), "5")) {
-            fileNamePrefix = "招商经理业绩报告";
-        } else if (StrUtil.equals(wmScorePackage1.getTypeid(), "4")) {
-            fileNamePrefix = "兼职学术信息沟通专员业绩报告";
-        }
-
-        MultipartFile multipartFile = new MockMultipartFile(fileNamePrefix + "(" + packageId + ")", "兼职学术推广员业绩报告(" + packageId + ").doc", "text/plain", IOUtils
-                .toByteArray(input));
-        return sysFileService.uploadFileAllUrlRealName(multipartFile, username);
-
-    }
-
-    /*合并导出--汇总
-     */
-    public Map<String, Object> exportZbCommon(WmTask wmTask) {
-        String packageId = wmTask.getScorePackageId();  // 获取积分包ID
-        if (null == packageId) {
-            packageId = wmTask.getScorePackageDrugId();
-        }
-
-        Map<String, Object> excelMap = new HashMap<>();
-        WmScorePackage wmScorePackage1 = wmScorePackageService.getById(packageId);
-        WmDaDrugEnt wmDaDrugEnt = wmDaDrugEntService.getById(wmScorePackage1.getDrugEntId());
-        if (wmDaDrugEnt == null) {
-            wmDaDrugEnt = new WmDaDrugEnt();
-            wmDaDrugEnt.setEntname("无");
-        }
-
-        List<String> strs = new ArrayList<>();
-        if (packageId.contains(",")) {
-            strs.addAll(Arrays.asList(packageId.split(",")));
-        } else {
-            strs.add(packageId);
-        }
-        wmTask.setExtIds(strs);
-
-
-        List<Map<String, Object>> wmTaskList = wmTaskService.getTaskListByIdsOld(wmTask);
-        if (wmScorePackage1.getPackageType2().equals("2")) {
-            wmTaskList = wmTaskService.getTaskListByIdsJs(wmTask);
-        }
-        if (wmTaskList.size() > 0) {
-            List<XlsTask> xlsTaskList = new ArrayList<>();
-            Map<String, Object> userMap = new HashMap<>();
-            for (Map<String, Object> wmt : wmTaskList) {
-                XlsTask xlsTask = new XlsTask();
-                xlsTask.setTaskNum(Integer.valueOf(wmt.get("score_count") + ""));
-                xlsTask.setTaskType(wmt.get("base_id") + "");
-                xlsTask.setUsername(wmt.get("realname") + "");
-                xlsTask.setScore(Integer.parseInt((wmt.get("score") == null ? "0" : wmt.get("score")) + ""));
-                xlsTask.setDrugEntName(wmDaDrugEnt.getEntname());
-                xlsTask.setDeptName(wmt.get("dept_name") + "");
-                xlsTask.setCreateTime(wmt.get("create_time") + "");
-                xlsTaskList.add(xlsTask);
-
-                String buildKey = wmt.get("realname") + "_" + wmDaDrugEnt.getEntname() + "_" + wmt.get("dept_name") + "";
-                if (userMap.containsKey(buildKey)) {
-                    try {
-                        userMap.put(buildKey, Integer.parseInt(wmt.get("score") == null ? "0" : wmt.get("score") + "") + Integer
-                                .parseInt(userMap.get(buildKey) == null ? "0" : userMap.get(buildKey) + ""));
-                        userMap.put(buildKey + "_total", Integer.parseInt(wmt.get("score_count") + "") + Integer.parseInt(userMap
-                                .get(buildKey + "_total") + ""));
-
-                    } catch (Exception ex) {
-                    }
-                } else {
-                    userMap.put(buildKey, wmt.get("score"));
-                    userMap.put(buildKey + "_total", Integer.parseInt(wmt.get("score_count") + ""));
-                }
-            }
-
-
-            List<WmTask> wmTaskDetialList = wmTaskService.getTaskListByIdsReturnWmtaskInfo(wmTask);
-            List<Map<String, Object>> wmTaskDetialMap = new ArrayList<>();
-
-            List<String> listPackageIds = new ArrayList<>();
-
-            if (wmTaskDetialList.size() > 0) {
-                for (WmTask wmTask1 :
-                        wmTaskDetialList) {
-                    Map<String, Object> map = new HashMap<>();
-                    WmTaskType wmTaskTypeTemp1 = wmTaskTypeService.getById(wmTask1.getTaskTypeId());
-                    map.put("taskType", wmTaskTypeTemp1.getTaskTypeName());
-                    DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-                    String strDate2 = dtf2.format(wmTask1.getCreateTime());
-                    map.put("taskTime", strDate2);
-                    if (wmScorePackage1.getPackageType2().equals("2")) {
-                        map.put("taskUser", sysUserService.getByIdIgnore(wmTask1.getTaskUserId()).getRealname());
-                    } else {
-                        map.put("taskUser", sysUserService.getByIdIgnore(wmTask1.getTaskUserId()).getRealname());
-                    }
-
-                    map.put("taskTypeId", wmTask1.getTaskTypeId());
-                    map.put("score", wmTask1.getScore());
-                    map.put("taskNum", 1);
-                    wmTaskDetialMap.add(map);
-
-                    if (listPackageIds.size() == 0) {
-                        listPackageIds.add(wmTask1.getScorePackageId());
-                    } else {
-                        boolean isInscore = true;
-                        for (String str : listPackageIds) {
-                            if (str.equals(wmTask1.getScorePackageId())) {
-                                isInscore = false;
-                            }
-                        }
-
-                        if (isInscore) {
-                            listPackageIds.add(wmTask1.getScorePackageId());
-                        }
-                    }
-                }
-            }
-
-            if (listPackageIds.size() > 0) {
-                List<WmScorePackage> wmScorePackageList = wmScorePackageService.listByIds(listPackageIds);
-                Integer totalScorePackage = 0;
-                BigDecimal settleAmount = new BigDecimal("0");
-                if (wmScorePackageList.size() > 0) {
-                    for (WmScorePackage wmScorePackage : wmScorePackageList) {
-                        totalScorePackage += wmScorePackage.getScore();
-                        if (wmScorePackage.getSettleStatus() != null && wmScorePackage.getSettleStatus() == 1) {
-                            settleAmount = settleAmount.add(wmScorePackage.getSettleAmount());
-                        }
-                    }
-                }
-                excelMap.put("settleAmount", "0".equals(settleAmount.toString()) ? " " : settleAmount);
-                excelMap.put("totalscorePackageScore", totalScorePackage);
-                if (wmScorePackage1.getPackageType1().equals("2") || wmScorePackage1.getPackageType1().equals("3")) {
-                    if (!wmScorePackage1.getPackageType2().equals("2")) {
-                        excelMap.put("totalscorePackageTaskNum", wmScorePackage1.getTaskNum() * wmScorePackage1.getUserNum());//积分包值任务个数
-                    }
-                }
-
-                List<WmTask> tasks = wmTaskService.list(Wrappers.<WmTask>lambdaQuery()
-                        .in(WmTask::getScorePackageId, listPackageIds));
-
-                if (CollUtil.isNotEmpty(tasks)) {
-                    int sum = tasks.stream()
-//                            .filter(t -> "3".equals( t.getTaskStatus()) && WmTask.TaskSettleStatusEnum.SETTLED.getCode().equals(t.getTaskSettleStatus()))
-                            .filter(t -> "3".equals( t.getTaskStatus()))
-                            .mapToInt(WmTask::getScore).sum();
-                    excelMap.put("submitAmount", sum);
-                }
-            }
-
-            excelMap.put("rwmxTable", wmTaskDetialMap);
-            excelMap.put("mxTable", xlsTaskList);
-            excelMap.put("ryTable", userMap);
-
-        }
-
-        Map<String, Timestamp> maxMaxTime = wmTaskService.getMaxCreateTime(wmTask);
-        System.out.println(maxMaxTime);
-        LocalDateTime MaxTime = maxMaxTime.get("MaxTime").toLocalDateTime();
-        excelMap.put("year", MaxTime.getYear() + "");
-        Integer month = MaxTime.getMonthValue();
-        if (month < 10) {
-            excelMap.put("month", "0" + MaxTime.getMonthValue() + "");
-        } else {
-            excelMap.put("month", MaxTime.getMonthValue() + "");
-        }
-        Integer day = MaxTime.getDayOfMonth();
-        if (day < 10) {
-            excelMap.put("day", "0" + MaxTime.getDayOfMonth() + "");
-        } else {
-            excelMap.put("day", MaxTime.getDayOfMonth() + "");
-        }
-
-        // 任务大类及对应的任务个数和积分值
-        List<Map<String, Object>> wmTaskCount = wmTaskService.getTaskListByIdsCount(wmTask);
-        if (wmTaskCount.size() > 0) {
-            Integer total = 0;
-            Integer sum = 0;
-            for (Map<String, Object> map :
-                    wmTaskCount) {
-                if (null != map.get("taskCount")) {
-                    total += Integer.parseInt(map.get("taskCount") + "");
-                }
-
-                if (null != map.get("taskSum")) {
-                    sum += Integer.parseInt(map.get("taskSum") + "");
-                }
-
-            }
-            Map<String, Object> totalMap = new HashMap<>();
-            totalMap.put("taskTypeName", "合计");
-            totalMap.put("taskCount", total);
-            totalMap.put("taskSum", sum);
-            wmTaskCount.add(totalMap);
-
-            excelMap.put("totalSubmitScore", sum);
-            excelMap.put("totalSubmitTaskNum", total);
-            excelMap.put("ztTable", wmTaskCount);
-        }
-
-        // 任务小类及对应的任务个数和积分值
-        List<WmTask> taskList = wmTaskMapper.selectBatchIds(Arrays.asList(wmTask.getId().split(",")));
-
-        // 查询taskType
-        List<WmTaskType> taskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
-                .eq(WmTaskType::getTaskTypeLevel, "1")
-                .eq(WmTaskType::getDelFlag, "0")
-//                .eq(WmTaskType::getEnableFlag, "0")
-        );
-        // taskType通过id分组(key为parentId,value为taskTypeId的set)
-        Map<String, String> taskTypeIdMap = taskTypeList.stream()
-                .collect(Collectors.toMap(WmTaskType::getId, WmTaskType::getTaskTypeName));
-
-        // task通过taskTypeId分组
-        Map<String, List<WmTask>> taskTypeMap = taskList.stream()
-                .collect(Collectors.groupingBy(WmTask::getTaskTypeId, Collectors.toList()));
-
-        // 封装brief table1数据(统计每个小类任务的积分、任务数)
-        List<Map<String, Object>> briefTable1List = new ArrayList<>();
-        taskTypeMap.forEach((taskTypeId, wmTasks) -> {
-            Map<String, Object> briefTable1Params = new HashMap<>();
-            briefTable1Params.put("taskTypeName", taskTypeIdMap.get(taskTypeId));
-            briefTable1Params.put("taskCount", wmTasks.size());
-            briefTable1Params.put("taskSum", wmTasks.stream().map(WmTask::getScore).reduce(0, Integer::sum));
-            briefTable1List.add(briefTable1Params);
-        });
-        Map<String, Object> briefTable1TotalParams = new HashMap<>();
-        briefTable1TotalParams.put("taskTypeName", "合计");
-        briefTable1TotalParams.put("taskCount", taskList.size());
-        briefTable1TotalParams.put("taskSum", taskList.stream().map(WmTask::getScore).reduce(0, Integer::sum));
-        briefTable1List.add(briefTable1TotalParams);
-        excelMap.put("briefTable", briefTable1List);
-
-        SysDept paramDept = new SysDept();
-        paramDept.setDeptId(Integer.valueOf(wmScorePackage1.getSendPackageDeptId()));
-        SysDept wmDaAgent = sysDeptService.selectDeptById(paramDept);
-        excelMap.put("wt_ent", wmDaAgent.getName());
-
-        excelMap.put("drugEnt", "");
-
-
-        List<Map<String, Object>> wmTaskZd = wmTaskService.getTaskListByIdsZd(wmTask);
-        if (wmScorePackage1.getPackageType2().equals("2")) {
-            wmTaskZd = wmTaskService.getTaskListByIdsZdJs(wmTask);
-        }
-        String minDateStr = null;
-        String maxDateStr = null;
-        if (null != wmTaskZd) {
-            if (wmTaskZd.size() > 0) {
-                Map<String, Object> stringMap = wmTaskZd.get(0);
-                if (null == stringMap) {
-                    return null;
-                }
-                // 服务周期取 积分包领取审核通过时间~管理员审核积分包时最后审核通过的时间
-                Map<String, String> serviceTimeRangeMap = wmScorePackageStatusService.getServiceTimeRange(wmScorePackage1);
-                excelMap.put("service_date", serviceTimeRangeMap.get("service_start_date") + "至" + serviceTimeRangeMap.get("service_end_date"));
-//                excelMap.put("service_date", stringMap.get("mindate") + "至" + stringMap.get("maxdate"));
-                try {
-                    minDateStr = serviceTimeRangeMap.get("service_start_date").substring(5, 7);
-                    maxDateStr = serviceTimeRangeMap.get("service_end_date").substring(5, 7);
-
-                } catch (Exception ex) {
-                    ex.printStackTrace();
-                }
-                excelMap.put("tMoney", stringMap.get("sumscore") + "");
-                excelMap.put("report_users", stringMap.get("realname") + "");
-
-
-                String ruleDate = wmScorePackage1.getBelongDate();
-
-                excelMap.put("rule_year", ruleDate.substring(0, 4));
-
-                String monthStr = ruleDate.substring(5, 7);
-                if (null != minDateStr && null != maxDateStr) {
-                    if (minDateStr.equals(maxDateStr)) {
-                        monthStr = minDateStr;
-                    } else {
-                        // 跨年情况判断
-                        if (!ruleDate.substring(0, 4).equals(serviceTimeRangeMap.get("service_end_date").substring(0, 4))) {
-                            monthStr = String.format("%s月至%s年%s",
-                                    minDateStr, serviceTimeRangeMap.get("service_end_date").substring(0, 4), maxDateStr);
-                        } else {
-                            monthStr = minDateStr + "月至" + maxDateStr;
-                        }
-                    }
-                } else if (null != minDateStr) {
-                    monthStr = minDateStr;
-                } else if (null != maxDateStr) {
-                    monthStr = maxDateStr;
-                }
-
-                excelMap.put("rule_month", monthStr);
-
-
-            }
-        }
-        return excelMap;
-    }
-
-    /**
-     * 个人报告导出--报告详情
-     *
-     * @param wmTask
-     * @return
-     * @throws IOException
-     */
-    public List<Map<String, Object>> exportZbInfo(WmTask wmTask) throws IOException {
-        return reportExportService.exportZbInfo(wmTask);
-    }
-
-    public String getFieldValueByFieldName(String fieldName, Object object) {
-        try {
-            Field field = object.getClass().getDeclaredField(fieldName);
-            //对private的属性的访问
-            field.setAccessible(true);
-            return field.get(object) + "";
-        } catch (Exception e) {
-            e.printStackTrace();
-            return null;
-        }
-    }
-
-}

+ 256 - 305
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/impl/ReportExportServiceImpl.java

@@ -1,6 +1,7 @@
 package com.qunzhixinxi.hnqz.report.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONArray;
@@ -16,6 +17,7 @@ import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskContent;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskContentConfig;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
 import com.qunzhixinxi.hnqz.admin.api.entity.XlsTask;
+import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
 import com.qunzhixinxi.hnqz.report.config.UpmsConfig;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEnt;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmReport;
@@ -77,7 +79,7 @@ import java.util.stream.Collectors;
  * @since 2018-01-20
  */
 @Slf4j
-@Service
+@Service("reportExportService")
 @AllArgsConstructor
 @Primary
 public class ReportExportServiceImpl implements ReportExportService {
@@ -109,8 +111,8 @@ public class ReportExportServiceImpl implements ReportExportService {
 
 
         wmReport = wmReportService.getById(wmReport.getId());
-        List<WmTask> taskList = new ArrayList<>();//该报告关联的所有未提交的任务
-        //更新任务表审批意见
+        List<WmTask> taskList = new ArrayList<>();// 该报告关联的所有未提交的任务
+        // 更新任务表审批意见
         WmScorePackage scorePackage = wmScorePackageService.getById(wmReport.getScoreId());
         WmTask wmTask = new WmTask();
         wmTask.setDelFlag("0");
@@ -120,22 +122,22 @@ public class ReportExportServiceImpl implements ReportExportService {
         SysDept sysDept = sysDeptService.getById(scorePackage.getSendPackageDeptId());
 
 
-        if ("0".equals(scorePackage.getTypeid())) {//药企
+        if ("0".equals(scorePackage.getTypeid())) {// 药企
             wmTask.setReportDrugId(wmReport.getId());
-            wmTask.setReportDrugApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());//审核通过的状态
+            wmTask.setReportDrugApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());// 审核通过的状态
             taskList = wmTaskService.list(Wrappers.query(wmTask));
-        } else if ("1".equals(scorePackage.getTypeid())) {//一级代理商类型
+        } else if ("1".equals(scorePackage.getTypeid())) {// 一级代理商类型
             wmTask.setReportOneId(wmReport.getId());
             if (sysDept.getLevel() == 2) {
-                wmTask.setReportDrugApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());//审核通过的状态
+                wmTask.setReportDrugApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());// 审核通过的状态
             } else {
-                wmTask.setReportOneApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());//审核通过的状态
+                wmTask.setReportOneApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());// 审核通过的状态
             }
 
             taskList = wmTaskService.list(Wrappers.query(wmTask));
-        } else if ("2".equals(scorePackage.getTypeid())) {//二级代理商类型
+        } else if ("2".equals(scorePackage.getTypeid())) {// 二级代理商类型
             wmTask.setReportSecondId(wmReport.getId());
-            wmTask.setReportSecondApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());//审核通过的状态
+            wmTask.setReportSecondApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());// 审核通过的状态
             taskList = wmTaskService.list(Wrappers.query(wmTask));
         }
         if (null == taskList || taskList.size() <= 0) {
@@ -145,7 +147,7 @@ public class ReportExportServiceImpl implements ReportExportService {
         wmTask.setScorePackageId(wmReport.getScoreId().toString());
         wmTask.setId(ids);
 
-        return exportNb(wmTask, wmReport, deptId, username);//报告汇总
+        return exportNb(wmTask, wmReport, deptId, username);// 报告汇总
     }
 
 
@@ -179,30 +181,30 @@ public class ReportExportServiceImpl implements ReportExportService {
 
         excelMap.put("totalscorePackageScore", wmScorePackage.getScore());
         if (wmScorePackage.getPackageType1().equals("2") || wmScorePackage.getPackageType1().equals("3")) {
-            excelMap.put("totalscorePackageTaskNum", wmScorePackage.getTaskNum() * wmScorePackage.getUserNum());//积分包值任务个数
+            excelMap.put("totalscorePackageTaskNum", wmScorePackage.getTaskNum() * wmScorePackage.getUserNum());// 积分包值任务个数
         }
 
 
         List<Map<String, Object>> wmTaskList = wmTaskService.getTaskListByIds(wmTask);
 
 
-        List<XlsTask> xlsTaskList = new ArrayList<>();//mxTable
+        List<XlsTask> xlsTaskList = new ArrayList<>();// mxTable
         Integer totalMoney = 0;
 //		wmTask.setScorePackageId(null);
 //		wmTask.setScorePackageDrugId(null);
 
-        //当前登陆人的机构
+        // 当前登陆人的机构
         SysDept sysDept = sysDeptService.getById(deptId);
 
         Map<String, Object> userMap = new HashMap<>();
 
-        //委托公司(结算企业)
+        // 委托公司(结算企业)
         SysDept drugEnt = sysDeptService.getById(wmReport.getDrugEntId());
-        //WmDaDrugEnt wmDaDrugEnt = wmDaDrugEntService.getById(SecurityUtils.getUser().getDrugEntId());
+        // WmDaDrugEnt wmDaDrugEnt = wmDaDrugEntService.getById(SecurityUtils.getUser().getDrugEntId());
 
-        //报告公司(申请结算企业)
+        // 报告公司(申请结算企业)
         SysDept applydrugEnt = sysDeptService.getById(wmReport.getApplyDrugEntId());
-        //WmDaAgent wmDaAgent = wmDaAgentService.getById(wmScorePackage.getLevel1Id());
+        // WmDaAgent wmDaAgent = wmDaAgentService.getById(wmScorePackage.getLevel1Id());
 
         for (Map<String, Object> wmT : wmTaskList) {
             totalMoney += Integer.parseInt(wmT.get("score") + "");
@@ -212,7 +214,7 @@ public class ReportExportServiceImpl implements ReportExportService {
 
             xlsTask.setDeptName(sysDept.getName());
 
-            //level=2是药企
+            // level=2是药企
             if (sysDept.getLevel() == 2) {
                 xlsTask.setAgentDeptName(applydrugEnt.getName());
             }
@@ -228,7 +230,7 @@ public class ReportExportServiceImpl implements ReportExportService {
             xlsTaskList.add(xlsTask);
 
             String buildKey = wmT.get("realname") + "_" + drugEnt.getName() + "_" + sysDept.getName();
-            //人员表格
+            // 人员表格
             if (userMap.containsKey(buildKey)) {
                 try {
                     userMap.put(buildKey, Integer.parseInt(wmT.get("score") + "") + Integer.parseInt(userMap.get(buildKey) + ""));
@@ -246,43 +248,43 @@ public class ReportExportServiceImpl implements ReportExportService {
 //		List<String> list1 = new ArrayList<>();
 //		list1.add(packageId);
 
-        //学术推广服务任务明细表格
+        // 学术推广服务任务明细表格
         List<WmTask> wmTaskDetialList = wmTaskService.getTaskListByIdsReturnWmtaskInfo(wmTask);
         List<Map<String, Object>> wmTaskDetialMap = new ArrayList<>();
 
         if (wmTaskDetialList.size() > 0) {
 
 
-             for (WmTask wmTask1 : wmTaskDetialList) {
-                 Map<String, Object> map = new HashMap<>();
-                 WmTaskType wmTaskTypeTemp1 = wmTaskTypeService.getById(wmTask1.getTaskTypeId());
-                 map.put("taskType", wmTaskTypeTemp1.getTaskTypeName());
-                 DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-                 String strDate2 = dtf2.format(wmTask1.getCreateTime());
-                 map.put("taskTime", strDate2);
- //				map.put("taskUser", sysUserService.getById(wmTask1.getTaskUserId()).getRealname());
-                 map.put("taskUser", sysUserService.getByIdIgnore(wmTask1.getTaskUserId()).getRealname());
-                 map.put("taskTypeId", wmTask1.getTaskTypeId());
-                 map.put("score", wmTask1.getScore());
-                 map.put("taskNum", 1);
+            for (WmTask wmTask1 : wmTaskDetialList) {
+                Map<String, Object> map = new HashMap<>();
+                WmTaskType wmTaskTypeTemp1 = wmTaskTypeService.getById(wmTask1.getTaskTypeId());
+                map.put("taskType", wmTaskTypeTemp1.getTaskTypeName());
+                DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+                String strDate2 = dtf2.format(wmTask1.getCreateTime());
+                map.put("taskTime", strDate2);
+                //				map.put("taskUser", sysUserService.getById(wmTask1.getTaskUserId()).getRealname());
+                map.put("taskUser", sysUserService.getByIdIgnore(wmTask1.getTaskUserId()).getRealname());
+                map.put("taskTypeId", wmTask1.getTaskTypeId());
+                map.put("score", wmTask1.getScore());
+                map.put("taskNum", 1);
 
-                 wmTaskDetialMap.add(map);
-             }
+                wmTaskDetialMap.add(map);
+            }
 
         }
 
-        excelMap.put("rwmxTable", wmTaskDetialMap);//学术推广服务任务明细表格
+        excelMap.put("rwmxTable", wmTaskDetialMap);// 学术推广服务任务明细表格
 
         if (totalMoney > wmScorePackage.getScore()) {
             totalMoney = wmScorePackage.getScore();
         }
 
-        excelMap.put("ryTable", userMap);//人员表格
+        excelMap.put("ryTable", userMap);// 人员表格
         excelMap.put("tMoney", totalMoney);
 
         if (xlsTaskList.size() > 0) {
-            excelMap.put("wt_ent", xlsTaskList.get(0).getDrugEntName());//委托公司
-            excelMap.put("drugEnt", xlsTaskList.get(0).getDrugEntName());//服务药企
+            excelMap.put("wt_ent", xlsTaskList.get(0).getDrugEntName());// 委托公司
+            excelMap.put("drugEnt", xlsTaskList.get(0).getDrugEntName());// 服务药企
             excelMap.put("mxTable", xlsTaskList);
         }
 
@@ -312,7 +314,7 @@ public class ReportExportServiceImpl implements ReportExportService {
             excelMap.put("totalSubmitScore", sum);
             excelMap.put("totalSubmitTaskNum", total);
 
-            excelMap.put("ztTable", wmTaskCount);//学术推广服务整体概况表格
+            excelMap.put("ztTable", wmTaskCount);// 学术推广服务整体概况表格
         }
 
         // 任务小类及对应的任务个数和积分值
@@ -320,8 +322,8 @@ public class ReportExportServiceImpl implements ReportExportService {
 
         // 查询taskType
         List<WmTaskType> taskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
-                .eq(WmTaskType::getTaskTypeLevel, "1")
-                .eq(WmTaskType::getDelFlag, "0")
+                        .eq(WmTaskType::getTaskTypeLevel, "1")
+                        .eq(WmTaskType::getDelFlag, "0")
 //                .eq(WmTaskType::getEnableFlag, "0")
         );
         // taskType通过id分组(key为parentId,value为taskTypeId的set)
@@ -348,7 +350,7 @@ public class ReportExportServiceImpl implements ReportExportService {
         briefTable1List.add(briefTable1TotalParams);
         excelMap.put("briefTable", briefTable1List);
 
-        //WmTaskRule wmTaskRule = wmTaskRuleService.getById(wmScorePackage.getTaskRuleId());
+        // WmTaskRule wmTaskRule = wmTaskRuleService.getById(wmScorePackage.getTaskRuleId());
         String entDate = wmScorePackage.getBelongDate() + "-31";
         try {
             SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
@@ -356,7 +358,7 @@ public class ReportExportServiceImpl implements ReportExportService {
         } catch (Exception ex) {
             entDate = wmScorePackage.getBelongDate() + "-30";
         }
-        //excelMap.put("service_date", wmTaskRule.getRuleMonth() + "-01 至 " + entDate);
+        // excelMap.put("service_date", wmTaskRule.getRuleMonth() + "-01 至 " + entDate);
 
         List<Map<String, Object>> wmTaskZd = wmTaskService.getTaskListByIdsZd(wmTask);
         String minDateStr = null;
@@ -414,7 +416,7 @@ public class ReportExportServiceImpl implements ReportExportService {
 
         excelMap.put("rule_month", monthStr);
 
-        //报告日期
+        // 报告日期
         Map<String, Timestamp> maxMaxTime = wmTaskService.getMaxCreateTime(wmTask);
         System.out.println(maxMaxTime);
         LocalDateTime MaxTime = maxMaxTime.get("MaxTime").toLocalDateTime();
@@ -441,13 +443,13 @@ public class ReportExportServiceImpl implements ReportExportService {
         } else {
             return R.failed("未查询到审核通过的任务");
         }
-        //区分全职兼职学术推广员模版
+        // 区分全职兼职学术推广员模版
         excelMap.put("userType", wmScorePackage.getTypeid());
 
         File f = null;
-        if (wmScorePackage.getPackageType1().equals("1")) {//定额
+        if (wmScorePackage.getPackageType1().equals("1")) {// 定额
             f = ExportReport.main_bulidTemplate1(excelMap, 1, upmsConfig.getBasePath());
-        } else {//定量
+        } else {// 定量
             f = ExportReport.main_bulidTemplate2(excelMap, 1, upmsConfig.getBasePath());
         }
 
@@ -460,7 +462,7 @@ public class ReportExportServiceImpl implements ReportExportService {
 
 
     @Override
-    public R newExportNba(WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException {
+    public R<?> newExportNba(WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException {
 
         wmScorePackage = wmScorePackageService.getById(wmScorePackage.getId());
 
@@ -478,65 +480,63 @@ public class ReportExportServiceImpl implements ReportExportService {
 
         List<WmTask> taskList = wmTaskMapper.selectList(Wrappers.<WmTask>lambdaQuery().in(WmTask::getScorePackageId, idSet)
                 .eq(WmTask::getTaskStatus, 3)
-                .and(item -> item.in(WmTask::getReportDrugApprovalStatus, Arrays.asList(5,6)).eq(WmTask::getReportDrugApprovalOpinion, 1)
-                        .or(item2 -> item2.in(WmTask::getReportOneApprovalStatus, Arrays.asList(5,6)).eq(WmTask::getReportOneApprovalOpinion,1))));
+                .and(item -> item.in(WmTask::getReportDrugApprovalStatus, Arrays.asList(5, 6)).eq(WmTask::getReportDrugApprovalOpinion, 1)
+                        .or(item2 -> item2.in(WmTask::getReportOneApprovalStatus, Arrays.asList(5, 6)).eq(WmTask::getReportOneApprovalOpinion, 1))));
 
-        //更新任务表审批意见
-        WmTask wmTask = new WmTask();
-        wmTask.setDelFlag("0");
-        wmTask.setEnableFlag("0");
-
-        if (null == taskList || taskList.size() <= 0) {
+        if (CollUtil.isEmpty(taskList)) {
             return R.failed("ERROR_未查询到该报告关联的审批通过的任务");
         }
+
+        // 更新任务表审批意见
+        WmTask wmTask = new WmTask();
+        wmTask.setDelFlag(CommonConstants.STATUS_NORMAL);
+        wmTask.setEnableFlag(CommonConstants.STATUS_NORMAL);
         String ids = taskList.stream().map(WmTask::getId).collect(Collectors.joining(","));
         wmTask.setScorePackageId(wmScorePackage.getId());
         wmTask.setId(ids);
-
-
         return exportNba(wmTask, wmScorePackage, deptId, username);
     }
 
     @Override
     public R newExportNbaHistory(WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException {
-        wmScorePackage=wmScorePackageService.getById(wmScorePackage.getId());
-        if(wmScorePackage==null){
+        wmScorePackage = wmScorePackageService.getById(wmScorePackage.getId());
+        if (wmScorePackage == null) {
             return R.failed("未查询到积分包信息");
         }
-        LambdaQueryWrapper<WmTask> queryWrapper=new LambdaQueryWrapper();
+        LambdaQueryWrapper<WmTask> queryWrapper = new LambdaQueryWrapper();
         queryWrapper.eq(WmTask::getScorePackageDrugId, wmScorePackage.getId());
-        queryWrapper.eq(WmTask::getTaskStatus,"3");
-        queryWrapper.eq(WmTask::getDelFlag,"0");
-        queryWrapper.eq(WmTask::getEnableFlag,"0");
-        queryWrapper.eq(WmTask::getRealFlag,"0");
-        List<WmTask> taskList=wmTaskService.list(queryWrapper);
-        //List<WmTask> taskList = wmTaskMapper.selectListByWmTask(wmScorePackage);
-        //更新任务表审批意见
-        WmTask wmTask=new WmTask();
+        queryWrapper.eq(WmTask::getTaskStatus, "3");
+        queryWrapper.eq(WmTask::getDelFlag, "0");
+        queryWrapper.eq(WmTask::getEnableFlag, "0");
+        queryWrapper.eq(WmTask::getRealFlag, "0");
+        List<WmTask> taskList = wmTaskService.list(queryWrapper);
+        // List<WmTask> taskList = wmTaskMapper.selectListByWmTask(wmScorePackage);
+        // 更新任务表审批意见
+        WmTask wmTask = new WmTask();
         wmTask.setDelFlag("0");
         wmTask.setEnableFlag("0");
 
-        if(null==taskList||taskList.size()<=0){
+        if (null == taskList || taskList.size() <= 0) {
             return R.failed("ERROR_未查询到该报告关联的审批通过的任务");
         }
-        String ids = taskList.stream().map(WmTask::getId).collect(Collectors.joining("," ));
+        String ids = taskList.stream().map(WmTask::getId).collect(Collectors.joining(","));
         wmTask.setScorePackageId(wmScorePackage.getId());
-        //wmTask.setId(ids);
-        wmTask.setId("(select id from wm_task where del_flag=0 and real_flag=0 and enable_flag=0 and task_status=3  and score_package_drug_id="+wmScorePackage.getId()+")");
+        // wmTask.setId(ids);
+        wmTask.setId("(select id from wm_task where del_flag=0 and real_flag=0 and enable_flag=0 and task_status=3  and score_package_drug_id=" + wmScorePackage.getId() + ")");
 
-        return exportNba(wmTask,wmScorePackage,deptId,username);//报告汇总
+        return exportNba(wmTask, wmScorePackage, deptId, username);// 报告汇总
     }
 
 
     /**
      * 结算报告--导出汇总报告--学术推广服务报告
      *
-     * @param wmTask
-     * @param wmScorePackage
-     * @return
-     * @throws IOException
+     * @param wmTask         任务
+     * @param wmScorePackage 积分包
+     * @return 导出信息
+     * @throws IOException 异常
      */
-    private R exportNba(WmTask wmTask, WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException {
+    private R<?> exportNba(WmTask wmTask, WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException {
 
         WmTask wmTaskparam = wmTask;
         String packageId = wmTask.getScorePackageId();  // 获取积分包ID
@@ -558,30 +558,25 @@ public class ReportExportServiceImpl implements ReportExportService {
 
         excelMap.put("totalscorePackageScore", wmScorePackage.getScore());
         if (wmScorePackage.getPackageType1().equals("2") || wmScorePackage.getPackageType1().equals("3")) {
-            excelMap.put("totalscorePackageTaskNum", wmScorePackage.getTaskNum() * wmScorePackage.getUserNum());//积分包值任务个数
+            excelMap.put("totalscorePackageTaskNum", wmScorePackage.getTaskNum() * wmScorePackage.getUserNum());// 积分包值任务个数
         }
 
-
         List<Map<String, Object>> wmTaskList = wmTaskService.getTaskListByIdsOld(wmTask);
 
+        // mxTable
+        List<XlsTask> xlsTaskList = new ArrayList<>();
+        int totalMoney = 0;
 
-        List<XlsTask> xlsTaskList = new ArrayList<>();//mxTable
-        Integer totalMoney = 0;
-//		wmTask.setScorePackageId(null);
-//		wmTask.setScorePackageDrugId(null);
-
-        //当前登陆人的机构
+        // 当前登陆人的机构
         SysDept sysDept = sysDeptService.getById(deptId);
 
         Map<String, Object> userMap = new HashMap<>();
 
-        //委托公司(结算企业)
+        // 委托公司(结算企业)
         SysDept drugEnt = sysDeptService.getById(wmScorePackage.getSendPackageDeptId());
-        //WmDaDrugEnt wmDaDrugEnt = wmDaDrugEntService.getById(SecurityUtils.getUser().getDrugEntId());
 
-        //报告公司(申请结算企业)
+        // 报告公司(申请结算企业)
         SysDept applydrugEnt = sysDeptService.getById(wmScorePackage.getDeptId());
-        //WmDaAgent wmDaAgent = wmDaAgentService.getById(wmScorePackage.getLevel1Id());
 
         for (Map<String, Object> wmT : wmTaskList) {
             totalMoney += Integer.parseInt(wmT.get("score") + "");
@@ -591,7 +586,7 @@ public class ReportExportServiceImpl implements ReportExportService {
 
             xlsTask.setDeptName(sysDept.getName());
 
-            //level=2是药企
+            // level=2是药企
             if (sysDept.getLevel() == 2) {
                 xlsTask.setAgentDeptName(applydrugEnt.getName());
             }
@@ -607,14 +602,14 @@ public class ReportExportServiceImpl implements ReportExportService {
             xlsTaskList.add(xlsTask);
 
             String buildKey = wmT.get("realname") + "_" + drugEnt.getName() + "_" + sysDept.getName();
-            //人员表格
+            // 人员表格
             if (userMap.containsKey(buildKey)) {
                 try {
                     userMap.put(buildKey, Integer.parseInt(wmT.get("score") + "") + Integer.parseInt(userMap.get(buildKey) + ""));
                     userMap.put(buildKey + "_total", Integer.parseInt(wmT.get("score_count") + "") + Integer.parseInt(userMap
                             .get(buildKey + "_total") + ""));
 
-                } catch (Exception ex) {
+                } catch (Exception ignored) {
                 }
             } else {
                 userMap.put(buildKey, Integer.parseInt(wmT.get("score") + ""));
@@ -622,23 +617,18 @@ public class ReportExportServiceImpl implements ReportExportService {
             }
         }
 
-//		List<String> list1 = new ArrayList<>();
-//		list1.add(packageId);
-
-        //学术推广服务任务明细表格
+        // 学术推广服务任务明细表格
         List<WmTask> wmTaskDetialList = wmTaskService.getTaskListByIdsReturnWmtaskInfo(wmTask);
         List<Map<String, Object>> wmTaskDetialMap = new ArrayList<>();
 
-        if (wmTaskDetialList.size() > 0) {
-            for (WmTask wmTask1 :
-                    wmTaskDetialList) {
-                Map<String, Object> map = new HashMap<>();
+        if (CollUtil.isNotEmpty(wmTaskDetialList)) {
+            DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+            for (WmTask wmTask1 : wmTaskDetialList) {
+                Map<String, Object> map = new HashMap<>(6);
                 WmTaskType wmTaskTypeTemp1 = wmTaskTypeService.getById(wmTask1.getTaskTypeId());
                 map.put("taskType", wmTaskTypeTemp1.getTaskTypeName());
-                DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
                 String strDate2 = dtf2.format(wmTask1.getCreateTime());
                 map.put("taskTime", strDate2);
-//				map.put("taskUser", sysUserService.getById(wmTask1.getTaskUserId()).getRealname());
                 map.put("taskUser", sysUserService.getByIdIgnore(wmTask1.getTaskUserId()).getRealname());
                 map.put("taskTypeId", wmTask1.getTaskTypeId());
                 map.put("score", wmTask1.getScore());
@@ -649,29 +639,28 @@ public class ReportExportServiceImpl implements ReportExportService {
 
         }
 
-        excelMap.put("rwmxTable", wmTaskDetialMap);//学术推广服务任务明细表格
+        // 学术推广服务任务明细表格
+        excelMap.put("rwmxTable", wmTaskDetialMap);
 
         if (totalMoney > wmScorePackage.getScore()) {
             totalMoney = wmScorePackage.getScore();
         }
 
-        excelMap.put("ryTable", userMap);//人员表格
+        // 人员表格
+        excelMap.put("ryTable", userMap);
         excelMap.put("tMoney", totalMoney);
 
-        if (xlsTaskList.size() > 0) {
-            excelMap.put("wt_ent", xlsTaskList.get(0).getDrugEntName());//委托公司
-            excelMap.put("drugEnt", xlsTaskList.get(0).getDrugEntName());//服务药企
+        if (CollUtil.isNotEmpty(xlsTaskList)) {
+            excelMap.put("wt_ent", xlsTaskList.get(0).getDrugEntName());// 委托公司
+            excelMap.put("drugEnt", xlsTaskList.get(0).getDrugEntName());// 服务药企
             excelMap.put("mxTable", xlsTaskList);
         }
 
-        List<Map<String, String>> ztTableList = new ArrayList<>();
-        Map<String, String> ztMap = new HashMap<>();
         List<Map<String, Object>> wmTaskCount = wmTaskService.getTaskListByIdsCount(wmTask);
-        if (wmTaskCount.size() > 0) {
-            Integer total = 0;
-            Integer sum = 0;
-            for (Map<String, Object> map :
-                    wmTaskCount) {
+        if (CollUtil.isNotEmpty(wmTaskCount)) {
+            int total = 0;
+            int sum = 0;
+            for (Map<String, Object> map : wmTaskCount) {
                 if (null != map.get("taskCount")) {
                     total += Integer.parseInt(map.get("taskCount") + "");
                 }
@@ -690,7 +679,8 @@ public class ReportExportServiceImpl implements ReportExportService {
             excelMap.put("totalSubmitScore", sum);
             excelMap.put("totalSubmitTaskNum", total);
 
-            excelMap.put("ztTable", wmTaskCount);//学术推广服务整体概况表格
+            // 学术推广服务整体概况表格
+            excelMap.put("ztTable", wmTaskCount);
         }
 
         // 任务小类及对应的任务个数和积分值
@@ -699,76 +689,63 @@ public class ReportExportServiceImpl implements ReportExportService {
         // 查询taskType
         List<WmTaskType> taskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
                 .eq(WmTaskType::getTaskTypeLevel, "1")
-                .eq(WmTaskType::getDelFlag, "0")
-//                .eq(WmTaskType::getEnableFlag, "0")
+                .eq(WmTaskType::getDelFlag, CommonConstants.STATUS_NORMAL)
         );
+
         // taskType通过id分组(key为parentId,value为taskTypeId的set)
-        Map<String, String> taskTypeIdMap = taskTypeList.stream()
-                .collect(Collectors.toMap(WmTaskType::getId, WmTaskType::getTaskTypeName));
+        Map<String, String> taskTypeIdMap = taskTypeList.stream().collect(Collectors.toMap(WmTaskType::getId, WmTaskType::getTaskTypeName));
 
         // task通过taskTypeId分组
-        Map<String, List<WmTask>> taskTypeMap = taskList.stream()
-                .collect(Collectors.groupingBy(WmTask::getTaskTypeId, Collectors.toList()));
+        Map<String, List<WmTask>> taskTypeMap = taskList.stream().collect(Collectors.groupingBy(WmTask::getTaskTypeId, Collectors.toList()));
 
         // 封装brief table1数据(统计每个小类任务的积分、任务数)
-        List<Map<String, Object>> briefTable1List = new ArrayList<>();
+        List<Map<String, Object>> briefTable1List = new ArrayList<>(taskTypeMap.size());
         taskTypeMap.forEach((taskTypeId, wmTasks) -> {
-            Map<String, Object> briefTable1Params = new HashMap<>();
+            Map<String, Object> briefTable1Params = new HashMap<>(3);
             briefTable1Params.put("taskTypeName", taskTypeIdMap.get(taskTypeId));
             briefTable1Params.put("taskCount", wmTasks.size());
             briefTable1Params.put("taskSum", wmTasks.stream().map(WmTask::getScore).reduce(0, Integer::sum));
             briefTable1List.add(briefTable1Params);
         });
-        Map<String, Object> briefTable1TotalParams = new HashMap<>();
+
+        Map<String, Object> briefTable1TotalParams = new HashMap<>(3);
         briefTable1TotalParams.put("taskTypeName", "合计");
         briefTable1TotalParams.put("taskCount", taskList.size());
         briefTable1TotalParams.put("taskSum", taskList.stream().map(WmTask::getScore).reduce(0, Integer::sum));
         briefTable1List.add(briefTable1TotalParams);
         excelMap.put("briefTable", briefTable1List);
 
-        //WmTaskRule wmTaskRule = wmTaskRuleService.getById(wmScorePackage.getTaskRuleId());
         String entDate = wmScorePackage.getBelongDate() + "-31";
+
         try {
             SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
             format.parse(entDate);
-        } catch (Exception ex) {
-            entDate = wmScorePackage.getBelongDate() + "-30";
+        } catch (Exception ignored) {
         }
-        //excelMap.put("service_date", wmTaskRule.getRuleMonth() + "-01 至 " + entDate);
 
         List<Map<String, Object>> wmTaskZd = wmTaskService.getTaskListByIdsZd(wmTask);
         String minDateStr = null;
         String maxDateStr = null;
         // 服务周期取 积分包领取审核通过时间~管理员审核积分包时最后审核通过的时间
         Map<String, String> serviceTimeRangeMap = wmScorePackageStatusService.getServiceTimeRange(wmScorePackage);
-        if (null != wmTaskZd) {
-            if (wmTaskZd.size() > 0) {
-                Map<String, Object> stringMap = wmTaskZd.get(0);
-                if (null == stringMap) {
-                    return R.failed("未找到审核通过的任务");
-                }
-                excelMap.put("service_date", serviceTimeRangeMap.get("service_start_date") + "至" + serviceTimeRangeMap.get("service_end_date"));
-//                excelMap.put("service_date", stringMap.get("mindate") + "至" + stringMap.get("maxdate"));
+        if (CollUtil.isNotEmpty(wmTaskZd)) {
+            Map<String, Object> stringMap = wmTaskZd.get(0);
+            if (null == stringMap) {
+                return R.failed("未找到审核通过的任务");
+            }
+            excelMap.put("service_date", serviceTimeRangeMap.get("service_start_date") + "至" + serviceTimeRangeMap.get("service_end_date"));
 
-                try {
-                    minDateStr = serviceTimeRangeMap.get("service_start_date").substring(5, 7);
-                    maxDateStr = serviceTimeRangeMap.get("service_end_date").substring(5, 7);
+            try {
+                minDateStr = serviceTimeRangeMap.get("service_start_date").substring(5, 7);
+                maxDateStr = serviceTimeRangeMap.get("service_end_date").substring(5, 7);
 
-                } catch (Exception ex) {
-                    ex.printStackTrace();
-                }
+            } catch (Exception ignored) {
             }
         }
 
-        if (null != applydrugEnt) {
-            excelMap.put("report_ent", applydrugEnt.getName());
-        } else {
-            excelMap.put("report_ent", "");
-        }
-
+        excelMap.put("report_ent", null != applydrugEnt ? applydrugEnt.getName() : "");
 
         String ruleDate = wmScorePackage.getBelongDate();
-
         excelMap.put("rule_year", ruleDate.substring(0, 4));
 
         String monthStr = ruleDate.substring(5, 7);
@@ -786,69 +763,43 @@ public class ReportExportServiceImpl implements ReportExportService {
             }
         } else if (null != minDateStr) {
             monthStr = minDateStr;
-        } else if (null != maxDateStr) {
-            monthStr = maxDateStr;
         }
 
         excelMap.put("rule_month", monthStr);
 
-        //报告日期
+        // 报告日期
         Map<String, Timestamp> maxMaxTime = wmTaskService.getMaxCreateTime(wmTask);
         System.out.println(maxMaxTime);
         LocalDateTime MaxTime = maxMaxTime.get("MaxTime").toLocalDateTime();
         excelMap.put("year", MaxTime.getYear() + "");
-        Integer month = MaxTime.getMonthValue();
-        if (month < 10) {
-            excelMap.put("month", "0" + MaxTime.getMonthValue() + "");
-        } else {
-            excelMap.put("month", MaxTime.getMonthValue() + "");
-        }
-        Integer day = MaxTime.getDayOfMonth();
-        if (day < 10) {
-            excelMap.put("day", "0" + MaxTime.getDayOfMonth() + "");
-        } else {
-            excelMap.put("day", MaxTime.getDayOfMonth() + "");
-        }
-
+        excelMap.put("month", MaxTime.getMonthValue() < 10 ? "0" + MaxTime.getMonthValue() : MaxTime.getMonthValue() + "");
+        excelMap.put("day", MaxTime.getDayOfMonth() < 10 ? "0" + MaxTime.getDayOfMonth() : MaxTime.getDayOfMonth() + "");
         excelMap.put("tMoney", totalMoney);
         excelMap.put("scoreId", wmScorePackage.getScorePackageName());
 
         List<Map<String, Object>> infoList = exportZbInfo(wmTaskparam);
-        if (null != infoList && infoList.size() > 0) {
-            excelMap.put("infoList", infoList);
-        } else {
+
+        if (CollUtil.isEmpty(infoList)) {
             return R.failed("未查询到审核通过的任务");
         }
-        //区分全职兼职学术推广员模版
-        excelMap.put("userType", wmScorePackage.getTypeid());
 
-        File f = null;
-        if (wmScorePackage.getPackageType1().equals("1")) {//定额
-            f = ExportReport.main_bulidTemplate1(excelMap, 1, upmsConfig.getBasePath());
-        } else {//定量
-            f = ExportReport.main_bulidTemplate2(excelMap, 1, upmsConfig.getBasePath());
-        }
+        excelMap.put("infoList", infoList);
+        // 区分全职兼职学术推广员模版
+        excelMap.put("userType", wmScorePackage.getTypeid());
 
+        // 1是定额,否则是定量
+        File f = "1".equals(wmScorePackage.getPackageType1()) ? ExportReport.main_bulidTemplate1(excelMap, 1, upmsConfig.getBasePath()) : ExportReport.main_bulidTemplate2(excelMap, 1, upmsConfig.getBasePath());
         FileInputStream input = new FileInputStream(f);
-
-//        MultipartFile multipartFile = new MockMultipartFile("学术推广服务报告(" + packageId + ")", "学术推广服务报告(" + packageId + ").doc", "text/plain", IOUtils
-//                .toByteArray(input));
-//        return sysFileService.uploadFileAllUrlRealName(multipartFile, username);
-
-        SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
-        String idStr = format.format(new Date());
-        String fileName =  String.format("学术推广服务报告(%s)-%s.%s", packageId, idStr, FileUtil.extName(f.getName()));
-
-        R r = sysFileService.uploadFileAllUrlRealName(fileName, input);
-
+        String fileName = String.format("学术推广服务报告(%s)-%s.%s", packageId, DateTimeFormatter.ofPattern(DatePattern.PURE_DATETIME_PATTERN).format(LocalDateTime.now()), FileUtil.extName(f.getName()));
+        R<?> r = sysFileService.uploadFileAllUrlRealName(fileName, input);
         input.close();
-
         return r;
     }
 
 
     /**
      * 个人承接按积分制
+     *
      * @param wmTask
      * @param username
      * @return
@@ -906,7 +857,7 @@ public class ReportExportServiceImpl implements ReportExportService {
         if (null != infoList && infoList.size() > 0) {
             excelMap.put("infoList", infoList);
         }
-        //区分全职兼职学术推广员模版
+        // 区分全职兼职学术推广员模版
         excelMap.put("userType", wmScorePackage1.getTypeid());
         List<String> extIds = wmTask.getExtIds();
         List<WmScorePackage> wmScorePackages = wmScorePackageService.listByIds(extIds);
@@ -914,9 +865,9 @@ public class ReportExportServiceImpl implements ReportExportService {
         excelMap.put("scoreId", StrUtil.isBlank(scoreIds) ? wmScorePackage1.getScorePackageName() : scoreIds);
 
         File f = null;
-        if (wmScorePackage1.getPackageType1().equals("1")) {//定额
+        if (wmScorePackage1.getPackageType1().equals("1")) {// 定额
             f = ExportReport.main_bulidTemplate1(excelMap, 2, upmsConfig.getBasePath());
-        } else {//定量
+        } else {// 定量
             f = ExportReport.main_bulidTemplate2(excelMap, 2, upmsConfig.getBasePath());
         }
 
@@ -1055,7 +1006,7 @@ public class ReportExportServiceImpl implements ReportExportService {
                 excelMap.put("totalscorePackageScore", totalScorePackage);
                 if (wmScorePackage1.getPackageType1().equals("2") || wmScorePackage1.getPackageType1().equals("3")) {
                     if (!wmScorePackage1.getPackageType2().equals("2")) {
-                        excelMap.put("totalscorePackageTaskNum", wmScorePackage1.getTaskNum() * wmScorePackage1.getUserNum());//积分包值任务个数
+                        excelMap.put("totalscorePackageTaskNum", wmScorePackage1.getTaskNum() * wmScorePackage1.getUserNum());// 积分包值任务个数
                     }
                 }
 
@@ -1065,7 +1016,7 @@ public class ReportExportServiceImpl implements ReportExportService {
                 if (CollUtil.isNotEmpty(tasks)) {
                     int sum = tasks.stream()
 //                            .filter(t -> "3".equals( t.getTaskStatus()) && WmTask.TaskSettleStatusEnum.SETTLED.getCode().equals(t.getTaskSettleStatus()))
-                            .filter(t -> "3".equals( t.getTaskStatus()))
+                            .filter(t -> "3".equals(t.getTaskStatus()))
                             .mapToInt(WmTask::getScore).sum();
                     excelMap.put("submitAmount", sum);
                 }
@@ -1125,8 +1076,8 @@ public class ReportExportServiceImpl implements ReportExportService {
 
         // 查询taskType
         List<WmTaskType> taskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
-                .eq(WmTaskType::getTaskTypeLevel, "1")
-                .eq(WmTaskType::getDelFlag, "0")
+                        .eq(WmTaskType::getTaskTypeLevel, "1")
+                        .eq(WmTaskType::getDelFlag, "0")
 //                .eq(WmTaskType::getEnableFlag, "0")
         );
         // taskType通过id分组(key为parentId,value为taskTypeId的set)
@@ -1279,9 +1230,9 @@ public class ReportExportServiceImpl implements ReportExportService {
                     e.printStackTrace();
                 }
                 String taskUrl = upmsConfig.getApiUrl() + "/h5/#/pages/task/task-detail/index?id=" + task.getId();
-                log.warn("获取任务图片: [{}]:[{}]", task.getId(), taskUrl );
-                BufferedImage image = Html2ImageByJsWrapper.renderHtml2Image(taskUrl , upmsConfig.getServerUrl());
-                if (Objects.isNull(image)){
+                log.warn("获取任务图片: [{}]:[{}]", task.getId(), taskUrl);
+                BufferedImage image = Html2ImageByJsWrapper.renderHtml2Image(taskUrl, upmsConfig.getServerUrl());
+                if (Objects.isNull(image)) {
                     log.error("获取图片信息失败");
                     continue;
                 }
@@ -1292,115 +1243,115 @@ public class ReportExportServiceImpl implements ReportExportService {
 
                 WmTaskType taskType = wmTaskTypeService.getById(wmTask1.getTaskTypeId());
                 Map<String, Object> map = new HashMap<>();
-                 map.put("taskIndex", num++);
-                 map.put("taskType", taskType.getTaskTypeName());
-                 DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-                 String strDate2 = dtf2.format(wmTask1.getCreateTime());
-                 map.put("taskTime", strDate2);
-                 map.put("taskUser", sysUserService.getByIdIgnore(wmTask1.getTaskUserId()).getRealname());
+                map.put("taskIndex", num++);
+                map.put("taskType", taskType.getTaskTypeName());
+                DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+                String strDate2 = dtf2.format(wmTask1.getCreateTime());
+                map.put("taskTime", strDate2);
+                map.put("taskUser", sysUserService.getByIdIgnore(wmTask1.getTaskUserId()).getRealname());
 //                 WmTaskType wmTaskTypeTemp1 = wmTaskTypeService.getById(wmTask1.getTaskTypeId());
-                 map.put("taskTypeId", wmTask1.getTaskTypeId());
-                 map.put("taskNumber", wmTask1.getTaskNumber());
-                 // 通过配置tasktype的updateUser/createUser来控制截图大小(原有逻辑)
-                 map.put("imgWidth", taskType.getUpdateUser());
-                 map.put("imgHeight", taskType.getCreateUser());
+                map.put("taskTypeId", wmTask1.getTaskTypeId());
+                map.put("taskNumber", wmTask1.getTaskNumber());
+                // 通过配置tasktype的updateUser/createUser来控制截图大小(原有逻辑)
+                map.put("imgWidth", taskType.getUpdateUser());
+                map.put("imgHeight", taskType.getCreateUser());
 
                 String imgUrl = wmTask1.getTaskInfoImg();
                 map.put("taskBaseImg", StrUtil.isNotBlank(imgUrl) ? imgUrl : imgs.get(wmTask1.getId()));
 
-                 if (supportedTaskTypeIds.contains(wmTask1.getTaskTypeId())) {
-                     WmTaskContent wmTaskContent = wmTaskContentService.getById(wmTask1.getTaskContentId());
-                     if (null != wmTaskContent) {
-                         List<String> stringList = new ArrayList<>();
-                         WmTaskContentConfig queryWmTaskContentConfig = new WmTaskContentConfig();
-                         if ("39".equals(wmTask1.getTaskTypeId()) || "40".equals(wmTask1.getTaskTypeId()) || "41".equals(wmTask1.getTaskTypeId())) {
-                             // 39 应收账款回款-A类、40 应收账款回款-B类、41 应收账款回款-C类 这里需要统一设置为39(由于三种类型公用一个页面所以WmTaskContentConfig只保存了39的配置字段)
+                if (supportedTaskTypeIds.contains(wmTask1.getTaskTypeId())) {
+                    WmTaskContent wmTaskContent = wmTaskContentService.getById(wmTask1.getTaskContentId());
+                    if (null != wmTaskContent) {
+                        List<String> stringList = new ArrayList<>();
+                        WmTaskContentConfig queryWmTaskContentConfig = new WmTaskContentConfig();
+                        if ("39".equals(wmTask1.getTaskTypeId()) || "40".equals(wmTask1.getTaskTypeId()) || "41".equals(wmTask1.getTaskTypeId())) {
+                            // 39 应收账款回款-A类、40 应收账款回款-B类、41 应收账款回款-C类 这里需要统一设置为39(由于三种类型公用一个页面所以WmTaskContentConfig只保存了39的配置字段)
                             queryWmTaskContentConfig.setTaskTypeId("39");
-                         } else if ("42".equals(wmTask1.getTaskTypeId()) || "43".equals(wmTask1.getTaskTypeId()) || "44".equals(wmTask1.getTaskTypeId())) {
-                             // 手术跟台-一级/手术跟台-二级/手术跟台-三级任务类型 这里需要统一设置为42(由于三种类型公用一个页面所以WmTaskContentConfig只保存了42的配置字段)
-                             queryWmTaskContentConfig.setTaskTypeId("42");
-                         } else if ("14".equals(wmTask1.getTaskTypeId())) {
-                             // 库存信息收集下的 库存盘点-中药颗粒剂、库存信息收集-首次 需要回显对应的详情字段(对于这几个任务类型这里的wmTask1的taskType实际存的都是14,所以需要转换下)
-                             queryWmTaskContentConfig.setTaskTypeId(wmTaskContent.getTemp30());
-                         } else if ("47".equals(wmTask1.getTaskTypeId()) || "48".equals(wmTask1.getTaskTypeId())
-                                 || "49".equals(wmTask1.getTaskTypeId()) || "50".equals(wmTask1.getTaskTypeId())) {
-                             // 库存调研、竞品调研、培训、使用情况调查
-                             queryWmTaskContentConfig.setTaskTypeId("47");
-                         } else if ("51".equals(wmTask1.getTaskTypeId()) || "52".equals(wmTask1.getTaskTypeId())
-                                 || "53".equals(wmTask1.getTaskTypeId())) {
-                             // 信用管理A/B/C
-                             queryWmTaskContentConfig.setTaskTypeId("51");
-                         } else if ("56".equals(wmTask1.getTaskTypeId())) {
-                             // 首营管理-诊所/药店
-                             queryWmTaskContentConfig.setTaskTypeId(wmTaskContent.getTemp3());
-                         } else {
-                             queryWmTaskContentConfig.setTaskTypeId(wmTask1.getTaskTypeId());
-                         }
-                         QueryWrapper<WmTaskContentConfig> queryWrapper = Wrappers.query(queryWmTaskContentConfig);
-                         // 图片和签名都要导出
-                         queryWrapper.lambda().in(WmTaskContentConfig::getTaskFiledType, "img", "sign");
-                         List<WmTaskContentConfig> wmTaskContentConfigList = wmTaskContentConfigService.list(queryWrapper);
-                         if (wmTaskContentConfigList.size() > 0) {
-                             for (WmTaskContentConfig wmt : wmTaskContentConfigList) {
-                                 String fileName = wmt.getTaskFiledKey();
-                                 String imgsStr = getFieldValueByFieldName(fileName, wmTaskContent);
-                                 // 图片的数据格式是这样的 /admin/sys-file/wmkj/237ea87e43cc463ba4aaa295e2a28e24.png;1,/admin/sys-file/wmkj/fd7c4cd56d6748dea18ea57c809e464c.jpg
-                                 List<String> imgList = StrUtil.splitTrim(imgsStr, ",").stream()
-                                         .filter(StrUtil::isNotBlank)
-                                         .map(s -> s.split(";")[0]).collect(Collectors.toList());
-                                 stringList.addAll(imgList);
-                             }
-                         }
-
-                         if (stringList.size() > 0) {
-                             map.put("imgList", stringList);
-                         }
-
-                         // 企业任务类型-回显文件地址处理
-                         List<WmTaskContentConfig> fileurlTaskContentConfigList =
-                                 wmTaskContentConfigService.list(Wrappers.<WmTaskContentConfig>lambdaQuery()
-                                         .eq(WmTaskContentConfig::getTaskTypeId, wmTask1.getTaskTypeId())
-                                         .eq(WmTaskContentConfig::getTaskFiledType, "fileurl"));
-                         if (CollUtil.isNotEmpty(fileurlTaskContentConfigList)) {
-                             List<Map<String, String>> fileUrlList = new ArrayList<>();
-                             for (WmTaskContentConfig wmt : fileurlTaskContentConfigList) {
-                                 String fileName = wmt.getTaskFiledKey();
-                                 String taskFiledValue = wmt.getTaskFiledValue();
-                                 String fileUrlStr = getFieldValueByFieldName(fileName, wmTaskContent);
-
-                                 HashMap<String, String> fileUrlMap = new HashMap<>();
-                                 if (JSONUtil.isJsonArray(fileUrlStr)) {
-                                     List<String> fileUrls = new ArrayList<>();
-                                     JSONArray jsonArray = JSONUtil.parseArray(fileUrlStr);
-                                     jsonArray.jsonIter().forEach(jsonObject -> {
-                                         String url = jsonObject.getStr("url");
-                                         if (!StrUtil.startWith(url, "http")) {
-                                             url = upmsConfig.getClientUrl() + url;
-                                         }
-                                         fileUrls.add(url);
-                                     });
-                                     fileUrlMap.put("fileUrl",
-                                             String.format("%s: %s", taskFiledValue, String.join(",", fileUrls)));
-                                 } else {
-                                     fileUrlMap.put("fileUrl", String.format("%s: %s", taskFiledValue, fileUrlStr));
-                                 }
-                                 fileUrlList.add(fileUrlMap);
-                             }
-                             map.put("fileUrlList", fileUrlList);
-                         }
-
-                         // 问卷任务类型-回显答题结果
-                         if ("801".equals(wmTask1.getTaskTypeId())) {
-                             this.taskType801Detail(wmTaskContent, map);
-                             // 不显示截图
-                             map.put("imgList", Collections.emptyList());
-                             map.put("taskBaseImg", null);
-                         }
-                     }
-                 }
-
-                 infoList.add(map);
-             }
+                        } else if ("42".equals(wmTask1.getTaskTypeId()) || "43".equals(wmTask1.getTaskTypeId()) || "44".equals(wmTask1.getTaskTypeId())) {
+                            // 手术跟台-一级/手术跟台-二级/手术跟台-三级任务类型 这里需要统一设置为42(由于三种类型公用一个页面所以WmTaskContentConfig只保存了42的配置字段)
+                            queryWmTaskContentConfig.setTaskTypeId("42");
+                        } else if ("14".equals(wmTask1.getTaskTypeId())) {
+                            // 库存信息收集下的 库存盘点-中药颗粒剂、库存信息收集-首次 需要回显对应的详情字段(对于这几个任务类型这里的wmTask1的taskType实际存的都是14,所以需要转换下)
+                            queryWmTaskContentConfig.setTaskTypeId(wmTaskContent.getTemp30());
+                        } else if ("47".equals(wmTask1.getTaskTypeId()) || "48".equals(wmTask1.getTaskTypeId())
+                                || "49".equals(wmTask1.getTaskTypeId()) || "50".equals(wmTask1.getTaskTypeId())) {
+                            // 库存调研、竞品调研、培训、使用情况调查
+                            queryWmTaskContentConfig.setTaskTypeId("47");
+                        } else if ("51".equals(wmTask1.getTaskTypeId()) || "52".equals(wmTask1.getTaskTypeId())
+                                || "53".equals(wmTask1.getTaskTypeId())) {
+                            // 信用管理A/B/C
+                            queryWmTaskContentConfig.setTaskTypeId("51");
+                        } else if ("56".equals(wmTask1.getTaskTypeId())) {
+                            // 首营管理-诊所/药店
+                            queryWmTaskContentConfig.setTaskTypeId(wmTaskContent.getTemp3());
+                        } else {
+                            queryWmTaskContentConfig.setTaskTypeId(wmTask1.getTaskTypeId());
+                        }
+                        QueryWrapper<WmTaskContentConfig> queryWrapper = Wrappers.query(queryWmTaskContentConfig);
+                        // 图片和签名都要导出
+                        queryWrapper.lambda().in(WmTaskContentConfig::getTaskFiledType, "img", "sign");
+                        List<WmTaskContentConfig> wmTaskContentConfigList = wmTaskContentConfigService.list(queryWrapper);
+                        if (wmTaskContentConfigList.size() > 0) {
+                            for (WmTaskContentConfig wmt : wmTaskContentConfigList) {
+                                String fileName = wmt.getTaskFiledKey();
+                                String imgsStr = getFieldValueByFieldName(fileName, wmTaskContent);
+                                // 图片的数据格式是这样的 /admin/sys-file/wmkj/237ea87e43cc463ba4aaa295e2a28e24.png;1,/admin/sys-file/wmkj/fd7c4cd56d6748dea18ea57c809e464c.jpg
+                                List<String> imgList = StrUtil.splitTrim(imgsStr, ",").stream()
+                                        .filter(StrUtil::isNotBlank)
+                                        .map(s -> s.split(";")[0]).collect(Collectors.toList());
+                                stringList.addAll(imgList);
+                            }
+                        }
+
+                        if (stringList.size() > 0) {
+                            map.put("imgList", stringList);
+                        }
+
+                        // 企业任务类型-回显文件地址处理
+                        List<WmTaskContentConfig> fileurlTaskContentConfigList =
+                                wmTaskContentConfigService.list(Wrappers.<WmTaskContentConfig>lambdaQuery()
+                                        .eq(WmTaskContentConfig::getTaskTypeId, wmTask1.getTaskTypeId())
+                                        .eq(WmTaskContentConfig::getTaskFiledType, "fileurl"));
+                        if (CollUtil.isNotEmpty(fileurlTaskContentConfigList)) {
+                            List<Map<String, String>> fileUrlList = new ArrayList<>();
+                            for (WmTaskContentConfig wmt : fileurlTaskContentConfigList) {
+                                String fileName = wmt.getTaskFiledKey();
+                                String taskFiledValue = wmt.getTaskFiledValue();
+                                String fileUrlStr = getFieldValueByFieldName(fileName, wmTaskContent);
+
+                                HashMap<String, String> fileUrlMap = new HashMap<>();
+                                if (JSONUtil.isJsonArray(fileUrlStr)) {
+                                    List<String> fileUrls = new ArrayList<>();
+                                    JSONArray jsonArray = JSONUtil.parseArray(fileUrlStr);
+                                    jsonArray.jsonIter().forEach(jsonObject -> {
+                                        String url = jsonObject.getStr("url");
+                                        if (!StrUtil.startWith(url, "http")) {
+                                            url = upmsConfig.getClientUrl() + url;
+                                        }
+                                        fileUrls.add(url);
+                                    });
+                                    fileUrlMap.put("fileUrl",
+                                            String.format("%s: %s", taskFiledValue, String.join(",", fileUrls)));
+                                } else {
+                                    fileUrlMap.put("fileUrl", String.format("%s: %s", taskFiledValue, fileUrlStr));
+                                }
+                                fileUrlList.add(fileUrlMap);
+                            }
+                            map.put("fileUrlList", fileUrlList);
+                        }
+
+                        // 问卷任务类型-回显答题结果
+                        if ("801".equals(wmTask1.getTaskTypeId())) {
+                            this.taskType801Detail(wmTaskContent, map);
+                            // 不显示截图
+                            map.put("imgList", Collections.emptyList());
+                            map.put("taskBaseImg", null);
+                        }
+                    }
+                }
+
+                infoList.add(map);
+            }
 
 
         }
@@ -1460,7 +1411,7 @@ public class ReportExportServiceImpl implements ReportExportService {
     public String getFieldValueByFieldName(String fieldName, Object object) {
         try {
             Field field = object.getClass().getDeclaredField(fieldName);
-            //对private的属性的访问
+            // 对private的属性的访问
             field.setAccessible(true);
             return field.get(object) + "";
         } catch (Exception e) {

+ 0 - 527
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/impl/ReportReviewExportForGuangshengtangServiceImpl.java

@@ -1,527 +0,0 @@
-package com.qunzhixinxi.hnqz.report.service.impl;
-
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.map.MapUtil;
-import cn.hutool.core.util.ArrayUtil;
-import cn.hutool.core.util.StrUtil;
-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.deepoove.poi.data.MiniTableRenderData;
-import com.deepoove.poi.data.RowRenderData;
-import com.deepoove.poi.data.TextRenderData;
-import com.deepoove.poi.data.style.TableStyle;
-import com.google.common.base.Splitter;
-import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
-import com.qunzhixinxi.hnqz.report.config.UpmsConfig;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEnt;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmReport;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskContent;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskContentConfig;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmUserSign;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmUserSignDetail;
-import com.qunzhixinxi.hnqz.admin.api.entity.XlsTask;
-import com.qunzhixinxi.hnqz.admin.api.constant.enums.ReportTypeEnum;
-import com.qunzhixinxi.hnqz.report.service.ReportExportService;
-import com.qunzhixinxi.hnqz.report.service.SysDeptService;
-import com.qunzhixinxi.hnqz.report.service.SysFileService;
-import com.qunzhixinxi.hnqz.report.service.SysUserService;
-import com.qunzhixinxi.hnqz.report.service.WmDaDrugEntDrugtableService;
-import com.qunzhixinxi.hnqz.report.service.WmDaDrugEntService;
-import com.qunzhixinxi.hnqz.report.service.WmScorePackageService;
-import com.qunzhixinxi.hnqz.report.service.WmScorePackageStatusService;
-import com.qunzhixinxi.hnqz.report.service.WmTaskContentConfigService;
-import com.qunzhixinxi.hnqz.report.service.WmTaskContentService;
-import com.qunzhixinxi.hnqz.report.service.WmTaskService;
-import com.qunzhixinxi.hnqz.report.service.WmTaskTypeService;
-import com.qunzhixinxi.hnqz.report.service.WmUserSignService;
-import com.qunzhixinxi.hnqz.report.util.ExportReport;
-import com.qunzhixinxi.hnqz.report.util.Html2ImageByJsWrapper;
-import com.qunzhixinxi.hnqz.report.util.OsEnvUtils;
-import com.qunzhixinxi.hnqz.common.core.util.R;
-import lombok.AllArgsConstructor;
-import org.apache.commons.io.IOUtils;
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.STJc;
-import org.springframework.mock.web.MockMultipartFile;
-import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.lang.reflect.Field;
-import java.math.BigDecimal;
-import java.sql.Timestamp;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-
-/**
- * <p>
- * 报告管理 服务实现类
- * </p>
- *
- * @author hnqz
- * @since 2018-01-20
- */
-@Service("ReportReviewExportForGuangshengtangServiceImpl")
-@AllArgsConstructor
-public class ReportReviewExportForGuangshengtangServiceImpl implements ReportExportService {
-
-    private final WmTaskService wmTaskService;
-    private final WmScorePackageService wmScorePackageService;
-    private final UpmsConfig upmsConfig;
-    private final SysFileService sysFileService;
-    private final WmDaDrugEntService wmDaDrugEntService;
-    private final WmTaskTypeService wmTaskTypeService;
-    private final SysUserService sysUserService;
-    private final SysDeptService sysDeptService;
-    private final WmTaskContentService wmTaskContentService;
-    private final WmTaskContentConfigService wmTaskContentConfigService;
-    private final WmDaDrugEntDrugtableService wmDaDrugEntDrugtableService;
-    private final WmUserSignService wmUserSignService;
-    private final ReportReviewExportServiceImpl reportReviewExportService;
-    private final ReportExportService reportExportService;
-
-    /**
-     * 个人承接按积分制-单独用于广生堂
-     *
-     * @param wmTask
-     * @param username
-     * @return
-     * @throws IOException
-     */
-    @Override
-    public R newExportZb(WmTask wmTask, String username) throws IOException {
-        String packageId = wmTask.getScorePackageDrugId();
-        if (null == packageId) {
-            return R.failed("积分包ID不能为空");
-        }
-        LambdaQueryWrapper<WmTask> queryWrapper = new LambdaQueryWrapper();
-        queryWrapper.in(WmTask::getScorePackageId, Arrays.asList(packageId.split(",")));
-        if (StrUtil.isNotBlank(wmTask.getTaskStatus())) {
-            queryWrapper.eq(WmTask::getTaskStatus, wmTask.getTaskStatus());
-        } else {
-            queryWrapper.eq(WmTask::getTaskStatus, "3");
-        }
-        queryWrapper.eq(WmTask::getDelFlag, "0");
-        queryWrapper.eq(WmTask::getEnableFlag, "0");
-        queryWrapper.eq(WmTask::getRealFlag, "0");
-        List<WmTask> taskList = wmTaskService.list(queryWrapper);
-        if (taskList.isEmpty()) {
-            return R.failed("未查询到待审核的任务");
-        }
-        String ids = taskList.stream().map(WmTask::getId).collect(Collectors.joining(","));
-        wmTask.setScorePackageId(packageId);
-        wmTask.setId(ids);
-        return exportZbForGuangshengtang(wmTask, username);
-    }
-
-    /**
-     * 个人报告导出--众包代表业绩报告-单独用于广生堂
-     *
-     * @param wmTask
-     * @return
-     * @throws IOException
-     */
-    private R exportZbForGuangshengtang(WmTask wmTask, String username) throws IOException {
-
-        WmTask wmTaskparam = wmTask;
-        String packageId = wmTask.getScorePackageId();  // 获取积分包ID
-        if (null == packageId) {
-            packageId = wmTask.getScorePackageDrugId();
-        }
-
-        if (null == packageId) {
-            return R.failed("积分包ID不能为空");
-        }
-
-        WmScorePackage wmScorePackage1 = wmScorePackageService.getById(packageId);
-
-        Map<String, Object> excelMap = exportZbCommonForGuangshengtang(wmTask);
-        if (null == excelMap) {
-            return R.failed("未查询到待审核的任务");
-        }
-
-        List<Map<String, Object>> infoList = exportZbInfo(wmTaskparam);
-        if (null != infoList && infoList.size() > 0) {
-            excelMap.put("infoList", infoList);
-        }
-        //区分全职兼职学术推广员模版
-        excelMap.put("userType", wmScorePackage1.getTypeid());
-//        excelMap.put("scoreId", wmScorePackage1.getScorePackageName());
-        List<String> extIds = wmTask.getExtIds();
-        List<WmScorePackage> wmScorePackages = wmScorePackageService.listByIds(extIds);
-        String scoreIds = wmScorePackages.stream().map(WmScorePackage::getScorePackageName).collect(Collectors.joining(","));
-        excelMap.put("scoreId", StrUtil.isBlank(scoreIds) ? wmScorePackage1.getScorePackageName() : scoreIds);
-
-        if (ArrayUtil.isNotEmpty(wmScorePackage1.getDrugProducerList())) {
-            List<String> drugList = wmDaDrugEntDrugtableService.listDrugByDrugEntName(wmScorePackage1.getDrugProducerList());
-            excelMap.put("drugList", String.join(",", drugList));
-        }
-
-        File f = null;
-        if (wmScorePackage1.getPackageType1().equals("1")) {//定额
-            String templateName = "";
-            if(StrUtil.equalsAny(wmScorePackage1.getTypeid(), "3", "5")){//全职学术推广员
-                templateName = "doc_template12.docx";
-            }else {
-                templateName = "doc_template11_review_guangshengtang.docx";
-            }
-
-            f = ExportReport.main_bulidTemplate1_guangshengtang(excelMap, 2, upmsConfig.getBasePath(), templateName);
-        } else {//定量
-            f = ExportReport.main_bulidTemplate2(excelMap, 2, upmsConfig.getBasePath());
-        }
-
-        FileInputStream input = new FileInputStream(f);
-
-        String fileNamePrefix = "";
-        if (StrUtil.equals(wmScorePackage1.getTypeid(), "3")) {
-            fileNamePrefix = "全职学术信息沟通专员业绩报告";
-        } else if (StrUtil.equals(wmScorePackage1.getTypeid(), "5")) {
-            fileNamePrefix = "招商经理业绩报告";
-        } else if (StrUtil.equals(wmScorePackage1.getTypeid(), "4")) {
-            fileNamePrefix = "兼职学术信息沟通专员业绩报告";
-        }
-
-        MultipartFile multipartFile = new MockMultipartFile(fileNamePrefix + "(" + packageId + ")", "兼职学术推广员业绩报告(" + packageId + ").doc", "text/plain", IOUtils
-                .toByteArray(input));
-        return sysFileService.uploadFileAllUrlRealName(multipartFile, username);
-
-    }
-
-    /**
-     * 合并导出--汇总,表格数据封装
-     *
-     * @param wmTask
-     * @return
-     */
-    private Map<String, Object> exportZbCommonForGuangshengtang(WmTask wmTask) {
-        String packageId = wmTask.getScorePackageId();  // 获取积分包ID
-        if (null == packageId) {
-            packageId = wmTask.getScorePackageDrugId();
-        }
-
-        Map<String, Object> excelMap = new HashMap<>();
-        WmScorePackage wmScorePackage1 = wmScorePackageService.getById(packageId);
-        WmDaDrugEnt wmDaDrugEnt = wmDaDrugEntService.getById(wmScorePackage1.getDrugEntId());
-        if (wmDaDrugEnt == null) {
-            wmDaDrugEnt = new WmDaDrugEnt();
-            wmDaDrugEnt.setEntname("无");
-        }
-
-        List<String> strs = new ArrayList<>();
-        if (packageId.contains(",")) {
-            strs.addAll(Arrays.asList(packageId.split(",")));
-        } else {
-            strs.add(packageId);
-        }
-        wmTask.setExtIds(strs);
-
-
-        List<Map<String, Object>> wmTaskList = wmTaskService.getTaskListByIdsOld(wmTask);
-        if (wmScorePackage1.getPackageType2().equals("2")) {
-            wmTaskList = wmTaskService.getTaskListByIdsJs(wmTask);
-        }
-        if (wmTaskList.size() > 0) {
-            List<XlsTask> xlsTaskList = new ArrayList<>();
-            Map<String, Object> userMap = new HashMap<>();
-            for (Map<String, Object> wmt : wmTaskList) {
-                XlsTask xlsTask = new XlsTask();
-                xlsTask.setTaskNum(Integer.valueOf(wmt.get("score_count") + ""));
-                xlsTask.setTaskType(wmt.get("base_id") + "");
-                xlsTask.setUsername(wmt.get("realname") + "");
-                xlsTask.setScore(Integer.parseInt((wmt.get("score") == null ? "0" : wmt.get("score")) + ""));
-                xlsTask.setDrugEntName(wmDaDrugEnt.getEntname());
-                xlsTask.setDeptName(wmt.get("dept_name") + "");
-                xlsTask.setCreateTime(wmt.get("create_time") + "");
-                xlsTaskList.add(xlsTask);
-
-                String buildKey = wmt.get("realname") + "_" + wmDaDrugEnt.getEntname() + "_" + wmt.get("dept_name") + "";
-                if (userMap.containsKey(buildKey)) {
-                    try {
-                        userMap.put(buildKey, Integer.parseInt(wmt.get("score") == null ? "0" : wmt.get("score") + "") + Integer
-                                .parseInt(userMap.get(buildKey) == null ? "0" : userMap.get(buildKey) + ""));
-                        userMap.put(buildKey + "_total", Integer.parseInt(wmt.get("score_count") + "") + Integer.parseInt(userMap
-                                .get(buildKey + "_total") + ""));
-
-                    } catch (Exception ex) {
-                    }
-                } else {
-                    userMap.put(buildKey, wmt.get("score"));
-                    userMap.put(buildKey + "_total", Integer.parseInt(wmt.get("score_count") + ""));
-                }
-            }
-
-
-            List<WmTask> wmTaskDetialList = wmTaskService.getTaskListByIdsReturnWmtaskInfo(wmTask);
-            List<Map<String, Object>> wmTaskDetialMap = new ArrayList<>();
-
-            List<String> listPackageIds = new ArrayList<>();
-
-            if (wmTaskDetialList.size() > 0) {
-                for (WmTask wmTask1 :
-                        wmTaskDetialList) {
-                    Map<String, Object> map = new HashMap<>();
-                    WmTaskType wmTaskTypeTemp1 = wmTaskTypeService.getById(wmTask1.getTaskTypeId());
-                    map.put("taskType", wmTaskTypeTemp1.getTaskTypeName());
-                    DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-                    String strDate2 = dtf2.format(wmTask1.getCreateTime());
-                    map.put("taskTime", strDate2);
-                    if (wmScorePackage1.getPackageType2().equals("2")) {
-                        map.put("taskUser", sysUserService.getByIdIgnore(wmTask1.getTaskUserId()).getRealname());
-                    } else {
-                        map.put("taskUser", sysUserService.getByIdIgnore(wmTask1.getTaskUserId()).getRealname());
-                    }
-
-                    map.put("taskTypeId", wmTask1.getTaskTypeId());
-                    map.put("score", wmTask1.getScore());
-                    map.put("taskNum", 1);
-                    wmTaskDetialMap.add(map);
-
-                    if (listPackageIds.size() == 0) {
-                        listPackageIds.add(wmTask1.getScorePackageId());
-                    } else {
-                        boolean isInscore = true;
-                        for (String str : listPackageIds) {
-                            if (str.equals(wmTask1.getScorePackageId())) {
-                                isInscore = false;
-                            }
-                        }
-
-                        if (isInscore) {
-                            listPackageIds.add(wmTask1.getScorePackageId());
-                        }
-                    }
-                }
-
-                // 待审核积分值
-                int toApproveSum = wmTaskDetialList.stream()
-                        .mapToInt(WmTask::getScore).sum();
-                excelMap.put("toApproveScore", toApproveSum);
-            }
-
-            if (listPackageIds.size() > 0) {
-                List<WmScorePackage> wmScorePackageList = wmScorePackageService.listByIds(listPackageIds);
-                Integer totalScorePackage = 0;
-                BigDecimal settleAmount = new BigDecimal("0");
-                if (wmScorePackageList.size() > 0) {
-                    for (WmScorePackage wmScorePackage : wmScorePackageList) {
-                        totalScorePackage += wmScorePackage.getScore();
-                        if (wmScorePackage.getSettleStatus() != null && wmScorePackage.getSettleStatus() == 1) {
-                            settleAmount = settleAmount.add(wmScorePackage.getSettleAmount());
-                        }
-                    }
-                }
-                excelMap.put("settleAmount", "0".equals(settleAmount.toString()) ? " " : settleAmount);
-                excelMap.put("totalscorePackageScore", totalScorePackage);
-                if (wmScorePackage1.getPackageType1().equals("2") || wmScorePackage1.getPackageType1().equals("3")) {
-                    if (!wmScorePackage1.getPackageType2().equals("2")) {
-                        excelMap.put("totalscorePackageTaskNum", wmScorePackage1.getTaskNum() * wmScorePackage1.getUserNum());//积分包值任务个数
-                    }
-                }
-
-                List<WmTask> tasks = wmTaskService.list(Wrappers.<WmTask>lambdaQuery()
-                        .in(WmTask::getScorePackageId, listPackageIds));
-
-                if (CollUtil.isNotEmpty(tasks)) {
-                    int sum = tasks.stream()
-                            .filter(t -> "3".equals( t.getTaskStatus()) && WmTask.TaskSettleStatusEnum.SETTLED.getCode().equals(t.getTaskSettleStatus()))
-                            .mapToInt(WmTask::getScore).sum();
-                    excelMap.put("submitAmount", sum);
-                }
-            }
-
-            excelMap.put("rwmxTable", wmTaskDetialMap);
-            excelMap.put("mxTable", xlsTaskList);
-            excelMap.put("ryTable", userMap);
-
-            if (CollUtil.isNotEmpty(wmTaskDetialList)) {
-                // 封装临床拜访汇总表数据
-                List<Map<String, Object>> visitList = new ArrayList<>();
-                // 查询医院拜访任务类型
-                List<String> visitTaskContIdList = wmTaskDetialList.stream()
-                        .filter(task -> "5".equals(task.getTaskTypeId()))
-                        .map(WmTask::getTaskContentId)
-                        .collect(Collectors.toList());
-                if (CollUtil.isNotEmpty(visitTaskContIdList)) {
-                    // 查询任务详情
-                    List<WmTaskContent> taskContentList = wmTaskContentService.listByIds(visitTaskContIdList);
-                    if (CollUtil.isNotEmpty(taskContentList)) {
-                        List<Integer> signIdList = taskContentList.stream()
-                                .map(wmTaskContent -> Integer.valueOf(wmTaskContent.getTemp3()))
-                                .collect(Collectors.toList());
-                        // 查询打卡记录
-                        List<WmUserSign> wmUserSignList = wmUserSignService.listUserSign(signIdList);
-                        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-                        wmUserSignList.forEach(wmUserSign -> {
-                            Map<String, Object> visitMap = MapUtil.newHashMap(5);
-                            visitMap.put("taskTime", dateTimeFormatter.format(wmUserSign.getSignDate()));
-                            visitMap.put("entName", wmUserSign.getSignEntName());
-                            WmUserSignDetail userSignDetail = wmUserSign.getUserSignDetail();
-                            if (userSignDetail != null) {
-                                visitMap.put("purpose", String.join(",", userSignDetail.getPurposeName()));
-                                visitMap.put("result", userSignDetail.getResultName());
-                                visitMap.put("remark", userSignDetail.getRemark());
-                            }
-                            visitList.add(visitMap);
-                        });
-                        // 推广周期
-                        String startTaskTime = dateTimeFormatter.format(wmUserSignList.get(0).getSignDate());
-                        String endTaskTime = dateTimeFormatter.format(wmUserSignList.get(wmUserSignList.size()-1).getSignDate());
-                        excelMap.put("visitCycle", String.format("%s至%s", startTaskTime, endTaskTime));
-                    }
-                }
-                excelMap.put("visitTable", visitList);
-                excelMap.put("visitTotalCount", visitTaskContIdList.size());
-
-                // 封装学术会议登记表数据
-                List<Map<String, Object>> meetingList = new ArrayList<>();
-                // 查询会议举办的任务类型1,2,3,4
-                List<String> meetingTaskContIdList = wmTaskDetialList.stream()
-                        .filter(task -> StrUtil.equalsAny(task.getTaskTypeId(), "1", "2", "3", "4"))
-                        .map(WmTask::getTaskContentId)
-                        .collect(Collectors.toList());
-                if (CollUtil.isNotEmpty(meetingTaskContIdList)) {
-                    // 查询任务详情
-                    List<WmTaskContent> taskContentList = wmTaskContentService.listByIds(meetingTaskContIdList);
-                    if (CollUtil.isNotEmpty(taskContentList)) {
-                        taskContentList.forEach(wmTaskContent -> {
-                            WmTaskType taskType = wmTaskTypeService.getById(wmTaskContent.getTemp3());
-                            Map<String, Object> meetingMap = MapUtil.newHashMap(6);
-                            meetingMap.put("taskTime", wmTaskContent.getTemp4().substring(0, 10));
-                            meetingMap.put("taskDrugList", wmTaskContent.getTemp12());
-                            meetingMap.put("meetingTitle", wmTaskContent.getTemp2());
-                            meetingMap.put("meetingType", taskType.getTaskTypeName());
-                            meetingMap.put("meetingSign", wmTaskContent.getTemp31());
-                            meetingMap.put("meetingSummary", wmTaskContent.getTemp9());
-                            meetingList.add(meetingMap);
-                        });
-                    }
-                }
-                excelMap.put("meetingTable", meetingList);
-            }
-        }
-
-
-        Map<String, Timestamp> maxMaxTime = wmTaskService.getMaxCreateTime(wmTask);
-        System.out.println(maxMaxTime);
-        LocalDateTime MaxTime = maxMaxTime.get("MaxTime").toLocalDateTime();
-        excelMap.put("year", MaxTime.getYear() + "");
-        Integer month = MaxTime.getMonthValue();
-        if (month < 10) {
-            excelMap.put("month", "0" + MaxTime.getMonthValue() + "");
-        } else {
-            excelMap.put("month", MaxTime.getMonthValue() + "");
-        }
-        Integer day = MaxTime.getDayOfMonth();
-        if (day < 10) {
-            excelMap.put("day", "0" + MaxTime.getDayOfMonth() + "");
-        } else {
-            excelMap.put("day", MaxTime.getDayOfMonth() + "");
-        }
-
-        List<Map<String, Object>> wmTaskCount = wmTaskService.getTaskListByIdsCount(wmTask);
-        if (wmTaskCount.size() > 0) {
-            Integer total = 0;
-            Integer sum = 0;
-            for (Map<String, Object> map :
-                    wmTaskCount) {
-                if (null != map.get("taskCount")) {
-                    total += Integer.parseInt(map.get("taskCount") + "");
-                }
-
-                if (null != map.get("taskSum")) {
-                    sum += Integer.parseInt(map.get("taskSum") + "");
-                }
-
-            }
-            Map<String, Object> totalMap = new HashMap<>();
-            totalMap.put("taskTypeName", "合计");
-            totalMap.put("taskCount", total);
-            totalMap.put("taskSum", sum);
-            wmTaskCount.add(totalMap);
-
-            excelMap.put("ztTable", wmTaskCount);
-        }
-
-
-        SysDept paramDept = new SysDept();
-        paramDept.setDeptId(Integer.valueOf(wmScorePackage1.getSendPackageDeptId()));
-        SysDept wmDaAgent = sysDeptService.selectDeptById(paramDept);
-        excelMap.put("wt_ent", wmDaAgent.getName());
-
-        excelMap.put("drugEnt", "");
-
-        String ruleDate = wmScorePackage1.getBelongDate();
-        excelMap.put("rule_year", ruleDate.substring(0, 4));
-        excelMap.put("rule_month", ruleDate.substring(5, 7));
-
-        List<Map<String, Object>> wmTaskZd = wmTaskService.getTaskListByIdsZd(wmTask);
-        if (wmScorePackage1.getPackageType2().equals("2")) {
-            wmTaskZd = wmTaskService.getTaskListByIdsZdJs(wmTask);
-        }
-
-        if (null != wmTaskZd) {
-            if (wmTaskZd.size() > 0) {
-                Map<String, Object> stringMap = wmTaskZd.get(0);
-                if (null == stringMap) {
-                    return null;
-                }
-                excelMap.put("tMoney", stringMap.get("sumscore") + "");
-                excelMap.put("report_users", stringMap.get("realname") + "");
-            }
-        }
-        return excelMap;
-    }
-
-    /**
-     * 个人报告导出--报告详情
-     *
-     * @param wmTask
-     * @return
-     * @throws IOException
-     */
-    public List<Map<String, Object>> exportZbInfo(WmTask wmTask) throws IOException {
-        return reportExportService.exportZbInfo(wmTask);
-    }
-
-    public String getFieldValueByFieldName(String fieldName, Object object) {
-        try {
-            Field field = object.getClass().getDeclaredField(fieldName);
-            //对private的属性的访问
-            field.setAccessible(true);
-            return field.get(object) + "";
-        } catch (Exception e) {
-            e.printStackTrace();
-            return null;
-        }
-    }
-
-    @Override
-    public R newExportNba(WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException {
-        return null;
-    }
-
-    @Override
-    public R newExportNbaHistory(WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException {
-        return null;
-    }
-
-    @Override
-    public R newExportNb(WmReport wmReport, Integer deptId, String username) throws IOException {
-        return reportReviewExportService.newExportNb(wmReport, deptId, username);
-    }
-
-}

+ 0 - 822
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/impl/ReportReviewExportForJinpaiServiceImpl.java

@@ -1,822 +0,0 @@
-package com.qunzhixinxi.hnqz.admin.service.impl;
-
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.util.StrUtil;
-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.deepoove.poi.data.MiniTableRenderData;
-import com.deepoove.poi.data.RowRenderData;
-import com.deepoove.poi.data.TextRenderData;
-import com.deepoove.poi.data.style.TableStyle;
-import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
-import com.qunzhixinxi.hnqz.report.config.UpmsConfig;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEnt;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmReport;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackageSettleNote;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskContent;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskContentConfig;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
-import com.qunzhixinxi.hnqz.admin.api.entity.XlsTask;
-import com.qunzhixinxi.hnqz.admin.api.constant.enums.ReportEnum;
-import com.qunzhixinxi.hnqz.admin.api.constant.enums.ReportTypeEnum;
-import com.qunzhixinxi.hnqz.report.mapper.WmScorePackageSettleNoteMapper;
-import com.qunzhixinxi.hnqz.report.mapper.WmTaskMapper;
-import com.qunzhixinxi.hnqz.report.service.ReportExportService;
-import com.qunzhixinxi.hnqz.report.service.SysDeptService;
-import com.qunzhixinxi.hnqz.report.service.SysFileService;
-import com.qunzhixinxi.hnqz.report.service.SysUserService;
-import com.qunzhixinxi.hnqz.report.service.WmDaDrugEntService;
-import com.qunzhixinxi.hnqz.report.service.WmReportService;
-import com.qunzhixinxi.hnqz.report.service.WmScorePackageService;
-import com.qunzhixinxi.hnqz.report.service.WmScorePackageStatusService;
-import com.qunzhixinxi.hnqz.report.service.WmTaskContentConfigService;
-import com.qunzhixinxi.hnqz.report.service.WmTaskContentService;
-import com.qunzhixinxi.hnqz.report.service.WmTaskService;
-import com.qunzhixinxi.hnqz.report.service.WmTaskTypeService;
-import com.qunzhixinxi.hnqz.report.util.ExportReport;
-import com.qunzhixinxi.hnqz.report.util.Html2ImageByJsWrapper;
-import com.qunzhixinxi.hnqz.report.util.OsEnvUtils;
-import com.qunzhixinxi.hnqz.common.core.util.R;
-import lombok.AllArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.io.IOUtils;
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.STJc;
-import org.springframework.mock.web.MockMultipartFile;
-import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.lang.reflect.Field;
-import java.math.BigDecimal;
-import java.sql.Timestamp;
-import java.text.SimpleDateFormat;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-
-/**
- * <p>
- * 报告管理 服务实现类
- * </p>
- *
- * @author hnqz
- * @since 2018-01-20
- */
-@Slf4j
-@Service("ReportReviewExportForJinpaiServiceImpl")
-@AllArgsConstructor
-public class ReportReviewExportForJinpaiServiceImpl implements ReportExportService {
-
-    private final WmTaskService wmTaskService;
-    private final WmScorePackageService wmScorePackageService;
-    private final UpmsConfig upmsConfig;
-    private final SysFileService sysFileService;
-    private final WmDaDrugEntService wmDaDrugEntService;
-    private final WmTaskTypeService wmTaskTypeService;
-    private final SysUserService sysUserService;
-    private final SysDeptService sysDeptService;
-    private final WmTaskContentService wmTaskContentService;
-    private final WmTaskContentConfigService wmTaskContentConfigService;
-    private final WmTaskMapper wmTaskMapper;
-    private final WmReportService wmReportService;
-    private final WmScorePackageStatusService wmScorePackageStatusService;
-    private final WmScorePackageSettleNoteMapper wmScorePackageSettleNoteMapper;
-    private final ReportExportService reportExportService;
-
-    /**
-     * 结算报告--导出汇总报告--学术推广服务报告
-     *
-     * @param wmReport
-     * @return
-     * @throws IOException
-     */
-    @Override
-    public R newExportNb(WmReport wmReport, Integer deptId, String username) throws IOException {
-
-
-        wmReport = wmReportService.getById(wmReport.getId());
-        List<WmTask> taskList = new ArrayList<>();//该报告关联的所有未提交的任务
-        //更新任务表审批意见
-        WmScorePackage scorePackage = wmScorePackageService.getById(wmReport.getScoreId());
-        WmTask wmTask = new WmTask();
-        wmTask.setDelFlag("0");
-        wmTask.setEnableFlag("0");
-        wmTask.setRealFlag("0");
-
-        SysDept sysDept = sysDeptService.getById(scorePackage.getSendPackageDeptId());
-
-
-        if ("0".equals(scorePackage.getTypeid())) {//药企
-            wmTask.setReportDrugId(wmReport.getId());
-            wmTask.setReportDrugApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());//审核通过的状态
-            taskList = wmTaskService.list(Wrappers.query(wmTask));
-        } else if ("1".equals(scorePackage.getTypeid())) {//一级代理商类型
-            wmTask.setReportOneId(wmReport.getId());
-            if (sysDept.getLevel() == 2) {
-                wmTask.setReportDrugApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());//审核通过的状态
-            } else {
-                wmTask.setReportOneApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());//审核通过的状态
-            }
-
-            taskList = wmTaskService.list(Wrappers.query(wmTask));
-        } else if ("2".equals(scorePackage.getTypeid())) {//二级代理商类型
-            wmTask.setReportSecondId(wmReport.getId());
-            wmTask.setReportSecondApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());//审核通过的状态
-            taskList = wmTaskService.list(Wrappers.query(wmTask));
-        }
-        if (null == taskList || taskList.size() <= 0) {
-            return R.failed("ERROR_未查询到该报告关联的待审核的任务");
-        }
-        String ids = taskList.stream().map(WmTask::getId).collect(Collectors.joining(","));
-        wmTask.setScorePackageId(wmReport.getScoreId().toString());
-        wmTask.setId(ids);
-
-        return exportNb(wmTask, wmReport, deptId, username);//报告汇总
-    }
-
-
-    /**
-     * 结算报告--导出汇总报告--学术推广服务报告
-     *
-     * @param wmTask
-     * @param wmReport
-     * @return
-     * @throws IOException
-     */
-    private R exportNb(WmTask wmTask, WmReport wmReport, Integer deptId, String username) throws IOException {
-
-        WmTask wmTaskparam = wmTask;
-        String packageId = wmTask.getScorePackageId();  // 获取积分包ID
-        if (null == packageId) {
-            return R.failed("积分包ID不能为空");
-        }
-
-        List<String> list = new ArrayList<>();
-        list.add(packageId);
-
-        wmTask.setExtIds(list);
-
-        Map<String, Object> excelMap = new HashMap<>();
-
-        WmScorePackage wmScorePackage = wmScorePackageService.getById(packageId);
-        if (null == wmScorePackage) {
-            return R.failed("获取积分包失败");
-        }
-
-        excelMap.put("totalscorePackageScore", wmScorePackage.getScore());
-        if (wmScorePackage.getPackageType1().equals("2") || wmScorePackage.getPackageType1().equals("3")) {
-            excelMap.put("totalscorePackageTaskNum", wmScorePackage.getTaskNum() * wmScorePackage.getUserNum());//积分包值任务个数
-        }
-
-        List<WmScorePackageSettleNote> settleNoteList = wmScorePackageSettleNoteMapper.selectList(Wrappers.<WmScorePackageSettleNote>lambdaQuery()
-                .eq(WmScorePackageSettleNote::getPackageId, packageId));
-        if (CollUtil.isNotEmpty(settleNoteList)) {
-            BigDecimal totalActualAmount = settleNoteList.stream()
-                    .map(WmScorePackageSettleNote::getActualAmount)
-                    .reduce(BigDecimal.ZERO, BigDecimal::add);
-            // 个体经营者生产经营所得(税后),即实际支付金额
-            excelMap.put("actualAmount", totalActualAmount);
-        }
-
-        List<Map<String, Object>> wmTaskList = wmTaskService.getTaskListByIds(wmTask);
-
-
-        List<XlsTask> xlsTaskList = new ArrayList<>();//mxTable
-        Integer totalMoney = 0;
-//		wmTask.setScorePackageId(null);
-//		wmTask.setScorePackageDrugId(null);
-
-        //当前登陆人的机构
-        SysDept sysDept = sysDeptService.getById(deptId);
-
-        Map<String, Object> userMap = new HashMap<>();
-
-        //委托公司(结算企业)
-        SysDept drugEnt = sysDeptService.getById(wmReport.getDrugEntId());
-        //WmDaDrugEnt wmDaDrugEnt = wmDaDrugEntService.getById(SecurityUtils.getUser().getDrugEntId());
-
-        //报告公司(申请结算企业)
-        SysDept applydrugEnt = sysDeptService.getById(wmReport.getApplyDrugEntId());
-        //WmDaAgent wmDaAgent = wmDaAgentService.getById(wmScorePackage.getLevel1Id());
-
-        for (Map<String, Object> wmT : wmTaskList) {
-            totalMoney += Integer.parseInt(wmT.get("score") + "");
-            XlsTask xlsTask = new XlsTask();
-            xlsTask.setTaskNum(1);
-            xlsTask.setCreateTime(wmT.get("create_time") + "");
-
-            xlsTask.setDeptName(sysDept.getName());
-
-            //level=2是药企
-            if (sysDept.getLevel() == 2) {
-                xlsTask.setAgentDeptName(applydrugEnt.getName());
-            }
-
-            xlsTask.setDrugEntName(drugEnt.getName());
-
-
-            xlsTask.setScore(Integer.parseInt(wmT.get("score") + ""));
-
-            xlsTask.setUsername(wmT.get("realname") + "");
-            xlsTask.setTaskType(wmT.get("base_id") + "");
-
-            xlsTaskList.add(xlsTask);
-
-            String buildKey = wmT.get("realname") + "_" + drugEnt.getName() + "_" + sysDept.getName();
-            //人员表格
-            if (userMap.containsKey(buildKey)) {
-                try {
-                    userMap.put(buildKey, Integer.parseInt(wmT.get("score") + "") + Integer.parseInt(userMap.get(buildKey) + ""));
-                    userMap.put(buildKey + "_total", Integer.parseInt(wmT.get("score_count") + "") + Integer.parseInt(userMap
-                            .get(buildKey + "_total") + ""));
-
-                } catch (Exception ex) {
-                }
-            } else {
-                userMap.put(buildKey, Integer.parseInt(wmT.get("score") + ""));
-                userMap.put(buildKey + "_total", Integer.parseInt(wmT.get("score_count") + ""));
-            }
-        }
-
-//		List<String> list1 = new ArrayList<>();
-//		list1.add(packageId);
-
-        //学术推广服务任务明细表格
-        List<WmTask> wmTaskDetialList = wmTaskService.getTaskListByIdsReturnWmtaskInfo(wmTask);
-        List<Map<String, Object>> wmTaskDetialMap = new ArrayList<>();
-
-        if (wmTaskDetialList.size() > 0) {
-
-
-             for (WmTask wmTask1 : wmTaskDetialList) {
-                 Map<String, Object> map = new HashMap<>();
-                 WmTaskType wmTaskTypeTemp1 = wmTaskTypeService.getById(wmTask1.getTaskTypeId());
-                 map.put("taskType", wmTaskTypeTemp1.getTaskTypeName());
-                 DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-                 String strDate2 = dtf2.format(wmTask1.getCreateTime());
-                 map.put("taskTime", strDate2);
- //				map.put("taskUser", sysUserService.getById(wmTask1.getTaskUserId()).getRealname());
-                 map.put("taskUser", sysUserService.getByIdIgnore(wmTask1.getTaskUserId()).getRealname());
-                 map.put("taskTypeId", wmTask1.getTaskTypeId());
-                 map.put("score", wmTask1.getScore());
-                 map.put("taskNum", 1);
-
-                 wmTaskDetialMap.add(map);
-             }
-
-            // 待审核积分值
-            int toApproveSum = wmTaskDetialList.stream()
-                    .mapToInt(WmTask::getScore).sum();
-            excelMap.put("toApproveScore", toApproveSum);
-        }
-
-        excelMap.put("rwmxTable", wmTaskDetialMap);//学术推广服务任务明细表格
-
-        if (totalMoney > wmScorePackage.getScore()) {
-            totalMoney = wmScorePackage.getScore();
-        }
-
-        excelMap.put("ryTable", userMap);//人员表格
-        excelMap.put("tMoney", totalMoney);
-
-        if (xlsTaskList.size() > 0) {
-            excelMap.put("wt_ent", xlsTaskList.get(0).getDrugEntName());//委托公司
-            excelMap.put("drugEnt", xlsTaskList.get(0).getDrugEntName());//服务药企
-            excelMap.put("mxTable", xlsTaskList);
-        }
-
-        List<Map<String, String>> ztTableList = new ArrayList<>();
-        Map<String, String> ztMap = new HashMap<>();
-        List<Map<String, Object>> wmTaskCount = wmTaskService.getTaskListByIdsCount(wmTask);
-        if (wmTaskCount.size() > 0) {
-            Integer total = 0;
-            Integer sum = 0;
-            for (Map<String, Object> map :
-                    wmTaskCount) {
-                if (null != map.get("taskCount")) {
-                    total += Integer.parseInt(map.get("taskCount") + "");
-                }
-
-                if (null != map.get("taskSum")) {
-                    sum += Integer.parseInt(map.get("taskSum") + "");
-                }
-
-            }
-            Map<String, Object> totalMap = new HashMap<>();
-            totalMap.put("taskTypeName", "合计");
-            totalMap.put("taskCount", total);
-            totalMap.put("taskSum", sum);
-            wmTaskCount.add(totalMap);
-
-//            excelMap.put("totalSubmitScore", sum);
-//            excelMap.put("totalSubmitTaskNum", total);
-
-            excelMap.put("ztTable", wmTaskCount);//学术推广服务整体概况表格
-        }
-
-        // 任务小类及对应的任务个数和积分值
-        List<WmTask> taskList = wmTaskMapper.selectBatchIds(Arrays.asList(wmTask.getId().split(",")));
-
-        // 查询taskType
-        List<WmTaskType> taskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
-                .eq(WmTaskType::getTaskTypeLevel, "1")
-                .eq(WmTaskType::getDelFlag, "0")
-//                .eq(WmTaskType::getEnableFlag, "0")
-        );
-        // taskType通过id分组(key为parentId,value为taskTypeId的set)
-        Map<String, String> taskTypeIdMap = taskTypeList.stream()
-                .collect(Collectors.toMap(WmTaskType::getId, WmTaskType::getTaskTypeName));
-
-        // task通过taskTypeId分组
-        Map<String, List<WmTask>> taskTypeMap = taskList.stream()
-                .collect(Collectors.groupingBy(WmTask::getTaskTypeId, Collectors.toList()));
-
-        // 封装brief table1数据(统计每个小类任务的积分、任务数)
-        List<Map<String, Object>> briefTable1List = new ArrayList<>();
-        taskTypeMap.forEach((taskTypeId, wmTasks) -> {
-            Map<String, Object> briefTable1Params = new HashMap<>();
-            briefTable1Params.put("taskTypeName", taskTypeIdMap.get(taskTypeId));
-            briefTable1Params.put("taskCount", wmTasks.size());
-            briefTable1Params.put("taskSum", wmTasks.stream().map(WmTask::getScore).reduce(0, Integer::sum));
-            briefTable1List.add(briefTable1Params);
-        });
-        Map<String, Object> briefTable1TotalParams = new HashMap<>();
-        briefTable1TotalParams.put("taskTypeName", "合计");
-        briefTable1TotalParams.put("taskCount", taskList.size());
-        briefTable1TotalParams.put("taskSum", taskList.stream().map(WmTask::getScore).reduce(0, Integer::sum));
-        briefTable1List.add(briefTable1TotalParams);
-        excelMap.put("briefTable", briefTable1List);
-
-        //WmTaskRule wmTaskRule = wmTaskRuleService.getById(wmScorePackage.getTaskRuleId());
-        String entDate = wmScorePackage.getBelongDate() + "-31";
-        try {
-            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-            format.parse(entDate);
-        } catch (Exception ex) {
-            entDate = wmScorePackage.getBelongDate() + "-30";
-        }
-        //excelMap.put("service_date", wmTaskRule.getRuleMonth() + "-01 至 " + entDate);
-
-        if (null != applydrugEnt) {
-            excelMap.put("report_ent", applydrugEnt.getName());
-        } else {
-            excelMap.put("report_ent", "");
-        }
-
-        String ruleDate = wmScorePackage.getBelongDate();
-        excelMap.put("rule_year", ruleDate.substring(0, 4));
-        excelMap.put("rule_month", ruleDate.substring(5, 7));
-
-        //报告日期
-        Map<String, Timestamp> maxMaxTime = wmTaskService.getMaxCreateTime(wmTask);
-        System.out.println(maxMaxTime);
-        LocalDateTime MaxTime = maxMaxTime.get("MaxTime").toLocalDateTime();
-        excelMap.put("year", MaxTime.getYear() + "");
-        Integer month = MaxTime.getMonthValue();
-        if (month < 10) {
-            excelMap.put("month", "0" + MaxTime.getMonthValue() + "");
-        } else {
-            excelMap.put("month", MaxTime.getMonthValue() + "");
-        }
-        Integer day = MaxTime.getDayOfMonth();
-        if (day < 10) {
-            excelMap.put("day", "0" + MaxTime.getDayOfMonth() + "");
-        } else {
-            excelMap.put("day", MaxTime.getDayOfMonth() + "");
-        }
-
-        excelMap.put("tMoney", totalMoney);
-        excelMap.put("scoreId", wmScorePackage.getScorePackageName());
-
-        List<Map<String, Object>> infoList = exportZbInfo(wmTaskparam);
-        if (null != infoList && infoList.size() > 0) {
-            excelMap.put("infoList", infoList);
-        } else {
-            return R.failed("未查询到待审核的任务");
-        }
-        //区分全职兼职学术推广员模版
-        excelMap.put("userType", wmScorePackage.getTypeid());
-
-        File f = null;
-        if (wmScorePackage.getPackageType1().equals("1")) {//定额
-            f = ExportReport.main_bulidTemplate1_jinpai(excelMap, 1, upmsConfig.getBasePath(), "doc_template1_review.docx");
-        } else {//定量
-            f = ExportReport.main_bulidTemplate2(excelMap, 1, upmsConfig.getBasePath());
-        }
-
-        FileInputStream input = new FileInputStream(f);
-
-        MultipartFile multipartFile = new MockMultipartFile("学术推广服务报告(" + packageId + ")", "学术推广服务报告(" + packageId + ").doc", "text/plain", IOUtils
-                .toByteArray(input));
-        return sysFileService.uploadFileAllUrlRealName(multipartFile, username);
-    }
-
-
-    @Override
-    public R newExportNba(WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException {
-        return null;
-    }
-
-    @Override
-    public R newExportNbaHistory(WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException {
-        return null;
-    }
-
-    /**
-     * 个人承接按积分制
-     * @param wmTask
-     * @param username
-     * @return
-     * @throws IOException
-     */
-    @Override
-    public R newExportZb(WmTask wmTask, String username) throws IOException {
-        String packageId = wmTask.getScorePackageDrugId();
-        if (null == packageId) {
-            return R.failed("积分包ID不能为空");
-        }
-        LambdaQueryWrapper<WmTask> queryWrapper = new LambdaQueryWrapper();
-        queryWrapper.in(WmTask::getScorePackageId, Arrays.asList(packageId.split(",")));
-        if (StrUtil.isNotBlank(wmTask.getTaskStatus())) {
-            queryWrapper.eq(WmTask::getTaskStatus, wmTask.getTaskStatus());
-        } else {
-            queryWrapper.eq(WmTask::getTaskStatus, "3");
-        }
-        queryWrapper.eq(WmTask::getDelFlag, "0");
-        queryWrapper.eq(WmTask::getEnableFlag, "0");
-        queryWrapper.eq(WmTask::getRealFlag, "0");
-        List<WmTask> taskList = wmTaskService.list(queryWrapper);
-        if (taskList.isEmpty()) {
-            return R.failed("未查询到待审核的任务");
-        }
-        String ids = taskList.stream().map(WmTask::getId).collect(Collectors.joining(","));
-        wmTask.setScorePackageId(packageId);
-        wmTask.setId(ids);
-        return exportZb(wmTask, username);
-    }
-
-    /**
-     * 个人报告导出--众包代表业绩报告
-     *
-     * @param wmTask
-     * @return
-     * @throws IOException
-     */
-    private R exportZb(WmTask wmTask, String username) throws IOException {
-
-        WmTask wmTaskparam = wmTask;
-        String packageId = wmTask.getScorePackageId();  // 获取积分包ID
-        if (null == packageId) {
-            packageId = wmTask.getScorePackageDrugId();
-        }
-
-        if (null == packageId) {
-            return R.failed("积分包ID不能为空");
-        }
-
-        WmScorePackage wmScorePackage1 = wmScorePackageService.getById(packageId);
-
-        Map<String, Object> excelMap = exportZbCommon(wmTask);
-        if (null == excelMap) {
-            return R.failed("未查询到待审核的任务");
-        }
-
-        List<Map<String, Object>> infoList = exportZbInfo(wmTaskparam);
-        if (null != infoList && infoList.size() > 0) {
-            excelMap.put("infoList", infoList);
-        }
-        //区分全职兼职学术推广员模版
-        excelMap.put("userType", wmScorePackage1.getTypeid());
-//        excelMap.put("scoreId", wmScorePackage1.getScorePackageName());
-        List<String> extIds = wmTask.getExtIds();
-        List<WmScorePackage> wmScorePackages = wmScorePackageService.listByIds(extIds);
-        String scoreIds = wmScorePackages.stream().map(WmScorePackage::getScorePackageName).collect(Collectors.joining(","));
-        excelMap.put("scoreId", StrUtil.isBlank(scoreIds) ? wmScorePackage1.getScorePackageName() : scoreIds);
-
-        List<WmScorePackageSettleNote> settleNoteList = wmScorePackageSettleNoteMapper.selectList(Wrappers.<WmScorePackageSettleNote>lambdaQuery()
-                .eq(WmScorePackageSettleNote::getPackageId, packageId));
-        if (CollUtil.isNotEmpty(settleNoteList)) {
-            BigDecimal totalActualAmount = settleNoteList.stream()
-                    .map(WmScorePackageSettleNote::getActualAmount)
-                    .reduce(BigDecimal.ZERO, BigDecimal::add);
-            // 个体经营者生产经营所得(税后),即实际支付金额
-            excelMap.put("actualAmount", totalActualAmount);
-        }
-
-        File f = null;
-        if (wmScorePackage1.getPackageType1().equals("1")) {//定额
-            String templateName = "";
-            if(StrUtil.equalsAny(wmScorePackage1.getTypeid(), "3", "5")){//全职学术推广员
-                templateName = "doc_template12.docx";
-            }else {
-                templateName = "doc_template11_review_jinpai.docx";
-            }
-            f = ExportReport.main_bulidTemplate1_jinpai(excelMap, 2, upmsConfig.getBasePath(), templateName);
-        } else {//定量
-            f = ExportReport.main_bulidTemplate2(excelMap, 2, upmsConfig.getBasePath());
-        }
-
-        FileInputStream input = new FileInputStream(f);
-
-        String fileNamePrefix = "";
-        if (StrUtil.equals(wmScorePackage1.getTypeid(), "3")) {
-            fileNamePrefix = "全职学术信息沟通专员业绩报告";
-        } else if (StrUtil.equals(wmScorePackage1.getTypeid(), "5")) {
-            fileNamePrefix = "招商经理业绩报告";
-        } else if (StrUtil.equals(wmScorePackage1.getTypeid(), "4")) {
-            fileNamePrefix = "兼职学术信息沟通专员业绩报告";
-        }
-
-        MultipartFile multipartFile = new MockMultipartFile(fileNamePrefix + "(" + packageId + ")", "兼职学术推广员业绩报告(" + packageId + ").doc", "text/plain", IOUtils
-                .toByteArray(input));
-        return sysFileService.uploadFileAllUrlRealName(multipartFile, username);
-
-    }
-
-    /*合并导出--汇总
-     */
-    public Map<String, Object> exportZbCommon(WmTask wmTask) {
-        String packageId = wmTask.getScorePackageId();  // 获取积分包ID
-        if (null == packageId) {
-            packageId = wmTask.getScorePackageDrugId();
-        }
-
-        Map<String, Object> excelMap = new HashMap<>();
-        WmScorePackage wmScorePackage1 = wmScorePackageService.getById(packageId);
-        WmDaDrugEnt wmDaDrugEnt = wmDaDrugEntService.getById(wmScorePackage1.getDrugEntId());
-        if (wmDaDrugEnt == null) {
-            wmDaDrugEnt = new WmDaDrugEnt();
-            wmDaDrugEnt.setEntname("无");
-        }
-
-        List<String> strs = new ArrayList<>();
-        if (packageId.contains(",")) {
-            strs.addAll(Arrays.asList(packageId.split(",")));
-        } else {
-            strs.add(packageId);
-        }
-        wmTask.setExtIds(strs);
-
-
-        List<Map<String, Object>> wmTaskList = wmTaskService.getTaskListByIdsOld(wmTask);
-        if (wmScorePackage1.getPackageType2().equals("2")) {
-            wmTaskList = wmTaskService.getTaskListByIdsJs(wmTask);
-        }
-        if (wmTaskList.size() > 0) {
-            List<XlsTask> xlsTaskList = new ArrayList<>();
-            Map<String, Object> userMap = new HashMap<>();
-            for (Map<String, Object> wmt : wmTaskList) {
-                XlsTask xlsTask = new XlsTask();
-                xlsTask.setTaskNum(Integer.valueOf(wmt.get("score_count") + ""));
-                xlsTask.setTaskType(wmt.get("base_id") + "");
-                xlsTask.setUsername(wmt.get("realname") + "");
-                xlsTask.setScore(Integer.parseInt((wmt.get("score") == null ? "0" : wmt.get("score")) + ""));
-                xlsTask.setDrugEntName(wmDaDrugEnt.getEntname());
-                xlsTask.setDeptName(wmt.get("dept_name") + "");
-                xlsTask.setCreateTime(wmt.get("create_time") + "");
-                xlsTaskList.add(xlsTask);
-
-                String buildKey = wmt.get("realname") + "_" + wmDaDrugEnt.getEntname() + "_" + wmt.get("dept_name") + "";
-                if (userMap.containsKey(buildKey)) {
-                    try {
-                        userMap.put(buildKey, Integer.parseInt(wmt.get("score") == null ? "0" : wmt.get("score") + "") + Integer
-                                .parseInt(userMap.get(buildKey) == null ? "0" : userMap.get(buildKey) + ""));
-                        userMap.put(buildKey + "_total", Integer.parseInt(wmt.get("score_count") + "") + Integer.parseInt(userMap
-                                .get(buildKey + "_total") + ""));
-
-                    } catch (Exception ex) {
-                    }
-                } else {
-                    userMap.put(buildKey, wmt.get("score"));
-                    userMap.put(buildKey + "_total", Integer.parseInt(wmt.get("score_count") + ""));
-                }
-            }
-
-
-            List<WmTask> wmTaskDetialList = wmTaskService.getTaskListByIdsReturnWmtaskInfo(wmTask);
-            List<Map<String, Object>> wmTaskDetialMap = new ArrayList<>();
-
-            List<String> listPackageIds = new ArrayList<>();
-
-            if (wmTaskDetialList.size() > 0) {
-                for (WmTask wmTask1 :
-                        wmTaskDetialList) {
-                    Map<String, Object> map = new HashMap<>();
-                    WmTaskType wmTaskTypeTemp1 = wmTaskTypeService.getById(wmTask1.getTaskTypeId());
-                    map.put("taskType", wmTaskTypeTemp1.getTaskTypeName());
-                    DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-                    String strDate2 = dtf2.format(wmTask1.getCreateTime());
-                    map.put("taskTime", strDate2);
-                    if (wmScorePackage1.getPackageType2().equals("2")) {
-                        map.put("taskUser", sysUserService.getByIdIgnore(wmTask1.getTaskUserId()).getRealname());
-                    } else {
-                        map.put("taskUser", sysUserService.getByIdIgnore(wmTask1.getTaskUserId()).getRealname());
-                    }
-
-                    map.put("taskTypeId", wmTask1.getTaskTypeId());
-                    map.put("score", wmTask1.getScore());
-                    map.put("taskNum", 1);
-                    wmTaskDetialMap.add(map);
-
-                    if (listPackageIds.size() == 0) {
-                        listPackageIds.add(wmTask1.getScorePackageId());
-                    } else {
-                        boolean isInscore = true;
-                        for (String str : listPackageIds) {
-                            if (str.equals(wmTask1.getScorePackageId())) {
-                                isInscore = false;
-                            }
-                        }
-
-                        if (isInscore) {
-                            listPackageIds.add(wmTask1.getScorePackageId());
-                        }
-                    }
-                }
-
-                // 待审核积分值
-                int toApproveSum = wmTaskDetialList.stream()
-                        .mapToInt(WmTask::getScore).sum();
-                excelMap.put("toApproveScore", toApproveSum);
-            }
-
-            if (listPackageIds.size() > 0) {
-                List<WmScorePackage> wmScorePackageList = wmScorePackageService.listByIds(listPackageIds);
-                Integer totalScorePackage = 0;
-                BigDecimal settleAmount = new BigDecimal("0");
-                if (wmScorePackageList.size() > 0) {
-                    for (WmScorePackage wmScorePackage : wmScorePackageList) {
-                        totalScorePackage += wmScorePackage.getScore();
-                        if (wmScorePackage.getSettleStatus() != null && wmScorePackage.getSettleStatus() == 1) {
-                            settleAmount = settleAmount.add(wmScorePackage.getSettleAmount());
-                        }
-                    }
-                }
-                excelMap.put("settleAmount", "0".equals(settleAmount.toString()) ? " " : settleAmount);
-                excelMap.put("totalscorePackageScore", totalScorePackage);
-                if (wmScorePackage1.getPackageType1().equals("2") || wmScorePackage1.getPackageType1().equals("3")) {
-                    if (!wmScorePackage1.getPackageType2().equals("2")) {
-                        excelMap.put("totalscorePackageTaskNum", wmScorePackage1.getTaskNum() * wmScorePackage1.getUserNum());//积分包值任务个数
-                    }
-                }
-
-                List<WmTask> tasks = wmTaskService.list(Wrappers.<WmTask>lambdaQuery()
-                        .in(WmTask::getScorePackageId, listPackageIds));
-
-                if (CollUtil.isNotEmpty(tasks)) {
-                    int sum = tasks.stream()
-//                            .filter(t -> "3".equals( t.getTaskStatus()) && WmTask.TaskSettleStatusEnum.SETTLED.getCode().equals(t.getTaskSettleStatus()))
-                            .filter(t -> !"4".equals( t.getTaskStatus()))
-                            .mapToInt(WmTask::getScore).sum();
-                    excelMap.put("submitAmount", sum);
-                }
-            }
-
-            excelMap.put("rwmxTable", wmTaskDetialMap);
-            excelMap.put("mxTable", xlsTaskList);
-            excelMap.put("ryTable", userMap);
-
-        }
-
-        Map<String, Timestamp> maxMaxTime = wmTaskService.getMaxCreateTime(wmTask);
-        System.out.println(maxMaxTime);
-        LocalDateTime MaxTime = maxMaxTime.get("MaxTime").toLocalDateTime();
-        excelMap.put("year", MaxTime.getYear() + "");
-        Integer month = MaxTime.getMonthValue();
-        if (month < 10) {
-            excelMap.put("month", "0" + MaxTime.getMonthValue() + "");
-        } else {
-            excelMap.put("month", MaxTime.getMonthValue() + "");
-        }
-        Integer day = MaxTime.getDayOfMonth();
-        if (day < 10) {
-            excelMap.put("day", "0" + MaxTime.getDayOfMonth() + "");
-        } else {
-            excelMap.put("day", MaxTime.getDayOfMonth() + "");
-        }
-
-        List<Map<String, Object>> wmTaskCount = wmTaskService.getTaskListByIdsCount(wmTask);
-        if (wmTaskCount.size() > 0) {
-            Integer total = 0;
-            Integer sum = 0;
-            for (Map<String, Object> map :
-                    wmTaskCount) {
-                if (null != map.get("taskCount")) {
-                    total += Integer.parseInt(map.get("taskCount") + "");
-                }
-
-                if (null != map.get("taskSum")) {
-                    sum += Integer.parseInt(map.get("taskSum") + "");
-                }
-
-            }
-            Map<String, Object> totalMap = new HashMap<>();
-            totalMap.put("taskTypeName", "合计");
-            totalMap.put("taskCount", total);
-            totalMap.put("taskSum", sum);
-            wmTaskCount.add(totalMap);
-
-            excelMap.put("ztTable", wmTaskCount);
-        }
-
-        // 任务小类及对应的任务个数和积分值
-        List<WmTask> taskList = wmTaskMapper.selectBatchIds(Arrays.asList(wmTask.getId().split(",")));
-
-        // 查询taskType
-        List<WmTaskType> taskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
-                .eq(WmTaskType::getTaskTypeLevel, "1")
-                .eq(WmTaskType::getDelFlag, "0")
-//                .eq(WmTaskType::getEnableFlag, "0")
-        );
-        // taskType通过id分组(key为parentId,value为taskTypeId的set)
-        Map<String, String> taskTypeIdMap = taskTypeList.stream()
-                .collect(Collectors.toMap(WmTaskType::getId, WmTaskType::getTaskTypeName));
-
-        // task通过taskTypeId分组
-        Map<String, List<WmTask>> taskTypeMap = taskList.stream()
-                .collect(Collectors.groupingBy(WmTask::getTaskTypeId, Collectors.toList()));
-
-        // 封装brief table1数据(统计每个小类任务的积分、任务数)
-        List<Map<String, Object>> briefTable1List = new ArrayList<>();
-        taskTypeMap.forEach((taskTypeId, wmTasks) -> {
-            Map<String, Object> briefTable1Params = new HashMap<>();
-            briefTable1Params.put("taskTypeName", taskTypeIdMap.get(taskTypeId));
-            briefTable1Params.put("taskCount", wmTasks.size());
-            briefTable1Params.put("taskSum", wmTasks.stream().map(WmTask::getScore).reduce(0, Integer::sum));
-            briefTable1List.add(briefTable1Params);
-        });
-        Map<String, Object> briefTable1TotalParams = new HashMap<>();
-        briefTable1TotalParams.put("taskTypeName", "合计");
-        briefTable1TotalParams.put("taskCount", taskList.size());
-        briefTable1TotalParams.put("taskSum", taskList.stream().map(WmTask::getScore).reduce(0, Integer::sum));
-        briefTable1List.add(briefTable1TotalParams);
-        excelMap.put("briefTable", briefTable1List);
-
-        SysDept paramDept = new SysDept();
-        paramDept.setDeptId(Integer.valueOf(wmScorePackage1.getSendPackageDeptId()));
-        SysDept wmDaAgent = sysDeptService.selectDeptById(paramDept);
-        excelMap.put("wt_ent", wmDaAgent.getName());
-
-        excelMap.put("drugEnt", "");
-
-        String ruleDate = wmScorePackage1.getBelongDate();
-        excelMap.put("rule_year", ruleDate.substring(0, 4));
-        excelMap.put("rule_month", ruleDate.substring(5, 7));
-
-        List<Map<String, Object>> wmTaskZd = wmTaskService.getTaskListByIdsZd(wmTask);
-        if (wmScorePackage1.getPackageType2().equals("2")) {
-            wmTaskZd = wmTaskService.getTaskListByIdsZdJs(wmTask);
-        }
-
-        if (null != wmTaskZd) {
-            if (wmTaskZd.size() > 0) {
-                Map<String, Object> stringMap = wmTaskZd.get(0);
-                if (null == stringMap) {
-                    return null;
-                }
-                excelMap.put("tMoney", stringMap.get("sumscore") + "");
-                excelMap.put("report_users", stringMap.get("realname") + "");
-            }
-        }
-        return excelMap;
-    }
-
-    /**
-     * 个人报告导出--报告详情
-     *
-     * @param wmTask
-     * @return
-     * @throws IOException
-     */
-    public List<Map<String, Object>> exportZbInfo(WmTask wmTask) throws IOException {
-        return reportExportService.exportZbInfo(wmTask);
-    }
-
-    public String getFieldValueByFieldName(String fieldName, Object object) {
-        try {
-            Field field = object.getClass().getDeclaredField(fieldName);
-            //对private的属性的访问
-            field.setAccessible(true);
-            return field.get(object) + "";
-        } catch (Exception e) {
-            e.printStackTrace();
-            return null;
-        }
-    }
-
-}

+ 0 - 781
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/impl/ReportReviewExportForPushiServiceImpl.java

@@ -1,781 +0,0 @@
-package com.qunzhixinxi.hnqz.report.service.impl;
-
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
-import com.qunzhixinxi.hnqz.admin.api.entity.XlsTask;
-import com.qunzhixinxi.hnqz.report.config.UpmsConfig;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEnt;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmReport;
-import com.qunzhixinxi.hnqz.admin.api.constant.enums.ReportEnum;
-import com.qunzhixinxi.hnqz.report.mapper.WmTaskMapper;
-import com.qunzhixinxi.hnqz.report.service.ReportExportService;
-import com.qunzhixinxi.hnqz.report.service.SysDeptService;
-import com.qunzhixinxi.hnqz.report.service.SysFileService;
-import com.qunzhixinxi.hnqz.report.service.SysUserService;
-import com.qunzhixinxi.hnqz.report.service.WmDaDrugEntService;
-import com.qunzhixinxi.hnqz.report.service.WmReportService;
-import com.qunzhixinxi.hnqz.report.service.WmScorePackageService;
-import com.qunzhixinxi.hnqz.report.service.WmTaskContentConfigService;
-import com.qunzhixinxi.hnqz.report.service.WmTaskContentService;
-import com.qunzhixinxi.hnqz.report.service.WmTaskService;
-import com.qunzhixinxi.hnqz.report.service.WmTaskTypeService;
-import com.qunzhixinxi.hnqz.report.util.ExportReport;
-import com.qunzhixinxi.hnqz.common.core.util.R;
-import lombok.AllArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.io.IOUtils;
-import org.springframework.mock.web.MockMultipartFile;
-import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.lang.reflect.Field;
-import java.math.BigDecimal;
-import java.sql.Timestamp;
-import java.text.SimpleDateFormat;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-
-/**
- * <p>
- * 报告管理 服务实现类
- * </p>
- *
- * @author hnqz
- * @since 2018-01-20
- */
-@Slf4j
-@Service("ReportReviewExportForPushiServiceImpl")
-@AllArgsConstructor
-public class ReportReviewExportForPushiServiceImpl implements ReportExportService {
-
-    private final WmTaskService wmTaskService;
-    private final WmScorePackageService wmScorePackageService;
-    private final UpmsConfig upmsConfig;
-    private final SysFileService sysFileService;
-    private final WmDaDrugEntService wmDaDrugEntService;
-    private final WmTaskTypeService wmTaskTypeService;
-    private final SysUserService sysUserService;
-    private final SysDeptService sysDeptService;
-    private final WmTaskContentService wmTaskContentService;
-    private final WmTaskContentConfigService wmTaskContentConfigService;
-    private final WmTaskMapper wmTaskMapper;
-    private final WmReportService wmReportService;
-    private final ReportExportService reportExportService;
-
-    /**
-     * 结算报告--导出汇总报告--学术推广服务报告
-     *
-     * @param wmReport
-     * @return
-     * @throws IOException
-     */
-    @Override
-    public R newExportNb(WmReport wmReport, Integer deptId, String username) throws IOException {
-
-
-        wmReport = wmReportService.getById(wmReport.getId());
-        List<WmTask> taskList = new ArrayList<>();//该报告关联的所有未提交的任务
-        //更新任务表审批意见
-        WmScorePackage scorePackage = wmScorePackageService.getById(wmReport.getScoreId());
-        WmTask wmTask = new WmTask();
-        wmTask.setDelFlag("0");
-        wmTask.setEnableFlag("0");
-        wmTask.setRealFlag("0");
-
-        SysDept sysDept = sysDeptService.getById(scorePackage.getSendPackageDeptId());
-
-
-        if ("0".equals(scorePackage.getTypeid())) {//药企
-            wmTask.setReportDrugId(wmReport.getId());
-            wmTask.setReportDrugApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());//审核通过的状态
-            taskList = wmTaskService.list(Wrappers.query(wmTask));
-        } else if ("1".equals(scorePackage.getTypeid())) {//一级代理商类型
-            wmTask.setReportOneId(wmReport.getId());
-            if (sysDept.getLevel() == 2) {
-                wmTask.setReportDrugApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());//审核通过的状态
-            } else {
-                wmTask.setReportOneApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());//审核通过的状态
-            }
-
-            taskList = wmTaskService.list(Wrappers.query(wmTask));
-        } else if ("2".equals(scorePackage.getTypeid())) {//二级代理商类型
-            wmTask.setReportSecondId(wmReport.getId());
-            wmTask.setReportSecondApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());//审核通过的状态
-            taskList = wmTaskService.list(Wrappers.query(wmTask));
-        }
-        if (null == taskList || taskList.size() <= 0) {
-            return R.failed("ERROR_未查询到该报告关联的待审核的任务");
-        }
-        String ids = taskList.stream().map(WmTask::getId).collect(Collectors.joining(","));
-        wmTask.setScorePackageId(wmReport.getScoreId().toString());
-        wmTask.setId(ids);
-
-        return exportNb(wmTask, wmReport, deptId, username);//报告汇总
-    }
-
-
-    /**
-     * 结算报告--导出汇总报告--学术推广服务报告
-     *
-     * @param wmTask
-     * @param wmReport
-     * @return
-     * @throws IOException
-     */
-    private R exportNb(WmTask wmTask, WmReport wmReport, Integer deptId, String username) throws IOException {
-
-        WmTask wmTaskparam = wmTask;
-        String packageId = wmTask.getScorePackageId();  // 获取积分包ID
-        if (null == packageId) {
-            return R.failed("积分包ID不能为空");
-        }
-
-        List<String> list = new ArrayList<>();
-        list.add(packageId);
-
-        wmTask.setExtIds(list);
-
-        Map<String, Object> excelMap = new HashMap<>();
-
-        WmScorePackage wmScorePackage = wmScorePackageService.getById(packageId);
-        if (null == wmScorePackage) {
-            return R.failed("获取积分包失败");
-        }
-
-        excelMap.put("totalscorePackageScore", wmScorePackage.getScore());
-        if (wmScorePackage.getPackageType1().equals("2") || wmScorePackage.getPackageType1().equals("3")) {
-            excelMap.put("totalscorePackageTaskNum", wmScorePackage.getTaskNum() * wmScorePackage.getUserNum());//积分包值任务个数
-        }
-
-
-        List<Map<String, Object>> wmTaskList = wmTaskService.getTaskListByIds(wmTask);
-
-
-        List<XlsTask> xlsTaskList = new ArrayList<>();//mxTable
-        Integer totalMoney = 0;
-//		wmTask.setScorePackageId(null);
-//		wmTask.setScorePackageDrugId(null);
-
-        //当前登陆人的机构
-        SysDept sysDept = sysDeptService.getById(deptId);
-
-        Map<String, Object> userMap = new HashMap<>();
-
-        //委托公司(结算企业)
-        SysDept drugEnt = sysDeptService.getById(wmReport.getDrugEntId());
-        //WmDaDrugEnt wmDaDrugEnt = wmDaDrugEntService.getById(SecurityUtils.getUser().getDrugEntId());
-
-        //报告公司(申请结算企业)
-        SysDept applydrugEnt = sysDeptService.getById(wmReport.getApplyDrugEntId());
-        //WmDaAgent wmDaAgent = wmDaAgentService.getById(wmScorePackage.getLevel1Id());
-
-        for (Map<String, Object> wmT : wmTaskList) {
-            totalMoney += Integer.parseInt(wmT.get("score") + "");
-            XlsTask xlsTask = new XlsTask();
-            xlsTask.setTaskNum(1);
-            xlsTask.setCreateTime(wmT.get("create_time") + "");
-
-            xlsTask.setDeptName(sysDept.getName());
-
-            //level=2是药企
-            if (sysDept.getLevel() == 2) {
-                xlsTask.setAgentDeptName(applydrugEnt.getName());
-            }
-
-            xlsTask.setDrugEntName(drugEnt.getName());
-
-
-            xlsTask.setScore(Integer.parseInt(wmT.get("score") + ""));
-
-            xlsTask.setUsername(wmT.get("realname") + "");
-            xlsTask.setTaskType(wmT.get("base_id") + "");
-
-            xlsTaskList.add(xlsTask);
-
-            String buildKey = wmT.get("realname") + "_" + drugEnt.getName() + "_" + sysDept.getName();
-            //人员表格
-            if (userMap.containsKey(buildKey)) {
-                try {
-                    userMap.put(buildKey, Integer.parseInt(wmT.get("score") + "") + Integer.parseInt(userMap.get(buildKey) + ""));
-                    userMap.put(buildKey + "_total", Integer.parseInt(wmT.get("score_count") + "") + Integer.parseInt(userMap
-                            .get(buildKey + "_total") + ""));
-
-                } catch (Exception ex) {
-                }
-            } else {
-                userMap.put(buildKey, Integer.parseInt(wmT.get("score") + ""));
-                userMap.put(buildKey + "_total", Integer.parseInt(wmT.get("score_count") + ""));
-            }
-        }
-
-//		List<String> list1 = new ArrayList<>();
-//		list1.add(packageId);
-
-        //学术推广服务任务明细表格
-        List<WmTask> wmTaskDetialList = wmTaskService.getTaskListByIdsReturnWmtaskInfo(wmTask);
-        List<Map<String, Object>> wmTaskDetialMap = new ArrayList<>();
-
-        if (wmTaskDetialList.size() > 0) {
-
-
-             for (WmTask wmTask1 : wmTaskDetialList) {
-                 Map<String, Object> map = new HashMap<>();
-                 WmTaskType wmTaskTypeTemp1 = wmTaskTypeService.getById(wmTask1.getTaskTypeId());
-                 map.put("taskType", wmTaskTypeTemp1.getTaskTypeName());
-                 DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-                 String strDate2 = dtf2.format(wmTask1.getCreateTime());
-                 map.put("taskTime", strDate2);
- //				map.put("taskUser", sysUserService.getById(wmTask1.getTaskUserId()).getRealname());
-                 map.put("taskUser", sysUserService.getByIdIgnore(wmTask1.getTaskUserId()).getRealname());
-                 map.put("taskTypeId", wmTask1.getTaskTypeId());
-                 map.put("score", wmTask1.getScore());
-                 map.put("taskNum", 1);
-
-                 wmTaskDetialMap.add(map);
-             }
-
-            // 待审核积分值
-            int toApproveSum = wmTaskDetialList.stream()
-                    .mapToInt(WmTask::getScore).sum();
-            excelMap.put("toApproveScore", toApproveSum);
-        }
-
-        excelMap.put("rwmxTable", wmTaskDetialMap);//学术推广服务任务明细表格
-
-        if (totalMoney > wmScorePackage.getScore()) {
-            totalMoney = wmScorePackage.getScore();
-        }
-
-        excelMap.put("ryTable", userMap);//人员表格
-        excelMap.put("tMoney", totalMoney);
-
-        if (xlsTaskList.size() > 0) {
-            excelMap.put("wt_ent", xlsTaskList.get(0).getDrugEntName());//委托公司
-            excelMap.put("drugEnt", xlsTaskList.get(0).getDrugEntName());//服务药企
-            excelMap.put("mxTable", xlsTaskList);
-        }
-
-        List<Map<String, String>> ztTableList = new ArrayList<>();
-        Map<String, String> ztMap = new HashMap<>();
-        List<Map<String, Object>> wmTaskCount = wmTaskService.getTaskListByIdsCount(wmTask);
-        if (wmTaskCount.size() > 0) {
-            Integer total = 0;
-            Integer sum = 0;
-            for (Map<String, Object> map :
-                    wmTaskCount) {
-                if (null != map.get("taskCount")) {
-                    total += Integer.parseInt(map.get("taskCount") + "");
-                }
-
-                if (null != map.get("taskSum")) {
-                    sum += Integer.parseInt(map.get("taskSum") + "");
-                }
-
-            }
-            Map<String, Object> totalMap = new HashMap<>();
-            totalMap.put("taskTypeName", "合计");
-            totalMap.put("taskCount", total);
-            totalMap.put("taskSum", sum);
-            wmTaskCount.add(totalMap);
-
-//            excelMap.put("totalSubmitScore", sum);
-//            excelMap.put("totalSubmitTaskNum", total);
-
-            excelMap.put("ztTable", wmTaskCount);//学术推广服务整体概况表格
-        }
-
-        // 任务小类及对应的任务个数和积分值
-        List<WmTask> taskList = wmTaskMapper.selectBatchIds(Arrays.asList(wmTask.getId().split(",")));
-
-        // 查询taskType
-        List<WmTaskType> taskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
-                .eq(WmTaskType::getTaskTypeLevel, "1")
-                .eq(WmTaskType::getDelFlag, "0")
-//                .eq(WmTaskType::getEnableFlag, "0")
-        );
-        // taskType通过id分组(key为parentId,value为taskTypeId的set)
-        Map<String, String> taskTypeIdMap = taskTypeList.stream()
-                .collect(Collectors.toMap(WmTaskType::getId, WmTaskType::getTaskTypeName));
-
-        // task通过taskTypeId分组
-        Map<String, List<WmTask>> taskTypeMap = taskList.stream()
-                .collect(Collectors.groupingBy(WmTask::getTaskTypeId, Collectors.toList()));
-
-        // 封装brief table1数据(统计每个小类任务的积分、任务数)
-        List<Map<String, Object>> briefTable1List = new ArrayList<>();
-        taskTypeMap.forEach((taskTypeId, wmTasks) -> {
-            Map<String, Object> briefTable1Params = new HashMap<>();
-            briefTable1Params.put("taskTypeName", taskTypeIdMap.get(taskTypeId));
-            briefTable1Params.put("taskCount", wmTasks.size());
-            briefTable1Params.put("taskSum", wmTasks.stream().map(WmTask::getScore).reduce(0, Integer::sum));
-            briefTable1List.add(briefTable1Params);
-        });
-        Map<String, Object> briefTable1TotalParams = new HashMap<>();
-        briefTable1TotalParams.put("taskTypeName", "合计");
-        briefTable1TotalParams.put("taskCount", taskList.size());
-        briefTable1TotalParams.put("taskSum", taskList.stream().map(WmTask::getScore).reduce(0, Integer::sum));
-        briefTable1List.add(briefTable1TotalParams);
-        excelMap.put("briefTable", briefTable1List);
-
-        //WmTaskRule wmTaskRule = wmTaskRuleService.getById(wmScorePackage.getTaskRuleId());
-        String entDate = wmScorePackage.getBelongDate() + "-31";
-        try {
-            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-            format.parse(entDate);
-        } catch (Exception ex) {
-            entDate = wmScorePackage.getBelongDate() + "-30";
-        }
-
-        if (null != applydrugEnt) {
-            excelMap.put("report_ent", applydrugEnt.getName());
-        } else {
-            excelMap.put("report_ent", "");
-        }
-
-
-        String ruleDate = wmScorePackage.getBelongDate();
-
-        excelMap.put("rule_year", ruleDate.substring(0, 4));
-        excelMap.put("rule_month", ruleDate.substring(5, 7));
-
-        //报告日期
-        Map<String, Timestamp> maxMaxTime = wmTaskService.getMaxCreateTime(wmTask);
-        System.out.println(maxMaxTime);
-        LocalDateTime MaxTime = maxMaxTime.get("MaxTime").toLocalDateTime();
-        excelMap.put("year", MaxTime.getYear() + "");
-        Integer month = MaxTime.getMonthValue();
-        if (month < 10) {
-            excelMap.put("month", "0" + MaxTime.getMonthValue() + "");
-        } else {
-            excelMap.put("month", MaxTime.getMonthValue() + "");
-        }
-        Integer day = MaxTime.getDayOfMonth();
-        if (day < 10) {
-            excelMap.put("day", "0" + MaxTime.getDayOfMonth() + "");
-        } else {
-            excelMap.put("day", MaxTime.getDayOfMonth() + "");
-        }
-
-        excelMap.put("tMoney", totalMoney);
-        excelMap.put("scoreId", wmScorePackage.getScorePackageName());
-
-        List<Map<String, Object>> infoList = exportZbInfo(wmTaskparam);
-        if (null != infoList && infoList.size() > 0) {
-            excelMap.put("infoList", infoList);
-        } else {
-            return R.failed("未查询到待审核的任务");
-        }
-        //区分全职兼职学术推广员模版
-        excelMap.put("userType", wmScorePackage.getTypeid());
-
-        File f = null;
-        if (wmScorePackage.getPackageType1().equals("1")) {//定额
-            f = ExportReport.main_bulidTemplate1_pushi(excelMap, 1, upmsConfig.getBasePath(), "doc_template1_review_pushi.docx");
-        } else {//定量
-            f = ExportReport.main_bulidTemplate2(excelMap, 1, upmsConfig.getBasePath());
-        }
-
-        FileInputStream input = new FileInputStream(f);
-
-        MultipartFile multipartFile = new MockMultipartFile("学术推广服务报告(" + packageId + ")", "学术推广服务报告(" + packageId + ").doc", "text/plain", IOUtils
-                .toByteArray(input));
-        return sysFileService.uploadFileAllUrlRealName(multipartFile, username);
-    }
-
-
-    @Override
-    public R newExportNba(WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException {
-        return null;
-    }
-
-    @Override
-    public R newExportNbaHistory(WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException {
-        return null;
-    }
-
-    /**
-     * 个人承接按积分制
-     * @param wmTask
-     * @param username
-     * @return
-     * @throws IOException
-     */
-    @Override
-    public R newExportZb(WmTask wmTask, String username) throws IOException {
-        String packageId = wmTask.getScorePackageDrugId();
-        if (null == packageId) {
-            return R.failed("积分包ID不能为空");
-        }
-        LambdaQueryWrapper<WmTask> queryWrapper = new LambdaQueryWrapper();
-        queryWrapper.in(WmTask::getScorePackageId, Arrays.asList(packageId.split(",")));
-        if (StrUtil.isNotBlank(wmTask.getTaskStatus())) {
-            queryWrapper.eq(WmTask::getTaskStatus, wmTask.getTaskStatus());
-        } else {
-            queryWrapper.eq(WmTask::getTaskStatus, "3");
-        }
-        queryWrapper.eq(WmTask::getDelFlag, "0");
-        queryWrapper.eq(WmTask::getEnableFlag, "0");
-        queryWrapper.eq(WmTask::getRealFlag, "0");
-        List<WmTask> taskList = wmTaskService.list(queryWrapper);
-        if (taskList.isEmpty()) {
-            return R.failed("未查询到待审核的任务");
-        }
-        String ids = taskList.stream().map(WmTask::getId).collect(Collectors.joining(","));
-        wmTask.setScorePackageId(packageId);
-        wmTask.setId(ids);
-        return exportZb(wmTask, username);
-    }
-
-    /**
-     * 个人报告导出--众包代表业绩报告
-     *
-     * @param wmTask
-     * @return
-     * @throws IOException
-     */
-    private R exportZb(WmTask wmTask, String username) throws IOException {
-
-        WmTask wmTaskparam = wmTask;
-        String packageId = wmTask.getScorePackageId();  // 获取积分包ID
-        if (null == packageId) {
-            packageId = wmTask.getScorePackageDrugId();
-        }
-
-        if (null == packageId) {
-            return R.failed("积分包ID不能为空");
-        }
-
-        WmScorePackage wmScorePackage1 = wmScorePackageService.getById(packageId);
-
-        Map<String, Object> excelMap = exportZbCommon(wmTask);
-        if (null == excelMap) {
-            return R.failed("未查询到待审核的任务");
-        }
-
-        List<Map<String, Object>> infoList = exportZbInfo(wmTaskparam);
-        if (null != infoList && infoList.size() > 0) {
-            excelMap.put("infoList", infoList);
-        }
-        //区分全职兼职学术推广员模版
-        excelMap.put("userType", wmScorePackage1.getTypeid());
-//        excelMap.put("scoreId", wmScorePackage1.getScorePackageName());
-        List<String> extIds = wmTask.getExtIds();
-        List<WmScorePackage> wmScorePackages = wmScorePackageService.listByIds(extIds);
-        String scoreIds = wmScorePackages.stream().map(WmScorePackage::getScorePackageName).collect(Collectors.joining(","));
-        excelMap.put("scoreId", StrUtil.isBlank(scoreIds) ? wmScorePackage1.getScorePackageName() : scoreIds);
-
-        File f = null;
-        if (wmScorePackage1.getPackageType1().equals("1")) {//定额
-            String templateName = "";
-            if(StrUtil.equals(wmScorePackage1.getTypeid(), "3")){//全职学术推广员
-                templateName = "doc_template12.docx";
-            }else {
-                templateName = "doc_template11_review_pushi.docx";
-            }
-
-            f = ExportReport.main_bulidTemplate1_pushi(excelMap, 2, upmsConfig.getBasePath(), templateName);
-        } else {//定量
-            f = ExportReport.main_bulidTemplate2_pushi(excelMap, 2, upmsConfig.getBasePath());
-        }
-
-        FileInputStream input = new FileInputStream(f);
-
-        if (wmScorePackage1.getTypeid().equals("3")) {//全职
-
-        }
-        MultipartFile multipartFile = new MockMultipartFile((wmScorePackage1.getTypeid()
-                .equals("3") ? "全职" : "兼职") + "学术信息沟通专员业绩报告(" + packageId + ")", "兼职学术推广员业绩报告(" + packageId + ").doc", "text/plain", IOUtils
-                .toByteArray(input));
-        return sysFileService.uploadFileAllUrlRealName(multipartFile, username);
-
-    }
-
-    /*合并导出--汇总
-     */
-    public Map<String, Object> exportZbCommon(WmTask wmTask) {
-        String packageId = wmTask.getScorePackageId();  // 获取积分包ID
-        if (null == packageId) {
-            packageId = wmTask.getScorePackageDrugId();
-        }
-
-        Map<String, Object> excelMap = new HashMap<>();
-        WmScorePackage wmScorePackage1 = wmScorePackageService.getById(packageId);
-        WmDaDrugEnt wmDaDrugEnt = wmDaDrugEntService.getById(wmScorePackage1.getDrugEntId());
-        if (wmDaDrugEnt == null) {
-            wmDaDrugEnt = new WmDaDrugEnt();
-            wmDaDrugEnt.setEntname("无");
-        }
-
-        List<String> strs = new ArrayList<>();
-        if (packageId.contains(",")) {
-            strs.addAll(Arrays.asList(packageId.split(",")));
-        } else {
-            strs.add(packageId);
-        }
-        wmTask.setExtIds(strs);
-
-
-        List<Map<String, Object>> wmTaskList = wmTaskService.getTaskListByIdsOld(wmTask);
-        if (wmScorePackage1.getPackageType2().equals("2")) {
-            wmTaskList = wmTaskService.getTaskListByIdsJs(wmTask);
-        }
-        if (wmTaskList.size() > 0) {
-            List<XlsTask> xlsTaskList = new ArrayList<>();
-            Map<String, Object> userMap = new HashMap<>();
-            for (Map<String, Object> wmt : wmTaskList) {
-                XlsTask xlsTask = new XlsTask();
-                xlsTask.setTaskNum(Integer.valueOf(wmt.get("score_count") + ""));
-                xlsTask.setTaskType(wmt.get("base_id") + "");
-                xlsTask.setUsername(wmt.get("realname") + "");
-                xlsTask.setScore(Integer.parseInt((wmt.get("score") == null ? "0" : wmt.get("score")) + ""));
-                xlsTask.setDrugEntName(wmDaDrugEnt.getEntname());
-                xlsTask.setDeptName(wmt.get("dept_name") + "");
-                xlsTask.setCreateTime(wmt.get("create_time") + "");
-                xlsTaskList.add(xlsTask);
-
-                String buildKey = wmt.get("realname") + "_" + wmDaDrugEnt.getEntname() + "_" + wmt.get("dept_name") + "";
-                if (userMap.containsKey(buildKey)) {
-                    try {
-                        userMap.put(buildKey, Integer.parseInt(wmt.get("score") == null ? "0" : wmt.get("score") + "") + Integer
-                                .parseInt(userMap.get(buildKey) == null ? "0" : userMap.get(buildKey) + ""));
-                        userMap.put(buildKey + "_total", Integer.parseInt(wmt.get("score_count") + "") + Integer.parseInt(userMap
-                                .get(buildKey + "_total") + ""));
-
-                    } catch (Exception ex) {
-                    }
-                } else {
-                    userMap.put(buildKey, wmt.get("score"));
-                    userMap.put(buildKey + "_total", Integer.parseInt(wmt.get("score_count") + ""));
-                }
-            }
-
-
-            List<WmTask> wmTaskDetialList = wmTaskService.getTaskListByIdsReturnWmtaskInfo(wmTask);
-            List<Map<String, Object>> wmTaskDetialMap = new ArrayList<>();
-
-            List<String> listPackageIds = new ArrayList<>();
-
-            if (wmTaskDetialList.size() > 0) {
-                for (WmTask wmTask1 :
-                        wmTaskDetialList) {
-                    Map<String, Object> map = new HashMap<>();
-                    WmTaskType wmTaskTypeTemp1 = wmTaskTypeService.getById(wmTask1.getTaskTypeId());
-                    map.put("taskType", wmTaskTypeTemp1.getTaskTypeName());
-                    DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-                    String strDate2 = dtf2.format(wmTask1.getCreateTime());
-                    map.put("taskTime", strDate2);
-                    if (wmScorePackage1.getPackageType2().equals("2")) {
-                        map.put("taskUser", sysUserService.getByIdIgnore(wmTask1.getTaskUserId()).getRealname());
-                    } else {
-                        map.put("taskUser", sysUserService.getByIdIgnore(wmTask1.getTaskUserId()).getRealname());
-                    }
-
-                    map.put("taskTypeId", wmTask1.getTaskTypeId());
-                    map.put("score", wmTask1.getScore());
-                    map.put("taskNum", 1);
-                    wmTaskDetialMap.add(map);
-
-                    if (listPackageIds.size() == 0) {
-                        listPackageIds.add(wmTask1.getScorePackageId());
-                    } else {
-                        boolean isInscore = true;
-                        for (String str : listPackageIds) {
-                            if (str.equals(wmTask1.getScorePackageId())) {
-                                isInscore = false;
-                            }
-                        }
-
-                        if (isInscore) {
-                            listPackageIds.add(wmTask1.getScorePackageId());
-                        }
-                    }
-                }
-
-                // 待审核积分值
-                int toApproveSum = wmTaskDetialList.stream()
-                        .mapToInt(WmTask::getScore).sum();
-                excelMap.put("toApproveScore", toApproveSum);
-            }
-
-            if (listPackageIds.size() > 0) {
-                List<WmScorePackage> wmScorePackageList = wmScorePackageService.listByIds(listPackageIds);
-                Integer totalScorePackage = 0;
-                BigDecimal settleAmount = new BigDecimal("0");
-                if (wmScorePackageList.size() > 0) {
-                    for (WmScorePackage wmScorePackage : wmScorePackageList) {
-                        totalScorePackage += wmScorePackage.getScore();
-                        if (wmScorePackage.getSettleStatus() != null && wmScorePackage.getSettleStatus() == 1) {
-                            settleAmount = settleAmount.add(wmScorePackage.getSettleAmount());
-                        }
-                    }
-                }
-                excelMap.put("settleAmount", "0".equals(settleAmount.toString()) ? " " : settleAmount);
-                excelMap.put("totalscorePackageScore", totalScorePackage);
-                if (wmScorePackage1.getPackageType1().equals("2") || wmScorePackage1.getPackageType1().equals("3")) {
-                    if (!wmScorePackage1.getPackageType2().equals("2")) {
-                        excelMap.put("totalscorePackageTaskNum", wmScorePackage1.getTaskNum() * wmScorePackage1.getUserNum());//积分包值任务个数
-                    }
-                }
-
-                List<WmTask> tasks = wmTaskService.list(Wrappers.<WmTask>lambdaQuery()
-                        .in(WmTask::getScorePackageId, listPackageIds));
-
-                if (CollUtil.isNotEmpty(tasks)) {
-                    int sum = tasks.stream()
-//                            .filter(t -> "3".equals( t.getTaskStatus()) && WmTask.TaskSettleStatusEnum.SETTLED.getCode().equals(t.getTaskSettleStatus()))
-                            .filter(t -> !"4".equals( t.getTaskStatus()))
-                            .mapToInt(WmTask::getScore).sum();
-                    excelMap.put("submitAmount", sum);
-                }
-            }
-
-            excelMap.put("rwmxTable", wmTaskDetialMap);
-            excelMap.put("mxTable", xlsTaskList);
-            excelMap.put("ryTable", userMap);
-
-        }
-
-        Map<String, Timestamp> maxMaxTime = wmTaskService.getMaxCreateTime(wmTask);
-        System.out.println(maxMaxTime);
-        LocalDateTime MaxTime = maxMaxTime.get("MaxTime").toLocalDateTime();
-        excelMap.put("year", MaxTime.getYear() + "");
-        Integer month = MaxTime.getMonthValue();
-        if (month < 10) {
-            excelMap.put("month", "0" + MaxTime.getMonthValue() + "");
-        } else {
-            excelMap.put("month", MaxTime.getMonthValue() + "");
-        }
-        Integer day = MaxTime.getDayOfMonth();
-        if (day < 10) {
-            excelMap.put("day", "0" + MaxTime.getDayOfMonth() + "");
-        } else {
-            excelMap.put("day", MaxTime.getDayOfMonth() + "");
-        }
-
-        // 任务大类及对应的任务个数和积分值
-        List<Map<String, Object>> wmTaskCount = wmTaskService.getTaskListByIdsCount(wmTask);
-        if (wmTaskCount.size() > 0) {
-            Integer total = 0;
-            Integer sum = 0;
-            for (Map<String, Object> map :
-                    wmTaskCount) {
-                if (null != map.get("taskCount")) {
-                    total += Integer.parseInt(map.get("taskCount") + "");
-                }
-
-                if (null != map.get("taskSum")) {
-                    sum += Integer.parseInt(map.get("taskSum") + "");
-                }
-
-            }
-            Map<String, Object> totalMap = new HashMap<>();
-            totalMap.put("taskTypeName", "合计");
-            totalMap.put("taskCount", total);
-            totalMap.put("taskSum", sum);
-            wmTaskCount.add(totalMap);
-
-            excelMap.put("ztTable", wmTaskCount);
-        }
-
-        // 任务小类及对应的任务个数和积分值
-        List<WmTask> taskList = wmTaskMapper.selectBatchIds(Arrays.asList(wmTask.getId().split(",")));
-
-        // 查询taskType
-        List<WmTaskType> taskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
-                .eq(WmTaskType::getTaskTypeLevel, "1")
-                .eq(WmTaskType::getDelFlag, "0")
-//                .eq(WmTaskType::getEnableFlag, "0")
-        );
-        // taskType通过id分组(key为parentId,value为taskTypeId的set)
-        Map<String, String> taskTypeIdMap = taskTypeList.stream()
-                .collect(Collectors.toMap(WmTaskType::getId, WmTaskType::getTaskTypeName));
-
-        // task通过taskTypeId分组
-        Map<String, List<WmTask>> taskTypeMap = taskList.stream()
-                .collect(Collectors.groupingBy(WmTask::getTaskTypeId, Collectors.toList()));
-
-        // 封装brief table1数据(统计每个小类任务的积分、任务数)
-        List<Map<String, Object>> briefTable1List = new ArrayList<>();
-        taskTypeMap.forEach((taskTypeId, wmTasks) -> {
-            Map<String, Object> briefTable1Params = new HashMap<>();
-            briefTable1Params.put("taskTypeName", taskTypeIdMap.get(taskTypeId));
-            briefTable1Params.put("taskCount", wmTasks.size());
-            briefTable1Params.put("taskSum", wmTasks.stream().map(WmTask::getScore).reduce(0, Integer::sum));
-            briefTable1List.add(briefTable1Params);
-        });
-        Map<String, Object> briefTable1TotalParams = new HashMap<>();
-        briefTable1TotalParams.put("taskTypeName", "合计");
-        briefTable1TotalParams.put("taskCount", taskList.size());
-        briefTable1TotalParams.put("taskSum", taskList.stream().map(WmTask::getScore).reduce(0, Integer::sum));
-        briefTable1List.add(briefTable1TotalParams);
-        excelMap.put("briefTable", briefTable1List);
-
-        SysDept paramDept = new SysDept();
-        paramDept.setDeptId(Integer.valueOf(wmScorePackage1.getSendPackageDeptId()));
-        SysDept wmDaAgent = sysDeptService.selectDeptById(paramDept);
-        excelMap.put("wt_ent", wmDaAgent.getName());
-
-        excelMap.put("drugEnt", "");
-
-        String ruleDate = wmScorePackage1.getBelongDate();
-        excelMap.put("rule_year", ruleDate.substring(0, 4));
-        excelMap.put("rule_month", ruleDate.substring(5, 7));
-
-        List<Map<String, Object>> wmTaskZd = wmTaskService.getTaskListByIdsZd(wmTask);
-        if (wmScorePackage1.getPackageType2().equals("2")) {
-            wmTaskZd = wmTaskService.getTaskListByIdsZdJs(wmTask);
-        }
-
-        if (null != wmTaskZd) {
-            if (wmTaskZd.size() > 0) {
-                Map<String, Object> stringMap = wmTaskZd.get(0);
-                if (null == stringMap) {
-                    return null;
-                }
-                excelMap.put("tMoney", stringMap.get("sumscore") + "");
-                excelMap.put("report_users", stringMap.get("realname") + "");
-            }
-        }
-        return excelMap;
-    }
-
-    /**
-     * 个人报告导出--报告详情
-     *
-     * @param wmTask
-     * @return
-     * @throws IOException
-     */
-    public List<Map<String, Object>> exportZbInfo(WmTask wmTask) throws IOException {
-        return reportExportService.exportZbInfo(wmTask);
-    }
-
-    public String getFieldValueByFieldName(String fieldName, Object object) {
-        try {
-            Field field = object.getClass().getDeclaredField(fieldName);
-            //对private的属性的访问
-            field.setAccessible(true);
-            return field.get(object) + "";
-        } catch (Exception e) {
-            e.printStackTrace();
-            return null;
-        }
-    }
-
-}

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 837 - 1881
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/util/ExportReport.java


Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно