瀏覽代碼

主管任务

master
zhaodengke 1 年之前
父節點
當前提交
71e9b6285f
共有 21 個檔案被更改,包括 619 行新增62 行删除
  1. +1
    -2
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/agentcenter/AccountingAgentTaskController.java
  2. +47
    -0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/agentcenter/AgentTaskUserController.java
  3. +116
    -0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/agentcenter/ManagerAgentTaskController.java
  4. +0
    -36
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/agentcenter/ManagerTaskController.java
  5. +1
    -0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/misc/DeptController.java
  6. +42
    -0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/open/BookController.java
  7. +2
    -1
      ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/dto/AgentTaskTownGroup.java
  8. +31
    -0
      ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/dto/AgentTaskTownNumGroup.java
  9. +5
    -3
      ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/dto/AgentTaskVillageGroup.java
  10. +7
    -2
      ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/mapper/TAgentTaskMapper.java
  11. +13
    -2
      ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/service/ITAgentTaskService.java
  12. +140
    -10
      ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/service/impl/TAgentTaskServiceImpl.java
  13. +14
    -0
      ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/AgentTaskUser.java
  14. +17
    -0
      ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/CountyTaskSummary.java
  15. +17
    -0
      ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/TaskDistrib.java
  16. +116
    -6
      ruoyi-agentcenter/src/main/resources/mapper/agentcenter/TAgentTaskMapper.xml
  17. +1
    -0
      ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
  18. +5
    -0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
  19. +4
    -0
      ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java
  20. +24
    -0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
  21. +16
    -0
      ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml

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

/**


+ 47
- 0
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));
}
}

+ 116
- 0
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<AgentTaskTownNumGroup> 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));
}

}

+ 0
- 36
ruoyi-admin/src/main/java/com/ruoyi/web/controller/agentcenter/ManagerTaskController.java 查看文件

@@ -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));
}
}

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



+ 42
- 0
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);
}
}

}

ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/AgentTaskTownGroup.java → 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<AgentTaskVillageGroup> villageList;
}

+ 31
- 0
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<AgentTaskTownNumGroup> villageList;

public void calcOtherCount()
{
otherCount = allCount - voucherCount - contracCount - assetCount;
}
}

ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/vo/AgentTaskVillageGroup.java → 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<TAgentTask> taskList;
}

+ 7
- 2
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<AgentTaskTownGroup> getAgentTaskGroupByTown(TAgentTask tAgentTask);
public List<AgentTaskVillageGroup> getAgentTaskGroupByVillage(TAgentTask tAgentTask);
public AgentTaskVillageGroup getAgentTaskVillageSummary(TAgentTask tAgentTask);
public List<AgentTaskVillageGroup> getProcessedAgentTaskGroupByVillage(TAgentTask tAgentTask);
public Long getAgentTaskOverdueFinishVillageCount(TAgentTask tAgentTask);
public List<TAgentTask> getTAgentTaskProcessedList(TAgentTask tAgentTask);
public List<TAgentTask> getTaskHandleUserListGroup(TAgentTask tAgentTask);
public List<AgentTaskTownNumGroup> getAgentTaskNumTownGroup(TAgentTask tAgentTask);
public List<AgentTaskTownNumGroup> getAgentTaskNumVillageGroup(TAgentTask tAgentTask);
}

+ 13
- 2
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<TAgentTask> getTodoTaskList(TAgentTask tAgentTask);
public List<AgentTaskVillageGroup> 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<AgentTaskUser> distribUserList(AgentTaskUser user);

public List<AgentTaskTownNumGroup> getUndistribTaskList(TAgentTask tAgentTask, AgentTaskTownNumGroup summary);
public CountyTaskSummary countyTaskSummary(TAgentTask task);
}

+ 140
- 10
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<String, List<TAgentTask>> bookGroup = ContainerUtils.groupingBy(tAgentTasks, TAgentTask::getOrgCode);

agentTaskGroupByTown.forEach((town) -> {
town.setVillageList(villageMap.getOrDefault(town.getTownCode(), new ArrayList<>()));
town.getVillageList().forEach((village) -> {
List<AgentTaskVillageGroup> 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<AgentTaskUser> distribUserList(AgentTaskUser agentTaskUser)
{
SysUser user = new SysUser();
user.setAgentCenter(agentTaskUser.getAgentCenter());
Long deptId = sysDeptMapper.getDeptIdByOrgCode(agentTaskUser.getOrgCode());
user.setDeptId(deptId);

List<SysUser> users = sysUserMapper.selectUserList(user);

if(CollectionUtil.isNotEmpty(users))
{
TAgentTask taskCond = new TAgentTask();
taskCond.putParam("handleUserList", ContainerUtils.mapToList(users, SysUser::getUserName));
List<TAgentTask> taskHandleUserListGroup = tAgentTaskMapper.getTaskHandleUserListGroup(taskCond);
Map<String, Long> map = ContainerUtils.toMap(taskHandleUserListGroup, TAgentTask::getHandleUser, TAgentTask::getId);
Page<AgentTaskUser> 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<AgentTaskTownNumGroup> getUndistribTaskList(TAgentTask tAgentTask, AgentTaskTownNumGroup summary)
{
List<AgentTaskTownNumGroup> 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<AgentTaskTownNumGroup> agentTaskNumVillageGroup = tAgentTaskMapper.getAgentTaskNumVillageGroup(tAgentTask);
Map<String, List<AgentTaskTownNumGroup>> 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<AgentTaskTownGroup> 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;
}
}

+ 14
- 0
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;
}

+ 17
- 0
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;
}

+ 17
- 0
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);
}
}

+ 116
- 6
ruoyi-agentcenter/src/main/resources/mapper/agentcenter/TAgentTaskMapper.xml 查看文件

@@ -534,7 +534,7 @@
where id = #{id}
</update>

<resultMap id="AgentTaskTownGroupResultMap" type="com.ruoyi.agentcenter.vo.AgentTaskTownGroup">
<resultMap id="AgentTaskTownGroupResultMap" type="com.ruoyi.agentcenter.dto.AgentTaskTownGroup">
<result property="num" column="num"/>
<result property="numProcessFinish" column="num_process_finish"/>
<result property="numApprovalFinish" column="num_approval_finish"/>
@@ -543,16 +543,18 @@
<result property="townCode" column="town_code"/>
<result property="orderYear" column="order_year"/>
<result property="orderMonth" column="order_month"/>
<result property="numVillage" column="num_village"/>
</resultMap>

<select id="getAgentTaskGroupByTown" parameterType="TAgentTask" resultMap="AgentTaskTownGroupResultMap">
SELECT
COUNT(*) as num,
IFNULL(SUM(IF(agent_status = '3', 1, 0)), 0) as num_process_finish,
IFNULL(SUM(IF(is_audit = 'Y', 1, 0)), 0) as num_approval_finish,
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,
town_name, town_code,
order_year, order_month,
IFNULL(SUM(abnormal_count), 0) as num_except
IFNULL(SUM(IF(abnormal_count > 0, 1, 0)), 0) as num_except
FROM
t_agent_task
<where>
@@ -566,7 +568,7 @@
ORDER BY town_code
</select>

<resultMap id="AgentTaskVillageGroupResultMap" type="com.ruoyi.agentcenter.vo.AgentTaskVillageGroup">
<resultMap id="AgentTaskVillageGroupResultMap" type="com.ruoyi.agentcenter.dto.AgentTaskVillageGroup">
<result property="num" column="num"/>
<result property="numProcessFinish" column="num_process_finish"/>
<result property="numApprovalFinish" column="num_approval_finish"/>
@@ -586,7 +588,7 @@
<select id="getAgentTaskGroupByVillage" parameterType="TAgentTask" resultMap="AgentTaskVillageGroupResultMap">
SELECT
COUNT(*) as num,
IFNULL(SUM(IF(agent_status = '3', 1, 0)), 0) as num_process_finish,
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,
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,
@@ -608,6 +610,29 @@
ORDER BY org_code
</select>

<select id="getAgentTaskVillageSummary" parameterType="TAgentTask" resultMap="AgentTaskVillageGroupResultMap">
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,
org_name, org_code, town_code,
IFNULL(SUM(abnormal_count), 0) as num_except
FROM
t_agent_task
<where>
<if test="countyCode != null and countyCode != ''"> and county_code = #{countyCode}</if>
<if test="agentCenter != null and agentCenter != ''"> and agent_center = #{agentCenter}</if>
<if test="townCode != null and townCode != ''"> and town_code = #{townCode}</if>
<if test="orderYear != null and orderYear != ''"> and order_year = #{orderYear}</if>
<if test="orderMonth != null and orderMonth != ''"> and order_month = #{orderMonth}</if>
<if test="params != null">
<if test="params.townCodeList != null">
AND town_code IN (null <foreach collection="params.townCodeList" item="i">,#{i}</foreach> )
</if>
</if>
</where>
</select>

<select id="getProcessedAgentTaskGroupByVillage" parameterType="TAgentTask" resultMap="AgentTaskVillageGroupResultMap">
SELECT
COUNT(*) as num,
@@ -676,4 +701,89 @@
</if>
</where>
</select>

<select id="getTaskHandleUserListGroup" parameterType="TAgentTask" resultMap="TAgentTaskResult">
select
COUNT(*) as id, handle_user
from t_agent_task
<where>
AND agent_status = '2'
<if test="agentCenter != null and agentCenter != ''"> and agent_center = #{agentCenter}</if>
<if test="countyCode != null and countyCode != ''"> and county_code = #{countyCode}</if>
<if test="townCode != null and townCode != ''"> and town_code = #{townCode}</if>
<if test="orgCode != null and orgCode != ''"> and org_code = #{orgCode}</if>
<if test="orderYear != null and orderYear != ''"> and order_year = #{orderYear}</if>
<if test="orderMonth != null and orderMonth != ''"> and order_month = #{orderMonth}</if>
<if test="params != null">
<if test="params.handleUserList != null">
AND handle_user IN (null <foreach collection="params.handleUserList" item="i">,#{i}</foreach> )
</if>
</if>
</where>
GROUP BY handle_user
</select>

<resultMap id="AgentTaskTownNumGroupResultMap" type="com.ruoyi.agentcenter.dto.AgentTaskTownNumGroup">
<result property="numVillage" column="num_village"/>
<result property="numBook" column="num_book"/>
<result property="voucherCount" column="voucher_count"/>
<result property="contracCount" column="contrac_count"/>
<result property="otherCount" column="other_count"/>
<result property="allCount" column="all_count"/>
<result property="assetCount" column="asset_count"/>
<result property="townName" column="town_name"/>
<result property="townCode" column="town_code"/>
<result property="orgName" column="org_name"/>
<result property="orgCode" column="org_code"/>
<result property="endAt" column="end_at"/>
</resultMap>

<select id="getAgentTaskNumTownGroup" parameterType="TAgentTask" resultMap="AgentTaskTownNumGroupResultMap">
SELECT
COUNT(*) as num_book,
COUNT(DISTINCT org_code) as num_village,
IFNULL(SUM(voucher_count), 0) as voucher_count,
IFNULL(SUM(contrac_count), 0) as contrac_count,
IFNULL(SUM(all_count), 0) as all_count,
IFNULL(SUM(asset_count), 0) as asset_count,
town_name, town_code
FROM
t_agent_task
<where>
<if test="agentStatus != null and agentStatus != ''"> and agent_status = #{agentStatus}</if>
<if test="agentCenter != null and agentCenter != ''"> and agent_center = #{agentCenter}</if>
<if test="countyCode != null and countyCode != ''"> and county_code = #{countyCode}</if>
<if test="townCode != null and townCode != ''"> and town_code = #{townCode}</if>
<if test="orderYear != null and orderYear != ''"> and order_year = #{orderYear}</if>
<if test="orderMonth != null and orderMonth != ''"> and order_month = #{orderMonth}</if>
</where>
GROUP BY town_code
ORDER BY town_code
</select>

<select id="getAgentTaskNumVillageGroup" parameterType="TAgentTask" resultMap="AgentTaskTownNumGroupResultMap">
SELECT
COUNT(*) as num_book,
COUNT(DISTINCT org_code) as num_village,
IFNULL(SUM(voucher_count), 0) as voucher_count,
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,
org_name, org_code,
town_name, town_code
FROM
t_agent_task
<where>
<if test="agentStatus != null and agentStatus != ''"> and agent_status = #{agentStatus}</if>
<if test="agentCenter != null and agentCenter != ''"> and agent_center = #{agentCenter}</if>
<if test="countyCode != null and countyCode != ''"> and county_code = #{countyCode}</if>
<if test="townCode != null and townCode != ''"> and town_code = #{townCode}</if>
<if test="orderYear != null and orderYear != ''"> and order_year = #{orderYear}</if>
<if test="orderMonth != null and orderMonth != ''"> and order_month = #{orderMonth}</if>
</where>
GROUP BY org_code
ORDER BY org_code
</select>

</mapper>

+ 1
- 0
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()


+ 5
- 0
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<SysDept> getDeptList(SysDept cond);

public String getDeptNameByDeptId(Long deptId);
public String getOrgCodeByDeptId(Long deptId);
public Long getDeptIdByOrgCode(String orgCode);
public String getRemoteUrlByOrgCode(String orgCode);
}

+ 4
- 0
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java 查看文件

@@ -140,4 +140,8 @@ public interface ISysDeptService
public List<SysDept> getDeptTree(SysDept dept);
public List<SysDept> 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);
}

+ 24
- 0
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);
}
}

+ 16
- 0
ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml 查看文件

@@ -211,4 +211,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if>
order by d.parent_id, d.order_num
</select>

<select id="getDeptNameByDeptId" parameterType="Long" resultType="String">
SELECT dept_name FROM sys_dept WHERE dept_id = #{deptId}
</select>

<select id="getOrgCodeByDeptId" parameterType="Long" resultType="String">
SELECT org_code FROM sys_dept WHERE dept_id = #{deptId}
</select>

<select id="getDeptIdByOrgCode" parameterType="String" resultType="Long">
SELECT dept_id FROM sys_dept WHERE org_code = #{orgCode}
</select>

<select id="getRemoteUrlByOrgCode" parameterType="String" resultType="String">
SELECT remote_url FROM sys_dept WHERE org_code = LEFT(#{orgCode}, 6)
</select>
</mapper>

Loading…
取消
儲存