Explorar o código

增加尽职背调基本逻辑

dangzj hai 3 meses
pai
achega
685555481c

+ 41 - 39
ruoyi-admin/src/main/java/com/ruoyi/web/controller/invest/TProjectInvestigateController.java

@@ -2,6 +2,7 @@ package com.ruoyi.web.controller.invest;
 
 import java.io.IOException;
 import java.util.List;
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import com.ruoyi.common.core.domain.entity.SysUser;
@@ -9,10 +10,11 @@ import com.ruoyi.common.enums.FileType;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.sms.SmsSenderUtils;
 import com.ruoyi.common.utils.uuid.IdUtils;
-import com.ruoyi.invest.domain.TProjectCirculation;
-import com.ruoyi.invest.domain.TProjectScoring;
+import com.ruoyi.invest.domain.*;
+import com.ruoyi.invest.domain.dto.InvestDto;
 import com.ruoyi.invest.service.ITProjectCirculationService;
 import com.ruoyi.invest.service.ITProjectPoolService;
+import com.ruoyi.system.domain.vo.TProjectPoolVo;
 import com.ruoyi.system.service.ISysUserService;
 import com.ruoyi.tool.domain.TUnifyFile;
 import com.ruoyi.tool.service.ITUnifyFileService;
@@ -32,7 +34,6 @@ 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.invest.domain.TProjectInvestigate;
 import com.ruoyi.invest.service.ITProjectInvestigateService;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.common.core.page.TableDataInfo;
@@ -51,17 +52,9 @@ public class TProjectInvestigateController extends BaseController
     @Autowired
     private ITProjectInvestigateService tProjectInvestigateService;
 
-    @Autowired
-    private ITProjectCirculationService tProjectCirculationService;
-
     @Autowired
     private ITUnifyFileService tUnifyFileService;
 
-    @Autowired
-    private ITProjectPoolService tProjectPoolService;
-
-    @Autowired
-    private ISysUserService sysUserService;
 
     /**
      * 查询尽调关联列表
@@ -106,34 +99,7 @@ public class TProjectInvestigateController extends BaseController
     @PostMapping
     public AjaxResult add(@RequestBody TProjectInvestigate tProjectInvestigate)
     {
-        tProjectInvestigate.setId(IdUtils.fastSimpleUUID());
-        // todo 保存附件信息
-        tUnifyFileService.insertTUnifyFileList(tProjectInvestigate.getListFile(),
-                tProjectInvestigate.getProjectPoolId(),
-                tProjectInvestigate.getId(),//尽调ID
-                String.valueOf(FileType.INVESTIGATE.ordinal()),//文件类型:尽调
-                getNickName());
-
-        // todo 增加尽调创建记录
-        tProjectCirculationService.insertTProjectCirculation(tProjectInvestigate.getProjectPoolId(),tProjectInvestigate.getInvestigateName()+"(尽职背调)",getNickName());
-
-        // todo 更改尽调状态
-        tProjectPoolService.updateTProjectPoolByInvestigateFlag(tProjectInvestigate.getProjectPoolId(),"1");
-
-        // todo 短信提醒
-        if(StringUtils.isNotEmpty(tProjectInvestigate.getInvestigatePersonId())){
-            StringUtils.str2List(tProjectInvestigate.getInvestigatePersonId(),",",true,true).stream().forEach(str -> {
-                SysUser user = sysUserService.selectUserById(Long.valueOf(str));
-                String contents = "您好,"+user.getNickName()+"," + tProjectInvestigate.getProjectName() + "已开启尽职背调。";
-                try {
-                    SmsSenderUtils.sendSms(user.getPhonenumber(),contents);
-                } catch (IOException e) {
-                    logger.error("短信发送失败"+e.getMessage());
-                }
-            });
-        }
-
-        return toAjax(tProjectInvestigateService.insertTProjectInvestigate(tProjectInvestigate));
+        return tProjectInvestigateService.start(tProjectInvestigate);
     }
 
     /**
@@ -203,5 +169,41 @@ public class TProjectInvestigateController extends BaseController
         return success(tProjectInvestigateService.listProjectPoolIdNew(projectPoolId));
     }
 
+    //我的待办任务
+    @ApiOperation("我的待办任务列表")
+    @GetMapping("/getMyTaskList")
+    public TableDataInfo getMyTaskList(TProjectInvestigateVo tProjectInvestigate)
+    {
+        startPage();
+        List<TProjectInvestigateVo> list=tProjectInvestigateService.getMyTaskList(getUserId().toString(),tProjectInvestigate);
+        return getDataTable(list);
+    }
+    //我的已办任务
+    @ApiOperation("我的已办任务列表")
+    @GetMapping("/getMyDoneTaskList")
+    public TableDataInfo getMyDoneTaskList(TProjectInvestigateVo tProjectInvestigate)
+    {
+        startPage();
+        List<TProjectInvestigateVo> list=tProjectInvestigateService.getMyDoneTaskList(getUserId().toString(),tProjectInvestigate);
+        return getDataTable(list);
+    }
+    //我的待办任务
+    @ApiOperation("我的单据列表")
+    @GetMapping("/getMyList")
+    public TableDataInfo getMyList(TProjectInvestigateVo tProjectInvestigate)
+    {
+         startPage();
+        List<TProjectInvestigateVo> list=tProjectInvestigateService.getMyList(getUserId().toString(),tProjectInvestigate);
+        return getDataTable(list);
+    }
 
+    @ApiOperation(value = "审批任务")
+    @PutMapping(value = "/complete")
+    public AjaxResult complete(@RequestBody InvestDto dto, HttpServletRequest request) {
+        // 从 DTO 中拆分参数
+        TProjectInvestigate tProjectInvestigate = dto.getTProjectInvestigate();
+        TProjectReview tProjectReview = dto.getProjectReview();
+        FlowBaseInfo flowBaseInfo= dto.getFlowBaseInfo();
+        return tProjectInvestigateService.complete(tProjectInvestigate,tProjectReview,flowBaseInfo,request);
+    }
 }

+ 367 - 0
ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/TProjectInvestigateServiceImpl.java

@@ -0,0 +1,367 @@
+package com.ruoyi.flowable.service.impl;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.enums.FileType;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.sms.SmsSenderUtils;
+import com.ruoyi.common.utils.uuid.IdUtils;
+import com.ruoyi.flowable.common.constant.ProcessConstants;
+import com.ruoyi.flowable.common.constant.UUIDGenerator;
+import com.ruoyi.flowable.common.enums.FlowStatusEnum;
+import com.ruoyi.flowable.factory.FlowServiceFactory;
+import com.ruoyi.flowable.service.IFlowInstanceService;
+import com.ruoyi.flowable.service.IFlowService;
+import com.ruoyi.invest.domain.*;
+import com.ruoyi.invest.service.IFlowBaseInfoService;
+import com.ruoyi.invest.service.ITProjectCirculationService;
+import com.ruoyi.invest.service.ITProjectPoolService;
+import com.ruoyi.system.mapper.SysDeptMapper;
+import com.ruoyi.system.service.ISysUserService;
+import com.ruoyi.tool.service.ITUnifyFileService;
+import org.flowable.engine.RepositoryService;
+import org.flowable.engine.repository.ProcessDefinition;
+import org.flowable.engine.runtime.ProcessInstance;
+import org.flowable.task.api.Task;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.invest.mapper.TProjectInvestigateMapper;
+import com.ruoyi.invest.service.ITProjectInvestigateService;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * 尽调关联Service业务层处理
+ * 
+ * @author zjc
+ * @date 2024-03-13
+ */
+@Service
+public class TProjectInvestigateServiceImpl extends FlowServiceFactory implements ITProjectInvestigateService
+{
+
+    protected final Logger logger = LoggerFactory.getLogger(this.getClass());
+    @Resource
+    protected RepositoryService repositoryService;
+    @Autowired
+    private TProjectInvestigateMapper tProjectInvestigateMapper;
+    @Autowired
+    private SysDeptMapper sysDeptMapper;
+    @Autowired
+    private ISysUserService sysUserService;
+    @Autowired
+    private ITProjectCirculationService tProjectCirculationService;
+
+    @Autowired
+    private ITUnifyFileService tUnifyFileService;
+
+    @Autowired
+    private ITProjectPoolService tProjectPoolService;
+
+    @Autowired
+    private IFlowBaseInfoService activitiBaseInfoService;
+    @Autowired
+    private IFlowInstanceService flowInstanceService;
+
+    @Autowired
+    private IFlowService flowService;
+
+    /**
+     * 查询尽调关联
+     * 
+     * @param id 尽调关联主键
+     * @return 尽调关联
+     */
+    @Override
+    public TProjectInvestigate selectTProjectInvestigateById(String id)
+    {
+        return tProjectInvestigateMapper.selectTProjectInvestigateById(id);
+    }
+
+    /**
+     * 查询尽调关联列表
+     * 
+     * @param tProjectInvestigate 尽调关联
+     * @return 尽调关联
+     */
+    @Override
+    public List<TProjectInvestigate> selectTProjectInvestigateList(TProjectInvestigate tProjectInvestigate)
+    {
+        return tProjectInvestigateMapper.selectTProjectInvestigateList(tProjectInvestigate);
+    }
+
+    /**
+     * 新增尽调关联
+     * 
+     * @param tProjectInvestigate 尽调关联
+     * @return 结果
+     */
+    @Override
+    public int insertTProjectInvestigate(TProjectInvestigate tProjectInvestigate)
+    {
+        tProjectInvestigate.setCreateTime(DateUtils.getNowDate());
+        return tProjectInvestigateMapper.insertTProjectInvestigate(tProjectInvestigate);
+    }
+
+    /**
+     * 修改尽调关联
+     * 
+     * @param tProjectInvestigate 尽调关联
+     * @return 结果
+     */
+    @Override
+    public int updateTProjectInvestigate(TProjectInvestigate tProjectInvestigate)
+    {
+        tProjectInvestigate.setUpdateTime(DateUtils.getNowDate());
+        return tProjectInvestigateMapper.updateTProjectInvestigate(tProjectInvestigate);
+    }
+
+    /**
+     * 批量删除尽调关联
+     * 
+     * @param ids 需要删除的尽调关联主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTProjectInvestigateByIds(String[] ids)
+    {
+        return tProjectInvestigateMapper.deleteTProjectInvestigateByIds(ids);
+    }
+
+    /**
+     * 删除尽调关联信息
+     * 
+     * @param id 尽调关联主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTProjectInvestigateById(String id)
+    {
+        return tProjectInvestigateMapper.deleteTProjectInvestigateById(id);
+    }
+
+    /**
+     * 批量删除尽调关联
+     * @param ids 需要删除的尽调关联主键
+     * @return
+     */
+    @Override
+    public int updateTProjectInvestigateByIds(String[] ids) {
+        return tProjectInvestigateMapper.updateTProjectInvestigateByIds(ids);
+    }
+
+    /**
+     * 根据项目ID获取尽调数据
+     * @param projectPoolId
+     * @return
+     */
+    @Override
+    public List<TProjectInvestigate> listProjectPoolId(String projectPoolId) {
+        return tProjectInvestigateMapper.listProjectPoolId(projectPoolId);
+    }
+
+    /**
+     * 根据项目ID获取最新尽调数据
+     * @param projectPoolId
+     * @return
+     */
+    @Override
+    public TProjectInvestigate listProjectPoolIdNew(String projectPoolId) {
+        return tProjectInvestigateMapper.listProjectPoolIdNew(projectPoolId);
+    }
+
+    /**
+     * 修改尽调完成
+     * @param id
+     * @return
+     */
+    @Override
+    public int editStatus(String id) {
+        return tProjectInvestigateMapper.editStatus(id);
+    }
+
+    @Override
+    public List<TProjectInvestigateVo> getMyTaskList(String userId, TProjectInvestigateVo tProjectInvestigate) {
+        return tProjectInvestigateMapper.getMyTaskList(userId,tProjectInvestigate);
+    }
+
+    @Override
+    public List<TProjectInvestigateVo> getMyDoneTaskList(String userId, TProjectInvestigateVo tProjectInvestigate) {
+        return tProjectInvestigateMapper.getMyDoneTaskList(userId,tProjectInvestigate);
+    }
+
+    @Override
+    public List<TProjectInvestigateVo> getMyList(String userId, TProjectInvestigateVo tProjectInvestigate) {
+        return tProjectInvestigateMapper.getMyList(userId,tProjectInvestigate);
+    }
+
+    @Override
+    public AjaxResult start(TProjectInvestigate tProjectInvestigate) {
+        // 根据key值获取最新的流程部署id
+        String pDefId = null;
+        ProcessInstance pInst = null;
+        try {
+            List<ProcessDefinition> list = repositoryService.createProcessDefinitionQuery()
+                    .processDefinitionKey("dgt-due-workflow")
+                    .orderByProcessDefinitionVersion().desc().list();
+            if(list.isEmpty()){
+                return AjaxResult.error("未找到该流程,无法开启流程!");
+            }
+            pDefId = list.get(0).getId();
+            ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(pDefId)
+                    .latestVersion().singleResult();
+            if (Objects.nonNull(processDefinition) && processDefinition.isSuspended()) {
+                return AjaxResult.error("流程已被挂起,请先激活流程");
+            }
+            if(StringUtils.isNotBlank(pDefId)) {
+                //设置参数
+                Map<String, Object> formProperties = new HashMap<String, Object>();
+                // 设置流程发起人Id到流程中
+                SysUser sysUser = SecurityUtils.getLoginUser().getUser();
+                identityService.setAuthenticatedUserId(sysUser.getUserId().toString());
+                formProperties.put("auditPass",tProjectInvestigate.isFlag()?true:false);
+                formProperties.put(ProcessConstants.PROCESS_INITIATOR, sysUser.getUserId());
+                String leader=sysDeptMapper.selectDeptLeader("投资部");
+                formProperties.put("MANAGER",sysUserService.selectUserByUserName(leader).getUserId());
+                pInst = runtimeService.startProcessInstanceById(pDefId, formProperties);
+                if(pInst!=null){
+                    String nickName= SecurityUtils.getLoginUser().getUser().getNickName();
+                    String userId=SecurityUtils.getLoginUser().getUserId().toString();
+                    //保存信息
+                    tProjectInvestigate.setId(IdUtils.fastSimpleUUID());
+                    tProjectInvestigate.setProcInstId(pInst.getProcessInstanceId());
+                    // todo 保存附件信息
+                    tUnifyFileService.insertTUnifyFileList(tProjectInvestigate.getListFile(),
+                            tProjectInvestigate.getProjectPoolId(),
+                            tProjectInvestigate.getId(),//尽调ID
+                            String.valueOf(FileType.INVESTIGATE.ordinal()),//文件类型:尽调
+                            nickName);
+
+                    // todo 增加尽调创建记录
+                    tProjectCirculationService.insertTProjectCirculation(tProjectInvestigate.getProjectPoolId(),tProjectInvestigate.getInvestigateName()+"(尽职背调)",nickName);
+
+                    // todo 更改尽调状态
+                    tProjectPoolService.updateTProjectPoolByInvestigateFlag(tProjectInvestigate.getProjectPoolId(),"1");
+
+                    //新增尽调数据
+                    insertTProjectInvestigate(tProjectInvestigate);
+                    FlowBaseInfo flowBaseInfo = new FlowBaseInfo();
+                    flowBaseInfo.setCreateBy(userId);
+                    flowBaseInfo.setId(UUIDGenerator.uuid());
+                    flowBaseInfo.setFormProperties(flowInstanceService.getFormProperties(pInst));
+                    flowBaseInfo.setProcDefId(pDefId);
+                    flowBaseInfo.setProcInsId(pInst.getId());
+                    flowBaseInfo.setTaskName("申请人");
+                    flowBaseInfo.setFlag(true);
+                    flowBaseInfo.setComment("[提交申请]");
+                    flowBaseInfo.setStatus(FlowStatusEnum.STARTED.getName());
+
+                    activitiBaseInfoService.addActivitiBaseInfo(flowBaseInfo);
+                    // todo 短信提醒
+                    if(StringUtils.isNotEmpty(tProjectInvestigate.getInvestigatePersonId())){
+                        StringUtils.str2List(tProjectInvestigate.getInvestigatePersonId(),",",true,true).stream().forEach(str -> {
+                            SysUser user = sysUserService.selectUserById(Long.valueOf(str));
+                            String contents = "您好,"+user.getNickName()+"," + tProjectInvestigate.getProjectName() + "已开启尽职背调。";
+                            try {
+                                SmsSenderUtils.sendSms(user.getPhonenumber(),contents);
+                            } catch (IOException e) {
+                                logger.error("短信发送失败"+e.getMessage());
+                            }
+                        });
+                    }
+                    return AjaxResult.success();
+
+                }
+                return AjaxResult.error();
+            }
+            return AjaxResult.error();
+        }catch (Exception e){
+            e.printStackTrace();
+            return AjaxResult.error("msg", "流程定义id为空, 无法开启流程!");
+        }
+    }
+
+    @Override
+    public AjaxResult complete(TProjectInvestigate tProjectInvestigate, TProjectReview tProjectReview, FlowBaseInfo flow, HttpServletRequest request) {
+        Task task=taskService.createTaskQuery().processInstanceId(tProjectInvestigate.getProcInstId()).singleResult();
+        //Task task = taskService.createTaskQuery().taskId(taskVo.getId()).singleResult();
+        if (Objects.isNull(task)) {
+            return AjaxResult.error("任务不存在");
+        }
+        //当前你登录人
+        SysUser userInfo=SecurityUtils.getLoginUser().getUser();
+        Map<String, Object> rs = new HashMap<String, Object>();
+        rs.put("status",true);
+        Map<String, Object> formProperties = new HashMap<>();
+        formProperties.put("auditPass", tProjectInvestigate.isFlag());
+        //部门负责人
+        String leader=sysDeptMapper.selectDeptLeader("投资部");
+        SysUser sysUser=sysUserService.selectUserByUserName(leader);
+        formProperties.put("MANAGER",sysUser.getUserId());
+        //taskService.complete(task.getId(), formProperties);
+        Map<String, Object> fpMap = flowService.getFormProperties(task.getProcessDefinitionId(), task.getId());
+        try {
+            rs = flowService.taskComplete( task.getId(), tProjectInvestigate.isFlag(), formProperties, userInfo.getUserId().toString());
+        } catch (Exception e) {
+            e.printStackTrace();
+            rs.put("status", false);
+            rs.put("msg", "流程审批失败");
+        }
+        boolean status = (boolean) rs.get("status");
+        // 审核成功, 则记录审核信息
+        if (status) {
+            //软件工程院审批
+            if ("softwareDept".equals(task.getTaskDefinitionKey())) {
+            }
+
+            //FlowBaseInfo flow = new FlowBaseInfo();
+            if(flow==null){
+                flow = new FlowBaseInfo();
+            }
+            flow.setId(UUIDGenerator.uuid());
+            flow.setFormProperties(flowService.getFormProperties(fpMap, request.getParameterMap()));
+            flow.setStatus(FlowStatusEnum.RUNNING.getName());
+            flow.setProcDefId(task.getProcessDefinitionId());
+            flow.setProcInsId(task.getProcessInstanceId());
+            flow.setTaskDefKey(task.getTaskDefinitionKey());
+            String isOk = tProjectInvestigate.isFlag() ? "[同意]" : "[驳回]";
+            if ("modifyApply".equals(task.getTaskDefinitionKey())) {
+                tProjectInvestigate.setStatus(tProjectInvestigate.isFlag() ? "1" : "4");
+                isOk = tProjectInvestigate.isFlag() ? "[提交]" : "[关闭]";
+            } else {
+                tProjectInvestigate.setStatus(tProjectInvestigate.isFlag() ? "2" : "0");
+            }
+            if (null != flow.getComment()) {
+                flow.setComment(isOk + flow.getComment());
+            } else {
+                flow.setComment(isOk);
+            }
+            flow.setTaskName(task.getName());
+            flow.setCreateBy(SecurityUtils.getLoginUser().getUserId().toString());
+            ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).active().singleResult();
+            // 表示流程已经审批结束了
+            if (processInstance == null) {
+                flow.setStatus(FlowStatusEnum.ENDED.getName());
+                if (!"modifyApply".equals(task.getTaskDefinitionKey())) {
+                    tProjectInvestigate.setStatus("3");
+                }
+            }
+            tProjectInvestigate.setUpdateBy(userInfo.getNickName());
+
+            updateTProjectInvestigate(tProjectInvestigate);
+            activitiBaseInfoService.addActivitiBaseInfo(flow);
+        }
+        return AjaxResult.success();
+    }
+}

+ 38 - 0
ruoyi-system/src/main/java/com/ruoyi/invest/domain/TProjectInvestigate.java

@@ -85,7 +85,13 @@ public class TProjectInvestigate extends BaseEntity
     @JsonFormat(pattern = "yyyy-MM-dd")
     private Date deadDate;
 
+    private String procInstId;
 
+    //表外
+    private boolean flag;
+
+    private String taskId;//任务节点编号
+    private String taskDefKey;
     public void setId(String id)
     {
         this.id = id;
@@ -240,6 +246,38 @@ public class TProjectInvestigate extends BaseEntity
         this.projectName = projectName;
     }
 
+    public boolean isFlag() {
+        return flag;
+    }
+
+    public void setFlag(boolean flag) {
+        this.flag = flag;
+    }
+
+    public String getTaskId() {
+        return taskId;
+    }
+
+    public void setTaskId(String taskId) {
+        this.taskId = taskId;
+    }
+
+    public String getTaskDefKey() {
+        return taskDefKey;
+    }
+
+    public void setTaskDefKey(String taskDefKey) {
+        this.taskDefKey = taskDefKey;
+    }
+
+    public String getProcInstId() {
+        return procInstId;
+    }
+
+    public void setProcInstId(String procInstId) {
+        this.procInstId = procInstId;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

+ 100 - 0
ruoyi-system/src/main/java/com/ruoyi/invest/domain/TProjectInvestigateVo.java

@@ -0,0 +1,100 @@
+package com.ruoyi.invest.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import com.ruoyi.tool.domain.TUnifyFile;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 尽调关联对象 t_project_investigate
+ * 
+ * @author zjc
+ * @date 2024-03-13
+ */
+@Data
+public class TProjectInvestigateVo extends TProjectInvestigate
+{
+    /** 项目信息 */
+    /** 所属组别 */
+    @Excel(name = "所属组别")
+    private String projectGroup;
+    /** 渠道 */
+    @Excel(name = "渠道")
+    private String channel;
+    @Excel(name = "项目所属行业")
+    private String industry;
+    /** 项目所属公司 */
+    @Excel(name = "项目所属公司")
+    private String company;
+    /** 投资负责人 */
+    @Excel(name = "投资负责人")
+    private String investHead;
+    /** 项目联系人 */
+    @Excel(name = "项目联系人")
+    private String projectContacts;
+    /** 项目阶段 */
+    @Excel(name = "项目阶段")
+    private String projectStage;
+    /** 项目状态 */
+    @Excel(name = "项目状态")
+    private String projectState;
+    /** 公司信息 */
+    @ApiModelProperty("公司信息")
+    @JsonProperty("tProjectCompany")
+    private TProjectCompany tProjectCompany;
+
+    /** 联系人信息 */
+    @ApiModelProperty("联系人信息")
+    @JsonProperty("tProjectContacts")
+    private TProjectContacts tProjectContacts;
+
+    /** 渠道信息 */
+    @ApiModelProperty("渠道信息")
+    @JsonProperty("tProjectChannel")
+    private TProjectChannel tProjectChannel;
+
+    /** 渠道信息 */
+    @ApiModelProperty("渠道信息")
+    @JsonProperty("tProjectPool")
+    private TProjectPool tProjectPool;
+
+
+    @ApiModelProperty("流程实例ID")
+    private String procInsId;
+    @ApiModelProperty("流程ID")
+    private String procDefId;
+    //private String processDefName;
+    @ApiModelProperty("流程部署编号")
+    private String deployId;
+    //流程任务信息
+    @ApiModelProperty("任务编号")
+    private String taskId;
+    @ApiModelProperty("任务执行编号")
+    private String executionId;// 运行id
+    @ApiModelProperty("任务名称")
+    private String taskName;
+    @ApiModelProperty("任务Key")
+    private String taskDefKey;
+    private String taskCreateTiem; // 当前节点创建时间
+    //private String taskUserId; // 当前处理人
+    //private String status; // 流程状态
+    @ApiModelProperty("任务执行人Id")
+    private String assignee; // 该值未空表示 可签收,不未空表示 可处理
+    @ApiModelProperty("任务执行人名称")
+    private String assigneeName;
+    //流程发起人信息
+    @ApiModelProperty("流程发起人Id")
+    private String startUserId;
+    @ApiModelProperty("流程发起人名称")
+    private String startUserName;
+    @ApiModelProperty("流程发起人部门名称")
+    private String startDeptName;
+}

+ 2 - 0
ruoyi-system/src/main/java/com/ruoyi/invest/domain/dto/InvestDto.java

@@ -1,6 +1,7 @@
 package com.ruoyi.invest.domain.dto;
 
 import com.ruoyi.invest.domain.FlowBaseInfo;
+import com.ruoyi.invest.domain.TProjectInvestigate;
 import com.ruoyi.invest.domain.TProjectPool;
 import com.ruoyi.invest.domain.TProjectReview;
 import lombok.Data;
@@ -9,5 +10,6 @@ import lombok.Data;
 public class InvestDto {
     private TProjectPool projectPool;   // 嵌套对象
     private TProjectReview projectReview;
+    private TProjectInvestigate tProjectInvestigate;
     private FlowBaseInfo flowBaseInfo;
 }

+ 8 - 0
ruoyi-system/src/main/java/com/ruoyi/invest/mapper/TProjectInvestigateMapper.java

@@ -2,6 +2,9 @@ package com.ruoyi.invest.mapper;
 
 import java.util.List;
 import com.ruoyi.invest.domain.TProjectInvestigate;
+import com.ruoyi.invest.domain.TProjectInvestigateVo;
+import com.ruoyi.invest.domain.TProjectPool;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 尽调关联Mapper接口
@@ -86,4 +89,9 @@ public interface TProjectInvestigateMapper
      * @return
      */
     TProjectInvestigate listProjectPoolIdNew(String projectPoolId);
+    List<TProjectInvestigateVo> getMyTaskList(@Param("userId")String userId, @Param("projectInvestigate")TProjectInvestigateVo tProjectInvestigate);
+
+    List<TProjectInvestigateVo> getMyDoneTaskList(@Param("userId")String userId, @Param("projectInvestigate")TProjectInvestigateVo tProjectInvestigate);
+
+    List<TProjectInvestigateVo> getMyList(@Param("userId")String userId, @Param("projectInvestigate")TProjectInvestigateVo tProjectInvestigate);
 }

+ 17 - 0
ruoyi-system/src/main/java/com/ruoyi/invest/service/ITProjectInvestigateService.java

@@ -1,7 +1,14 @@
 package com.ruoyi.invest.service;
 
 import java.util.List;
+
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.invest.domain.FlowBaseInfo;
 import com.ruoyi.invest.domain.TProjectInvestigate;
+import com.ruoyi.invest.domain.TProjectInvestigateVo;
+import com.ruoyi.invest.domain.TProjectReview;
+
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * 尽调关联Service接口
@@ -86,4 +93,14 @@ public interface ITProjectInvestigateService
      * @return
      */
     int editStatus(String id);
+
+    List<TProjectInvestigateVo> getMyTaskList(String userId, TProjectInvestigateVo tProjectInvestigate);
+
+    List<TProjectInvestigateVo> getMyDoneTaskList(String userId, TProjectInvestigateVo tProjectInvestigate);
+
+    List<TProjectInvestigateVo> getMyList(String userId, TProjectInvestigateVo tProjectInvestigate);
+
+    AjaxResult start(TProjectInvestigate tProjectInvestigate);
+
+    AjaxResult complete(TProjectInvestigate tProjectInvestigate, TProjectReview tProjectReview, FlowBaseInfo flowBaseInfo, HttpServletRequest request);
 }

+ 0 - 137
ruoyi-system/src/main/java/com/ruoyi/invest/service/impl/TProjectInvestigateServiceImpl.java

@@ -1,137 +0,0 @@
-package com.ruoyi.invest.service.impl;
-
-import java.util.List;
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.uuid.IdUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.ruoyi.invest.mapper.TProjectInvestigateMapper;
-import com.ruoyi.invest.domain.TProjectInvestigate;
-import com.ruoyi.invest.service.ITProjectInvestigateService;
-
-/**
- * 尽调关联Service业务层处理
- * 
- * @author zjc
- * @date 2024-03-13
- */
-@Service
-public class TProjectInvestigateServiceImpl implements ITProjectInvestigateService 
-{
-    @Autowired
-    private TProjectInvestigateMapper tProjectInvestigateMapper;
-
-    /**
-     * 查询尽调关联
-     * 
-     * @param id 尽调关联主键
-     * @return 尽调关联
-     */
-    @Override
-    public TProjectInvestigate selectTProjectInvestigateById(String id)
-    {
-        return tProjectInvestigateMapper.selectTProjectInvestigateById(id);
-    }
-
-    /**
-     * 查询尽调关联列表
-     * 
-     * @param tProjectInvestigate 尽调关联
-     * @return 尽调关联
-     */
-    @Override
-    public List<TProjectInvestigate> selectTProjectInvestigateList(TProjectInvestigate tProjectInvestigate)
-    {
-        return tProjectInvestigateMapper.selectTProjectInvestigateList(tProjectInvestigate);
-    }
-
-    /**
-     * 新增尽调关联
-     * 
-     * @param tProjectInvestigate 尽调关联
-     * @return 结果
-     */
-    @Override
-    public int insertTProjectInvestigate(TProjectInvestigate tProjectInvestigate)
-    {
-        tProjectInvestigate.setCreateTime(DateUtils.getNowDate());
-        return tProjectInvestigateMapper.insertTProjectInvestigate(tProjectInvestigate);
-    }
-
-    /**
-     * 修改尽调关联
-     * 
-     * @param tProjectInvestigate 尽调关联
-     * @return 结果
-     */
-    @Override
-    public int updateTProjectInvestigate(TProjectInvestigate tProjectInvestigate)
-    {
-        tProjectInvestigate.setUpdateTime(DateUtils.getNowDate());
-        return tProjectInvestigateMapper.updateTProjectInvestigate(tProjectInvestigate);
-    }
-
-    /**
-     * 批量删除尽调关联
-     * 
-     * @param ids 需要删除的尽调关联主键
-     * @return 结果
-     */
-    @Override
-    public int deleteTProjectInvestigateByIds(String[] ids)
-    {
-        return tProjectInvestigateMapper.deleteTProjectInvestigateByIds(ids);
-    }
-
-    /**
-     * 删除尽调关联信息
-     * 
-     * @param id 尽调关联主键
-     * @return 结果
-     */
-    @Override
-    public int deleteTProjectInvestigateById(String id)
-    {
-        return tProjectInvestigateMapper.deleteTProjectInvestigateById(id);
-    }
-
-    /**
-     * 批量删除尽调关联
-     * @param ids 需要删除的尽调关联主键
-     * @return
-     */
-    @Override
-    public int updateTProjectInvestigateByIds(String[] ids) {
-        return tProjectInvestigateMapper.updateTProjectInvestigateByIds(ids);
-    }
-
-    /**
-     * 根据项目ID获取尽调数据
-     * @param projectPoolId
-     * @return
-     */
-    @Override
-    public List<TProjectInvestigate> listProjectPoolId(String projectPoolId) {
-        return tProjectInvestigateMapper.listProjectPoolId(projectPoolId);
-    }
-
-    /**
-     * 根据项目ID获取最新尽调数据
-     * @param projectPoolId
-     * @return
-     */
-    @Override
-    public TProjectInvestigate listProjectPoolIdNew(String projectPoolId) {
-        return tProjectInvestigateMapper.listProjectPoolIdNew(projectPoolId);
-    }
-
-    /**
-     * 修改尽调完成
-     * @param id
-     * @return
-     */
-    @Override
-    public int editStatus(String id) {
-        return tProjectInvestigateMapper.editStatus(id);
-    }
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 229 - 1
ruoyi-system/src/main/resources/mapper/invest/TProjectInvestigateMapper.xml


+ 3 - 3
ruoyi-ui/src/api/project/investigate/pool.js

@@ -2,7 +2,7 @@ import request from '@/utils/request'
 // 我的待办任务列表
 export function getMyTaskList(query) {
   return request({
-    url: '/invest/meeting/list',
+    url: '/invest/investigate/getMyTaskList',
     method: 'get',
     params: query
   })
@@ -10,7 +10,7 @@ export function getMyTaskList(query) {
 //我的已办任务列表
 export function getMyDoneTaskList(query) {
   return request({
-    url: '/project/investmentOpportunity/getMyDoneTaskList',
+    url: '/invest/investigate/getMyDoneTaskList',
     method: 'get',
     params: query
   })
@@ -18,7 +18,7 @@ export function getMyDoneTaskList(query) {
 //我的单据列表
 export function getMyList(query) {
   return request({
-    url: '/invest/meeting/myList',
+    url: '/invest/investigate/getMyList',
     method: 'get',
     params: query
   })

+ 51 - 30
ruoyi-ui/src/views/project/investigate/myTask.vue

@@ -93,11 +93,11 @@
             <el-table-column label="项目名称" align="center" prop="projectName">
               <template slot-scope="scope">
                 <div
-                  :title="scope.row.projectName"
+                  :title="scope.row.tProjectPool.projectName"
                   class="public-text-blue public-cursor"
                   @click.stop="handleDetail(scope.row)"
                 >
-                  {{ scope.row.projectName }}
+                  {{ scope.row.tProjectPool.projectName }}
                 </div>
               </template>
             </el-table-column>
@@ -123,19 +123,19 @@
                 </div>
               </template>
             </el-table-column>
-           
+
             <el-table-column label="所属行业" align="center" prop="industry"
             ><template slot-scope="scope">
               <dict-tag
                 :options="dict.type.CUSTOMER_TRADE"
-                :value="scope.row.industry"
+                :value="scope.row.tProjectPool.industry"
               />
             </template>
             </el-table-column>
-          <el-table-column label="申请人" align="center" prop="userName">
+          <el-table-column label="申请人" align="center" prop="startUserName">
               <template slot-scope="scope">
-                <div :title="scope.row.userName">
-                  {{ scope.row.userName }}
+                <div :title="scope.row.startUserName">
+                  {{ scope.row.startUserName }}
                 </div>
               </template>
             </el-table-column>
@@ -150,10 +150,10 @@
             }}</span>
               </template>
             </el-table-column>
-          
 
-            
-           
+
+
+
             <el-table-column label="当前节点" align="center" prop="taskName">
               <template slot-scope="scope">
                 <div :title="scope.row.taskName"  class="public-text-blue public-cursor" @click="handleReadImage(scope.row)">
@@ -161,6 +161,13 @@
                 </div>
               </template>
             </el-table-column>
+            <el-table-column label="当前处理人" align="center" prop="assigneeName">
+              <template slot-scope="scope">
+                <div :title="scope.row.assigneeName">
+                  {{ scope.row.assigneeName}}
+                </div>
+              </template>
+            </el-table-column>
             <!-- fixed="right" -->
             <el-table-column label="操作" align="center" width="150" fixed="right" class-name="small-padding fixed-width">
               <template slot-scope="scope">
@@ -216,11 +223,11 @@
             <el-table-column label="项目名称" align="center" prop="projectName">
               <template slot-scope="scope">
                 <div
-                  :title="scope.row.projectName"
+                  :title="scope.row.tProjectPool.projectName"
                   class="public-text-blue public-cursor"
                   @click.stop="handleDetail(scope.row)"
                 >
-                  {{ scope.row.projectName }}
+                  {{ scope.row.tProjectPool.projectName }}
                 </div>
               </template>
             </el-table-column>
@@ -246,19 +253,19 @@
                 </div>
               </template>
             </el-table-column>
-           
+
             <el-table-column label="所属行业" align="center" prop="industry"
             ><template slot-scope="scope">
               <dict-tag
                 :options="dict.type.CUSTOMER_TRADE"
-                :value="scope.row.industry"
+                :value="scope.row.tProjectPool.industry"
               />
             </template>
             </el-table-column>
-          <el-table-column label="申请人" align="center" prop="userName">
+          <el-table-column label="申请人" align="center" prop="startUserName">
               <template slot-scope="scope">
-                <div :title="scope.row.userName">
-                  {{ scope.row.userName }}
+                <div :title="scope.row.startUserName">
+                  {{ scope.row.startUserName }}
                 </div>
               </template>
             </el-table-column>
@@ -273,10 +280,10 @@
             }}</span>
               </template>
             </el-table-column>
-          
 
-            
-           
+
+
+
             <el-table-column label="当前节点" align="center" prop="taskName">
               <template slot-scope="scope">
                 <div :title="scope.row.taskName"  class="public-text-blue public-cursor" @click="handleReadImage(scope.row)">
@@ -284,6 +291,13 @@
                 </div>
               </template>
             </el-table-column>
+            <el-table-column label="当前处理人" align="center" prop="assigneeName">
+              <template slot-scope="scope">
+                <div :title="scope.row.assigneeName">
+                  {{ scope.row.assigneeName}}
+                </div>
+              </template>
+            </el-table-column>
             <!-- fixed="right" -->
             <el-table-column label="操作" align="center" width="150" fixed="right" class-name="small-padding fixed-width">
               <template slot-scope="scope">
@@ -332,11 +346,11 @@
             <el-table-column label="项目名称" align="center" prop="projectName">
               <template slot-scope="scope">
                 <div
-                  :title="scope.row.projectName"
+                  :title="scope.row.tProjectPool.projectName"
                   class="public-text-blue public-cursor"
                   @click.stop="handleDetail(scope.row)"
                 >
-                  {{ scope.row.projectName }}
+                  {{ scope.row.tProjectPool.projectName }}
                 </div>
               </template>
             </el-table-column>
@@ -362,19 +376,19 @@
                 </div>
               </template>
             </el-table-column>
-           
+
             <el-table-column label="所属行业" align="center" prop="industry"
             ><template slot-scope="scope">
               <dict-tag
                 :options="dict.type.CUSTOMER_TRADE"
-                :value="scope.row.industry"
+                :value="scope.row.tProjectPool.industry"
               />
             </template>
             </el-table-column>
-          <el-table-column label="申请人" align="center" prop="userName">
+          <el-table-column label="申请人" align="center" prop="startUserName">
               <template slot-scope="scope">
-                <div :title="scope.row.userName">
-                  {{ scope.row.userName }}
+                <div :title="scope.row.startUserName">
+                  {{ scope.row.startUserName }}
                 </div>
               </template>
             </el-table-column>
@@ -389,10 +403,10 @@
             }}</span>
               </template>
             </el-table-column>
-          
 
-            
-           
+
+
+
             <el-table-column label="当前节点" align="center" prop="taskName">
               <template slot-scope="scope">
                 <div :title="scope.row.taskName"  class="public-text-blue public-cursor" @click="handleReadImage(scope.row)">
@@ -400,6 +414,13 @@
                 </div>
               </template>
             </el-table-column>
+            <el-table-column label="当前处理人" align="center" prop="assigneeName">
+              <template slot-scope="scope">
+                <div :title="scope.row.assigneeName">
+                  {{ scope.row.assigneeName}}
+                </div>
+              </template>
+            </el-table-column>
             <!-- fixed="right" -->
             <el-table-column label="操作" align="center" width="150" fixed="right" class-name="small-padding fixed-width">
               <template slot-scope="scope">