Commit 7275b6af authored by suhuiguang's avatar suhuiguang

1.隐患创建、更新、导入增加字段bizinfo

parent 67dc3be9
......@@ -70,7 +70,7 @@ public enum DangerCheckTypeLevelEnum {
this.condition = condition;
}
public String getCondition() {
public String getCondition() {
return condition;
}
}
......@@ -6,6 +6,7 @@ import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @author xixinzhao
......@@ -149,4 +150,10 @@ public class DangerDto implements Serializable {
* 隐患类型描述
*/
private String dangerTypeName;
/**
* 业务信息
*/
private Map bizInfo;
}
......@@ -65,7 +65,7 @@ public class HiddenDangerController extends AbstractBaseController {
@PutMapping(value = "/{latentDangerId}")
public ResponseModel updateDanger(
@RequestBody DangerDto dangerDto,
@PathVariable Long latentDangerId) {
@PathVariable Long latentDangerId) throws Exception {
dangerDto = iHiddenDangerService.updateDanger(latentDangerId, dangerDto);
return ResponseHelper.buildResponse(dangerDto);
}
......
......@@ -37,6 +37,11 @@ public class HiddenDangerDto {
*/
private Long pointId;
/**
* 点名称
*/
private String pointName;
/**
* 隐患类型(1-防火监督检查;2-自行检查)
......@@ -69,10 +74,6 @@ public class HiddenDangerDto {
*/
private String checkUserName;
/**
* 责任单位
*/
private String pointName;
/**
* 状态
......
......@@ -3,7 +3,6 @@ package com.yeejoin.amos.supervision.business.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.util.BeanUtil;
import com.google.common.base.Joiner;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
......@@ -18,28 +17,26 @@ import com.yeejoin.amos.supervision.business.dao.mapper.*;
import com.yeejoin.amos.supervision.business.dao.repository.*;
import com.yeejoin.amos.supervision.business.dto.CheckInputItemDto;
import com.yeejoin.amos.supervision.business.dto.CheckRecordDto;
import com.yeejoin.amos.supervision.business.feign.DangerFeignClient;
import com.yeejoin.amos.supervision.core.common.dto.DangerDto;
import com.yeejoin.amos.supervision.business.dto.HiddenDangerDto;
import com.yeejoin.amos.supervision.business.entity.mybatis.*;
import com.yeejoin.amos.supervision.business.feign.DangerFeignClient;
import com.yeejoin.amos.supervision.business.feign.EquipFeign;
import com.yeejoin.amos.supervision.business.param.*;
import com.yeejoin.amos.supervision.business.service.intfc.ICheckService;
import com.yeejoin.amos.supervision.business.service.intfc.IEquipmentHandlerService;
import com.yeejoin.amos.supervision.business.service.intfc.IPlanTaskService;
import com.yeejoin.amos.supervision.business.service.intfc.IPointService;
import com.yeejoin.amos.supervision.business.service.intfc.*;
import com.yeejoin.amos.supervision.business.util.CheckDetailInputPageParam;
import com.yeejoin.amos.supervision.business.util.ToolUtils;
import com.yeejoin.amos.supervision.business.vo.CheckAnalysisVo;
import com.yeejoin.amos.supervision.business.vo.CheckInfoVo;
import com.yeejoin.amos.supervision.business.vo.CheckVo;
import com.yeejoin.amos.supervision.common.enums.*;
import com.yeejoin.amos.supervision.core.common.dto.DangerDto;
import com.yeejoin.amos.supervision.core.common.request.CommonPageable;
import com.yeejoin.amos.supervision.core.common.response.*;
import com.yeejoin.amos.supervision.core.util.DateUtil;
import com.yeejoin.amos.supervision.core.util.StringUtil;
import com.yeejoin.amos.supervision.dao.entity.*;
import com.yeejoin.amos.supervision.feign.RemoteSecurityService;
import org.apache.commons.beanutils.BeanUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.cxf.common.util.CollectionUtils;
import org.assertj.core.util.Sets;
......@@ -58,15 +55,13 @@ import java.util.*;
import java.util.stream.Collectors;
@Service("checkService")
@Slf4j
public class CheckServiceImpl implements ICheckService {
@Autowired
private CheckMapper checkMapper;
@Autowired
private ICheckService checkService;
@Autowired
private IPointService iPointService;
@Autowired
......@@ -74,8 +69,7 @@ public class CheckServiceImpl implements ICheckService {
@Resource
ICheckShotDao checkShotDao;
@Resource
IPlanTaskDao planTaskDao;
@Autowired
PlanTaskMapper planTaskMapper;
......@@ -97,9 +91,6 @@ public class CheckServiceImpl implements ICheckService {
IEquipmentHandlerService equipmentHandlerService;
@Autowired
private IPointClassifyDao iPointClassifyDao;
@Autowired
IPointDao iPointDao;
@Autowired
......@@ -116,17 +107,15 @@ public class CheckServiceImpl implements ICheckService {
private final int HTTP_OK_STATUS = 200;
// @Value("${file.ip}")
// private String fileIp;
//
// @Value("${file.port}")
// private String filePort;
@Value("${file.url}")
private String fileUrl;
@Value("${server.servlet.context-path}")
private String contextPath;
@Autowired
IHiddenDangerService iHiddenDangerService;
@Override
public Page<CheckInfoVo> getCheckInfo(String toke, String product, String appKey, CheckInfoPageParam param) {
long total = checkMapper.countCheckInfoData(param);
......@@ -1357,7 +1346,7 @@ public class CheckServiceImpl implements ICheckService {
@Override
@Transactional
public List<CheckInputItemDto> saveCheckRecord(CheckRecordParam recordParam, ReginParams reginParams) throws Exception {
public List<CheckInputItemDto> saveCheckRecord(CheckRecordParam recordParam, ReginParams reginParams) throws Exception {
ReginParams.PersonIdentity personIdentity = reginParams.getPersonIdentity();
if (ObjectUtils.isEmpty(reginParams.getUserModel()) && ObjectUtils.isEmpty(reginParams.getCompany()) && ObjectUtils.isEmpty(personIdentity)) {
throw new RuntimeException("获取用户信息失败");
......@@ -1584,16 +1573,27 @@ public class CheckServiceImpl implements ICheckService {
/**
* 保存隐患数据
*/
private void saveDanger (List<DangerDto> allDanger, PlanTask planTask, Check check, CheckRecordParam recordParam ) {
private void saveDanger(List<DangerDto> allDanger, PlanTask planTask, Check check, CheckRecordParam recordParam) {
if (!ObjectUtils.isEmpty(allDanger)) {
// 根据bizId删除关系表
List<Long> collect = allDanger.stream().map(DangerDto::getId).collect(Collectors.toList());
hiddenDangerDao.deleteByDangerIdIn(collect);
allDanger.forEach(dangerDto -> {
HiddenDangerDto hiddenDangerDto = new HiddenDangerDto();
hiddenDangerDto.setPlanId(planTask.getPlanId());
hiddenDangerDto.setPointId(recordParam.getPointId());
hiddenDangerDto.setCheckInputId(dangerDto.getBizId());
hiddenDangerDto.setDangerType(DangerHandleTypeEnum.SUPERVISION.getCode());
try {
dangerDto.setBizInfo(iHiddenDangerService.buildBizInfo(hiddenDangerDto));
} catch (Exception e) {
log.error(e.getMessage(), e);
throw new RuntimeException("组织基本数据失败");
}
});
// 1.feign调用保存隐患
FeignClientResult<List<DangerDto>> listFeignClientResult = DangerFeignClient.saveOrUpdateBatch(allDanger);
if (ObjectUtils.isEmpty(listFeignClientResult.getResult()) || listFeignClientResult.getStatus() != HTTP_OK_STATUS) {
throw new RuntimeException(listFeignClientResult.getDevMessage());
}
......
package com.yeejoin.amos.supervision.business.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
......@@ -10,15 +11,19 @@ import com.yeejoin.amos.boot.biz.common.excel.DataSources;
import com.yeejoin.amos.boot.biz.common.excel.ExcelUtil;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.supervision.business.dao.mapper.HiddenDangerMapper;
import com.yeejoin.amos.supervision.business.dao.repository.IHiddenDangerDao;
import com.yeejoin.amos.supervision.business.dao.repository.*;
import com.yeejoin.amos.supervision.business.dto.HiddenDangerDto;
import com.yeejoin.amos.supervision.business.dto.HiddenDangerExportDataDto;
import com.yeejoin.amos.supervision.business.dto.HiddenDangerImportDto;
import com.yeejoin.amos.supervision.business.dto.HiddenDangerTemplateDto;
import com.yeejoin.amos.supervision.business.feign.DangerFeignClient;
import com.yeejoin.amos.supervision.business.service.intfc.IHiddenDangerService;
import com.yeejoin.amos.supervision.common.enums.CheckTypeSuEnum;
import com.yeejoin.amos.supervision.common.enums.DangerCheckTypeLevelEnum;
import com.yeejoin.amos.supervision.common.enums.DangerHandleTypeEnum;
import com.yeejoin.amos.supervision.core.common.dto.DangerDto;
import com.yeejoin.amos.supervision.dao.entity.HiddenDanger;
import com.yeejoin.amos.supervision.dao.entity.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
......@@ -35,6 +40,7 @@ import java.util.stream.Collectors;
* @author DELL
*/
@Service
@Slf4j
public class HiddenDangerServiceImpl implements IHiddenDangerService {
@Autowired
......@@ -55,6 +61,18 @@ public class HiddenDangerServiceImpl implements IHiddenDangerService {
@Autowired
DataSources dataSources;
@Autowired
IPlanDao iPlanDao;
@Autowired
ICheckInputDao iCheckInputDao;
@Autowired
ICheckShotDao iCheckShotDao;
@Autowired
IPointDao iPointDao;
@Override
public List<HiddenDangerExportDataDto> listAll(String planId, Long pointId, String level, String status) {
//1.查询指定计划和公司的关联隐患数据
......@@ -94,12 +112,19 @@ public class HiddenDangerServiceImpl implements IHiddenDangerService {
}
@Override
public DangerDto updateDanger(Long latentDangerId, DangerDto dangerDto) {
public DangerDto updateDanger(Long latentDangerId, DangerDto dangerDto) throws Exception {
HiddenDanger hiddenDanger = iHiddenDangerDao.findByLatentDangerId(latentDangerId);
if (hiddenDanger == null) {
throw new DataNotFound("该隐患数据不存在");
}
//组织业务数据,字段为bizInfo
HiddenDangerDto hiddenDangerDto = new HiddenDangerDto();
Bean.copyExistPropertis(hiddenDanger, hiddenDangerDto);
Map<String, Object> bizInfo = this.buildBizInfo(hiddenDangerDto);
dangerDto.setBizInfo(JSON.parseObject(JSON.toJSONString(bizInfo)));
//feign 调用保存
FeignClientResult<List<DangerDto>> feignClientResult = feignClient.saveOrUpdateBatch(Collections.singletonList(dangerDto));
//更新隐患
List<DangerDto> saveDangers = feignClientResult.getResult();
if (!saveDangers.isEmpty()) {
hiddenDanger.setUpdateDate(new Date());
......@@ -146,18 +171,32 @@ public class HiddenDangerServiceImpl implements IHiddenDangerService {
//1.调用创建隐患
ReginParams.PersonIdentity personIdentity = reginParams.getPersonIdentity();
List<DangerDto> dtoList = list.stream().map(s -> {
Long seq = sequence.nextId();
String[] dangerArray = s.getDangerLevelName().split("@");
String[] reformTypeArray = s.getReformTypeName().split("@");
String[] pointArray = s.getPointName().split("@");
DangerDto dangerDto = new DangerDto();
Bean.copyExistPropertis(s, dangerDto);
dangerDto.setBizType(contextPath.substring(1));
dangerDto.setBizId(sequence.nextId());
dangerDto.setBizId(seq);
dangerDto.setDangerLevel(dangerArray.length > 1 ? dangerArray[1] : "");
dangerDto.setDangerLevelName(dangerArray.length > 1 ? dangerArray[0] : "");
dangerDto.setReformType(reformTypeArray.length > 1 ? reformTypeArray[1] : "");
dangerDto.setReformTypeName(reformTypeArray.length > 1 ? reformTypeArray[0] : "");
//自行检查
dangerDto.setCheckMode("1");
//导入的为自行检查
dangerDto.setCheckMode(DangerHandleTypeEnum.SELF.getCode());
//组织业务基本数据 对应bizInfo
HiddenDangerDto hiddenDangerDto = new HiddenDangerDto();
hiddenDangerDto.setPlanId(planId);
hiddenDangerDto.setPointId(pointArray.length > 1 ? Long.parseLong(pointArray[1]) : null);
hiddenDangerDto.setCheckInputId(seq);
hiddenDangerDto.setDangerType(DangerHandleTypeEnum.SELF.getCode());
try {
dangerDto.setBizInfo(this.buildBizInfo(hiddenDangerDto));
} catch (Exception e) {
log.error(e.getMessage(),e);
throw new RuntimeException("组织数据失败");
}
return dangerDto;
}).collect(Collectors.toList());
FeignClientResult<List<DangerDto>> feignClientResult = feignClient.saveOrUpdateBatch(dtoList);
......@@ -169,8 +208,8 @@ public class HiddenDangerServiceImpl implements IHiddenDangerService {
hiddenDanger.setPlanId(planId);
hiddenDanger.setLatentDangerId(d.getId());
hiddenDanger.setCheckInputId(d.getBizId());
hiddenDanger.setDangerType("1");
hiddenDanger.setDangerTypeName("自行检查");
hiddenDanger.setDangerType(DangerHandleTypeEnum.SELF.getCode());
hiddenDanger.setDangerTypeName((DangerHandleTypeEnum.SELF.getName()));
hiddenDanger.setCreateDate(new Date());
return hiddenDanger;
}).collect(Collectors.toList());
......@@ -206,4 +245,41 @@ public class HiddenDangerServiceImpl implements IHiddenDangerService {
}
return false;
}
@Override
public Map<String, Object> buildBizInfo(HiddenDangerDto hiddenDangerDto) throws Exception {
Map<String, Object> result = new HashMap<>(32);
Optional<Plan> op = iPlanDao.findById(hiddenDangerDto.getPlanId());
Plan plan = op.orElseThrow((() -> new RuntimeException("计划不存在")));
Point point = iPointDao.findById(hiddenDangerDto.getPointId()).orElseThrow(() -> new RuntimeException("单位不存在"));
//检查级别
DangerCheckTypeLevelEnum dangerCheckTypeLevelEnum = DangerCheckTypeLevelEnum.getEumByCode(plan.getCheckLevel());
//检查类型
CheckTypeSuEnum checkTypeSuEnum = CheckTypeSuEnum.getEumByCode(plan.getCheckTypeId());
String branch = PlanServiceImpl.workFlowExcuteBranch(dangerCheckTypeLevelEnum.getCondition(), checkTypeSuEnum.getCondition());
result.put("planType", branch);
result.put("checkMode", hiddenDangerDto.getDangerType());
result.put("planId", plan.getId());
result.put("planName", plan.getName());
result.put("pointId", point.getId());
result.put("pointName", point.getName());
result.put("bizId", hiddenDangerDto.getCheckInputId());
result.put("bizName", hiddenDangerDto.getInputItemName());
result.put("accompanyingUserId", plan.getLeadPeopleIds());
result.put("accompanyingUserName", plan.getLeadPeopleNames());
this.buildCheckInfo(result, hiddenDangerDto.getCheckInputId());
return result;
}
private void buildCheckInfo(Map<String, Object> result, Long checkInputId) {
CheckInput checkInput = iCheckInputDao.findById(checkInputId).orElse(null);
if (checkInput == null) {
return;
}
List<CheckShot> shotList = iCheckShotDao.findAllByCheckIdAndCheckInputId(checkInput.getCheckId(), checkInput.getId());
result.put("checkUserId", checkInput.getUserId());
result.put("checkUserName", checkInput.getUserName());
result.put("planExecuteTime", checkInput.getCreateDate());
result.put("checkPhotoUrl", shotList.stream().map(CheckShot::getPhotoData).toString());
}
}
......@@ -201,7 +201,7 @@ public class PlanServiceImpl implements IPlanService {
/**
* 判断走哪一种工作流WorkFlowBranchEnum
*/
public String workFlowExcuteBranch (String dangerCheckTypeLevel, String checkType) {
public static String workFlowExcuteBranch (String dangerCheckTypeLevel, String checkType) {
String branch = "";
List<Map<String, String>> enumList = WorkFlowBranchEnum.getEnumList();
if (!ObjectUtils.isEmpty(enumList)){
......
......@@ -3,12 +3,14 @@ package com.yeejoin.amos.supervision.business.service.intfc;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.supervision.business.dto.HiddenDangerDto;
import com.yeejoin.amos.supervision.business.dto.HiddenDangerExportDataDto;
import com.yeejoin.amos.supervision.business.dto.HiddenDangerImportDto;
import com.yeejoin.amos.supervision.core.common.dto.DangerDto;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* @author DELL
......@@ -41,7 +43,7 @@ public interface IHiddenDangerService {
* @param dangerDto 隐患对象
* @return DangerDto
*/
DangerDto updateDanger(Long dangerId, DangerDto dangerDto);
DangerDto updateDanger(Long dangerId, DangerDto dangerDto) throws Exception;
/**
* 分页查询
......@@ -90,4 +92,11 @@ public interface IHiddenDangerService {
* @return Boolean
*/
Boolean deleteBatch(List<Long> ids);
/**
* 组织业务数据
* @param hiddenDangerDto 隐患信息
* @return Map<String,Object>
*/
Map<String,Object> buildBizInfo(HiddenDangerDto hiddenDangerDto) throws Exception;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment