|
@@ -1,12 +1,18 @@
|
|
|
package com.ruoyi.ems.service.impl;
|
|
|
|
|
|
import com.ruoyi.ems.domain.AreaAttr;
|
|
|
+import com.ruoyi.ems.domain.ObjTagRel;
|
|
|
import com.ruoyi.ems.mapper.AreaAttrMapper;
|
|
|
import com.ruoyi.ems.service.IAreaAttrService;
|
|
|
+import com.ruoyi.ems.service.IObjTagRelService;
|
|
|
+import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 区域对象属性Service业务层处理
|
|
@@ -19,40 +25,112 @@ public class AreaAttrServiceImpl implements IAreaAttrService {
|
|
|
@Autowired
|
|
|
private AreaAttrMapper areaAttrMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private IObjTagRelService tagRelService;
|
|
|
+
|
|
|
@Override
|
|
|
public AreaAttr selectAreaAttrByCode(String areaCode) {
|
|
|
+ AreaAttr areaAttr = areaAttrMapper.selectAreaAttrByCode(areaCode);
|
|
|
+
|
|
|
+ if (null != areaAttr) {
|
|
|
+ fillExt(areaAttr);
|
|
|
+ }
|
|
|
+
|
|
|
return areaAttrMapper.selectAreaAttrByCode(areaCode);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public List<AreaAttr> selectAreaAttrList(List<String> areaCodes) {
|
|
|
- return areaAttrMapper.selectAreaAttrList(areaCodes);
|
|
|
+ List<AreaAttr> list = areaAttrMapper.selectAreaAttrList(areaCodes);
|
|
|
+ fillExtBatch(areaCodes, list);
|
|
|
+ return list;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 新增区域对象属性
|
|
|
*
|
|
|
- * @param admAreaAttr 区域对象属性
|
|
|
+ * @param areaAttr 区域对象属性
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Override
|
|
|
- public int insertAreaAttr(AreaAttr admAreaAttr) {
|
|
|
- return areaAttrMapper.insertAreaAttr(admAreaAttr);
|
|
|
+ public int insertAreaAttr(AreaAttr areaAttr) {
|
|
|
+ int cnt = areaAttrMapper.insertAreaAttr(areaAttr);
|
|
|
+ insertTagRel(areaAttr);
|
|
|
+ return cnt;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 修改区域对象属性
|
|
|
*
|
|
|
- * @param admAreaAttr 区域对象属性
|
|
|
+ * @param areaAttr 区域对象属性
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Override
|
|
|
- public int updateAreaAttr(AreaAttr admAreaAttr) {
|
|
|
- return areaAttrMapper.updateAreaAttr(admAreaAttr);
|
|
|
+ public int updateAreaAttr(AreaAttr areaAttr) {
|
|
|
+ int cnt = areaAttrMapper.updateAreaAttr(areaAttr);
|
|
|
+ updateTagRel(areaAttr);
|
|
|
+ return cnt;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public int deleteAreaAttrByCode(String areaCode) {
|
|
|
- return areaAttrMapper.deleteAreaAttrByCode(areaCode);
|
|
|
+ int cnt = areaAttrMapper.deleteAreaAttrByCode(areaCode);
|
|
|
+ tagRelService.deleteByObjCode(1, areaCode);
|
|
|
+ return cnt;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void fillExt(AreaAttr areaAttr) {
|
|
|
+ List<ObjTagRel> tagRel = tagRelService.selectListByObjCode(1, areaAttr.getAreaCode());
|
|
|
+
|
|
|
+ if (CollectionUtils.isNotEmpty(tagRel)) {
|
|
|
+ List<String> tagCodes = tagRel.stream().map(ObjTagRel::getTagCode).collect(Collectors.toList());
|
|
|
+ areaAttr.setTagCodeList(tagCodes);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void fillExtBatch(List<String> areaCodes, List<AreaAttr> list) {
|
|
|
+ List<ObjTagRel> tagRel = tagRelService.selectListByType(1);
|
|
|
+ Map<String, List<ObjTagRel>> tagRelMap = tagRel.stream()
|
|
|
+ .collect(Collectors.groupingBy(ObjTagRel::getObjCode));
|
|
|
+
|
|
|
+ for (AreaAttr areaAttr : list) {
|
|
|
+ if (tagRelMap.containsKey(areaAttr.getAreaCode())) {
|
|
|
+ List<ObjTagRel> relLists = tagRelMap.get(areaAttr.getAreaCode());
|
|
|
+ List<String> tagCodes = relLists.stream().map(ObjTagRel::getTagCode).collect(Collectors.toList());
|
|
|
+ areaAttr.setTagCodeList(tagCodes);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void insertTagRel(AreaAttr areaAttr) {
|
|
|
+ if (CollectionUtils.isNotEmpty(areaAttr.getTagCodeList())) {
|
|
|
+ List<String> tagArray = areaAttr.getTagCodeList();
|
|
|
+ List<ObjTagRel> tagRelList = new ArrayList<>();
|
|
|
+
|
|
|
+ for (String tagCode : tagArray) {
|
|
|
+ ObjTagRel tagRel = new ObjTagRel(1, tagCode, areaAttr.getAreaCode());
|
|
|
+ tagRelList.add(tagRel);
|
|
|
+ }
|
|
|
+
|
|
|
+ tagRelService.insertBatch(tagRelList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void updateTagRel(AreaAttr areaAttr) {
|
|
|
+ if (CollectionUtils.isNotEmpty(areaAttr.getTagCodeList())) {
|
|
|
+ List<String> tagArray = areaAttr.getTagCodeList();
|
|
|
+ List<ObjTagRel> tagRelList = new ArrayList<>();
|
|
|
+
|
|
|
+ for (String tagCode : tagArray) {
|
|
|
+ ObjTagRel tagRel = new ObjTagRel(1, tagCode, areaAttr.getAreaCode());
|
|
|
+ tagRelList.add(tagRel);
|
|
|
+ }
|
|
|
+
|
|
|
+ tagRelService.deleteByObjCode(1, areaAttr.getAreaCode());
|
|
|
+ tagRelService.insertBatch(tagRelList);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ tagRelService.deleteByObjCode(1, areaAttr.getAreaCode());
|
|
|
+ }
|
|
|
}
|
|
|
}
|