| | |
| | | package com.ruoyi.web.controller.api; |
| | | |
| | | |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.ruoyi.common.annotation.Log; |
| | | import com.ruoyi.common.basic.PageInfo; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.enums.BusinessType; |
| | | import com.ruoyi.framework.web.service.TokenService; |
| | | import com.ruoyi.system.dto.TMissionAssignRuleDTO; |
| | | import com.ruoyi.system.model.TMissionAssignRule; |
| | | import com.ruoyi.system.model.TMissionAssignRuleIndicator; |
| | | import com.ruoyi.system.query.TMissionAssignRuleQuery; |
| | | import com.ruoyi.system.service.TMissionAssignRuleIndicatorService; |
| | | import com.ruoyi.system.service.TMissionAssignRuleService; |
| | | import com.ruoyi.system.vo.TMissionAssignRuleVO; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.util.CollectionUtils; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | * @author xiaochen |
| | | * @since 2025-09-28 |
| | | */ |
| | | @Api(tags = "任务指派规则") |
| | | @RestController |
| | | @RequestMapping("/t-mission-assign-rule") |
| | | @RequestMapping("") |
| | | public class TMissionAssignRuleController { |
| | | |
| | | private final TMissionAssignRuleService missionAssignRuleService; |
| | | private final TMissionAssignRuleIndicatorService missionAssignRuleIndicatorService; |
| | | private final TokenService tokenService; |
| | | @Autowired |
| | | public TMissionAssignRuleController(TMissionAssignRuleService missionAssignRuleService, TMissionAssignRuleIndicatorService missionAssignRuleIndicatorService, TokenService tokenService) { |
| | | this.missionAssignRuleService = missionAssignRuleService; |
| | | this.missionAssignRuleIndicatorService = missionAssignRuleIndicatorService; |
| | | this.tokenService = tokenService; |
| | | } |
| | | |
| | | /** |
| | | * 任务指派规则列表 |
| | | */ |
| | | //@PreAuthorize("@ss.hasPermi('system:missionAssignRule:list')") |
| | | @ApiOperation(value = "任务指派规则分页列表", response = TMissionAssignRuleQuery.class) |
| | | @PostMapping(value = "/api/t-mission-assign-rule/pageList") |
| | | public R<PageInfo<TMissionAssignRuleVO>> pageList(@RequestBody String param) { |
| | | TMissionAssignRuleQuery query = JSON.parseObject(param, TMissionAssignRuleQuery.class); |
| | | return R.ok(missionAssignRuleService.pageList(query)); |
| | | } |
| | | |
| | | /** |
| | | * 添加任务指派规则管理 |
| | | */ |
| | | //@PreAuthorize("@ss.hasPermi('system:missionAssignRule:add')") |
| | | @Log(title = "任务指派规则信息-新增任务指派规则", businessType = BusinessType.INSERT) |
| | | @ApiOperation(value = "添加任务指派规则",response = TMissionAssignRuleDTO.class) |
| | | @PostMapping(value = "/api/t-mission-assign-rule/add") |
| | | public R<Boolean> add(@RequestBody String param) { |
| | | TMissionAssignRuleDTO dto = JSON.parseObject(param,TMissionAssignRuleDTO.class); |
| | | if(missionAssignRuleService.isExit(dto)){ |
| | | return R.fail("该任务类型已存在"); |
| | | } |
| | | List<TMissionAssignRuleIndicator> missionAssignRuleIndicators = dto.getMissionAssignRuleIndicators(); |
| | | if(CollectionUtils.isEmpty(missionAssignRuleIndicators)){ |
| | | return R.fail("指派指标不可为空"); |
| | | } |
| | | missionAssignRuleService.save(dto); |
| | | // 存储指派指标详情 |
| | | missionAssignRuleIndicators.forEach(missionAssignRuleIndicator -> { |
| | | missionAssignRuleIndicator.setRuleId(dto.getId()); |
| | | }); |
| | | missionAssignRuleIndicatorService.saveBatch(missionAssignRuleIndicators); |
| | | return R.ok(); |
| | | } |
| | | |
| | | /** |
| | | * 修改任务指派规则 |
| | | */ |
| | | //@PreAuthorize("@ss.hasPermi('system:missionAssignRule:edit')") |
| | | @Log(title = "任务指派规则信息-修改任务指派规则", businessType = BusinessType.UPDATE) |
| | | @ApiOperation(value = "修改任务指派规则") |
| | | @PostMapping(value = "/api/t-mission-assign-rule/update") |
| | | public R<Boolean> update(@RequestBody String param) { |
| | | TMissionAssignRuleDTO dto = JSON.parseObject(param,TMissionAssignRuleDTO.class); |
| | | if(missionAssignRuleService.isExit(dto)){ |
| | | return R.fail("该任务类型已存在"); |
| | | } |
| | | List<TMissionAssignRuleIndicator> missionAssignRuleIndicators = dto.getMissionAssignRuleIndicators(); |
| | | if(CollectionUtils.isEmpty(missionAssignRuleIndicators)){ |
| | | return R.fail("指派指标不可为空"); |
| | | } |
| | | missionAssignRuleService.updateById(dto); |
| | | // 删除指标 |
| | | missionAssignRuleIndicatorService.remove(Wrappers.lambdaQuery(TMissionAssignRuleIndicator.class).eq(TMissionAssignRuleIndicator::getRuleId,dto.getId())); |
| | | // 存储指派指标详情 |
| | | missionAssignRuleIndicators.forEach(missionAssignRuleIndicator -> { |
| | | missionAssignRuleIndicator.setRuleId(dto.getId()); |
| | | }); |
| | | missionAssignRuleIndicatorService.saveBatch(missionAssignRuleIndicators); |
| | | return R.ok(); |
| | | } |
| | | |
| | | /** |
| | | * 查看任务指派规则详情 |
| | | */ |
| | | //@PreAuthorize("@ss.hasPermi('system:missionAssignRule:detail')") |
| | | @ApiOperation(value = "查看任务指派规则详情") |
| | | @GetMapping(value = "/open/t-mission-assign-rule/getDetailById") |
| | | public R<TMissionAssignRuleVO> getDetailById(@RequestParam String id) { |
| | | TMissionAssignRule missionAssignRule = missionAssignRuleService.getById(id); |
| | | TMissionAssignRuleVO missionAssignRuleVO = new TMissionAssignRuleVO(); |
| | | BeanUtils.copyProperties(missionAssignRule, missionAssignRuleVO); |
| | | // 查询指派指标详情 |
| | | List<TMissionAssignRuleIndicator> missionAssignRuleIndicators = missionAssignRuleIndicatorService.list(Wrappers.lambdaQuery(TMissionAssignRuleIndicator.class) |
| | | .eq(TMissionAssignRuleIndicator::getRuleId,id)); |
| | | missionAssignRuleVO.setMissionAssignRuleIndicators(missionAssignRuleIndicators); |
| | | return R.ok(missionAssignRuleVO); |
| | | } |
| | | |
| | | /** |
| | | * 删除任务指派规则 |
| | | */ |
| | | //@PreAuthorize("@ss.hasPermi('system:missionAssignRule:delete')") |
| | | @Log(title = "任务指派规则信息-删除任务指派规则", businessType = BusinessType.DELETE) |
| | | @ApiOperation(value = "删除任务指派规则") |
| | | @DeleteMapping(value = "/open/t-mission-assign-rule/deleteById") |
| | | public R<Boolean> deleteById(@RequestParam String id) { |
| | | return R.ok(missionAssignRuleService.removeById(id)); |
| | | } |
| | | |
| | | /** |
| | | * 批量删除任务指派规则 |
| | | */ |
| | | //@PreAuthorize("@ss.hasPermi('system:missionAssignRule:delete')") |
| | | @Log(title = "任务指派规则信息-删除任务指派规则", businessType = BusinessType.DELETE) |
| | | @ApiOperation(value = "批量删除任务指派规则") |
| | | @DeleteMapping(value = "/open/t-mission-assign-rule/deleteByIds") |
| | | public R<Boolean> deleteByIds(@RequestBody List<String> ids) { |
| | | return R.ok(missionAssignRuleService.removeByIds(ids)); |
| | | } |
| | | |
| | | } |
| | | |
| | |
| | | import com.ruoyi.system.query.TMissionQuery; |
| | | import com.ruoyi.system.service.TMissionReassignService; |
| | | import com.ruoyi.system.service.TMissionService; |
| | | import com.ruoyi.system.vo.TMissionReassignVO; |
| | | import com.ruoyi.system.vo.TMissionVO; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | |
| | | /** |
| | | * 任务管理列表 |
| | | */ |
| | | //@PreAuthorize("@ss.hasPermi('system:mission:list')") |
| | | @ApiOperation(value = "任务管理分页列表", response = TMissionQuery.class) |
| | | @PostMapping(value = "/api/t-mission/pageList") |
| | | public R<PageInfo<TMissionVO>> pageList(@RequestBody String param) { |
| | | //@PreAuthorize("@ss.hasPermi('system:mission:pageListAssigned')") |
| | | @ApiOperation(value = "任务管理分页列表-待分配任务池", response = TMissionQuery.class) |
| | | @PostMapping(value = "/api/t-mission/pageListAssigned") |
| | | public R<PageInfo<TMissionVO>> pageListAssigned(@RequestBody String param) { |
| | | TMissionQuery query = JSON.parseObject(param, TMissionQuery.class); |
| | | return R.ok(missionService.pageList(query)); |
| | | return R.ok(missionService.pageListAssigned(query)); |
| | | } |
| | | |
| | | /** |
| | | * 任务管理列表 |
| | | */ |
| | | //@PreAuthorize("@ss.hasPermi('system:mission:pageListReassignAudit')") |
| | | @ApiOperation(value = "任务管理分页列表-改派支援审核", response = TMissionReassignVO.class) |
| | | @PostMapping(value = "/api/t-mission/pageListReassignAudit") |
| | | public R<PageInfo<TMissionReassignVO>> pageListReassignAudit(@RequestBody String param) { |
| | | TMissionQuery query = JSON.parseObject(param, TMissionQuery.class); |
| | | return R.ok(missionService.pageListReassignAudit(query)); |
| | | } |
| | | |
| | | /** |
| | | * 任务管理列表 |
| | | */ |
| | | //@PreAuthorize("@ss.hasPermi('system:mission:pageListMissionPool')") |
| | | @ApiOperation(value = "任务管理分页列表-抢单任务池", response = TMissionVO.class) |
| | | @PostMapping(value = "/api/t-mission/pageListMissionPool") |
| | | public R<PageInfo<TMissionVO>> pageListMissionPool(@RequestBody String param) { |
| | | TMissionQuery query = JSON.parseObject(param, TMissionQuery.class); |
| | | return R.ok(missionService.pageListMissionPool(query)); |
| | | } |
| | | |
| | | /** |
New file |
| | |
| | | package com.ruoyi.system.dto; |
| | | |
| | | import com.ruoyi.system.model.TMissionAssignRule; |
| | | import com.ruoyi.system.model.TMissionAssignRuleIndicator; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.util.List; |
| | | |
| | | @Data |
| | | @ApiModel(value="TMissionAssignRuleDTO对象", description="任务指派规则DTO") |
| | | public class TMissionAssignRuleDTO extends TMissionAssignRule { |
| | | |
| | | @ApiModelProperty(value = "规则详情集合") |
| | | private List<TMissionAssignRuleIndicator> missionAssignRuleIndicators; |
| | | |
| | | } |
| | |
| | | package com.ruoyi.system.mapper; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.ruoyi.common.basic.PageInfo; |
| | | import com.ruoyi.system.model.TMissionAssignRule; |
| | | import com.ruoyi.system.query.TMissionAssignRuleQuery; |
| | | import com.ruoyi.system.vo.TMissionAssignRuleVO; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | */ |
| | | public interface TMissionAssignRuleMapper extends BaseMapper<TMissionAssignRule> { |
| | | |
| | | /** |
| | | * 任务指派规则列表 |
| | | * @param pageInfo |
| | | * @param query |
| | | * @return |
| | | */ |
| | | List<TMissionAssignRuleVO> pageList(@Param("query") TMissionAssignRuleQuery query, @Param("pageInfo")PageInfo<TMissionAssignRuleVO> pageInfo); |
| | | } |
| | |
| | | package com.ruoyi.system.mapper; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.ruoyi.common.basic.PageInfo; |
| | | import com.ruoyi.system.model.TMission; |
| | | import com.ruoyi.system.query.TMissionQuery; |
| | | import com.ruoyi.system.vo.TMissionReassignVO; |
| | | import com.ruoyi.system.vo.TMissionVO; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | */ |
| | | public interface TMissionMapper extends BaseMapper<TMission> { |
| | | |
| | | /** |
| | | * 获取任务管理列表 |
| | | * @param pageInfo |
| | | * @param query |
| | | * @return |
| | | */ |
| | | List<TMissionVO> pageListAssigned(@Param("query") TMissionQuery query, @Param("pageInfo") PageInfo<TMissionVO> pageInfo); |
| | | |
| | | /** |
| | | * 待改派审核分页列表 |
| | | * @param query |
| | | * @return |
| | | */ |
| | | List<TMissionReassignVO> pageListReassignAudit(@Param("query")TMissionQuery query, @Param("pageInfo")PageInfo<TMissionReassignVO> pageInfo); |
| | | |
| | | /** |
| | | * 获取任务池管理列表 |
| | | * @param query |
| | | * @return |
| | | */ |
| | | List<TMissionVO> pageListMissionPool(@Param("query")TMissionQuery query, @Param("pageInfo")PageInfo<TMissionVO> pageInfo); |
| | | |
| | | } |
| | |
| | | @TableField("state") |
| | | private Integer state; |
| | | |
| | | |
| | | @ApiModelProperty(value = "状态 0待审核 1通过 2拒绝") |
| | | private Integer state; |
| | | |
| | | @ApiModelProperty(value = "职业技能") |
| | | private String level; |
| | | |
| | |
| | | @TableField("attempt_score") |
| | | private Double attemptScore; |
| | | |
| | | @ApiModelProperty(value = "指派时间") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | @TableField("assign_time") |
| | | private LocalDateTime assignTime; |
| | | |
| | | @ApiModelProperty(value = "接收时间") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | @TableField("receive_time") |
| | | private LocalDateTime receiveTime; |
| | | |
| | | @ApiModelProperty(value = "完成时间") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | @TableField("finish_time") |
| | | private LocalDateTime finishTime; |
| | | |
| | | @ApiModelProperty(value = "是否在任务池 1=是 0=否") |
| | | @TableField("is_mission_pool") |
| | | private Integer isMissionPool; |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package com.ruoyi.system.query; |
| | | |
| | | import com.ruoyi.common.core.domain.BasePage; |
| | | import io.swagger.annotations.ApiModel; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | @ApiModel(value = "任务指派规则查询参数TMissionAssignRuleQuery", description = "任务指派规则查询参数") |
| | | public class TMissionAssignRuleQuery extends BasePage { |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | import com.ruoyi.common.core.domain.BasePage; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | @ApiModel(value = "任务管理查询参数query") |
| | | @ApiModel(value = "任务管理待分配列表查询参数query") |
| | | public class TMissionQuery extends BasePage { |
| | | |
| | | @ApiModelProperty(value = "紧急程度 1=一般 2=加急 3=特急") |
| | | private Integer urgencyLevel; |
| | | |
| | | @ApiModelProperty(value = "任务内容") |
| | | private String missionContent; |
| | | |
| | | @ApiModelProperty(value = "负责人") |
| | | private String chargePerson; |
| | | |
| | | @ApiModelProperty(value = "状态 1=待指派 2=待完成 3=待评分 4=已完成 5=待改派") |
| | | private Integer status; |
| | | |
| | | @ApiModelProperty(value = "类型 1=改派 2=支援 改派支援审核使用") |
| | | private Integer reassignType; |
| | | } |
| | |
| | | package com.ruoyi.system.service; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.ruoyi.common.basic.PageInfo; |
| | | import com.ruoyi.system.dto.TMissionAssignRuleDTO; |
| | | import com.ruoyi.system.model.TMissionAssignRule; |
| | | import com.ruoyi.system.query.TMissionAssignRuleQuery; |
| | | import com.ruoyi.system.vo.TMissionAssignRuleVO; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | */ |
| | | public interface TMissionAssignRuleService extends IService<TMissionAssignRule> { |
| | | |
| | | /** |
| | | * 判断任务指派规则是否存在 |
| | | * @param dto |
| | | * @return |
| | | */ |
| | | boolean isExit(TMissionAssignRuleDTO dto); |
| | | |
| | | /** |
| | | * 任务指派规则列表 |
| | | * @param query |
| | | * @return |
| | | */ |
| | | PageInfo<TMissionAssignRuleVO> pageList(TMissionAssignRuleQuery query); |
| | | |
| | | } |
| | |
| | | import com.ruoyi.common.basic.PageInfo; |
| | | import com.ruoyi.system.model.TMission; |
| | | import com.ruoyi.system.query.TMissionQuery; |
| | | import com.ruoyi.system.vo.TMissionReassignVO; |
| | | import com.ruoyi.system.vo.TMissionVO; |
| | | |
| | | /** |
| | |
| | | * @param query |
| | | * @return |
| | | */ |
| | | PageInfo<TMissionVO> pageList(TMissionQuery query); |
| | | PageInfo<TMissionVO> pageListAssigned(TMissionQuery query); |
| | | |
| | | /** |
| | | * 待改派审核分页列表 |
| | | * @param query |
| | | * @return |
| | | */ |
| | | PageInfo<TMissionReassignVO> pageListReassignAudit(TMissionQuery query); |
| | | |
| | | /** |
| | | * 抢单任务池分页列表 |
| | | * @param query |
| | | * @return |
| | | */ |
| | | PageInfo<TMissionVO> pageListMissionPool(TMissionQuery query); |
| | | |
| | | } |
| | |
| | | package com.ruoyi.system.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.common.basic.PageInfo; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.system.dto.TMissionAssignRuleDTO; |
| | | import com.ruoyi.system.mapper.TMissionAssignRuleMapper; |
| | | import com.ruoyi.system.model.TMissionAssignRule; |
| | | import com.ruoyi.system.query.TMissionAssignRuleQuery; |
| | | import com.ruoyi.system.service.TMissionAssignRuleService; |
| | | import com.ruoyi.system.vo.TMissionAssignRuleVO; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @Service |
| | | public class TMissionAssignRuleServiceImpl extends ServiceImpl<TMissionAssignRuleMapper, TMissionAssignRule> implements TMissionAssignRuleService { |
| | | |
| | | @Override |
| | | public boolean isExit(TMissionAssignRuleDTO dto) { |
| | | if(StringUtils.isNotEmpty(dto.getId())){ |
| | | // 修改 |
| | | return this.count(Wrappers.lambdaQuery(TMissionAssignRule.class).ne(TMissionAssignRule::getId, dto.getId()).eq(TMissionAssignRule::getTypeName, dto.getTypeName())) > 0; |
| | | }else { |
| | | // 新增 |
| | | return this.count(Wrappers.lambdaQuery(TMissionAssignRule.class).eq(TMissionAssignRule::getTypeName, dto.getTypeName())) > 0; |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public PageInfo<TMissionAssignRuleVO> pageList(TMissionAssignRuleQuery query) { |
| | | PageInfo<TMissionAssignRuleVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); |
| | | List<TMissionAssignRuleVO> list = this.baseMapper.pageList(query,pageInfo); |
| | | pageInfo.setRecords(list); |
| | | return pageInfo; |
| | | } |
| | | } |
| | |
| | | import com.ruoyi.system.model.TMission; |
| | | import com.ruoyi.system.query.TMissionQuery; |
| | | import com.ruoyi.system.service.TMissionService; |
| | | import com.ruoyi.system.vo.TMissionReassignVO; |
| | | import com.ruoyi.system.vo.TMissionVO; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.time.Duration; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | public class TMissionServiceImpl extends ServiceImpl<TMissionMapper, TMission> implements TMissionService { |
| | | |
| | | @Override |
| | | public PageInfo<TMissionVO> pageList(TMissionQuery query) { |
| | | return null; |
| | | public PageInfo<TMissionVO> pageListAssigned(TMissionQuery query) { |
| | | PageInfo<TMissionVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); |
| | | List<TMissionVO> list = this.baseMapper.pageListAssigned(query, pageInfo); |
| | | if(CollectionUtils.isEmpty(list)){ |
| | | return pageInfo; |
| | | } |
| | | // 计算时间差 |
| | | for (TMissionVO tMissionVO : list) { |
| | | if(Objects.nonNull(tMissionVO.getAssignTime())){ |
| | | if(Objects.nonNull(tMissionVO.getReceiveTime())){ |
| | | // 计算LocalDateTime两个时间相差秒数 |
| | | Duration duration = Duration.between(tMissionVO.getAssignTime(), tMissionVO.getReceiveTime()); |
| | | tMissionVO.setResponseTimePoor(duration.getSeconds()); |
| | | } |
| | | if(Objects.nonNull(tMissionVO.getFinishTime())){ |
| | | // 计算LocalDateTime两个时间相差小时 |
| | | Duration duration = Duration.between(tMissionVO.getReceiveTime(), tMissionVO.getFinishTime()); |
| | | double minutes = (double) duration.toMinutes(); |
| | | minutes = minutes / 60; |
| | | tMissionVO.setFinishTimePoor(minutes); |
| | | } |
| | | } |
| | | } |
| | | pageInfo.setRecords(list); |
| | | return pageInfo; |
| | | } |
| | | |
| | | @Override |
| | | public PageInfo<TMissionReassignVO> pageListReassignAudit(TMissionQuery query) { |
| | | PageInfo<TMissionReassignVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); |
| | | List<TMissionReassignVO> list = this.baseMapper.pageListReassignAudit(query, pageInfo); |
| | | pageInfo.setRecords(list); |
| | | return pageInfo; |
| | | } |
| | | |
| | | @Override |
| | | public PageInfo<TMissionVO> pageListMissionPool(TMissionQuery query) { |
| | | PageInfo<TMissionVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); |
| | | List<TMissionVO> list = this.baseMapper.pageListMissionPool(query, pageInfo); |
| | | if(CollectionUtils.isEmpty(list)){ |
| | | return pageInfo; |
| | | } |
| | | // 计算时间差 |
| | | for (TMissionVO tMissionVO : list) { |
| | | if(Objects.nonNull(tMissionVO.getAssignTime())){ |
| | | if(Objects.nonNull(tMissionVO.getReceiveTime())){ |
| | | // 计算LocalDateTime两个时间相差秒数 |
| | | Duration duration = Duration.between(tMissionVO.getAssignTime(), tMissionVO.getReceiveTime()); |
| | | tMissionVO.setResponseTimePoor(duration.getSeconds()); |
| | | } |
| | | if(Objects.nonNull(tMissionVO.getFinishTime())){ |
| | | // 计算LocalDateTime两个时间相差小时 |
| | | Duration duration = Duration.between(tMissionVO.getReceiveTime(), tMissionVO.getFinishTime()); |
| | | double minutes = (double) duration.toMinutes(); |
| | | minutes = minutes / 60; |
| | | tMissionVO.setFinishTimePoor(minutes); |
| | | } |
| | | } |
| | | } |
| | | pageInfo.setRecords(list); |
| | | return pageInfo; |
| | | } |
| | | } |
New file |
| | |
| | | package com.ruoyi.system.vo; |
| | | |
| | | import com.ruoyi.system.model.TMissionAssignRule; |
| | | import com.ruoyi.system.model.TMissionAssignRuleIndicator; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.util.List; |
| | | |
| | | @Data |
| | | @ApiModel(value = "TMissionAssignRuleVO对象", description = "任务指派规则视图对象") |
| | | public class TMissionAssignRuleVO extends TMissionAssignRule { |
| | | |
| | | @ApiModelProperty(value = "任务指派指标列表") |
| | | private List<TMissionAssignRuleIndicator> missionAssignRuleIndicators; |
| | | |
| | | } |
New file |
| | |
| | | package com.ruoyi.system.vo; |
| | | |
| | | import com.ruoyi.system.model.TMissionReassign; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | @ApiModel(value = "任务支援、改派TMissionReassignVO") |
| | | public class TMissionReassignVO extends TMissionReassign { |
| | | |
| | | @ApiModelProperty(value = "负责人") |
| | | private String chargePerson; |
| | | |
| | | @ApiModelProperty(value = "紧急程度 1=一般 2=加急 3=特急") |
| | | private Integer urgencyLevel; |
| | | |
| | | @ApiModelProperty(value = "任务内容") |
| | | private String missionContent; |
| | | |
| | | @ApiModelProperty(value = "任务音频") |
| | | private String missionAudio; |
| | | |
| | | @ApiModelProperty(value = "任务图片") |
| | | private String missionPictures; |
| | | |
| | | @ApiModelProperty(value = "状态 1=待指派 2=待完成 3=待评分 4=已完成 5=待改派") |
| | | private Integer status; |
| | | } |
| | |
| | | |
| | | import com.ruoyi.system.model.TMission; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | @ApiModel(value = "任务管理对象TMissionVO") |
| | | public class TMissionVO extends TMission { |
| | | |
| | | @ApiModelProperty(value = "负责人") |
| | | private String chargePerson; |
| | | |
| | | @ApiModelProperty(value = "任务评分") |
| | | private Double missionScore; |
| | | |
| | | @ApiModelProperty(value = "响应时间差") |
| | | private Long responseTimePoor; |
| | | |
| | | @ApiModelProperty(value = "完成时间差") |
| | | private Double finishTimePoor; |
| | | |
| | | } |
| | |
| | | <sql id="Base_Column_List"> |
| | | id, type_name, rule_type, rule_value, create_time, update_time, create_by, update_by, disabled |
| | | </sql> |
| | | <select id="pageList" resultType="com.ruoyi.system.vo.TMissionAssignRuleVO"> |
| | | SELECT |
| | | <include refid="Base_Column_List"/> |
| | | FROM t_mission_assign_rule |
| | | where disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} |
| | | order by create_time desc |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | <result column="person_count_score" property="personCountScore" /> |
| | | <result column="equipment_score" property="equipmentScore" /> |
| | | <result column="attempt_score" property="attemptScore" /> |
| | | <result column="assign_time" property="assignTime" /> |
| | | <result column="receive_time" property="receiveTime" /> |
| | | <result column="finish_time" property="finishTime" /> |
| | | <result column="is_mission_pool" property="isMissionPool" /> |
| | | <result column="create_time" property="createTime" /> |
| | | <result column="update_time" property="updateTime" /> |
| | | <result column="create_by" property="createBy" /> |
| | |
| | | <sql id="Base_Column_List"> |
| | | id, urgency_level, address, mission_lon, mission_lat, mission_content, mission_audio, mission_pictures, |
| | | mission_electronic, status, mission_type_id, commit_user_name, commit_time, commit_user_id, commit_type, |
| | | address_score, time_score, person_count_score, equipment_score, attempt_score,finish_time, create_time, |
| | | update_time, create_by, update_by, disabled |
| | | address_score, time_score, person_count_score, equipment_score, attempt_score,assign_time,receive_time, |
| | | finish_time,is_mission_pool, create_time,update_time, create_by, update_by, disabled |
| | | </sql> |
| | | <select id="pageListAssigned" resultType="com.ruoyi.system.vo.TMissionVO"> |
| | | select tm.id, tm.urgency_level, tm.address, tm.mission_lon, tm.mission_lat, tm.mission_content, tm.mission_audio, tm.mission_pictures, |
| | | tm.mission_electronic, tm.status, tm.mission_type_id, tm.assign_time,tm.receive_time,tm.finish_time,tmu.app_user_id, |
| | | tau.nick_name as chargePerson,(tm.address_score, tm.time_score, tm.person_count_score, tm.equipment_score, tm.attempt_score) as missionScore |
| | | from t_mission tm |
| | | left join t_mission_user tmu on tm.id = tmu.mission_id and tmu.user_type = 1 |
| | | left join t_app_user tau on tau.id = tmu.app_user_id |
| | | <where> |
| | | <if test="query.urgencyLevel != null"> |
| | | and tm.urgency_level = #{query.urgencyLevel} |
| | | </if> |
| | | <if test="query.missionContent != null and query.missionContent != ''"> |
| | | and tm.mission_content like concat('%',#{query.missionContent},'%') |
| | | </if> |
| | | <if test="query.chargePerson != null and query.chargePerson != ''"> |
| | | and tau.nick_name like concat('%',#{query.chargePerson},'%') |
| | | </if> |
| | | <if test="query.status != null"> |
| | | and tm.status = #{query.status} |
| | | </if> |
| | | AND tm.is_mission_pool = 0 |
| | | AND tm.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} |
| | | </where> |
| | | order by tm.create_time desc |
| | | </select> |
| | | <select id="pageListReassignAudit" resultType="com.ruoyi.system.vo.TMissionReassignVO"> |
| | | select |
| | | tmr.id, tmr.mission_id, tmr.support_person_count, tmr.remark,tmr.reassign_type, tm.urgency_level, tm.mission_content, tm.mission_audio, |
| | | tm.mission_pictures,tm.status, tmu.app_user_id,tau.nick_name as chargePerson |
| | | from t_mission_reassign tmr |
| | | left join t_mission tm on tmr.mission_id = tm.id |
| | | left join t_mission_user tmu on tm.id = tmu.mission_id and tmu.user_type = 1 |
| | | left join t_app_user tau on tau.id = tmu.app_user_id |
| | | <where> |
| | | <if test="query.urgencyLevel != null"> |
| | | and tm.urgency_level = #{query.urgencyLevel} |
| | | </if> |
| | | <if test="query.missionContent != null and query.missionContent != ''"> |
| | | and tm.mission_content like concat('%',#{query.missionContent},'%') |
| | | </if> |
| | | <if test="query.chargePerson != null and query.chargePerson != ''"> |
| | | and tau.nick_name like concat('%',#{query.chargePerson},'%') |
| | | </if> |
| | | <if test="query.status != null"> |
| | | and tm.status = #{query.status} |
| | | </if> |
| | | <if test="query.reassignType != null"> |
| | | and tmr.reassign_type = #{query.reassignType} |
| | | </if> |
| | | AND tm.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} |
| | | </where> |
| | | order by tmr.commit_time desc |
| | | </select> |
| | | <select id="pageListMissionPool" resultType="com.ruoyi.system.vo.TMissionVO"> |
| | | select tm.id, tm.urgency_level, tm.address, tm.mission_lon, tm.mission_lat, tm.mission_content, tm.mission_audio, tm.mission_pictures, |
| | | tm.mission_electronic, tm.status, tm.mission_type_id, tm.assign_time,tm.receive_time,tm.finish_time,tmu.app_user_id, |
| | | tau.nick_name as chargePerson,(tm.address_score, tm.time_score, tm.person_count_score, tm.equipment_score, tm.attempt_score) as missionScore |
| | | from t_mission tm |
| | | left join t_mission_user tmu on tm.id = tmu.mission_id and tmu.user_type = 1 |
| | | left join t_app_user tau on tau.id = tmu.app_user_id |
| | | <where> |
| | | <if test="query.urgencyLevel != null"> |
| | | and tm.urgency_level = #{query.urgencyLevel} |
| | | </if> |
| | | <if test="query.missionContent != null and query.missionContent != ''"> |
| | | and tm.mission_content like concat('%',#{query.missionContent},'%') |
| | | </if> |
| | | <if test="query.chargePerson != null and query.chargePerson != ''"> |
| | | and tau.nick_name like concat('%',#{query.chargePerson},'%') |
| | | </if> |
| | | <if test="query.status != null"> |
| | | and tm.status = #{query.status} |
| | | </if> |
| | | and tm.status in (1,2) |
| | | AND tm.is_mission_pool = 1 |
| | | AND tm.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} |
| | | </where> |
| | | order by tm.create_time desc |
| | | </select> |
| | | |
| | | </mapper> |