linwe
2023-12-21 49e56665c300b3d814ed0d7b5025ae8bf8e17292
维修基金审核
6 files modified
100 ■■■■■ changed files
src/main/java/org/springblade/flow/business/controller/WorkController.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/flow/engine/controller/FlowManagerController.java 4 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/flow/engine/service/FlowEngineService.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/flow/engine/service/impl/FlowEngineServiceImpl.java 5 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/property/service/impl/PropertyCapitalApplyServiceImpl.java 83 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/property/vo/PropertyCapitalApplyVO.java 4 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/flow/business/controller/WorkController.java
@@ -56,7 +56,7 @@
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "发起事务列表页", notes = "传入流程类型")
    public R<IPage<FlowProcess>> startList(@ApiParam("流程类型") String category, Query query, @RequestParam(required = false, defaultValue = "1") Integer mode) {
        IPage<FlowProcess> pages = flowEngineService.selectProcessPage(Condition.getPage(query), category, mode);
        IPage<FlowProcess> pages = flowEngineService.selectProcessPage(Condition.getPage(query), category,null, mode);
        return R.data(pages);
    }
src/main/java/org/springblade/flow/engine/controller/FlowManagerController.java
@@ -63,8 +63,8 @@
    @GetMapping("list")
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "分页", notes = "传入流程类型")
    public R<IPage<FlowProcess>> list(@ApiParam("流程类型") String category, Query query, @RequestParam(required = false, defaultValue = "1") Integer mode) {
        IPage<FlowProcess> pages = flowEngineService.selectProcessPage(Condition.getPage(query), category, mode);
    public R<IPage<FlowProcess>> list(@ApiParam("流程类型") String category, @RequestParam(value = "name", required = false) String name, Query query, @RequestParam(required = false, defaultValue = "1") Integer mode) {
        IPage<FlowProcess> pages = flowEngineService.selectProcessPage(Condition.getPage(query), category, name, mode);
        return R.data(pages);
    }
src/main/java/org/springblade/flow/engine/service/FlowEngineService.java
@@ -52,7 +52,7 @@
     * @param mode     形态
     * @return
     */
    IPage<FlowProcess> selectProcessPage(IPage<FlowProcess> page, String category, Integer mode);
    IPage<FlowProcess> selectProcessPage(IPage<FlowProcess> page, String category, String name, Integer mode);
    /**
     * 流程管理列表
src/main/java/org/springblade/flow/engine/service/impl/FlowEngineServiceImpl.java
@@ -97,7 +97,7 @@
    }
    @Override
    public IPage<FlowProcess> selectProcessPage(IPage<FlowProcess> page, String category, Integer mode) {
    public IPage<FlowProcess> selectProcessPage(IPage<FlowProcess> page, String category, String name, Integer mode) {
        ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery().latestVersion().orderByProcessDefinitionKey().asc();
        // 通用流程
        if (mode == FlowModeEnum.COMMON.getMode()) {
@@ -110,6 +110,9 @@
        if (StringUtils.isNotEmpty(category)) {
            processDefinitionQuery.processDefinitionCategory(category);
        }
        if (StringUtils.isNotEmpty(name)) {
            processDefinitionQuery.processDefinitionName(name);
        }
        List<ProcessDefinition> processDefinitionList = processDefinitionQuery.listPage(Func.toInt((page.getCurrent() - 1) * page.getSize()), Func.toInt(page.getSize()));
        List<FlowProcess> flowProcessList = new ArrayList<>();
        processDefinitionList.forEach(processDefinition -> {
src/main/java/org/springblade/modules/property/service/impl/PropertyCapitalApplyServiceImpl.java
@@ -19,6 +19,10 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.flowable.engine.RepositoryService;
import org.flowable.engine.repository.ProcessDefinition;
import org.flowable.engine.repository.ProcessDefinitionQuery;
import org.springblade.common.constant.CommonConstant;
import org.springblade.common.utils.SpringUtils;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.secure.utils.AuthUtil;
@@ -65,47 +69,64 @@
    @Autowired
    private IFlowService flowService;
    // private final IFlowService flowService;
    @Autowired
    private RepositoryService repositoryService;
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean startProcess(PropertyCapitalApplyVO propertyCapitalApplyVO) {
    public boolean startProcess(PropertyCapitalApplyVO applyVO) {
        String businessTable = FlowUtil.getBusinessTable(ProcessConstant.LEAVE_KEY);
        // if (Func.isEmpty(propertyCapitalApplyVO.getId())) {
        if (Func.isEmpty(applyVO.getId())) {
        // 保存leave
        propertyCapitalApplyVO.setApplyTime(DateUtil.now());
        // save(propertyCapitalApplyVO);
        // 判断是否有业委会
        applyVO.setApplyTime(DateUtil.now());
        save(applyVO);
        // 判断是否有业委会,查询业委会负责人
        IOwnersCommitteeService bean = SpringUtils.getBean(IOwnersCommitteeService.class);
        OwnersCommitteeEntity one = bean.getOne(Wrappers.<OwnersCommitteeEntity>lambdaQuery()
            .eq(OwnersCommitteeEntity::getAreaId, propertyCapitalApplyVO.getDistrictId())
            .eq(OwnersCommitteeEntity::getAreaId, applyVO.getDistrictId())
            .last("limit 1"));
        Integer ownersCommitteeFlag = 2;
        Integer ownersCommitteeFlag = CommonConstant.NUMBER_TWO;
        if (one != null && one.getPrincipalId() != null) {
            ownersCommitteeFlag = 1;
            ownersCommitteeFlag = CommonConstant.NUMBER_ONE;
        }
        // 查询街道负责人  通过小区id 查询街道编码
        // 通过街道编码查询街道名称,
        // 通过街道名称查询 人的部门是街道名称的
        IUserService user = SpringUtils.getBean(IUserService.class);
        IDistrictService district = SpringUtils.getBean(IDistrictService.class);
        IRegionService region = SpringUtils.getBean(IRegionService.class);
        IDeptService dept = SpringUtils.getBean(IDeptService.class);
        DistrictEntity one1 = district.getOne(Wrappers.<DistrictEntity>lambdaQuery()
            .eq(DistrictEntity::getId, propertyCapitalApplyVO.getDistrictId()));
        Region one2 = region.getOne(Wrappers.<Region>lambdaQuery().eq(Region::getCode, one1.getCommunityCode().substring(0, 9)));
        Dept one3 = dept.getOne(Wrappers.<Dept>lambdaQuery().eq(Dept::getDeptName, one2.getName()));
        User one4 = user.getOne(Wrappers.<User>lambdaQuery().eq(User::getDeptId, one3.getId()).last("limit 1"));
        // 查询住建局负责人
        Region region2 = region.getOne(Wrappers.<Region>lambdaQuery().eq(Region::getCode, one1.getCommunityCode().substring(0, 6)));
        Dept dept3 = dept.getOne(Wrappers.<Dept>lambdaQuery().eq(Dept::getDeptName, region2.getName() + "住建局").last("limit 1"));
        User user4 = user.getOne(Wrappers.<User>lambdaQuery().eq(User::getDeptId, dept3.getId()).last("limit 1"));
        Kv variables = null;
            .eq(DistrictEntity::getId, applyVO.getDistrictId()));
            User one4 = null;
            // 查询街道责人
            try {
                Region one2 = region.getOne(Wrappers.<Region>lambdaQuery().eq(Region::getCode, one1.getCommunityCode().substring(0, 9)));
                Dept one3 = dept.getOne(Wrappers.<Dept>lambdaQuery().eq(Dept::getDeptName, one2.getName()));
                one4 = user.getOne(Wrappers.<User>lambdaQuery().eq(User::getDeptId, one3.getId())
                    .eq(User::getIsDeleted,0)
                    .last("limit 1"));
            } catch (Exception e) {
                throw new ServiceException("街道信息不存在");
            }
            // 查询住建局负责人
            User user4 = null;
            try {
                Region region2 = region.getOne(Wrappers.<Region>lambdaQuery().eq(Region::getCode, one1.getCommunityCode().substring(0, 6)));
                Dept dept3 = dept.getOne(Wrappers.<Dept>lambdaQuery().eq(Dept::getDeptName, region2.getName() + "住建局").last("limit 1"));
                user4 = user.getOne(Wrappers.<User>lambdaQuery().eq(User::getDeptId, dept3.getId())
                    .eq(User::getIsDeleted,0)
                    .last("limit 1"));
            } catch (Exception e) {
                throw new ServiceException("住建局信息不存在");
            }
            Kv variables = null;
        ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery().latestVersion().orderByProcessDefinitionKey().asc();
        // 启动流程
        if (ownersCommitteeFlag.equals(1)) {
            propertyCapitalApplyVO.setProcessDefinitionId("haveMaintenanceFundApply:1:c4117561-9fa6-11ee-8617-dc41a96f50f5");
        if (CommonConstant.NUMBER_ONE.equals(ownersCommitteeFlag) && CommonConstant.NUMBER_ONE.equals(applyVO.getPropertyFlag())) {
            applyVO.setApplyStatus(CommonConstant.NUMBER_ONE);
            ProcessDefinition processDefinition = processDefinitionQuery.processDefinitionKey("haveMaintenanceFundApply").singleResult();
            applyVO.setProcessDefinitionId(processDefinition.getId());
            // 经过业委会
            variables = Kv.create()
                .set(ProcessConstant.TASK_VARIABLE_CREATE_USER, AuthUtil.getUserName())
@@ -115,7 +136,9 @@
                .set("applyUser", TaskUtil.getTaskUser(AuthUtil.getUserId().toString()))
                .set("ownersCommitteeFlag", ownersCommitteeFlag);
        } else {
            propertyCapitalApplyVO.setProcessDefinitionId("notMaintenanceFundApply:1:289ac20c-9f43-11ee-8186-dc41a96f50f5");
            applyVO.setApplyStatus(CommonConstant.NUMBER_TWO);
            ProcessDefinition processDefinition = processDefinitionQuery.processDefinitionKey("notMaintenanceFundApply").singleResult();
            applyVO.setProcessDefinitionId(processDefinition.getId());
            // 经过街道
            variables = Kv.create()
                .set(ProcessConstant.TASK_VARIABLE_CREATE_USER, AuthUtil.getUserName())
@@ -124,19 +147,19 @@
                .set("applyUser", TaskUtil.getTaskUser(AuthUtil.getUserId().toString()))
                .set("ownersCommitteeFlag", ownersCommitteeFlag);
        }
        BladeFlow flow = flowService.startProcessInstanceById(propertyCapitalApplyVO.getProcessDefinitionId(),
            FlowUtil.getBusinessKey(businessTable, String.valueOf(propertyCapitalApplyVO.getId())), variables);
        BladeFlow flow = flowService.startProcessInstanceById(applyVO.getProcessDefinitionId(),
            FlowUtil.getBusinessKey(businessTable, String.valueOf(applyVO.getId())), variables);
        if (Func.isNotEmpty(flow)) {
            log.debug("流程已启动,流程ID:" + flow.getProcessInstanceId());
            // 返回流程id写入leave
            propertyCapitalApplyVO.setProcessInstanceId(flow.getProcessInstanceId());
            updateById(propertyCapitalApplyVO);
            applyVO.setProcessInstanceId(flow.getProcessInstanceId());
            updateById(applyVO);
        } else {
            throw new ServiceException("开启流程失败");
        }
        // } else {
        //     updateById(propertyCapitalApplyVO);
        // }
        } else {
            updateById(applyVO);
        }
        return true;
    }
src/main/java/org/springblade/modules/property/vo/PropertyCapitalApplyVO.java
@@ -16,6 +16,7 @@
 */
package org.springblade.modules.property.vo;
import io.swagger.annotations.ApiModelProperty;
import org.springblade.modules.property.entity.PropertyCapitalApplyEntity;
import org.springblade.core.tool.node.INode;
import lombok.Data;
@@ -32,4 +33,7 @@
public class PropertyCapitalApplyVO extends PropertyCapitalApplyEntity {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("物业:0无 1有")
    private Integer propertyFlag;
}