diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/agentcenter/AccountingAgentTaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/agentcenter/AccountingAgentTaskController.java index e49e525..7a26eae 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/agentcenter/AccountingAgentTaskController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/agentcenter/AccountingAgentTaskController.java @@ -2,7 +2,7 @@ package com.ruoyi.web.controller.agentcenter; import com.ruoyi.agentcenter.domain.TAgentTask; import com.ruoyi.agentcenter.service.ITAgentTaskService; -import com.ruoyi.agentcenter.vo.AgentTaskVillageGroup; +import com.ruoyi.agentcenter.dto.AgentTaskVillageGroup; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; @@ -13,7 +13,6 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.Arrays; import java.util.List; /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/agentcenter/AgentTaskUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/agentcenter/AgentTaskUserController.java new file mode 100644 index 0000000..7623b53 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/agentcenter/AgentTaskUserController.java @@ -0,0 +1,47 @@ +package com.ruoyi.web.controller.agentcenter; + +import com.ruoyi.agentcenter.domain.TAgentTask; +import com.ruoyi.agentcenter.dto.AgentTaskVillageGroup; +import com.ruoyi.agentcenter.service.ITAgentTaskService; +import com.ruoyi.agentcenter.vo.AgentTaskUser; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.utils.PageUtils; +import com.ruoyi.system.service.ISysDeptService; +import com.ruoyi.system.service.ISysUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * 会计任务用户Controller + * + * @author zhao + * @date 2023-05-06 + */ +@RestController +@RequestMapping("/task/user") +public class AgentTaskUserController extends BaseController +{ + @Autowired + private ITAgentTaskService agentTaskService; + + /** + * 分配用户列表 + */ + @PreAuthorize("@ss.hasPermi('agentcenter:task:list')") + @GetMapping(value = "/distribUserList") + public TableDataInfo distribUserList(AgentTaskUser agentTaskUser) + { + startPage(); + agentTaskUser.setAgentCenter(getUserAgentCenter()); + return getDataTable(agentTaskService.distribUserList(agentTaskUser)); + } +} 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 new file mode 100644 index 0000000..1891775 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/agentcenter/ManagerAgentTaskController.java @@ -0,0 +1,116 @@ +package com.ruoyi.web.controller.agentcenter; + +import com.ruoyi.agentcenter.dto.AgentTaskTownNumGroup; +import com.ruoyi.agentcenter.vo.TaskDistrib; +import com.ruoyi.common.core.domain.AjaxResult; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.agentcenter.domain.TAgentTask; +import com.ruoyi.agentcenter.service.ITAgentTaskService; +import com.ruoyi.common.core.page.TableDataInfo; + +import java.util.List; + +/** + * 主管任务Controller + * + * @author zhao + * @date 2023-05-06 + */ +@RestController +@RequestMapping("/manager/task") +public class ManagerAgentTaskController extends BaseController +{ + @Autowired + private ITAgentTaskService tAgentTaskService; + + /** + * 全部任务列表 + */ + @PreAuthorize("@ss.hasPermi('agentcenter:task:list')") + @GetMapping(value = "/countyTaskSummary") + public AjaxResult countyTaskSummary(TAgentTask task) + { + task.setAgentCenter(getUserAgentCenter()); + task.setTownCode(null); + return AjaxResult.success(tAgentTaskService.countyTaskSummary(task)); + } + + /** + * 全部任务列表 + */ + @PreAuthorize("@ss.hasPermi('agentcenter:task:list')") + @GetMapping(value = "/allTaskList") + public TableDataInfo allTaskList(TAgentTask task) + { + startPage(); + task.setAgentCenter(getUserAgentCenter()); + return getDataTable(tAgentTaskService.getTownTaskList(task)); + } + + /** + * 待分配任务列表 + */ + @PreAuthorize("@ss.hasPermi('agentcenter:task:list')") + @GetMapping(value = "/undistribTaskList") + public AjaxResult undistribTaskList(TAgentTask task) + { + startPage(); + task.setAgentCenter(getUserAgentCenter()); + task.setAgentStatus(TAgentTask.AGENT_STATUS_READY); + AgentTaskTownNumGroup summary = new AgentTaskTownNumGroup(); + List undistribTaskList = tAgentTaskService.getUndistribTaskList(task, summary); + TableDataInfo dataTable = getDataTable(undistribTaskList); + AjaxResult result = dataTable.toAjaxResult(); + result.put("numVillage", summary.getNumVillage()) + .put("numBook", summary.getNumBook()) + .put("allCount", summary.getAllCount()) + ; + return result; + } + + /** + * 分配 + */ + @PreAuthorize("@ss.hasPermi('manager:task:distrib')") + @GetMapping(value = "/distrib/{id}") + public AjaxResult distrib(@PathVariable Long id, @Validated @RequestBody TaskDistrib taskDistrib) + { + TAgentTask task = taskDistrib.toAgentTask(); + task.setId(id); + task.setAuditUser(getUsername()); + return toAjax(tAgentTaskService.distrib(task)); + } + + /** + * 撤回 + */ + @PreAuthorize("@ss.hasPermi('manager:task:revoke')") + @GetMapping(value = "/revoke/{id}") + public AjaxResult revoke(@PathVariable Long id, TAgentTask task) + { + task.setId(id); + return toAjax(tAgentTaskService.revoke(task)); + } + + /** + * 审核 + */ + @PreAuthorize("@ss.hasPermi('manager:task:audit')") + @GetMapping(value = "/audit/{id}") + public AjaxResult audit(@PathVariable Long id) + { + TAgentTask task = new TAgentTask(); + task.setId(id); + task.setAuditUser(getUsername()); + return toAjax(tAgentTaskService.audit(task)); + } + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/agentcenter/ManagerTaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/agentcenter/ManagerTaskController.java deleted file mode 100644 index 370ab86..0000000 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/agentcenter/ManagerTaskController.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.ruoyi.web.controller.agentcenter; - -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.agentcenter.domain.TAgentTask; -import com.ruoyi.agentcenter.service.ITAgentTaskService; -import com.ruoyi.common.core.page.TableDataInfo; - -/** - * 主管任务Controller - * - * @author zhao - * @date 2023-05-06 - */ -@RestController -@RequestMapping("/manager/task") -public class ManagerTaskController extends BaseController -{ - @Autowired - private ITAgentTaskService tAgentTaskService; - - /** - * 全部任务 - */ - @PreAuthorize("@ss.hasPermi('agentcenter:task:list')") - @GetMapping(value = "/allTaskList") - public TableDataInfo allTaskList(TAgentTask task) - { - startPage(); - return getDataTable(tAgentTaskService.getTownTaskList(task)); - } -} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/misc/DeptController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/misc/DeptController.java index 88e3443..05780a9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/misc/DeptController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/misc/DeptController.java @@ -39,6 +39,7 @@ public class DeptController extends BaseController @GetMapping("/cityTree") public AjaxResult cityTree(SysDept dept) { + dept.setAgentCenter(getUserAgentCenter()); return success(deptService.getCityTree(dept)); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/open/BookController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/open/BookController.java new file mode 100644 index 0000000..2b661a2 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/open/BookController.java @@ -0,0 +1,42 @@ +package com.ruoyi.web.controller.open; + +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.service.ISysDeptService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; + +import javax.servlet.http.HttpServletResponse; + +/** + * 杂项::账套 + * + * @author zhao + */ +@Controller +public class BookController extends BaseController +{ + @Autowired + private ISysDeptService deptService; + + /** + * 进入远程账套 + */ + @GetMapping("/open/book/{orgCode}/{bookId}") + public void gotoRemoteBootSite(@PathVariable String orgCode, @PathVariable Long bookId, HttpServletResponse response) throws Exception + { + String remoteUrl = deptService.getRemoteUrlByOrgCode(orgCode); + if(StringUtils.isEmpty(remoteUrl)) + { + response.setStatus(HttpServletResponse.SC_NOT_FOUND); + } + else + { + // TODO: 直接切换账套 + response.sendRedirect(remoteUrl + "/book/book?bookId=" + bookId); + } + } + +} diff --git a/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/AgentTaskTownGroup.java b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/dto/AgentTaskTownGroup.java similarity index 87% rename from ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/AgentTaskTownGroup.java rename to ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/dto/AgentTaskTownGroup.java index e57535b..2ed2d82 100644 --- a/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/AgentTaskTownGroup.java +++ b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/dto/AgentTaskTownGroup.java @@ -1,4 +1,4 @@ -package com.ruoyi.agentcenter.vo; +package com.ruoyi.agentcenter.dto; import lombok.Data; import lombok.experimental.Accessors; @@ -17,6 +17,7 @@ public class AgentTaskTownGroup private String townCode; private String orderYear; private String orderMonth; + private Long numVillage; private List villageList; } 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 new file mode 100644 index 0000000..04b8381 --- /dev/null +++ b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/dto/AgentTaskTownNumGroup.java @@ -0,0 +1,31 @@ +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 List villageList; + + public void calcOtherCount() + { + otherCount = allCount - voucherCount - contracCount - assetCount; + } +} diff --git a/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/AgentTaskVillageGroup.java b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/dto/AgentTaskVillageGroup.java similarity index 83% rename from ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/AgentTaskVillageGroup.java rename to ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/dto/AgentTaskVillageGroup.java index b0fe579..598a6e7 100644 --- a/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/AgentTaskVillageGroup.java +++ b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/dto/AgentTaskVillageGroup.java @@ -1,4 +1,4 @@ -package com.ruoyi.agentcenter.vo; +package com.ruoyi.agentcenter.dto; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.agentcenter.domain.TAgentTask; @@ -23,10 +23,12 @@ public class AgentTaskVillageGroup private String orgCode; private Long bookId; private String bookName; - private String distriDate; - private String handleDate; + private String distriDate; + private String handleDate; private String endAt; private String handleNick; + private Boolean approvalFinish; + private List taskList; } 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 a3b66d5..cf3033c 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 @@ -2,8 +2,9 @@ package com.ruoyi.agentcenter.mapper; import java.util.List; import com.ruoyi.agentcenter.domain.TAgentTask; -import com.ruoyi.agentcenter.vo.AgentTaskTownGroup; -import com.ruoyi.agentcenter.vo.AgentTaskVillageGroup; +import com.ruoyi.agentcenter.dto.AgentTaskTownGroup; +import com.ruoyi.agentcenter.dto.AgentTaskTownNumGroup; +import com.ruoyi.agentcenter.dto.AgentTaskVillageGroup; /** * 任务清单Mapper接口 @@ -106,7 +107,11 @@ public interface TAgentTaskMapper public List getAgentTaskGroupByTown(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); } 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 f8b08e9..307f01c 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 @@ -4,8 +4,11 @@ import java.util.List; import java.util.function.Consumer; import com.ruoyi.agentcenter.domain.TAgentTask; -import com.ruoyi.agentcenter.vo.AgentTaskTownGroup; -import com.ruoyi.agentcenter.vo.AgentTaskVillageGroup; +import com.ruoyi.agentcenter.dto.AgentTaskTownGroup; +import com.ruoyi.agentcenter.dto.AgentTaskTownNumGroup; +import com.ruoyi.agentcenter.dto.AgentTaskVillageGroup; +import com.ruoyi.agentcenter.vo.AgentTaskUser; +import com.ruoyi.agentcenter.vo.CountyTaskSummary; /** * 任务清单Service接口 @@ -119,4 +122,12 @@ public interface ITAgentTaskService public List getTodoTaskList(TAgentTask tAgentTask); public List getProcessedTaskList(TAgentTask tAgentTask); public Long getAgentTaskOverdueFinishVillageCount(TAgentTask tAgentTask); + + public int distrib(TAgentTask task); + public int revoke(TAgentTask task); + public int audit(TAgentTask task); + public List distribUserList(AgentTaskUser user); + + public List getUndistribTaskList(TAgentTask tAgentTask, AgentTaskTownNumGroup summary); + public CountyTaskSummary countyTaskSummary(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 68d9f09..4ef6a47 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 @@ -5,22 +5,25 @@ import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.function.Consumer; -import java.util.stream.Collectors; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Assert; -import com.ruoyi.agentcenter.domain.TAgentContraction; -import com.ruoyi.agentcenter.mapper.TAgentContractionMapper; -import com.ruoyi.agentcenter.vo.AgentTaskTownGroup; -import com.ruoyi.agentcenter.vo.AgentTaskVillageGroup; +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.AgentTaskVillageGroup; +import com.ruoyi.agentcenter.vo.AgentTaskUser; +import com.ruoyi.agentcenter.vo.CountyTaskSummary; import com.ruoyi.common.core.domain.entity.SysDept; -import com.ruoyi.common.enums.Enums; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.exception.ASSERT; 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; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -41,7 +44,9 @@ public class TAgentTaskServiceImpl implements ITAgentTaskService @Autowired private TAgentTaskMapper tAgentTaskMapper; @Autowired - private SysDeptMapper sysDeptMapper; + private SysDeptMapper sysDeptMapper; + @Autowired + private SysUserMapper sysUserMapper; /** * 查询任务清单 @@ -306,8 +311,14 @@ public class TAgentTaskServiceImpl implements ITAgentTaskService Map> bookGroup = ContainerUtils.groupingBy(tAgentTasks, TAgentTask::getOrgCode); agentTaskGroupByTown.forEach((town) -> { - town.setVillageList(villageMap.getOrDefault(town.getTownCode(), new ArrayList<>())); - town.getVillageList().forEach((village) -> { + List villageList = villageMap.getOrDefault(town.getTownCode(), new ArrayList<>()); + long numApprovalFinish = villageList.stream().filter((x) -> x.getNum().equals(x.getNumApprovalFinish())).count(); + long numProcessFinish = villageList.stream().filter((x) -> x.getNum().equals(x.getNumProcessFinish())).count(); + town.setNumApprovalFinish(numApprovalFinish); + town.setNumProcessFinish(numProcessFinish); + town.setVillageList(villageList); + villageList.forEach((village) -> { + village.setApprovalFinish(village.getNum().equals(village.getNumApprovalFinish())); village.setTaskList(bookGroup.getOrDefault(village.getOrgCode(), new ArrayList<>())); }); }); @@ -352,4 +363,123 @@ public class TAgentTaskServiceImpl implements ITAgentTaskService tAgentTask.putParam("agentStatusList", Arrays.asList(TAgentTask.AGENT_STATUS_FINISHED, TAgentTask.AGENT_STATUS_AUDITED)); return tAgentTaskMapper.getAgentTaskOverdueFinishVillageCount(tAgentTask); } + + @Override + public int distrib(TAgentTask task) + { + TAgentTask dbTask = tAgentTaskMapper.selectTAgentTaskById(task.getId()); + + ASSERT.EXP(TAgentTask.AGENT_STATUS_READY.equals(dbTask.getAgentStatus())); + + dbTask.setAgentStatus(TAgentTask.AGENT_STATUS_PROCESSING) + .setDistriDate(DateUtils.getNowDate()) + .setDistriUser(sysUserMapper.selectUserByUserName(task.getDistriUser()).getNickName()) + .setEndAt(task.getEndAt()) + ; + + return tAgentTaskMapper.updateTAgentTask(dbTask); + } + + @Override + public int revoke(TAgentTask task) + { + return 1; + } + + @Override + public int audit(TAgentTask task) + { + TAgentTask dbTask = tAgentTaskMapper.selectTAgentTaskById(task.getId()); + + ASSERT.EXP(TAgentTask.AGENT_STATUS_FINISHED.equals(dbTask.getAgentStatus())); + + dbTask.setAgentStatus(TAgentTask.AGENT_STATUS_AUDITED) + .setIsAudit("Y") + .setAuditDate(DateUtils.getNowDate()) + .setAuditUser(task.getAuditUser()) + .setAuditNick(sysUserMapper.selectUserByUserName(task.getAuditUser()).getNickName()) + ; + + return tAgentTaskMapper.updateTAgentTask(dbTask); + } + + @Override + public List distribUserList(AgentTaskUser agentTaskUser) + { + SysUser user = new SysUser(); + user.setAgentCenter(agentTaskUser.getAgentCenter()); + Long deptId = sysDeptMapper.getDeptIdByOrgCode(agentTaskUser.getOrgCode()); + user.setDeptId(deptId); + + List users = sysUserMapper.selectUserList(user); + + if(CollectionUtil.isNotEmpty(users)) + { + TAgentTask taskCond = new TAgentTask(); + taskCond.putParam("handleUserList", ContainerUtils.mapToList(users, SysUser::getUserName)); + List taskHandleUserListGroup = tAgentTaskMapper.getTaskHandleUserListGroup(taskCond); + Map map = ContainerUtils.toMap(taskHandleUserListGroup, TAgentTask::getHandleUser, TAgentTask::getId); + Page tAgentTasks = new Page<>(); + users.forEach((x) -> { + AgentTaskUser u = new AgentTaskUser(); + u.setNum(map.getOrDefault(x.getUserName(), 0L)) + .setUserName(x.getUserName()) + ; + tAgentTasks.add(u); + }); + tAgentTasks.setTotal(new PageInfo(users).getTotal()); + return tAgentTasks; + } + else + return new ArrayList<>(); + } + + @Override + public List getUndistribTaskList(TAgentTask tAgentTask, AgentTaskTownNumGroup summary) + { + List agentTaskNumTownGroup = tAgentTaskMapper.getAgentTaskNumTownGroup(tAgentTask); + + summary.setNumVillage(0L) + .setNumBook(0L) + .setAllCount(0L) + ; + + 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)); + + List agentTaskNumVillageGroup = tAgentTaskMapper.getAgentTaskNumVillageGroup(tAgentTask); + Map> group = ContainerUtils.groupingBy(agentTaskNumVillageGroup, AgentTaskTownNumGroup::getTownCode); + + agentTaskNumTownGroup.forEach((x) -> { + x.calcOtherCount(); + x.setVillageList(group.getOrDefault(x.getTownCode(), new ArrayList<>())); + x.getVillageList().forEach(AgentTaskTownNumGroup::calcOtherCount); + }); + } + + return agentTaskNumTownGroup; + } + + @Override + public CountyTaskSummary countyTaskSummary(TAgentTask task) + { + CountyTaskSummary res = new CountyTaskSummary(); + + List agentTaskNumTownGroup = tAgentTaskMapper.getAgentTaskGroupByTown(task); + res.setNumTown((long)agentTaskNumTownGroup.size()); + res.setNumBook(agentTaskNumTownGroup.stream().map(AgentTaskTownGroup::getNum).reduce(0L, Long::sum)); + res.setNumTownProcessedTask(agentTaskNumTownGroup.stream().map(AgentTaskTownGroup::getNumProcessFinish).reduce(0L, Long::sum)); + res.setNumTownApprovalTask(agentTaskNumTownGroup.stream().map(AgentTaskTownGroup::getNumApprovalFinish).reduce(0L, Long::sum)); + + AgentTaskVillageGroup agentTaskVillageSummary = tAgentTaskMapper.getAgentTaskVillageSummary(task); + res.setNumBookProcessedTask(agentTaskVillageSummary.getNumProcessFinish()) + .setNumBookApprovalTask(agentTaskVillageSummary.getNumApprovalFinish()) + .setAbnormalCount(agentTaskVillageSummary.getNumExcept()) + ; + + return res; + } } diff --git a/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/AgentTaskUser.java b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/AgentTaskUser.java new file mode 100644 index 0000000..bfe06d8 --- /dev/null +++ b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/AgentTaskUser.java @@ -0,0 +1,14 @@ +package com.ruoyi.agentcenter.vo; + +import lombok.Data; +import lombok.experimental.Accessors; + +@Data +@Accessors(chain = true) +public class AgentTaskUser +{ + private String userName; + private String orgCode; + private String agentCenter; + private Long num; +} diff --git a/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/CountyTaskSummary.java b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/CountyTaskSummary.java new file mode 100644 index 0000000..02b94a4 --- /dev/null +++ b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/CountyTaskSummary.java @@ -0,0 +1,17 @@ +package com.ruoyi.agentcenter.vo; + +import lombok.Data; +import lombok.experimental.Accessors; + +@Data +@Accessors(chain = true) +public class CountyTaskSummary +{ + private Long numTown; + private Long numBook; + private Long abnormalCount; + private Long numTownProcessedTask; + private Long numTownApprovalTask; + private Long numBookProcessedTask; + private Long numBookApprovalTask; +} 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 new file mode 100644 index 0000000..9d9792c --- /dev/null +++ b/ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/TaskDistrib.java @@ -0,0 +1,17 @@ +package com.ruoyi.agentcenter.vo; + +import cn.hutool.core.bean.BeanUtil; +import com.ruoyi.agentcenter.domain.TAgentTask; + +import javax.validation.constraints.NotBlank; + +public class TaskDistrib +{ + @NotBlank(message = "处理人不能为空") + public String handleUser; + + public TAgentTask toAgentTask() + { + return BeanUtil.toBean(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 3297365..d63b82c 100644 --- a/ruoyi-agentcenter/src/main/resources/mapper/agentcenter/TAgentTaskMapper.xml +++ b/ruoyi-agentcenter/src/main/resources/mapper/agentcenter/TAgentTaskMapper.xml @@ -534,7 +534,7 @@ where id = #{id} - + @@ -543,16 +543,18 @@ + - + @@ -586,7 +588,7 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index ba6c444..41a3b24 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -117,6 +117,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll() // 外部上报通道 .antMatchers("/agentcenter/api/**").permitAll() + .antMatchers("/open/**").permitAll() // 除上面外的所有请求全部需要鉴权认证 .anyRequest().authenticated() .and() diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java index 8bb2b33..b00d11e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java @@ -125,4 +125,9 @@ public interface SysDeptMapper public SysDept selectSysDeptByOrgCode(String orgCode); public List getDeptList(SysDept cond); + + public String getDeptNameByDeptId(Long deptId); + public String getOrgCodeByDeptId(Long deptId); + public Long getDeptIdByOrgCode(String orgCode); + public String getRemoteUrlByOrgCode(String orgCode); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java index e0e0308..86fb144 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java @@ -140,4 +140,8 @@ public interface ISysDeptService public List getDeptTree(SysDept dept); public List getCityTree(SysDept dept); public SysDept selectSysDeptByOrgCode(String orgCode); + public String getDeptNameByDeptId(Long deptId); + public String getOrgCodeByDeptId(Long deptId); + public Long getDeptIdByOrgCode(String orgCode); + public String getRemoteUrlByOrgCode(String orgCode); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java index 14c9373..ce91630 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java @@ -388,4 +388,28 @@ public class SysDeptServiceImpl implements ISysDeptService { return deptMapper.selectSysDeptByOrgCode(orgCode); } + + @Override + public String getDeptNameByDeptId(Long deptId) + { + return deptMapper.getDeptNameByDeptId(deptId); + } + + @Override + public String getOrgCodeByDeptId(Long deptId) + { + return deptMapper.getOrgCodeByDeptId(deptId); + } + + @Override + public Long getDeptIdByOrgCode(String orgCode) + { + return deptMapper.getDeptIdByOrgCode(orgCode); + } + + @Override + public String getRemoteUrlByOrgCode(String orgCode) + { + return deptMapper.getRemoteUrlByOrgCode(orgCode); + } } diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml index de811c3..68e4baa 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -211,4 +211,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by d.parent_id, d.order_num + + + + + + + + \ No newline at end of file