|
@@ -85,6 +85,9 @@ public class SyncAppImpl implements ISyncApp {
|
|
|
@Autowired
|
|
|
private AdmUploadJobMapper uploadJobMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private AdmMessagePMapper messageMapper;
|
|
|
+
|
|
|
private final ObjectMapper4Tx mapper4Tx;
|
|
|
|
|
|
@Autowired
|
|
@@ -382,7 +385,7 @@ public class SyncAppImpl implements ISyncApp {
|
|
|
List<ObjectNode>[] objData = prepareBdtpData(uploadData.getObjects(), operator, timestamp, uploadData.getUploadJobId(), d2mMessage, logs);
|
|
|
uploadObjs(groupCode, projectId, userId, objData);
|
|
|
|
|
|
- sendD2mMessage(d2mMessage);
|
|
|
+ sendD2mMessage(d2mMessage, projectId, uploadData.getUploadJobId());
|
|
|
}
|
|
|
if (CollUtil.isNotEmpty(uploadData.getRelations())) {
|
|
|
List<ObjectNode>[] relData = prepareBdtpData(uploadData.getRelations(), operator, timestamp, uploadData.getUploadJobId(), null, logs);
|
|
@@ -390,7 +393,7 @@ public class SyncAppImpl implements ISyncApp {
|
|
|
}
|
|
|
|
|
|
//上传adm数据
|
|
|
- uploadAdmData(uploadData, operator, timestamp, logs);
|
|
|
+ uploadAdmData(uploadData, operator, timestamp, projectId, logs);
|
|
|
} catch (Exception e) {
|
|
|
markStatus(uploadData.getUploadJobId(), AdmConst.UPLOAD_ERROR);
|
|
|
|
|
@@ -419,7 +422,7 @@ public class SyncAppImpl implements ISyncApp {
|
|
|
job.setProjectId(projectId);
|
|
|
job.setOperator(operator);
|
|
|
job.setStatus(AdmConst.UPLOAD_PROCESSING);
|
|
|
- job.setStartTime(new Timestamp(new Date().getTime()));
|
|
|
+ job.setStartTime(new Timestamp(System.currentTimeMillis()));
|
|
|
uploadJobMapper.insert(job);
|
|
|
}
|
|
|
return null;
|
|
@@ -429,7 +432,7 @@ public class SyncAppImpl implements ISyncApp {
|
|
|
AdmUploadJob job = new AdmUploadJob();
|
|
|
job.setId(uploadJobId);
|
|
|
job.setStatus(status);
|
|
|
- job.setFinishTime(new Timestamp(new Date().getTime()));
|
|
|
+ job.setFinishTime(new Timestamp(System.currentTimeMillis()));
|
|
|
uploadJobMapper.updateById(job);
|
|
|
}
|
|
|
|
|
@@ -463,7 +466,7 @@ public class SyncAppImpl implements ISyncApp {
|
|
|
boolean remove = entity.get("valid").asInt() == ValidEnum.FALSE.getType();
|
|
|
|
|
|
//设备数据上传时向模型服务发同步消息
|
|
|
- if(d2mMessage != null && AdmConst.OBJ_TYPE_EQUIPMENT.equals(entity.get("objType"))) {
|
|
|
+ if(d2mMessage != null && needsD2m(entity)) {
|
|
|
if(remove)
|
|
|
d2mMessage.appendRemoveItem(entity);
|
|
|
else
|
|
@@ -480,7 +483,7 @@ public class SyncAppImpl implements ISyncApp {
|
|
|
//TODO 可能需要进行删除信息点操作
|
|
|
|
|
|
} else {
|
|
|
- if(d2mMessage != null)
|
|
|
+ if(d2mMessage != null && needsD2m(entity))
|
|
|
d2mMessage.appendAddItem(entity);
|
|
|
|
|
|
log = new AdmUploadLog(jobId, operator, AdmUploadLog.ADD);
|
|
@@ -500,33 +503,37 @@ public class SyncAppImpl implements ISyncApp {
|
|
|
return new List[] {list, updateList};
|
|
|
}
|
|
|
|
|
|
+ private boolean needsD2m(ObjectNode node){
|
|
|
+ return node != null && node.get("objType") != null && AdmConst.OBJ_TYPE_EQUIPMENT.equals(node.get("objType").asText());
|
|
|
+ }
|
|
|
+
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public void uploadAdmData(UploadData uploadData, String operator, String time, List<AdmUploadLog> logs) {
|
|
|
+ public void uploadAdmData(UploadData uploadData, String operator, String time, String projectId, List<AdmUploadLog> logs) {
|
|
|
if (CollUtil.isNotEmpty(uploadData.getPipes())) {
|
|
|
- uploadAdmEntities(uploadData.getPipes(), operator, time, uploadData.getUploadJobId(), pipeMapper, new D2mMessage("pipe"), logs, true);
|
|
|
+ uploadAdmEntities(uploadData.getPipes(), operator, time, projectId, uploadData.getUploadJobId(), pipeMapper, new D2mMessage("pipe"), logs, true);
|
|
|
}
|
|
|
|
|
|
if (CollUtil.isNotEmpty(uploadData.getJobSpace())) {
|
|
|
- uploadAdmEntities(uploadData.getJobSpace(), operator, time, uploadData.getUploadJobId(), jobSpaceMapper, null, logs, false);
|
|
|
+ uploadAdmEntities(uploadData.getJobSpace(), operator, time, projectId, uploadData.getUploadJobId(), jobSpaceMapper, null, logs, false);
|
|
|
}
|
|
|
if (CollUtil.isNotEmpty(uploadData.getProblemArch())) {
|
|
|
- uploadAdmEntities(uploadData.getProblemArch(), operator, time, uploadData.getUploadJobId(), problemArchMapper, null, logs, false);
|
|
|
+ uploadAdmEntities(uploadData.getProblemArch(), operator, time, projectId, uploadData.getUploadJobId(), problemArchMapper, null, logs, false);
|
|
|
}
|
|
|
if (CollUtil.isNotEmpty(uploadData.getProblemEquip())) {
|
|
|
- uploadAdmEntities(uploadData.getProblemEquip(), operator, time, uploadData.getUploadJobId(), problemEquipMapper, null, logs, false);
|
|
|
+ uploadAdmEntities(uploadData.getProblemEquip(), operator, time, projectId, uploadData.getUploadJobId(), problemEquipMapper, null, logs, false);
|
|
|
}
|
|
|
if (CollUtil.isNotEmpty(uploadData.getFile())) {
|
|
|
- uploadAdmEntities(uploadData.getFile(), operator, time, uploadData.getUploadJobId(), fileMapper, null, logs, false);
|
|
|
+ uploadAdmEntities(uploadData.getFile(), operator, time, projectId, uploadData.getUploadJobId(), fileMapper, null, logs, false);
|
|
|
}
|
|
|
if (CollUtil.isNotEmpty(uploadData.getQrCode())) {
|
|
|
- uploadAdmEntities(uploadData.getQrCode(), operator, time, uploadData.getUploadJobId(), qrCodeMapper, null, logs, false);
|
|
|
+ uploadAdmEntities(uploadData.getQrCode(), operator, time, projectId, uploadData.getUploadJobId(), qrCodeMapper, null, logs, false);
|
|
|
}
|
|
|
if (CollUtil.isNotEmpty(uploadData.getServeArea())) {
|
|
|
- uploadAdmEntities(uploadData.getServeArea(), operator, time, uploadData.getUploadJobId(), serveAreaMapper, null, logs, false);
|
|
|
+ uploadAdmEntities(uploadData.getServeArea(), operator, time, projectId, uploadData.getUploadJobId(), serveAreaMapper, null, logs, false);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private <T extends BaseAdmDataEntity> void uploadAdmEntities(List<T> list, String operator, String time, String jobId, BaseMapper<T> mapper, D2mMessage d2mMessage, List<AdmUploadLog> logs, boolean merge) {
|
|
|
+ private <T extends BaseAdmDataEntity> void uploadAdmEntities(List<T> list, String operator, String time, String projectId, String jobId, BaseMapper<T> mapper, D2mMessage d2mMessage, List<AdmUploadLog> logs, boolean merge) {
|
|
|
List<T> updateList = new ArrayList<>();
|
|
|
Iterator<T> iter = list.iterator();
|
|
|
while (iter.hasNext()) {
|
|
@@ -596,7 +603,7 @@ public class SyncAppImpl implements ISyncApp {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- sendD2mMessage(d2mMessage);
|
|
|
+ sendD2mMessage(d2mMessage, projectId, jobId);
|
|
|
}
|
|
|
|
|
|
private <T extends BaseAdmDataEntity> T mergeEntity(T obj, T dbObj) {
|
|
@@ -616,23 +623,24 @@ public class SyncAppImpl implements ISyncApp {
|
|
|
return infos;
|
|
|
}
|
|
|
|
|
|
- private void sendD2mMessage(D2mMessage d2mMessage){
|
|
|
+ private void sendD2mMessage(D2mMessage d2mMessage, String projectId, String jobId){
|
|
|
if (d2mMessage != null && d2mMessage.isNotEmpty()) {
|
|
|
- if(d2mMessage.getAddItems() != null){
|
|
|
- for(Object o : d2mMessage.getAddItems()) {
|
|
|
- markM2dState(o);
|
|
|
- }
|
|
|
- }
|
|
|
- if(d2mMessage.getModifyItems() != null){
|
|
|
- for(Object o : d2mMessage.getModifyItems()) {
|
|
|
- markM2dState(o);
|
|
|
- }
|
|
|
- }
|
|
|
- if(d2mMessage.getRemoveItems() != null) {
|
|
|
- for(Object o : d2mMessage.getRemoveItems()) {
|
|
|
- markM2dState(o);
|
|
|
- }
|
|
|
- }
|
|
|
+// if(d2mMessage.getAddItems() != null){
|
|
|
+// for(Object o : d2mMessage.getAddItems()) {
|
|
|
+// markM2dState(o);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// if(d2mMessage.getModifyItems() != null){
|
|
|
+// for(Object o : d2mMessage.getModifyItems()) {
|
|
|
+// markM2dState(o);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// if(d2mMessage.getRemoveItems() != null) {
|
|
|
+// for(Object o : d2mMessage.getRemoveItems()) {
|
|
|
+// markM2dState(o);
|
|
|
+// }
|
|
|
+// }
|
|
|
+ markM2dState(d2mMessage, projectId, jobId);
|
|
|
syncModel.sendMessageToModel(d2mMessage);
|
|
|
}
|
|
|
}
|
|
@@ -657,8 +665,17 @@ public class SyncAppImpl implements ISyncApp {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void markM2dState(Object item){
|
|
|
- //TODO 标记数据同步状态
|
|
|
+ private void markM2dState(D2mMessage d2mMessage, String projectId, String jobId){
|
|
|
+ AdmMessageP message = new AdmMessageP();
|
|
|
+ message.setId(d2mMessage.getId());
|
|
|
+ message.setProjectId(projectId);
|
|
|
+ message.setTriggerType("upload");
|
|
|
+ message.setSender(jobId);
|
|
|
+ message.setContent(d2mMessage);
|
|
|
+ message.setStatus(AdmConst.UPLOAD_PROCESSING);
|
|
|
+ message.setSendTime(new Timestamp(System.currentTimeMillis()));
|
|
|
+
|
|
|
+ messageMapper.insert(message);
|
|
|
}
|
|
|
|
|
|
}
|