package com.ruoyi.system.service.impl.projectV2;

import com.ruoyi.common.constant.CommonConstants;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.projectV2.*;
import com.ruoyi.system.domain.projectV2.Vo.ZsyzQktjDc;
import com.ruoyi.system.domain.projectV2.Vo.ZsyzQktjDjks;
import com.ruoyi.system.domain.projectV2.Vo.ZsyzQktjYxxs;
import com.ruoyi.system.domain.projectV2.Vo.ZsyzQktjZswc;
import com.ruoyi.system.mapper.SysDeptMapper;
import com.ruoyi.system.mapper.projectV2.*;
import com.ruoyi.system.service.projectV2.IZsyzQktjService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

import static com.ruoyi.common.constant.CommonConstants.LEADER;
import static com.ruoyi.common.constant.CommonConstants.MANAGE;

/**
 * 招商引资_情况月统计Service业务层处理
 *
 * @author ruoyi
 * @date 2023-03-10
 */
@Service
public class ZsyzQktjServiceImpl implements IZsyzQktjService {
    @Autowired
    private ZsyzQktjMapper zsyzQktjMapper;

    @Autowired
    private ZsyzFjMapper zsyzFjMapper;

    @Autowired
    private ZsyzSbbzbMapper zsyzSbbzbMapper;

    @Autowired
    private SysDeptMapper sysDeptMapper;
    @Autowired
    private ZsyzWczsMapper zsyzWczsMapper;
    @Autowired
    private ZsyzDjksMapper zsyzDjksMapper;


    /**
     * 查询招商引资_情况月统计
     *
     * @param id 招商引资_情况月统计主键
     * @return 招商引资_情况月统计
     */
    @Override
    public ZsyzQktj selectZsyzQktjById(Long id) {
        ZsyzQktj zsyzQktj = zsyzQktjMapper.selectZsyzQktjById(id);
        if(zsyzQktj.getZsyzFjList().size()<=0){
            zsyzQktj.setZsyzFjList(new ArrayList<>());
        }else{
            List<ZsyzFj> zsyzFjList = new ArrayList<>();
            //只拿type为6的附件
            for (ZsyzFj zsyzFj : zsyzQktj.getZsyzFjList()) {
                if(zsyzFj.getType().equals("6")){
                    zsyzFjList.add(zsyzFj);
                }
            }
            zsyzQktj.setZsyzFjList(zsyzFjList);
        }
        if(zsyzQktj.getZsyzFjList().size()==1 && StringUtils.isEmpty(zsyzQktj.getZsyzFjList().get(0).getPath())){
            zsyzQktj.setZsyzFjList(new ArrayList<>());
        }
        return zsyzQktj ;
    }

    /**
     * 查询招商引资_情况月统计列表
     *
     * @param zsyzQktj 招商引资_情况月统计
     * @return 招商引资_情况月统计
     */
    @Override
    public List<ZsyzQktj> selectZsyzQktjList(ZsyzQktj zsyzQktj) {

        SysUser user = SecurityUtils.getLoginUser().getUser();
        zsyzQktj.setDeptId(user.getDeptId());
        return zsyzQktjMapper.selectZsyzQktjList(zsyzQktj);
    }

    /**
     * 新增招商引资_情况月统计
     *
     * @param zsyzQktj 招商引资_情况月统计
     * @return 结果
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public AjaxResult insertZsyzQktj(ZsyzQktj zsyzQktj) {
        SysUser user = SecurityUtils.getLoginUser().getUser();

        //查询库里是否存在数据
        ZsyzQktj qktj = new ZsyzQktj();
        qktj.setMonth(zsyzQktj.getMonth());
        qktj.setYear(zsyzQktj.getYear());
        qktj.setDeptId(user.getDeptId());
        List<ZsyzQktj> zsyzQktjList = zsyzQktjMapper.selectZsyzQktjList(qktj);
        if(zsyzQktjList.size()>0){
            return AjaxResult.error("当前月份数据已存在，请勿重复新增");
        }

        zsyzQktj.setDeptId(user.getDeptId());
        zsyzQktj.setDeptName(user.getDept().getDeptName());
        zsyzQktj.setCreateTime(DateUtils.getNowDate());
        int count = zsyzQktjMapper.insertZsyzQktj(zsyzQktj);
        //修改附件
        if (zsyzQktj.getZsyzFjList() != null && zsyzQktj.getZsyzFjList().size() > 0) {
            ZsyzFj zsyzFjDelete = new ZsyzFj();
            zsyzFjDelete.setSourceId(zsyzQktj.getId());
            zsyzFjDelete.setType(CommonConstants.SIX);
            //先删除相关附件
            zsyzFjMapper.deleteZsyzFjBySourceId(zsyzFjDelete);
            //再将文件新增进数据库
            List<ZsyzFj> zsyzFjList = zsyzQktj.getZsyzFjList();
            if (zsyzFjList != null) {
                for (ZsyzFj zsyzFj : zsyzFjList) {
                    zsyzFj.setSourceId(zsyzQktj.getId());
                    zsyzFj.setType(CommonConstants.SIX);
                    zsyzFj.setXmId(0L);
                    //zsyzFj.setXmbh(zsyzSbbzb.getXmbh());
                    zsyzFjMapper.insertZsyzFj(zsyzFj);
                }
            }
        }
        return AjaxResult.success("新增成功 ");
    }

    /**
     * 修改招商引资_情况月统计
     *
     * @param zsyzQktj 招商引资_情况月统计
     * @return 结果
     */
    @Override
    public int updateZsyzQktj(ZsyzQktj zsyzQktj) {
        zsyzQktj.setUpdateTime(DateUtils.getNowDate());
        //修改附件
        ZsyzFj zsyzFjDelete = new ZsyzFj();
        zsyzFjDelete.setSourceId(zsyzQktj.getId());
        zsyzFjDelete.setType(CommonConstants.SIX);
        //先删除相关附件
        zsyzFjMapper.deleteZsyzFjBySourceId(zsyzFjDelete);
        //再将文件新增进数据库
        List<ZsyzFj> zsyzFjList = zsyzQktj.getZsyzFjList();
        if (zsyzFjList != null) {
            for (ZsyzFj zsyzFj : zsyzFjList) {
                zsyzFj.setSourceId(zsyzQktj.getId());
                zsyzFj.setType(CommonConstants.SIX);
                zsyzFj.setXmId(0L);
                zsyzFjMapper.insertZsyzFj(zsyzFj);
            }
        }
        return zsyzQktjMapper.updateZsyzQktj(zsyzQktj);
    }

    /**
     * 批量删除招商引资_情况月统计
     *
     * @param ids 需要删除的招商引资_情况月统计主键
     * @return 结果
     */
    @Override
    public int deleteZsyzQktjByIds(Long[] ids) {
        return zsyzQktjMapper.deleteZsyzQktjByIds(ids);
    }

    /**
     * 删除招商引资_情况月统计信息
     *
     * @param id 招商引资_情况月统计主键
     * @return 结果
     */
    @Override
    public int deleteZsyzQktjById(Long id) {
        return zsyzQktjMapper.deleteZsyzQktjById(id);
    }

    @Override
    public List<ZsyzQktjDc> selectZsyzQktjListTj(ZsyzQktj zsyzQktj) {

        return statisticsMonthNew(zsyzQktj.getYear(), zsyzQktj.getMonth());
        //return statisticsMonth(zsyzQktj.getYear(), zsyzQktj.getMonth());
    }


    /**
     * 招商引资_情况月统计表
     *
     * @return
     */
    public List<ZsyzQktjDc> statisticsMonth(String year, String month) {


        List<ZsyzQktjDc> zsyzQktjDcList = new ArrayList<>();

        //List<Map<String, Object>> mapList = new ArrayList<>();
        //定义返回值
        SysUser currentUser = SecurityUtils.getLoginUser().getUser();
        String roleKey = "";
        // 如果是超级管理员/管理员，则不过滤数据
        List<SysRole> roles = SecurityUtils.getLoginUser().getUser().getRoles();
        if (roles != null && roles.size() > 0) {
            roleKey = roles.get(0).getRoleKey();
        }
        if (StringUtils.isNotNull(currentUser) && (currentUser.isAdmin() || MANAGE.equals(roleKey) || LEADER.equals(roleKey))) {
            //如果是admin/或者平台管理员/或者领导 获取到所有数据
            //查找年份的所有数据
            ZsyzQktj zsyzQktj = new ZsyzQktj();
            zsyzQktj.setYear(year);
            List<ZsyzQktj> zsyzQktjList = zsyzQktjMapper.selectZsyzQktjList(zsyzQktj);
            //将所有部门数据分部门存放
            Map<Long, List<ZsyzQktj>> zsyzQktjBmMap = zsyzQktjList.stream().collect(Collectors.groupingBy(ZsyzQktj::getDeptId));
            //获取所有部门
            List<SysDept> sysDeptList = sysDeptMapper.selectDeptList(new SysDept());
            //查询本年所有线索审核通过的项目线索
            List<ZsyzSbbzb> zsyzSbbzbList = zsyzSbbzbMapper.selectZsyzSbbzbListTz(year, null);
            //将所有项目数据分部门存放
            Map<Long, List<ZsyzSbbzb>> zsyzSbbzbBmMap = zsyzSbbzbList.stream().collect(Collectors.groupingBy(ZsyzSbbzb::getDeptId));

            for (SysDept sysDept : sysDeptList) {
                //部门不为产业链县干招商组，市直部门，承接地，市级领导，要素部门一级部门时纳入统计
                if (sysDept.getDeptId() != 101 && sysDept.getDeptId() != 102 && sysDept.getDeptId() != 103 && sysDept.getDeptId() != 200 && sysDept.getDeptId() != 201) {
                    ZsyzQktjDc zsyzQktjDc = new ZsyzQktjDc();
                    zsyzQktjDc.setDeptName(sysDept.getDeptName());


                    if (zsyzQktjBmMap.get(sysDept.getDeptId()) != null && zsyzQktjBmMap.get(sysDept.getDeptId()).size() > 0) {
                        //部门存在数据
                        Long zswcYear = 0L;//招商外出天数(年)
                        Long sjksYear = 0L;//对接客商次数(年)
                        for (ZsyzQktj qktj : zsyzQktjBmMap.get(sysDept.getDeptId())) {
                            zswcYear = zswcYear + qktj.getNumberOutings();
                            sjksYear = sjksYear + qktj.getNumberDocking();
                            if (qktj.getMonth().equals(month)) {
                                zsyzQktjDc.setZswcMonth(String.valueOf(qktj.getNumberOutings()));//招商外出天数(月)
                                zsyzQktjDc.setSjksMonth(qktj.getNumberDocking());//招商外出天数(年)
                            }

                        }
                        zsyzQktjDc.setZswcYear(String.valueOf(zswcYear));//招商外出天数(年)
                        zsyzQktjDc.setSjksYear(sjksYear);//对接客商次数(年)
                    } else {
                        //部门不存在数据
                        zsyzQktjDc.setZswcMonth("0");//招商外出天数(月)
                        zsyzQktjDc.setSjksMonth(0L);//招商外出天数(年)
                        zsyzQktjDc.setZswcYear("0");//招商外出天数(年)
                        zsyzQktjDc.setSjksYear(0L);//对接客商次数(年)
                    }

                    if (zsyzSbbzbBmMap.get(sysDept.getDeptId()) != null && zsyzSbbzbBmMap.get(sysDept.getDeptId()).size() > 0) {
                        Long yxxsMonth = 0L;//有效线索(月)
                        Long yxxsYear = Long.valueOf(zsyzSbbzbBmMap.get(sysDept.getDeptId()).size());//有效线索(年)
                        for (ZsyzSbbzb zsyzSbbzb : zsyzSbbzbBmMap.get(sysDept.getDeptId())) {
                            if (zsyzSbbzb.getShsj().contains(year + "-" + month)) {
                                yxxsMonth++;
                            }
                        }
                        zsyzQktjDc.setYxxsMonth(yxxsMonth);//有效线索(月)
                        zsyzQktjDc.setYxxsYear(yxxsYear);//有效线索(年)

                    } else {
                        zsyzQktjDc.setYxxsMonth(0L);//有效线索(月)
                        zsyzQktjDc.setYxxsYear(0L);//有效线索(年)
                    }
                    //zsyzQktjZswcList.add(zsyzQktjZswc);
                    //zsyzQktjDjksList.add(zsyzQktjDjks);
                    //zsyzQktjYxxsList.add(zsyzQktjYxxs);
                    //zsyzQktjDc.setZsyzQktjZswcList(zsyzQktjZswcList);
                    //zsyzQktjDc.setZsyzQktjZswc(zsyzQktjZswc);
                    //zsyzQktjDc.setZsyzQktjDjksList(zsyzQktjDjksList);
                    //zsyzQktjDc.setZsyzQktjYxxsList(zsyzQktjYxxsList);
                    zsyzQktjDcList.add(zsyzQktjDc);
                }

            }
            //合计
            ZsyzQktjDc zsyzQktjDch = new ZsyzQktjDc();
            zsyzQktjDch.setDeptName("合计");
            /*//招商外出次数/天数
            List<ZsyzQktjZswc> zsyzQktjZswcList = new ArrayList<>();
            ZsyzQktjZswc zsyzQktjZswc = new ZsyzQktjZswc();
            //对接客商次数
            List<ZsyzQktjDjks> zsyzQktjDjksList = new ArrayList<>();
            ZsyzQktjDjks zsyzQktjDjks = new ZsyzQktjDjks();
            //提供有效招商线索数
            List<ZsyzQktjYxxs> zsyzQktjYxxsList = new ArrayList<>();
            ZsyzQktjYxxs zsyzQktjYxxs = new ZsyzQktjYxxs();*/
            Long zswcYear = 0L;//招商外出天数(年)
            Long zswcMonth = 0L;//招商外出天数(月)
            Long sjksYear = 0L;//对接客商次数(年)
            Long sjksMonth = 0L;//对接客商次数(月)
            Long yxxsMonth = 0L;//有效线索(月)
            Long yxxsYear = 0L;//有效线索(年)

            for (ZsyzQktjDc zsyzQktjDc : zsyzQktjDcList) {
                //zswcMonth = zswcMonth +zsyzQktjDc.getZsyzQktjZswcList().get(0).getZswcMonth();
                //zswcYear = zswcYear + zsyzQktjDc.getZsyzQktjZswcList().get(0).getZswcYear();
                //sjksMonth = sjksMonth + zsyzQktjDc.getZsyzQktjDjksList().get(0).getSjksMonth();
                //sjksYear = sjksYear + zsyzQktjDc.getZsyzQktjDjksList().get(0).getSjksYear();
                //yxxsMonth = yxxsMonth + zsyzQktjDc.getZsyzQktjYxxsList().get(0).getYxxsMonth();
                //yxxsYear = yxxsYear + zsyzQktjDc.getZsyzQktjYxxsList().get(0).getYxxsYear();

                zswcMonth = zswcMonth + Long.valueOf(zsyzQktjDc.getZswcMonth());
                zswcYear = zswcYear + Long.valueOf(zsyzQktjDc.getZswcYear());
                sjksMonth = sjksMonth + zsyzQktjDc.getSjksMonth();
                sjksYear = sjksYear + zsyzQktjDc.getSjksYear();
                yxxsMonth = yxxsMonth + zsyzQktjDc.getYxxsMonth();
                yxxsYear = yxxsYear + zsyzQktjDc.getYxxsYear();

            }
            //zsyzQktjZswc.setZswcMonth(zswcMonth);//招商外出天数(月)
            //zsyzQktjDjks.setSjksMonth(sjksMonth);//招商外出天数(年)
            //zsyzQktjZswc.setZswcYear(zswcYear);//招商外出天数(年)
            //zsyzQktjDjks.setSjksYear(sjksYear);//对接客商次数(年)
            //zsyzQktjYxxs.setYxxsMonth(yxxsMonth);//有效线索(月)
            //zsyzQktjYxxs.setYxxsYear(yxxsYear);//有效线索(年)

            zsyzQktjDch.setZswcMonth(String.valueOf(zswcMonth));//招商外出天数(月)
            zsyzQktjDch.setSjksMonth(sjksMonth);//招商外出天数(年)
            zsyzQktjDch.setZswcYear(String.valueOf(zswcYear));//招商外出天数(年)
            zsyzQktjDch.setSjksYear(sjksYear);//对接客商次数(年)
            zsyzQktjDch.setYxxsMonth(yxxsMonth);//有效线索(月)
            zsyzQktjDch.setYxxsYear(yxxsYear);//有效线索(年)

            //zsyzQktjZswcList.add(zsyzQktjZswc);
            //zsyzQktjDjksList.add(zsyzQktjDjks);
            //zsyzQktjYxxsList.add(zsyzQktjYxxs);
            //zsyzQktjDch.setZsyzQktjZswcList(zsyzQktjZswcList);
            //zsyzQktjDch.setZsyzQktjZswc(zsyzQktjZswc);
            //zsyzQktjDch.setZsyzQktjDjksList(zsyzQktjDjksList);
            //zsyzQktjDch.setZsyzQktjYxxsList(zsyzQktjYxxsList);
            zsyzQktjDcList.add(zsyzQktjDch);

        } else {
            //只查看自己部门数据
            //查找年份的所有数据
            ZsyzQktj zsyzQktj = new ZsyzQktj();
            zsyzQktj.setYear(year);
            zsyzQktj.setDeptId(currentUser.getDeptId());
            List<ZsyzQktj> zsyzQktjList = zsyzQktjMapper.selectZsyzQktjList(zsyzQktj);
            //查询本年当前部门所有线索审核通过的项目线索
            List<ZsyzSbbzb> zsyzSbbzbList = zsyzSbbzbMapper.selectZsyzSbbzbListTz(year, currentUser.getDeptId());
            ZsyzQktjDc zsyzQktjDc = new ZsyzQktjDc();
            zsyzQktjDc.setDeptName(currentUser.getDept().getDeptName());
            /*//招商外出次数/天数
            List<ZsyzQktjZswc> zsyzQktjZswcList = new ArrayList<>();
            ZsyzQktjZswc zsyzQktjZswc = new ZsyzQktjZswc();
            //对接客商次数
            List<ZsyzQktjDjks> zsyzQktjDjksList = new ArrayList<>();
            ZsyzQktjDjks zsyzQktjDjks = new ZsyzQktjDjks();
            //提供有效招商线索数
            List<ZsyzQktjYxxs> zsyzQktjYxxsList = new ArrayList<>();
            ZsyzQktjYxxs zsyzQktjYxxs = new ZsyzQktjYxxs();*/


            zsyzQktjDc.setZswcMonth("0");//招商外出天数(月)
            zsyzQktjDc.setSjksMonth(0L);//对接客商次数(月)

            Long zswcYear = 0L;//招商外出天数(年)
            Long sjksYear = 0L;//对接客商次数(年)
            for (ZsyzQktj qktj : zsyzQktjList) {
                zswcYear = zswcYear + qktj.getNumberOutings();
                sjksYear = sjksYear + qktj.getNumberDocking();
            }
            zsyzQktjDc.setZswcYear(String.valueOf(zswcYear));//招商外出天数(年)
            zsyzQktjDc.setSjksYear(sjksYear);//对接客商次数(年)
            //统计线索数量
            Long yxxsMonth = 0L;//有效线索(月)
            Long yxxsYear = Long.valueOf(zsyzSbbzbList.size());//有效线索(年)
            for (ZsyzSbbzb zsyzSbbzb : zsyzSbbzbList) {
                if (zsyzSbbzb.getShsj().contains(year + "-" + month)) {
                    yxxsMonth++;
                }
            }
           /* zsyzQktjYxxs.setYxxsMonth(yxxsMonth);//有效线索(月)
            zsyzQktjYxxs.setYxxsYear(yxxsYear);//有效线索(年)
            zsyzQktjZswcList.add(zsyzQktjZswc);
            zsyzQktjDjksList.add(zsyzQktjDjks);
            zsyzQktjYxxsList.add(zsyzQktjYxxs);
            //zsyzQktjDc.setZsyzQktjZswcList(zsyzQktjZswcList);
            zsyzQktjDc.setZsyzQktjZswc(zsyzQktjZswc);
            zsyzQktjDc.setZsyzQktjDjksList(zsyzQktjDjksList);
            zsyzQktjDc.setZsyzQktjYxxsList(zsyzQktjYxxsList);*/
            zsyzQktjDcList.add(zsyzQktjDc);

            //部门合计数据与部门数据一样
            zsyzQktjDc.setDeptName("合计");
            zsyzQktjDcList.add(zsyzQktjDc);

        }
        return zsyzQktjDcList;
    }


    /**
     * 招商引资_情况月统计表
     * @return
     */
    public List<ZsyzQktjDc> statisticsMonthNew(String year,String month) {

        List<ZsyzQktjDc> zsyzQktjDcList = new ArrayList<>();
        SysUser currentUser = SecurityUtils.getLoginUser().getUser();
        String roleKey = "";
        // 如果是超级管理员/管理员，则不过滤数据
        List<SysRole> roles = SecurityUtils.getLoginUser().getUser().getRoles();
        if (roles != null && roles.size() > 0) {
            roleKey = roles.get(0).getRoleKey();
        }
        if (StringUtils.isNotNull(currentUser) && (currentUser.isAdmin() || MANAGE.equals(roleKey) || LEADER.equals(roleKey))) {
            //如果是admin/或者平台管理员/或者领导 获取到所有数据
            //查找年份的所有数据
            //外出招商
            ZsyzWczs zsyzWczs = new ZsyzWczs();
            zsyzWczs.setYear(year);
            List<ZsyzWczs> zsyzWczsList = zsyzWczsMapper.selectZsyzWczsList(zsyzWczs);
            //将所有部门数据分部门存放
            Map<Long, List<ZsyzWczs>> zsyzWczsBmMap = zsyzWczsList.stream().collect(Collectors.groupingBy(ZsyzWczs::getDeptId));

            //对接客商
            ZsyzDjks zsyzDjks = new ZsyzDjks();
            zsyzDjks.setYear(year);
            List<ZsyzDjks> zsyzDjksList = zsyzDjksMapper.selectZsyzDjksList(zsyzDjks);
            //将所有部门数据分部门存放
            Map<Long, List<ZsyzDjks>> zsyzDjksBmMap = zsyzDjksList.stream().collect(Collectors.groupingBy(ZsyzDjks::getDeptId));


            //获取所有部门
            List<SysDept> sysDeptList = sysDeptMapper.selectDeptList(new SysDept());
            //查询本年所有线索审核通过的项目线索
            List<ZsyzSbbzb> zsyzSbbzbList = zsyzSbbzbMapper.selectZsyzSbbzbListTz(year,null);
            //将所有项目数据分部门存放
            Map<Long, List<ZsyzSbbzb>> zsyzSbbzbBmMap = zsyzSbbzbList.stream().collect(Collectors.groupingBy(ZsyzSbbzb::getDeptId));

            //合计
            int zswcYearhjc =0;//招商外出次数(年)
            int zswcYearhj =0;//招商外出天数(年)
            int zswcMonthjc =0;//招商外出次数(月)
            int zswcMonthj =0;//招商外出天数(月)
            int sjksYearhj =0;//对接客商次数(年)
            int sjksMonthj =0;//对接客商次数(月)
            int yxxsMonthj = 0;//有效线索(月)
            int yxxsYearhj = 0;//有效线索(年)

            for (SysDept sysDept : sysDeptList) {
                //部门不为产业链县干招商组，市直部门，承接地，市级领导，要素部门一级部门时纳入统计
                if(sysDept.getDeptId()!=101 && sysDept.getDeptId()!=102 && sysDept.getDeptId()!=103 && sysDept.getDeptId()!=200 && sysDept.getDeptId()!=201){
                    ZsyzQktjDc zsyzQktjDc = new ZsyzQktjDc();
                    zsyzQktjDc.setDeptName(sysDept.getDeptName());
                    int zswcMonth =0;//招商外出天数(月)
                    int zswcMonthc =0;//招商外出次数(月)
                    int zswcYear =0;//招商外出天数(年)
                    int zswcYearc =0;//招商外出次数(年)
                    int sjksMonth =0;//对接客商次数(月)
                    int sjksYear =0;//对接客商次数(年)
                    //计算外出招商数据
                    if(zsyzWczsBmMap.get(sysDept.getDeptId())!=null && zsyzWczsBmMap.get(sysDept.getDeptId()).size()>0){
                        zswcYearc = zsyzWczsBmMap.get(sysDept.getDeptId()).size();
                        for (ZsyzWczs wczs : zsyzWczsBmMap.get(sysDept.getDeptId())) {
                            zswcYear = zswcYear + wczs.getNumberOutings();
                            if(wczs.getMonth().equals(month)){
                                zswcMonthc++;
                                zswcMonth = zswcMonth + wczs.getNumberOutings();
                            }

                        }
                    }
                    //计算对接客商数据
                    if(zsyzDjksBmMap.get(sysDept.getDeptId())!=null && zsyzDjksBmMap.get(sysDept.getDeptId()).size()>0){
                        sjksYear = zsyzDjksBmMap.get(sysDept.getDeptId()).size();
                        for (ZsyzDjks djks : zsyzDjksBmMap.get(sysDept.getDeptId())) {
                            if(djks.getMonth().equals(month)){
                                sjksMonth++;
                            }
                        }
                    }

                    zsyzQktjDc.setZswcMonth(zswcMonthc+"/"+zswcMonth);//招商外出天数/次数(月)
                    zsyzQktjDc.setZswcYear(zswcYearc+"/"+zswcYear);//招商外出天数/次数(年)
                    zsyzQktjDc.setSjksMonth(Long.valueOf(sjksMonth));//对接客商次数(月)
                    zsyzQktjDc.setSjksYear(Long.valueOf(sjksYear));//对接客商次数(年)

                    zswcYearhjc = zswcYearhjc + zswcYearc;
                    zswcYearhj = zswcYearhj + zswcYear;
                    zswcMonthjc = zswcMonthjc + zswcMonthc;
                    zswcMonthj = zswcMonthj + zswcMonth;
                    sjksYearhj = sjksYearhj + sjksYear;
                    sjksMonthj = sjksMonthj + sjksMonth;


                    if(zsyzSbbzbBmMap.get(sysDept.getDeptId())!=null && zsyzSbbzbBmMap.get(sysDept.getDeptId()).size()>0){
                        int yxxsMonth = 0;//有效线索(月)
                        int yxxsYear = zsyzSbbzbBmMap.get(sysDept.getDeptId()).size();//有效线索(年)
                        for (ZsyzSbbzb zsyzSbbzb : zsyzSbbzbBmMap.get(sysDept.getDeptId())) {
                            if(zsyzSbbzb.getShsj().contains(year+"-"+month)){
                                yxxsMonth++;
                            }
                        }
                        zsyzQktjDc.setYxxsMonth(Long.valueOf(yxxsMonth));//有效线索(月)
                        zsyzQktjDc.setYxxsYear(Long.valueOf(yxxsYear));//有效线索(年)

                        yxxsMonthj = yxxsMonthj + yxxsMonth;
                        yxxsYearhj = yxxsYearhj + yxxsYear;

                    }else{

                        zsyzQktjDc.setYxxsMonth(0L);//有效线索(月)
                        zsyzQktjDc.setYxxsYear(0L);//有效线索(年)
                    }
                    zsyzQktjDcList.add(zsyzQktjDc);


                }

            }

            //合计
            ZsyzQktjDc zsyzQktjDchJ = new ZsyzQktjDc();
            zsyzQktjDchJ.setDeptName("合计");
            zsyzQktjDchJ.setZswcMonth(zswcMonthjc+"/"+zswcMonthj);//招商外出天数/次数(月)
            zsyzQktjDchJ.setZswcYear(zswcYearhjc+"/"+zswcYearhj);//招商外出天数/次数(年)
            zsyzQktjDchJ.setSjksMonth(Long.valueOf(sjksMonthj));//对接客商次数(月)
            zsyzQktjDchJ.setSjksYear(Long.valueOf(sjksYearhj));//对接客商次数(年)
            zsyzQktjDchJ.setYxxsMonth(Long.valueOf(yxxsMonthj));//有效线索(月)
            zsyzQktjDchJ.setYxxsYear(Long.valueOf(yxxsYearhj));//有效线索(年)
            zsyzQktjDcList.add(zsyzQktjDchJ                                                                                                                                                                                                                                    );


        }else{
            //只查看自己部门数据
            //查找年份的所有数据
            //外出招商
            ZsyzWczs zsyzWczs = new ZsyzWczs();
            zsyzWczs.setYear(year);
            zsyzWczs.setDeptId(currentUser.getDeptId());
            List<ZsyzWczs> zsyzWczsList = zsyzWczsMapper.selectZsyzWczsList(zsyzWczs);

            //对接客商
            ZsyzDjks zsyzDjks = new ZsyzDjks();
            zsyzDjks.setYear(year);
            zsyzDjks.setDeptId(currentUser.getDeptId());
            List<ZsyzDjks> zsyzDjksList = zsyzDjksMapper.selectZsyzDjksList(zsyzDjks);

            //查询本年当前部门所有线索审核通过的项目线索
            List<ZsyzSbbzb> zsyzSbbzbList = zsyzSbbzbMapper.selectZsyzSbbzbListTz(year,currentUser.getDeptId());

            ZsyzQktjDc zsyzQktjDc = new ZsyzQktjDc();
            zsyzQktjDc.setDeptName(currentUser.getDept().getDeptName());
            int zswcMonth =0;//招商外出天数(月)
            int zswcMonthc =0;//招商外出次数(月)
            int zswcYear =0;//招商外出天数(年)
            int zswcYearc =0;//招商外出次数(年)
            int sjksMonth =0;//对接客商次数(月)
            int sjksYear =0;//对接客商次数(年)

            //招商外出
            zswcYearc = zsyzDjksList.size();
            for (ZsyzWczs wczs : zsyzWczsList) {
                zswcYear = zswcYear + wczs.getNumberOutings();
                if(wczs.getMonth().equals(month)){
                    zswcMonthc++;
                    zswcMonth = zswcMonth + wczs.getNumberOutings();
                }

            }

            //对接客商
            sjksYear = zsyzDjksList.size();
            for (ZsyzDjks djks : zsyzDjksList) {
                if(djks.getMonth().equals(month)){
                    sjksMonth++;
                }
            }

            zsyzQktjDc.setZswcMonth(zswcMonthc+"/"+zswcMonth);//招商外出天数/次数(月)
            zsyzQktjDc.setZswcYear(zswcYearc+"/"+zswcYear);//招商外出天数/次数(年)
            zsyzQktjDc.setSjksMonth(Long.valueOf(sjksMonth));//对接客商次数(月)
            zsyzQktjDc.setSjksYear(Long.valueOf(sjksYear));//对接客商次数(年)


            //统计线索数量
            int yxxsMonth = 0;//有效线索(月)
            int yxxsYear = zsyzSbbzbList.size();//有效线索(年)
            for (ZsyzSbbzb zsyzSbbzb : zsyzSbbzbList) {
                if(zsyzSbbzb.getShsj().contains(year+"-"+month)){
                    yxxsMonth++;
                }
            }
            zsyzQktjDc.setYxxsMonth(Long.valueOf(yxxsMonth));//有效线索(月)
            zsyzQktjDc.setYxxsYear(Long.valueOf(yxxsYear));//有效线索(年)
            zsyzQktjDcList.add(zsyzQktjDc);

            //合计
            ZsyzQktjDc zsyzQktjDchJ = new ZsyzQktjDc();
            zsyzQktjDchJ.setDeptName("合计");
            zsyzQktjDchJ.setZswcMonth(zswcMonthc+"/"+zswcMonth);//招商外出天数/次数(月)
            zsyzQktjDchJ.setZswcYear(zswcYearc+"/"+zswcYear);//招商外出天数/次数(年)
            zsyzQktjDchJ.setSjksMonth(Long.valueOf(sjksMonth));//对接客商次数(月)
            zsyzQktjDchJ.setSjksYear(Long.valueOf(sjksYear));//对接客商次数(年)
            zsyzQktjDchJ.setYxxsMonth(Long.valueOf(yxxsMonth));//有效线索(月)
            zsyzQktjDchJ.setYxxsYear(Long.valueOf(yxxsYear));//有效线索(年)
            zsyzQktjDcList.add(zsyzQktjDchJ);
        }
        return zsyzQktjDcList;
    }

}
