@@ -2,7 +2,7 @@ package com.ruoyi.web.controller.agentcenter; | |||||
import com.ruoyi.agentcenter.domain.TAgentTask; | import com.ruoyi.agentcenter.domain.TAgentTask; | ||||
import com.ruoyi.agentcenter.service.ITAgentTaskService; | 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.controller.BaseController; | ||||
import com.ruoyi.common.core.domain.AjaxResult; | import com.ruoyi.common.core.domain.AjaxResult; | ||||
import com.ruoyi.common.core.page.TableDataInfo; | 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.RequestMapping; | ||||
import org.springframework.web.bind.annotation.RestController; | import org.springframework.web.bind.annotation.RestController; | ||||
import java.util.Arrays; | |||||
import java.util.List; | import java.util.List; | ||||
/** | /** | ||||
@@ -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)); | |||||
} | |||||
} |
@@ -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)); | |||||
} | |||||
} |
@@ -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)); | |||||
} | |||||
} |
@@ -39,6 +39,7 @@ public class DeptController extends BaseController | |||||
@GetMapping("/cityTree") | @GetMapping("/cityTree") | ||||
public AjaxResult cityTree(SysDept dept) | public AjaxResult cityTree(SysDept dept) | ||||
{ | { | ||||
dept.setAgentCenter(getUserAgentCenter()); | |||||
return success(deptService.getCityTree(dept)); | return success(deptService.getCityTree(dept)); | ||||
} | } | ||||
@@ -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); | |||||
} | |||||
} | |||||
} |
@@ -1,4 +1,4 @@ | |||||
package com.ruoyi.agentcenter.vo; | |||||
package com.ruoyi.agentcenter.dto; | |||||
import lombok.Data; | import lombok.Data; | ||||
import lombok.experimental.Accessors; | import lombok.experimental.Accessors; | ||||
@@ -17,6 +17,7 @@ public class AgentTaskTownGroup | |||||
private String townCode; | private String townCode; | ||||
private String orderYear; | private String orderYear; | ||||
private String orderMonth; | private String orderMonth; | ||||
private Long numVillage; | |||||
private List<AgentTaskVillageGroup> villageList; | private List<AgentTaskVillageGroup> villageList; | ||||
} | } |
@@ -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; | |||||
} | |||||
} |
@@ -1,4 +1,4 @@ | |||||
package com.ruoyi.agentcenter.vo; | |||||
package com.ruoyi.agentcenter.dto; | |||||
import com.fasterxml.jackson.annotation.JsonFormat; | import com.fasterxml.jackson.annotation.JsonFormat; | ||||
import com.ruoyi.agentcenter.domain.TAgentTask; | import com.ruoyi.agentcenter.domain.TAgentTask; | ||||
@@ -23,10 +23,12 @@ public class AgentTaskVillageGroup | |||||
private String orgCode; | private String orgCode; | ||||
private Long bookId; | private Long bookId; | ||||
private String bookName; | private String bookName; | ||||
private String distriDate; | |||||
private String handleDate; | |||||
private String distriDate; | |||||
private String handleDate; | |||||
private String endAt; | private String endAt; | ||||
private String handleNick; | private String handleNick; | ||||
private Boolean approvalFinish; | |||||
private List<TAgentTask> taskList; | private List<TAgentTask> taskList; | ||||
} | } |
@@ -2,8 +2,9 @@ package com.ruoyi.agentcenter.mapper; | |||||
import java.util.List; | import java.util.List; | ||||
import com.ruoyi.agentcenter.domain.TAgentTask; | 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接口 | * 任务清单Mapper接口 | ||||
@@ -106,7 +107,11 @@ public interface TAgentTaskMapper | |||||
public List<AgentTaskTownGroup> getAgentTaskGroupByTown(TAgentTask tAgentTask); | public List<AgentTaskTownGroup> getAgentTaskGroupByTown(TAgentTask tAgentTask); | ||||
public List<AgentTaskVillageGroup> getAgentTaskGroupByVillage(TAgentTask tAgentTask); | public List<AgentTaskVillageGroup> getAgentTaskGroupByVillage(TAgentTask tAgentTask); | ||||
public AgentTaskVillageGroup getAgentTaskVillageSummary(TAgentTask tAgentTask); | |||||
public List<AgentTaskVillageGroup> getProcessedAgentTaskGroupByVillage(TAgentTask tAgentTask); | public List<AgentTaskVillageGroup> getProcessedAgentTaskGroupByVillage(TAgentTask tAgentTask); | ||||
public Long getAgentTaskOverdueFinishVillageCount(TAgentTask tAgentTask); | public Long getAgentTaskOverdueFinishVillageCount(TAgentTask tAgentTask); | ||||
public List<TAgentTask> getTAgentTaskProcessedList(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); | |||||
} | } |
@@ -4,8 +4,11 @@ import java.util.List; | |||||
import java.util.function.Consumer; | import java.util.function.Consumer; | ||||
import com.ruoyi.agentcenter.domain.TAgentTask; | 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接口 | * 任务清单Service接口 | ||||
@@ -119,4 +122,12 @@ public interface ITAgentTaskService | |||||
public List<TAgentTask> getTodoTaskList(TAgentTask tAgentTask); | public List<TAgentTask> getTodoTaskList(TAgentTask tAgentTask); | ||||
public List<AgentTaskVillageGroup> getProcessedTaskList(TAgentTask tAgentTask); | public List<AgentTaskVillageGroup> getProcessedTaskList(TAgentTask tAgentTask); | ||||
public Long getAgentTaskOverdueFinishVillageCount(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); | |||||
} | } |
@@ -5,22 +5,25 @@ import java.util.Arrays; | |||||
import java.util.List; | import java.util.List; | ||||
import java.util.Map; | import java.util.Map; | ||||
import java.util.function.Consumer; | import java.util.function.Consumer; | ||||
import java.util.stream.Collectors; | |||||
import cn.hutool.core.collection.CollectionUtil; | import cn.hutool.core.collection.CollectionUtil; | ||||
import cn.hutool.core.lang.Assert; | 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.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.ContainerUtils; | ||||
import com.ruoyi.common.utils.DateUtils; | import com.ruoyi.common.utils.DateUtils; | ||||
import com.ruoyi.common.utils.DeptUtils; | import com.ruoyi.common.utils.DeptUtils; | ||||
import com.ruoyi.common.utils.PageUtils; | import com.ruoyi.common.utils.PageUtils; | ||||
import com.ruoyi.common.utils.StringUtils; | |||||
import com.ruoyi.system.mapper.SysDeptMapper; | import com.ruoyi.system.mapper.SysDeptMapper; | ||||
import com.ruoyi.system.mapper.SysUserMapper; | |||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
import org.springframework.transaction.annotation.Transactional; | import org.springframework.transaction.annotation.Transactional; | ||||
@@ -41,7 +44,9 @@ public class TAgentTaskServiceImpl implements ITAgentTaskService | |||||
@Autowired | @Autowired | ||||
private TAgentTaskMapper tAgentTaskMapper; | private TAgentTaskMapper tAgentTaskMapper; | ||||
@Autowired | @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); | Map<String, List<TAgentTask>> bookGroup = ContainerUtils.groupingBy(tAgentTasks, TAgentTask::getOrgCode); | ||||
agentTaskGroupByTown.forEach((town) -> { | 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<>())); | 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)); | tAgentTask.putParam("agentStatusList", Arrays.asList(TAgentTask.AGENT_STATUS_FINISHED, TAgentTask.AGENT_STATUS_AUDITED)); | ||||
return tAgentTaskMapper.getAgentTaskOverdueFinishVillageCount(tAgentTask); | 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; | |||||
} | |||||
} | } |
@@ -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; | |||||
} |
@@ -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; | |||||
} |
@@ -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); | |||||
} | |||||
} |
@@ -534,7 +534,7 @@ | |||||
where id = #{id} | where id = #{id} | ||||
</update> | </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="num" column="num"/> | ||||
<result property="numProcessFinish" column="num_process_finish"/> | <result property="numProcessFinish" column="num_process_finish"/> | ||||
<result property="numApprovalFinish" column="num_approval_finish"/> | <result property="numApprovalFinish" column="num_approval_finish"/> | ||||
@@ -543,16 +543,18 @@ | |||||
<result property="townCode" column="town_code"/> | <result property="townCode" column="town_code"/> | ||||
<result property="orderYear" column="order_year"/> | <result property="orderYear" column="order_year"/> | ||||
<result property="orderMonth" column="order_month"/> | <result property="orderMonth" column="order_month"/> | ||||
<result property="numVillage" column="num_village"/> | |||||
</resultMap> | </resultMap> | ||||
<select id="getAgentTaskGroupByTown" parameterType="TAgentTask" resultMap="AgentTaskTownGroupResultMap"> | <select id="getAgentTaskGroupByTown" parameterType="TAgentTask" resultMap="AgentTaskTownGroupResultMap"> | ||||
SELECT | SELECT | ||||
COUNT(*) as num, | 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, | town_name, town_code, | ||||
order_year, order_month, | 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 | FROM | ||||
t_agent_task | t_agent_task | ||||
<where> | <where> | ||||
@@ -566,7 +568,7 @@ | |||||
ORDER BY town_code | ORDER BY town_code | ||||
</select> | </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="num" column="num"/> | ||||
<result property="numProcessFinish" column="num_process_finish"/> | <result property="numProcessFinish" column="num_process_finish"/> | ||||
<result property="numApprovalFinish" column="num_approval_finish"/> | <result property="numApprovalFinish" column="num_approval_finish"/> | ||||
@@ -586,7 +588,7 @@ | |||||
<select id="getAgentTaskGroupByVillage" parameterType="TAgentTask" resultMap="AgentTaskVillageGroupResultMap"> | <select id="getAgentTaskGroupByVillage" parameterType="TAgentTask" resultMap="AgentTaskVillageGroupResultMap"> | ||||
SELECT | SELECT | ||||
COUNT(*) as num, | 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, | IFNULL(SUM(IF(is_audit = 'Y', 1, 0)), 0) as num_approval_finish, | ||||
org_name, org_code, town_code, | 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, | 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 | ORDER BY org_code | ||||
</select> | </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 id="getProcessedAgentTaskGroupByVillage" parameterType="TAgentTask" resultMap="AgentTaskVillageGroupResultMap"> | ||||
SELECT | SELECT | ||||
COUNT(*) as num, | COUNT(*) as num, | ||||
@@ -676,4 +701,89 @@ | |||||
</if> | </if> | ||||
</where> | </where> | ||||
</select> | </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> | </mapper> |
@@ -117,6 +117,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter | |||||
.antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll() | .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll() | ||||
// 外部上报通道 | // 外部上报通道 | ||||
.antMatchers("/agentcenter/api/**").permitAll() | .antMatchers("/agentcenter/api/**").permitAll() | ||||
.antMatchers("/open/**").permitAll() | |||||
// 除上面外的所有请求全部需要鉴权认证 | // 除上面外的所有请求全部需要鉴权认证 | ||||
.anyRequest().authenticated() | .anyRequest().authenticated() | ||||
.and() | .and() | ||||
@@ -125,4 +125,9 @@ public interface SysDeptMapper | |||||
public SysDept selectSysDeptByOrgCode(String orgCode); | public SysDept selectSysDeptByOrgCode(String orgCode); | ||||
public List<SysDept> getDeptList(SysDept cond); | 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); | |||||
} | } |
@@ -140,4 +140,8 @@ public interface ISysDeptService | |||||
public List<SysDept> getDeptTree(SysDept dept); | public List<SysDept> getDeptTree(SysDept dept); | ||||
public List<SysDept> getCityTree(SysDept dept); | public List<SysDept> getCityTree(SysDept dept); | ||||
public SysDept selectSysDeptByOrgCode(String orgCode); | 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); | |||||
} | } |
@@ -388,4 +388,28 @@ public class SysDeptServiceImpl implements ISysDeptService | |||||
{ | { | ||||
return deptMapper.selectSysDeptByOrgCode(orgCode); | 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); | |||||
} | |||||
} | } |
@@ -211,4 +211,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |||||
</if> | </if> | ||||
order by d.parent_id, d.order_num | order by d.parent_id, d.order_num | ||||
</select> | </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> | </mapper> |