提交 7eed46b4 编写于 作者: O o2null

Merge branch 'fix/fetch' into 'develop'

修复v2add, v2reset 返回值

See merge request o2oa/o2oa!677
......@@ -42,27 +42,10 @@ public class RecordBuilder {
Business business = new Business(emc);
Record rec = new Record(workLog, task);
rec.setType(recordType);
// 获取在record中需要记录的task中身份所有的组织职务.
rec.getProperties()
.setUnitDutyList(business.organization().unitDuty().listNameWithIdentity(task.getIdentity()));
// 记录处理身份的排序号
rec.getProperties().setIdentityOrderNumber(
business.organization().identity().getOrderNumber(task.getIdentity(), Integer.MAX_VALUE));
// 记录处理身份所在组织的排序号
rec.getProperties().setUnitOrderNumber(
business.organization().unit().getOrderNumber(task.getUnit(), Integer.MAX_VALUE));
// 记录处理身份所在组织层级组织排序号
rec.getProperties()
.setUnitLevelOrderNumber(business.organization().unit().getLevelOrderNumber(task.getUnit(), ""));
// 校验workCompleted,如果存在,那么说明工作已经完成,标识状态为已经完成.
WorkCompleted workCompleted = emc.firstEqual(WorkCompleted.class, WorkCompleted.job_FIELDNAME,
task.getJob());
if (null != workCompleted) {
rec.setCompleted(true);
rec.setWorkCompleted(workCompleted.getId());
}
rec.getProperties().setElapsed(
Config.workTime().betweenMinutes(rec.getProperties().getStartTime(), rec.getRecordTime()));
checkIfWorkAlreadyCompleted(business, rec, workLog.getJob());
fillIdentityAndUnit(business, rec);
elapsed(rec);
TaskCompleted taskCompleted = emc.find(taskCompletedId, TaskCompleted.class);
if (null != taskCompleted) {
// 处理完成后在重新写入待办信息
......@@ -80,25 +63,16 @@ public class RecordBuilder {
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
Business business = new Business(emc);
Record rec = new Record(workLog);
// 校验workCompleted,如果存在,那么说明工作已经完成,标识状态为已经完成.
WorkCompleted workCompleted = emc.firstEqual(WorkCompleted.class, WorkCompleted.job_FIELDNAME,
workLog.getJob());
if (null != workCompleted) {
rec.setCompleted(true);
rec.setWorkCompleted(workCompleted.getId());
}
rec.setPerson(effectivePerson.getDistinguishedName());
rec.setType(recordType);
rec.setArrivedActivity(destinationActivity.getId());
rec.setArrivedActivityAlias(destinationActivity.getAlias());
rec.setArrivedActivityName(destinationActivity.getName());
rec.setArrivedActivityType(destinationActivity.getActivityType());
rec.getProperties().setElapsed(
Config.workTime().betweenMinutes(rec.getProperties().getStartTime(), rec.getRecordTime()));
/* 需要记录处理人,先查看当前用户有没有之前处理过的信息,如果没有,取默认身份 */
// 校验workCompleted,如果存在,那么说明工作已经完成,标识状态为已经完成.
checkIfWorkAlreadyCompleted(business, rec, workLog.getJob());
// 需要记录处理人,先查看当前用户有没有之前处理过的信息,如果没有,取默认身份
TaskCompleted existTaskCompleted = emc.firstEqualAndEqual(TaskCompleted.class, TaskCompleted.job_FIELDNAME,
workLog.getJob(), TaskCompleted.person_FIELDNAME, effectivePerson.getDistinguishedName());
rec.setPerson(effectivePerson.getDistinguishedName());
if (null != existTaskCompleted) {
rec.setIdentity(existTaskCompleted.getIdentity());
rec.setUnit(existTaskCompleted.getUnit());
......@@ -107,11 +81,42 @@ public class RecordBuilder {
business.organization().identity().getMajorWithPerson(effectivePerson.getDistinguishedName()));
rec.setUnit(business.organization().unit().getWithIdentity(rec.getIdentity()));
}
rec.setPerson(effectivePerson.getDistinguishedName());
fillIdentityAndUnit(business, rec);
elapsed(rec);
setNextManualListAndNextManualTaskIdentityList(business, newlyTaskIds, rec);
return rec;
}
}
private static void elapsed(Record rec) throws Exception {
rec.getProperties()
.setElapsed(Config.workTime().betweenMinutes(rec.getProperties().getStartTime(), rec.getRecordTime()));
}
private static void checkIfWorkAlreadyCompleted(Business business, Record rec, String job) throws Exception {
WorkCompleted workCompleted = business.entityManagerContainer().firstEqual(WorkCompleted.class,
WorkCompleted.job_FIELDNAME, job);
if (null != workCompleted) {
rec.setCompleted(true);
rec.setWorkCompleted(workCompleted.getId());
}
}
private static void fillIdentityAndUnit(Business business, Record rec) throws Exception {
// 获取在record中需要记录的task中身份所有的组织职务.
rec.getProperties().setUnitDutyList(business.organization().unitDuty().listNameWithIdentity(rec.getIdentity()));
// 记录处理身份的排序号
rec.getProperties().setIdentityOrderNumber(
business.organization().identity().getOrderNumber(rec.getIdentity(), Integer.MAX_VALUE));
// 记录处理身份所在组织的排序号
rec.getProperties()
.setUnitOrderNumber(business.organization().unit().getOrderNumber(rec.getUnit(), Integer.MAX_VALUE));
// 记录处理身份所在组织层级组织排序号
rec.getProperties()
.setUnitLevelOrderNumber(business.organization().unit().getLevelOrderNumber(rec.getUnit(), ""));
}
private static void setNextManualListAndNextManualTaskIdentityList(Business business, List<String> newlyTaskIds,
Record rec) throws Exception {
Set<String> identities = new ListOrderedSet<>();
......
......@@ -7,7 +7,7 @@ class ExceptionEmptyOption extends LanguagePromptException {
private static final long serialVersionUID = -5515077418025884395L;
ExceptionEmptyOption() {
super("otpion empty.");
super("人员身份为空或者均已经存在办理人中.");
}
}
......@@ -6,7 +6,6 @@ import java.util.Iterator;
import java.util.List;
import java.util.Optional;
import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -53,11 +52,11 @@ public class V2Add extends BaseAction {
// 当前提交的串号
private final String series = StringTools.uniqueToken();
// 新创建的待办标识列表
private List<String> newTaskIds = new ArrayList<>();
// private List<String> newTaskIds = new ArrayList<>();
// 当前待办转成已办得到的已办id
private String taskCompletedId;
// 已经存在的待办标识列表
private List<String> existTaskIds = new ArrayList<>();
// private List<String> existTaskIds = new ArrayList<>();
// 输入
private Wi wi;
// 当前执行用户
......@@ -89,19 +88,25 @@ public class V2Add extends BaseAction {
this.processingWork(this.task);
List<String> newTaskIds = new ArrayList<>();
// 加签计算所有处理人即可,不需要去重计算现在已有的task
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
this.newTaskIds = ListUtils.subtract(emc.idsEqualAndEqual(Task.class, Task.job_FIELDNAME, task.getJob(),
Task.work_FIELDNAME, task.getWork()), existTaskIds);
newTaskIds = emc.idsEqualAndEqual(Task.class, Task.job_FIELDNAME, task.getJob(), Task.work_FIELDNAME,
task.getWork());
}
this.rec = RecordBuilder.ofTaskProcessing(Record.TYPE_TASKADD, workLog, task, taskCompletedId, newTaskIds);
// 加签也记录流程意见和路由决策
this.rec.getProperties().setOpinion(wi.getOpinion());
this.rec.getProperties().setRouteName(wi.getRouteName());
RecordBuilder.processing(rec);
if (StringUtils.isNotEmpty(taskCompletedId)) {
TaskCompletedBuilder.updateNextTaskIdentity(this.taskCompletedId,
rec.getProperties().getNextManualTaskIdentityList(), task.getJob());
}
TaskBuilder.updatePrevTaskIdentity(this.newTaskIds, this.taskCompleteds, this.task);
TaskBuilder.updatePrevTaskIdentity(newTaskIds, this.taskCompleteds, this.task);
return result();
}
......@@ -136,8 +141,8 @@ public class V2Add extends BaseAction {
if (BooleanUtils.isNotTrue(control.getAllowReset())) {
throw new ExceptionAccessDenied(effectivePerson, task);
}
this.existTaskIds = emc.idsEqualAndEqual(Task.class, Task.job_FIELDNAME, task.getJob(), Task.work_FIELDNAME,
task.getWork());
// this.existTaskIds = emc.idsEqualAndEqual(Task.class, Task.job_FIELDNAME, task.getJob(), Task.work_FIELDNAME,
// task.getWork());
this.taskCompleteds = business.entityManagerContainer().listEqual(TaskCompleted.class,
TaskCompleted.activityToken_FIELDNAME, task.getActivityToken());
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册