Переглянути джерело

招商引资_情况月统计表

LIVE_YE 2 роки тому
батько
коміт
b3d2c70997
16 змінених файлів з 1372 додано та 0 видалено
  1. 107 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/projectV2/ZsyzQktjController.java
  2. 13 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/projectV2/common/ZsyzCommonController.java
  3. 149 0
      ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/projectV2/common/ZsyzCommonServiceImpL.java
  4. 108 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/projectV2/Vo/ZsyzQktjDc.java
  5. 41 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/projectV2/Vo/ZsyzQktjDjks.java
  6. 41 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/projectV2/Vo/ZsyzQktjYxxs.java
  7. 41 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/projectV2/Vo/ZsyzQktjZswc.java
  8. 153 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/projectV2/ZsyzQktj.java
  9. 10 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/projectV2/ZsyzSbbzb.java
  10. 61 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/projectV2/ZsyzQktjMapper.java
  11. 3 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/projectV2/ZsyzSbbzbMapper.java
  12. 381 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/projectV2/ZsyzQktjServiceImpl.java
  13. 65 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/projectV2/IZsyzQktjService.java
  14. 3 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/projectV2/common/IZsyzCommonService.java
  15. 123 0
      ruoyi-system/src/main/resources/mapper/system/projectV2/ZsyzQktjMapper.xml
  16. 73 0
      ruoyi-system/src/main/resources/mapper/system/projectV2/ZsyzSbbzbMapper.xml

+ 107 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/projectV2/ZsyzQktjController.java

@@ -0,0 +1,107 @@
+package com.ruoyi.web.controller.projectV2;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.system.domain.projectV2.Vo.ZsyzQktjDc;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.domain.projectV2.ZsyzQktj;
+import com.ruoyi.system.service.projectV2.IZsyzQktjService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 招商引资_情况月统计Controller
+ * 
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@RestController
+@RequestMapping("/system/qktj")
+public class ZsyzQktjController extends BaseController
+{
+    @Autowired
+    private IZsyzQktjService zsyzQktjService;
+
+    /**
+     * 查询招商引资_情况月统计列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:qktj:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(ZsyzQktj zsyzQktj)
+    {
+        startPage();
+        List<ZsyzQktj> list = zsyzQktjService.selectZsyzQktjList(zsyzQktj);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出招商引资_情况月统计列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:qktj:export')")
+    @Log(title = "招商引资_情况月统计", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, ZsyzQktj zsyzQktj)
+    {
+        List<ZsyzQktjDc> list = zsyzQktjService.selectZsyzQktjListTj(zsyzQktj);
+        ExcelUtil<ZsyzQktjDc> util = new ExcelUtil<ZsyzQktjDc>(ZsyzQktjDc.class);
+        util.exportExcel(response, list, "招商引资_情况月统计数据","招商引资_情况月统计数据("+zsyzQktj.getYear()+"-"+zsyzQktj.getMonth()+")");
+        //util.exportExcel(list, "招商引资_情况月统计数据", "招商引资_情况月统计数据("+zsyzQktj.getYear()+"-"+zsyzQktj.getMonth()+")");
+    }
+
+    /**
+     * 获取招商引资_情况月统计详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:qktj:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(zsyzQktjService.selectZsyzQktjById(id));
+    }
+
+    /**
+     * 新增招商引资_情况月统计
+     */
+    @PreAuthorize("@ss.hasPermi('system:qktj:add')")
+    @Log(title = "招商引资_情况月统计", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody ZsyzQktj zsyzQktj)
+    {
+        return toAjax(zsyzQktjService.insertZsyzQktj(zsyzQktj));
+    }
+
+    /**
+     * 修改招商引资_情况月统计
+     */
+    @PreAuthorize("@ss.hasPermi('system:qktj:edit')")
+    @Log(title = "招商引资_情况月统计", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody ZsyzQktj zsyzQktj)
+    {
+        return toAjax(zsyzQktjService.updateZsyzQktj(zsyzQktj));
+    }
+
+    /**
+     * 删除招商引资_情况月统计
+     */
+    @PreAuthorize("@ss.hasPermi('system:qktj:remove')")
+    @Log(title = "招商引资_情况月统计", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(zsyzQktjService.deleteZsyzQktjByIds(ids));
+    }
+}

+ 13 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/projectV2/common/ZsyzCommonController.java

@@ -14,6 +14,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+import java.util.Map;
+
 import static com.ruoyi.common.constant.CommonConstants.*;
 
 /**
@@ -57,6 +60,16 @@ public class ZsyzCommonController extends BaseController {
         return  zsyzCommonService.censusXy();
     }
 
+    /***
+     * 招商引资_情况月统计表
+     * @param year 年
+     * @param month 月
+     * @return
+     */
+    @GetMapping("/statistics/month")
+    public AjaxResult statisticsMonth(String year, String month) {
+        return  AjaxResult.success(zsyzCommonService.statisticsMonth(year,month));
+    }
 
     /**
      * 生成项目编号接口

+ 149 - 0
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/projectV2/common/ZsyzCommonServiceImpL.java

@@ -15,6 +15,7 @@ import com.ruoyi.framework.manager.factory.AsyncFactory;
 import com.ruoyi.system.domain.projectV2.*;
 import com.ruoyi.system.domain.projectV2.Vo.ZpVo;
 import com.ruoyi.system.domain.projectV2.common.SendSmsConfig;
+import com.ruoyi.system.mapper.SysDeptMapper;
 import com.ruoyi.system.mapper.projectV2.*;
 import com.ruoyi.system.service.ISysUserService;
 import com.ruoyi.system.service.projectV2.IZsyzProjectDeptService;
@@ -62,6 +63,10 @@ public class ZsyzCommonServiceImpL implements IZsyzCommonService {
     private ZsyzLcjlMapper zsyzLcjlMapper;
     @Autowired
     private ISysUserService sysUserService;
+    @Autowired
+    private ZsyzQktjMapper zsyzQktjMapper;
+    @Autowired
+    private SysDeptMapper sysDeptMapper;
 
 
     //主要功能, 对线索进度进行控制
@@ -775,6 +780,150 @@ public class ZsyzCommonServiceImpL implements IZsyzCommonService {
         return AjaxResult.success();
     }
 
+    /**
+     * 招商引资_情况月统计表
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> statisticsMonth(String year,String month) {
+        //Long deptId = SecurityUtils.getDeptId();
+        //SysUser user = SecurityUtils.getLoginUser().getUser();
+        List<Map<String, Object>> mapList = new ArrayList<>();
+        //定义返回值
+        int sk = 0;
+        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){
+                    Map<String, Object> mapMonth = new HashMap<>();
+                    mapMonth.put("name",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)){
+                                mapMonth.put("zswcMonth",qktj.getNumberOutings());//招商外出天数(月)
+                                mapMonth.put("sjksMonth",qktj.getNumberDocking());//对接客商次数(月)
+                            }
+
+                        }
+                        mapMonth.put("zswcYear",zswcYear);//招商外出天数(年)
+                        mapMonth.put("sjksYear",sjksYear);//对接客商次数(年)
+                    }else{
+                        //部门不存在数据
+                        mapMonth.put("zswcMonth",0);//招商外出天数(月)
+                        mapMonth.put("zswcYear",0);//招商外出天数(年)
+                        mapMonth.put("sjksMonth",0);//对接客商次数(月)
+                        mapMonth.put("sjksYear",0);//对接客商次数(年)
+                    }
+
+                    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++;
+                            }
+                        }
+                        mapMonth.put("yxxsMonth",yxxsMonth);//有效线索(月)
+                        mapMonth.put("yxxsYear",yxxsYear);//有效线索(年)
+
+                    }else{
+                        mapMonth.put("yxxsMonth",0);//有效线索(月)
+                        mapMonth.put("yxxsYear",0);//有效线索(年)
+                    }
+                    mapList.add(mapMonth);
+                }
+
+            }
+            //合计
+            Map<String, Object> mapMonth = new HashMap<>();
+            mapMonth.put("name","合计");
+            Long zswcYear =0L;//招商外出天数(年)
+            Long zswcMonth =0L;//招商外出天数(月)
+            Long sjksYear =0L;//对接客商次数(年)
+            Long sjksMonth =0L;//对接客商次数(月)
+            Long yxxsMonth = 0L;//有效线索(月)
+            Long yxxsYear = 0L;//有效线索(年)
+
+            for (Map<String, Object> stringObjectMap : mapList) {
+                zswcYear =zswcYear + Long.valueOf(stringObjectMap.get("zswcYear").toString()) ;
+                zswcMonth =zswcMonth + Long.valueOf(stringObjectMap.get("zswcMonth").toString());
+                sjksYear =sjksYear + Long.valueOf(stringObjectMap.get("sjksYear").toString());
+                sjksMonth =sjksMonth +  Long.valueOf(stringObjectMap.get("sjksMonth").toString());
+                yxxsMonth =yxxsMonth +  Long.valueOf(stringObjectMap.get("yxxsMonth").toString());
+                yxxsYear =yxxsYear + Long.valueOf(stringObjectMap.get("yxxsYear").toString());
+            }
+            mapMonth.put("zswcMonth",zswcMonth);//招商外出天数(月)
+            mapMonth.put("zswcYear",zswcYear);//招商外出天数(年)
+            mapMonth.put("sjksMonth",sjksMonth);//对接客商次数(月)
+            mapMonth.put("sjksYear",sjksYear);//对接客商次数(年)
+            mapMonth.put("yxxsMonth",yxxsMonth);//有效线索(月)
+            mapMonth.put("yxxsYear",yxxsYear);//有效线索(年)
+            mapList.add(mapMonth);
+
+        }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());
+            Map<String, Object> mapMonth = new HashMap<>();
+            mapMonth.put("name",currentUser.getDept().getDeptName());
+            mapMonth.put("zswcMonth",0);//招商外出天数(月)
+            mapMonth.put("sjksMonth",0);//对接客商次数(月)
+            Long zswcYear =0L;//招商外出天数(年)
+            Long sjksYear =0L;//对接客商次数(年)
+            for (ZsyzQktj qktj : zsyzQktjList) {
+                zswcYear = zswcYear + qktj.getNumberOutings();
+                sjksYear = sjksYear + qktj.getNumberDocking();
+            }
+            mapMonth.put("zswcYear",zswcYear);//招商外出天数(年)
+            mapMonth.put("sjksYear",sjksYear);//对接客商次数(年)
+            //统计线索数量
+            Long yxxsMonth = 0L;//有效线索(月)
+            Long yxxsYear = Long.valueOf(zsyzSbbzbList.size());//有效线索(年)
+            for (ZsyzSbbzb zsyzSbbzb : zsyzSbbzbList) {
+                if(zsyzSbbzb.getShsj().contains(year+"-"+month)){
+                    yxxsMonth++;
+                }
+            }
+            mapMonth.put("yxxsMonth",yxxsMonth);//有效线索(月)
+            mapMonth.put("yxxsYear",yxxsYear);//有效线索(年)
+            mapList.add(mapMonth);
+            mapMonth.put("name","合计");
+            mapList.add(mapMonth);
+        }
+        return mapList;
+    }
+
     //根据项目进度判断项目阶段
     public String xmjd(String code) {
         if (ONE.equals(code)) {

+ 108 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/projectV2/Vo/ZsyzQktjDc.java

@@ -0,0 +1,108 @@
+package com.ruoyi.system.domain.projectV2.Vo;
+
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.annotation.Excels;
+import com.ruoyi.common.core.domain.BaseEntity;
+import com.ruoyi.system.domain.projectV2.ZsyzFj;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.List;
+
+/**
+ * 招商引资_情况月统计对象 zsyz_qktj(导出专用)
+ * 
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+public class ZsyzQktjDc extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+
+
+    /** 部门名称 */
+    @Excel(name = "单位(包括6大产业链、市直单位、经开区、度假区、各乡镇)", width = 50)
+    private String deptName;
+
+    /** 当月外出数(招商外出次数/天数) */
+    @Excel(name = "当月外出数(招商外出次数/天数)", width = 25)
+    private Long zswcMonth;
+
+    /** 本年累计数(招商外出次数/天数) */
+    @Excel(name = "本年累计数(招商外出次数/天数)", width = 25)
+    private Long zswcYear;
+
+    /** 当月对接数(对接客商次数) */
+    @Excel(name = "当月对接数(对接客商次数)", width = 25)
+    private Long sjksMonth;
+
+    /** 本年累计数(对接客商次数) */
+    @Excel(name = "本年累计数(对接客商次数)", width = 25)
+    private Long sjksYear;
+
+    /** 当月对接数 */
+    @Excel(name = "当月线索数(提供有效招商线索数)", width = 25)
+    private Long yxxsMonth;
+
+    /** 本年累计数 */
+    @Excel(name = "本年累计数(提供有效招商线索数)", width = 25)
+    private Long yxxsYear;
+
+
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public Long getZswcMonth() {
+        return zswcMonth;
+    }
+
+    public Long getZswcYear() {
+        return zswcYear;
+    }
+
+    public Long getSjksMonth() {
+        return sjksMonth;
+    }
+
+    public Long getSjksYear() {
+        return sjksYear;
+    }
+
+    public Long getYxxsMonth() {
+        return yxxsMonth;
+    }
+
+    public Long getYxxsYear() {
+        return yxxsYear;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
+    public void setZswcMonth(Long zswcMonth) {
+        this.zswcMonth = zswcMonth;
+    }
+
+    public void setZswcYear(Long zswcYear) {
+        this.zswcYear = zswcYear;
+    }
+
+    public void setSjksMonth(Long sjksMonth) {
+        this.sjksMonth = sjksMonth;
+    }
+
+    public void setSjksYear(Long sjksYear) {
+        this.sjksYear = sjksYear;
+    }
+
+    public void setYxxsMonth(Long yxxsMonth) {
+        this.yxxsMonth = yxxsMonth;
+    }
+
+    public void setYxxsYear(Long yxxsYear) {
+        this.yxxsYear = yxxsYear;
+    }
+}

+ 41 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/projectV2/Vo/ZsyzQktjDjks.java

@@ -0,0 +1,41 @@
+package com.ruoyi.system.domain.projectV2.Vo;
+
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 招商引资_情况月统计对象 zsyz_qktj(导出专用)
+ * 
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+public class ZsyzQktjDjks extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+
+
+    /** 当月对接数 */
+    @Excel(name = "当月对接数")
+    private Long sjksMonth;
+
+    /** 本年累计数 */
+    @Excel(name = "本年累计数")
+    private Long sjksYear;
+
+    public Long getSjksMonth() {
+        return sjksMonth;
+    }
+
+    public Long getSjksYear() {
+        return sjksYear;
+    }
+
+    public void setSjksMonth(Long sjksMonth) {
+        this.sjksMonth = sjksMonth;
+    }
+
+    public void setSjksYear(Long sjksYear) {
+        this.sjksYear = sjksYear;
+    }
+}

+ 41 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/projectV2/Vo/ZsyzQktjYxxs.java

@@ -0,0 +1,41 @@
+package com.ruoyi.system.domain.projectV2.Vo;
+
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 招商引资_情况月统计对象 zsyz_qktj(导出专用)
+ * 
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+public class ZsyzQktjYxxs extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+
+
+    /** 当月对接数 */
+    @Excel(name = "当月线索数")
+    private Long yxxsMonth;
+
+    /** 本年累计数 */
+    @Excel(name = "本年累计数")
+    private Long yxxsYear;
+
+    public Long getYxxsMonth() {
+        return yxxsMonth;
+    }
+
+    public Long getYxxsYear() {
+        return yxxsYear;
+    }
+
+    public void setYxxsMonth(Long yxxsMonth) {
+        this.yxxsMonth = yxxsMonth;
+    }
+
+    public void setYxxsYear(Long yxxsYear) {
+        this.yxxsYear = yxxsYear;
+    }
+}

+ 41 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/projectV2/Vo/ZsyzQktjZswc.java

@@ -0,0 +1,41 @@
+package com.ruoyi.system.domain.projectV2.Vo;
+
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 招商引资_情况月统计对象 zsyz_qktj(导出专用)
+ * 
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+public class ZsyzQktjZswc extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+
+
+    /** 当月外出数 */
+    @Excel(name = "当月外出数")
+    private Long zswcMonth;
+
+    /** 本年累计数 */
+    @Excel(name = "本年累计数")
+    private Long zswcYear;
+
+    public Long getZswcMonth() {
+        return zswcMonth;
+    }
+
+    public Long getZswcYear() {
+        return zswcYear;
+    }
+
+    public void setZswcMonth(Long zswcMonth) {
+        this.zswcMonth = zswcMonth;
+    }
+
+    public void setZswcYear(Long zswcYear) {
+        this.zswcYear = zswcYear;
+    }
+}

+ 153 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/projectV2/ZsyzQktj.java

@@ -0,0 +1,153 @@
+package com.ruoyi.system.domain.projectV2;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+import java.util.List;
+
+/**
+ * 招商引资_情况月统计对象 zsyz_qktj
+ * 
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+public class ZsyzQktj extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** ID */
+    private Long id;
+
+    /** 部门id */
+    @Excel(name = "部门id")
+    private Long deptId;
+
+    /** 部门名称 */
+    @Excel(name = "部门名称")
+    private String deptName;
+
+    /** 年 */
+    @Excel(name = "年")
+    private String year;
+
+    /** 月 */
+    @Excel(name = "月")
+    private String month;
+
+    /** 招商外出天数 */
+    @Excel(name = "招商外出天数")
+    private Long numberOutings;
+
+    /** 对接客商次数 */
+    @Excel(name = "对接客商次数")
+    private Long numberDocking;
+
+    /** 说明 */
+    @Excel(name = "说明")
+    private String details;
+
+    /** 附件集合 */
+    private List<ZsyzFj> zsyzFjList;
+
+    public List<ZsyzFj> getZsyzFjList() {
+        return zsyzFjList;
+    }
+
+    public void setZsyzFjList(List<ZsyzFj> zsyzFjList) {
+        this.zsyzFjList = zsyzFjList;
+    }
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setDeptId(Long deptId) 
+    {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() 
+    {
+        return deptId;
+    }
+    public void setDeptName(String deptName) 
+    {
+        this.deptName = deptName;
+    }
+
+    public String getDeptName() 
+    {
+        return deptName;
+    }
+    public void setYear(String year) 
+    {
+        this.year = year;
+    }
+
+    public String getYear() 
+    {
+        return year;
+    }
+    public void setMonth(String month) 
+    {
+        this.month = month;
+    }
+
+    public String getMonth() 
+    {
+        return month;
+    }
+    public void setNumberOutings(Long numberOutings)
+    {
+        this.numberOutings = numberOutings;
+    }
+
+    public Long getNumberOutings()
+    {
+        return numberOutings;
+    }
+    public void setNumberDocking(Long numberDocking)
+    {
+        this.numberDocking = numberDocking;
+    }
+
+    public Long getNumberDocking()
+    {
+        return numberDocking;
+    }
+    public void setDetails(String details) 
+    {
+        this.details = details;
+    }
+
+    public String getDetails() 
+    {
+        return details;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("deptId", getDeptId())
+            .append("deptName", getDeptName())
+            .append("year", getYear())
+            .append("month", getMonth())
+            .append("numberOutings", getNumberOutings())
+            .append("numberDocking", getNumberDocking())
+            .append("details", getDetails())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

+ 10 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/projectV2/ZsyzSbbzb.java

@@ -213,6 +213,8 @@ public class ZsyzSbbzb extends BaseEntity
      */
     private List<ZsyzShyj> shyjList;
 
+    private String shsj;
+
 
     /** 签约信息对象 */
     @Excels({
@@ -283,6 +285,14 @@ public class ZsyzSbbzb extends BaseEntity
      */
     private String exportType;
 
+    public String getShsj() {
+        return shsj;
+    }
+
+    public void setShsj(String shsj) {
+        this.shsj = shsj;
+    }
+
     public List<ZsyzJzqk> getZsyzJzqkList() {
         return zsyzJzqkList;
     }

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/projectV2/ZsyzQktjMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.mapper.projectV2;
+
+import java.util.List;
+import com.ruoyi.system.domain.projectV2.ZsyzQktj;
+
+/**
+ * 招商引资_情况月统计Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+public interface ZsyzQktjMapper 
+{
+    /**
+     * 查询招商引资_情况月统计
+     * 
+     * @param id 招商引资_情况月统计主键
+     * @return 招商引资_情况月统计
+     */
+    public ZsyzQktj selectZsyzQktjById(Long id);
+
+    /**
+     * 查询招商引资_情况月统计列表
+     * 
+     * @param zsyzQktj 招商引资_情况月统计
+     * @return 招商引资_情况月统计集合
+     */
+    public List<ZsyzQktj> selectZsyzQktjList(ZsyzQktj zsyzQktj);
+
+    /**
+     * 新增招商引资_情况月统计
+     * 
+     * @param zsyzQktj 招商引资_情况月统计
+     * @return 结果
+     */
+    public int insertZsyzQktj(ZsyzQktj zsyzQktj);
+
+    /**
+     * 修改招商引资_情况月统计
+     * 
+     * @param zsyzQktj 招商引资_情况月统计
+     * @return 结果
+     */
+    public int updateZsyzQktj(ZsyzQktj zsyzQktj);
+
+    /**
+     * 删除招商引资_情况月统计
+     * 
+     * @param id 招商引资_情况月统计主键
+     * @return 结果
+     */
+    public int deleteZsyzQktjById(Long id);
+
+    /**
+     * 批量删除招商引资_情况月统计
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteZsyzQktjByIds(Long[] ids);
+}

+ 3 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/projectV2/ZsyzSbbzbMapper.java

@@ -2,6 +2,7 @@ package com.ruoyi.system.mapper.projectV2;
 
 import com.ruoyi.system.domain.projectV2.ZsyzLdps;
 import com.ruoyi.system.domain.projectV2.ZsyzSbbzb;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -95,4 +96,6 @@ public interface ZsyzSbbzbMapper
     long ldpsListCount(ZsyzSbbzb zsyzSbb);
 
     long selectZsyzSbbzbListCount(ZsyzSbbzb zsyzSbbzb);
+
+    List<ZsyzSbbzb> selectZsyzSbbzbListTz(@Param("year")String year, @Param("deptId")Long deptId);
 }

+ 381 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/projectV2/ZsyzQktjServiceImpl.java

@@ -0,0 +1,381 @@
+package com.ruoyi.system.service.impl.projectV2;
+
+import com.ruoyi.common.constant.CommonConstants;
+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.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.domain.projectV2.ZsyzFj;
+import com.ruoyi.system.domain.projectV2.ZsyzQktj;
+import com.ruoyi.system.domain.projectV2.ZsyzSbbzb;
+import com.ruoyi.system.mapper.SysDeptMapper;
+import com.ruoyi.system.mapper.projectV2.ZsyzFjMapper;
+import com.ruoyi.system.mapper.projectV2.ZsyzQktjMapper;
+import com.ruoyi.system.mapper.projectV2.ZsyzSbbzbMapper;
+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;
+
+
+    /**
+     * 查询招商引资_情况月统计
+     *
+     * @param id 招商引资_情况月统计主键
+     * @return 招商引资_情况月统计
+     */
+    @Override
+    public ZsyzQktj selectZsyzQktjById(Long id) {
+        return zsyzQktjMapper.selectZsyzQktjById(id);
+    }
+
+    /**
+     * 查询招商引资_情况月统计列表
+     *
+     * @param zsyzQktj 招商引资_情况月统计
+     * @return 招商引资_情况月统计
+     */
+    @Override
+    public List<ZsyzQktj> selectZsyzQktjList(ZsyzQktj zsyzQktj) {
+        return zsyzQktjMapper.selectZsyzQktjList(zsyzQktj);
+    }
+
+    /**
+     * 新增招商引资_情况月统计
+     *
+     * @param zsyzQktj 招商引资_情况月统计
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int insertZsyzQktj(ZsyzQktj zsyzQktj) {
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        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 count;
+    }
+
+    /**
+     * 修改招商引资_情况月统计
+     *
+     * @param zsyzQktj 招商引资_情况月统计
+     * @return 结果
+     */
+    @Override
+    public int updateZsyzQktj(ZsyzQktj zsyzQktj) {
+        zsyzQktj.setUpdateTime(DateUtils.getNowDate());
+        //修改附件
+        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);
+                    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 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(qktj.getNumberOutings());//招商外出天数(月)
+                                zsyzQktjDc.setSjksMonth(qktj.getNumberDocking());//招商外出天数(年)
+                            }
+
+                        }
+                        zsyzQktjDc.setZswcYear(zswcYear);//招商外出天数(年)
+                        zsyzQktjDc.setSjksYear(sjksYear);//对接客商次数(年)
+                    } else {
+                        //部门不存在数据
+                        zsyzQktjDc.setZswcMonth(0L);//招商外出天数(月)
+                        zsyzQktjDc.setSjksMonth(0L);//招商外出天数(年)
+                        zsyzQktjDc.setZswcYear(0L);//招商外出天数(年)
+                        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 +zsyzQktjDc.getZswcMonth();
+                zswcYear = zswcYear + 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(zswcMonth);//招商外出天数(月)
+            zsyzQktjDch.setSjksMonth(sjksMonth);//招商外出天数(年)
+            zsyzQktjDch.setZswcYear(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(0L);//招商外出天数(月)
+            zsyzQktjDc.setSjksMonth(0L);//对接客商次数(月)
+
+            Long zswcYear = 0L;//招商外出天数(年)
+            Long sjksYear = 0L;//对接客商次数(年)
+            for (ZsyzQktj qktj : zsyzQktjList) {
+                zswcYear = zswcYear + qktj.getNumberOutings();
+                sjksYear = sjksYear + qktj.getNumberDocking();
+            }
+            zsyzQktjDc.setZswcYear(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;
+    }
+}

+ 65 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/projectV2/IZsyzQktjService.java

@@ -0,0 +1,65 @@
+package com.ruoyi.system.service.projectV2;
+
+import java.util.List;
+
+import com.ruoyi.system.domain.projectV2.Vo.ZsyzQktjDc;
+import com.ruoyi.system.domain.projectV2.ZsyzQktj;
+
+/**
+ * 招商引资_情况月统计Service接口
+ * 
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+public interface IZsyzQktjService 
+{
+    /**
+     * 查询招商引资_情况月统计
+     * 
+     * @param id 招商引资_情况月统计主键
+     * @return 招商引资_情况月统计
+     */
+    public ZsyzQktj selectZsyzQktjById(Long id);
+
+    /**
+     * 查询招商引资_情况月统计列表
+     * 
+     * @param zsyzQktj 招商引资_情况月统计
+     * @return 招商引资_情况月统计集合
+     */
+    public List<ZsyzQktj> selectZsyzQktjList(ZsyzQktj zsyzQktj);
+
+    /**
+     * 新增招商引资_情况月统计
+     * 
+     * @param zsyzQktj 招商引资_情况月统计
+     * @return 结果
+     */
+    public int insertZsyzQktj(ZsyzQktj zsyzQktj);
+
+    /**
+     * 修改招商引资_情况月统计
+     * 
+     * @param zsyzQktj 招商引资_情况月统计
+     * @return 结果
+     */
+    public int updateZsyzQktj(ZsyzQktj zsyzQktj);
+
+    /**
+     * 批量删除招商引资_情况月统计
+     * 
+     * @param ids 需要删除的招商引资_情况月统计主键集合
+     * @return 结果
+     */
+    public int deleteZsyzQktjByIds(Long[] ids);
+
+    /**
+     * 删除招商引资_情况月统计信息
+     * 
+     * @param id 招商引资_情况月统计主键
+     * @return 结果
+     */
+    public int deleteZsyzQktjById(Long id);
+
+    List<ZsyzQktjDc> selectZsyzQktjListTj(ZsyzQktj zsyzQktj);
+}

+ 3 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/projectV2/common/IZsyzCommonService.java

@@ -8,6 +8,7 @@ import com.ruoyi.system.domain.projectV2.ZsyzShyj;
 import com.ruoyi.system.domain.projectV2.common.SendSms;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 公共Service接口
@@ -47,4 +48,6 @@ public interface IZsyzCommonService
   public AjaxResult xszp(ZpVo zpVo);
   //撤回
   public AjaxResult xsch(ZsyzSbbzb zsyzSbbzb);
+
+  List<Map<String, Object>> statisticsMonth(String year, String month);
 }

+ 123 - 0
ruoyi-system/src/main/resources/mapper/system/projectV2/ZsyzQktjMapper.xml

@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.projectV2.ZsyzQktjMapper">
+    
+    <resultMap type="ZsyzQktj" id="ZsyzQktjResult">
+        <result property="id"    column="id"    />
+        <result property="deptId"    column="dept_id"    />
+        <result property="deptName"    column="dept_name"    />
+        <result property="year"    column="year"    />
+        <result property="month"    column="month"    />
+        <result property="numberOutings"    column="number_outings"    />
+        <result property="numberDocking"    column="number_docking"    />
+        <result property="details"    column="details"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="remark"    column="remark"    />
+
+        <collection property="zsyzFjList" javaType="java.util.List" resultMap="ZsyzFjResult"/>
+    </resultMap>
+
+    <resultMap type="ZsyzFj" id="ZsyzFjResult">
+        <result property="id"    column="id"    />
+        <result property="xmId"    column="xm_id"    />
+        <result property="xmbh"    column="xmbh"    />
+        <result property="sourceId"    column="source_id"    />
+        <result property="fjName"    column="fj_name"    />
+        <result property="path"    column="path"    />
+        <result property="type"    column="type"    />
+        <result property="remark"    column="remark"    />
+    </resultMap>
+
+    <sql id="selectZsyzQktjVo">
+        select q.id, q.dept_id, q.dept_name, q.year, q.month, q.number_outings, q.number_docking, q.details, q.create_by, q.create_time, q.update_by, q.update_time, q.remark,
+               f.id, f.xm_id, f.xmbh, f.source_id, f.fj_name, f.path, f.type
+        from zsyz_qktj q
+        left join zsyz_fj f on q.id = f.source_id
+    </sql>
+
+    <select id="selectZsyzQktjList" parameterType="ZsyzQktj" resultMap="ZsyzQktjResult">
+        <include refid="selectZsyzQktjVo"/>
+        <where>  
+            <if test="deptId != null "> and q.dept_id = #{deptId}</if>
+            <if test="deptName != null  and deptName != ''"> and q.dept_name like concat('%', #{deptName}, '%')</if>
+            <if test="year != null  and year != ''"> and q.year = #{year}</if>
+            <if test="month != null  and month != ''"> and q.month = #{month}</if>
+            <if test="numberOutings != null  and numberOutings != ''"> and q.number_outings = #{numberOutings}</if>
+            <if test="numberDocking != null  and numberDocking != ''"> and q.number_docking = #{numberDocking}</if>
+            <if test="details != null  and details != ''"> and q.details = #{details}</if>
+        </where>
+    </select>
+    
+    <select id="selectZsyzQktjById" parameterType="Long" resultMap="ZsyzQktjResult">
+        <include refid="selectZsyzQktjVo"/>
+        where q.
+id = #{id}
+    </select>
+        
+    <insert id="insertZsyzQktj" parameterType="ZsyzQktj" useGeneratedKeys="true" keyProperty="id">
+        insert into zsyz_qktj
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="deptId != null">dept_id,</if>
+            <if test="deptName != null and deptName != ''">dept_name,</if>
+            <if test="year != null">year,</if>
+            <if test="month != null">month,</if>
+            <if test="numberOutings != null">number_outings,</if>
+            <if test="numberDocking != null">number_docking,</if>
+            <if test="details != null">details,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="deptId != null">#{deptId},</if>
+            <if test="deptName != null and deptName != ''">#{deptName},</if>
+            <if test="year != null">#{year},</if>
+            <if test="month != null">#{month},</if>
+            <if test="numberOutings != null">#{numberOutings},</if>
+            <if test="numberDocking != null">#{numberDocking},</if>
+            <if test="details != null">#{details},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+         </trim>
+    </insert>
+
+    <update id="updateZsyzQktj" parameterType="ZsyzQktj">
+        update zsyz_qktj
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="deptName != null and deptName != ''">dept_name = #{deptName},</if>
+            <if test="year != null">year = #{year},</if>
+            <if test="month != null">month = #{month},</if>
+            <if test="numberOutings != null">number_outings = #{numberOutings},</if>
+            <if test="numberDocking != null">number_docking = #{numberDocking},</if>
+            <if test="details != null">details = #{details},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteZsyzQktjById" parameterType="Long">
+        delete from zsyz_qktj where id = #{id}
+    </delete>
+
+    <delete id="deleteZsyzQktjByIds" parameterType="String">
+        delete from zsyz_qktj where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 73 - 0
ruoyi-system/src/main/resources/mapper/system/projectV2/ZsyzSbbzbMapper.xml

@@ -54,6 +54,9 @@
         <result property="isMeet" column="is_meet"/>
         <result property="meetRemark" column="meet_remark"/>
         <result property="shjg" column="shjg"/>
+        <result property="shsj" column="shsj"/>
+
+
 
 
         <association property="zsyzQyxx" javaType="ZsyzQyxx" resultMap="ZsyzQyxxResult"/>
@@ -828,6 +831,76 @@
         order by d.create_time desc
     </select>
 
+    <select id="selectZsyzSbbzbListTz" resultMap="ZsyzSbbzbResult">
+        SELECT
+        ANY_VALUE(a.id) AS id,
+        ANY_VALUE(a.xmbh) AS xmbh,
+        ANY_VALUE(a.xmxsmc) AS xmxsmc,
+        ANY_VALUE(a.user_id) AS user_id,
+        ANY_VALUE(a.progress) AS progress,
+        ANY_VALUE(a.xm_status) AS xm_status,
+        ANY_VALUE(a.dept_id) AS dept_id,
+        ANY_VALUE(MAX(a.shsj)) AS shsj
+        FROM
+        (
+        SELECT
+        s.id as id,
+        s.xmbh as xmbh,
+        s.xmxsmc as xmxsmc,
+        s.user_id as user_id,
+        s.progress as progress,
+        s.xm_status as xm_status,
+        s.dept_id as dept_id,
+        j.shsj as shsj
+        FROM
+        zsyz_sbbzb s
+        LEFT JOIN zsyz_shyj j ON s.xmbh = j.xmbh
+        WHERE
+        s.is_del = 'N'
+        AND j.xmjd = '项目首谈'
+        AND j.shjg = 2
+        <if test="year != null  and year != ''">and j.shsj like concat( #{year}, '%')</if>
+        <if test="deptId != null ">and s.dept_id = #{deptId}</if>
+        ) a
+        GROUP BY
+        a.xmbh
+    </select>
+
+
+    <!--<select id="selectZsyzSbbzbListTz" resultMap="ZsyzSbbzbResult">
+        SELECT
+        a.id,
+        a.xmbh,
+        a.xmxsmc,
+        a.user_id,
+        a.progress,
+        a.xm_status,
+        a.dept_id,
+        ANY_VALUE(MAX(a.shsj)) AS shsj
+        FROM
+        (
+        SELECT
+        s.id as id,
+        s.xmbh as xmbh,
+        s.xmxsmc as xmxsmc,
+        s.user_id as user_id,
+        s.progress as progress,
+        s.xm_status as xm_status,
+        s.dept_id as dept_id,
+        j.shsj as shsj
+        FROM
+        zsyz_sbbzb s
+        LEFT JOIN zsyz_shyj j ON s.xmbh = j.xmbh
+        WHERE
+        s.is_del = 'N'
+        AND j.xmjd = '项目首谈'
+        AND j.shjg = 2
+        <if test="year != null  and year != ''">and s.cjd_name like concat( #{year}, '%')</if>
+        ) a
+        GROUP BY
+        a.xmbh
+    </select>-->
+
 
     <insert id="insertZsyzSbbzb" parameterType="ZsyzSbbzb" useGeneratedKeys="true" keyProperty="id">
         insert into zsyz_sbbzb