fujunling
2023-06-20 4d15b0b7853292b3f2a80a23af19955375f12e80
Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/FlowTaskUserServiceImpl.java
@@ -28,6 +28,7 @@
import com.vci.ubcs.flow.engine.entity.*;
import com.vci.ubcs.flow.engine.mapper.FlowMapper;
import com.vci.ubcs.flow.engine.mapper.FlowTaskUserMapper;
import com.vci.ubcs.flow.engine.mapper.ProcessTemplateMapper;
import com.vci.ubcs.flow.engine.service.FlowEngineService;
import com.vci.ubcs.flow.engine.service.FlowTaskUserService;
import com.vci.ubcs.flow.engine.utils.FlowCache;
@@ -92,23 +93,62 @@
   private FlowEngineService flowEngineService;
   private FlowTaskUserMapper flowTaskUserMapper;
   private ProcessTemplateMapper processTemplateMapper;
   /**
    * 查询当前登陆人对这个流程的taskUser
    * @param type ProcessTemplateTypeEnum
    * @return
    */
   @Override
   public FlowTaskUserC getUser(){
      QueryWrapper<FlowTaskUser> queryWrapper = new QueryWrapper<>();
      queryWrapper.eq("CREATED_BY", AuthUtil.getUserId());
      List<FlowTaskUser> flowTaskUsers = baseMapper.selectList(queryWrapper);
      FlowTaskUserC flowTaskUserCR = new FlowTaskUserC();
      if(flowTaskUsers.size()==0){
         return flowTaskUserCR;
   public Object getUser(String type,String templateId){
      Map kv = new HashMap();
      //根据type查询top流程数据
      Map<String, Object> m = new HashMap<>();
      m.put("button_type_key", type);
      m.put("template_id", templateId);
      List<ProcessTemplate> processTemplates = processTemplateMapper.selectByMap(m);
       if(processTemplates.size()==0){
         throw new ServiceException("主题库定义-模板管理-流程模板,没有绑定流程!");
      }
      flowTaskUserCR.setName(flowTaskUsers.get(0).getName());//收藏名称
      flowTaskUserCR.setFlowTaskUsers(flowTaskUsers);
      return flowTaskUserCR;
      ProcessTemplate processTemplate = processTemplates.get(0);
      kv.put("flow",processTemplate);
      //top收藏部分数据
      QueryWrapper<FlowTaskUser> queryWrapper = new QueryWrapper<>();
      queryWrapper.eq("CREATED_BY", TaskUtil.getTaskUser());
      List<FlowTaskUser> flowTaskUsers = baseMapper.selectList(queryWrapper);
      List<FlowTaskUserC> cl = new ArrayList<>();
      Map<String,List<FlowTaskUser>> nameMap = new HashMap<>();
      for(FlowTaskUser flowTaskUser:flowTaskUsers){
         String name = flowTaskUser.getName();//收藏名称
         List<FlowTaskUser> flowTaskUserListo = null;
         if(nameMap.get(name)==null){
            flowTaskUserListo = new ArrayList<>();
         }else {
            flowTaskUserListo = nameMap.get(name);
         }
         flowTaskUserListo.add(flowTaskUser);
         nameMap.put(name,flowTaskUserListo);
      }
      for (String name:nameMap.keySet()){
         FlowTaskUserC flowTaskUserCR = new FlowTaskUserC();
         flowTaskUserCR.setName(name);//收藏名称
         flowTaskUserCR.setModelKey(nameMap.get(name).get(0).getModelKey());
         flowTaskUserCR.setModelName(nameMap.get(name).get(0).getModelName());
         flowTaskUserCR.setFlowTaskUsers(nameMap.get(name));
         cl.add(flowTaskUserCR);
      }
      kv.put("collect",cl);
      //数据节点数据
      List<Map<String,String>> tl = flowEngineService.getNodeByFlowableKey(processTemplate.getModelKey());
      kv.put("user",tl);
      return kv;
   }
   @Override
@@ -117,17 +157,20 @@
      String name = flowTaskUserC.getName();//收藏名称
      //新增情况下验证收藏名称不重复
      if(flowTaskUsers.get(0).getId()!=null) {
         Map<String, Object> m = new HashMap<>();
         m.put("name", name);
         QueryWrapper q = Condition.getQueryWrapper(m, FlowTaskUser.class)
            .select("id,model_key modelKey,name,description,version,created,last_updated lastUpdated");
         if(flowTaskUserMapper.selectCount(q)>0){
            throw new ServiceException("收藏名称已经存在!");
         }
      Map<String, Object> m = new HashMap<>();
      m.put("name", name);
      m.put("created_by", TaskUtil.getTaskUser());
      QueryWrapper q = Condition.getQueryWrapper(m, FlowTaskUser.class)
         .select("1");
      if(flowTaskUserMapper.selectCount(q)>0){
         throw new ServiceException("收藏名称已经存在!");
      }
      for (FlowTaskUser flowTaskUseri:flowTaskUsers){
         flowTaskUseri.setName(name);
         flowTaskUseri.setCreatedBy(TaskUtil.getTaskUser());
         flowTaskUseri.setTemplateId(flowTaskUserC.getTemplateId());
         flowTaskUseri.setModelKey(flowTaskUserC.getModelKey());
      }
      //新增、修改
      this.saveOrUpdateBatch(flowTaskUsers);
@@ -139,8 +182,14 @@
   public void deleteUser(String name){
      Map<String, Object> m = new HashMap<>();
      m.put("name", name);
      m.put("created_by", AuthUtil.getUserId());
      m.put("created_by", TaskUtil.getTaskUser());
      baseMapper.deleteByMap(m);
   }
   public List<FlowTaskUser> getTaskUserByTemplateAndModelKey(String templateId,String modelKey){
      Map<String, Object> m = new HashMap<>();
      m.put("template_id", templateId);
      m.put("model_key", modelKey);
      return baseMapper.selectByMap(m);
   }
}