From cfb74d2292a5efc34eb62c4317a5439ee57d05a6 Mon Sep 17 00:00:00 2001 From: lst Date: Tue, 23 Jul 2024 15:16:36 +0800 Subject: [PATCH] 开发:项目汇总表 --- backend/bpm-runtime/src/main/java/com/hotent/runtime/script/ScriptImpl.java | 17 +++++++++-------- backend/chkpower/src/main/java/com/hotent/chkpower/controller/WProjectLibraryInventoryController.java | 12 ++++++++++-- backend/chkpower/src/main/java/com/hotent/chkpower/dao/WProjectLibraryInventoryDao.java | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/chkpower/src/main/java/com/hotent/chkpower/manager/WProjectLibraryInventoryManager.java | 4 ++++ backend/chkpower/src/main/java/com/hotent/chkpower/manager/impl/WProjectLibraryInventoryManagerImpl.java | 34 ++++++++++++++++++++++++++++++++++ backend/chkpower/src/main/resources/mapper/WProjectLibraryInventoryMapper.xml | 159 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 282 insertions(+), 10 deletions(-) diff --git a/backend/bpm-runtime/src/main/java/com/hotent/runtime/script/ScriptImpl.java b/backend/bpm-runtime/src/main/java/com/hotent/runtime/script/ScriptImpl.java index 819fbcc..7f13f6b 100644 --- a/backend/bpm-runtime/src/main/java/com/hotent/runtime/script/ScriptImpl.java +++ b/backend/bpm-runtime/src/main/java/com/hotent/runtime/script/ScriptImpl.java @@ -21,6 +21,7 @@ import com.hotent.base.manager.CommonManager; import com.hotent.base.util.*; import com.hotent.base.util.Base64; import com.hotent.runtime.utils.SubCalcUtils; +import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.exception.ExceptionUtils; import org.springframework.context.annotation.Primary; import org.springframework.jdbc.core.JdbcTemplate; @@ -1793,7 +1794,7 @@ public class ScriptImpl implements IScript { //当前登陆用户的ID private static final String LOGIN_USER = "loginUser"; //当前登陆用户所属组织的ID - private static final String LOGIN_USER_ORGS = "loginUserOrgs"; + private static final String LOGIN_USER_ORGS = "loginUserOrgs";//获取用户组织关联表中的组织数据 //当前登陆用户所属组织及下属组织的ID private static final String LOGIN_USER_SUB_ORGS = "loginUserSubOrgs"; //当前登陆用户所属组织及所有下属组织的ID @@ -1802,16 +1803,16 @@ public class ScriptImpl implements IScript { private static final String LOGIN_USER_ALL_ORGS = "loginUserAllOrgs"; public ArrayList getDataPermission(String type) { ArrayList orgIds = new ArrayList(); - IUser currentUser = ContextUtil.getCurrentUser(); + IUser currentUser = ContextUtil.getCurrentUser();//获取当前用户信息 if (BeanUtils.isNotEmpty(type)) { if (LOGIN_USER.equals(type)) { - orgIds.add(currentUser.getUserId()); + orgIds.add(currentUser.getUserId());//当前用户id } else if (LOGIN_USER_ORGS.equals(type)) { - String currentUserOrgIds = currentUser.getAttrbuite("CURRENT_USER_ORGIDS"); - if (StringUtil.isNotEmpty(currentUserOrgIds)) { - String[] oids = currentUserOrgIds.split(","); - Set oidSet = new HashSet(Arrays.asList(oids)); - orgIds.addAll(oidSet); + ArrayNode orgArrayNode = uCFeignService.getOrgListByUserId(currentUser.getUserId()); + if (BeanUtils.isNotEmpty(orgArrayNode)) { + for (JsonNode jsonNode : orgArrayNode) { + orgIds.add(jsonNode.get("id").asText()); + } } } else if (LOGIN_USER_SUB_ORGS.equals(type)) { String currentUserSubOrgIds = StringUtil.isNotEmpty(AuthenticationUtil.getCurrentUserSubOrgIds()) ? AuthenticationUtil.getCurrentUserSubOrgIds() : ""; diff --git a/backend/chkpower/src/main/java/com/hotent/chkpower/controller/WProjectLibraryInventoryController.java b/backend/chkpower/src/main/java/com/hotent/chkpower/controller/WProjectLibraryInventoryController.java index 76753a2..68d140b 100644 --- a/backend/chkpower/src/main/java/com/hotent/chkpower/controller/WProjectLibraryInventoryController.java +++ b/backend/chkpower/src/main/java/com/hotent/chkpower/controller/WProjectLibraryInventoryController.java @@ -118,9 +118,9 @@ public class WProjectLibraryInventoryController extends BaseController orgIds = script.getDataPermission("loginUserAllSubOrgs"); @@ -193,4 +193,12 @@ public class WProjectLibraryInventoryController extends BaseController statistics(@ApiParam(name = "startDate", value = "开始日期", required = true) @RequestParam(required = true) String startDate + ,@ApiParam(name = "endDate", value = "结束日期", required = true) @RequestParam(required = true) String endDate) throws Exception { + return CommonResult.ok().value(baseService.statistics(startDate,endDate)); + } + + } diff --git a/backend/chkpower/src/main/java/com/hotent/chkpower/dao/WProjectLibraryInventoryDao.java b/backend/chkpower/src/main/java/com/hotent/chkpower/dao/WProjectLibraryInventoryDao.java index f88d4de..5250027 100644 --- a/backend/chkpower/src/main/java/com/hotent/chkpower/dao/WProjectLibraryInventoryDao.java +++ b/backend/chkpower/src/main/java/com/hotent/chkpower/dao/WProjectLibraryInventoryDao.java @@ -2,6 +2,11 @@ package com.hotent.chkpower.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hotent.chkpower.model.WProjectLibraryInventory; +import org.apache.ibatis.annotations.Param; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; /** * 项目库清单 Mapper 接口 @@ -11,5 +16,66 @@ import com.hotent.chkpower.model.WProjectLibraryInventory; * @since 2024-07-12 */ public interface WProjectLibraryInventoryDao extends BaseMapper { + /** + * 项目类型总数量、收入、利润、在推项目概况汇总、项目总规模 + * @param startDate + * @param endDate + * @param orgIdList + * @return + */ + HashMap basicsStatistics(@Param("startDate") String startDate, @Param("endDate")String endDate, @Param("list")ArrayList orgIdList); + + /** + * 项目质量总数量 + * @param startDate + * @param endDate + * @param orgIdList + * @return + */ + List> projectRatingStatistics(@Param("startDate")String startDate, @Param("endDate")String endDate, @Param("list")ArrayList orgIdList,@Param("xmpjList")ListxmpjList); + + /** + * 投资规模 + * @param startDate + * @param endDate + * @param orgIdList + * @return + */ + List> investmentScaleStatistics(@Param("startDate")String startDate, @Param("endDate")String endDate, @Param("list")ArrayList orgIdList); + + /** + * 项目主体项目占比 + * @param startDate + * @param endDate + * @param orgIdList + * @return + */ + List> orgNameProjectStatistics(@Param("startDate")String startDate, @Param("endDate")String endDate, @Param("list")ArrayList orgIdList); + + /** + * 查询业务场景字典 + * @param ywcj + * @return + */ + List listDictByKey(String ywcj); + + /** + * 业务场景占比 + * @param startDate + * @param endDate + * @param orgIdList + * @param ywcjList + * @return + */ + List> businessScenariosScaleStatistics(@Param("startDate")String startDate, @Param("endDate")String endDate, @Param("list")ArrayList orgIdList, @Param("ywcjList")List ywcjList); + /** + * 商务模式占比 + * @param startDate + * @param endDate + * @param orgIdList + * @param swmsList + * @return + */ + List> businessModelStatistics(@Param("startDate")String startDate, @Param("endDate")String endDate, @Param("list")ArrayList orgIdList, @Param("swmsList")List swmsList); } diff --git a/backend/chkpower/src/main/java/com/hotent/chkpower/manager/WProjectLibraryInventoryManager.java b/backend/chkpower/src/main/java/com/hotent/chkpower/manager/WProjectLibraryInventoryManager.java index 9fd1101..183a3ae 100644 --- a/backend/chkpower/src/main/java/com/hotent/chkpower/manager/WProjectLibraryInventoryManager.java +++ b/backend/chkpower/src/main/java/com/hotent/chkpower/manager/WProjectLibraryInventoryManager.java @@ -3,6 +3,8 @@ package com.hotent.chkpower.manager; import com.hotent.base.manager.BaseManager; import com.hotent.chkpower.model.WProjectLibraryInventory; +import java.util.HashMap; + /** * 项目库清单 服务类 * @@ -26,4 +28,6 @@ public interface WProjectLibraryInventoryManager extends BaseManager statistics(String startDate, String endDate); } diff --git a/backend/chkpower/src/main/java/com/hotent/chkpower/manager/impl/WProjectLibraryInventoryManagerImpl.java b/backend/chkpower/src/main/java/com/hotent/chkpower/manager/impl/WProjectLibraryInventoryManagerImpl.java index cdfad1f..e131977 100644 --- a/backend/chkpower/src/main/java/com/hotent/chkpower/manager/impl/WProjectLibraryInventoryManagerImpl.java +++ b/backend/chkpower/src/main/java/com/hotent/chkpower/manager/impl/WProjectLibraryInventoryManagerImpl.java @@ -1,12 +1,21 @@ package com.hotent.chkpower.manager.impl; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hotent.base.manager.impl.BaseManagerImpl; import com.hotent.chkpower.dao.WProjectLibraryInventoryDao; import com.hotent.chkpower.manager.WProjectLibraryInventoryManager; import com.hotent.chkpower.model.WProjectLibraryInventory; +import com.hotent.runtime.script.ScriptImpl; +import org.redisson.transaction.operation.map.MapPutIfAbsentOperation; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Dictionary; +import java.util.HashMap; +import java.util.List; + /** * 项目库清单 服务实现类 @@ -18,6 +27,8 @@ import org.springframework.transaction.annotation.Transactional; @Service public class WProjectLibraryInventoryManagerImpl extends BaseManagerImpl implements WProjectLibraryInventoryManager { + @Resource + private ScriptImpl script; @Override public WProjectLibraryInventory getDetail(String id) { WProjectLibraryInventory wProjectLibraryInventory = this.get(id); @@ -30,4 +41,27 @@ public class WProjectLibraryInventoryManagerImpl extends BaseManagerImpl statistics(String startDate, String endDate) { + HashMap map = new HashMap<>(); + //获取当前用户所属组织及下属组织id集合 + ArrayList orgIdList = script.getDataPermission("loginUserAllSubOrgs"); + map = baseMapper.basicsStatistics(startDate, endDate, orgIdList); + List xmpjList = baseMapper.listDictByKey("xmpj"); + List> xmzlMap = baseMapper.projectRatingStatistics(startDate, endDate, orgIdList, xmpjList); + map.put("XMZL", xmzlMap); + List> tzgmMap = baseMapper.investmentScaleStatistics(startDate, endDate, orgIdList); + map.put("TZGM", tzgmMap); + + List> xmztxmzbMap = baseMapper.orgNameProjectStatistics(startDate, endDate, orgIdList); + map.put("XMZTXMZB", xmztxmzbMap); + List ywcjList = baseMapper.listDictByKey("ywcj"); + List> ywcjzbMap = baseMapper.businessScenariosScaleStatistics(startDate, endDate, orgIdList, ywcjList); + map.put("YWCJZB", ywcjzbMap); + List swmsList = baseMapper.listDictByKey("swms"); + List> swmszbMap = baseMapper.businessModelStatistics(startDate, endDate, orgIdList, swmsList); + map.put("SWMSZB", swmszbMap); + return map; + } } diff --git a/backend/chkpower/src/main/resources/mapper/WProjectLibraryInventoryMapper.xml b/backend/chkpower/src/main/resources/mapper/WProjectLibraryInventoryMapper.xml index fe879a6..0e75afe 100644 --- a/backend/chkpower/src/main/resources/mapper/WProjectLibraryInventoryMapper.xml +++ b/backend/chkpower/src/main/resources/mapper/WProjectLibraryInventoryMapper.xml @@ -76,4 +76,163 @@ where ID_ = #{id} + + + + + + + + + + + + + + + + -- libgit2 0.21.2