outTransitionsTemp = null;
for (PvmTransition tr : outTransitions) {
ac = tr.getDestination(); // 获取线路的终点节点
// 如果流向线路为排他网关
if ("exclusiveGateway".equals(ac.getProperty("type"))) {
return true;
} else if ("userTask".equals(ac.getProperty("type"))) {
return false;
} else {
return false;
}
}
return false;
}
return false;
}
}
}
return false;
}
/**
* 下一个任务节点信息,
*
* 如果下一个节点为用户任务则直接返回,
*
* 如果下一个节点为排他网关, 获取排他网关Id信息, 根据排他网关Id信息和execution获取流程实例排他网关Id为key的变量值,
* 根据变量值分别执行排他网关后线路中的el表达式, 并找到el表达式通过的线路后的用户任务
*
* @param activityImpl 流程节点信息
* @param activityId 当前流程节点Id信息
* @param elString 排他网关顺序流线段判断条件
* @param processInstanceId 流程实例Id信息
* @return
*/
private TaskDefinition nextTaskDefinition(ActivityImpl activityImpl, String activityId, String elString, String processInstanceId) {
PvmActivity ac = null;
Object s = null;
// 如果遍历节点为用户任务并且节点不是当前节点信息
if ("userTask".equals(activityImpl.getProperty("type")) && !activityId.equals(activityImpl.getId())) {
// 获取该节点下一个节点信息
TaskDefinition taskDefinition = ((UserTaskActivityBehavior) activityImpl.getActivityBehavior())
.getTaskDefinition();
return taskDefinition;
} else if ("exclusiveGateway".equals(activityImpl.getProperty("type"))) {// 当前节点为exclusiveGateway
List outTransitions = activityImpl.getOutgoingTransitions();
//outTransitionsTemp = ac.getOutgoingTransitions();
// 如果网关路线判断条件为空信息
// if (StringUtils.isEmpty(elString)) {
// 获取流程启动时设置的网关判断条件信息
elString = getGatewayCondition(activityImpl.getId(), processInstanceId);
// }
// 如果排他网关只有一条线路信息
if (outTransitions.size() == 1) {
return nextTaskDefinition((ActivityImpl) outTransitions.get(0).getDestination(), activityId,
elString, processInstanceId);
} else if (outTransitions.size() > 1) { // 如果排他网关有多条线路信息
for (PvmTransition tr1 : outTransitions) {
s = tr1.getProperty("conditionText"); // 获取排他网关线路判断条件信息
// 判断el表达式是否成立
if (isCondition(activityImpl.getId(), StringUtils.trim(s.toString()), elString)) {
return nextTaskDefinition((ActivityImpl) tr1.getDestination(), activityId, elString,
processInstanceId);
}
}
}
} else {
// 获取节点所有流向线路信息
List outTransitions = activityImpl.getOutgoingTransitions();
List outTransitionsTemp = null;
for (PvmTransition tr : outTransitions) {
ac = tr.getDestination(); // 获取线路的终点节点
// 如果流向线路为排他网关
if ("exclusiveGateway".equals(ac.getProperty("type"))) {
outTransitionsTemp = ac.getOutgoingTransitions();
// 如果网关路线判断条件为空信息
if (StringUtils.isEmpty(elString)) {
// 获取流程启动时设置的网关判断条件信息
elString = getGatewayCondition(ac.getId(), processInstanceId);
}
// 如果排他网关只有一条线路信息
if (outTransitionsTemp.size() == 1) {
return nextTaskDefinition((ActivityImpl) outTransitionsTemp.get(0).getDestination(), activityId,
elString, processInstanceId);
} else if (outTransitionsTemp.size() > 1) { // 如果排他网关有多条线路信息
for (PvmTransition tr1 : outTransitionsTemp) {
s = tr1.getProperty("conditionText"); // 获取排他网关线路判断条件信息
// 判断el表达式是否成立
if (isCondition(ac.getId(), StringUtils.trim(s.toString()), elString)) {
return nextTaskDefinition((ActivityImpl) tr1.getDestination(), activityId, elString,
processInstanceId);
}
}
}
} else if ("userTask".equals(ac.getProperty("type"))) {
return ((UserTaskActivityBehavior) ((ActivityImpl) ac).getActivityBehavior()).getTaskDefinition();
} else {
}
}
return null;
}
return null;
}
/**
* 查询流程启动时设置排他网关判断条件信息
*
* @param gatewayId 排他网关Id信息, 流程启动时设置网关路线判断条件key为网关Id信息
* @param processInstanceId 流程实例Id信息
* @return
*/
public String getGatewayCondition(String gatewayId, String processInstanceId) {
Execution execution = runtimeService.createExecutionQuery().processInstanceId(processInstanceId).singleResult();
Object object = runtimeService.getVariable(execution.getId(), gatewayId);
return object == null ? "" : object.toString();
}
/**
* 根据key和value判断el表达式是否通过信息
*
* @param key el表达式key信息
* @param el el表达式信息
* @param value el表达式传入值信息
* @return
*/
public boolean isCondition(String key, String el, String value) {
ExpressionFactory factory = new ExpressionFactoryImpl();
SimpleContext context = new SimpleContext();
context.setVariable(key, factory.createValueExpression(value, String.class));
ValueExpression e = factory.createValueExpression(context, el, boolean.class);
return (Boolean) e.getValue(context);
}
//项目关闭
public Boolean isJudgeItemClose(Disclose disclose) {
Boolean flag = false;
if (null != disclose.getChannel() && disclose.getChannel().equals("无")) {//施工通道
flag = true;
}
if (null != disclose.getHiddenDanger() && disclose.getHiddenDanger().equals("有")) {
flag = true;
}
if (null != disclose.getInfluenceConstruction() && disclose.getInfluenceConstruction().equals("有")) {
flag = true;
}
if (null != disclose.getProjectRepetition() && disclose.getProjectRepetition().equals("是")) {
flag = true;
}
if (null != disclose.getImplemented() && disclose.getImplemented().equals("是")) {
flag = true;
}
if (null != disclose.getTransformer() && disclose.getTransformer().equals("有")) {
flag = true;
}
//必要性说明
// if (null!=disclose.getTransformer()&&disclose.getTransformer().equals("有")){
// flag =true;
// }
return flag;
}
//设计变更
public Boolean isJudgeDesign(Disclose disclose) {
Boolean flag = false;
if (null != disclose.getLineName() && disclose.getLineName().equals("否")) {
flag = true;
}
if (null != disclose.getQuantities() && disclose.getQuantities().equals("否")) {
flag = true;
}
if (null != disclose.getRodNumber() && disclose.getRodNumber().equals("否")) {
flag = true;
}
return flag;
}
public Boolean isJudgeDeal(Disclose disclose) {
Boolean flag = false;
if (null != disclose.getAdministrationType()) {
if (disclose.getAdministrationType().contains("民事证处") ||
disclose.getAdministrationType().contains("行政证处") ||
disclose.getAdministrationType().contains("农村证处")) {
flag = true;
}
}
// if (null!)
return flag;
}
public String newJudgeDeal(Disclose disclose) {
String flag = "init";
String a = "";
if (null != disclose.getAdministrationType()) {
if (disclose.getAdministrationType().contains("民事政处") || disclose.getAdministrationType().contains("农村政处")) {
flag = "民事农村";
} else if (disclose.getAdministrationType().indexOf("城区道路") >= 0) {
flag = "行政";
}
}
// if (null!)
return flag;
}
/**
* 保存审核意见
*
* @param act
*/
@Transactional(readOnly = false)
public void pickIng(Act act) {
// 设置意见
act.setComment(("yes".equals(act.getFlag()) ? "[同意] " : "[驳回] ") + act.getComment());
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
// 提交流程任务
Map vars = Maps.newHashMap();
vars.put("pass", "yes".equals(act.getFlag()) ? true : false);
Project user = MyActiviUtils.findWZUser(act.getProcInsId());
vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitLeader()).getLoginName());
// complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 保存审核意见
*
* @param act
*/
@Transactional(readOnly = false)
public void managerExam(Act act) {
// 设置意见
act.setComment(("yes".equals(act.getFlag()) ? "[同意] " : "[驳回] ") + act.getComment());
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
ShowList showList = new ShowList();
showList.setAct(act);
List newTemList = showListService.findNewTemList(showList);
pickIngService.processList(newTemList);
Project wzUser = MyActiviUtils.findWZUser(act.getProcInsId());
// 提交流程任务
Map vars = Maps.newHashMap();
vars.put("pass", "yes".equals(act.getFlag()) ? true : false);
vars.put("manager", UserUtils.getByUserName(wzUser.getConstructionUnitLeader()).getLoginName());
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 保存审核意见
*
* @param act
*/
@Transactional(readOnly = false)
public void constructionLeader(Act act) {
String flag = act.getFlag();
// 设置意见
act.setComment(("yes".equals(flag) ? "[同意] " : "[驳回] ") + act.getComment());
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
// 提交流程任务
Map vars = Maps.newHashMap();
vars.put("pass", "yes".equals(flag) ? true : false);
Project user = MyActiviUtils.findWZUser(act.getProcInsId());
String loginName = UserUtils.getByUserName(user.getConstructionUnitRole()).getLoginName();
String loginName1 = UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName();
vars.put("manager", "yes".equals(flag) ? loginName : loginName1);
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 施工单位物资专职审核
*
* @param act
*/
@Transactional(readOnly = false)
public void fullExamine(Act act) {
String flag = act.getFlag();
// 设置意见
act.setComment(("yes".equals(flag) ? "[同意] " : "[驳回] ") + act.getComment());
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
// 提交流程任务
Map vars = Maps.newHashMap();
vars.put("pass", "yes".equals(flag) ? true : false);
Project user = MyActiviUtils.findWZUser(act.getProcInsId());
String loginName = UserUtils.getByUserName(user.getProjectManageRole()).getLoginName();
String loginName1 = UserUtils.getByUserName(user.getConstructionUnitLeader()).getLoginName();
vars.put("manager", "yes".equals(flag) ? loginName : loginName1);
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 项目中心领导审核领料单
*
* @param act
*/
@Transactional(readOnly = false)
public void leaderExamine(Act act) {
String flag = act.getFlag();
// 设置意见
act.setComment(("yes".equals(flag) ? "[同意] " : "[驳回] ") + act.getComment());
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
// 提交流程任务
Map vars = Maps.newHashMap();
if ("yes".equals(flag)) {
showListService.updateManagerTime(act.getProcInsId());
}
vars.put("pass", "yes".equals(flag) ? true : false);
Project user = MyActiviUtils.findWZUser(act.getProcInsId());
String loginName = UserUtils.getByUserName(user.getDistributionMaterials()).getLoginName();
vars.put("manager", "yes".equals(flag) ? "" : loginName);
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 配网项目经理审核领料单
*
* @param act
*/
@Transactional(readOnly = false)
public void managerAudit(Act act) {
String flag = act.getFlag();
// 设置意见
act.setComment(("yes".equals(flag) ? "[同意] " : "[驳回] ") + act.getComment());
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
// 提交流程任务
Map vars = Maps.newHashMap();
vars.put("pass", "yes".equals(flag) ? true : false);
Project user = MyActiviUtils.findWZUser(act.getProcInsId());
String loginName = UserUtils.getByUserName(user.getDistributionMaterials()).getLoginName();
String loginName1 = UserUtils.getByUserName(user.getProjectManageRole()).getLoginName();
vars.put("manager", "yes".equals(flag) ? loginName : loginName1);
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 配网物资专职审核领料单
*
* @param act
*/
@Transactional(readOnly = false)
public void netExamine(Act act) {
String flag = act.getFlag();
// 设置意见
act.setComment(("yes".equals(flag) ? "[同意] " : "[驳回] ") + act.getComment());
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
// 提交流程任务
Map vars = Maps.newHashMap();
vars.put("pass", "yes".equals(flag) ? true : false);
Project user = MyActiviUtils.findWZUser(act.getProcInsId());
String loginName = UserUtils.getByUserName(user.getManagementLeader()).getLoginName();
String loginName1 = UserUtils.getByUserName(user.getProjectManageRole()).getLoginName();
vars.put("manager", "yes".equals(flag) ? loginName : loginName1);
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 保存审核意见
*
* @param act
*/
@Transactional(readOnly = false)
public void auditDrawings(Act act) {
// 设置意见
act.setComment(("yes".equals(act.getFlag()) ? "[同意] " : "[驳回] ") + act.getComment());
act.preUpdate();
String flag = act.getFlag();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
// 提交流程任务
Map vars = Maps.newHashMap();
vars.put("pass", "yes".equals(flag) ? true : false);
Project user = MyActiviUtils.findUser(act.getProcInsId());
if ("yes".equals(flag)) {
vars.put("design", UserUtils.getByUserName(user.getDesignUnitManage()).getLoginName());
} else {
vars.put("design", UserUtils.getByUserName(user.getThroughResearchRole()).getLoginName());
}
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 保存审核意见
*
* @param act
*/
@Transactional(readOnly = false)
public void applicationAudit(Act act) {
// 设置意见
act.setComment(("yes".equals(act.getFlag()) ? "[同意] " : "[驳回] ") + act.getComment());
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
// 提交流程任务
Map vars = Maps.newHashMap();
String info = "";
//选择项目发起请求
String flag = act.getFlag();
String procInsId = act.getProcInsId();
Project nameByInsID = constructionService.findNameByInsID(procInsId);
if ("yes".equals(flag)) {
PickApplication pickApplication = new PickApplication();
pickApplication.setProjectId(nameByInsID.getId());
info = nameByInsID.getRequireName() + "项目通过审核";
showListService.projectUpdate(pickApplication);
} else {
info = nameByInsID.getRequireName() + "项目没有通过审核";
}
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 保存审核意见
*
* @param act
*/
@Transactional(readOnly = false)
public void contructionManager(Act act) {
// 设置意见
act.setComment(("yes".equals(act.getFlag()) ? "[同意] " : "[驳回] ") + act.getComment());
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
// 提交流程任务
Map vars = Maps.newHashMap();
String status = "";
//选择项目发起请求
String flag = act.getFlag();
String procInsId = act.getProcInsId();
Project project = constructionService.findNameByInsID(procInsId);
Advance advance = new Advance();
advance.setId(project.getId());
if ("yes".equals(flag)) {
status = project.getRequireName() + "提前施工通过";
advance.setPreConstruction(1);
} else {
status = project.getRequireName() + "提前施工未通过";
advance.setPreConstruction(0);
}
advanceService.updatePreConstruction(advance);
// act.setComment(("yes".equals(act.getFlag())?"[同意] ":"[驳回] ")+act.getComment());
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 施工单位项目经理土建开工流程提交文件
*
* @param act
*/
@Transactional(readOnly = false)
public void nonPowerStartTask(Act act) {
// 设置意见
act.setComment(("yes".equals(act.getFlag()) ? "[同意] " : "[驳回] ") + act.getComment());
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
// 提交流程任务
Map vars = Maps.newHashMap();
//根据流程实例id查询项目的相关信息
Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
//根据项目设置的流转人员,流转对应人员
vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 施工单位项目经理电气开工流程提交文件
*
* @param act
*/
@Transactional(readOnly = false)
public void electricalStartTask(Act act) {
// 设置意见
act.setComment(("yes".equals(act.getFlag()) ? "[同意] " : "[驳回] ") + act.getComment());
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
// 提交流程任务
Map vars = Maps.newHashMap();
//根据流程实例id查询项目的相关信息
Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
//根据项目设置的流转人员,流转对应人员
vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 施工单位项目经理土建施工中流程提交文件
*
* @param act
*/
@Transactional(readOnly = false)
public void nonPowerMiddleTask(Act act) {
// 设置意见
act.setComment(("yes".equals(act.getFlag()) ? "[同意] " : "[驳回] ") + act.getComment());
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
// 提交流程任务
Map vars = Maps.newHashMap();
//根据流程实例id查询项目的相关信息
Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
//根据项目设置的流转人员,流转对应人员
vars.put("manager", UserUtils.getByUserName(user.getRunUnitRole()).getLoginName());
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 施工单位项目经理电气施工中流程提交文件
*
* @param act
*/
@Transactional(readOnly = false)
public void electricalMiddleTask(Act act) {
// 设置意见
act.setComment(("yes".equals(act.getFlag()) ? "[同意] " : "[驳回] ") + act.getComment());
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
// 提交流程任务
Map vars = Maps.newHashMap();
//根据流程实例id查询项目的相关信息
Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
//根据项目设置的流转人员,流转对应人员
vars.put("manager", UserUtils.getByUserName(user.getRunUnitRole()).getLoginName());
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 电气竣工流程
*
* @param act
*/
@Transactional(readOnly = false)
public void electricalEndTask(Act act) {
// 设置意见
act.setComment(("yes".equals(act.getFlag()) ? "[同意] " : "[驳回] ") + act.getComment());
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
// 提交流程任务
Map vars = Maps.newHashMap();
//根据流程实例id查询项目的相关信息
Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
//根据项目设置的流转人员,流转对应人员
vars.put("manager", UserUtils.getByUserName(user.getRunUnitRole()).getLoginName());
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 审核土建施工流程
*
* @param act
*/
@Transactional(readOnly = false)
public void nonRePowerMiddleTask(Act act) {
String flag = act.getFlag();
// 设置意见
act.setComment(("yes".equals(flag) ? "[没有问题] " : "[纯在问题] ") + act.getComment());
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
// 提交流程任务
Map vars = Maps.newHashMap();
//根据流程实例id查询项目的相关信息
Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
vars.put("pass", "yes".equals(flag) ? true : false);
if ("yes".equals(flag)) {
//根据项目设置的流转人员,流转对应人员
vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
} else {
//根据项目设置的流转人员,流转对应人员
vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
}
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 审核土建竣工流程
*
* @param act
*/
@Transactional(readOnly = false)
public void nonRePowerEndTask(Act act) {
String flag = act.getFlag();
// 设置意见
act.setComment(("yes".equals(flag) ? "[没有问题] " : "[纯在问题] ") + act.getComment());
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
// 提交流程任务
Map vars = Maps.newHashMap();
//根据流程实例id查询项目的相关信息
Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
vars.put("pass", "yes".equals(flag) ? true : false);
if ("yes".equals(flag)) {
//根据项目设置的流转人员,流转对应人员
vars.put("manager", UserUtils.getByUserName(user.getProjectManageRole()).getLoginName());
} else {
//根据项目设置的流转人员,流转对应人员
vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
}
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 审核涉电施工流程
*
* @param act
*/
@Transactional(readOnly = false)
public void rePowerEnd(Act act) {
String flag = act.getFlag();
// 设置意见
act.setComment(("yes".equals(flag) ? "[没有问题] " : "[纯在问题] ") + act.getComment());
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
// 提交流程任务
Map vars = Maps.newHashMap();
//根据流程实例id查询项目的相关信息
Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
vars.put("pass", "yes".equals(flag) ? true : false);
if ("yes".equals(flag)) {
//根据项目设置的流转人员,流转对应人员
vars.put("manager", UserUtils.getByUserName(user.getProjectManageRole()).getLoginName());
} else {
//根据项目设置的流转人员,流转对应人员
vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
}
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 审核电气竣工流程
*
* @param act
*/
@Transactional(readOnly = false)
public void reElectricalEndTask(Act act) {
String flag = act.getFlag();
// 设置意见
act.setComment(("yes".equals(flag) ? "[没有问题] " : "[纯在问题] ") + act.getComment());
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
// 提交流程任务
Map vars = Maps.newHashMap();
//根据流程实例id查询项目的相关信息
Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
vars.put("pass", "yes".equals(flag) ? true : false);
if ("yes".equals(flag)) {
//根据项目设置的流转人员,流转对应人员
vars.put("manager", UserUtils.getByUserName(user.getProjectManageRole()).getLoginName());
} else {
//根据项目设置的流转人员,流转对应人员
vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
}
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 审核土建施工流程
*
* @param act
*/
@Transactional(readOnly = false)
public void reElectricalMiddleTask(Act act) {
String flag = act.getFlag();
// 设置意见
act.setComment(("yes".equals(flag) ? "[没有问题] " : "[纯在问题] ") + act.getComment());
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
// 提交流程任务
Map vars = Maps.newHashMap();
//根据流程实例id查询项目的相关信息
Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
vars.put("pass", "yes".equals(flag) ? true : false);
if ("yes".equals(flag)) {
//根据项目设置的流转人员,流转对应人员
vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
} else {
//根据项目设置的流转人员,流转对应人员
vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
}
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 土建竣工流程
*
* @param act
*/
@Transactional(readOnly = false)
public void nonPowerEndTask(Act act) {
// 设置意见
act.setComment(("yes".equals(act.getFlag()) ? "[同意] " : "[驳回] ") + act.getComment());
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
// 提交流程任务
Map vars = Maps.newHashMap();
//根据流程实例id查询项目的相关信息
Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
//根据项目设置的流转人员,流转对应人员
vars.put("manager", UserUtils.getByUserName(user.getRunUnitRole()).getLoginName());
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 配网项目经理判断是否完成土建工作
*
* @param act
*/
@Transactional(readOnly = false)
public void reviewNonPower(Act act) {
String flag = act.getFlag();
// 设置意见
act.setComment(("yes".equals(flag) ? "[同意] " : "[驳回] ") + act.getComment());
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
MaterialModule byProcInsId = materialModuleService.findByProcInsId(act.getProcInsId());
Integer nonPower = byProcInsId.getNonPower();
Integer electrical = byProcInsId.getElectrical();
Integer power = byProcInsId.getPower();
// 提交流程任务
Map vars = Maps.newHashMap();
if (nonPower == 0 && electrical == 0 && power == 1) {
vars.put("contain", true);
} else if (nonPower == 0 && electrical == 0 && power == 0) {
vars.put("contain", false);
}
//根据流程实例id查询项目的相关信息
Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
if ("yes".equals(flag)) {
//根据项目设置的流转人员,流转对应人员
vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
} else {
//根据项目设置的流转人员,流转对应人员
vars.put("manager", UserUtils.getByUserName(user.getProjectManageRole()).getLoginName());
}
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 配网项目经理判断是否完成电气工作
*
* @param act
*/
@Transactional(readOnly = false)
public void reviewElectrical(Act act) {
String flag = act.getFlag();
// 设置意见
act.setComment(("yes".equals(flag) ? "[同意] " : "[驳回] ") + act.getComment());
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
MaterialModule byProcInsId = materialModuleService.findByProcInsId(act.getProcInsId());
Integer nonPower = byProcInsId.getNonPower();
Integer electrical = byProcInsId.getElectrical();
Integer power = byProcInsId.getPower();
// 提交流程任务
Map vars = Maps.newHashMap();
if (nonPower == 0 && electrical == 0 && power == 1) {
vars.put("contain", true);
} else if (nonPower == 0 && electrical == 0 && power == 0) {
vars.put("contain", false);
}
//根据流程实例id查询项目的相关信息
Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
if ("yes".equals(flag)) {
//根据项目设置的流转人员,流转对应人员
vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
} else {
//根据项目设置的流转人员,流转对应人员
vars.put("manager", UserUtils.getByUserName(user.getProjectManageRole()).getLoginName());
}
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 施工单位项目经理判断是否包含涉电工作
*
* @param act
*/
@Transactional(readOnly = false)
public void managerWhetherTask(Act act) {
String flag = act.getFlag();
// 设置意见
act.setComment(("yes".equals(flag) ? "[同意] " : "[驳回] ") + act.getComment());
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
// 提交流程任务
Map vars = Maps.newHashMap();
//根据流程实例id查询项目的相关信息
Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
if ("yes".equals(flag)) {
//根据项目设置的流转人员,流转对应人员
vars.put("manager", user.getConstructionUnitManage());
vars.put("yes", true);
vars.put("no", false);
} else {
//根据项目设置的流转人员,流转对应人员
vars.put("yes", false);
vars.put("no", true);
}
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 施工单位项目经理 涉电开工流程提交文件
*
* @param act
*/
@Transactional(readOnly = false)
public void PowerStartTask(Act act) {
// 设置意见
act.setComment(("yes".equals(act.getFlag()) ? "[同意] " : "[驳回] ") + act.getComment());
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
// 提交流程任务
Map vars = Maps.newHashMap();
//根据流程实例id查询项目的相关信息
Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
//根据项目设置的流转人员,流转对应人员
vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 涉电竣工流程
*
* @param act
*/
@Transactional(readOnly = false)
public void PowerEndTask(Act act) {
// 设置意见
act.setComment(("yes".equals(act.getFlag()) ? "[同意] " : "[驳回] ") + act.getComment());
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
// 提交流程任务
Map vars = Maps.newHashMap();
//根据流程实例id查询项目的相关信息
Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
//根据项目设置的流转人员,流转对应人员
vars.put("manager", UserUtils.getByUserName(user.getRunUnitRole()).getLoginName());
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
/**
* 配网项目经理判断涉电工作
*
* @param act
*/
@Transactional(readOnly = false)
public void PowerWhetherTask(Act act) {
Map vars = Maps.newHashMap();
//根据流程实例id查询项目的相关信息
Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
String flag = act.getFlag();
if ("finish".equals(flag)) {
act.setComment("[无二次涉电]" + act.getComment());
vars.put("finish", true);
vars.put("second", false);
vars.put("no", false);
} else if ("second".equals(flag)) {
act.setComment("[纯在二次涉电]" + act.getComment());
vars.put("finish", false);
vars.put("second", true);
vars.put("no", false);
vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
} else {
act.setComment("[审核不通过]" + act.getComment());
vars.put("finish", false);
vars.put("second", false);
vars.put("no", true);
vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
}
// 设置意见
act.preUpdate();
// 对不同环节的业务逻辑进行操作
String taskDefKey = act.getTaskDefKey();
// 提交流程任务
complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
}
}