Commit 12e0aa2a by 陈玉兰

更改环节初始化

parent 3a64b38a
......@@ -243,83 +243,97 @@ public class ProcdefinitionBusinessImpl implements ProcdefinitionBusiness {
public int init_procde_finition_people_approval(String DEPLOYMENT_ID)
throws BusinessException {
// TODO Auto-generated method stub
//根据deployment_id找到activities对应的流程
ProcessDefinition processDefinition =repositoryService.createProcessDefinitionQuery().deploymentId(DEPLOYMENT_ID).singleResult();
if(processDefinition == null) {
return -1;
}
Map<String, Object> entity=new HashMap<String, Object>();
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());
if(processDefinition == null) {
return -1;
}
ProcessDefinitionEntity processDef = (ProcessDefinitionEntity) repositoryService.getProcessDefinition(processDefinition.getId());
List<ActivityImpl> activitiList = processDef.getActivities();
for (ActivityImpl activity : activitiList) {
List<String> taskKey=new ArrayList();
for (ActivityImpl activity : activitiList){
ActivityBehavior activityBehavior = activity.getActivityBehavior();
boolean isFound = false;
//是否为用户任务
if (activityBehavior instanceof UserTaskActivityBehavior) {
if (activityBehavior instanceof UserTaskActivityBehavior){
UserTaskActivityBehavior userTaskActivityBehavior = (UserTaskActivityBehavior) activityBehavior;
TaskDefinition taskDefinition = userTaskActivityBehavior.getTaskDefinition();
//任务所属角色
//
String taskDefKey = taskDefinition.getKey();
Expression taskName = taskDefinition.getNameExpression();
//判断表中是否存在此节点
if(list.size() != 0){
for(Map<String, Object> map : list){
Map<String, Object> param=new HashMap<String, Object>();
if(taskDefKey.equals(map.get("LINK_KEY"))){
param.put("UUID", map.get("UUID"));
param.put("DEPLOYMENT_ID", DEPLOYMENT_ID);
param.put("LINK_KEY", taskDefKey);
param.put("LINK_NAME", taskName.toString());
param.put("PROC_DEFIN_KEY", processDefinition.getKey());
param.put("PROC_DEFIN_ID", processDefinition.getId());
param.put("PROC_DEFIN_NAME", processDefinition.getName());
param.put("PROC_DEFIN_VERSION", processDefinition.getVersion());
isFound = true;
break;
}
}
taskKey.add(taskDefKey);
}
}
List<Map<String, Object>> selectResult=procdefinitionInitlinkDAO.list_procde_finition_init_link_byLinkKey(taskKey);
if(selectResult.size()==0){
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);
}
}
}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
public List<Map<String, Object>> listShowField(String procDefinitionId) throws BusinessException {
Map<String,Object> query=new HashMap<String, Object>();
......
......@@ -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(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;
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 delete_procde_finition_init_link_byLinkKey(List<String> list) throws BusinessException;
}
......@@ -57,4 +57,26 @@
]]>
<include refid="Where_Clause" />
</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>
\ 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