Commit 12e0aa2a by 陈玉兰

更改环节初始化

parent 3a64b38a
...@@ -243,83 +243,97 @@ public class ProcdefinitionBusinessImpl implements ProcdefinitionBusiness { ...@@ -243,83 +243,97 @@ public class ProcdefinitionBusinessImpl implements ProcdefinitionBusiness {
public int init_procde_finition_people_approval(String DEPLOYMENT_ID) public int init_procde_finition_people_approval(String DEPLOYMENT_ID)
throws BusinessException { throws BusinessException {
// TODO Auto-generated method stub // TODO Auto-generated method stub
//根据deployment_id找到activities对应的流程
ProcessDefinition processDefinition =repositoryService.createProcessDefinitionQuery().deploymentId(DEPLOYMENT_ID).singleResult(); ProcessDefinition processDefinition =repositoryService.createProcessDefinitionQuery().deploymentId(DEPLOYMENT_ID).singleResult();
if(processDefinition == null) { if(processDefinition == null) {
return -1; return -1;
} }
Map<String, Object> entity=new HashMap<String, Object>(); ProcessDefinitionEntity processDef = (ProcessDefinitionEntity) repositoryService.getProcessDefinition(processDefinition.getId());
entity.put("DEPLOYMENT_ID", DEPLOYMENT_ID);
List<Map<String, Object>> list=procdefinitionInitlinkDAO.list_procde_finition_init_link(entity);
String proDefKey = processDefinition.getKey();
ProcessDefinitionEntity processDef = (ProcessDefinitionEntity) repositoryService.getProcessDefinition(processDefinition.getId());
List<ActivityImpl> activitiList = processDef.getActivities(); List<ActivityImpl> activitiList = processDef.getActivities();
for (ActivityImpl activity : activitiList) { List<String> taskKey=new ArrayList();
for (ActivityImpl activity : activitiList){
ActivityBehavior activityBehavior = activity.getActivityBehavior(); ActivityBehavior activityBehavior = activity.getActivityBehavior();
boolean isFound = false; if (activityBehavior instanceof UserTaskActivityBehavior){
//是否为用户任务
if (activityBehavior instanceof UserTaskActivityBehavior) {
UserTaskActivityBehavior userTaskActivityBehavior = (UserTaskActivityBehavior) activityBehavior; UserTaskActivityBehavior userTaskActivityBehavior = (UserTaskActivityBehavior) activityBehavior;
TaskDefinition taskDefinition = userTaskActivityBehavior.getTaskDefinition(); TaskDefinition taskDefinition = userTaskActivityBehavior.getTaskDefinition();
//任务所属角色 //
String taskDefKey = taskDefinition.getKey(); String taskDefKey = taskDefinition.getKey();
Expression taskName = taskDefinition.getNameExpression(); taskKey.add(taskDefKey);
}
//判断表中是否存在此节点 }
if(list.size() != 0){ List<Map<String, Object>> selectResult=procdefinitionInitlinkDAO.list_procde_finition_init_link_byLinkKey(taskKey);
for(Map<String, Object> map : list){ if(selectResult.size()==0){
Map<String, Object> param=new HashMap<String, Object>(); for (ActivityImpl activity : activitiList){
if(taskDefKey.equals(map.get("LINK_KEY"))){ ActivityBehavior activityBehavior = activity.getActivityBehavior();
param.put("UUID", map.get("UUID")); if (activityBehavior instanceof UserTaskActivityBehavior){
param.put("DEPLOYMENT_ID", DEPLOYMENT_ID); UserTaskActivityBehavior userTaskActivityBehavior = (UserTaskActivityBehavior) activityBehavior;
param.put("LINK_KEY", taskDefKey); TaskDefinition taskDefinition = userTaskActivityBehavior.getTaskDefinition();
param.put("LINK_NAME", taskName.toString()); //
param.put("PROC_DEFIN_KEY", processDefinition.getKey()); Map<String, Object> entity=new HashMap<String, Object>();
param.put("PROC_DEFIN_ID", processDefinition.getId()); entity.put("DEPLOYMENT_ID", DEPLOYMENT_ID);
param.put("PROC_DEFIN_NAME", processDefinition.getName()); String taskDefKey = taskDefinition.getKey();
param.put("PROC_DEFIN_VERSION", processDefinition.getVersion()); Expression taskName = taskDefinition.getNameExpression();
isFound = true; insertProcdeLink(DEPLOYMENT_ID, processDefinition, entity,
break; taskDefKey, taskName);
} }
} }
}else{
procdefinitionInitlinkDAO.delete_procde_finition_init_link_byLinkKey(taskKey);
for (ActivityImpl activity : activitiList){
ActivityBehavior activityBehavior = activity.getActivityBehavior();
if (activityBehavior instanceof UserTaskActivityBehavior){
UserTaskActivityBehavior userTaskActivityBehavior = (UserTaskActivityBehavior) activityBehavior;
TaskDefinition taskDefinition = userTaskActivityBehavior.getTaskDefinition();
//
Map<String, Object> entity=new HashMap<String, Object>();
entity.put("DEPLOYMENT_ID", DEPLOYMENT_ID);
String taskDefKey = taskDefinition.getKey();
Expression taskName = taskDefinition.getNameExpression();
insertProcdeLink(DEPLOYMENT_ID, processDefinition, entity,
taskDefKey, taskName);
} }
if(!isFound){
if (entity.get("UUID") == null) {
entity.put("UUID", java.util.UUID.randomUUID().toString());
}
if (entity.get("CREATE_TIME") == null) {
entity.put("CREATE_TIME", new Date());
}
entity.put("DEPLOYMENT_ID", DEPLOYMENT_ID);
entity.put("LINK_KEY", taskDefKey);
if(taskName!=null){
entity.put("LINK_NAME", taskName.toString());
}
entity.put("PROC_DEFIN_KEY", processDefinition.getKey());
entity.put("PROC_DEFIN_ID", processDefinition.getId());
entity.put("PROC_DEFIN_NAME", processDefinition.getName());
entity.put("PROC_DEFIN_VERSION", processDefinition.getVersion());
// 动态传值插入
List<String> infoListKey = new ArrayList<String>();
List<Object> infoList = new ArrayList<Object>();
if (entity.keySet() != null) {
Set<String> key = entity.keySet();
// 将map集合中的key和value 取出来分别放到list集合里
for (String str : key) {
infoList.add(entity.get(str));
infoListKey.add(str);
}
entity.put("infoListKey", infoListKey);
entity.put("infoList", infoList);
}
procdefinitionInitlinkDAO.insert_procde_finition_init_link(entity);
entity.clear();
}
} }
} }
return 1; return 1;
} }
private void insertProcdeLink(String DEPLOYMENT_ID,
ProcessDefinition processDefinition, Map<String, Object> entity,
String taskDefKey, Expression taskName) {
if (entity.get("UUID") == null) {
entity.put("UUID", java.util.UUID.randomUUID().toString());
}
if (entity.get("CREATE_TIME") == null) {
entity.put("CREATE_TIME", new Date());
}
entity.put("DEPLOYMENT_ID", DEPLOYMENT_ID);
entity.put("LINK_KEY", taskDefKey);
if(taskName!=null){
entity.put("LINK_NAME", taskName.toString());
}
entity.put("PROC_DEFIN_KEY", processDefinition.getKey());
entity.put("PROC_DEFIN_ID", processDefinition.getId());
entity.put("PROC_DEFIN_NAME", processDefinition.getName());
entity.put("PROC_DEFIN_VERSION", processDefinition.getVersion());
// 动态传值插入
List<String> infoListKey = new ArrayList<String>();
List<Object> infoList = new ArrayList<Object>();
if (entity.keySet() != null) {
Set<String> key = entity.keySet();
// 将map集合中的key和value 取出来分别放到list集合里
for (String str : key) {
infoList.add(entity.get(str));
infoListKey.add(str);
}
entity.put("infoListKey", infoListKey);
entity.put("infoList", infoList);
}
procdefinitionInitlinkDAO.insert_procde_finition_init_link(entity);
entity.clear();
}
@Override @Override
public List<Map<String, Object>> listShowField(String procDefinitionId) throws BusinessException { public List<Map<String, Object>> listShowField(String procDefinitionId) throws BusinessException {
Map<String,Object> query=new HashMap<String, Object>(); Map<String,Object> query=new HashMap<String, Object>();
......
...@@ -12,10 +12,14 @@ public interface procdefinitionInitlinkDAO { ...@@ -12,10 +12,14 @@ public interface procdefinitionInitlinkDAO {
List<Map<String, Object>> list_procde_finition_init_link(Map<String, Object> entity) throws BusinessException; List<Map<String, Object>> list_procde_finition_init_link(Map<String, Object> entity) throws BusinessException;
List<Map<String, Object>> list_procde_finition_init_link(RowBounds rowbounds, Map<String, Object> query) throws BusinessException; List<Map<String, Object>> list_procde_finition_init_link(RowBounds rowbounds, Map<String, Object> query) throws BusinessException;
List<Map<String, Object>> list_procde_finition_init_link_byLinkKey(List<String> list) throws BusinessException;
int listCount_procde_finition_init_link(Map<String, Object> entity)throws BusinessException; int listCount_procde_finition_init_link(Map<String, Object> entity)throws BusinessException;
void insert_procde_finition_init_link(Map<String, Object> entity) throws BusinessException; void insert_procde_finition_init_link(Map<String, Object> entity) throws BusinessException;
void update_procde_finition_init_link(Map<String, Object> entity) throws BusinessException; void update_procde_finition_init_link(Map<String, Object> entity) throws BusinessException;
void delete_procde_finition_init_link_byLinkKey(List<String> list) throws BusinessException;
} }
...@@ -57,4 +57,26 @@ ...@@ -57,4 +57,26 @@
]]> ]]>
<include refid="Where_Clause" /> <include refid="Where_Clause" />
</select> </select>
<select id="list_procde_finition_init_link_byLinkKey" parameterType="list" resultType="upperCaseKeyMap">
<![CDATA[
select f.*
from C_T_PROC_DEFINITION_INIT_LINK f where LINK_KEY IN
]]>
<foreach collection="list" item="LINK_KEY" open="(" separator=","
close=")">
#{LINK_KEY}
</foreach>
order by f.CREATE_TIME DESC
</select>
<delete id="delete_procde_finition_init_link_byLinkKey" parameterType="list">
<![CDATA[
delete from C_T_PROC_DEFINITION_INIT_LINK where LINK_KEY IN
]]>
<foreach collection="list" item="UUID" open="(" separator=","
close=")">
#{UUID}
</foreach>
</delete>
</mapper> </mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment