|
@@ -70,9 +70,9 @@ public class LawenforcementRecordServiceImpl extends BaseServiceImpl implements
|
|
|
@Override
|
|
|
public int insertEnforceLawInfoByList(JSONArray records) {
|
|
|
//存储原始报文
|
|
|
- insertJsonData(records);
|
|
|
+ return insertJsonData(records);
|
|
|
|
|
|
- //创建转换结果集合
|
|
|
+ /*//创建转换结果集合
|
|
|
List<LawenforcementRecordDetailVO> remoteRecordList = JSONArray.parseArray(records.toJSONString(), LawenforcementRecordDetailVO.class);
|
|
|
//创建新增集合
|
|
|
List<LawenforcementRecordDetailVO> recordAddList = new ArrayList<>();
|
|
@@ -127,7 +127,7 @@ public class LawenforcementRecordServiceImpl extends BaseServiceImpl implements
|
|
|
return i;
|
|
|
}
|
|
|
log.error("数据转换后为空");
|
|
|
- return 0;
|
|
|
+ return 0;*/
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -345,116 +345,135 @@ public class LawenforcementRecordServiceImpl extends BaseServiceImpl implements
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 新增工单方法:对接省平台数据
|
|
|
- *
|
|
|
- * @param record
|
|
|
+ * 报文处理
|
|
|
+ * @param messageArray
|
|
|
*/
|
|
|
- private JSONObject addRecordByRemote(LawenforcementRecordDetailVO record) {
|
|
|
- //创建返回集合
|
|
|
- List<LawenforcementStandardDetailVO> standardAddList = new ArrayList<>();
|
|
|
- List<LawenforcementSubitemDetailVO> subitemAddList = new ArrayList<>();
|
|
|
- List<LawenforcementPersonDetailVO> personAddList = new ArrayList<>();
|
|
|
+ private int insertJsonData(JSONArray messageArray) {
|
|
|
+ try{
|
|
|
+ //格式化时间
|
|
|
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+
|
|
|
+ //转换为实体类集合
|
|
|
+ List<LawenforcementRecordDetailVO> recordListMessage = JSONArray.parseArray(messageArray.toJSONString(), LawenforcementRecordDetailVO.class);
|
|
|
+
|
|
|
+ //存储数据的id
|
|
|
+ List<String> idArray = new ArrayList<>();
|
|
|
+
|
|
|
+ //以id为key,数据对象为value
|
|
|
+ Map<String, LawenforcementRecordDetailVO> recordMap = new HashMap<>();
|
|
|
+
|
|
|
+ //遍历报文数据,存储需要的信息
|
|
|
+ recordListMessage.forEach(message->{
|
|
|
+ idArray.add(message.getId());
|
|
|
+ recordMap.put(message.getId(), message);
|
|
|
+ });
|
|
|
|
|
|
- //处理subitem信息
|
|
|
- List<LawenforcementSubitemDetailVO> subitems = record.getSubitems();
|
|
|
- if (StringUtils.isNotEmpty(subitems)) {
|
|
|
- subitems.forEach(subitem -> {
|
|
|
- //处理standard信息
|
|
|
- List<LawenforcementStandardDetailVO> standards = subitem.getStandards();
|
|
|
- //设置父id
|
|
|
- if (StringUtils.isNotEmpty(standards)) {
|
|
|
- setSubItemId(subitem.getId(), standards);
|
|
|
- log.info("放入standards =》 {}", standards);
|
|
|
- standardAddList.addAll(standards);
|
|
|
+ //调用获取数据方法,查出存在的数据
|
|
|
+ List<Map<String, Object>> existMessage = recordMapper.getExistMessage(idArray);
|
|
|
+
|
|
|
+ //对存在的数据进行遍历更新;并且在recordMap中移除已经更新的数据
|
|
|
+ existMessage.forEach(existMap->{
|
|
|
+ //取出本次报文中id存在的数据
|
|
|
+ LawenforcementRecordDetailVO message = recordMap.get(MapUtils.getString(existMap, "id"));
|
|
|
+
|
|
|
+ //报文数据的更新时间不是空,证明有更新
|
|
|
+ if(!Objects.equals(MapUtils.getLong(existMap, "dataUpdateTime"), message.getUpdateTime())){
|
|
|
+ Map<String, Object> addMessage = new HashMap<>();
|
|
|
+ addMessage.put("id", message.getId());
|
|
|
+ addMessage.put("jsonData", message);
|
|
|
+ addMessage.put("updateTime", simpleDateFormat.format(new Date()));
|
|
|
+ addMessage.put("dataUpdateTime", message.getUpdateTime());
|
|
|
+ recordMapper.updateJsonData(addMessage);
|
|
|
}
|
|
|
+
|
|
|
+ //移除更新的记录
|
|
|
+ recordMap.remove(message.getId());
|
|
|
});
|
|
|
- setRecordIdToItems(record.getId(), subitems);
|
|
|
- log.info("放入subitems =》 {}", subitems);
|
|
|
- subitemAddList.addAll(subitems);
|
|
|
- }
|
|
|
|
|
|
- //处理person信息
|
|
|
- List<LawenforcementPersonDetailVO> persons = record.getPersons();
|
|
|
- if (StringUtils.isNotEmpty(persons)) {
|
|
|
- setRecordIdToItems(record.getId(), persons);
|
|
|
- setDeptId(persons);
|
|
|
- log.info("放入persons =》 {}", persons);
|
|
|
- personAddList.addAll(persons);
|
|
|
+
|
|
|
+ //创建List用于新增报文
|
|
|
+ List<Map<String, Object>> addMessageList = new ArrayList<>();
|
|
|
+ //遍历剩余的map数据,用于新增报文
|
|
|
+ recordMap.keySet().forEach(messageId->{
|
|
|
+ LawenforcementRecordDetailVO lawenforcementRecordDetailVO = recordMap.get(messageId);
|
|
|
+
|
|
|
+ Date date = new Date();
|
|
|
+ Map<String, Object> addMessage = new HashMap<>();
|
|
|
+ addMessage.put("id", messageId);
|
|
|
+ addMessage.put("jsonData", lawenforcementRecordDetailVO);
|
|
|
+ addMessage.put("createTime", simpleDateFormat.format(date));
|
|
|
+ addMessage.put("updateTime", simpleDateFormat.format(date));
|
|
|
+ addMessage.put("dataCreateTime", lawenforcementRecordDetailVO.getCreateTime());
|
|
|
+ addMessage.put("dataUpdateTime", lawenforcementRecordDetailVO.getUpdateTime());
|
|
|
+ addMessageList.add(addMessage);
|
|
|
+ });
|
|
|
+ //如果新增的数据集合中不是空,则批量写入报文数据
|
|
|
+ if (StringUtils.isNotEmpty(addMessageList)) {
|
|
|
+ recordMapper.batchInsert(addMessageList);
|
|
|
+ }
|
|
|
+ return 1;
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error(e.getMessage());
|
|
|
+ return 0;
|
|
|
}
|
|
|
- //创建返回对象
|
|
|
- JSONObject result = new JSONObject();
|
|
|
- //设置返回值
|
|
|
- result.put("personAddList", personAddList);
|
|
|
- result.put("subitemAddList", subitemAddList);
|
|
|
- result.put("standardAddList", standardAddList);
|
|
|
- return result;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 对standard 设置父id
|
|
|
- *
|
|
|
- * @param subItemId
|
|
|
- * @param standards
|
|
|
- */
|
|
|
- private void setSubItemId(String subItemId, List<LawenforcementStandardDetailVO> standards) {
|
|
|
- standards.forEach(standard -> standard.setSubitemId(subItemId));
|
|
|
+ @Override
|
|
|
+ public List<Map<String, String>> getExistRecord(List<String> ids) {
|
|
|
+ return recordMapper.getExistRecord(ids);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void updateRecord(LawenforcementRecordDetailVO remoteRecord){
|
|
|
+ recordMapper.updateRecord(remoteRecord);
|
|
|
}
|
|
|
|
|
|
- // 对工单子级设置父id
|
|
|
- private <T extends RecordIdSetter> void setRecordIdToItems(String recordId, List<T> items) {
|
|
|
- items.forEach(item -> item.setRecordId(recordId));
|
|
|
+ /**
|
|
|
+ * 定时任务批量删除
|
|
|
+ * @param ids 要删除的工单id集合
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void deleteSSPToList(List<String> ids){
|
|
|
+ recordMapper.removeStandardInfoById(ids);
|
|
|
+ recordMapper.removeSubitemInfoById(ids);
|
|
|
+ recordMapper.removePersonInfoById(ids);
|
|
|
}
|
|
|
|
|
|
- private void setDeptId(List<LawenforcementPersonDetailVO> persons) {
|
|
|
- //获取persons中的deptName放入到deptNames中
|
|
|
- Set<String> deptNameSet = new HashSet<>();
|
|
|
- for (LawenforcementPersonDetailVO person : persons) {
|
|
|
- deptNameSet.add(person.getDeptName());
|
|
|
+ /**
|
|
|
+ * 定时任务批量新增
|
|
|
+ * @param standardAddList 子项的子集集合
|
|
|
+ * @param subitemAddList 子项集合
|
|
|
+ * @param personAddList 执法人员集合
|
|
|
+ * @param recordAddList 工单集合
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void insertSSPToList(List<LawenforcementStandardDetailVO> standardAddList, List<LawenforcementSubitemDetailVO> subitemAddList, List<LawenforcementPersonDetailVO> personAddList, List<LawenforcementRecordDetailVO> recordAddList){
|
|
|
+ if (StringUtils.isNotEmpty(standardAddList)) {
|
|
|
+ recordMapper.insertStandardByList(standardAddList);
|
|
|
}
|
|
|
-// deptNameSet.add("四平市");
|
|
|
- String[] deptNames = deptNameSet.toArray(new String[0]);
|
|
|
-
|
|
|
- //根据部门名称查询部门id
|
|
|
- AjaxResult ajaxResult = SpringUtils.getBean(RemoteEnforcementDeptService.class).selectDeptListByDeptNames(deptNames);
|
|
|
- //取出部门集合
|
|
|
- List<Map<String, Object>> deptList = (List<Map<String, Object>>) ajaxResult.get("data");
|
|
|
- //如果部门集合不为空,则转换为key-value 部门名称-部门id
|
|
|
- HashMap<String, Object> deptMap = new HashMap<>();
|
|
|
- if (StringUtils.isNotEmpty(deptList)) {
|
|
|
- deptList.forEach(dept -> {
|
|
|
- deptMap.put(MapUtils.getString(dept, "deptName"), MapUtils.getString(dept, "deptId"));
|
|
|
- });
|
|
|
+ if (StringUtils.isNotEmpty(subitemAddList)) {
|
|
|
+ recordMapper.insertSubitemByList(subitemAddList);
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(personAddList)) {
|
|
|
+ recordMapper.insertPersonByList(personAddList);
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(recordAddList)) {
|
|
|
+ recordMapper.insertRecordByList(recordAddList);
|
|
|
}
|
|
|
- //设置部门id,如果deptMap不存在key,则设置deptId为null
|
|
|
- persons.forEach(person -> {
|
|
|
- person.setDeptId(deptMap.containsKey(person.getDeptName()) ? MapUtils.getString(deptMap, person.getDeptName()) : null);
|
|
|
- });
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<Map<String, Object>> getJsonDataMessage(Long timeRadius) {
|
|
|
+ return recordMapper.getJsonDataMessage(timeRadius);
|
|
|
+ }
|
|
|
|
|
|
- private void insertJsonData(JSONArray array) {
|
|
|
- List<Map<String, Object>> listToInsert = new ArrayList<>();
|
|
|
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
|
|
|
- for (int i = 0; i < array.size(); i++) {
|
|
|
- JSONObject jsonObject = array.getJSONObject(i);
|
|
|
- String id = jsonObject.getString("id");
|
|
|
- int count = recordMapper.selectJsonDataById(id);
|
|
|
- if (count > 0) {
|
|
|
- //更新
|
|
|
- recordMapper.updateJsonData(id, jsonObject.toString(), new Date());
|
|
|
- } else {
|
|
|
- // id 不存在,放入 List<Map>
|
|
|
- Map<String, Object> map = new HashMap<>();
|
|
|
- map.put("id", id);
|
|
|
- map.put("jsonData", jsonObject.toString());
|
|
|
- map.put("createTime", new Date());
|
|
|
-
|
|
|
- listToInsert.add(map);
|
|
|
- }
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public int getTotal() {
|
|
|
+ return recordMapper.getTotal();
|
|
|
+ }
|
|
|
|
|
|
- if (StringUtils.isNotEmpty(listToInsert)) {
|
|
|
- recordMapper.batchInsert(listToInsert);
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public List<Map<String, Object>> getJsonDataMessageByPage(int pageNum, int pageSize) {
|
|
|
+ return recordMapper.getJsonDataMessageByPage(pageNum, pageSize);
|
|
|
}
|
|
|
}
|