|
@@ -33,9 +33,6 @@ import com.persagy.dmp.common.utils.ResultHelper;
|
|
|
import com.persagy.dmp.define.entity.ObjectInfoDefine;
|
|
|
import com.persagy.dmp.digital.entity.ObjectDigital;
|
|
|
import com.persagy.dmp.digital.entity.ObjectRelation;
|
|
|
-import com.persagy.dmp.file.client.FileClientFacade;
|
|
|
-import com.persagy.dmp.file.model.FileRequestData;
|
|
|
-import com.persagy.dmp.file.model.UploadMes;
|
|
|
import com.persagy.dmp.rwd.basic.constant.DigitalMessageConstant;
|
|
|
import com.persagy.dmp.rwd.basic.constant.DigitalObjectType;
|
|
|
import com.persagy.dmp.rwd.basic.constant.DigitalRelCode;
|
|
@@ -98,10 +95,10 @@ public class ObjectDigitalServiceImpl extends ServiceImpl<ObjectDigitalMapper, O
|
|
|
|
|
|
@Override
|
|
|
public List<ObjectDigital> insert(List<ObjectDigital> voList) {
|
|
|
- validateOnSave(voList, false);
|
|
|
if(CollUtil.isEmpty(voList)) {
|
|
|
return null;
|
|
|
}
|
|
|
+ validateOnSave(voList, false);
|
|
|
//获取对象类型
|
|
|
Map<String, String> typeMap = typeService.queryObjTypeMap();
|
|
|
voList.forEach(vo -> {
|
|
@@ -141,9 +138,7 @@ public class ObjectDigitalServiceImpl extends ServiceImpl<ObjectDigitalMapper, O
|
|
|
fillClassCodeForUpdate(voList,dbMap);
|
|
|
//信息点校验
|
|
|
validateOnSave(voList, true);
|
|
|
- if(CollUtil.isEmpty(voList)) {
|
|
|
- return null;
|
|
|
- }
|
|
|
+ List<ObjectDigital> resultList = new ArrayList<>();
|
|
|
voList.forEach(vo -> {
|
|
|
ObjectDigital dbVO = MapUtil.get(dbMap, vo.getId(), ObjectDigital.class);
|
|
|
// 容错处理
|
|
@@ -695,7 +690,6 @@ public class ObjectDigitalServiceImpl extends ServiceImpl<ObjectDigitalMapper, O
|
|
|
// 查询信息点定义
|
|
|
Map<String, Map<String, ObjectInfoDefine>> allInfoMap = infoService.queryByTypes(typeCodeList);
|
|
|
// 信息点校验器
|
|
|
- List<ObjectDigital> restList = new ArrayList<>();
|
|
|
for(ObjectDigital vo:voList) {
|
|
|
// 获取信息点列表 TODO 先这样处理,后续优化信息点接口后直接删掉此段即可
|
|
|
Map<String, ObjectInfoDefine> infoMap = new HashMap<>(16);
|
|
@@ -715,11 +709,8 @@ public class ObjectDigitalServiceImpl extends ServiceImpl<ObjectDigitalMapper, O
|
|
|
}
|
|
|
}
|
|
|
if(MapUtil.isEmpty(infoMap)) {
|
|
|
- log.error(StrUtil.format("没有对象类型【{}】的信息点定义信息!", vo.getClassCode()));
|
|
|
- continue;
|
|
|
+ throw new BusinessException(StrUtil.format("没有对象类型【{}】的信息点定义信息!", vo.getClassCode()));
|
|
|
}
|
|
|
- // 只保留有对象类型的
|
|
|
- restList.add(vo);
|
|
|
// 信息点值对象
|
|
|
ObjectNode infos = vo.getInfos();
|
|
|
if(infos == null || infos.isNull()) {
|
|
@@ -738,11 +729,6 @@ public class ObjectDigitalServiceImpl extends ServiceImpl<ObjectDigitalMapper, O
|
|
|
InfoDataFactory.parse(infoMap.get(infoCode), infos.get(infoCode));
|
|
|
}
|
|
|
}
|
|
|
- // 只保留能找到对象类型的
|
|
|
- voList.clear();
|
|
|
- if(CollUtil.isNotEmpty(restList)) {
|
|
|
- voList.addAll(restList);
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -837,75 +823,5 @@ public class ObjectDigitalServiceImpl extends ServiceImpl<ObjectDigitalMapper, O
|
|
|
}
|
|
|
|
|
|
|
|
|
- /**
|
|
|
- * 生成默认二维码
|
|
|
- * @param objectDigitals
|
|
|
- */
|
|
|
- @Override
|
|
|
- public void createDefaultQrCode(List<ObjectNode> objectDigitals) {
|
|
|
- if(CollUtil.isEmpty(objectDigitals)){
|
|
|
- return;
|
|
|
- }
|
|
|
- List<ObjectDigital> list = new ArrayList<>();
|
|
|
- for (ObjectNode objectDigital : objectDigitals) {
|
|
|
- //生成二维码图片,并上传到文件服务器
|
|
|
- ObjectDigital digital = new ObjectDigital();
|
|
|
- digital.setId(objectDigital.get("id").textValue());
|
|
|
- UploadMes objectQrCode = createObjectQrCode(digital);
|
|
|
- if(objectQrCode == null){
|
|
|
- log.info("生成二维码失败");
|
|
|
- continue;
|
|
|
- }
|
|
|
- //设置对象二维码信息
|
|
|
- setObjectQrCode(digital,objectQrCode);
|
|
|
- list.add(digital);
|
|
|
- }
|
|
|
- //更新对象二维码信息
|
|
|
- update(list);
|
|
|
- }
|
|
|
|
|
|
- /**
|
|
|
- * 设置二维码图片
|
|
|
- * @param digital
|
|
|
- */
|
|
|
- public void setObjectQrCode(ObjectDigital digital, UploadMes objectQrCode){
|
|
|
- //设置二维码信息
|
|
|
- ArrayNode qrCodePics = JsonNodeFactory.instance.arrayNode();
|
|
|
- ObjectNode qrCodePic = JsonNodeFactory.instance.objectNode();
|
|
|
- qrCodePic.put("key", objectQrCode.getId());
|
|
|
- qrCodePics.add(qrCodePic);
|
|
|
-
|
|
|
- ObjectNode infos = JsonNodeFactory.instance.objectNode();
|
|
|
- infos.put(CommonConstant.QR_CODE_PIC_INFO,qrCodePics);
|
|
|
- digital.setInfos(infos);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 生成二维码信息并上传到文件服务器
|
|
|
- * @param objectDigitalVO
|
|
|
- */
|
|
|
- public UploadMes createObjectQrCode(ObjectDigital objectDigitalVO){
|
|
|
- //获取基础参数
|
|
|
- String projectId = objectDigitalVO.getProjectId();
|
|
|
- String groupCode = objectDigitalVO.getGroupCode();
|
|
|
- String objId = objectDigitalVO.getId();
|
|
|
- String key = CommonConstant.QRCODE_KEY_PREFIX +"_"+ objId;
|
|
|
- //生成二维码
|
|
|
- QrConfig qrConfig = new QrConfig(300, 300);
|
|
|
- File qrCodeFile = QrCodeUtil.generate(objId, qrConfig, FileUtil.file("/image"));
|
|
|
- //上传到文件服务器
|
|
|
- FileRequestData fileRequestData = new FileRequestData();
|
|
|
- fileRequestData.setFileName(key);
|
|
|
- fileRequestData.setFileMd5(SecureUtil.md5(qrCodeFile));
|
|
|
- fileRequestData.setGroupCode(objectDigitalVO.getGroupCode());
|
|
|
- fileRequestData.setFileBucket(CommonConstant.FILE_BUCKET_NAME);
|
|
|
- fileRequestData.setFileSize(qrCodeFile.length());
|
|
|
- CommonResult<UploadMes> uploadMesCommonResult = FileClientFacade.initSingleUploadPrototype(groupCode,projectId,null,null,fileRequestData);
|
|
|
- if(!CommonConstant.QUERY_SUCCESS.equals(uploadMesCommonResult.getResult())){
|
|
|
- log.info("上传文件失败:"+uploadMesCommonResult.getMessage());
|
|
|
- return new UploadMes();
|
|
|
- }
|
|
|
- log.info("生成二维码信息"+uploadMesCommonResult.getMessage());
|
|
|
- return uploadMesCommonResult.getData();
|
|
|
- }
|
|
|
}
|