提交 0385248a 编写于 作者: O o2null

Merge branch '新版维护接口优化' into 'develop'

新版流程实例维护接口优化

See merge request o2oa/o2oa!875
......@@ -35,7 +35,7 @@ class ActionChangeOrderNumber extends BaseAction {
if (null == attachment) {
throw new ExceptionEntityNotExist(id, Attachment.class);
}
if (!business.readableWithWorkOrWorkCompleted(effectivePerson, workId)) {
if (!business.editable(effectivePerson, attachment.getJob())) {
throw new ExceptionAccessDenied(effectivePerson);
}
List<String> identities = business.organization().identity().listWithPerson(effectivePerson);
......
......@@ -56,9 +56,6 @@ class ActionUploadWithUrl extends BaseAction {
if (StringUtils.isEmpty(wi.getSite())) {
throw new ExceptionEntityFieldEmpty(Attachment.class, wi.getSite());
}
if (!business.readableWithWorkOrWorkCompleted(effectivePerson, wi.getWorkId())) {
throw new ExceptionAccessDenied(effectivePerson, wi.getWorkId());
}
String person = effectivePerson.getDistinguishedName();
if (StringUtils.isNotEmpty(wi.getPerson()) && business.canManageApplication(effectivePerson, null)) {
Person p = business.organization().person().getObject(wi.getPerson());
......@@ -89,6 +86,9 @@ class ActionUploadWithUrl extends BaseAction {
if (attachment == null) {
throw new ExceptionEntityNotExist(wi.getWorkId());
}
if (!business.editable(effectivePerson, attachment.getJob())) {
throw new ExceptionAccessDenied(effectivePerson, wi.getWorkId());
}
byte[] bytes = CipherConnectionAction.getBinary(false, wi.getFileUrl());
if (bytes == null || bytes.length == 0) {
throw new IllegalStateException("can not down file from url.");
......
......@@ -51,10 +51,7 @@ class ActionUploadWithWorkCompleted extends BaseAction {
if (ends.isEmpty()) {
throw new ExceptionEndNotExist(process.getId());
}
if ((effectivePerson.isNotManager())
&& (!business.organization().person().hasRole(effectivePerson,
OrganizationDefinition.ProcessPlatformManager, OrganizationDefinition.Manager))
&& effectivePerson.isNotPerson(application.getControllerList())) {
if (!business.canManageApplicationOrProcess(effectivePerson, application, process)) {
throw new ExceptionAccessDenied(effectivePerson);
}
if (StringUtils.isEmpty(fileName)) {
......
......@@ -75,7 +75,7 @@ class ActionUploadWorkInfo extends BaseAction {
workHtml = "<html><head></head><body>" + workHtml + "</body></html>";
}
}
String id = saveHtml(workId, flag, workHtml, effectivePerson.getDistinguishedName(), title,
String id = saveHtml(flag, workHtml, effectivePerson.getDistinguishedName(), title,
wi.getPageWidth(), business);
Wo wo = new Wo();
wo.setId(id);
......@@ -87,7 +87,7 @@ class ActionUploadWorkInfo extends BaseAction {
public static class Wo extends WoId {
}
private String saveHtml(String workId, String flag, String workHtml, String person, String title, Float pageWidth,
private String saveHtml(String flag, String workHtml, String person, String title, Float pageWidth,
Business business) {
try {
String name = "";
......
......@@ -10,6 +10,8 @@ import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import com.x.processplatform.core.entity.element.Application;
import com.x.processplatform.core.entity.element.Process;
import org.apache.commons.collections4.ListUtils;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang3.BooleanUtils;
......@@ -258,18 +260,16 @@ abstract class BaseAction extends StandardJaxrsAction {
public boolean control(Attachment attachment, EffectivePerson effectivePerson, List<String> identities,
List<String> units, Business business) throws Exception {
boolean value = false;
if (BooleanUtils.isTrue(business.canManageApplication(effectivePerson, null))) {
value = true;
} else if (effectivePerson.isPerson(attachment.getPerson())) {
if (effectivePerson.isPerson(attachment.getPerson())) {
value = true;
} else if (ListTools.isEmpty(attachment.getControllerUnitList())
&& ListTools.isEmpty(attachment.getControllerIdentityList())) {
value = true;
} else {
if (ListTools.containsAny(identities, attachment.getControllerIdentityList())
} else if (ListTools.containsAny(identities, attachment.getControllerIdentityList())
|| ListTools.containsAny(units, attachment.getControllerUnitList())) {
value = true;
}
} else if (BooleanUtils.isTrue(business.canManageApplicationOrProcess(effectivePerson, attachment.getApplication(), attachment.getProcess()))) {
value = true;
}
return value;
}
......@@ -302,7 +302,7 @@ abstract class BaseAction extends StandardJaxrsAction {
/**
* 判断附件是否符合大小、文件类型的约束
*
*
* @param size
* @param fileName
* @param callback
......
package com.x.processplatform.assemble.surface.jaxrs.serialnumber;
import com.google.gson.JsonElement;
import com.x.base.core.container.EntityManagerContainer;
import com.x.base.core.container.factory.EntityManagerContainerFactory;
import com.x.base.core.entity.JpaObject;
import com.x.base.core.entity.annotation.CheckPersistType;
import com.x.base.core.project.bean.WrapCopier;
import com.x.base.core.project.bean.WrapCopierFactory;
import com.x.base.core.project.exception.ExceptionAccessDenied;
import com.x.base.core.project.exception.ExceptionEntityNotExist;
import com.x.base.core.project.exception.ExceptionFieldEmpty;
import com.x.base.core.project.http.ActionResult;
import com.x.base.core.project.http.EffectivePerson;
import com.x.base.core.project.jaxrs.WoId;
import com.x.processplatform.assemble.surface.Business;
import com.x.processplatform.core.entity.content.SerialNumber;
import com.x.processplatform.core.entity.element.Application;
import com.x.processplatform.core.entity.element.Process;
import io.swagger.v3.oas.annotations.media.Schema;
import org.eclipse.jetty.util.StringUtil;
class ActionCreate extends BaseAction {
ActionResult<Wo> execute(EffectivePerson effectivePerson, JsonElement jsonElement) throws Exception {
ActionResult<Wo> result = new ActionResult<>();
Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
Business business = new Business(emc);
if(StringUtil.isBlank(wi.getProcess())){
throw new ExceptionFieldEmpty(SerialNumber.process_FIELDNAME);
}
if(wi.getSerial() == null){
throw new ExceptionFieldEmpty(SerialNumber.serial_FIELDNAME);
}
Process process = business.process().pick(wi.getProcess());
if (null == process) {
throw new ExceptionEntityNotExist(wi.getProcess());
}
Application application = business.application().pick(process.getApplication());
if (!business.canManageApplicationOrProcess(effectivePerson, application, process)) {
throw new ExceptionAccessDenied(effectivePerson);
}
SerialNumber serialNumber = Wi.copier.copy(wi);
serialNumber.setApplication(process.getApplication());
emc.beginTransaction(SerialNumber.class);
emc.persist(serialNumber, CheckPersistType.all);
emc.commit();
Wo wo = new Wo();
wo.setId(serialNumber.getId());
result.setData(wo);
}
return result;
}
@Schema(name = "com.x.processplatform.assemble.surface.jaxrs.serialnumber.ActionCreate$Wi")
public static class Wi extends SerialNumber {
private static final long serialVersionUID = 4466662676168979509L;
static WrapCopier<Wi, SerialNumber> copier = WrapCopierFactory.wi(Wi.class, SerialNumber.class, null,
JpaObject.FieldsUnmodify);
}
@Schema(name = "com.x.processplatform.assemble.surface.jaxrs.serialnumber.ActionCreate$Wo")
public static class Wo extends WoId {
}
}
......@@ -72,6 +72,23 @@ public class SerialNumberAction extends StandardJaxrsAction {
asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
}
@JaxrsMethodDescribe(value = "创建SerialNumber内容.", action = ActionCreate.class)
@POST
@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
@Consumes(MediaType.APPLICATION_JSON)
public void create(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
JsonElement jsonElement) {
ActionResult<ActionCreate.Wo> result = new ActionResult<>();
EffectivePerson effectivePerson = this.effectivePerson(request);
try {
result = new ActionCreate().execute(effectivePerson, jsonElement);
} catch (Exception e) {
logger.error(e, effectivePerson, request, null);
result.error(e);
}
asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result, jsonElement));
}
@JaxrsMethodDescribe(value = "更新SerialNumber内容.", action = ActionUpdate.class)
@PUT
@Path("{id}")
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册