ycl-platform/src/main/java/com/ycl/controller/caseHandler/BaseCaseController.java
@@ -2,6 +2,7 @@ import com.alibaba.druid.util.StringUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ycl.api.CommonResult; @@ -9,6 +10,7 @@ import com.ycl.dto.casePool.IllegalBuildingParam; import com.ycl.dto.casePool.ViolationParam; import com.ycl.entity.caseHandler.BaseCase; import com.ycl.entity.caseHandler.DisposeRecord; import com.ycl.service.caseHandler.IBaseCaseService; import com.ycl.service.caseHandler.IDisposeRecordService; import com.ycl.service.caseHandler.IIllegalBuildingService; @@ -36,7 +38,7 @@ * @since 2022-09-24 */ @RestController @RequestMapping("/base-case") @RequestMapping("/base_case") @Api(tags = "案件池") public class BaseCaseController extends BaseController { @@ -204,7 +206,7 @@ return CommonResult.success(baseCaseService.baseCaseDetail(code)); } @ApiOperation("人工路径案件图片展示") @ApiOperation(value = "人工路径案件图片展示") @GetMapping("/hand_work_case_images") @ApiImplicitParams({ @ApiImplicitParam(name = "type", value = "01 违规,02 违建", dataType = "Integer") @@ -213,13 +215,46 @@ return CommonResult.success(baseCaseService.listCaseImages(id, type)); } @ApiOperation("案件暂不处理") @PutMapping("/case_leave") public CommonResult updateCaseStatus(@RequestParam Integer caseId) { Integer leaveType = 8; /** * @return com.ycl.api.CommonResult * @Description case status update * @Param [caseId, status] **/ @ApiOperation(value = "案件状态修改") @PutMapping("/case_status_update") @ApiImplicitParams({ @ApiImplicitParam(value = "处理状态(0误报 1上报 2立案 3派遣 4处置 5核查 6结案7处理中8暂不处理)",name = "state") }) public CommonResult updateCaseStatus(@RequestParam Integer caseId, @RequestParam Integer state) { return CommonResult.success(baseCaseService .update(new LambdaUpdateWrapper<BaseCase>() .eq(BaseCase::getId, caseId) .set(BaseCase::getState, leaveType))); .set(BaseCase::getState, state))); } /** * @return com.ycl.api.CommonResult * @Description reset case * @Param [caseId] **/ @ApiOperation(value = "暂不处置重新处置") @PutMapping("/reset") public CommonResult resetCase(@RequestParam Integer caseId) { Integer firstNum = 0; Integer state = iDisposeRecordService .list(new LambdaQueryWrapper<DisposeRecord>() .eq(DisposeRecord::getBaseCaseId, caseId). orderByDesc(DisposeRecord::getCreateTime)).get(firstNum).getState(); return CommonResult.success(baseCaseService .update(new LambdaUpdateWrapper<BaseCase>() .eq(BaseCase::getId, caseId) .set(BaseCase::getState, state))); } @ApiOperation(value = "结案") @PutMapping("/end_case") public CommonResult endCase(@RequestParam Integer caseId,@RequestParam String result){ baseCaseService.endCase(caseId,result); return CommonResult.success("end case success~!"); } } ycl-platform/src/main/java/com/ycl/controller/caseHandler/DispatchHandleController.java
@@ -85,6 +85,7 @@ writ.setCreateUser(user.getUserId().intValue()); iWritService.save(writ); } /// TODO: 2022/9/30 添加成功后修改案件专题 添加流程 return CommonResult.success("add success"); } } ycl-platform/src/main/java/com/ycl/controller/caseHandler/DisposeRecordController.java
@@ -1,9 +1,18 @@ package com.ycl.controller.caseHandler; import com.ycl.api.CommonResult; import com.ycl.bo.AdminUserDetails; import com.ycl.controller.BaseController; import com.ycl.service.caseHandler.IDisposeRecordService; import com.ycl.vo.MyBacklogVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.context.SecurityContextHolder; 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; @@ -16,7 +25,23 @@ * @since 2022-09-24 */ @RestController @RequestMapping("/dispose-record") @RequestMapping("/my_backlog") @Api(tags = "我的待办") public class DisposeRecordController extends BaseController { @Autowired IDisposeRecordService iDisposeRecordService; /** * @return com.ycl.api.CommonResult * @Description query my task * @Param [caseId] **/ @ApiOperation(value = "查询", response = MyBacklogVO.class) @GetMapping("/query") public CommonResult searchMyTask(@RequestParam Integer caseId) { AdminUserDetails user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); return CommonResult.success(iDisposeRecordService.listMyTask(caseId, user.getUserId())); } } ycl-platform/src/main/java/com/ycl/dto/casePool/IllegalBuildingParam.java
@@ -6,6 +6,7 @@ import lombok.Data; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.time.LocalDateTime; @Data @@ -16,7 +17,7 @@ * 违建类别 */ @ApiModelProperty(value = "违建类别") @NotBlank(message = "不允许违建类别为空") @NotNull(message = "不允许违建类别为空") private Integer categoryId; ycl-platform/src/main/java/com/ycl/service/caseHandler/IBaseCaseService.java
@@ -48,4 +48,6 @@ BaseCaseDetail baseCaseDetail(String code); ArrayList<String> listCaseImages(Integer id, Integer type); void endCase(Integer caseId, String result); } ycl-platform/src/main/java/com/ycl/service/caseHandler/IDisposeRecordService.java
@@ -1,7 +1,10 @@ package com.ycl.service.caseHandler; import com.ycl.entity.caseHandler.DisposeRecord; import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.entity.caseHandler.DisposeRecord; import com.ycl.vo.MyBacklogVO; import java.util.List; /** * <p> @@ -13,4 +16,5 @@ */ public interface IDisposeRecordService extends IService<DisposeRecord> { List<MyBacklogVO> listMyTask(Integer caseId, Long userId); } ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.bo.AdminUserDetails; import com.ycl.bo.casePool.CasePoolIllegalBuildingDO; import com.ycl.bo.casePool.CasePoolViolationDO; import com.ycl.dto.casePool.IllegalBuildingParam; @@ -24,6 +25,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -81,6 +83,8 @@ InvestigationMapper investigationMapper; @Resource WritMapper writMapper; @Resource DisposeRecordMapper disposeRecordMapper; @Resource WorkflowConfigStepMapper workflowConfigStepMapper; @@ -283,4 +287,26 @@ } return caseImages; } @Override public void endCase(Integer caseId, String result) { AdminUserDetails user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); Integer endCaseState = 6; Integer state = 2; String endCaseName = "结案"; BaseCase baseCase = new BaseCase(); baseCase.setState(endCaseState); baseCase.setId(caseId); baseCaseMapper.updateById(baseCase); DisposeRecord disposeRecord = new DisposeRecord(); disposeRecord.setBaseCaseId(caseId); disposeRecord.setWorkflowConfigStepId(workflowConfigStepMapper .selectOne(new LambdaQueryWrapper<WorkflowConfigStep>().eq(WorkflowConfigStep::getName, endCaseName)) .getWorkflowConfigId()); disposeRecord.setCreateUser(user.getUserId().intValue()); disposeRecord.setResult(result); disposeRecord.setState(state); disposeRecord.setCreateTime(LocalDateTime.now()); disposeRecordMapper.insert(disposeRecord); } } ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/DisposeRecordServiceImpl.java
@@ -1,10 +1,19 @@ package com.ycl.service.caseHandler.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.entity.caseHandler.BaseCase; import com.ycl.entity.caseHandler.DisposeRecord; import com.ycl.mapper.caseHandler.BaseCaseMapper; import com.ycl.mapper.caseHandler.DisposeRecordMapper; import com.ycl.service.caseHandler.IDisposeRecordService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.vo.MyBacklogVO; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; import java.util.stream.Collectors; /** * <p> @@ -17,4 +26,27 @@ @Service public class DisposeRecordServiceImpl extends ServiceImpl<DisposeRecordMapper, DisposeRecord> implements IDisposeRecordService { @Resource BaseCaseMapper baseCaseMapper; @Resource DisposeRecordMapper disposeRecordMapper; @Override public List<MyBacklogVO> listMyTask(Integer caseId, Long userId) { return disposeRecordMapper.selectList( new LambdaQueryWrapper<DisposeRecord>() .eq(DisposeRecord::getHandlerId, userId.intValue()) .isNull(DisposeRecord::getEndTime)) .stream() .map(item -> { MyBacklogVO myBacklogVO = new MyBacklogVO(); BeanUtils.copyProperties(item, myBacklogVO); BaseCase baseCase = baseCaseMapper.selectById(caseId); myBacklogVO.setCategory(baseCase.getCategory()); myBacklogVO.setEventSource(baseCase.getEventSource()); myBacklogVO.setCode(baseCase.getCode()); return myBacklogVO; }).collect(Collectors.toList()); } } ycl-platform/src/main/java/com/ycl/vo/MyBacklogVO.java
New file @@ -0,0 +1,48 @@ package com.ycl.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.time.LocalDateTime; @Data @ApiModel(value = "我的待办") public class MyBacklogVO { /** * 事件编号 */ @ApiModelProperty(value = "事件编号") private String code; /** * 事件来源(1-视频 2-手动登记) */ @ApiModelProperty(value = "事件来源(1-视频 2-手动登记)") private Integer eventSource; /** * 问题类别(1-违规 2-违建) */ @ApiModelProperty(value = "问题类别(1-违规 2-违建)") private Integer category; /** * 环节名称 */ @ApiModelProperty(value = "环节名称") private String stepName; /** * 创建时间 */ @ApiModelProperty(value = "创建时间") private LocalDateTime createTime; /** * 剩余时间 */ @ApiModelProperty(value = "开始时间") private LocalDateTime limitTime; }