land-admin/src/main/java/com/zzg/web/controller/state/StateDataCenterController.java
@@ -20,7 +20,7 @@ public class StateDataCenterController { private final StateDateCenterService dateCenterService; // 计算最上面顶部统计数据 @GetMapping(UrlConstants.STATE_DATA_CENTER_SUM) public AjaxResult<ProjectAnalysisSumVO> dataCenterSum( @RequestParam(required = false) String location, @@ -30,13 +30,13 @@ ) { return AjaxResult.success(dateCenterService.projectSumCount(location, projectStatus, projectStartTime)); } // 项目统计-模拟征收超期项目 @PostMapping(UrlConstants.STATE_DATA_CENTER_SUM_EXPIRED) public AjaxResult<PageInfo<ProjectStatusExpiredVO>> sumExpiredAgreement(@RequestBody(required = false) ProjectStatisticsBO statisticsBO) { return AjaxResult.success(dateCenterService.expiredProjectStatus(statisticsBO)); } //安置情况 // 安置情况 获取数据中心安置情况模块 中间的饼图 @GetMapping(UrlConstants.STATE_DATA_CENTER_PLACEMENT_STATISTICS) public AjaxResult<PlacementStatisticsVO> stateDataCenterPlacementStatistics ( @@ -47,7 +47,7 @@ ) { return AjaxResult.success(dateCenterService.placementStatistics(projectStreet, projectStartTime,type)); } // 数据中心-安置情况柱状图 @GetMapping(UrlConstants.STATE_DATA_CENTER_PLACEMENT_STATISTICS_STREET) public AjaxResult<PlacementStreetVO> stateDataCenterPlacementStatisticsStreet( @RequestParam(required = false) String projectStreet, @@ -55,7 +55,7 @@ ) { return AjaxResult.success(dateCenterService.sumPlacementStreet(projectStreet, projectStartTime)); } // 获取数据中心安置情况模块 下方的分页查询 @PostMapping(UrlConstants.STATE_DATA_CENTER_PLACEMENT_STATISTICS_PAGE) public AjaxResult<PageInfo<TransitionPageVO>> stateDataCenterPlacementStatisticsPage( @RequestBody PlacementStatisticsBO placementStatisticsBO @@ -63,7 +63,7 @@ return AjaxResult.success(dateCenterService.placementStatisticsPage(placementStatisticsBO)); } //项目资金 //项目资金 数据中心-项目资产统计 左侧数据 @GetMapping(UrlConstants.STATE_DATA_CENTER_ASSET_SUM_MONEY) public AjaxResult<AssetMoneyVO> stateCenterAssetSumMoney( @RequestParam(required = false) @@ -71,7 +71,7 @@ ) { return AjaxResult.success(dateCenterService.sumAssetMoney(projectStartTime)); } // 数据中心-项目资产统计 右侧柱状图 @GetMapping(UrlConstants.STATE_DATA_CENTER_ASSET_SUM_MONEY_GRAPH) public AjaxResult<List<AssetGraphVO>> stateCenterAssetSumGraph( @RequestParam(required = false) land-admin/src/main/java/com/zzg/web/controller/state/StateProcessController.java
@@ -51,12 +51,13 @@ private final StateProcessModuleService processModuleService; private final ISysUserService sysUserService; //应用流程 //应用流程分页列表 @PostMapping(UrlConstants.STATE_PROCESS_STATE_MODULE_PAGE) public AjaxResult<PageInfo<StateProcessModule>> modulePage(@RequestBody PageDomain pageDomain) { PageHelper.startPage(pageDomain.getPageNum(), pageDomain.getPageSize()); LambdaQueryWrapper<StateProcessModule> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.orderByAsc(StateProcessModule::getCategory); //查询应用流程列表 List<StateProcessModule> moduleList = processModuleService.list(queryWrapper); if (CollectionUtils.isEmpty(moduleList)) { return AjaxResult.success(new PageInfo<>()); @@ -64,6 +65,7 @@ PageInfo<StateProcessModule> pageInfo = new PageInfo<>(moduleList); List<String> updateUserId = pageInfo.getList().stream().map(BaseEntity::getUpdateBy).collect(Collectors.toList()); if (!CollectionUtils.isEmpty(updateUserId)){ //根据用户id查询用户信息 List<SysUser> sysUsers = sysUserService.selectUserByIdList(updateUserId); Map<String, SysUser> sysUserMap; if (!CollectionUtils.isEmpty(sysUsers)){ @@ -71,6 +73,7 @@ } else { sysUserMap = new HashMap<>(); } //遍历列表,设置更新人名称 pageInfo.getList().forEach(e -> { SysUser sysUser = sysUserMap.get(e.getUpdateBy()); if (Objects.nonNull(sysUser)){ land-admin/src/main/java/com/zzg/web/controller/state/StateSettlementController.java
@@ -173,6 +173,7 @@ } } // 新增安置情况模板 @GetMapping(UrlConstants.STATE_SETTLEMENT_IMPORT_TEMPLATE) public void importStateHouseholdTemplate(@RequestParam Integer compensationType, HttpServletResponse response) { @@ -211,6 +212,7 @@ } // 实施明细导出 @PostMapping(UrlConstants.STATE_SETTLEMENT_LIST_EXPORT) public AjaxResult<Void> exportSettlementDetail(@RequestBody(required = false) StateExecutionBO executionBO, HttpServletResponse response) { try { @@ -240,7 +242,7 @@ public AjaxResult<Map<String, Map<Integer, ProjectExecutionSumVO>>> listProjectExecution(@RequestBody List<String> projectIdList) { return AjaxResult.success(settlementService.listProjectExecutionByProjectId(projectIdList, null)); } // 新增安置情况 - 提交审核 @PostMapping(UrlConstants.STATE_SETTLEMENT_EXECUTION_WORKFLOW_SUBMIT) public AjaxResult<Boolean> submitSettle(@RequestBody WorkFlowSubmitBO workFlowSubmitBO) { if (Objects.isNull(workFlowSubmitBO.getSettlementIdList()) || workFlowSubmitBO.getSettlementIdList().isEmpty()) { @@ -261,6 +263,7 @@ } /** * 新增安置情况 - 安置批次名字 * @param projectId * @param componsationType * @return @@ -270,6 +273,11 @@ return AjaxResult.success(settlementService.generateBatchName(projectId, componsationType)); } /** * 当前项目安置批次名字列表 * @param projectId * @return */ @GetMapping(UrlConstants.STATE_SETTLEMENT_BATCH_NAME_LIST) public AjaxResult<List<String>> listBatchName(@RequestParam String projectId) { return AjaxResult.success(settlementService.listBatchName(projectId)); land-system/src/main/java/com/zzg/system/service/state/impl/StateDataCenterServiceImpl.java
@@ -4,9 +4,19 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.github.pagehelper.PageInfo; import com.zzg.common.core.domain.entity.state.*; import com.zzg.common.core.domain.entity.state.StateAgreement; import com.zzg.common.core.domain.entity.state.StateAsset; import com.zzg.common.core.domain.entity.state.StateHousehold; import com.zzg.common.core.domain.entity.state.StateHouseholdOwner; import com.zzg.common.core.domain.entity.state.StateProject; import com.zzg.common.core.domain.entity.state.StateProjectInfo; import com.zzg.common.core.domain.entity.state.StateSettlement; import com.zzg.common.core.domain.entity.system.SysDictData; import com.zzg.common.enums.*; import com.zzg.common.enums.AgreementTypeEnum; import com.zzg.common.enums.CompensationCategoryEnum; import com.zzg.common.enums.DeleteFlagEnum; import com.zzg.common.enums.StateProjectStatusEnum; import com.zzg.common.enums.SubmitStatusEnum; import com.zzg.common.utils.DateUtil; import com.zzg.common.utils.DateUtils; import com.zzg.common.utils.PageUtils; @@ -14,12 +24,29 @@ import com.zzg.system.convert.StateProjectConvert; import com.zzg.system.domain.bo.PlacementStatisticsBO; import com.zzg.system.domain.bo.ProjectStatisticsBO; import com.zzg.system.domain.vo.*; import com.zzg.system.domain.vo.AssetGraphVO; import com.zzg.system.domain.vo.AssetMoneyVO; import com.zzg.system.domain.vo.HouseholdVO; import com.zzg.system.domain.vo.PlacementStatisticsVO; import com.zzg.system.domain.vo.PlacementStreetAreaVO; import com.zzg.system.domain.vo.PlacementStreetMoneyVO; import com.zzg.system.domain.vo.PlacementStreetVO; import com.zzg.system.domain.vo.ProjectAnalysisSumVO; import com.zzg.system.domain.vo.ProjectDataCenterStreetVO; import com.zzg.system.domain.vo.ProjectDataCenterTypeVO; import com.zzg.system.domain.vo.ProjectExecutionSumVO; import com.zzg.system.domain.vo.ProjectStatusExpiredVO; import com.zzg.system.domain.vo.TransitionPageVO; import com.zzg.system.mapper.state.StateAssetMapper; import com.zzg.system.service.state.*; import com.zzg.system.service.state.StateAgreementService; import com.zzg.system.service.state.StateDateCenterService; import com.zzg.system.service.state.StateHouseholdOwnerService; import com.zzg.system.service.state.StateHouseholdService; import com.zzg.system.service.state.StateProjectInfoService; import com.zzg.system.service.state.StateProjectService; import com.zzg.system.service.state.StateSettlementService; import com.zzg.system.service.system.ISysDictTypeService; import lombok.RequiredArgsConstructor; import org.checkerframework.checker.units.qual.A; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -27,8 +54,13 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.sql.Timestamp; import java.time.Year; import java.util.*; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.function.Function; import java.util.stream.Collectors; @@ -177,6 +209,11 @@ return result; } /** * 项目统计-模拟征收超期项目 * @param projectStatisticsBO * @return */ @Override public PageInfo<ProjectStatusExpiredVO> expiredProjectStatus(ProjectStatisticsBO projectStatisticsBO) { @@ -195,6 +232,13 @@ return pageInfo; } /** * 获取数据中心安置情况模块 中间的饼图 * @param projectStreet * @param projectStartTime * @param type * @return */ @Override public PlacementStatisticsVO placementStatistics(String projectStreet, Date projectStartTime, Integer type) { @@ -291,6 +335,11 @@ return stateProjectService.list(queryWrapper); } /** * 获取数据中心安置情况模块 下方的分页查询 * @param placementStatisticsBO * @return */ @Override public PageInfo<TransitionPageVO> placementStatisticsPage(PlacementStatisticsBO placementStatisticsBO) { @@ -358,6 +407,11 @@ return transitionPageVOPageInfo; } /** * 项目资金 数据中心-项目资产统计 左侧数据 * @param stateTime * @return */ @Override public AssetMoneyVO sumAssetMoney(Date stateTime) { @@ -459,6 +513,11 @@ return result; } /** * 数据中心-项目资产统计 右侧柱状图 * @param stateTime * @return */ @Override public List<AssetGraphVO> listAssetGraph(Date stateTime) { LambdaQueryWrapper<StateProject> projectLambdaQueryWrapper = new LambdaQueryWrapper<>(); @@ -585,7 +644,12 @@ return result; } /** * 数据中心-安置情况柱状图 * @param street * @param stateTime * @return */ @Override public PlacementStreetVO sumPlacementStreet(String street, Date stateTime) { String houseStreet = street; land-system/src/main/java/com/zzg/system/service/state/impl/StateProcessTemplateServiceImpl.java
@@ -5,14 +5,23 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.aizuda.bpm.engine.FlowLongEngine; import com.aizuda.bpm.engine.core.FlowCreator; import com.aizuda.bpm.engine.core.enums.TaskType; import com.aizuda.bpm.engine.entity.*; import com.aizuda.bpm.engine.entity.FlowEntity; import com.aizuda.bpm.engine.entity.FlwHisInstance; import com.aizuda.bpm.engine.entity.FlwHisTask; import com.aizuda.bpm.engine.entity.FlwHisTaskActor; import com.aizuda.bpm.engine.entity.FlwProcess; import com.aizuda.bpm.engine.entity.FlwTask; import com.aizuda.bpm.engine.entity.FlwTaskActor; import com.aizuda.bpm.engine.model.NodeModel; import com.aizuda.bpm.mybatisplus.mapper.*; import com.aizuda.bpm.mybatisplus.mapper.FlwHisInstanceMapper; import com.aizuda.bpm.mybatisplus.mapper.FlwHisTaskActorMapper; import com.aizuda.bpm.mybatisplus.mapper.FlwHisTaskMapper; import com.aizuda.bpm.mybatisplus.mapper.FlwTaskActorMapper; import com.aizuda.bpm.mybatisplus.mapper.FlwTaskMapper; import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONWriter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -23,7 +32,11 @@ import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.zzg.common.core.domain.BaseEntity; import com.zzg.common.core.domain.entity.state.*; import com.zzg.common.core.domain.entity.state.StateProcessExtInstance; import com.zzg.common.core.domain.entity.state.StateProcessInstanceAction; import com.zzg.common.core.domain.entity.state.StateProcessModule; import com.zzg.common.core.domain.entity.state.StateProcessTemplate; import com.zzg.common.core.domain.entity.state.StateTaskCenter; import com.zzg.common.core.domain.entity.system.SysUser; import com.zzg.common.core.domain.model.LoginUser; import com.zzg.common.enums.StateProcessActionType; @@ -31,23 +44,37 @@ import com.zzg.common.exception.state.StateErrorCode; import com.zzg.common.utils.SecurityUtils; import com.zzg.common.utils.uuid.IdUtils; import com.zzg.system.domain.bo.*; import com.zzg.system.domain.vo.City; import com.zzg.system.domain.bo.DeployBO; import com.zzg.system.domain.bo.ProcessAgreeBO; import com.zzg.system.domain.bo.ProcessCreateBO; import com.zzg.system.domain.bo.ProcessRefuseBO; import com.zzg.system.domain.bo.ProcessStartBO; import com.zzg.system.domain.bo.ProcessTaskListBO; import com.zzg.system.domain.bo.ProcessTemplatePageBO; import com.zzg.system.domain.bo.ProcessUpdateBO; import com.zzg.system.domain.vo.ProcessTaskListVO; import com.zzg.system.mapper.state.StateProcessTemplateMapper; import com.zzg.system.service.state.*; import com.zzg.system.service.state.StateProcessExtInstanceService; import com.zzg.system.service.state.StateProcessInstanceActionService; import com.zzg.system.service.state.StateProcessModuleService; import com.zzg.system.service.state.StateProcessTemplateService; import com.zzg.system.service.state.StateTaskCenterService; import com.zzg.system.service.system.ISysRoleService; import com.zzg.system.service.system.ISysUserService; import lombok.AllArgsConstructor; import org.apache.commons.io.IOUtils; import org.springframework.security.core.parameters.P; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.util.*; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.function.Function; import java.util.stream.Collectors; @@ -68,13 +95,20 @@ private final FlwHisTaskActorMapper flwHisTaskActorMapper; private final ISysUserService sysUserService; /** * 流程模版分页 * @param request * @return */ @Override public Page<StateProcessTemplate> page(ProcessTemplatePageBO request) { //查询流程模板列表 Page<StateProcessTemplate> templatePage = this.baseMapper.page(new Page<>(request.getCurrentPage(), request.getPageSize()), request); //更新人id列表 List<String> updateUserNameList = templatePage.getRecords().stream().map(BaseEntity::getUpdateBy).collect(Collectors.toList()); if (!CollectionUtils.isEmpty(updateUserNameList)) { //根据用户id列表查询用户信息 List<SysUser> sysUsers = sysUserService.selectUserByUserNameList(updateUserNameList); Map<String, SysUser> sysUserMap; if (!CollectionUtils.isEmpty(sysUsers)) { @@ -82,6 +116,7 @@ } else { sysUserMap = new HashMap<>(); } //遍历列表,设置更新人名称 templatePage.getRecords().forEach(e -> { SysUser sysUser = sysUserMap.get(e.getUpdateBy()); if (Objects.nonNull(sysUser)) { @@ -92,10 +127,17 @@ return templatePage; } /** * 修改并部署模版 * @param processUpdateBO * @return */ @Transactional(rollbackFor = Exception.class) @Override public Boolean update(ProcessUpdateBO processUpdateBO) { //查询流程模板 StateProcessTemplate temp = this.getById(processUpdateBO.getId()); //根据template_key查询最新版本的模板 StateProcessTemplate template = this.getOne(Wrappers.<StateProcessTemplate>lambdaQuery() .eq(StateProcessTemplate::getTemplateKey, temp.getTemplateKey()) .apply("(template_key, template_version) in(" @@ -149,6 +191,11 @@ return stateProcessModuleService.updateBatchById(stateProcessModules); } /** * 创建并部署模版 * @param processCreateBO * @return */ @Transactional(rollbackFor = Exception.class) @Override public Boolean create(ProcessCreateBO processCreateBO) { @@ -186,6 +233,11 @@ return this.save(processTemplate); } /** * 启动流程 * @param processStartBO * @return */ @Transactional(rollbackFor = Exception.class) @Override public Boolean start(ProcessStartBO processStartBO) { @@ -255,6 +307,11 @@ return true; } /** * 待办 * @param processTaskListBO * @return */ @Override public PageInfo<ProcessTaskListVO> waitTaskPage(ProcessTaskListBO processTaskListBO) { List<ProcessTaskListVO> page = new ArrayList<>(); @@ -327,6 +384,7 @@ List<String> updateUserId = processTaskListVOS.stream().map(ProcessTaskListVO::getCreateBy).collect(Collectors.toList()); Map<String, SysUser> sysUserMap; if (!CollectionUtils.isEmpty(updateUserId)) { //根据用户id查询更新人信息 List<SysUser> sysUsers = sysUserService.selectUserByIdList(updateUserId); if (!CollectionUtils.isEmpty(sysUsers)) { land-system/src/main/java/com/zzg/system/service/state/impl/StateSettlementImpl.java
@@ -302,6 +302,11 @@ return result; } /** * 安置详情 * @param settlementDetailBO * @return */ @Override public SettlementDetailPageVO listDetailData(SettlementDetailBO settlementDetailBO) { SettlementDetailPageVO pageVO = new SettlementDetailPageVO(); @@ -531,6 +536,11 @@ return settlementSumVO; } /** * 项目实施明细 * @param executionBO * @return */ @Override public PageInfo<StateExecutionDetailVO> listExecution(StateExecutionBO executionBO) { PageUtils.startPage(); @@ -604,6 +614,11 @@ return pageInfo; } /** * 安置详情-回显 * @param executionB * @return */ @Override public List<StateExecutionDetailVO> exportExecution(StateExecutionBO executionB) { if (StringUtils.isNoneBlank(executionB.getHouseStateId())) { @@ -677,6 +692,12 @@ return result; } /** * 给项目展示使用 * @param projectIdList * @param projectStreet * @return */ @Override public Map<String, Map<Integer, ProjectExecutionSumVO>> listProjectExecutionByProjectId(List<String> projectIdList, String projectStreet) { @@ -1008,6 +1029,10 @@ return stateSettlementList.stream().map(StateSettlement::getSettleName).distinct().collect(Collectors.toList()); } /** * 安置情况保存 * @param stateSettlement */ @Override @Transactional public void saveOrUpdateSettlement(List<StateSettlement> stateSettlement) { @@ -1101,6 +1126,10 @@ } } /** * 新增安置情况 - 提交审核 * @param settlementIds */ @Override @Transactional public void workflowSubmit(List<String> settlementIds) { @@ -1160,6 +1189,10 @@ } } /** * 安置情况删除 * @param id */ @Override public void deleteSettlement(String id) { stateSettlementMapper.deleteSettlement(id);