|
@@ -70,59 +70,78 @@ public class TaskHandler {
|
|
|
|
|
|
//存放需要处理的数据的id集合
|
|
|
List<String> ids = new ArrayList<>();
|
|
|
+ List<String> deleteRecordIds = new ArrayList<>();
|
|
|
Map<String, LawenforcementRecordDetailVO> jsonMessage = new HashMap<>();
|
|
|
jsonArray.forEach(map -> {
|
|
|
- log.info("=====>{}", MapUtils.getString(map, "id"));
|
|
|
- ids.add(MapUtils.getString(map, "id"));
|
|
|
+ //将报文转换为实体类
|
|
|
JSONObject parse = JSONObject.parseObject(map.get("jsonData").toString());
|
|
|
LawenforcementRecordDetailVO javaObject = JSON.toJavaObject(parse, LawenforcementRecordDetailVO.class);
|
|
|
- jsonMessage.put(MapUtils.getString(map, "id"), javaObject);
|
|
|
- });
|
|
|
|
|
|
- //根据id获取存在的数据 list<LawenforcementRecordDetailVO>
|
|
|
- List<Map<String, String>> list = recordService.getExistRecord(ids);
|
|
|
- //需要删除子表的工单id集合
|
|
|
- List<String> deleteIds = new ArrayList<>();
|
|
|
-
|
|
|
- List<LawenforcementStandardDetailVO> standardAddList = new ArrayList<>();
|
|
|
- List<LawenforcementSubitemDetailVO> subitemAddList = new ArrayList<>();
|
|
|
- List<LawenforcementPersonDetailVO> personAddList = new ArrayList<>();
|
|
|
- List<LawenforcementRecordDetailVO> recordAddList = new ArrayList<>();
|
|
|
-
|
|
|
- list.forEach(record -> {
|
|
|
- String id = MapUtils.getString(record, "id");
|
|
|
- LawenforcementRecordDetailVO lawenforcementRecordDetailVO = jsonMessage.get(id);
|
|
|
- deleteIds.add(id);
|
|
|
- //存储数据到list,等待批量新增
|
|
|
- addRecordByRemote(lawenforcementRecordDetailVO, standardAddList, subitemAddList, personAddList);
|
|
|
- //更新工单主表
|
|
|
- recordService.updateRecord(lawenforcementRecordDetailVO);
|
|
|
- //移除已经操作的记录
|
|
|
- jsonMessage.remove(id);
|
|
|
+ //将报文中工单是加删除的过滤掉, 不做处理
|
|
|
+ if("0".equals(javaObject.getIsDelete())){
|
|
|
+ ids.add(MapUtils.getString(map, "id"));
|
|
|
+ jsonMessage.put(MapUtils.getString(map, "id"), javaObject);
|
|
|
+ }else{
|
|
|
+ deleteRecordIds.add(MapUtils.getString(map, "id"));
|
|
|
+ }
|
|
|
});
|
|
|
|
|
|
- //处理需要新增的工单集合
|
|
|
- jsonMessage.keySet().forEach(id -> {
|
|
|
- //取出报文数据
|
|
|
- LawenforcementRecordDetailVO message = jsonMessage.get(id);
|
|
|
+ if(StringUtils.isNotEmpty(deleteRecordIds)){
|
|
|
+ //删除更新后数据为加删除的工单表以及子表
|
|
|
+ recordService.deleteSSPToList(deleteRecordIds, true);
|
|
|
+ }
|
|
|
|
|
|
- //判断报文中工单状态,如果为3设置为完成
|
|
|
- if (StringUtils.isNotEmpty(message.getStatus()) && "3".equals(message.getStatus())) {
|
|
|
- message.setRecordStatus("lawenforcement_type_2");
|
|
|
- } else {
|
|
|
- message.setRecordStatus("lawenforcement_type_1");
|
|
|
- }
|
|
|
+ if(StringUtils.isNotEmpty(ids)){
|
|
|
+ //根据id获取存在的数据 list<LawenforcementRecordDetailVO>
|
|
|
+ List<Map<String, String>> list = recordService.getExistRecord(ids);
|
|
|
+ //需要删除子表的工单id集合
|
|
|
+ List<String> deleteIds = new ArrayList<>();
|
|
|
+
|
|
|
+ List<LawenforcementStandardDetailVO> standardAddList = new ArrayList<>();
|
|
|
+ List<LawenforcementSubitemDetailVO> subitemAddList = new ArrayList<>();
|
|
|
+ List<LawenforcementPersonDetailVO> personAddList = new ArrayList<>();
|
|
|
+ List<LawenforcementRecordDetailVO> recordAddList = new ArrayList<>();
|
|
|
+
|
|
|
+ list.forEach(record -> {
|
|
|
+ //取出业务表中存在的工单id
|
|
|
+ String id = MapUtils.getString(record, "id");
|
|
|
+ //获取存在的业务对象
|
|
|
+ LawenforcementRecordDetailVO lawenforcementRecordDetailVO = jsonMessage.get(id);
|
|
|
+ //放入需要删除子表的工单id
|
|
|
+ deleteIds.add(id);
|
|
|
+ //存储数据到list,等待批量新增
|
|
|
+ addRecordByRemote(lawenforcementRecordDetailVO, standardAddList, subitemAddList, personAddList);
|
|
|
+ //更新工单主表
|
|
|
+ recordService.updateRecord(lawenforcementRecordDetailVO);
|
|
|
+ //移除已经操作的记录
|
|
|
+ jsonMessage.remove(id);
|
|
|
+ });
|
|
|
|
|
|
- //存储新增子项数据到list,等待批量新增
|
|
|
- addRecordByRemote(message, standardAddList, subitemAddList, personAddList);
|
|
|
- //将工单放入到集合
|
|
|
- recordAddList.add(message);
|
|
|
- });
|
|
|
+ //处理需要新增的工单集合
|
|
|
+ jsonMessage.keySet().forEach(id -> {
|
|
|
+ //取出报文数据
|
|
|
+ LawenforcementRecordDetailVO message = jsonMessage.get(id);
|
|
|
+
|
|
|
+ //判断报文中工单状态,如果为3设置为完成
|
|
|
+ if (StringUtils.isNotEmpty(message.getStatus()) && "3".equals(message.getStatus())) {
|
|
|
+ message.setRecordStatus("lawenforcement_type_2");
|
|
|
+ } else {
|
|
|
+ message.setRecordStatus("lawenforcement_type_1");
|
|
|
+ }
|
|
|
+
|
|
|
+ //存储新增子项数据到list,等待批量新增
|
|
|
+ addRecordByRemote(message, standardAddList, subitemAddList, personAddList);
|
|
|
+ //将工单放入到集合
|
|
|
+ recordAddList.add(message);
|
|
|
+ });
|
|
|
|
|
|
- //先执行批量删除
|
|
|
- recordService.deleteSSPToList(ids);
|
|
|
- //再执行批量新增
|
|
|
- recordService.insertSSPToList(standardAddList, subitemAddList, personAddList, recordAddList);
|
|
|
+ if(StringUtils.isNotEmpty(deleteIds)){
|
|
|
+ //先执行批量删除
|
|
|
+ recordService.deleteSSPToList(deleteIds, false);
|
|
|
+ }
|
|
|
+ //再执行批量新增
|
|
|
+ recordService.insertSSPToList(standardAddList, subitemAddList, personAddList, recordAddList);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
@@ -141,39 +160,54 @@ public class TaskHandler {
|
|
|
List<LawenforcementStandardDetailVO> standards = subitem.getStandards();
|
|
|
//设置父id
|
|
|
if (StringUtils.isNotEmpty(standards)) {
|
|
|
- setSubItemId(subitem.getId(), standards);
|
|
|
- standardAddList.addAll(standards);
|
|
|
+ //设置父级id
|
|
|
+// setSubItemId(subitem.getId(), standards);
|
|
|
+ //
|
|
|
+ standards.forEach(standard->{
|
|
|
+ if("0".equals(standard.getIsDelete())){
|
|
|
+ standardAddList.add(standard);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+// setRecordIdToItems(record.getId(), subitems);
|
|
|
+ subitems.forEach(subitem->{
|
|
|
+ if("0".equals(subitem.getIsDelete())){
|
|
|
+ subitemAddList.add(subitem);
|
|
|
}
|
|
|
});
|
|
|
- setRecordIdToItems(record.getId(), subitems);
|
|
|
- subitemAddList.addAll(subitems);
|
|
|
}
|
|
|
|
|
|
//处理person信息
|
|
|
List<LawenforcementPersonDetailVO> persons = record.getPersons();
|
|
|
if (StringUtils.isNotEmpty(persons)) {
|
|
|
- setRecordIdToItems(record.getId(), persons);
|
|
|
+// setRecordIdToItems(record.getId(), persons);
|
|
|
setDeptId(persons);
|
|
|
- personAddList.addAll(persons);
|
|
|
+ //遍历, 不是假删除的数据,放入到新增集合中.
|
|
|
+ persons.forEach(person->{
|
|
|
+ if("0".equals(person.getIsDelete())){
|
|
|
+ personAddList.add(person);
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
+ /* *//**
|
|
|
* 对standard 设置父id
|
|
|
*
|
|
|
* @param subItemId
|
|
|
* @param standards
|
|
|
- */
|
|
|
+ *//*
|
|
|
private void setSubItemId(String subItemId, List<LawenforcementStandardDetailVO> standards) {
|
|
|
standards.forEach(standard -> standard.setSubitemId(subItemId));
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
+ *//**
|
|
|
* 对工单子级设置父id
|
|
|
- */
|
|
|
+ *//*
|
|
|
private <T extends RecordIdSetter> void setRecordIdToItems(String recordId, List<T> items) {
|
|
|
items.forEach(item -> item.setRecordId(recordId));
|
|
|
- }
|
|
|
+ }*/
|
|
|
|
|
|
/**
|
|
|
* 对执法人员设置部门id
|