添加接口=将上报库数据同步至收集清单(仅限变更状态)

This commit is contained in:
高嵩
2023-09-23 15:00:31 +08:00
parent 570e368208
commit 63d5cce6ed
4 changed files with 78 additions and 0 deletions
@@ -382,4 +382,20 @@ public class ParamsManifestEOController extends JeroController<ParamsManifestEO,
return super.importExcel(request, response, ParamsManifestEO.class);
}
/**
* 将上报库数据同步至收集清单(仅限变更状态)
*
* @param id
* @return
*/
@ApiOperation(value="参数清单-将上报库数据同步至收集清单(仅限变更状态)", notes="参数清单-将上报库数据同步至收集清单(仅限变更状态)")
@GetMapping(value = "/syncChangeDataFromReport")
public Result<?> syncChangeDataFromReport(@RequestParam(name="paramsManifestId",required=true) String paramsManifestId,
@RequestParam(name="reportManifestId",required=true) String reportManifestId) {
paramsManifestEOService.syncChangeDataFromReport(paramsManifestId, reportManifestId);
return Result.OK("操作成功!");
}
}
@@ -119,4 +119,7 @@ public interface IParamsManifestEOService extends IService<ParamsManifestEO> {
* @param json
*/
void replacementUser(JSONObject json);
void syncChangeDataFromReport(String paramsManifestId, String reportManifestId);
}
@@ -733,6 +733,63 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
return updateById(updateManifestEO);
}
/**
* 将上报库数据同步至收集清单(仅限变更状态)
*/
public void syncChangeDataFromReport(String paramsManifestId, String reportManifestId) {
ParamsManifestEO paramsManifestEO = getById(paramsManifestId);
List<ParamsCollectManifestEO> paramsCollectManifestEOList = paramsCollectManifestEOMapper.queryByParamManifestId(paramsManifestId);
// 查询配置信息
List<ParamsConfigEO> pcList = paramsConfigEOService.queryList(paramsManifestId);
List<String> configIdList = pcList.stream().map(ParamsConfigEO::getId).collect(Collectors.toList());
Map<String, String> ocNameMap = pcList.stream().collect(Collectors.toMap(ParamsConfigEO::getId, ParamsConfigEO::getConfigName));
List<ParamsConfigDataEO> paramsConfigDataEOList = paramsConfigDataEOService.queryListByConfigIdList(configIdList);
List<ParamsConfigDataEO> updateList = new ArrayList<>();
// 查询上报库的项目所有参数项的配置数据
ParamsReportEO paramsReportEO = paramsReportEOService.getById(reportManifestId);
List<Map<String, Object>> paramsReportConfigDataList = paramsReportDetailEOService.listInfoForChange(paramsReportEO.getId());
for (ParamsCollectManifestEO pcm : paramsCollectManifestEOList) {
if (CollectManifestStateEnum.CHANGE.getValue().equals(pcm.getState()) && !"11".equals(pcm.getControlType())) {
List<ParamsConfigDataEO> pcdList = paramsConfigDataEOList.stream().filter(e -> e.getParamsCollectManifestId().equals(pcm.getId())).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(pcdList)) {
for (ParamsConfigDataEO pcd : pcdList) {
boolean flag = false;
List<Map<String, Object>> prcdList = paramsReportConfigDataList.stream().filter(o ->
o.get("nio_number").equals(pcm.getNioNumber())
&& o.get("config_name").equals(ocNameMap.get(pcd.getParamsConfigId()))
).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(prcdList) && prcdList.size() == 1) {//多值情况忽略
Map<String, Object> prcdMap = prcdList.get(0);
if (ObjectUtil.isNotEmpty(prcdMap.get("text_data")) && !StringUtils.equals(pcd.getTextData(), String.valueOf(prcdMap.get("text_data")))) {
flag = true;
pcd.setTextData(String.valueOf(prcdMap.get("text_data")));
}
if (ObjectUtil.isNotEmpty(prcdMap.get("pull_data")) && !StringUtils.equals(pcd.getPullData(), String.valueOf(prcdMap.get("pull_data")))) {
flag = true;
pcd.setPullData(String.valueOf(prcdMap.get("pull_data")));
}
if (ObjectUtil.isNotEmpty(prcdMap.get("file_connect_id")) && !StringUtils.equals(pcd.getFileConnectId(), String.valueOf(prcdMap.get("file_connect_id")))) {
flag = true;
pcd.setFileConnectId(String.valueOf(prcdMap.get("file_connect_id")));
}
if(flag){
updateList.add(pcd);
}
}
}
}
}
}
if(CollectionUtils.isNotEmpty(updateList)){
paramsConfigDataEOService.updateBatchById(updateList);
}
}
/**
* 从历史版本进行扩展变更
*/
@@ -1465,4 +1522,5 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
}
}
}
}
@@ -187,6 +187,7 @@
select
prcd.*,
prc.old_params_config_id,
prc.config_name,
prd.nio_number
from params_report_config_data prcd
inner join params_report_detail prd on prd.id = prcd.params_collect_manifest_id