diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java index fde39e439..7554c278d 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java @@ -9,10 +9,13 @@ import com.jero.common.system.vo.LoginUser; import com.jero.modules.feishu.vo.FeishuMsgVo; import com.jero.modules.project.entity.ProjectLawsInventoryEO; import com.jero.modules.system.entity.SysRole; +import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO; +import com.jero.modules.todoCenter.entity.ProcessInfoEO; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.util.Date; import java.util.List; import java.util.Map; @@ -149,4 +152,8 @@ public interface IProjectLawsInventoryEOService extends IService expediting(JSONObject json); List getRoleByUserId(String projectLibraryId,String cut); + + void addProcessInfo(ProcessInfoEO processInfoEO, String projectLibraryId, Date endTime); + + void addProcessInfoDetail(String processInfoId, List processInfoDetailEOList, Date endTime); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java index 6963ab4c5..c2b2098d7 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java @@ -576,9 +576,20 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl processInfoQueryWrap = new QueryWrapper<>(); @@ -8689,7 +8701,8 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl processInfoDetailEOList,Date endTime){ + @Override + public void addProcessInfoDetail(String processInfoId, List processInfoDetailEOList, Date endTime){ processInfoDetailEOList.forEach(detail -> { detail.setProcessInfoId(processInfoId); detail.setFlowType(FlowTypeEnum.QDQR.getValue()); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/controller/ProjectProcessTodoCenterController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/controller/ProjectProcessTodoCenterController.java index 9213aa709..06a5f5d59 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/controller/ProjectProcessTodoCenterController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/controller/ProjectProcessTodoCenterController.java @@ -47,4 +47,11 @@ public class ProjectProcessTodoCenterController { IPage page = this.processInfoEOService.projectProcessIssuedProcess(params); return Result.OK(page); } + + @AutoLog(value = "待办中心-法规评估-初始化历史数据") + @ApiOperation(value="待办中心-法规评估-初始化历史数据", notes="待办中心-法规评估-初始化历史数据") + @GetMapping(value = "/initHistoryData") + public Result initHistoryData(@RequestParam Map params) { + return this.processInfoEOService.initHistoryData(params); + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/IProcessInfoDetailEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/IProcessInfoDetailEOService.java index f72da7cba..72124c3b0 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/IProcessInfoDetailEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/IProcessInfoDetailEOService.java @@ -2,6 +2,7 @@ package com.jero.modules.todoCenter.service; import com.alibaba.fastjson.JSONObject; import com.jero.common.api.vo.Result; +import com.jero.modules.project.entity.ProjectLawsInventoryEO; import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -73,4 +74,12 @@ public interface IProcessInfoDetailEOService extends IService processInfoDetailEOList); + + /** + * 更新待办中心流程信息明细表,处理人 + * @param projectLawsInventoryEO + * @param pId + * @param flowType + */ + void updateProcessInfoDetailUserId(ProjectLawsInventoryEO projectLawsInventoryEO, String pId, String flowType); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/IProcessInfoEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/IProcessInfoEOService.java index 6606cf1fa..65fa57838 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/IProcessInfoEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/IProcessInfoEOService.java @@ -117,4 +117,6 @@ public interface IProcessInfoEOService extends IService { * @return */ IPage lawsAssessIssuedProcess(Map params); + + Result initHistoryData(Map params); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ProcessInfoDetailEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ProcessInfoDetailEOServiceImpl.java index cd0617cd6..feb2a195e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ProcessInfoDetailEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ProcessInfoDetailEOServiceImpl.java @@ -6,11 +6,15 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.jero.common.api.vo.Result; import com.jero.common.exception.JeroBootException; +import com.jero.modules.project.entity.ProjectLawsInventoryEO; import com.jero.modules.project.enums.OperatorTypeEnum; import com.jero.modules.project.enums.RequestSourceEnum; import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO; import com.jero.modules.todoCenter.mapper.ProcessInfoDetailEOMapper; import com.jero.modules.todoCenter.service.IProcessInfoDetailEOService; +import com.jero.modules.wkflow.enums.DesignComplianceNodeEnum; +import com.jero.modules.wkflow.enums.FlowTypeEnum; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -175,4 +179,48 @@ public class ProcessInfoDetailEOServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(ProcessInfoDetailEO::getActiProcInstId,pId); + queryWrapper.lambda().eq(ProcessInfoDetailEO::getFlowType,flowType); + List processInfoDetailEOList = this.list(queryWrapper); + if(CollectionUtils.isNotEmpty(processInfoDetailEOList)){ + for (ProcessInfoDetailEO processInfoDetailEO : processInfoDetailEOList) { + if(StringUtils.equals(flowType, FlowTypeEnum.SJFHXSHLC.getValue())){ + if(StringUtils.equals(processInfoDetailEO.getTaskDefinitionKey(), DesignComplianceNodeEnum.THE_RESPONSIBLE_PERSON_HANDLES_THE_TASK.getKey())){ + //更新责任人的任务 + processInfoDetailEO.setUserId(projectLawsInventoryEO.getDesignDutyId()); + } + if(StringUtils.equals(processInfoDetailEO.getTaskDefinitionKey(), DesignComplianceNodeEnum.SPONSOR_REVIEW.getKey())){ + //更新发起人的任务 + processInfoDetailEO.setUserId(projectLawsInventoryEO.getDesignInitiatorId()); + } + } + if(StringUtils.equals(flowType, FlowTypeEnum.PREHOMOQRLC.getValue())){ + if(StringUtils.equals(processInfoDetailEO.getTaskDefinitionKey(), DesignComplianceNodeEnum.THE_RESPONSIBLE_PERSON_HANDLES_THE_TASK.getKey())){ + //更新责任人的任务 + processInfoDetailEO.setUserId(projectLawsInventoryEO.getPrehomoDutyId()); + } + if(StringUtils.equals(processInfoDetailEO.getTaskDefinitionKey(), DesignComplianceNodeEnum.SPONSOR_REVIEW.getKey())){ + //更新发起人的任务 + processInfoDetailEO.setUserId(projectLawsInventoryEO.getPrehomoInitiatorId()); + } + } + + if(StringUtils.equals(flowType,FlowTypeEnum.YZFHXSCLC.getValue())){ + if(StringUtils.equals(processInfoDetailEO.getTaskDefinitionKey(), DesignComplianceNodeEnum.THE_RESPONSIBLE_PERSON_HANDLES_THE_TASK.getKey())){ + //更新责任人的任务 + processInfoDetailEO.setUserId(projectLawsInventoryEO.getVerifyDutyId()); + } + if(StringUtils.equals(processInfoDetailEO.getTaskDefinitionKey(), DesignComplianceNodeEnum.SPONSOR_REVIEW.getKey())){ + //更新发起人的任务 + processInfoDetailEO.setUserId(projectLawsInventoryEO.getVerifyInitiatorId()); + } + } + this.baseMapper.updateById(processInfoDetailEO); + } + } + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ProcessInfoEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ProcessInfoEOServiceImpl.java index f25a0ac1b..282560b60 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ProcessInfoEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ProcessInfoEOServiceImpl.java @@ -7,11 +7,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.api.vo.Result; import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; +import com.jero.modules.project.entity.ProjectLawsInventoryEO; +import com.jero.modules.project.entity.ProjectLibraryBase; import com.jero.modules.project.entity.ProjectTaskInventoryDetailEO; import com.jero.modules.project.entity.ProjectTaskInventoryEO; -import com.jero.modules.project.enums.OperatorTypeEnum; -import com.jero.modules.project.enums.RequestSourceEnum; -import com.jero.modules.project.enums.TaskStatusEnum; +import com.jero.modules.project.enums.*; +import com.jero.modules.project.service.IProjectLawsInventoryEOService; +import com.jero.modules.project.service.IProjectLibraryBaseService; import com.jero.modules.project.service.IProjectTaskInventoryDetailEOService; import com.jero.modules.project.service.IProjectTaskInventoryEOService; import com.jero.modules.system.entity.SysUser; @@ -24,12 +26,15 @@ import com.jero.modules.todoCenter.service.IProcessInfoDetailEOService; import com.jero.modules.todoCenter.service.IProcessInfoEOService; import com.jero.modules.todoCenter.vo.ProcessInfoVO; import com.jero.modules.wkflow.enums.FlowTypeEnum; +import com.jero.modules.wkflow.feginClient.impl.WorkFlowFeignClientImpl; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -55,6 +60,12 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl initHistoryData(Map params) { + /** + * disposeType:处理类型 + * value: + * 10:清单确认 + * 1:任务确认 + * 2:设计符合性 + * 3:prehomo确认 + * 4:验证符合性 + * 5:法规意见收集 + * 6:法规技术评估 + * 多个之间使用英文逗号分隔. + */ + String disposeType = (String) params.get("disposeType"); + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + //查询出所有的法规清单数据 + List projectLawsInventoryEOList = this.projectLawsInventoryEOService.list(); + //查询出所有项目库信息 + List projectLibraryBaseList = this.projectLibraryBaseService.list(); + + //1、清单确认 + if(StringUtils.contains(disposeType,FlowTypeEnum.QDQR.getValue())){ + this.initQdqr(projectLawsInventoryEOList,projectLibraryBaseList); + } + + //2.任务确认 + if(StringUtils.contains(disposeType,FlowTypeEnum.RWQRLC.getValue())){ + this.initRwqr(projectLawsInventoryEOList,projectLibraryBaseList); + } + + return Result.OK("初始化数据成功",disposeType); + } + + /** + * 初始化清单确认 + * @param projectLawsInventoryEOList + * @param projectLibraryBaseList + */ + public void initQdqr(List projectLawsInventoryEOList,List projectLibraryBaseList){ + Map> qdqrMap = projectLawsInventoryEOList.stream().filter(lawsInventory -> { + boolean flag = false; + if (StringUtils.equals(lawsInventory.getInventoryAffirmStatus(), InventoryAffirmStatusEnum.LIST_TO_CONFIRM.getValue())) { + flag = true; + } + return flag; + }).collect(Collectors.groupingBy(ProjectLawsInventoryEO::getProjectLibraryId)); + + if(!Objects.isNull(qdqrMap)){ + for (Map.Entry> map : qdqrMap.entrySet()) { + String projectLibraryId = map.getKey(); + ProjectLibraryBase projectLibraryBaseEO = projectLibraryBaseList.stream().filter(projectLibraryBase -> { + boolean flag = false; + if(StringUtils.equals(projectLibraryId,projectLibraryBase.getId())){ + flag = true; + } + return flag; + }).collect(Collectors.toList()).get(0); + + List processInfoDetailEOList = new ArrayList<>(); + + List qdqrLawsInventoryList = map.getValue(); + if(CollectionUtils.isNotEmpty(qdqrLawsInventoryList)){ + qdqrLawsInventoryList.forEach(projectLawsInventoryEO-> { + boolean homologationEngineerFlag = ( + StringUtils.isEmpty(projectLawsInventoryEO.getHomologationEngineerSubmitStatus()) + || StringUtils.equals(projectLawsInventoryEO.getHomologationEngineerSubmitStatus(),"1") + ); + boolean regulationOwnerFlag = ( + StringUtils.isEmpty(projectLawsInventoryEO.getRegulationOwnerSubmitStatus()) + || StringUtils.equals(projectLawsInventoryEO.getRegulationOwnerSubmitStatus(),"1") + ); + + if(homologationEngineerFlag){ + ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO(); + processInfoDetailEO.setProjectLawsInventoryId(projectLawsInventoryEO.getId()); + processInfoDetailEO.setUserId(projectLawsInventoryEO.getHomologationEngineerId()); + processInfoDetailEO.setTaskDefinitionKey(InventoryAffirmNodeEnum.HOMOLOGATION_ENGINEER_AUDIT.getKey()); + processInfoDetailEO.setEndTime(projectLawsInventoryEO.getInventoryAffirmDueDate()); + processInfoDetailEO.setCreateTime(new Date()); + processInfoDetailEO.setCreateBy(projectLibraryBaseEO.getStudioEngineer()); + processInfoDetailEO.setStatus(TaskStatusEnum.NOT_DONE.getValue()); + + processInfoDetailEOList.add(processInfoDetailEO); + } + if(regulationOwnerFlag){ + ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO(); + processInfoDetailEO.setProjectLawsInventoryId(projectLawsInventoryEO.getId()); + processInfoDetailEO.setUserId(projectLawsInventoryEO.getRegulationOwnerId()); + processInfoDetailEO.setTaskDefinitionKey(InventoryAffirmNodeEnum.REGULATION_OWNER_AUDIT.getKey()); + processInfoDetailEO.setEndTime(projectLawsInventoryEO.getInventoryAffirmDueDate()); + processInfoDetailEO.setCreateTime(new Date()); + processInfoDetailEO.setCreateBy(projectLibraryBaseEO.getStudioEngineer()); + processInfoDetailEO.setStatus(TaskStatusEnum.NOT_DONE.getValue()); + + processInfoDetailEOList.add(processInfoDetailEO); + } + }); + + //往待办中心添加数据。 + ProcessInfoEO processInfoEO = new ProcessInfoEO(); + this.projectLawsInventoryEOService.addProcessInfo(processInfoEO,projectLibraryId,null); + this.projectLawsInventoryEOService.addProcessInfoDetail(processInfoEO.getId(),processInfoDetailEOList,null); + } + } + } + } + + /** + * 初始化任务确认 + * @param projectLawsInventoryEOList + * @param projectLibraryBaseList + */ + public void initRwqr(List projectLawsInventoryEOList,List projectLibraryBaseList){ + List> rwqrResult = this.workFlowFeignClient.queryProcessInfoByPrcType(FlowTypeEnum.RWQRLC.getValue()); + if(CollectionUtils.isNotEmpty(rwqrResult)){ + for (Map rwqrMap : rwqrResult) { + List lawsInventoryList = projectLawsInventoryEOList.stream().filter(projectLawsInventory -> { + boolean flag = false; + if (StringUtils.equals((String) rwqrMap.get("projectLawsInventoryId"), projectLawsInventory.getId())) { + flag = true; + } + return flag; + }).collect(Collectors.toList()); + + if(CollectionUtils.isNotEmpty(lawsInventoryList)){ + ProjectLawsInventoryEO projectLawsInventoryEO = lawsInventoryList.get(0); + + rwqrMap.put("projectLibraryId",projectLawsInventoryEO.getProjectLibraryId()); + rwqrMap.put("projectLawsInventoryId",projectLawsInventoryEO.getId()); + rwqrMap.put("standId",projectLawsInventoryEO.getStandId()); + + List> taskMapList = (List>)rwqrMap.get("taskMapList"); + if(CollectionUtils.isNotEmpty(taskMapList)){ + addProcessInfo(rwqrMap); + } + } + } + } + } + + public void addProcessInfo(Map params){ + String prcNum = (String) params.get("prcNum"); + String prcName = (String) params.get("prcName"); + String actiProcInstId = (String) params.get("actiProcInstId"); + String flowType = (String) params.get("flowType"); + String endTimeStr = ""; + String projectLibraryId = ""; + String projectLawsInventoryId = ""; + String standId = ""; + String createBy = (String) params.get("createBy"); + if(StringUtils.equals(flowType,FlowTypeEnum.RWQRLC.getValue())){ + projectLibraryId = (String) params.get("projectLibraryId"); + projectLawsInventoryId = (String) params.get("projectLawsInventoryId"); + standId = (String) params.get("standId"); + endTimeStr = (String) params.get("endTime"); + } + + ProcessInfoEO processInfoEO = new ProcessInfoEO(); + processInfoEO.setId(actiProcInstId); + processInfoEO.setProjectLibraryId(projectLibraryId); + processInfoEO.setProjectLawsInventoryId(projectLawsInventoryId); + processInfoEO.setActiProcInstId(actiProcInstId); + processInfoEO.setFlowType(flowType); + processInfoEO.setPrcNum(prcNum); + processInfoEO.setPrcName(prcName); + processInfoEO.setBussDocumentLibraryId(standId); + + //截止日期 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date endTime = new Date(); + try { + endTime = sdf.parse(endTimeStr); + } catch (ParseException e) { + e.printStackTrace(); + } + processInfoEO.setEndTime(endTime); + processInfoEO.setStatus(TodoCenterStatusEnum.LIST_TO_CONFIRM.getValue()); + processInfoEO.setCreateBy(createBy); + this.baseMapper.insert(processInfoEO); + + List> taskMapList = (List>)params.get("taskMapList"); + List processInfoDetailEOList = new ArrayList<>(); + for (Map taskMap : taskMapList) { + ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO(); + processInfoDetailEO.setActiProcInstId((String) taskMap.get("actiProcInstId")); + processInfoDetailEO.setTaskId((String) taskMap.get("taskId")); + processInfoDetailEO.setTaskDefinitionKey((String) taskMap.get("taskDefinitionKey")); + processInfoDetailEO.setUserId((String) taskMap.get("userId")); + processInfoDetailEO.setStatus(TaskStatusEnum.NOT_DONE.getValue()); + processInfoDetailEO.setProcessInfoId(processInfoEO.getId()); + processInfoDetailEO.setFlowType(flowType); + processInfoDetailEO.setProjectLawsInventoryId(projectLawsInventoryId); + processInfoDetailEO.setCreateTime(new Date()); + processInfoDetailEO.setCreateBy(createBy); + + processInfoDetailEOList.add(processInfoDetailEO); + } + + this.processInfoDetailEOService.saveBatch(processInfoDetailEOList); + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/WorkFlowFeignClient.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/WorkFlowFeignClient.java index 51070cea7..3782ef9f7 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/WorkFlowFeignClient.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/WorkFlowFeignClient.java @@ -181,4 +181,12 @@ public interface WorkFlowFeignClient { @RequestMapping(value = "/bat-wkflow/deleteProcessInstanceByPrcIds",method = RequestMethod.GET) Result deleteProcessInstanceByPrcIds(@RequestParam("prcIds") String prcIds); + + /** + * 根据流程类型,查询未完成的流程信息 + * @param prcType + * @return + */ + @RequestMapping(value = "/bat-wkflow/datas/bus-process-name/queryProcessInfoByPrcType",method = RequestMethod.GET) + List> queryProcessInfoByPrcType(@RequestParam("prcType") String prcType); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/impl/WorkFlowFeignClientImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/impl/WorkFlowFeignClientImpl.java index e8db6f85e..3dcbeb659 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/impl/WorkFlowFeignClientImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/impl/WorkFlowFeignClientImpl.java @@ -196,4 +196,13 @@ public class WorkFlowFeignClientImpl{ public Result deleteProcessInstanceByTaskId(@RequestParam("taskId")String taskId){ return workFlowFeignClient.deleteProcessInstance(taskId); } + + /** + * 根据流程类型,查询未完成的流程信息 + * @param prcType + * @return + */ + public List> queryProcessInfoByPrcType(String prcType) { + return workFlowFeignClient.queryProcessInfoByPrcType(prcType); + } }