package cn.huge.module.grid.controller.web;
|
|
import cn.huge.base.common.bo.R;
|
import cn.huge.base.common.utils.*;
|
import cn.huge.module.client.api.impl.CustClientImpl;
|
import cn.huge.module.cust.dto.CtUserDTO;
|
import cn.huge.module.file.service.FileInfoService;
|
import cn.huge.module.file.utils.FtpUtils;
|
import cn.huge.module.grid.domain.dto.GridFileUploadDTO;
|
import cn.huge.module.grid.domain.po.GridEvent;
|
import cn.huge.module.grid.domain.po.GridEventRequest;
|
import cn.huge.module.grid.domain.vo.*;
|
import cn.huge.module.grid.service.*;
|
import cn.huge.module.sys.constant.GridEnum;
|
import cn.huge.module.sys.dto.FileInfoBaseDTO;
|
import cn.huge.module.sys.vo.GridOrgUsersVo;
|
import com.alibaba.fastjson.JSON;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.google.common.collect.Maps;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.io.FileUtils;
|
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.PageRequest;
|
import org.springframework.data.domain.Sort;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.servlet.http.HttpServletRequest;
|
import java.io.File;
|
import java.io.InputStream;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
import java.util.stream.Stream;
|
|
/**
|
* @title: dyh_th_grid_event接口api-web端
|
* @description: dyh_th_grid_event接口api-web端
|
* @company: hugeinfo
|
* @author: wangwh
|
* @time: 2025-02-21 17:42:19
|
* @version: 1.0.0
|
*/
|
@Slf4j
|
@RestController
|
@RequestMapping("/api/web/gridEvent")
|
public class GridEventWebController {
|
|
@Autowired(required = false)
|
private HttpServletRequest request;
|
|
@Autowired
|
private GridEventService service;
|
|
@Autowired
|
private FileInfoService fileInfoService;
|
|
@Autowired
|
private GridCaseDataService gridCaseDataService;
|
|
@Autowired
|
private GridCaseTaskService gridCaseTaskService;
|
|
@Autowired
|
private GridEventRequestService gridEventRequestService;
|
|
@Autowired
|
private GridUserService gridUserService;
|
|
@Autowired
|
private CustClientImpl custClient;
|
|
/**
|
* 获取请求URL参数
|
* @return Map<String, Object>
|
*/
|
private Map<String, Object> getParameter(){
|
Map<String, Object> terms = Maps.newHashMap();
|
// id
|
String id = request.getParameter("id");
|
if (StringUtils.isNotBlank(id)){
|
terms.put("id", id);
|
}
|
// event_code
|
String eventCode = request.getParameter("eventCode");
|
if (StringUtils.isNotBlank(eventCode)){
|
terms.put("eventCode", eventCode);
|
}
|
// title
|
String title = request.getParameter("title");
|
if (StringUtils.isNotBlank(title)){
|
terms.put("title", title);
|
}
|
// entry_item_name
|
String entryItemName = request.getParameter("entryItemName");
|
if (StringUtils.isNotBlank(entryItemName)){
|
terms.put("entryItemName", entryItemName);
|
}
|
// event_time
|
String eventTime = request.getParameter("eventTime");
|
if (StringUtils.isNotBlank(eventTime)){
|
terms.put("eventTime", eventTime);
|
}
|
// sys_org_id
|
String sysOrgId = request.getParameter("sysOrgId");
|
if (StringUtils.isNotBlank(sysOrgId)){
|
terms.put("sysOrgId", sysOrgId);
|
}
|
// sys_org_name
|
String sysOrgName = request.getParameter("sysOrgName");
|
if (StringUtils.isNotBlank(sysOrgName)){
|
terms.put("sysOrgName", sysOrgName);
|
}
|
// eventX
|
String eventx = request.getParameter("eventx");
|
if (StringUtils.isNotBlank(eventx)){
|
terms.put("eventx", eventx);
|
}
|
// eventY
|
String eventy = request.getParameter("eventy");
|
if (StringUtils.isNotBlank(eventy)){
|
terms.put("eventy", eventy);
|
}
|
// address
|
String address = request.getParameter("address");
|
if (StringUtils.isNotBlank(address)){
|
terms.put("address", address);
|
}
|
// handle_time
|
String handleTime = request.getParameter("handleTime");
|
if (StringUtils.isNotBlank(handleTime)){
|
terms.put("handleTime", handleTime);
|
}
|
// delay_count
|
String delayCount = request.getParameter("delayCount");
|
if (StringUtils.isNotBlank(delayCount)){
|
terms.put("delayCount", delayCount);
|
}
|
// now_work_date
|
String nowWorkDate = request.getParameter("nowWorkDate");
|
if (StringUtils.isNotBlank(nowWorkDate)){
|
terms.put("nowWorkDate", nowWorkDate);
|
}
|
// yj_flag
|
String yjFlag = request.getParameter("yjFlag");
|
if (StringUtils.isNotBlank(yjFlag)){
|
terms.put("yjFlag", yjFlag);
|
}
|
// processing_time
|
String processingTime = request.getParameter("processingTime");
|
if (StringUtils.isNotBlank(processingTime)){
|
terms.put("processingTime", processingTime);
|
}
|
// info_source
|
String infoSource = request.getParameter("infoSource");
|
if (StringUtils.isNotBlank(infoSource)){
|
terms.put("infoSource", infoSource);
|
}
|
// cur_node_custom_tag
|
String curNodeCustomTag = request.getParameter("curNodeCustomTag");
|
if (StringUtils.isNotBlank(curNodeCustomTag)){
|
terms.put("curNodeCustomTag", curNodeCustomTag);
|
}
|
// event_area
|
String eventArea = request.getParameter("eventArea");
|
if (StringUtils.isNotBlank(eventArea)){
|
terms.put("eventArea", eventArea);
|
}
|
// select_handle_org_name
|
String selectHandleOrgName = request.getParameter("selectHandleOrgName");
|
if (StringUtils.isNotBlank(selectHandleOrgName)){
|
terms.put("selectHandleOrgName", selectHandleOrgName);
|
}
|
// status
|
String status = request.getParameter("status");
|
if (StringUtils.isNotBlank(status)){
|
terms.put("status", status);
|
}
|
// grid_code
|
String gridCode = request.getParameter("gridCode");
|
if (StringUtils.isNotBlank(gridCode)){
|
terms.put("gridCode", gridCode);
|
}
|
// entry_item_code
|
String entryItemCode = request.getParameter("entryItemCode");
|
if (StringUtils.isNotBlank(entryItemCode)){
|
terms.put("entryItemCode", entryItemCode);
|
}
|
// case_id
|
String caseId = request.getParameter("caseId");
|
if (StringUtils.isNotBlank(caseId)){
|
terms.put("caseId", caseId);
|
}
|
// 创建时间区间
|
String createStart = request.getParameter("createStart");
|
String createEnd = request.getParameter("createEnd");
|
if(StringUtils.isNotBlank(createStart) && StringUtils.isNotBlank(createEnd)) {
|
terms.put("createStart", createStart);
|
terms.put("createEnd", createEnd);
|
}
|
// 更新时间区间
|
String updateStart = request.getParameter("updateStart");
|
String updateEnd = request.getParameter("updateEnd");
|
if(StringUtils.isNotBlank(updateStart) && StringUtils.isNotBlank(updateEnd)) {
|
terms.put("updateStart", updateStart);
|
terms.put("updateEnd", updateEnd);
|
}
|
return terms;
|
}
|
|
/**
|
* 条件查询多个
|
* @url {ctx}/api/web/gridEvent/listQuery
|
* @return Object
|
*/
|
@GetMapping("/listQuery")
|
public Object listQuery() {
|
try {
|
Map<String, Object> terms = getParameter();
|
return ReturnSucUtils.getRepInfo(service.listTerms(terms));
|
} catch (Exception e) {
|
return ReturnFailUtils.getRepInfo();
|
}
|
}
|
|
/**
|
* 条件分页查询
|
* @url {ctx}/api/web/gridEvent/pageQuery
|
* @param page 页码
|
* @param size 每页数量
|
* @return Object
|
*/
|
@GetMapping("/pageQuery")
|
public Object pageQuery(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size) {
|
try {
|
Map<String, Object> terms = getParameter();
|
Sort sort = Sort.by(Sort.Direction.DESC, "create_time");
|
PageRequest pageRequest = PageRequest.of(page-1, size, sort);
|
Page<GridEvent> gridEventPage = service.pageQuery(pageRequest, terms);
|
return ReturnSucUtils.getRepInfo( "处理成功", gridEventPage);
|
} catch (Exception e) {
|
return ReturnFailUtils.getRepInfo();
|
}
|
}
|
|
/**
|
* 根据编号查询单个
|
* @url {ctx}/api/web/gridEvent/getById
|
* @param id 主键编号
|
* @return Object
|
*/
|
@GetMapping("/getById")
|
public Object getById(@RequestParam(value = "id") String id) {
|
try {
|
return ReturnSucUtils.getRepInfo(service.getById(id));
|
} catch (Exception e) {
|
return ReturnFailUtils.getRepInfo();
|
}
|
}
|
|
/**
|
* 根据主键单个
|
* @url {ctx}/api/web/gridEvent/deleteById
|
* @param id 主键编号
|
* @return Object
|
*/
|
@GetMapping("/deleteById")
|
public Object deleteById(@RequestParam(value = "id") String id) {
|
try {
|
service.removeById(id);
|
return ReturnSucUtils.getRepInfo();
|
} catch (Exception e) {
|
return ReturnFailUtils.getRepInfo();
|
}
|
}
|
|
/**
|
* 新增或更新对象
|
* @url {ctx}/api/web/gridEvent/saveGridEvent
|
* @param gridEvent 实体对象
|
* @return Object
|
*/
|
@PostMapping("/saveGridEvent")
|
public Object saveGridEvent(@RequestBody GridEvent gridEvent) {
|
try {
|
service.saveGridEvent(gridEvent);
|
return ReturnSucUtils.getRepInfo();
|
} catch (Exception e) {
|
return ReturnFailUtils.getRepInfo();
|
}
|
}
|
|
/**
|
* 根据编号查询单个
|
* @url {ctx}/api/web/gridEvent/getGridEventId
|
* @param caseId 案件编号
|
* @return Object
|
*/
|
@GetMapping("/getGridEventId")
|
public Object getGridEventId(@RequestParam(value = "caseId") String caseId) {
|
try {
|
QueryWrapper<GridEvent> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("case_id", caseId);
|
GridEvent gridEvent = service.getOne(queryWrapper);
|
if(ObjectUtils.isNotEmpty(gridEvent)){
|
return ReturnSucUtils.getRepInfo(gridEvent);
|
}
|
return ReturnFailUtils.getRepInfo();
|
} catch (Exception e) {
|
return ReturnFailUtils.getRepInfo();
|
}
|
}
|
|
/**
|
* 根据编号查询单个
|
* @url {ctx}/api/web/gridEvent/updateCaseEvent
|
* @param gridApprovalRecordVo
|
* @return Object
|
*/
|
@PostMapping("/updateCaseEvent")
|
public Object updateCaseEvent(@RequestBody GridApprovalRecordVo gridApprovalRecordVo) {
|
GridEventRequest gridEventRequest = new GridEventRequest();
|
gridEventRequest.setEventStatus(gridApprovalRecordVo.getHandleName());
|
//添加请求记录
|
gridEventRequest.setId(IdUtils.getNewTimeId());
|
gridEventRequest.setEventId(gridApprovalRecordVo.getEventId());
|
gridEventRequest.setCaseId(gridApprovalRecordVo.getCaseId());
|
gridEventRequest.setCreateTime(DateUtils.getNowDate());
|
QueryWrapper<GridEvent> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("case_id", gridApprovalRecordVo.getCaseId());
|
GridEvent gridEvent = service.getOne(queryWrapper);
|
try {
|
//查询网格组织编号
|
String appGridUnitId = null;
|
if(StringUtils.isNotBlank(gridApprovalRecordVo.getAppOrgId())){
|
appGridUnitId = gridCaseTaskService.getGridUnitIdByUnitId(gridApprovalRecordVo.getAppOrgId());
|
gridApprovalRecordVo.setAppOrgId(appGridUnitId);
|
if(StringUtils.isBlank(appGridUnitId)){
|
throw new Exception("当前环节处理网格组织不存在");
|
}
|
}else{
|
gridApprovalRecordVo.setAppOrgId(gridEvent.getSysOrgId());
|
gridApprovalRecordVo.setAppOrgName(gridEvent.getSysOrgName());
|
}
|
log.info("当前环节组织:"+ gridApprovalRecordVo.getAppOrgId());
|
|
if(StringUtils.isNotBlank(gridApprovalRecordVo.getAppUserId())){
|
CtUserDTO ctUserDTO = custClient.clientGetUserAll(gridApprovalRecordVo.getAppUserId());
|
if(ObjectUtils.isNotEmpty(ctUserDTO)){
|
if(StringUtils.isNotBlank(ctUserDTO.getIdcard())){
|
GridUserIdNumberVo gridUserIdNumberVo = new GridUserIdNumberVo();
|
gridUserIdNumberVo.setIdNumber(ctUserDTO.getIdcard());
|
R<GridUserVo> result = gridUserService.getUserByIdNumber(gridUserIdNumberVo);
|
if(R.SUCCESS == result.getCode()){
|
gridApprovalRecordVo.setAppUserId(result.getData().getId());
|
log.info("当前环节审批用户为: "+ gridApprovalRecordVo.getAppUserId());
|
}else{
|
gridApprovalRecordVo.setAppUserId("a9406a88c8234cda82452799bf6bd6cd");
|
log.info("当前环节审批用户为特殊用户,身份证找不到用户{},{}",ctUserDTO.getIdcard(),ctUserDTO.getTrueName());
|
}
|
}else {
|
gridApprovalRecordVo.setAppUserId("a9406a88c8234cda82452799bf6bd6cd");
|
log.info("当前环节审批用户为特殊用户,找不到用户{}",gridApprovalRecordVo.getAppUserId());
|
}
|
}else{
|
gridApprovalRecordVo.setAppUserId("a9406a88c8234cda82452799bf6bd6cd");
|
log.info("当前环节审批用户为特殊用户,找不到用户{}",gridApprovalRecordVo.getAppUserId());
|
}
|
}else{
|
gridApprovalRecordVo.setAppUserId("a9406a88c8234cda82452799bf6bd6cd");
|
log.info("当前环节审批用户为特殊用户");
|
}
|
String nextGridUnitId = null;
|
if(StringUtils.isNotBlank(gridApprovalRecordVo.getNextOrgId())){
|
nextGridUnitId = gridCaseTaskService.getGridUnitIdByUnitId(gridApprovalRecordVo.getNextOrgId());
|
gridApprovalRecordVo.setNextOrgId(nextGridUnitId);
|
if(StringUtils.isBlank(nextGridUnitId)){
|
|
throw new Exception("下一环节处理网格组织不存在:"+gridApprovalRecordVo.getNextOrgId()+"-"+gridApprovalRecordVo.getNextOrgName());
|
}
|
log.info("下一环节组织:"+ gridApprovalRecordVo.getNextOrgId());
|
}
|
|
|
//添加附件查询条件
|
List<String>ownerIdList = gridApprovalRecordVo.getOwnerIdList();
|
Map<String, Object>terms = new HashMap<>();
|
if(ownerIdList != null && ownerIdList.size() != 0){
|
terms.put("ownerIdList", ownerIdList);
|
if(ObjectUtils.isNotEmpty(gridApprovalRecordVo) && StringUtils.isNotBlank(gridApprovalRecordVo.getCaseId())){
|
terms.put("mainId", gridApprovalRecordVo.getCaseId());
|
}
|
List<FileInfoBaseDTO> fileInfoBaseDTOList = fileInfoService.listFileInfoByTerms(terms);
|
log.info("获取到附件上传:"+fileInfoBaseDTOList.size());
|
List<GridFileRelatedVo> gridFileRelatedVoList = new ArrayList<>();
|
for (FileInfoBaseDTO fileInfoBaseDTO: fileInfoBaseDTOList){
|
try {
|
GridFileUploadVo gridFileUploadVo = new GridFileUploadVo();
|
gridFileUploadVo.setFileName(fileInfoBaseDTO.getFileName());
|
gridFileUploadVo.setFilePath(fileInfoBaseDTO.getFullPath());
|
gridFileUploadVo.setFileSize(fileInfoBaseDTO.getSize() != null ? fileInfoBaseDTO.getSize().longValue() : 0L);
|
gridFileUploadVo.setType(fileInfoBaseDTO.getSuffix());
|
R<GridFileUploadDTO> result = null;
|
//上传附件信息
|
result = gridCaseDataService.uploadFileInfo(gridFileUploadVo);
|
if(R.SUCCESS == result.getCode()){
|
//获取上传结果,组成新的附件对象
|
GridFileUploadDTO gridFileUploadDTO = result.getData();
|
GridFileRelatedVo gridFileRelatedVo = new GridFileRelatedVo();
|
gridFileRelatedVo.setFileName(gridFileUploadDTO.getFileName());
|
gridFileRelatedVo.setFilePath(gridFileUploadDTO.getFilePath());
|
gridFileRelatedVo.setOriginalFileName(gridFileUploadDTO.getOriginalFileName());
|
gridFileRelatedVo.setFileSize(gridFileUploadDTO.getFileSize());
|
gridFileRelatedVo.setType("add");
|
gridFileRelatedVo.setFileType(gridFileUploadDTO.getFileType());
|
gridFileRelatedVoList.add(gridFileRelatedVo);
|
}
|
}catch (Exception e){
|
e.printStackTrace();
|
log.info("附件上传失败:"+fileInfoBaseDTO.getId());
|
}
|
}
|
if(gridApprovalRecordVo.getHandleName().equals(GridEnum.EVENT_FLOW_3.getIndex())){
|
//插入到更新事件对象中
|
gridApprovalRecordVo.setAfterAttachmentInfoList(gridFileRelatedVoList);
|
}else{
|
//插入到更新事件对象中
|
gridApprovalRecordVo.setAttachmentInfoList(gridFileRelatedVoList);
|
}
|
|
}
|
|
if (SpringContextUtil.checkDev()) {
|
gridEventRequest.setReqInfo("http://183.2.142.21:9007" + "/api/thrid/grid/casedata/upload-node-info" + JSON.toJSONString(gridApprovalRecordVo));
|
}else{
|
gridEventRequest.setReqInfo("http://219.137.166.84:8061" + "/event/saveApproveContent" + JSON.toJSONString(gridApprovalRecordVo));
|
}
|
R<String> result = gridCaseDataService.uploadCaseNodeInfo(gridApprovalRecordVo);
|
if(result.getCode() == 0){
|
//记录请求成功信息
|
gridEventRequest.setReqStatus(0);
|
gridEventRequestService.save(gridEventRequest);
|
}else{
|
//记录请求失败信息
|
gridEventRequest.setReqStatus(1);
|
gridEventRequest.setErrorInfo(result.getMsg());
|
gridEventRequestService.save(gridEventRequest);
|
}
|
} catch (Exception e) {
|
//记录请求失败信息
|
gridEventRequest.setReqStatus(1);
|
gridEventRequest.setErrorInfo(e.getMessage());
|
gridEventRequestService.save(gridEventRequest);
|
log.error("更新事件信息失败", e);
|
return ReturnFailUtils.getRepInfo();
|
}
|
return ReturnSucUtils.getRepInfo();
|
}
|
}
|