Commit a88472ea authored by hezhuozhi's avatar hezhuozhi

Merge remote-tracking branch 'origin/develop_tzs_register_test' into develop_tzs_register_test

parents 4847bf68 d9ad5ecc
......@@ -987,4 +987,8 @@ public class XiAnEquipInfoExcelDto extends BaseDto {
@ExcelProperty(value = "序号")
private String xaSerial;
@ApiModelProperty(value = "资料是否齐全(0齐全, 1不齐全)-西安数据导入")
@ExcelIgnore
private Integer isCompleteXa;
}
\ No newline at end of file
......@@ -27,6 +27,7 @@ import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.stream.Stream;
@Slf4j
@Service
......@@ -205,7 +206,7 @@ public class XiAnDataDockServiceImpl {
// 通用字段检查 每一个sheet页都有的基本信息,设计信息,制造信息和使用信息
this.commonFieldCheck(data, rowError);
data.setIsCompleteXa(this.checkIsComplete(data) ? 0 : 1);
// 起重机械----技术参数 检查
if (isQZJX) {
this.QZJXTechnicalParamsCheck(data, rowError);
......@@ -259,6 +260,20 @@ public class XiAnDataDockServiceImpl {
}
/**
* 检查资料是否齐全,16个导入必填项
*
* @param data 导入项
*/
private boolean checkIsComplete(XiAnEquipInfoExcelDto data) {
return Stream.of(data.getEquList(), data.getEquCategory(), data.getUseInnerCode(),
data.getProductName(), data.getEquType(), data.getUseUnitCode(),
data.getUseUnit(), data.getDesignUnitCreditCode(), data.getDesignUnitName(),
data.getDesignUseDate(), data.getDesignDate(), data.getProduceUnitCreditCode(),
data.getProduceUnitName(), data.getProduceLicenseNum(), data.getFactoryNum(),
data.getProduceDate()).noneMatch(StringUtils::isBlank);
}
/**
* 通用字段检查 每一个sheet页都有的基本信息,设计信息,制造信息和使用信息
*
* @param data 源数据
......
......@@ -173,10 +173,15 @@ public class ESEquipmentCategoryDto {
@Field(type = FieldType.Text)
private String INFORMATION_SITUATION;
/**
* 工程装置id(工业管道使用)
*/
@Field(type = FieldType.Keyword, name = "PROJECT_CONTRAPTION_ID")
private String projectContraptionId;
/**
* 资料是否齐全(0齐全, 1不齐全)-西安数据导入
*/
@Field(type = FieldType.Keyword, name = "IS_COMPLETE_XA")
private String IS_COMPLETE_XA;
}
......@@ -79,7 +79,14 @@ public class IdxBizJqEquipmentRegisterController extends BaseController {
@GetMapping(value = "/{record}")
@ApiOperation(httpMethod = "GET", value = "根据record查询设备注册信息详情", notes = "根据record查询设备注册信息详情")
public ResponseModel<Object> selectOne(@PathVariable String record, @RequestParam(required = false) String isCopy) {
return ResponseHelper.buildResponse(idxBizJgRegisterInfoService.getEquipmentRegisterByRecord(record, isCopy));
CompanyBo companyBo = getSelectedOrgInfo().getCompany();
String companyLevel;
if(companyBo.getLevel().equals(BaseController.COMPANY_TYPE_COMPANY)){
companyLevel = companyBo.getLevel();
} else {
companyLevel = BaseController.COMPANY_TYPE_SUPERVISION;
}
return ResponseHelper.buildResponse(idxBizJgRegisterInfoService.getEquipmentRegisterByRecord(record, isCopy, companyLevel));
}
......
......@@ -22,7 +22,7 @@ public interface IIdxBizJgRegisterInfoService {
boolean batchDeleteByRecord(Map<String,Object> map);
Map<String, Map<String, Object>> getEquipmentRegisterByRecord(String record, String isCopy);
Map<String, Map<String, Object>> getEquipmentRegisterByRecord(String record, String isCopy, String companyLevel);
Page<JSONObject> queryForEquipmentRegisterPage(JSONObject jsonObject);
......
......@@ -60,6 +60,7 @@ import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static com.alibaba.fastjson.JSON.toJSONString;
@Slf4j
......@@ -120,7 +121,7 @@ public class DataDockServiceImpl {
String product = RequestContext.getProduct();
String token = RequestContext.getToken();
CompletableFuture.allOf(
equLists.stream().map(equ -> CompletableFuture.runAsync(() -> {
equLists.parallelStream().map(equ -> CompletableFuture.runAsync(() -> {
RequestContext.setAppKey(appKey);
RequestContext.setProduct(product);
RequestContext.setToken(token);
......@@ -135,6 +136,7 @@ public class DataDockServiceImpl {
// transactionTemplate.execute(status -> {
String record = UUID.randomUUID().toString();
String equList = String.valueOf(equ.get("equList"));
String isCompleteXa = String.valueOf(equ.get("isCompleteXa"));
// 压力管道保存 工程装置表信息 必须在saveUseInfo之前进行,需要提前生成工程装置id
saveProjectContraption(equ, equList);
// 保存到设备表
......@@ -147,7 +149,7 @@ public class DataDockServiceImpl {
// 保存技术参数
saveTechParams(equ, record, equList);
// 保存到ES
saveEquInfoToEs(record);
saveEquInfoToEs(record, isCompleteXa);
// return null;
// });
} catch (Exception e) {
......@@ -164,7 +166,7 @@ public class DataDockServiceImpl {
idxBizJgSupervisionInfoService.lambdaUpdate().set(IdxBizJgSupervisionInfo::getOrgBranchCode, "50*74*160*12478").set(IdxBizJgSupervisionInfo::getOrgBranchName, "交口河镇市场监管所").in(IdxBizJgSupervisionInfo::getRecord, records).update();
records.forEach(record -> {
esEquipmentCategory.deleteById(record);
this.saveEquInfoToEs(record);
this.saveEquInfoToEs(record,"1");
});
return records.size();
}
......@@ -350,15 +352,21 @@ public class DataDockServiceImpl {
supervisionInfo.setRecDate(new Date());
// 获取符合条件的公司 Map
Map<String, String> countyMap;
Map<String, Map<String, String>> countyMap;
try {
countyMap = Optional.ofNullable(Privilege.companyClient.queryAgencyList("county").getResult())
.orElse(Collections.emptyList())
.stream()
.filter(v -> "1442687786065854466".equals(String.valueOf(v.getParentId())))
.collect(Collectors.toMap(CompanyModel::getCompanyCode, CompanyModel::getCompanyName, (a, b) -> a));
.collect(Collectors.toMap(
CompanyModel::getCompanyCode,
v -> Stream.of(new AbstractMap.SimpleEntry<>("companyName", v.getCompanyName()),
new AbstractMap.SimpleEntry<>("orgCode", v.getOrgCode()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)),
(a, b) -> a
));
} catch (Exception e) {
throw new RuntimeException(e);
countyMap = Collections.emptyMap();
}
String companyCode = "1".equals(equ.get("equCodeType"))
? String.valueOf(equ.get("equCode"))
......@@ -368,11 +376,14 @@ public class DataDockServiceImpl {
if (companyCode.length() > 9) {
companyCode = companyCode.substring(4, 10);
}
// 直接获取公司名称
String companyName = countyMap.get(companyCode);
Map<String, String> companyInfo = countyMap.get(companyCode);
if (companyInfo != null) {
String companyName = companyInfo.get("companyName");
String orgCode = companyInfo.get("orgCode");
if (companyName != null && !companyName.trim().isEmpty()) {
supervisionInfo.setOrgBranchCode(companyCode);
supervisionInfo.setOrgBranchCode(orgCode);
supervisionInfo.setOrgBranchName(companyName);
}
} else {
// 通过 useUnitCode 查询属地监管部门
String useUnitCode = String.valueOf(equ.get("useUnitCode")).trim();
......@@ -390,7 +401,7 @@ public class DataDockServiceImpl {
.ifPresent(supervisionInfo::setOrgBranchName);
}
} else {
supervisionInfo.setOrgBranchCode("610100");
supervisionInfo.setOrgBranchCode("50*52");
supervisionInfo.setOrgBranchName("西安市市场监督管理局");
}
}
......@@ -586,12 +597,13 @@ public class DataDockServiceImpl {
*
* @param record 设备唯一编码
*/
private void saveEquInfoToEs(String record) {
private void saveEquInfoToEs(String record, String isCompleteXa) {
Map<String, Object> map = categoryOtherInfoMapper.selectDataById(record);
ESEquipmentCategoryDto equipmentCategoryDto = JSON.parseObject(toJSONString(map), ESEquipmentCategoryDto.class);
if (!ObjectUtils.isEmpty(equipmentCategoryDto)) {
long time = Timestamp.valueOf(map.get("REC_DATE").toString().substring(0, 19)).getTime();
equipmentCategoryDto.setREC_DATE(time);
equipmentCategoryDto.setIS_COMPLETE_XA(isCompleteXa);
esEquipmentCategory.save(equipmentCategoryDto);
}
}
......
......@@ -11,7 +11,6 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.dao.mapper.DataDictionaryMapper;
import com.yeejoin.amos.boot.biz.common.dto.KeyValueDto;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
......@@ -23,7 +22,6 @@ import com.yeejoin.amos.boot.module.common.api.dto.ESEquipmentCategoryDto;
import com.yeejoin.amos.boot.module.jg.api.dto.JgInstallationNoticeEqDto;
import com.yeejoin.amos.boot.module.jg.api.dto.PieLineEquipContraptionDto;
import com.yeejoin.amos.boot.module.jg.api.entity.*;
import com.yeejoin.amos.boot.module.jg.api.enums.CompanyTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.PipelineEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.CommonMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.DataHandlerMapper;
......@@ -37,7 +35,6 @@ import com.yeejoin.amos.boot.module.ymt.api.mapper.*;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
......@@ -46,13 +43,12 @@ import org.springframework.util.StopWatch;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.sql.Timestamp;
import java.time.LocalDateTime;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
......@@ -1038,17 +1034,20 @@ public class DataHandlerServiceImpl {
*/
public void updateUseInfoOfCompanyV1() {
List<IdxBizJgUseInfo> useInfos = useInfoService.getBaseMapper().selectXAList();
log.info("1.西安导入数据需补充使用单位代码的设备数量:{}", useInfos.size());
Map<String, String> companynameCodeMap = getCompanyNameCodeMap();
AtomicInteger i = new AtomicInteger();
useInfos.forEach(e->{
String companyCode = companynameCodeMap.get(e.getUseUnitName());
if(companyCode != null){
i.getAndIncrement();
// 1.数据库更新
LambdaUpdateWrapper<IdxBizJgUseInfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(TzsBaseEntity::getSequenceNbr, e.getSequenceNbr());
updateWrapper.set(IdxBizJgUseInfo::getUseUnitCreditCode, companyCode);
updateWrapper.set(TzsBaseEntity::getRecDate, new Date());
useInfoService.update(updateWrapper);
// 2.es 更新
// 2.es更新
Optional<ESEquipmentCategoryDto> categoryDto = esEquipmentCategory.findById(e.getRecord());
categoryDto.ifPresent(categoryEs -> {
categoryEs.setUSE_UNIT_CREDIT_CODE(companyCode);
......@@ -1058,6 +1057,7 @@ public class DataHandlerServiceImpl {
});
}
});
log.info("2.西安数据需补充使用单位设备数量:{}, 实际补充使用单位设备数量:{}", useInfos.size(), i.intValue());
}
private Map<String, String> getCompanyNameCodeMap() {
......
......@@ -12,7 +12,6 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.base.Joiner;
......@@ -773,7 +772,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
String record = (String) equipmentInfoForm.get(RECORD);
String dataSource = (String) equipmentInfoForm.get(DATA_SOURCE);
if (dataSource.contains("his")) {
if (dataSource.contains("his") && equipmentInfoForm.get("useRegistrationCode") != null) {
String useRegistrationCode = String.valueOf(equipmentInfoForm.get("useRegistrationCode")).trim();
String equipId = String.valueOf(equipmentInfoForm.get("RECORD"));
// 校验使用登记证编号的唯一性
......@@ -1052,9 +1051,10 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
* 查询设备注册信息详情
*
* @param record
* @param companyLevel
* @return
*/
public Map<String, Map<String, Object>> getEquipmentRegisterByRecord(String record, String isCopy) {
public Map<String, Map<String, Object>> getEquipmentRegisterByRecord(String record, String isCopy, String companyLevel) {
Map<String, Map<String, Object>> resultMap = new HashMap<>();
// 设备种类
Map<String, Object> equIpClassMap = this.getEquIpClassMap(record, "");
......@@ -1063,6 +1063,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
if (!ValidationUtil.isEmpty(equIpClassMap)) {
resultMap.put(EQUIP_CLASS_FORM_ID, equIpClassMap);
}
equipInfoMap.put("companyLevel", companyLevel);
// 设备参数
if (equIpClassMap.containsKey(EQU_LIST) && !ValidationUtil.isEmpty(equIpClassMap.get(EQU_LIST).toString())) {
Map<String, Object> equipParamsMap = this.getEquipParamsMap(record, "", equIpClassMap.get(EQU_LIST).toString());
......@@ -3101,11 +3102,11 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
String record = null;
// 设备种类
String equList = String.valueOf(equipmentClassForm.get(EQU_LIST));
String equList = String.valueOf(equipmentInfoForm.get(EQU_LIST));
// 设备类别
String equCategory = String.valueOf(equipmentClassForm.get(EQU_CATEGORY));
String equCategory = String.valueOf(equipmentInfoForm.get(EQU_CATEGORY));
// 设备品种
String equDefine = String.valueOf(equipmentClassForm.get(EQU_DEFINE));
String equDefine = String.valueOf(equipmentInfoForm.get(EQU_DEFINE));
// 业务场景
String businessScenarios = String.valueOf(equipmentClassForm.get(BUSINESS_SCENARIOS));
// 操作类型
......
......@@ -233,4 +233,10 @@ public class IdxBizJgRegisterInfo extends TzsBaseEntity {
*/
@TableField("\"XA_SERIAL\"")
private String xaSerial;
/**
* 资料是否齐全(0齐全, 1不齐全)-西安数据导入
*/
@TableField("\"IS_COMPLETE_XA\"")
private String isCompleteXa;
}
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