From 8406e3e6a32bdcf5f39e0884aaebfe04ec25b64e Mon Sep 17 00:00:00 2001 From: zhaodengke Date: Fri, 13 Oct 2023 13:35:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ManagerAgentTaskController.java | 60 +++++++-- .../ruoyi/agentcenter/domain/TAgentTask.java | 4 - .../agentcenter/dto/AgentTaskNumGroup.java | 48 +++++++ .../dto/AgentTaskTownNumGroup.java | 33 ----- .../agentcenter/mapper/TAgentTaskMapper.java | 8 +- .../service/ITAgentTaskService.java | 17 ++- .../service/impl/TAgentTaskServiceImpl.java | 122 ++++++++++++++---- ...TaskSummary.java => AgentTaskSummary.java} | 2 +- .../ruoyi/agentcenter/vo/TaskAllAudit.java | 30 +++++ .../com/ruoyi/agentcenter/vo/TaskAudit.java | 21 +++ .../com/ruoyi/agentcenter/vo/TaskDistrib.java | 1 + .../com/ruoyi/agentcenter/vo/TaskRevoke.java | 2 + .../mapper/agentcenter/TAgentTaskMapper.xml | 98 ++++++++++---- .../main/java/com/ruoyi/common/utils/ARG.java | 88 +++++++++++++ .../com/ruoyi/common/utils/DateUtils.java | 51 ++++++++ 15 files changed, 474 insertions(+), 111 deletions(-) create mode 100644 ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/dto/AgentTaskNumGroup.java delete mode 100644 ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/dto/AgentTaskTownNumGroup.java rename ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/{CountyTaskSummary.java => AgentTaskSummary.java} (92%) create mode 100644 ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/TaskAllAudit.java create mode 100644 ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/TaskAudit.java create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/utils/ARG.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/agentcenter/ManagerAgentTaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/agentcenter/ManagerAgentTaskController.java index 13a0c5e..572f1e4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/agentcenter/ManagerAgentTaskController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/agentcenter/ManagerAgentTaskController.java @@ -1,6 +1,8 @@ package com.ruoyi.web.controller.agentcenter; -import com.ruoyi.agentcenter.dto.AgentTaskTownNumGroup; +import com.ruoyi.agentcenter.dto.AgentTaskNumGroup; +import com.ruoyi.agentcenter.vo.TaskAllAudit; +import com.ruoyi.agentcenter.vo.TaskAudit; import com.ruoyi.agentcenter.vo.TaskDistrib; import com.ruoyi.agentcenter.vo.TaskRevoke; import com.ruoyi.common.core.domain.AjaxResult; @@ -34,7 +36,7 @@ public class ManagerAgentTaskController extends BaseController private ITAgentTaskService tAgentTaskService; /** - * 全部任务列表 + * 县级全部任务统计 */ @PreAuthorize("@ss.hasPermi('agentcenter:task:list')") @GetMapping(value = "/countyTaskSummary") @@ -67,8 +69,8 @@ public class ManagerAgentTaskController extends BaseController startPage(); task.setAgentCenter(getUserAgentCenter()); task.setAgentStatus(TAgentTask.AGENT_STATUS_READY); - AgentTaskTownNumGroup summary = new AgentTaskTownNumGroup(); - List undistribTaskList = tAgentTaskService.getUndistribTaskList(task, summary); + AgentTaskNumGroup summary = new AgentTaskNumGroup(); + List undistribTaskList = tAgentTaskService.getUndistribTaskList(task, summary); TableDataInfo dataTable = getDataTable(undistribTaskList); AjaxResult result = dataTable.toAjaxResult(); result.put("numVillage", summary.getNumVillage()) @@ -86,6 +88,7 @@ public class ManagerAgentTaskController extends BaseController public AjaxResult distrib(@Validated @RequestBody TaskDistrib taskDistrib) { taskDistrib.setDistriUser(getUsername()); + taskDistrib.setAgentCenter(getUserAgentCenter()); return toAjax(tAgentTaskService.distrib(taskDistrib)); } @@ -96,6 +99,7 @@ public class ManagerAgentTaskController extends BaseController @PostMapping(value = "/revoke") public AjaxResult revoke(@Validated @RequestBody TaskRevoke taskRevoke) { + taskRevoke.setAgentCenter(getUserAgentCenter()); return toAjax(tAgentTaskService.revoke(taskRevoke)); } @@ -103,13 +107,24 @@ public class ManagerAgentTaskController extends BaseController * 审核 */ @PreAuthorize("@ss.hasPermi('manager:task:audit')") - @GetMapping(value = "/audit/{id}") - public AjaxResult audit(@PathVariable Long id) + @PostMapping(value = "/audit") + public AjaxResult audit(@Validated @RequestBody TaskAudit taskAudit) + { + taskAudit.setAuditUser(getUsername()); + taskAudit.setAgentCenter(getUserAgentCenter()); + return toAjax(tAgentTaskService.audit(taskAudit)); + } + + /** + * 全部审核 + */ + @PreAuthorize("@ss.hasPermi('manager:task:audit')") + @PostMapping(value = "/auditAll") + public AjaxResult auditAll(@Validated @RequestBody TaskAllAudit taskAudit) { - TAgentTask task = new TAgentTask(); - task.setId(id); - task.setAuditUser(getUsername()); - return toAjax(tAgentTaskService.audit(task)); + taskAudit.setAuditUser(getUsername()); + taskAudit.setAgentCenter(getUserAgentCenter()); + return toAjax(tAgentTaskService.auditAll(taskAudit)); } /** @@ -125,7 +140,7 @@ public class ManagerAgentTaskController extends BaseController } /** - * 全部任务列表 + * 县级处理中统计 */ @PreAuthorize("@ss.hasPermi('agentcenter:task:list')") @GetMapping(value = "/countyProcessingTaskSummary") @@ -136,4 +151,27 @@ public class ManagerAgentTaskController extends BaseController return AjaxResult.success(tAgentTaskService.countyProcessingTaskSummary(task)); } + /** + * 待审核任务列表 + */ + @PreAuthorize("@ss.hasPermi('agentcenter:task:list')") + @GetMapping(value = "/auditingTaskList") + public TableDataInfo auditingTaskList(TAgentTask task) + { + startPage(); + task.setAgentCenter(getUserAgentCenter()); + return getDataTable(tAgentTaskService.getAuditingTaskList(task)); + } + + /** + * 镇级待审核统计 + */ + @PreAuthorize("@ss.hasPermi('agentcenter:task:list')") + @GetMapping(value = "/auditTaskSummary") + public AjaxResult auditTaskSummary(TAgentTask task) + { + task.setAgentCenter(getUserAgentCenter()); + return AjaxResult.success(tAgentTaskService.auditTaskSummary(task)); + } + } diff --git a/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/domain/TAgentTask.java b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/domain/TAgentTask.java index fef2a97..a1ccdbc 100644 --- a/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/domain/TAgentTask.java +++ b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/domain/TAgentTask.java @@ -161,10 +161,6 @@ public class TAgentTask extends BaseEntity @Excel(name = "评价备注") private String appraiseRemark; - /** 是否审核 */ - @Excel(name = "是否审核", dictType = "sys_yes_no") - private String isAudit; - /** 是否评价 */ @Excel(name = "是否评价", dictType = "sys_yes_no") private String isAppraise; diff --git a/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/dto/AgentTaskNumGroup.java b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/dto/AgentTaskNumGroup.java new file mode 100644 index 0000000..f75cce3 --- /dev/null +++ b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/dto/AgentTaskNumGroup.java @@ -0,0 +1,48 @@ +package com.ruoyi.agentcenter.dto; + +import cn.hutool.core.date.DateUtil; +import com.ruoyi.agentcenter.domain.TAgentTask; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.StringUtils; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.Date; +import java.util.List; + +@Data +@Accessors(chain = true) +public class AgentTaskNumGroup +{ + private Long numVillage; + private Long numBook; + private Long voucherCount; + private Long contracCount; + private Long otherCount; + private Long allCount; + private Long assetCount; + private String townName; + private String townCode; + private String orgName; + private String orgCode; + private String endAt; + private String handleDate; + private String distriDate; + private String handleNick; + + private String handleUser; + private Boolean overdueFinish; + + private List villageList; + private List taskList; + + public void setupOverdueFinish() + { + if(StringUtils.isEmpty(endAt) || StringUtils.isEmpty(handleDate)) + return; + Date endAtDate = DateUtils.yyyy_MM_dd(endAt); + Date handleDateDate = DateUtils.yyyy_MM_dd(handleDate); + + overdueFinish = handleDateDate.after(endAtDate); + } +} diff --git a/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/dto/AgentTaskTownNumGroup.java b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/dto/AgentTaskTownNumGroup.java deleted file mode 100644 index 76cd27a..0000000 --- a/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/dto/AgentTaskTownNumGroup.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.ruoyi.agentcenter.dto; - -import lombok.Data; -import lombok.experimental.Accessors; - -import java.util.List; - -@Data -@Accessors(chain = true) -public class AgentTaskTownNumGroup -{ - private Long numVillage; - private Long numBook; - private Long voucherCount; - private Long contracCount; - private Long otherCount; - private Long allCount; - private Long assetCount; - private String townName; - private String townCode; - private String orgName; - private String orgCode; - private String endAt; - - private String handleUser; - - private List villageList; - - public void calcOtherCount() - { - otherCount = allCount - voucherCount - contracCount - assetCount; - } -} diff --git a/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/mapper/TAgentTaskMapper.java b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/mapper/TAgentTaskMapper.java index 106176a..dce32a2 100644 --- a/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/mapper/TAgentTaskMapper.java +++ b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/mapper/TAgentTaskMapper.java @@ -3,7 +3,7 @@ package com.ruoyi.agentcenter.mapper; import java.util.List; import com.ruoyi.agentcenter.domain.TAgentTask; import com.ruoyi.agentcenter.dto.AgentTaskTownGroup; -import com.ruoyi.agentcenter.dto.AgentTaskTownNumGroup; +import com.ruoyi.agentcenter.dto.AgentTaskNumGroup; import com.ruoyi.agentcenter.dto.AgentTaskVillageGroup; /** @@ -106,14 +106,16 @@ public interface TAgentTaskMapper public int updateTAgentTaskCount(TAgentTask tAgentTask); public List getAgentTaskGroupByTown(TAgentTask tAgentTask); + public AgentTaskTownGroup getAgentTaskTownSummary(TAgentTask tAgentTask); public List getAgentTaskGroupByVillage(TAgentTask tAgentTask); public AgentTaskVillageGroup getAgentTaskVillageSummary(TAgentTask tAgentTask); public List getProcessedAgentTaskGroupByVillage(TAgentTask tAgentTask); public Long getAgentTaskOverdueFinishVillageCount(TAgentTask tAgentTask); public List getTAgentTaskProcessedList(TAgentTask tAgentTask); public List getTaskHandleUserListGroup(TAgentTask tAgentTask); - public List getAgentTaskNumTownGroup(TAgentTask tAgentTask); - public List getAgentTaskNumVillageGroup(TAgentTask tAgentTask); + public List getAgentTaskNumTownGroup(TAgentTask tAgentTask); + public List getAgentTaskNumVillageGroup(TAgentTask tAgentTask); public int revokeAgentTaskByOrgCode(TAgentTask task); + public int auditAgentTask(TAgentTask task); } diff --git a/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/service/ITAgentTaskService.java b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/service/ITAgentTaskService.java index 86b56dc..11ecd24 100644 --- a/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/service/ITAgentTaskService.java +++ b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/service/ITAgentTaskService.java @@ -5,10 +5,12 @@ import java.util.function.Consumer; import com.ruoyi.agentcenter.domain.TAgentTask; import com.ruoyi.agentcenter.dto.AgentTaskTownGroup; -import com.ruoyi.agentcenter.dto.AgentTaskTownNumGroup; +import com.ruoyi.agentcenter.dto.AgentTaskNumGroup; import com.ruoyi.agentcenter.dto.AgentTaskVillageGroup; import com.ruoyi.agentcenter.vo.AgentTaskUser; -import com.ruoyi.agentcenter.vo.CountyTaskSummary; +import com.ruoyi.agentcenter.vo.AgentTaskSummary; +import com.ruoyi.agentcenter.vo.TaskAllAudit; +import com.ruoyi.agentcenter.vo.TaskAudit; import com.ruoyi.agentcenter.vo.TaskDistrib; import com.ruoyi.agentcenter.vo.TaskFinish; import com.ruoyi.agentcenter.vo.TaskRevoke; @@ -122,6 +124,7 @@ public interface ITAgentTaskService public List getTownTaskList(TAgentTask tAgentTask); public List getProcessingTaskList(TAgentTask tAgentTask); + public List getAuditingTaskList(TAgentTask tAgentTask); public List getTodoTaskList(TAgentTask tAgentTask); public List getProcessedTaskList(TAgentTask tAgentTask); @@ -129,11 +132,13 @@ public interface ITAgentTaskService public int distrib(TaskDistrib task); public int revoke(TaskRevoke task); - public int audit(TAgentTask task); + public int audit(TaskAudit task); public int finish(TaskFinish task); + public int auditAll(TaskAllAudit task); public List userList(AgentTaskUser user); - public List getUndistribTaskList(TAgentTask tAgentTask, AgentTaskTownNumGroup summary); - public CountyTaskSummary countyTaskSummary(TAgentTask task); - public CountyTaskSummary countyProcessingTaskSummary(TAgentTask task); + public List getUndistribTaskList(TAgentTask tAgentTask, AgentTaskNumGroup summary); + public AgentTaskSummary countyTaskSummary(TAgentTask task); + public AgentTaskSummary countyProcessingTaskSummary(TAgentTask task); + public AgentTaskSummary auditTaskSummary(TAgentTask task); } diff --git a/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/service/impl/TAgentTaskServiceImpl.java b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/service/impl/TAgentTaskServiceImpl.java index a71871b..2bc2b98 100644 --- a/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/service/impl/TAgentTaskServiceImpl.java +++ b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/service/impl/TAgentTaskServiceImpl.java @@ -14,10 +14,12 @@ import cn.hutool.core.lang.Assert; import com.github.pagehelper.Page; import com.github.pagehelper.PageInfo; import com.ruoyi.agentcenter.dto.AgentTaskTownGroup; -import com.ruoyi.agentcenter.dto.AgentTaskTownNumGroup; +import com.ruoyi.agentcenter.dto.AgentTaskNumGroup; import com.ruoyi.agentcenter.dto.AgentTaskVillageGroup; import com.ruoyi.agentcenter.vo.AgentTaskUser; -import com.ruoyi.agentcenter.vo.CountyTaskSummary; +import com.ruoyi.agentcenter.vo.AgentTaskSummary; +import com.ruoyi.agentcenter.vo.TaskAllAudit; +import com.ruoyi.agentcenter.vo.TaskAudit; import com.ruoyi.agentcenter.vo.TaskDistrib; import com.ruoyi.agentcenter.vo.TaskFinish; import com.ruoyi.agentcenter.vo.TaskRevoke; @@ -28,6 +30,7 @@ import com.ruoyi.common.utils.ContainerUtils; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DeptUtils; import com.ruoyi.common.utils.PageUtils; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.mapper.SysDeptMapper; import com.ruoyi.system.mapper.SysUserMapper; import org.springframework.beans.factory.annotation.Autowired; @@ -381,6 +384,7 @@ public class TAgentTaskServiceImpl implements ITAgentTaskService TAgentTask cond = new TAgentTask(); cond.setOrderYear(task.getOrderYear()) .setOrderMonth(task.getOrderMonth()) + .setAgentCenter(task.getAgentCenter()) .setAgentStatus(TAgentTask.AGENT_STATUS_READY) .putParam("orgCodeList", orgCodeList) ; @@ -408,25 +412,40 @@ public class TAgentTaskServiceImpl implements ITAgentTaskService public int revoke(TaskRevoke taskRevoke) { TAgentTask task = taskRevoke.toAgentTask(); - tAgentTaskMapper.revokeAgentTaskByOrgCode(task); - return 1; + return tAgentTaskMapper.revokeAgentTaskByOrgCode(task); } @Override - public int audit(TAgentTask task) + public int audit(TaskAudit task) { - TAgentTask dbTask = tAgentTaskMapper.selectTAgentTaskById(task.getId()); + TAgentTask cond = new TAgentTask(); + cond.setAgentCenter(task.getAgentCenter()); + cond.putParam("idList", task.getTaskIds()); + List dbTasks = tAgentTaskMapper.selectTAgentTaskList(cond); - ASSERT.EXP(TAgentTask.AGENT_STATUS_FINISHED.equals(dbTask.getAgentStatus())); + if(CollectionUtil.isEmpty(dbTasks)) + return 1; - dbTask.setAgentStatus(TAgentTask.AGENT_STATUS_AUDITED) - .setIsAudit("Y") - .setAuditDate(DateUtils.getNowDate()) - .setAuditUser(task.getAuditUser()) - .setAuditNick(sysUserMapper.selectUserByUserName(task.getAuditUser()).getNickName()) - ; + ASSERT.EXP(dbTasks.stream().allMatch((x) -> TAgentTask.AGENT_STATUS_FINISHED.equals(x.getAgentStatus())), "存在不是已完成的任务"); - return tAgentTaskMapper.updateTAgentTask(dbTask); + dbTasks.forEach((x) -> { + x.setAgentStatus(TAgentTask.AGENT_STATUS_AUDITED) + .setAuditDate(DateUtils.getNowDate()) + .setAuditUser(task.getAuditUser()) + .setAuditNick(sysUserMapper.selectUserByUserName(task.getAuditUser()).getNickName()) + ; + }); + + return tAgentTaskMapper.updateTAgentTaskBatch(dbTasks); + } + + @Override + public int auditAll(TaskAllAudit taskAllAudit) + { + TAgentTask task = taskAllAudit.toAgentTask(); + task.setAuditDate(DateUtils.getNowDate()); + task.setAuditNick(sysUserMapper.selectUserByUserName(task.getAuditUser()).getNickName()); + return tAgentTaskMapper.auditAgentTask(task); } @Override @@ -440,6 +459,7 @@ public class TAgentTaskServiceImpl implements ITAgentTaskService dbTask.setHandleRemark(task.getHandleRemark()) .setAgentStatus(TAgentTask.AGENT_STATUS_FINISHED) .setHandleDate(DateUtils.getNowDate()) + .setAuditNick(sysUserMapper.selectUserByUserName(task.getHandleUser()).getNickName()) ; return tAgentTaskMapper.updateTAgentTask(dbTask); @@ -479,9 +499,9 @@ public class TAgentTaskServiceImpl implements ITAgentTaskService } @Override - public List getUndistribTaskList(TAgentTask tAgentTask, AgentTaskTownNumGroup summary) + public List getUndistribTaskList(TAgentTask tAgentTask, AgentTaskNumGroup summary) { - List agentTaskNumTownGroup = tAgentTaskMapper.getAgentTaskNumTownGroup(tAgentTask); + List agentTaskNumTownGroup = tAgentTaskMapper.getAgentTaskNumTownGroup(tAgentTask); summary.setNumVillage(0L) .setNumBook(0L) @@ -490,17 +510,19 @@ public class TAgentTaskServiceImpl implements ITAgentTaskService if(CollectionUtil.isNotEmpty(agentTaskNumTownGroup)) { - summary.setNumBook(agentTaskNumTownGroup.stream().map(AgentTaskTownNumGroup::getNumBook).reduce(0L, Long::sum)); - summary.setNumVillage(agentTaskNumTownGroup.stream().map(AgentTaskTownNumGroup::getNumVillage).reduce(0L, Long::sum)); - summary.setAllCount(agentTaskNumTownGroup.stream().map(AgentTaskTownNumGroup::getAllCount).reduce(0L, Long::sum)); + summary.setNumBook(agentTaskNumTownGroup.stream().map(AgentTaskNumGroup::getNumBook).reduce(0L, Long::sum)); + summary.setNumVillage(agentTaskNumTownGroup.stream().map(AgentTaskNumGroup::getNumVillage).reduce(0L, Long::sum)); + summary.setAllCount(agentTaskNumTownGroup.stream().map(AgentTaskNumGroup::getAllCount).reduce(0L, Long::sum)); - List agentTaskNumVillageGroup = tAgentTaskMapper.getAgentTaskNumVillageGroup(tAgentTask); - Map> group = ContainerUtils.groupingBy(agentTaskNumVillageGroup, AgentTaskTownNumGroup::getTownCode); + List agentTaskNumVillageGroup = tAgentTaskMapper.getAgentTaskNumVillageGroup(tAgentTask); + Map> group = ContainerUtils.groupingBy(agentTaskNumVillageGroup, AgentTaskNumGroup::getTownCode); agentTaskNumTownGroup.forEach((x) -> { - x.calcOtherCount(); + x.setOtherCount(x.getAllCount() - x.getAssetCount() - x.getContracCount() - x.getVoucherCount()); x.setVillageList(group.getOrDefault(x.getTownCode(), new ArrayList<>())); - x.getVillageList().forEach(AgentTaskTownNumGroup::calcOtherCount); + x.getVillageList().forEach((y) -> { + y.setOtherCount(y.getAllCount() - y.getAssetCount() - y.getContracCount() - y.getVoucherCount()); + }); }); } @@ -508,9 +530,9 @@ public class TAgentTaskServiceImpl implements ITAgentTaskService } @Override - public CountyTaskSummary countyTaskSummary(TAgentTask task) + public AgentTaskSummary countyTaskSummary(TAgentTask task) { - CountyTaskSummary res = new CountyTaskSummary(); + AgentTaskSummary res = new AgentTaskSummary(); List agentTaskNumTownGroup = tAgentTaskMapper.getAgentTaskGroupByTown(task); res.setNumTown((long)agentTaskNumTownGroup.size()); @@ -566,9 +588,9 @@ public class TAgentTaskServiceImpl implements ITAgentTaskService } @Override - public CountyTaskSummary countyProcessingTaskSummary(TAgentTask task) + public AgentTaskSummary countyProcessingTaskSummary(TAgentTask task) { - CountyTaskSummary res = new CountyTaskSummary(); + AgentTaskSummary res = new AgentTaskSummary(); task.setAgentStatus(TAgentTask.AGENT_STATUS_PROCESSING); List agentTaskNumTownGroup = tAgentTaskMapper.getAgentTaskGroupByTown(task); @@ -581,4 +603,50 @@ public class TAgentTaskServiceImpl implements ITAgentTaskService return res; } + + @Override + public List getAuditingTaskList(TAgentTask tAgentTask) + { + tAgentTask.setAgentStatus(TAgentTask.AGENT_STATUS_FINISHED); + List villageGroups = tAgentTaskMapper.getAgentTaskNumVillageGroup(tAgentTask); + + if(CollectionUtil.isNotEmpty(villageGroups)) + { + List orgCodeList = ContainerUtils.mapToList(villageGroups, AgentTaskNumGroup::getOrgCode); + + TAgentTask agentTaskCond = new TAgentTask(); + agentTaskCond.setAgentStatus(TAgentTask.AGENT_STATUS_FINISHED); + agentTaskCond.putParam("orgCodeList", orgCodeList); + List tAgentTasks = tAgentTaskMapper.selectTAgentTaskList(agentTaskCond); + Map> bookGroup = ContainerUtils.groupingBy(tAgentTasks, TAgentTask::getOrgCode); + + villageGroups.forEach((village) -> { + if(StringUtils.isNotEmpty(village.getHandleDate())) + village.setHandleDate(DateUtils.date(village.getHandleDate(), "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd")); + if(StringUtils.isNotEmpty(village.getDistriDate())) + village.setDistriDate(DateUtils.date(village.getDistriDate(), "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd")); + village.setupOverdueFinish(); + village.setOtherCount(village.getAllCount() - village.getContracCount() - village.getVoucherCount()); + village.setTaskList(bookGroup.getOrDefault(village.getOrgCode(), new ArrayList<>())); + village.getTaskList().forEach((x) -> { + x.setOtherCount(x.getAllCount() - x.getVoucherCount() - x.getContracCount()); + }); + }); + } + return villageGroups; + } + + @Override + public AgentTaskSummary auditTaskSummary(TAgentTask task) + { + AgentTaskSummary res = new AgentTaskSummary(); + + task.setAgentStatus(TAgentTask.AGENT_STATUS_FINISHED); + AgentTaskTownGroup summary = tAgentTaskMapper.getAgentTaskTownSummary(task); + res.setNumVillage(summary.getNumVillage()) + .setNumBook(summary.getNum()) + ; + + return res; + } } diff --git a/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/CountyTaskSummary.java b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/AgentTaskSummary.java similarity index 92% rename from ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/CountyTaskSummary.java rename to ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/AgentTaskSummary.java index cd07537..1d99ccc 100644 --- a/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/CountyTaskSummary.java +++ b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/AgentTaskSummary.java @@ -5,7 +5,7 @@ import lombok.experimental.Accessors; @Data @Accessors(chain = true) -public class CountyTaskSummary +public class AgentTaskSummary { private Long numTown; private Long numBook; diff --git a/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/TaskAllAudit.java b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/TaskAllAudit.java new file mode 100644 index 0000000..03e168e --- /dev/null +++ b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/TaskAllAudit.java @@ -0,0 +1,30 @@ +package com.ruoyi.agentcenter.vo; + +import cn.hutool.core.bean.BeanUtil; +import com.ruoyi.agentcenter.domain.TAgentTask; +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; + +@Data +@Accessors(chain = true) +public class TaskAllAudit +{ + @NotEmpty(message = "年不能为空") + private String orderYear; + @NotEmpty(message = "月不能为空") + private String orderMonth; + @NotBlank(message = "县地区不能为空") + private String countyCode; + private String townCode; + + private String auditUser; + private String agentCenter; + + public TAgentTask toAgentTask() + { + return BeanUtil.copyProperties(this, TAgentTask.class); + } +} diff --git a/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/TaskAudit.java b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/TaskAudit.java new file mode 100644 index 0000000..227fef6 --- /dev/null +++ b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/TaskAudit.java @@ -0,0 +1,21 @@ +package com.ruoyi.agentcenter.vo; + +import cn.hutool.core.bean.BeanUtil; +import com.ruoyi.agentcenter.domain.TAgentTask; +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.Date; + +@Data +@Accessors(chain = true) +public class TaskAudit +{ + @NotEmpty(message = "任务ID不能为空") + private Long[] taskIds; + + private String auditUser; + private String agentCenter; +} diff --git a/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/TaskDistrib.java b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/TaskDistrib.java index e4b6ab4..05812bb 100644 --- a/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/TaskDistrib.java +++ b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/TaskDistrib.java @@ -26,6 +26,7 @@ public class TaskDistrib private String orderMonth; private String distriUser; + private String agentCenter; @Data @Accessors(chain = true) diff --git a/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/TaskRevoke.java b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/TaskRevoke.java index 81cf4a6..d932d77 100644 --- a/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/TaskRevoke.java +++ b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/TaskRevoke.java @@ -19,6 +19,8 @@ public class TaskRevoke @NotBlank(message = "村不能为空") private String orgCode; + private String agentCenter; + public TAgentTask toAgentTask() { return BeanUtil.copyProperties(this, TAgentTask.class); diff --git a/ruoyi-agentcenter/src/main/resources/mapper/agentcenter/TAgentTaskMapper.xml b/ruoyi-agentcenter/src/main/resources/mapper/agentcenter/TAgentTaskMapper.xml index 1c54338..8526cc0 100644 --- a/ruoyi-agentcenter/src/main/resources/mapper/agentcenter/TAgentTaskMapper.xml +++ b/ruoyi-agentcenter/src/main/resources/mapper/agentcenter/TAgentTaskMapper.xml @@ -34,7 +34,6 @@ - @@ -50,7 +49,7 @@ - select id, agent_center, county_code, county_name, town_code, town_name, org_code, org_name, book_id, book_name, order_year, order_month, voucher_count, contrac_count, asset_count, all_count, finish_count, agent_status, distri_user, distri_nick, distri_date, end_at, handle_user, handle_nick, handle_remark, handle_date, audit_user, audit_nick, audit_date, is_audit, appraise_user, appraise_nick, appraise_score, appraise_remark, is_appraise, create_by, create_time, update_by, update_time, abnormal_count from t_agent_task + select id, agent_center, county_code, county_name, town_code, town_name, org_code, org_name, book_id, book_name, order_year, order_month, voucher_count, contrac_count, asset_count, all_count, finish_count, agent_status, distri_user, distri_nick, distri_date, end_at, handle_user, handle_nick, handle_remark, handle_date, audit_user, audit_nick, audit_date, appraise_user, appraise_nick, appraise_score, appraise_remark, is_appraise, create_by, create_time, update_by, update_time, abnormal_count from t_agent_task @@ -137,7 +138,6 @@ audit_user, audit_nick, audit_date, - is_audit, appraise_user, appraise_nick, appraise_score, @@ -178,7 +178,6 @@ #{auditUser}, #{auditNick}, #{auditDate}, - #{isAudit}, #{appraiseUser}, #{appraiseNick}, #{appraiseScore}, @@ -224,7 +223,6 @@ audit_user, audit_nick, audit_date, - is_audit, appraise_user, appraise_nick, appraise_score, @@ -267,7 +265,6 @@ #{item.auditUser}, #{item.auditNick}, #{item.auditDate}, - #{item.isAudit}, #{item.appraiseUser}, #{item.appraiseNick}, #{item.appraiseScore}, @@ -313,7 +310,6 @@ audit_user = #{auditUser}, audit_nick = #{auditNick}, audit_date = #{auditDate}, - is_audit = #{isAudit}, appraise_user = #{appraiseUser}, appraise_nick = #{appraiseNick}, appraise_score = #{appraiseScore}, @@ -361,7 +357,6 @@ audit_user = #{item.auditUser}, audit_nick = #{item.auditNick}, audit_date = #{item.auditDate}, - is_audit = #{item.isAudit}, appraise_user = #{item.appraiseUser}, appraise_nick = #{item.appraiseNick}, appraise_score = #{item.appraiseScore}, @@ -420,7 +415,6 @@ and audit_user = #{auditUser} and audit_nick = #{auditNick} and audit_date = #{auditDate} - and is_audit = #{isAudit} and appraise_user = #{appraiseUser} and appraise_nick = #{appraiseNick} and appraise_score = #{appraiseScore} @@ -462,7 +456,6 @@ and audit_user = #{auditUser} and audit_nick = #{auditNick} and audit_date = #{auditDate} - and is_audit = #{isAudit} and appraise_user = #{appraiseUser} and appraise_nick = #{appraiseNick} and appraise_score = #{appraiseScore} @@ -504,7 +497,6 @@ and audit_user = #{auditUser} and audit_nick = #{auditNick} and audit_date = #{auditDate} - and is_audit = #{isAudit} and appraise_user = #{appraiseUser} and appraise_nick = #{appraiseNick} and appraise_score = #{appraiseScore} @@ -551,7 +543,7 @@ COUNT(*) as num, COUNT(DISTINCT org_code) as num_village, COUNT(*) = SUM(IF(agent_status = '3' OR agent_status = '4', 1, 0)) as num_process_finish, - COUNT(*) = SUM(IF(is_audit = 'Y', 1, 0)) as num_approval_finish, + COUNT(*) = SUM(IF(agent_status = '4', 1, 0)) as num_approval_finish, town_name, town_code, order_year, order_month, IFNULL(SUM(IF(abnormal_count > 0, 1, 0)), 0) as num_except @@ -569,6 +561,24 @@ ORDER BY town_code + + @@ -594,7 +604,7 @@ SELECT COUNT(*) as num, IFNULL(SUM(IF(agent_status = '3' OR agent_status = '4', 1, 0)), 0) as num_process_finish, - IFNULL(SUM(IF(is_audit = 'Y', 1, 0)), 0) as num_approval_finish, + IFNULL(SUM(IF(agent_status = '4', 1, 0)), 0) as num_approval_finish, org_name, org_code, town_code, MAX(end_at) as end_at, MAX(handle_date) as handle_date, MAX(distri_date) as distri_date, handle_nick, IFNULL(SUM(abnormal_count), 0) as num_except, @@ -623,7 +633,7 @@ SELECT COUNT(*) as num, IFNULL(SUM(IF(agent_status = '3' OR agent_status = '4', 1, 0)), 0) as num_process_finish, - IFNULL(SUM(IF(is_audit = 'Y', 1, 0)), 0) as num_approval_finish, + IFNULL(SUM(IF(agent_status = '4', 1, 0)), 0) as num_approval_finish, org_name, org_code, town_code, IFNULL(SUM(abnormal_count), 0) as num_except FROM @@ -646,8 +656,8 @@ - + @@ -747,9 +756,12 @@ + + + - SELECT COUNT(*) as num_book, COUNT(DISTINCT org_code) as num_village, @@ -772,7 +784,7 @@ ORDER BY town_code - SELECT COUNT(*) as num_book, COUNT(DISTINCT org_code) as num_village, @@ -780,7 +792,7 @@ IFNULL(SUM(contrac_count), 0) as contrac_count, IFNULL(SUM(all_count), 0) as all_count, IFNULL(SUM(asset_count), 0) as asset_count, - MAX(end_at) as end_at, + MAX(end_at) as end_at, MAX(distri_date) as distri_date, MAX(handle_date) as handle_date, GROUP_CONCAT(DISTINCT handle_nick) as handle_nick, org_name, org_code, town_name, town_code FROM @@ -794,7 +806,7 @@ and order_month = #{orderMonth} GROUP BY org_code - ORDER BY org_code + ORDER BY town_code, org_code @@ -812,11 +824,45 @@ update_by = #{updateBy}, update_time = #{updateTime}, - where - org_code = #{orgCode} + + and agent_center = #{agentCenter} + and org_code = #{orgCode} and order_year = #{orderYear} and order_month = #{orderMonth} and agent_status = '2' + + + + + update t_agent_task + + agent_status = '4', + audit_user = #{auditUser}, + audit_nick = #{auditNick}, + audit_date = #{auditDate}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + + and agent_center = #{agentCenter} + + + AND county_code = #{countyCode} + + + AND org_code = #{orgCode} + + + AND town_code = #{townCode} + + + 1 = 2 + + + and order_year = #{orderYear} + and order_month = #{orderMonth} + and agent_status = '3' + \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ARG.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ARG.java new file mode 100644 index 0000000..bc594db --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ARG.java @@ -0,0 +1,88 @@ +package com.ruoyi.common.utils; + +import java.util.stream.Stream; + +public final class ARG +{ + private T[] args; + public ARG(T...args) + { + this.args = args; + } + + public int argc() + { + return Argc((Object[]) args); + } + + @SuppressWarnings("unchecked") + public T argv(int i, T...defValue) + { + return (T)Argv(i, (T)First((Object[]) defValue)); + } + + public Stream stream(T...args) + { + return Stream.of(args); + } + + public static int Argc(Object...args) + { + return null != args ? args.length : 0; + } + + public static Object Argv(int i, Object...args) + { + return Argv_def(i, null, args); + } + + public static Object Argv_def(int i, Object defValue, Object...args) + { + int argc = Argc(args); + int index = i < 0 ? argc + i : i; + if(index >= argc) + throw new RuntimeException(String.format("Argv: index(%d) >= argc(%d)", index, argc)); + Object ret = args[index]; + return null != ret ? ret : defValue; + } + + public static Object First(Object...args) + { + return Argv(0, args); + } + + public static Object First_def(Object defValue, Object...args) + { + return Argv_def(0, null, args); + } + + public static Stream Stream(Object...args) + { + return Stream.of(args); + } + + public static T ArgvT_def(int i, T defValue, T...args) + { + int argc = Argc((Object[]) args); + int index = i < 0 ? argc + i : i; + if(index >= argc) + throw new RuntimeException(String.format("Argv: index(%d) >= argc(%d)", index, argc)); + T ret = args[index]; + return null != ret ? ret : defValue; + } + + public static T FirstT(T...args) + { + return ArgvT_def(0, null, args); + } + + public static T FirstT_def(T defValue, T...args) + { + return ArgvT_def(0, defValue, args); + } + + public static Stream StreamT(T...args) + { + return Stream.of(args); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java index 27cb193..88aa6f6 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java @@ -9,6 +9,8 @@ import java.time.LocalTime; import java.time.ZoneId; import java.time.ZonedDateTime; import java.util.Date; + +import cn.hutool.core.date.DateUtil; import org.apache.commons.lang3.time.DateFormatUtils; /** @@ -188,4 +190,53 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault()); return Date.from(zdt.toInstant()); } + + public static String yyyy(Date...date) + { + Date d = ARG.FirstT_def(new Date(), date); + return DateUtil.format(d, "yyyy"); + } + + public static String yyyy_MM(Date...date) + { + Date d = ARG.FirstT_def(new Date(), date); + return DateUtil.format(d, "yyyy-MM"); + } + + public static String yyyy_MM_dd(Date...date) + { + Date d = ARG.FirstT_def(new Date(), date); + return DateUtil.format(d, "yyyy-MM-dd"); + } + + public static String yyyy_MM_dd_HH_mm_ss(Date...date) + { + Date d = ARG.FirstT_def(new Date(), date); + return DateUtil.format(d, "yyyy-MM-dd HH:mm:ss"); + } + + public static Date yyyy(String str) + { + return DateUtil.parse(str, "yyyy"); + } + + public static Date yyyy_MM(String str) + { + return DateUtil.parse(str, "yyyy-MM"); + } + + public static Date yyyy_MM_dd(String str) + { + return DateUtil.parse(str, "yyyy-MM-dd"); + } + + public static Date yyyy_MM_dd_HH_mm_ss(String str) + { + return DateUtil.parse(str, "yyyy-MM-dd HH:mm:ss"); + } + + public static String date(String src, String srcFormat, String dstFormat) + { + return DateUtil.format(DateUtil.parse(src, srcFormat), dstFormat); + } }