Просмотр исходного кода

增加待办、已办、待阅、已阅稽核查询接口

o2sword 5 лет назад
Родитель
Сommit
db0baf7fc1
15 измененных файлов с 520 добавлено и 14 удалено
  1. 1 1
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/tools/DateTools.java
  2. 10 0
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/factory/content/ReadFactory.java
  3. 10 5
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/factory/content/TaskCompletedFactory.java
  4. 10 0
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/factory/content/TaskFactory.java
  5. 70 0
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/read/ActionManageListWithDate.java
  6. 45 0
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/read/ActionManageListWithPerson.java
  7. 36 0
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/read/ReadAction.java
  8. 70 0
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/readcompleted/ActionManageListWithDate.java
  9. 18 0
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/readcompleted/ReadCompletedAction.java
  10. 75 0
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/task/ActionManageListWithDateHour.java
  11. 44 0
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/task/ActionManageListWithPerson.java
  12. 37 0
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/task/TaskAction.java
  13. 71 0
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/taskcompleted/ActionManageListWithDateHour.java
  14. 19 0
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/taskcompleted/TaskCompletedAction.java
  15. 4 8
      o2server/x_program_center/src/main/java/com/x/program/center/schedule/CollectMarket.java

+ 1 - 1
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 );

+ 10 - 0
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<Read> listWithPersonObject(String person) throws Exception {
+		EntityManager em = this.entityManagerContainer().get(Read.class);
+		CriteriaBuilder cb = em.getCriteriaBuilder();
+		CriteriaQuery<Read> cq = cb.createQuery(Read.class);
+		Root<Read> root = cq.from(Read.class);
+		Predicate p = cb.equal(root.get(Read_.person), person);
+		cq.select(root).where(p);
+		return em.createQuery(cq).getResultList();
+	}
+
 	/**
 	 * 统计指定人员的待阅数量
 	 */

+ 10 - 5
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<TaskCompleted> listWithPersonObject(String person) throws Exception {
+		EntityManager em = this.entityManagerContainer().get(TaskCompleted.class);
+		CriteriaBuilder cb = em.getCriteriaBuilder();
+		CriteriaQuery<TaskCompleted> cq = cb.createQuery(TaskCompleted.class);
+		Root<TaskCompleted> root = cq.from(TaskCompleted.class);
+		Predicate p = cb.equal(root.get(TaskCompleted_.person), person);
+		cq.select(root).where(p);
+		return em.createQuery(cq).getResultList();
+	}
+
 	/**
 	 * 统计指定人员已办数量
 	 */

+ 10 - 0
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<Task> listWithPersonObject(String person) throws Exception {
+		EntityManager em = this.entityManagerContainer().get(Task.class);
+		CriteriaBuilder cb = em.getCriteriaBuilder();
+		CriteriaQuery<Task> cq = cb.createQuery(Task.class);
+		Root<Task> root = cq.from(Task.class);
+		Predicate p = cb.equal(root.get(Task_.person), person);
+		cq.select(root).where(p);
+		return em.createQuery(cq).getResultList();
+	}
+
 	/**
 	 * 统计指定人员所有的待办数量
 	 */

+ 70 - 0
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<List<Wo>> execute(EffectivePerson effectivePerson, String date)
+			throws Exception {
+		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
+			Business business = new Business(emc);
+			ActionResult<List<Wo>> 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<Read> os = this.list(business, startTime, endTime);
+					List<Wo> wos = Wo.copier.copy(os);
+					result.setData(wos);
+					result.setCount((long)wos.size());
+				}
+			}
+			return result;
+		}
+	}
+
+	private List<Read> list(Business business, Date startTime, Date endTime) throws Exception {
+		EntityManager em = business.entityManagerContainer().get(Read.class);
+		CriteriaBuilder cb = em.getCriteriaBuilder();
+		CriteriaQuery<Read> cq = cb.createQuery(Read.class);
+		Root<Read> 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<Read, Wo> copier = WrapCopierFactory.wo(Read.class, Wo.class,
+				JpaObject.singularAttributeField(Read.class, true, true), null);
+
+	}
+
+}

+ 45 - 0
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<List<Wo>> execute(EffectivePerson effectivePerson, String credential)
+			throws Exception {
+		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
+			Business business = new Business(emc);
+			ActionResult<List<Wo>> result = new ActionResult<>();
+			if (BooleanUtils.isTrue(business.canManageApplication(effectivePerson, null))) {
+				String person = business.organization().person().get(credential);
+				if (StringUtils.isNotEmpty(person)) {
+					List<Read> list = business.read().listWithPersonObject(person);
+					List<Wo> wos = Wo.copier.copy(list);
+					result.setData(wos);
+					result.setCount((long)wos.size());
+				}
+			}
+			return result;
+		}
+	}
+
+	public static class Wo extends Read {
+
+		static WrapCopier<Read, Wo> copier = WrapCopierFactory.wo(Read.class, Wo.class,
+				JpaObject.singularAttributeField(Read.class, true, true), null);
+
+	}
+
+}

+ 36 - 0
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<List<ActionManageListWithPerson.Wo>> 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<List<ActionManageListWithDate.Wo>> 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));
+	}
 }

+ 70 - 0
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<List<Wo>> execute(EffectivePerson effectivePerson, String date)
+			throws Exception {
+		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
+			Business business = new Business(emc);
+			ActionResult<List<Wo>> 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<ReadCompleted> os = this.list(business, startTime, endTime);
+					List<Wo> wos = Wo.copier.copy(os);
+					result.setData(wos);
+					result.setCount((long)wos.size());
+				}
+			}
+			return result;
+		}
+	}
+
+	private List<ReadCompleted> list(Business business, Date startTime, Date endTime) throws Exception {
+		EntityManager em = business.entityManagerContainer().get(ReadCompleted.class);
+		CriteriaBuilder cb = em.getCriteriaBuilder();
+		CriteriaQuery<ReadCompleted> cq = cb.createQuery(ReadCompleted.class);
+		Root<ReadCompleted> 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<ReadCompleted, Wo> copier = WrapCopierFactory.wo(ReadCompleted.class, Wo.class,
+				JpaObject.singularAttributeField(ReadCompleted.class, true, true), null);
+
+	}
+
+}

+ 18 - 0
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<List<ActionManageListWithDate.Wo>> 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));
+	}
 }

+ 75 - 0
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<List<Wo>> execute(EffectivePerson effectivePerson, String date, Integer hour)
+			throws Exception {
+		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
+			Business business = new Business(emc);
+			ActionResult<List<Wo>> 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<Task> os = this.list(business, startTime, endTime);
+					List<Wo> wos = Wo.copier.copy(os);
+					result.setData(wos);
+					result.setCount((long)wos.size());
+				}
+			}
+			return result;
+		}
+	}
+
+	private List<Task> list(Business business, Date startTime, Date endTime) throws Exception {
+		EntityManager em = business.entityManagerContainer().get(Task.class);
+		CriteriaBuilder cb = em.getCriteriaBuilder();
+		CriteriaQuery<Task> cq = cb.createQuery(Task.class);
+		Root<Task> 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<Task, Wo> copier = WrapCopierFactory.wo(Task.class, Wo.class,
+				JpaObject.singularAttributeField(Task.class, true, true), null);
+
+	}
+
+}

+ 44 - 0
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<List<Wo>> execute(EffectivePerson effectivePerson, String credential)
+			throws Exception {
+		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
+			Business business = new Business(emc);
+			ActionResult<List<Wo>> result = new ActionResult<>();
+			if (BooleanUtils.isTrue(business.canManageApplication(effectivePerson, null))) {
+				String person = business.organization().person().get(credential);
+				if (StringUtils.isNotEmpty(person)) {
+					List<Task> taskList = business.task().listWithPersonObject(person);
+					List<Wo> wos = Wo.copier.copy(taskList);
+					result.setData(wos);
+					result.setCount((long)wos.size());
+				}
+			}
+			return result;
+		}
+	}
+
+	public static class Wo extends Task {
+
+		static WrapCopier<Task, Wo> copier = WrapCopierFactory.wo(Task.class, Wo.class,
+				JpaObject.singularAttributeField(Task.class, true, true), null);
+
+	}
+
+}

+ 37 - 0
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<List<ActionManageListWithPerson.Wo>> 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<List<ActionManageListWithDateHour.Wo>> 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));
+	}
 }

+ 71 - 0
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<List<Wo>> execute(EffectivePerson effectivePerson, String date, Integer hour)
+			throws Exception {
+		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
+			Business business = new Business(emc);
+			ActionResult<List<Wo>> 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<TaskCompleted> os = this.list(business, startTime, endTime);
+					List<Wo> wos = Wo.copier.copy(os);
+					result.setData(wos);
+					result.setCount((long)wos.size());
+				}
+			}
+			return result;
+		}
+	}
+
+	private List<TaskCompleted> list(Business business, Date startTime, Date endTime) throws Exception {
+		EntityManager em = business.entityManagerContainer().get(TaskCompleted.class);
+		CriteriaBuilder cb = em.getCriteriaBuilder();
+		CriteriaQuery<TaskCompleted> cq = cb.createQuery(TaskCompleted.class);
+		Root<TaskCompleted> 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<TaskCompleted, Wo> copier = WrapCopierFactory.wo(TaskCompleted.class, Wo.class,
+				JpaObject.singularAttributeField(TaskCompleted.class, true, true), null);
+
+	}
+
+}

+ 19 - 0
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<List<ActionManageListWithDateHour.Wo>> 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));
+	}
+
 }

+ 4 - 8
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<Wi> 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<Application> 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);