LIVE_YE 2 년 전
부모
커밋
de7dba844a
20개의 변경된 파일1875개의 추가작업 그리고 32개의 파일을 삭제
  1. 104 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/projectV2/ZsyzDjksController.java
  2. 104 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/projectV2/ZsyzWczsController.java
  3. 1 1
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/projectV2/common/ZsyzCommonController.java
  4. 36 3
      ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/projectV2/ZsyzLdpsServiceImpl.java
  5. 215 1
      ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/projectV2/common/ZsyzCommonServiceImpL.java
  6. 6 6
      ruoyi-system/src/main/java/com/ruoyi/system/domain/projectV2/Vo/ZsyzQktjDc.java
  7. 153 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/projectV2/ZsyzDjks.java
  8. 167 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/projectV2/ZsyzWczs.java
  9. 61 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/projectV2/ZsyzDjksMapper.java
  10. 61 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/projectV2/ZsyzWczsMapper.java
  11. 181 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/projectV2/ZsyzDjksServiceImpl.java
  12. 231 18
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/projectV2/ZsyzQktjServiceImpl.java
  13. 178 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/projectV2/ZsyzWczsServiceImpl.java
  14. 61 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/projectV2/IZsyzDjksService.java
  15. 61 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/projectV2/IZsyzWczsService.java
  16. 1 1
      ruoyi-system/src/main/java/com/ruoyi/system/service/projectV2/common/IZsyzCommonService.java
  17. 123 0
      ruoyi-system/src/main/resources/mapper/system/projectV2/ZsyzDjksMapper.xml
  18. 2 1
      ruoyi-system/src/main/resources/mapper/system/projectV2/ZsyzLdpsMapper.xml
  19. 1 1
      ruoyi-system/src/main/resources/mapper/system/projectV2/ZsyzSbbzbMapper.xml
  20. 128 0
      ruoyi-system/src/main/resources/mapper/system/projectV2/ZsyzWczsMapper.xml

+ 104 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/projectV2/ZsyzDjksController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.web.controller.projectV2;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+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.ZsyzDjks;
+import com.ruoyi.system.service.projectV2.IZsyzDjksService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 招商引资_对接客商Controller
+ * 
+ * @author ruoyi
+ * @date 2023-03-16
+ */
+@RestController
+@RequestMapping("/projectV2/djks")
+public class ZsyzDjksController extends BaseController
+{
+    @Autowired
+    private IZsyzDjksService zsyzDjksService;
+
+    /**
+     * 查询招商引资_对接客商列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:djks:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(ZsyzDjks zsyzDjks)
+    {
+        startPage();
+        List<ZsyzDjks> list = zsyzDjksService.selectZsyzDjksList(zsyzDjks);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出招商引资_对接客商列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:djks:export')")
+    @Log(title = "招商引资_对接客商", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, ZsyzDjks zsyzDjks)
+    {
+        List<ZsyzDjks> list = zsyzDjksService.selectZsyzDjksList(zsyzDjks);
+        ExcelUtil<ZsyzDjks> util = new ExcelUtil<ZsyzDjks>(ZsyzDjks.class);
+        util.exportExcel(response, list, "招商引资_对接客商数据");
+    }
+
+    /**
+     * 获取招商引资_对接客商详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:djks:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(zsyzDjksService.selectZsyzDjksById(id));
+    }
+
+    /**
+     * 新增招商引资_对接客商
+     */
+    @PreAuthorize("@ss.hasPermi('system:djks:add')")
+    @Log(title = "招商引资_对接客商", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody ZsyzDjks zsyzDjks)
+    {
+        return toAjax(zsyzDjksService.insertZsyzDjks(zsyzDjks));
+    }
+
+    /**
+     * 修改招商引资_对接客商
+     */
+    @PreAuthorize("@ss.hasPermi('system:djks:edit')")
+    @Log(title = "招商引资_对接客商", businessType = BusinessType.UPDATE)
+    @PostMapping("/put")
+    public AjaxResult edit(@RequestBody ZsyzDjks zsyzDjks)
+    {
+        return toAjax(zsyzDjksService.updateZsyzDjks(zsyzDjks));
+    }
+
+    /**
+     * 删除招商引资_对接客商
+     */
+    @PreAuthorize("@ss.hasPermi('system:djks:remove')")
+    @Log(title = "招商引资_对接客商", businessType = BusinessType.DELETE)
+	@GetMapping("/delete/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(zsyzDjksService.deleteZsyzDjksByIds(ids));
+    }
+}

+ 104 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/projectV2/ZsyzWczsController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.web.controller.projectV2;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+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.ZsyzWczs;
+import com.ruoyi.system.service.projectV2.IZsyzWczsService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 招商引资_外出招商Controller
+ * 
+ * @author ruoyi
+ * @date 2023-03-16
+ */
+@RestController
+@RequestMapping("/projectV2/wczs")
+public class ZsyzWczsController extends BaseController
+{
+    @Autowired
+    private IZsyzWczsService zsyzWczsService;
+
+    /**
+     * 查询招商引资_外出招商列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:wczs:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(ZsyzWczs zsyzWczs)
+    {
+        startPage();
+        List<ZsyzWczs> list = zsyzWczsService.selectZsyzWczsList(zsyzWczs);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出招商引资_外出招商列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:wczs:export')")
+    @Log(title = "招商引资_外出招商", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, ZsyzWczs zsyzWczs)
+    {
+        List<ZsyzWczs> list = zsyzWczsService.selectZsyzWczsList(zsyzWczs);
+        ExcelUtil<ZsyzWczs> util = new ExcelUtil<ZsyzWczs>(ZsyzWczs.class);
+        util.exportExcel(response, list, "招商引资_外出招商数据");
+    }
+
+    /**
+     * 获取招商引资_外出招商详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:wczs:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(zsyzWczsService.selectZsyzWczsById(id));
+    }
+
+    /**
+     * 新增招商引资_外出招商
+     */
+    @PreAuthorize("@ss.hasPermi('system:wczs:add')")
+    @Log(title = "招商引资_外出招商", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody ZsyzWczs zsyzWczs)
+    {
+        return toAjax(zsyzWczsService.insertZsyzWczs(zsyzWczs));
+    }
+
+    /**
+     * 修改招商引资_外出招商
+     */
+    @PreAuthorize("@ss.hasPermi('system:wczs:edit')")
+    @Log(title = "招商引资_外出招商", businessType = BusinessType.UPDATE)
+    @PostMapping("/put")
+    public AjaxResult edit(@RequestBody ZsyzWczs zsyzWczs)
+    {
+        return toAjax(zsyzWczsService.updateZsyzWczs(zsyzWczs));
+    }
+
+    /**
+     * 删除招商引资_外出招商
+     */
+    @PreAuthorize("@ss.hasPermi('system:wczs:remove')")
+    @Log(title = "招商引资_外出招商", businessType = BusinessType.DELETE)
+	@GetMapping("/delete/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(zsyzWczsService.deleteZsyzWczsByIds(ids));
+    }
+}

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

@@ -67,7 +67,7 @@ public class ZsyzCommonController extends BaseController {
      */
     @GetMapping("/statistics/month")
     public AjaxResult statisticsMonth(String year, String month) {
-        return AjaxResult.success(zsyzCommonService.statisticsMonth(year, month));
+        return  AjaxResult.success(zsyzCommonService.statisticsMonthNew(year,month));
     }
 
     /**

+ 36 - 3
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/projectV2/ZsyzLdpsServiceImpl.java → ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/projectV2/ZsyzLdpsServiceImpl.java

@@ -1,5 +1,6 @@
-package com.ruoyi.system.service.impl.projectV2;
+package com.ruoyi.framework.web.service.projectV2;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import com.ruoyi.common.core.domain.entity.SysRole;
@@ -7,8 +8,12 @@ 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.framework.manager.AsyncManager;
+import com.ruoyi.framework.manager.factory.AsyncFactory;
 import com.ruoyi.system.domain.projectV2.ZsyzDbd;
 import com.ruoyi.system.domain.projectV2.ZsyzSbbzb;
+import com.ruoyi.system.domain.projectV2.common.SendSmsConfig;
+import com.ruoyi.system.mapper.SysUserMapper;
 import com.ruoyi.system.mapper.projectV2.ZsyzSbbzbMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -16,8 +21,7 @@ import com.ruoyi.system.mapper.projectV2.ZsyzLdpsMapper;
 import com.ruoyi.system.domain.projectV2.ZsyzLdps;
 import com.ruoyi.system.service.projectV2.IZsyzLdpsService;
 
-import static com.ruoyi.common.constant.CommonConstants.LEADER;
-import static com.ruoyi.common.constant.CommonConstants.MANAGE;
+import static com.ruoyi.common.constant.CommonConstants.*;
 
 /**
  * 招商引资_领导批示Service业务层处理
@@ -32,6 +36,8 @@ public class ZsyzLdpsServiceImpl implements IZsyzLdpsService
     private ZsyzLdpsMapper zsyzLdpsMapper;
     @Autowired
     private ZsyzSbbzbMapper zsyzSbbzbMapper;
+    @Autowired
+    private SysUserMapper sysUserMapper;
 
     /**
      * 查询招商引资_领导批示
@@ -92,6 +98,33 @@ public class ZsyzLdpsServiceImpl implements IZsyzLdpsService
             zsyzSbbzb.setId(zsyzLdps.getXmId());
             zsyzSbbzb.setPsnr(zsyzLdps.getPsnr());
             zsyzSbbzbMapper.updateZsyzSbbzb(zsyzSbbzb);
+
+            //发送短信(给承接地和创建线索的部门人员)
+            List<SendSmsConfig> sendSmsConfigs = new ArrayList<>();
+            //查询项目信息
+            ZsyzSbbzb zsyzSbbzbs = zsyzSbbzbMapper.selectZsyzSbbzbById(zsyzLdps.getXmId());
+            //查询承接地
+            List<SysUser> sysUsers = new ArrayList<>();
+            if(zsyzSbbzbs.getCjdId()!=null && zsyzSbbzbs.getCjdId()!=0L){
+                List<SysUser> sysUserList = sysUserMapper.selectUserByDeptId(zsyzSbbzbs.getCjdId());
+                sysUsers.addAll(sysUserList);
+            }
+            //查询申请人部门所有人都发
+            List<SysUser> sysUserSqr = sysUserMapper.selectUserByDeptId(zsyzSbbzbs.getDeptId());
+            sysUsers.addAll(sysUserSqr);
+            if(sysUsers!=null && sysUsers.size()>0){
+                for (SysUser sysUser : sysUsers) {
+                    if (StringUtils.isNotEmpty(sysUser.getPhonenumber())) {
+                        SendSmsConfig sendSmsConfig = new SendSmsConfig();
+                        sendSmsConfig.setPhone(sysUser.getPhonenumber());
+                        sendSmsConfigs.add(sendSmsConfig);
+                    }
+                }
+                if (sendSmsConfigs.size() > 0) {
+                    AsyncManager.me().execute(AsyncFactory.sendSms(sendSmsConfigs, "SMS_273745572"));
+                }
+            }
+
         }
 
         return zsyzLdpsMapper.insertZsyzLdps(zsyzLdps);

+ 215 - 1
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/projectV2/common/ZsyzCommonServiceImpL.java

@@ -67,6 +67,10 @@ public class ZsyzCommonServiceImpL implements IZsyzCommonService {
     private ZsyzQktjMapper zsyzQktjMapper;
     @Autowired
     private SysDeptMapper sysDeptMapper;
+    @Autowired
+    private ZsyzWczsMapper zsyzWczsMapper;
+    @Autowired
+    private ZsyzDjksMapper zsyzDjksMapper;
 
 
     //主要功能, 对线索进度进行控制
@@ -801,7 +805,7 @@ public class ZsyzCommonServiceImpL implements IZsyzCommonService {
      * 招商引资_情况月统计表
      * @return
      */
-    @Override
+    //@Override
     public List<Map<String, Object>> statisticsMonth(String year,String month) {
         //Long deptId = SecurityUtils.getDeptId();
         //SysUser user = SecurityUtils.getLoginUser().getUser();
@@ -967,6 +971,216 @@ public class ZsyzCommonServiceImpL implements IZsyzCommonService {
         return mapList;
     }
 
+
+    /**
+     * 招商引资_情况月统计表
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> statisticsMonthNew(String year,String month) {
+        //Long deptId = SecurityUtils.getDeptId();
+        //SysUser user = SecurityUtils.getLoginUser().getUser();
+        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/或者平台管理员/或者领导 获取到所有数据
+            //查找年份的所有数据
+            //外出招商
+            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){
+                    Map<String, Object> mapMonth = new HashMap<>();
+                    mapMonth.put("name",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++;
+                            }
+                        }
+                    }
+
+                    mapMonth.put("zswcMonth",zswcMonthc+"/"+zswcMonth);//招商外出天数/次数(月)
+                    mapMonth.put("sjksMonth",sjksMonth);//对接客商次数(月)
+                    mapMonth.put("zswcYear",zswcYearc+"/"+zswcYear);//招商外出天数/次数(年)
+                    mapMonth.put("sjksYear",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++;
+                            }
+                        }
+                        mapMonth.put("yxxsMonth",yxxsMonth);//有效线索(月)
+                        mapMonth.put("yxxsYear",yxxsYear);//有效线索(年)
+
+                        yxxsMonthj = yxxsMonthj + yxxsMonth;
+                        yxxsYearhj = yxxsYearhj + yxxsYear;
+
+                    }else{
+                        mapMonth.put("yxxsMonth",0);//有效线索(月)
+                        mapMonth.put("yxxsYear",0);//有效线索(年)
+                    }
+                    mapList.add(mapMonth);
+
+
+                }
+
+            }
+
+            //合计
+            Map<String, Object> mapMonth = new HashMap<>();
+            mapMonth.put("name","合计");
+            mapMonth.put("zswcMonth",zswcMonthjc+"/"+zswcMonthj);//招商外出天数/次数(月)
+            mapMonth.put("zswcYear",zswcYearhjc+"/"+zswcYearhj);//招商外出天数/次数(年)
+            mapMonth.put("sjksMonth",sjksMonthj);//对接客商次数(月)
+            mapMonth.put("sjksYear",sjksYearhj);//对接客商次数(年)
+            mapMonth.put("yxxsMonth",yxxsMonthj);//有效线索(月)
+            mapMonth.put("yxxsYear",yxxsYearhj);//有效线索(年)
+            mapList.add(mapMonth);
+
+        }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());
+
+            Map<String, Object> mapMonth = new HashMap<>();
+            mapMonth.put("name",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++;
+                }
+            }
+            mapMonth.put("zswcMonth",zswcMonthc+"/"+zswcMonth);//招商外出天数/次数(月)
+            mapMonth.put("sjksMonth",sjksMonth);//对接客商次数(月)
+            mapMonth.put("zswcYear",zswcYearc+"/"+zswcYear);//招商外出天数/次数(年)
+            mapMonth.put("sjksYear",sjksYear);//对接客商次数(年)
+
+            //统计线索数量
+            int yxxsMonth = 0;//有效线索(月)
+            int yxxsYear = zsyzSbbzbList.size();//有效线索(年)
+            for (ZsyzSbbzb zsyzSbbzb : zsyzSbbzbList) {
+                if(zsyzSbbzb.getShsj().contains(year+"-"+month)){
+                    yxxsMonth++;
+                }
+            }
+            mapMonth.put("yxxsMonth",yxxsMonth);//有效线索(月)
+            mapMonth.put("yxxsYear",yxxsYear);//有效线索(年)
+            mapList.add(mapMonth);
+
+            //合计
+            Map<String, Object> mapMonthhj = new HashMap<>();
+            mapMonthhj.put("name","合计");
+            mapMonthhj.put("zswcMonth",zswcMonthc+"/"+zswcMonth);//招商外出天数/次数(月)
+            mapMonthhj.put("sjksMonth",sjksMonth);//对接客商次数(月)
+            mapMonthhj.put("zswcYear",zswcYearc+"/"+zswcYear);//招商外出天数/次数(年)
+            mapMonthhj.put("sjksYear",sjksYear);//对接客商次数(年)
+            mapMonthhj.put("yxxsMonth",yxxsMonth);//有效线索(月)
+            mapMonthhj.put("yxxsYear",yxxsYear);//有效线索(年)
+            mapList.add(mapMonthhj);
+        }
+        return mapList;
+    }
+
     //根据项目进度判断项目阶段
     public String xmjd(String code) {
         if (ONE.equals(code)) {

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

@@ -27,11 +27,11 @@ public class ZsyzQktjDc extends BaseEntity
 
     /** 当月外出数(招商外出次数/天数) */
     @Excel(name = "当月外出数(招商外出次数/天数)", width = 25)
-    private Long zswcMonth;
+    private String zswcMonth;
 
     /** 本年累计数(招商外出次数/天数) */
     @Excel(name = "本年累计数(招商外出次数/天数)", width = 25)
-    private Long zswcYear;
+    private String zswcYear;
 
     /** 当月对接数(对接客商次数) */
     @Excel(name = "当月对接数(对接客商次数)", width = 25)
@@ -54,11 +54,11 @@ public class ZsyzQktjDc extends BaseEntity
         return deptName;
     }
 
-    public Long getZswcMonth() {
+    public String getZswcMonth() {
         return zswcMonth;
     }
 
-    public Long getZswcYear() {
+    public String getZswcYear() {
         return zswcYear;
     }
 
@@ -82,11 +82,11 @@ public class ZsyzQktjDc extends BaseEntity
         this.deptName = deptName;
     }
 
-    public void setZswcMonth(Long zswcMonth) {
+    public void setZswcMonth(String zswcMonth) {
         this.zswcMonth = zswcMonth;
     }
 
-    public void setZswcYear(Long zswcYear) {
+    public void setZswcYear(String zswcYear) {
         this.zswcYear = zswcYear;
     }
 

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

@@ -0,0 +1,153 @@
+package com.ruoyi.system.domain.projectV2;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ * 招商引资_对接客商对象 zsyz_djks
+ * 
+ * @author ruoyi
+ * @date 2023-03-16
+ */
+public class ZsyzDjks 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;
+
+    /** 对接时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "对接时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date outsideTime;
+
+    /**外出人员**/
+    private String outgoer;
+
+    /** 说明 */
+    @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 setOutsideTime(Date outsideTime) 
+    {
+        this.outsideTime = outsideTime;
+    }
+
+    public Date getOutsideTime() 
+    {
+        return outsideTime;
+    }
+    public void setDetails(String details) 
+    {
+        this.details = details;
+    }
+
+    public String getDetails() 
+    {
+        return details;
+    }
+
+    public String getOutgoer() {
+        return outgoer;
+    }
+
+    public void setOutgoer(String outgoer) {
+        this.outgoer = outgoer;
+    }
+
+    @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("outsideTime", getOutsideTime())
+            .append("details", getDetails())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

+ 167 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/projectV2/ZsyzWczs.java

@@ -0,0 +1,167 @@
+package com.ruoyi.system.domain.projectV2;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ * 招商引资_外出招商对象 zsyz_wczs
+ * 
+ * @author ruoyi
+ * @date 2023-03-16
+ */
+public class ZsyzWczs 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;
+
+    /** 外出时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "外出时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date outsideTime;
+
+    /** 外出天数 */
+    @Excel(name = "外出天数")
+    private Integer numberOutings;
+
+    /**外出人员**/
+    private String outgoer;
+
+    /** 说明 */
+    @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 setOutsideTime(Date outsideTime) 
+    {
+        this.outsideTime = outsideTime;
+    }
+
+    public Date getOutsideTime() 
+    {
+        return outsideTime;
+    }
+    public void setNumberOutings(Integer numberOutings) 
+    {
+        this.numberOutings = numberOutings;
+    }
+
+    public Integer getNumberOutings() 
+    {
+        return numberOutings;
+    }
+    public void setDetails(String details) 
+    {
+        this.details = details;
+    }
+
+    public String getDetails() 
+    {
+        return details;
+    }
+
+    public String getOutgoer() {
+        return outgoer;
+    }
+
+    public void setOutgoer(String outgoer) {
+        this.outgoer = outgoer;
+    }
+
+    @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("outsideTime", getOutsideTime())
+            .append("numberOutings", getNumberOutings())
+            .append("details", getDetails())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

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

@@ -0,0 +1,61 @@
+package com.ruoyi.system.mapper.projectV2;
+
+import java.util.List;
+import com.ruoyi.system.domain.projectV2.ZsyzDjks;
+
+/**
+ * 招商引资_对接客商Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2023-03-16
+ */
+public interface ZsyzDjksMapper 
+{
+    /**
+     * 查询招商引资_对接客商
+     * 
+     * @param id 招商引资_对接客商主键
+     * @return 招商引资_对接客商
+     */
+    public ZsyzDjks selectZsyzDjksById(Long id);
+
+    /**
+     * 查询招商引资_对接客商列表
+     * 
+     * @param zsyzDjks 招商引资_对接客商
+     * @return 招商引资_对接客商集合
+     */
+    public List<ZsyzDjks> selectZsyzDjksList(ZsyzDjks zsyzDjks);
+
+    /**
+     * 新增招商引资_对接客商
+     * 
+     * @param zsyzDjks 招商引资_对接客商
+     * @return 结果
+     */
+    public int insertZsyzDjks(ZsyzDjks zsyzDjks);
+
+    /**
+     * 修改招商引资_对接客商
+     * 
+     * @param zsyzDjks 招商引资_对接客商
+     * @return 结果
+     */
+    public int updateZsyzDjks(ZsyzDjks zsyzDjks);
+
+    /**
+     * 删除招商引资_对接客商
+     * 
+     * @param id 招商引资_对接客商主键
+     * @return 结果
+     */
+    public int deleteZsyzDjksById(Long id);
+
+    /**
+     * 批量删除招商引资_对接客商
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteZsyzDjksByIds(Long[] ids);
+}

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

@@ -0,0 +1,61 @@
+package com.ruoyi.system.mapper.projectV2;
+
+import java.util.List;
+import com.ruoyi.system.domain.projectV2.ZsyzWczs;
+
+/**
+ * 招商引资_外出招商Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2023-03-16
+ */
+public interface ZsyzWczsMapper 
+{
+    /**
+     * 查询招商引资_外出招商
+     * 
+     * @param id 招商引资_外出招商主键
+     * @return 招商引资_外出招商
+     */
+    public ZsyzWczs selectZsyzWczsById(Long id);
+
+    /**
+     * 查询招商引资_外出招商列表
+     * 
+     * @param zsyzWczs 招商引资_外出招商
+     * @return 招商引资_外出招商集合
+     */
+    public List<ZsyzWczs> selectZsyzWczsList(ZsyzWczs zsyzWczs);
+
+    /**
+     * 新增招商引资_外出招商
+     * 
+     * @param zsyzWczs 招商引资_外出招商
+     * @return 结果
+     */
+    public int insertZsyzWczs(ZsyzWczs zsyzWczs);
+
+    /**
+     * 修改招商引资_外出招商
+     * 
+     * @param zsyzWczs 招商引资_外出招商
+     * @return 结果
+     */
+    public int updateZsyzWczs(ZsyzWczs zsyzWczs);
+
+    /**
+     * 删除招商引资_外出招商
+     * 
+     * @param id 招商引资_外出招商主键
+     * @return 结果
+     */
+    public int deleteZsyzWczsById(Long id);
+
+    /**
+     * 批量删除招商引资_外出招商
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteZsyzWczsByIds(Long[] ids);
+}

+ 181 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/projectV2/ZsyzDjksServiceImpl.java

@@ -0,0 +1,181 @@
+package com.ruoyi.system.service.impl.projectV2;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.ruoyi.common.constant.CommonConstants;
+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.ZsyzFj;
+import com.ruoyi.system.domain.projectV2.ZsyzQktj;
+import com.ruoyi.system.mapper.projectV2.ZsyzFjMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.projectV2.ZsyzDjksMapper;
+import com.ruoyi.system.domain.projectV2.ZsyzDjks;
+import com.ruoyi.system.service.projectV2.IZsyzDjksService;
+
+import static com.ruoyi.common.constant.CommonConstants.LEADER;
+import static com.ruoyi.common.constant.CommonConstants.MANAGE;
+
+/**
+ * 招商引资_对接客商Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2023-03-16
+ */
+@Service
+public class ZsyzDjksServiceImpl implements IZsyzDjksService 
+{
+    @Autowired
+    private ZsyzDjksMapper zsyzDjksMapper;
+    @Autowired
+    private ZsyzFjMapper zsyzFjMapper;
+
+    /**
+     * 查询招商引资_对接客商
+     * 
+     * @param id 招商引资_对接客商主键
+     * @return 招商引资_对接客商
+     */
+    @Override
+    public ZsyzDjks selectZsyzDjksById(Long id)
+    {
+        ZsyzDjks zsyzDjks = zsyzDjksMapper.selectZsyzDjksById(id);
+        if(zsyzDjks.getZsyzFjList().size()<=0){
+            zsyzDjks.setZsyzFjList(new ArrayList<>());
+        }else{
+            List<ZsyzFj> zsyzFjList = new ArrayList<>();
+            //只拿type为6的附件
+            for (ZsyzFj zsyzFj : zsyzDjks.getZsyzFjList()) {
+                if(zsyzFj.getType().equals(CommonConstants.SIX)){
+                    zsyzFjList.add(zsyzFj);
+                }
+            }
+            zsyzDjks.setZsyzFjList(zsyzFjList);
+        }
+        if(zsyzDjks.getZsyzFjList().size()==1 && StringUtils.isEmpty(zsyzDjks.getZsyzFjList().get(0).getPath())){
+            zsyzDjks.setZsyzFjList(new ArrayList<>());
+        }
+        return zsyzDjks ;
+    }
+
+    /**
+     * 查询招商引资_对接客商列表
+     * 
+     * @param zsyzDjks 招商引资_对接客商
+     * @return 招商引资_对接客商
+     */
+    @Override
+    public List<ZsyzDjks> selectZsyzDjksList(ZsyzDjks zsyzDjks)
+    {
+        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/或者平台管理员/或者领导 获取到所有数据
+
+        }else{
+            zsyzDjks.setDeptId(currentUser.getDeptId());
+        }
+        return zsyzDjksMapper.selectZsyzDjksList(zsyzDjks);
+    }
+
+    /**
+     * 新增招商引资_对接客商
+     * 
+     * @param zsyzDjks 招商引资_对接客商
+     * @return 结果
+     */
+    @Override
+    public int insertZsyzDjks(ZsyzDjks zsyzDjks)
+    {
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        zsyzDjks.setDeptId(user.getDeptId());
+        zsyzDjks.setDeptName(user.getDept().getDeptName());
+        zsyzDjks.setCreateTime(DateUtils.getNowDate());
+        int count = zsyzDjksMapper.insertZsyzDjks(zsyzDjks);
+
+        //修改附件
+        if (zsyzDjks.getZsyzFjList() != null && zsyzDjks.getZsyzFjList().size() > 0) {
+            ZsyzFj zsyzFjDelete = new ZsyzFj();
+            zsyzFjDelete.setSourceId(zsyzDjks.getId());
+            zsyzFjDelete.setType(CommonConstants.SIX);
+            //先删除相关附件
+            zsyzFjMapper.deleteZsyzFjBySourceId(zsyzFjDelete);
+            //再将文件新增进数据库
+            List<ZsyzFj> zsyzFjList = zsyzDjks.getZsyzFjList();
+            if (zsyzFjList != null) {
+                for (ZsyzFj zsyzFj : zsyzFjList) {
+                    zsyzFj.setSourceId(zsyzDjks.getId());
+                    zsyzFj.setType(CommonConstants.SIX);
+                    zsyzFj.setXmId(0L);
+                    //zsyzFj.setXmbh(zsyzSbbzb.getXmbh());
+                    zsyzFjMapper.insertZsyzFj(zsyzFj);
+                }
+            }
+        }
+
+        return count;
+    }
+
+    /**
+     * 修改招商引资_对接客商
+     * 
+     * @param zsyzDjks 招商引资_对接客商
+     * @return 结果
+     */
+    @Override
+    public int updateZsyzDjks(ZsyzDjks zsyzDjks)
+    {
+        zsyzDjks.setUpdateTime(DateUtils.getNowDate());
+        //修改附件
+        ZsyzFj zsyzFjDelete = new ZsyzFj();
+        zsyzFjDelete.setSourceId(zsyzDjks.getId());
+        zsyzFjDelete.setType(CommonConstants.SIX);
+        //先删除相关附件
+        zsyzFjMapper.deleteZsyzFjBySourceId(zsyzFjDelete);
+        //再将文件新增进数据库
+        List<ZsyzFj> zsyzFjList = zsyzDjks.getZsyzFjList();
+        if (zsyzFjList != null) {
+            for (ZsyzFj zsyzFj : zsyzFjList) {
+                zsyzFj.setSourceId(zsyzDjks.getId());
+                zsyzFj.setType(CommonConstants.SIX);
+                zsyzFj.setXmId(0L);
+                zsyzFjMapper.insertZsyzFj(zsyzFj);
+            }
+        }
+        return zsyzDjksMapper.updateZsyzDjks(zsyzDjks);
+    }
+
+    /**
+     * 批量删除招商引资_对接客商
+     * 
+     * @param ids 需要删除的招商引资_对接客商主键
+     * @return 结果
+     */
+    @Override
+    public int deleteZsyzDjksByIds(Long[] ids)
+    {
+        return zsyzDjksMapper.deleteZsyzDjksByIds(ids);
+    }
+
+    /**
+     * 删除招商引资_对接客商信息
+     * 
+     * @param id 招商引资_对接客商主键
+     * @return 结果
+     */
+    @Override
+    public int deleteZsyzDjksById(Long id)
+    {
+        return zsyzDjksMapper.deleteZsyzDjksById(id);
+    }
+}

+ 231 - 18
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/projectV2/ZsyzQktjServiceImpl.java

@@ -8,17 +8,13 @@ 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.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.mapper.projectV2.*;
 import com.ruoyi.system.service.projectV2.IZsyzQktjService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -52,6 +48,10 @@ public class ZsyzQktjServiceImpl implements IZsyzQktjService {
 
     @Autowired
     private SysDeptMapper sysDeptMapper;
+    @Autowired
+    private ZsyzWczsMapper zsyzWczsMapper;
+    @Autowired
+    private ZsyzDjksMapper zsyzDjksMapper;
 
 
     /**
@@ -195,8 +195,8 @@ public class ZsyzQktjServiceImpl implements IZsyzQktjService {
     @Override
     public List<ZsyzQktjDc> selectZsyzQktjListTj(ZsyzQktj zsyzQktj) {
 
-
-        return statisticsMonth(zsyzQktj.getYear(), zsyzQktj.getMonth());
+        return statisticsMonthNew(zsyzQktj.getYear(), zsyzQktj.getMonth());
+        //return statisticsMonth(zsyzQktj.getYear(), zsyzQktj.getMonth());
     }
 
 
@@ -249,18 +249,18 @@ public class ZsyzQktjServiceImpl implements IZsyzQktjService {
                             zswcYear = zswcYear + qktj.getNumberOutings();
                             sjksYear = sjksYear + qktj.getNumberDocking();
                             if (qktj.getMonth().equals(month)) {
-                                zsyzQktjDc.setZswcMonth(qktj.getNumberOutings());//招商外出天数(月)
+                                zsyzQktjDc.setZswcMonth(String.valueOf(qktj.getNumberOutings()));//招商外出天数(月)
                                 zsyzQktjDc.setSjksMonth(qktj.getNumberDocking());//招商外出天数(年)
                             }
 
                         }
-                        zsyzQktjDc.setZswcYear(zswcYear);//招商外出天数(年)
+                        zsyzQktjDc.setZswcYear(String.valueOf(zswcYear));//招商外出天数(年)
                         zsyzQktjDc.setSjksYear(sjksYear);//对接客商次数(年)
                     } else {
                         //部门不存在数据
-                        zsyzQktjDc.setZswcMonth(0L);//招商外出天数(月)
+                        zsyzQktjDc.setZswcMonth("0");//招商外出天数(月)
                         zsyzQktjDc.setSjksMonth(0L);//招商外出天数(年)
-                        zsyzQktjDc.setZswcYear(0L);//招商外出天数(年)
+                        zsyzQktjDc.setZswcYear("0");//招商外出天数(年)
                         zsyzQktjDc.setSjksYear(0L);//对接客商次数(年)
                     }
 
@@ -317,8 +317,8 @@ public class ZsyzQktjServiceImpl implements IZsyzQktjService {
                 //yxxsMonth = yxxsMonth + zsyzQktjDc.getZsyzQktjYxxsList().get(0).getYxxsMonth();
                 //yxxsYear = yxxsYear + zsyzQktjDc.getZsyzQktjYxxsList().get(0).getYxxsYear();
 
-                zswcMonth = zswcMonth + zsyzQktjDc.getZswcMonth();
-                zswcYear = zswcYear + zsyzQktjDc.getZswcYear();
+                zswcMonth = zswcMonth + Long.valueOf(zsyzQktjDc.getZswcMonth());
+                zswcYear = zswcYear + Long.valueOf(zsyzQktjDc.getZswcYear());
                 sjksMonth = sjksMonth + zsyzQktjDc.getSjksMonth();
                 sjksYear = sjksYear + zsyzQktjDc.getSjksYear();
                 yxxsMonth = yxxsMonth + zsyzQktjDc.getYxxsMonth();
@@ -332,9 +332,9 @@ public class ZsyzQktjServiceImpl implements IZsyzQktjService {
             //zsyzQktjYxxs.setYxxsMonth(yxxsMonth);//有效线索(月)
             //zsyzQktjYxxs.setYxxsYear(yxxsYear);//有效线索(年)
 
-            zsyzQktjDch.setZswcMonth(zswcMonth);//招商外出天数(月)
+            zsyzQktjDch.setZswcMonth(String.valueOf(zswcMonth));//招商外出天数(月)
             zsyzQktjDch.setSjksMonth(sjksMonth);//招商外出天数(年)
-            zsyzQktjDch.setZswcYear(zswcYear);//招商外出天数(年)
+            zsyzQktjDch.setZswcYear(String.valueOf(zswcYear));//招商外出天数(年)
             zsyzQktjDch.setSjksYear(sjksYear);//对接客商次数(年)
             zsyzQktjDch.setYxxsMonth(yxxsMonth);//有效线索(月)
             zsyzQktjDch.setYxxsYear(yxxsYear);//有效线索(年)
@@ -370,7 +370,7 @@ public class ZsyzQktjServiceImpl implements IZsyzQktjService {
             ZsyzQktjYxxs zsyzQktjYxxs = new ZsyzQktjYxxs();*/
 
 
-            zsyzQktjDc.setZswcMonth(0L);//招商外出天数(月)
+            zsyzQktjDc.setZswcMonth("0");//招商外出天数(月)
             zsyzQktjDc.setSjksMonth(0L);//对接客商次数(月)
 
             Long zswcYear = 0L;//招商外出天数(年)
@@ -379,7 +379,7 @@ public class ZsyzQktjServiceImpl implements IZsyzQktjService {
                 zswcYear = zswcYear + qktj.getNumberOutings();
                 sjksYear = sjksYear + qktj.getNumberDocking();
             }
-            zsyzQktjDc.setZswcYear(zswcYear);//招商外出天数(年)
+            zsyzQktjDc.setZswcYear(String.valueOf(zswcYear));//招商外出天数(年)
             zsyzQktjDc.setSjksYear(sjksYear);//对接客商次数(年)
             //统计线索数量
             Long yxxsMonth = 0L;//有效线索(月)
@@ -407,4 +407,217 @@ public class ZsyzQktjServiceImpl implements IZsyzQktjService {
         }
         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;
+    }
+
 }

+ 178 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/projectV2/ZsyzWczsServiceImpl.java

@@ -0,0 +1,178 @@
+package com.ruoyi.system.service.impl.projectV2;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.ruoyi.common.constant.CommonConstants;
+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.ZsyzDjks;
+import com.ruoyi.system.domain.projectV2.ZsyzFj;
+import com.ruoyi.system.mapper.projectV2.ZsyzFjMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.projectV2.ZsyzWczsMapper;
+import com.ruoyi.system.domain.projectV2.ZsyzWczs;
+import com.ruoyi.system.service.projectV2.IZsyzWczsService;
+
+import static com.ruoyi.common.constant.CommonConstants.LEADER;
+import static com.ruoyi.common.constant.CommonConstants.MANAGE;
+
+/**
+ * 招商引资_外出招商Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2023-03-16
+ */
+@Service
+public class ZsyzWczsServiceImpl implements IZsyzWczsService 
+{
+    @Autowired
+    private ZsyzWczsMapper zsyzWczsMapper;
+    @Autowired
+    private ZsyzFjMapper zsyzFjMapper;
+
+    /**
+     * 查询招商引资_外出招商
+     * 
+     * @param id 招商引资_外出招商主键
+     * @return 招商引资_外出招商
+     */
+    @Override
+    public ZsyzWczs selectZsyzWczsById(Long id)
+    {
+        ZsyzWczs zsyzWczs = zsyzWczsMapper.selectZsyzWczsById(id);
+        if(zsyzWczs.getZsyzFjList().size()<=0){
+            zsyzWczs.setZsyzFjList(new ArrayList<>());
+        }else{
+            List<ZsyzFj> zsyzFjList = new ArrayList<>();
+            //只拿type为7的附件
+            for (ZsyzFj zsyzFj : zsyzWczs.getZsyzFjList()) {
+                if(zsyzFj.getType().equals(CommonConstants.SEV)){
+                    zsyzFjList.add(zsyzFj);
+                }
+            }
+            zsyzWczs.setZsyzFjList(zsyzFjList);
+        }
+        if(zsyzWczs.getZsyzFjList().size()==1 && StringUtils.isEmpty(zsyzWczs.getZsyzFjList().get(0).getPath())){
+            zsyzWczs.setZsyzFjList(new ArrayList<>());
+        }
+        return zsyzWczs;
+    }
+
+    /**
+     * 查询招商引资_外出招商列表
+     * 
+     * @param zsyzWczs 招商引资_外出招商
+     * @return 招商引资_外出招商
+     */
+    @Override
+    public List<ZsyzWczs> selectZsyzWczsList(ZsyzWczs zsyzWczs)
+    {
+        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/或者平台管理员/或者领导 获取到所有数据
+
+        }else{
+            zsyzWczs.setDeptId(currentUser.getDeptId());
+        }
+        return zsyzWczsMapper.selectZsyzWczsList(zsyzWczs);
+    }
+
+    /**
+     * 新增招商引资_外出招商
+     * 
+     * @param zsyzWczs 招商引资_外出招商
+     * @return 结果
+     */
+    @Override
+    public int insertZsyzWczs(ZsyzWczs zsyzWczs)
+    {
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        zsyzWczs.setDeptId(user.getDeptId());
+        zsyzWczs.setDeptName(user.getDept().getDeptName());
+        zsyzWczs.setCreateTime(DateUtils.getNowDate());
+        int count = zsyzWczsMapper.insertZsyzWczs(zsyzWczs);
+        //修改附件
+        if (zsyzWczs.getZsyzFjList() != null && zsyzWczs.getZsyzFjList().size() > 0) {
+            ZsyzFj zsyzFjDelete = new ZsyzFj();
+            zsyzFjDelete.setSourceId(zsyzWczs.getId());
+            zsyzFjDelete.setType(CommonConstants.SEV);
+            //先删除相关附件
+            zsyzFjMapper.deleteZsyzFjBySourceId(zsyzFjDelete);
+            //再将文件新增进数据库
+            List<ZsyzFj> zsyzFjList = zsyzWczs.getZsyzFjList();
+            if (zsyzFjList != null) {
+                for (ZsyzFj zsyzFj : zsyzFjList) {
+                    zsyzFj.setSourceId(zsyzWczs.getId());
+                    zsyzFj.setType(CommonConstants.SEV);
+                    zsyzFj.setXmId(0L);
+                    zsyzFjMapper.insertZsyzFj(zsyzFj);
+                }
+            }
+        }
+        return count;
+    }
+
+    /**
+     * 修改招商引资_外出招商
+     * 
+     * @param zsyzWczs 招商引资_外出招商
+     * @return 结果
+     */
+    @Override
+    public int updateZsyzWczs(ZsyzWczs zsyzWczs)
+    {
+        zsyzWczs.setUpdateTime(DateUtils.getNowDate());
+        //修改附件
+        ZsyzFj zsyzFjDelete = new ZsyzFj();
+        zsyzFjDelete.setSourceId(zsyzWczs.getId());
+        zsyzFjDelete.setType(CommonConstants.SEV);
+        //先删除相关附件
+        zsyzFjMapper.deleteZsyzFjBySourceId(zsyzFjDelete);
+        //再将文件新增进数据库
+        List<ZsyzFj> zsyzFjList = zsyzWczs.getZsyzFjList();
+        if (zsyzFjList != null) {
+            for (ZsyzFj zsyzFj : zsyzFjList) {
+                zsyzFj.setSourceId(zsyzWczs.getId());
+                zsyzFj.setType(CommonConstants.SEV);
+                zsyzFj.setXmId(0L);
+                zsyzFjMapper.insertZsyzFj(zsyzFj);
+            }
+        }
+        return zsyzWczsMapper.updateZsyzWczs(zsyzWczs);
+    }
+
+    /**
+     * 批量删除招商引资_外出招商
+     * 
+     * @param ids 需要删除的招商引资_外出招商主键
+     * @return 结果
+     */
+    @Override
+    public int deleteZsyzWczsByIds(Long[] ids)
+    {
+        return zsyzWczsMapper.deleteZsyzWczsByIds(ids);
+    }
+
+    /**
+     * 删除招商引资_外出招商信息
+     * 
+     * @param id 招商引资_外出招商主键
+     * @return 结果
+     */
+    @Override
+    public int deleteZsyzWczsById(Long id)
+    {
+        return zsyzWczsMapper.deleteZsyzWczsById(id);
+    }
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/projectV2/IZsyzDjksService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.service.projectV2;
+
+import java.util.List;
+import com.ruoyi.system.domain.projectV2.ZsyzDjks;
+
+/**
+ * 招商引资_对接客商Service接口
+ * 
+ * @author ruoyi
+ * @date 2023-03-16
+ */
+public interface IZsyzDjksService 
+{
+    /**
+     * 查询招商引资_对接客商
+     * 
+     * @param id 招商引资_对接客商主键
+     * @return 招商引资_对接客商
+     */
+    public ZsyzDjks selectZsyzDjksById(Long id);
+
+    /**
+     * 查询招商引资_对接客商列表
+     * 
+     * @param zsyzDjks 招商引资_对接客商
+     * @return 招商引资_对接客商集合
+     */
+    public List<ZsyzDjks> selectZsyzDjksList(ZsyzDjks zsyzDjks);
+
+    /**
+     * 新增招商引资_对接客商
+     * 
+     * @param zsyzDjks 招商引资_对接客商
+     * @return 结果
+     */
+    public int insertZsyzDjks(ZsyzDjks zsyzDjks);
+
+    /**
+     * 修改招商引资_对接客商
+     * 
+     * @param zsyzDjks 招商引资_对接客商
+     * @return 结果
+     */
+    public int updateZsyzDjks(ZsyzDjks zsyzDjks);
+
+    /**
+     * 批量删除招商引资_对接客商
+     * 
+     * @param ids 需要删除的招商引资_对接客商主键集合
+     * @return 结果
+     */
+    public int deleteZsyzDjksByIds(Long[] ids);
+
+    /**
+     * 删除招商引资_对接客商信息
+     * 
+     * @param id 招商引资_对接客商主键
+     * @return 结果
+     */
+    public int deleteZsyzDjksById(Long id);
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/projectV2/IZsyzWczsService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.service.projectV2;
+
+import java.util.List;
+import com.ruoyi.system.domain.projectV2.ZsyzWczs;
+
+/**
+ * 招商引资_外出招商Service接口
+ * 
+ * @author ruoyi
+ * @date 2023-03-16
+ */
+public interface IZsyzWczsService 
+{
+    /**
+     * 查询招商引资_外出招商
+     * 
+     * @param id 招商引资_外出招商主键
+     * @return 招商引资_外出招商
+     */
+    public ZsyzWczs selectZsyzWczsById(Long id);
+
+    /**
+     * 查询招商引资_外出招商列表
+     * 
+     * @param zsyzWczs 招商引资_外出招商
+     * @return 招商引资_外出招商集合
+     */
+    public List<ZsyzWczs> selectZsyzWczsList(ZsyzWczs zsyzWczs);
+
+    /**
+     * 新增招商引资_外出招商
+     * 
+     * @param zsyzWczs 招商引资_外出招商
+     * @return 结果
+     */
+    public int insertZsyzWczs(ZsyzWczs zsyzWczs);
+
+    /**
+     * 修改招商引资_外出招商
+     * 
+     * @param zsyzWczs 招商引资_外出招商
+     * @return 结果
+     */
+    public int updateZsyzWczs(ZsyzWczs zsyzWczs);
+
+    /**
+     * 批量删除招商引资_外出招商
+     * 
+     * @param ids 需要删除的招商引资_外出招商主键集合
+     * @return 结果
+     */
+    public int deleteZsyzWczsByIds(Long[] ids);
+
+    /**
+     * 删除招商引资_外出招商信息
+     * 
+     * @param id 招商引资_外出招商主键
+     * @return 结果
+     */
+    public int deleteZsyzWczsById(Long id);
+}

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

@@ -49,5 +49,5 @@ public interface IZsyzCommonService
   //撤回
   public AjaxResult xsch(ZsyzSbbzb zsyzSbbzb);
 
-  List<Map<String, Object>> statisticsMonth(String year, String month);
+  List<Map<String, Object>> statisticsMonthNew(String year, String month);
 }

+ 123 - 0
ruoyi-system/src/main/resources/mapper/system/projectV2/ZsyzDjksMapper.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.ZsyzDjksMapper">
+    
+    <resultMap type="ZsyzDjks" id="ZsyzDjksResult">
+        <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="outsideTime"    column="outside_time"    />
+        <result property="outgoer"    column="outgoer"    />
+        <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="selectZsyzDjksVo">
+        select id, dept_id, dept_name, year, month, outside_time,outgoer, details, create_by, create_time, update_by, update_time, remark
+        from zsyz_djks
+    </sql>
+
+    <select id="selectZsyzDjksList" parameterType="ZsyzDjks" resultMap="ZsyzDjksResult">
+        <include refid="selectZsyzDjksVo"/>
+        <where>  
+            <if test="deptId != null "> and dept_id = #{deptId}</if>
+            <if test="deptName != null  and deptName != ''"> and dept_name like concat('%', #{deptName}, '%')</if>
+            <if test="year != null  and year != ''"> and year = #{year}</if>
+            <if test="month != null  and month != ''"> and month = #{month}</if>
+            <if test="outsideTime != null "> and outside_time = #{outsideTime}</if>
+            <if test="details != null  and details != ''"> and details = #{details}</if>
+            <if test="outgoer != null  and outgoer != ''"> and outgoer = #{outgoer}</if>
+        </where>
+    </select>
+    
+    <select id="selectZsyzDjksById" parameterType="Long" resultMap="ZsyzDjksResult">
+        select d.id, d.dept_id, d.dept_name, d.year, d.month, d.outside_time,d.outgoer, d.details, d.create_by, d.create_time, d.update_by, d.update_time, d.remark,
+               f.id,f.xm_id, f.xmbh, f.source_id, f.fj_name, f.path, f.type
+        from zsyz_djks d
+        left join zsyz_fj f on d.id = f.source_id
+        where d.id = #{id}
+    </select>
+        
+    <insert id="insertZsyzDjks" parameterType="ZsyzDjks" useGeneratedKeys="true" keyProperty="id">
+        insert into zsyz_djks
+        <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="outsideTime != null">outside_time,</if>
+            <if test="outgoer != null">outgoer,</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="outsideTime != null">#{outsideTime},</if>
+            <if test="outgoer != null">#{outgoer},</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="updateZsyzDjks" parameterType="ZsyzDjks">
+        update zsyz_djks
+        <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="outsideTime != null">outside_time = #{outsideTime},</if>
+            <if test="outgoer != null">outgoer = #{outgoer},</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="deleteZsyzDjksById" parameterType="Long">
+        delete from zsyz_djks where id = #{id}
+    </delete>
+
+    <delete id="deleteZsyzDjksByIds" parameterType="String">
+        delete from zsyz_djks where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 2 - 1
ruoyi-system/src/main/resources/mapper/system/projectV2/ZsyzLdpsMapper.xml

@@ -25,7 +25,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectZsyzLdpsList" parameterType="ZsyzLdps" resultMap="ZsyzLdpsResult">
         <include refid="selectZsyzLdpsVo"/>
-        <where>  
+        <where>
+            psnr is not null
             <if test="xmId != null "> and xm_id = #{xmId}</if>
             <if test="xmbh != null  and xmbh != ''"> and xmbh = #{xmbh}</if>
             <if test="psnr != null  and psnr != ''"> and psnr = #{psnr}</if>

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

@@ -326,7 +326,7 @@
             <if test="userId != null ">and s.user_id = #{userId}</if>
             <if test="type != null  and type != ''">and s.type = #{type}</if>
             <if test="progress != null  and progress != ''">and find_in_set(s.progress , #{progress})</if>
-            <if test="xmStatus != null  and xmStatus != ''">and s.xm_status = #{xmStatus})</if>
+            <if test="xmStatus != null  and xmStatus != ''">and s.xm_status = #{xmStatus}</if>
             <if test="isDel != null  and isDel != ''">and s.is_del = #{isDel}</if>
             <if test="cjdId != null ">and s.cjd_id = #{cjdId}</if>
             <if test="cjdName != null  and cjdName != ''">and s.cjd_name like concat('%', #{cjdName}, '%')</if>

+ 128 - 0
ruoyi-system/src/main/resources/mapper/system/projectV2/ZsyzWczsMapper.xml

@@ -0,0 +1,128 @@
+<?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.ZsyzWczsMapper">
+    
+    <resultMap type="ZsyzWczs" id="ZsyzWczsResult">
+        <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="outsideTime"    column="outside_time"    />
+        <result property="numberOutings"    column="number_outings"    />
+        <result property="outgoer"    column="outgoer"    />
+        <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="selectZsyzWczsVo">
+        select id, dept_id, dept_name, year, month, outside_time, number_outings,outgoer, details, create_by, create_time, update_by, update_time, remark from zsyz_wczs
+    </sql>
+
+    <select id="selectZsyzWczsList" parameterType="ZsyzWczs" resultMap="ZsyzWczsResult">
+        <include refid="selectZsyzWczsVo"/>
+        <where>  
+            <if test="deptId != null "> and dept_id = #{deptId}</if>
+            <if test="deptName != null  and deptName != ''"> and dept_name like concat('%', #{deptName}, '%')</if>
+            <if test="year != null  and year != ''"> and year = #{year}</if>
+            <if test="month != null  and month != ''"> and month = #{month}</if>
+            <if test="outsideTime != null "> and outside_time = #{outsideTime}</if>
+            <if test="numberOutings != null "> and number_outings = #{numberOutings}</if>
+            <if test="details != null  and details != ''"> and details = #{details}</if>
+            <if test="outgoer != null  and outgoer != ''"> and outgoer = #{outgoer}</if>
+
+        </where>
+    </select>
+    
+    <select id="selectZsyzWczsById" parameterType="Long" resultMap="ZsyzWczsResult">
+        select w.id, w.dept_id, w.dept_name, w.year, w.month, w.outside_time, w.number_outings,w.outgoer, w.details, w.create_by, w.create_time, w.update_by, w.update_time, w.remark,
+               f.id,f.xm_id, f.xmbh, f.source_id, f.fj_name, f.path, f.type
+        from zsyz_wczs w
+        left join zsyz_fj f on w.id = f.source_id
+        where w.id = #{id}
+    </select>
+        
+    <insert id="insertZsyzWczs" parameterType="ZsyzWczs" useGeneratedKeys="true" keyProperty="id">
+        insert into zsyz_wczs
+        <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="outsideTime != null">outside_time,</if>
+            <if test="numberOutings != null">number_outings,</if>
+            <if test="outgoer != null">outgoer,</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="outsideTime != null">#{outsideTime},</if>
+            <if test="numberOutings != null">#{numberOutings},</if>
+            <if test="outgoer != null">#{outgoer},</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="updateZsyzWczs" parameterType="ZsyzWczs">
+        update zsyz_wczs
+        <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="outsideTime != null">outside_time = #{outsideTime},</if>
+            <if test="numberOutings != null">number_outings = #{numberOutings},</if>
+            <if test="outgoer != null">outgoer = #{outgoer},</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="deleteZsyzWczsById" parameterType="Long">
+        delete from zsyz_wczs where id = #{id}
+    </delete>
+
+    <delete id="deleteZsyzWczsByIds" parameterType="String">
+        delete from zsyz_wczs where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>