package com.ycl.controller.caseHandler;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.ycl.api.CommonResult;
import com.ycl.bo.AdminUserDetails;
import com.ycl.common.constant.BaseCaseStatus;
import com.ycl.dto.caseHandler.DispatchInfoParam;
import com.ycl.dto.dispatch.UploadDisposingResultParam;
import com.ycl.entity.caseHandler.*;
import com.ycl.service.caseHandler.*;
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.security.core.context.SecurityContextHolder;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
/**
*
* 调度 前端控制器
*
*
* @author mg
* @since 2022-09-28
*/
@RestController
@RequestMapping("/dispatch_handle")
@Api(tags = "调度处理")
public class DispatchHandleController {
@Autowired
IDispatchHandleService iDispatchHandleService;
@Autowired
IInvestigationService iInvestigationService;
@Autowired
IArrivalSituationService iArrivalSituationService;
@Autowired
IPartyInfoService iPartyInfoService;
@Autowired
IWritService iWritService;
@Autowired
IBaseCaseService baseCaseService;
@Autowired
IDisposeRecordService iDisposeRecordService;
@ApiOperation(value = "调度")
@RequestMapping(value = "/dispatch", method = RequestMethod.POST)
@ResponseBody
public CommonResult dispatch(@Validated @RequestBody DispatchInfoParam dispatchInfoParam) {
return CommonResult.success(iDispatchHandleService.dispatch(dispatchInfoParam));
}
@ApiOperation(value = "上传违规/违建处置结果")
@PostMapping("/addition_dispose_result")
public CommonResult searchDisposeList(@RequestParam Integer caseId,
@RequestParam Integer type,
@RequestBody UploadDisposingResultParam uploadDisposingResultParam) {
AdminUserDetails user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
//修改案件状态为处置
BaseCase baseCase = new BaseCase();
baseCase.setId(caseId);
baseCase.setState(BaseCaseStatus.DISPOSE);
baseCaseService.updateById(baseCase);
//当事人
PartyInfo partyInfo = new PartyInfo();
BeanUtils.copyProperties(uploadDisposingResultParam, partyInfo);
partyInfo.setCreateUser(user.getUserId().intValue());
partyInfo.setCreateTime(LocalDateTime.now());
iPartyInfoService.save(partyInfo);
//调查取证
Investigation investigation = new Investigation();
BeanUtils.copyProperties(uploadDisposingResultParam, investigation);
investigation.setBaseCaseId(caseId);
investigation.setCreateTime(LocalDateTime.now());
investigation.setCreateUser(user.getUserId().intValue());
investigation.setPartyId(partyInfo.getId());
iInvestigationService.save(investigation);
//到达
ArrivalSituation arrivalSituation = new ArrivalSituation();
BeanUtils.copyProperties(uploadDisposingResultParam, arrivalSituation);
arrivalSituation.setBaseCaseId(caseId);
arrivalSituation.setCreateTime(LocalDateTime.now());
arrivalSituation.setCreateUser(user.getUserId().intValue());
iArrivalSituationService.save(arrivalSituation);
//文书
Integer illegalBuildingType = 2;
if (type.equals(illegalBuildingType)) {
Writ writ = new Writ();
BeanUtils.copyProperties(uploadDisposingResultParam, writ);
writ.setBaseCaseId(caseId);
writ.setIllegalBuildingId(caseId);
writ.setCreateTime(LocalDateTime.now());
writ.setCreateUser(user.getUserId().intValue());
iWritService.save(writ);
}
baseCaseService.update(new LambdaUpdateWrapper().eq(BaseCase::getId, caseId).set(BaseCase::getState, BaseCaseStatus.CHECK));
DisposeRecord disposeRecord = new DisposeRecord();
disposeRecord.setBaseCaseId(caseId);
disposeRecord.setState(0);
disposeRecord.setCreateTime(LocalDateTime.now());
disposeRecord.setCreateUser(user.getUserId().intValue());
disposeRecord.setStepName("核查");
iDisposeRecordService.save(disposeRecord);
return CommonResult.success("add success");
}
}