From ccb933362251344091a3881a4950dcab33c5008f Mon Sep 17 00:00:00 2001 From: kimi <kimi42345@gmail.com> Date: 星期六, 28 三月 2020 11:47:55 +0800 Subject: [PATCH] no message --- src/main/java/com/highdatas/mdm/service/impl/MaintainFieldServiceImpl.java | 69 ++++++++++++++++++++++++++++++---- 1 files changed, 61 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/highdatas/mdm/service/impl/MaintainFieldServiceImpl.java b/src/main/java/com/highdatas/mdm/service/impl/MaintainFieldServiceImpl.java index 3c1f5bf..a7758db 100644 --- a/src/main/java/com/highdatas/mdm/service/impl/MaintainFieldServiceImpl.java +++ b/src/main/java/com/highdatas/mdm/service/impl/MaintainFieldServiceImpl.java @@ -1,7 +1,10 @@ package com.highdatas.mdm.service.impl; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.highdatas.mdm.entity.Flows; import com.highdatas.mdm.entity.Maintain; import com.highdatas.mdm.entity.MaintainField; @@ -11,23 +14,16 @@ import com.highdatas.mdm.pojo.Operate; import com.highdatas.mdm.service.IFlowsService; import com.highdatas.mdm.service.IMaintainFieldService; -import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.highdatas.mdm.service.IMaintainService; import com.highdatas.mdm.service.ISysFieldService; import com.highdatas.mdm.util.Constant; import com.highdatas.mdm.util.DbUtils; import org.apache.commons.lang3.StringUtils; -import org.mybatis.spring.SqlSessionTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.SQLException; import java.text.MessageFormat; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -104,6 +100,15 @@ nowMaintain.setId(DbUtils.getUUID()); } return nowMaintain; + } + + @Override + public List<Maintain> getMaintainByMaintainField(String maintainFieldId, String tableName) { + HashMap<String, List<Maintain>> resultMap = getMaintainFieldMapByTable(tableName); + if (resultMap == null) { + return null; + } + return resultMap.get(maintainFieldId); } @Override @@ -247,4 +252,52 @@ } return cnt; } + + @Override + public JSONArray getMaintainListByTable(String tableName) { + HashMap<String, List<Maintain>> resultMap = getMaintainFieldMapByTable(tableName); + + Set<String> keySet = resultMap.keySet(); + JSONArray array = new JSONArray(); + for (String s : keySet) { + List<Maintain> list = resultMap.get(s); + Maintain max = list.stream().max(new Comparator<Maintain>() { + @Override + public int compare(Maintain o1, Maintain o2) { + return o1.getOrderNo() - o2.getOrderNo(); + } + }).get(); + Maintain min = list.stream().min(new Comparator<Maintain>() { + @Override + public int compare(Maintain o1, Maintain o2) { + return o1.getOrderNo() - o2.getOrderNo(); + } + }).get(); + JSONObject object = new JSONObject(); + object.fluentPut("maintainFieldId", s); + object.fluentPut("version", MessageFormat.format(Constant.extent, min.getVersion(), max.getVersion())); + + array.add(object); + } + return array; + } + + private HashMap<String, List<Maintain>> getMaintainFieldMapByTable(String tableName) { + List<Maintain> maintainList = maintainService.selectList(new EntityWrapper<Maintain>().eq("table_name", tableName).isNotNull("flow_id").orderBy("order_no")); + HashMap<String, List<Maintain>> resultMap = new HashMap<>(); + for (Maintain maintain : maintainList) { + ActivitiStatus status = flowsService.getStatusByBusinessId(maintain.getId()); + if (!status.equals(ActivitiStatus.open)) { + continue; + } + MaintainField maintainFieldByMaintain = fieldService.getMaintainFieldByMaintain(maintain.getId()); + List<Maintain> list = resultMap.get(maintainFieldByMaintain.getId()); + if (list == null) { + list = new ArrayList<>(); + } + list.add(maintain); + resultMap.put(maintainFieldByMaintain.getId(), list); + } + return resultMap; + } } -- Gitblit v1.8.0