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

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

添加了单位修改的接口
上级 6770ee0b
......@@ -14,17 +14,22 @@ public class UnitsCache {
private Map<Integer, Units> idMap;
private Map<Integer,Units> areaIdMpa;
public UnitsCache(List<Units> unitsList){
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() {
return idMap;
}
public Units findByAreaId(Integer areaId){
return areaIdMpa.get(areaId);
}
public Units findById(Integer id) {
return idMap.get(id);
}
......@@ -40,6 +45,7 @@ public class UnitsCache {
public UnitsCache refresh(List<Units> unitsList){
this.idMap = unitsList.stream().collect(Collectors.toMap(Units::getUnitId, Function.identity()));
this.areaIdMpa=unitsList.stream().collect(Collectors.toMap(Units::getAreaId,Function.identity()));
return this;
}
}
......@@ -180,4 +180,13 @@ public class UnitsController {
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;
import org.hibernate.annotations.SQLDelete;
import org.hibernate.annotations.Where;
import org.modelmapper.ModelMapper;
import org.springframework.beans.factory.annotation.Autowired;
import javax.persistence.*;
import java.util.UUID;
......@@ -100,6 +101,11 @@ public class Units {
@ApiModelProperty(value = "展示区域id")
private Integer exhibitionId;
@Transient
@ApiModelProperty(value = "上级单位ID")
private Integer parentUnitId;
/**
* 区域对象
*/
......@@ -121,6 +127,7 @@ public class Units {
null,
null,
null,
null,
null
);
}
......
......@@ -200,11 +200,15 @@ public interface UnitsService extends PublicService<Units> {
*/
List<Units> saveUnits(UnitsAddVo unitsAddVo);
/**
* 添加单位所有单位列表
*/
List<Units> belongsUnits();
/**
* 更新单位对象
*/
Units updateUnit(Units units);
}
......@@ -473,6 +473,11 @@ public class UnitsServiceImpl implements UnitsService {
units -> {
AreaExhibition areaExhibition = areaExhibitionService.findById(units.getExhibitionId());
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());
......@@ -504,7 +509,45 @@ public class UnitsServiceImpl implements UnitsService {
@Override
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 {
case 0:
return 3;
case 1:
return 1;
return 2;
case 2:
return 1;
case 3:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论