提交 4f2dd92c authored 作者: zjm's avatar zjm

fix(单位模块): 添加了单位修改的接口

添加了单位修改的接口
上级 6770ee0b
...@@ -14,17 +14,22 @@ public class UnitsCache { ...@@ -14,17 +14,22 @@ public class UnitsCache {
private Map<Integer, Units> idMap; private Map<Integer, Units> idMap;
private Map<Integer,Units> areaIdMpa;
public UnitsCache(List<Units> unitsList){ public UnitsCache(List<Units> unitsList){
this.idMap = unitsList.stream().collect(Collectors.toMap(Units::getUnitId, Function.identity())); this.idMap = unitsList.stream().collect(Collectors.toMap(Units::getUnitId, Function.identity()));
this.areaIdMpa=unitsList.stream().collect(Collectors.toMap(Units::getAreaId,Function.identity()));
} }
public Map<Integer, Units> getIdMap() { public Map<Integer, Units> getIdMap() {
return idMap; return idMap;
} }
public Units findByAreaId(Integer areaId){
return areaIdMpa.get(areaId);
}
public Units findById(Integer id) { public Units findById(Integer id) {
return idMap.get(id); return idMap.get(id);
} }
...@@ -40,6 +45,7 @@ public class UnitsCache { ...@@ -40,6 +45,7 @@ public class UnitsCache {
public UnitsCache refresh(List<Units> unitsList){ public UnitsCache refresh(List<Units> unitsList){
this.idMap = unitsList.stream().collect(Collectors.toMap(Units::getUnitId, Function.identity())); this.idMap = unitsList.stream().collect(Collectors.toMap(Units::getUnitId, Function.identity()));
this.areaIdMpa=unitsList.stream().collect(Collectors.toMap(Units::getAreaId,Function.identity()));
return this; return this;
} }
} }
...@@ -180,4 +180,13 @@ public class UnitsController { ...@@ -180,4 +180,13 @@ public class UnitsController {
return ResponseEntity.ok(unitsService.belongsUnits()); return ResponseEntity.ok(unitsService.belongsUnits());
} }
/**
* 单位管理修改单位接口
*/
@PostMapping("/updateUnits")
@ApiOperation(value = "[单位管理]单位管理修改单位接口", notes = "单位管理修改单位接口")
public ResponseEntity updateUnit(@RequestBody Units units){
return ResponseEntity.ok(unitsService.updateUnit(units));
}
} }
...@@ -12,6 +12,7 @@ import lombok.NoArgsConstructor; ...@@ -12,6 +12,7 @@ import lombok.NoArgsConstructor;
import org.hibernate.annotations.SQLDelete; import org.hibernate.annotations.SQLDelete;
import org.hibernate.annotations.Where; import org.hibernate.annotations.Where;
import org.modelmapper.ModelMapper; import org.modelmapper.ModelMapper;
import org.springframework.beans.factory.annotation.Autowired;
import javax.persistence.*; import javax.persistence.*;
import java.util.UUID; import java.util.UUID;
...@@ -100,6 +101,11 @@ public class Units { ...@@ -100,6 +101,11 @@ public class Units {
@ApiModelProperty(value = "展示区域id") @ApiModelProperty(value = "展示区域id")
private Integer exhibitionId; private Integer exhibitionId;
@Transient
@ApiModelProperty(value = "上级单位ID")
private Integer parentUnitId;
/** /**
* 区域对象 * 区域对象
*/ */
...@@ -121,6 +127,7 @@ public class Units { ...@@ -121,6 +127,7 @@ public class Units {
null, null,
null, null,
null, null,
null,
null null
); );
} }
......
...@@ -200,11 +200,15 @@ public interface UnitsService extends PublicService<Units> { ...@@ -200,11 +200,15 @@ public interface UnitsService extends PublicService<Units> {
*/ */
List<Units> saveUnits(UnitsAddVo unitsAddVo); List<Units> saveUnits(UnitsAddVo unitsAddVo);
/** /**
* 添加单位所有单位列表 * 添加单位所有单位列表
*/ */
List<Units> belongsUnits(); List<Units> belongsUnits();
/**
* 更新单位对象
*/
Units updateUnit(Units units);
} }
...@@ -473,6 +473,11 @@ public class UnitsServiceImpl implements UnitsService { ...@@ -473,6 +473,11 @@ public class UnitsServiceImpl implements UnitsService {
units -> { units -> {
AreaExhibition areaExhibition = areaExhibitionService.findById(units.getExhibitionId()); AreaExhibition areaExhibition = areaExhibitionService.findById(units.getExhibitionId());
units.setAreaName(areaExhibition.getAreaName()); units.setAreaName(areaExhibition.getAreaName());
//查询当前单位的逻辑区域
Units units1=findByParentUnit(units);
if (units1!=null){
units.setParentUnitId(units1.getUnitId());
}
} }
); );
unitsList= unitsList.stream().sorted(Comparator.comparing(Units::getShowOrder)).collect(Collectors.toList()); unitsList= unitsList.stream().sorted(Comparator.comparing(Units::getShowOrder)).collect(Collectors.toList());
...@@ -504,7 +509,45 @@ public class UnitsServiceImpl implements UnitsService { ...@@ -504,7 +509,45 @@ public class UnitsServiceImpl implements UnitsService {
@Override @Override
public List<Units> belongsUnits() { public List<Units> belongsUnits() {
return unitsDao.findAll().stream().filter(units -> units.getLevel()==1&&units.getLevel()==2).sorted(Comparator.comparing(Units::getShowOrder)).collect(Collectors.toList()); return unitsDao.findAll().stream().filter(units -> units.getLevel()==1 || units.getLevel()==2).sorted(Comparator.comparing(Units::getShowOrder)).collect(Collectors.toList());
}
private Units findByParentUnit(Units units){
Area area=areaCache.findById(units.getAreaId());
if (area.getFatherId()!=null){
Area area1=areaCache.findById(area.getFatherId());
return unitsCache.findByAreaId(area1.getId());
}else {
return null;
}
}
@Override
public Units updateUnit(Units units) {
Units unitsOld=unitsCache.findById(units.getUnitId());
if (!units.getLevel().equals(unitsOld.getLevel())){
units.setType(levelToType(units.getLevel()));
}
Units parentUnitOld= findByParentUnit(units);
if (units.getParentUnitId()!=null){
if (parentUnitOld==null ||!parentUnitOld.getUnitId().equals(units.getParentUnitId())){
//查询需要修改的上级id
Units parentUnitNow = unitsCache.findById(units.getParentUnitId());
Area newArea = areaCache.findById(parentUnitNow.getAreaId());
Area oldArea = areaCache.findById(unitsOld.getAreaId());
oldArea.setFatherId(newArea.getId());
areaDao.save(oldArea);
}
}else {
if (parentUnitOld!=null){
Area oldArea = areaCache.findById(unitsOld.getAreaId());
oldArea.setFatherId(null);
areaDao.save(oldArea);
}
}
unitsDao.save(units);
unitsCache.refresh(unitsDao.findAll());
areaCache.refresh(areaDao.findAll());
return units;
} }
/** /**
...@@ -516,7 +559,7 @@ public class UnitsServiceImpl implements UnitsService { ...@@ -516,7 +559,7 @@ public class UnitsServiceImpl implements UnitsService {
case 0: case 0:
return 3; return 3;
case 1: case 1:
return 1; return 2;
case 2: case 2:
return 1; return 1;
case 3: case 3:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论