From 1e20e7b3397f383248c34930b091c808174b1526 Mon Sep 17 00:00:00 2001 From: o2sword <171715986@qq.com> Date: Fri, 11 Sep 2020 17:34:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BE=85=E5=8A=9E=E3=80=81?= =?UTF-8?q?=E5=B7=B2=E5=8A=9E=E3=80=81=E5=BE=85=E9=98=85=E3=80=81=E5=B7=B2?= =?UTF-8?q?=E9=98=85=E7=A8=BD=E6=A0=B8=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../x/base/core/project/tools/DateTools.java | 2 +- .../surface/factory/content/ReadFactory.java | 10 +++ .../factory/content/TaskCompletedFactory.java | 15 ++-- .../surface/factory/content/TaskFactory.java | 10 +++ .../jaxrs/read/ActionManageListWithDate.java | 70 +++++++++++++++++ .../read/ActionManageListWithPerson.java | 45 +++++++++++ .../surface/jaxrs/read/ReadAction.java | 36 +++++++++ .../ActionManageListWithDate.java | 70 +++++++++++++++++ .../readcompleted/ReadCompletedAction.java | 18 +++++ .../task/ActionManageListWithDateHour.java | 75 +++++++++++++++++++ .../task/ActionManageListWithPerson.java | 44 +++++++++++ .../surface/jaxrs/task/TaskAction.java | 37 +++++++++ .../ActionManageListWithDateHour.java | 71 ++++++++++++++++++ .../taskcompleted/TaskCompletedAction.java | 19 +++++ .../center/schedule/CollectMarket.java | 12 +-- 15 files changed, 520 insertions(+), 14 deletions(-) create mode 100644 o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/read/ActionManageListWithDate.java create mode 100644 o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/read/ActionManageListWithPerson.java create mode 100644 o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/readcompleted/ActionManageListWithDate.java create mode 100644 o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/task/ActionManageListWithDateHour.java create mode 100644 o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/task/ActionManageListWithPerson.java create mode 100644 o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/taskcompleted/ActionManageListWithDateHour.java diff --git a/o2server/x_base_core_project/src/main/java/com/x/base/core/project/tools/DateTools.java b/o2server/x_base_core_project/src/main/java/com/x/base/core/project/tools/DateTools.java index 4cbbb482ad..74d7f10be8 100644 --- a/o2server/x_base_core_project/src/main/java/com/x/base/core/project/tools/DateTools.java +++ b/o2server/x_base_core_project/src/main/java/com/x/base/core/project/tools/DateTools.java @@ -562,7 +562,7 @@ public class DateTools { calendar.add(Calendar.DAY_OF_MONTH, dayAdjust ); } if ((null != hourAdjust) && (hourAdjust != 0)) { - calendar.add(Calendar.HOUR_OF_DAY, dayAdjust ); + calendar.add(Calendar.HOUR_OF_DAY, hourAdjust ); } if ((null != minuteAdjust) && (minuteAdjust != 0)) { calendar.add(Calendar.MINUTE, minuteAdjust ); diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/factory/content/ReadFactory.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/factory/content/ReadFactory.java index 4ac4f17c79..486e8d1867 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/factory/content/ReadFactory.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/factory/content/ReadFactory.java @@ -135,6 +135,16 @@ public class ReadFactory extends AbstractFactory { return em.createQuery(cq).getSingleResult(); } + public List listWithPersonObject(String person) throws Exception { + EntityManager em = this.entityManagerContainer().get(Read.class); + CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaQuery cq = cb.createQuery(Read.class); + Root root = cq.from(Read.class); + Predicate p = cb.equal(root.get(Read_.person), person); + cq.select(root).where(p); + return em.createQuery(cq).getResultList(); + } + /** * 统计指定人员的待阅数量 */ diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/factory/content/TaskCompletedFactory.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/factory/content/TaskCompletedFactory.java index 6d75db71e0..54df0d4ce8 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/factory/content/TaskCompletedFactory.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/factory/content/TaskCompletedFactory.java @@ -12,18 +12,13 @@ import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Root; -import org.apache.commons.lang3.StringUtils; - import com.x.base.core.project.tools.ListTools; import com.x.processplatform.assemble.surface.AbstractFactory; import com.x.processplatform.assemble.surface.Business; -import com.x.processplatform.core.entity.content.ProcessingType; import com.x.processplatform.core.entity.content.TaskCompleted; import com.x.processplatform.core.entity.content.TaskCompleted_; import com.x.processplatform.core.entity.content.Work; import com.x.processplatform.core.entity.content.WorkCompleted; -import com.x.processplatform.core.entity.content.WorkLog; -import com.x.processplatform.core.entity.element.ActivityType; public class TaskCompletedFactory extends AbstractFactory { @@ -125,6 +120,16 @@ public class TaskCompletedFactory extends AbstractFactory { return em.createQuery(cq).getSingleResult(); } + public List listWithPersonObject(String person) throws Exception { + EntityManager em = this.entityManagerContainer().get(TaskCompleted.class); + CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaQuery cq = cb.createQuery(TaskCompleted.class); + Root root = cq.from(TaskCompleted.class); + Predicate p = cb.equal(root.get(TaskCompleted_.person), person); + cq.select(root).where(p); + return em.createQuery(cq).getResultList(); + } + /** * 统计指定人员已办数量 */ diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/factory/content/TaskFactory.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/factory/content/TaskFactory.java index 9efa8af65f..277ca1efd6 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/factory/content/TaskFactory.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/factory/content/TaskFactory.java @@ -122,6 +122,16 @@ public class TaskFactory extends AbstractFactory { return em.createQuery(cq).getResultList(); } + public List listWithPersonObject(String person) throws Exception { + EntityManager em = this.entityManagerContainer().get(Task.class); + CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaQuery cq = cb.createQuery(Task.class); + Root root = cq.from(Task.class); + Predicate p = cb.equal(root.get(Task_.person), person); + cq.select(root).where(p); + return em.createQuery(cq).getResultList(); + } + /** * 统计指定人员所有的待办数量 */ diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/read/ActionManageListWithDate.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/read/ActionManageListWithDate.java new file mode 100644 index 0000000000..e613f8737a --- /dev/null +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/read/ActionManageListWithDate.java @@ -0,0 +1,70 @@ +package com.x.processplatform.assemble.surface.jaxrs.read; + +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.project.bean.WrapCopier; +import com.x.base.core.project.bean.WrapCopierFactory; +import com.x.base.core.project.http.ActionResult; +import com.x.base.core.project.http.EffectivePerson; +import com.x.base.core.project.tools.DateTools; +import com.x.processplatform.assemble.surface.Business; +import com.x.processplatform.core.entity.content.Read; +import com.x.processplatform.core.entity.content.Read_; +import org.apache.commons.lang3.BooleanUtils; + +import javax.persistence.EntityManager; +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Predicate; +import javax.persistence.criteria.Root; +import java.util.Date; +import java.util.List; + +class ActionManageListWithDate extends BaseAction { + + ActionResult> execute(EffectivePerson effectivePerson, String date) + throws Exception { + try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) { + Business business = new Business(emc); + ActionResult> result = new ActionResult<>(); + if (BooleanUtils.isTrue(business.canManageApplication(effectivePerson, null))) { + if(DateTools.isDateTimeOrDate(date)){ + Date startTime = DateTools.floorDate(DateTools.parse(date), 0); + Date endTime = DateTools.getAdjustTimeDay(startTime, 1, 0, 0, 0); + List os = this.list(business, startTime, endTime); + List wos = Wo.copier.copy(os); + result.setData(wos); + result.setCount((long)wos.size()); + } + } + return result; + } + } + + private List list(Business business, Date startTime, Date endTime) throws Exception { + EntityManager em = business.entityManagerContainer().get(Read.class); + CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaQuery cq = cb.createQuery(Read.class); + Root root = cq.from(Read.class); + Predicate p = cb.conjunction(); + + if (startTime != null) { + p = cb.and(p, cb.greaterThanOrEqualTo(root.get(Read_.createTime), startTime)); + } + if (endTime != null) { + p = cb.and(p, cb.lessThan(root.get(Read_.createTime), endTime)); + } + + cq.select(root).where(p); + return em.createQuery(cq).getResultList(); + } + + public static class Wo extends Read { + + static WrapCopier copier = WrapCopierFactory.wo(Read.class, Wo.class, + JpaObject.singularAttributeField(Read.class, true, true), null); + + } + +} diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/read/ActionManageListWithPerson.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/read/ActionManageListWithPerson.java new file mode 100644 index 0000000000..af0982fb3b --- /dev/null +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/read/ActionManageListWithPerson.java @@ -0,0 +1,45 @@ +package com.x.processplatform.assemble.surface.jaxrs.read; + +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.project.bean.WrapCopier; +import com.x.base.core.project.bean.WrapCopierFactory; +import com.x.base.core.project.http.ActionResult; +import com.x.base.core.project.http.EffectivePerson; +import com.x.processplatform.assemble.surface.Business; +import com.x.processplatform.core.entity.content.Read; +import com.x.processplatform.core.entity.content.Task; +import org.apache.commons.lang3.BooleanUtils; +import org.apache.commons.lang3.StringUtils; + +import java.util.List; + +class ActionManageListWithPerson extends BaseAction { + + ActionResult> execute(EffectivePerson effectivePerson, String credential) + throws Exception { + try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) { + Business business = new Business(emc); + ActionResult> result = new ActionResult<>(); + if (BooleanUtils.isTrue(business.canManageApplication(effectivePerson, null))) { + String person = business.organization().person().get(credential); + if (StringUtils.isNotEmpty(person)) { + List list = business.read().listWithPersonObject(person); + List wos = Wo.copier.copy(list); + result.setData(wos); + result.setCount((long)wos.size()); + } + } + return result; + } + } + + public static class Wo extends Read { + + static WrapCopier copier = WrapCopierFactory.wo(Read.class, Wo.class, + JpaObject.singularAttributeField(Read.class, true, true), null); + + } + +} diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/read/ReadAction.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/read/ReadAction.java index a6a65dd87a..481232f815 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/read/ReadAction.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/read/ReadAction.java @@ -722,4 +722,40 @@ public class ReadAction extends StandardJaxrsAction { } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); } + + @JaxrsMethodDescribe(value = "获取指定用户当前所有待阅.", action = ActionManageListWithPerson.class) + @GET + @Path("list/person/{person}/manage") + @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) + @Consumes(MediaType.APPLICATION_JSON) + public void manageListWithPerson(@Suspended final AsyncResponse asyncResponse, + @Context HttpServletRequest request, @JaxrsParameterDescribe("用户") @PathParam("person") String person) { + ActionResult> result = new ActionResult<>(); + EffectivePerson effectivePerson = this.effectivePerson(request); + try { + result = new ActionManageListWithPerson().execute(effectivePerson, person); + } catch (Exception e) { + logger.error(e, effectivePerson, request, null); + result.error(e); + } + asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); + } + + @JaxrsMethodDescribe(value = "按创建时间查询指定时间段内当前所有待阅.", action = ActionManageListWithDate.class) + @GET + @Path("list/date/{date}/manage") + @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) + @Consumes(MediaType.APPLICATION_JSON) + public void manageListWithDate(@Suspended final AsyncResponse asyncResponse, + @Context HttpServletRequest request, @JaxrsParameterDescribe("日期(如:2020-09-11)") @PathParam("date") String date) { + ActionResult> result = new ActionResult<>(); + EffectivePerson effectivePerson = this.effectivePerson(request); + try { + result = new ActionManageListWithDate().execute(effectivePerson, date); + } catch (Exception e) { + logger.error(e, effectivePerson, request, null); + result.error(e); + } + asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); + } } \ No newline at end of file diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/readcompleted/ActionManageListWithDate.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/readcompleted/ActionManageListWithDate.java new file mode 100644 index 0000000000..fa3e8f2cb4 --- /dev/null +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/readcompleted/ActionManageListWithDate.java @@ -0,0 +1,70 @@ +package com.x.processplatform.assemble.surface.jaxrs.readcompleted; + +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.project.bean.WrapCopier; +import com.x.base.core.project.bean.WrapCopierFactory; +import com.x.base.core.project.http.ActionResult; +import com.x.base.core.project.http.EffectivePerson; +import com.x.base.core.project.tools.DateTools; +import com.x.processplatform.assemble.surface.Business; +import com.x.processplatform.core.entity.content.ReadCompleted; +import com.x.processplatform.core.entity.content.ReadCompleted_; +import org.apache.commons.lang3.BooleanUtils; + +import javax.persistence.EntityManager; +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Predicate; +import javax.persistence.criteria.Root; +import java.util.Date; +import java.util.List; + +class ActionManageListWithDate extends BaseAction { + + ActionResult> execute(EffectivePerson effectivePerson, String date) + throws Exception { + try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) { + Business business = new Business(emc); + ActionResult> result = new ActionResult<>(); + if (BooleanUtils.isTrue(business.canManageApplication(effectivePerson, null))) { + if(DateTools.isDateTimeOrDate(date)){ + Date startTime = DateTools.floorDate(DateTools.parse(date), 0); + Date endTime = DateTools.getAdjustTimeDay(startTime, 1, 0, 0, 0); + List os = this.list(business, startTime, endTime); + List wos = Wo.copier.copy(os); + result.setData(wos); + result.setCount((long)wos.size()); + } + } + return result; + } + } + + private List list(Business business, Date startTime, Date endTime) throws Exception { + EntityManager em = business.entityManagerContainer().get(ReadCompleted.class); + CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaQuery cq = cb.createQuery(ReadCompleted.class); + Root root = cq.from(ReadCompleted.class); + Predicate p = cb.conjunction(); + + if (startTime != null) { + p = cb.and(p, cb.greaterThanOrEqualTo(root.get(ReadCompleted_.createTime), startTime)); + } + if (endTime != null) { + p = cb.and(p, cb.lessThan(root.get(ReadCompleted_.createTime), endTime)); + } + + cq.select(root).where(p); + return em.createQuery(cq).getResultList(); + } + + public static class Wo extends ReadCompleted { + + static WrapCopier copier = WrapCopierFactory.wo(ReadCompleted.class, Wo.class, + JpaObject.singularAttributeField(ReadCompleted.class, true, true), null); + + } + +} diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/readcompleted/ReadCompletedAction.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/readcompleted/ReadCompletedAction.java index b2367af00e..2cb9f4078f 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/readcompleted/ReadCompletedAction.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/readcompleted/ReadCompletedAction.java @@ -613,4 +613,22 @@ public class ReadCompletedAction extends StandardJaxrsAction { } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); } + + @JaxrsMethodDescribe(value = "按创建时间查询指定时间段内当前所有已阅.", action = ActionManageListWithDate.class) + @GET + @Path("list/date/{date}/manage") + @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) + @Consumes(MediaType.APPLICATION_JSON) + public void manageListWithDate(@Suspended final AsyncResponse asyncResponse, + @Context HttpServletRequest request, @JaxrsParameterDescribe("日期(如:2020-09-11)") @PathParam("date") String date) { + ActionResult> result = new ActionResult<>(); + EffectivePerson effectivePerson = this.effectivePerson(request); + try { + result = new ActionManageListWithDate().execute(effectivePerson, date); + } catch (Exception e) { + logger.error(e, effectivePerson, request, null); + result.error(e); + } + asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); + } } \ No newline at end of file diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/task/ActionManageListWithDateHour.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/task/ActionManageListWithDateHour.java new file mode 100644 index 0000000000..b9d7ea1871 --- /dev/null +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/task/ActionManageListWithDateHour.java @@ -0,0 +1,75 @@ +package com.x.processplatform.assemble.surface.jaxrs.task; + +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.project.bean.WrapCopier; +import com.x.base.core.project.bean.WrapCopierFactory; +import com.x.base.core.project.http.ActionResult; +import com.x.base.core.project.http.EffectivePerson; +import com.x.base.core.project.logger.Logger; +import com.x.base.core.project.logger.LoggerFactory; +import com.x.base.core.project.tools.DateTools; +import com.x.processplatform.assemble.surface.Business; +import com.x.processplatform.core.entity.content.Task; +import com.x.processplatform.core.entity.content.Task_; +import org.apache.commons.lang3.BooleanUtils; + +import javax.persistence.EntityManager; +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Predicate; +import javax.persistence.criteria.Root; +import java.util.Date; +import java.util.List; + +class ActionManageListWithDateHour extends BaseAction { + + private static Logger logger = LoggerFactory.getLogger(ActionManageListWithDateHour.class); + + ActionResult> execute(EffectivePerson effectivePerson, String date, Integer hour) + throws Exception { + try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) { + Business business = new Business(emc); + ActionResult> result = new ActionResult<>(); + if (BooleanUtils.isTrue(business.canManageApplication(effectivePerson, null))) { + if(DateTools.isDateTimeOrDate(date) && hour>=0 && hour<24){ + Date startTime = DateTools.getAdjustTimeDay(DateTools.floorDate(DateTools.parse(date), 0), + 0, hour, 0, 0); + Date endTime = DateTools.getAdjustTimeDay(startTime, 0, 1, 0, 0); + List os = this.list(business, startTime, endTime); + List wos = Wo.copier.copy(os); + result.setData(wos); + result.setCount((long)wos.size()); + } + } + return result; + } + } + + private List list(Business business, Date startTime, Date endTime) throws Exception { + EntityManager em = business.entityManagerContainer().get(Task.class); + CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaQuery cq = cb.createQuery(Task.class); + Root root = cq.from(Task.class); + Predicate p = cb.conjunction(); + + if (startTime != null) { + p = cb.and(p, cb.greaterThanOrEqualTo(root.get(Task_.createTime), startTime)); + } + if (endTime != null) { + p = cb.and(p, cb.lessThan(root.get(Task_.createTime), endTime)); + } + + cq.select(root).where(p); + return em.createQuery(cq).getResultList(); + } + + public static class Wo extends Task { + + static WrapCopier copier = WrapCopierFactory.wo(Task.class, Wo.class, + JpaObject.singularAttributeField(Task.class, true, true), null); + + } + +} diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/task/ActionManageListWithPerson.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/task/ActionManageListWithPerson.java new file mode 100644 index 0000000000..222cb91511 --- /dev/null +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/task/ActionManageListWithPerson.java @@ -0,0 +1,44 @@ +package com.x.processplatform.assemble.surface.jaxrs.task; + +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.project.bean.WrapCopier; +import com.x.base.core.project.bean.WrapCopierFactory; +import com.x.base.core.project.http.ActionResult; +import com.x.base.core.project.http.EffectivePerson; +import com.x.processplatform.assemble.surface.Business; +import com.x.processplatform.core.entity.content.Task; +import org.apache.commons.lang3.BooleanUtils; +import org.apache.commons.lang3.StringUtils; + +import java.util.List; + +class ActionManageListWithPerson extends BaseAction { + + ActionResult> execute(EffectivePerson effectivePerson, String credential) + throws Exception { + try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) { + Business business = new Business(emc); + ActionResult> result = new ActionResult<>(); + if (BooleanUtils.isTrue(business.canManageApplication(effectivePerson, null))) { + String person = business.organization().person().get(credential); + if (StringUtils.isNotEmpty(person)) { + List taskList = business.task().listWithPersonObject(person); + List wos = Wo.copier.copy(taskList); + result.setData(wos); + result.setCount((long)wos.size()); + } + } + return result; + } + } + + public static class Wo extends Task { + + static WrapCopier copier = WrapCopierFactory.wo(Task.class, Wo.class, + JpaObject.singularAttributeField(Task.class, true, true), null); + + } + +} diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/task/TaskAction.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/task/TaskAction.java index ec4c35265f..01188dfd3d 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/task/TaskAction.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/task/TaskAction.java @@ -850,4 +850,41 @@ public class TaskAction extends StandardJaxrsAction { } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); } + + @JaxrsMethodDescribe(value = "获取指定用户当前所有待办.", action = ActionManageListWithPerson.class) + @GET + @Path("list/person/{person}/manage") + @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) + @Consumes(MediaType.APPLICATION_JSON) + public void manageListWithPerson(@Suspended final AsyncResponse asyncResponse, + @Context HttpServletRequest request, @JaxrsParameterDescribe("用户") @PathParam("person") String person) { + ActionResult> result = new ActionResult<>(); + EffectivePerson effectivePerson = this.effectivePerson(request); + try { + result = new ActionManageListWithPerson().execute(effectivePerson, person); + } catch (Exception e) { + logger.error(e, effectivePerson, request, null); + result.error(e); + } + asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); + } + + @JaxrsMethodDescribe(value = "按创建时间查询指定时间段内当前所有待办.", action = ActionManageListWithDateHour.class) + @GET + @Path("list/date/{date}/hour/{hour}/manage") + @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) + @Consumes(MediaType.APPLICATION_JSON) + public void manageListWithDateHour(@Suspended final AsyncResponse asyncResponse, + @Context HttpServletRequest request, @JaxrsParameterDescribe("日期(如:2020-09-11)") @PathParam("date") String date, + @JaxrsParameterDescribe("小时(0-23)") @PathParam("hour") Integer hour) { + ActionResult> result = new ActionResult<>(); + EffectivePerson effectivePerson = this.effectivePerson(request); + try { + result = new ActionManageListWithDateHour().execute(effectivePerson, date, hour); + } catch (Exception e) { + logger.error(e, effectivePerson, request, null); + result.error(e); + } + asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); + } } \ No newline at end of file diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/taskcompleted/ActionManageListWithDateHour.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/taskcompleted/ActionManageListWithDateHour.java new file mode 100644 index 0000000000..00dba78336 --- /dev/null +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/taskcompleted/ActionManageListWithDateHour.java @@ -0,0 +1,71 @@ +package com.x.processplatform.assemble.surface.jaxrs.taskcompleted; + +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.project.bean.WrapCopier; +import com.x.base.core.project.bean.WrapCopierFactory; +import com.x.base.core.project.http.ActionResult; +import com.x.base.core.project.http.EffectivePerson; +import com.x.base.core.project.tools.DateTools; +import com.x.processplatform.assemble.surface.Business; +import com.x.processplatform.core.entity.content.TaskCompleted; +import com.x.processplatform.core.entity.content.TaskCompleted_; +import org.apache.commons.lang3.BooleanUtils; + +import javax.persistence.EntityManager; +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Predicate; +import javax.persistence.criteria.Root; +import java.util.Date; +import java.util.List; + +class ActionManageListWithDateHour extends BaseAction { + + ActionResult> execute(EffectivePerson effectivePerson, String date, Integer hour) + throws Exception { + try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) { + Business business = new Business(emc); + ActionResult> result = new ActionResult<>(); + if (BooleanUtils.isTrue(business.canManageApplication(effectivePerson, null))) { + if(DateTools.isDateTimeOrDate(date) && hour>=0 && hour<24){ + Date startTime = DateTools.getAdjustTimeDay(DateTools.floorDate(DateTools.parse(date), 0), + 0, hour, 0, 0); + Date endTime = DateTools.getAdjustTimeDay(startTime, 0, 1, 0, 0); + List os = this.list(business, startTime, endTime); + List wos = Wo.copier.copy(os); + result.setData(wos); + result.setCount((long)wos.size()); + } + } + return result; + } + } + + private List list(Business business, Date startTime, Date endTime) throws Exception { + EntityManager em = business.entityManagerContainer().get(TaskCompleted.class); + CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaQuery cq = cb.createQuery(TaskCompleted.class); + Root root = cq.from(TaskCompleted.class); + Predicate p = cb.conjunction(); + + if (startTime != null) { + p = cb.and(p, cb.greaterThanOrEqualTo(root.get(TaskCompleted_.createTime), startTime)); + } + if (endTime != null) { + p = cb.and(p, cb.lessThan(root.get(TaskCompleted_.createTime), endTime)); + } + + cq.select(root).where(p); + return em.createQuery(cq).getResultList(); + } + + public static class Wo extends TaskCompleted { + + static WrapCopier copier = WrapCopierFactory.wo(TaskCompleted.class, Wo.class, + JpaObject.singularAttributeField(TaskCompleted.class, true, true), null); + + } + +} diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/taskcompleted/TaskCompletedAction.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/taskcompleted/TaskCompletedAction.java index 06e4cb96dc..1cb2b8f6fc 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/taskcompleted/TaskCompletedAction.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/taskcompleted/TaskCompletedAction.java @@ -668,4 +668,23 @@ public class TaskCompletedAction extends StandardJaxrsAction { asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); } + @JaxrsMethodDescribe(value = "按创建时间查询指定时间段内当前所有已办.", action = ActionManageListWithDateHour.class) + @GET + @Path("list/date/{date}/hour/{hour}/manage") + @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) + @Consumes(MediaType.APPLICATION_JSON) + public void manageListWithDateHour(@Suspended final AsyncResponse asyncResponse, + @Context HttpServletRequest request, @JaxrsParameterDescribe("日期(如:2020-09-11)") @PathParam("date") String date, + @JaxrsParameterDescribe("小时(0-23)") @PathParam("hour") Integer hour) { + ActionResult> result = new ActionResult<>(); + EffectivePerson effectivePerson = this.effectivePerson(request); + try { + result = new ActionManageListWithDateHour().execute(effectivePerson, date, hour); + } catch (Exception e) { + logger.error(e, effectivePerson, request, null); + result.error(e); + } + asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); + } + } \ No newline at end of file diff --git a/o2server/x_program_center/src/main/java/com/x/program/center/schedule/CollectMarket.java b/o2server/x_program_center/src/main/java/com/x/program/center/schedule/CollectMarket.java index 1882ae2180..bd37550d0a 100644 --- a/o2server/x_program_center/src/main/java/com/x/program/center/schedule/CollectMarket.java +++ b/o2server/x_program_center/src/main/java/com/x/program/center/schedule/CollectMarket.java @@ -41,7 +41,7 @@ public class CollectMarket extends BaseAction { Business business = new Business(emc); String token = business.loginCollect(); if (StringUtils.isNotEmpty(token)) { - logger.info("开始同步应用市场数据====="); + logger.info("start sync market data====="); List wiList = null; try { ActionResponse response = ConnectionAction @@ -49,10 +49,10 @@ public class CollectMarket extends BaseAction { ListTools.toList(new NameValuePair(Collect.COLLECT_TOKEN, token))); wiList = response.getDataAsList(Wi.class); } catch (Exception e) { - logger.warn("与云服务器连接错误:{}." + e.getMessage()); + logger.warn("connect o2cloud error:{}." + e.getMessage()); } if(wiList!=null && !wiList.isEmpty()){ - logger.info("将要同步应用数:{}",wiList.size()); + logger.info("wait sync market app size:{}",wiList.size()); emc.beginTransaction(Application.class); emc.beginTransaction(Attachment.class); List appList = emc.listAll(Application.class); @@ -105,13 +105,9 @@ public class CollectMarket extends BaseAction { } emc.commit(); } - logger.info("完成同步应用市场数据====="); - } else { - logger.debug("无法登录到云服务器."); + logger.info("end sync market data====="); } } - } else { - logger.debug("系统没有启用O2云服务器连接."); } } catch (Exception e) { logger.error(e); -- GitLab