Commit 45ec0718 authored by 周昊's avatar 周昊

1、开发app端复制楼层接口

parent 0e726a76
......@@ -76,8 +76,8 @@ public class LedgerRoomController extends BaseController {
* @real_return {@link R <List<LedgerRoom>>}
*/
@GetMapping("/list/{floorId}")
public R<List<LedgerRoom>> getRoomListByBuildingId(@PathVariable("floorId") Long floorId) {
return R.ok(ledgerRoomService.getRoomListByBuildingId(floorId));
public R<List<LedgerRoom>> getRoomListByFloorId(@PathVariable("floorId") Long floorId) {
return R.ok(ledgerRoomService.getRoomListByFloorId(floorId));
}
/**
......@@ -135,9 +135,14 @@ public class LedgerRoomController extends BaseController {
wrapper = wrapper.notIn(LedgerRoom::getId, ids);
}
ledgerRoomService.remove(wrapper);
//删除固有现有风险数据
ledgerRoomService.deleteRoomByRoomIds(ids);
//2、更新或插入ledgerRooms中的数据
ledgerRooms.forEach(ledgerRoom -> ledgerRoom.setFloorId(floorId));
ledgerRooms.forEach(ledgerRoom -> {
ledgerRoom.setId(floorId);
ledgerRoom.setFloorId(floorId);
});
ledgerRoomService.saveOrUpdateBatch(ledgerRooms);
return toAjax(1);
}
......
......@@ -328,8 +328,8 @@ public class RiskPlanAppController extends BaseController {
* @real_return {@link R<List<LedgerRoom>>}
*/
@GetMapping("/room/list/{floorId}")
public R<List<LedgerRoom>> getRoomListByBuildingId(@PathVariable("floorId") Long floorId) {
return R.ok(ledgerRoomService.getRoomListByBuildingId(floorId));
public R<List<LedgerRoom>> getRoomListByFloorId(@PathVariable("floorId") Long floorId) {
return R.ok(ledgerRoomService.getRoomListByFloorId(floorId));
}
/**
......@@ -849,4 +849,16 @@ public class RiskPlanAppController extends BaseController {
return AjaxResult.success(ledgerFloor.getId());
}
/**
* app端复制楼层下全部数据
*/
@Log(title = "app端复制楼层下全部数据", businessType = BusinessType.INSERT)
@PostMapping("/copy/floor/{planId}/{sourceFloorId}/{targetFloorId}")
public AjaxResult copyFloor(@PathVariable Long planId
,@PathVariable Long sourceFloorId,@PathVariable Long targetFloorId)
{
return AjaxResult.success(ledgerFloorService.copyFloor(sourceFloorId,targetFloorId,planId,getLoginUser()));
}
}
......@@ -29,4 +29,6 @@ public interface LedgerRoomMapper extends MPJBaseMapper<LedgerRoom>
public List<LedgerRoom> selectLedgerRoomList(LedgerRoom ledgerRoom);
String getLevelColorByRoomId(@Param("roomId") Long roomId);
void deleteRoomByRoomIds(@Param("targetRoomIds") List<Long> targetRoomIds);
}
......@@ -3,6 +3,7 @@ package com.censoft.censoftrongtong.service;
import com.censoft.censoftrongtong.domain.LedgerFloor;
import com.censoft.censoftrongtong.domain.dto.LedgerFloorDto;
import com.github.yulichang.base.MPJBaseService;
import com.ruoyi.common.core.domain.model.LoginUser;
import java.util.List;
......@@ -63,4 +64,6 @@ public interface ILedgerFloorService extends MPJBaseService<LedgerFloor>
public int deleteLedgerFloorById(Long id);
List<LedgerFloorDto> getFloorListByBuildingId(Long buildingId);
Integer copyFloor(Long sourceFloorId, Long targetFloorId,Long planId, LoginUser loginUser);
}
......@@ -19,7 +19,7 @@ public interface ILedgerRoomService extends MPJBaseService<LedgerRoom>
* @return
*/
List<LedgerRoom> getRoomListByBuildingId(Long floorId);
List<LedgerRoom> getRoomListByFloorId(Long floorId);
/**
......@@ -28,4 +28,6 @@ public interface ILedgerRoomService extends MPJBaseService<LedgerRoom>
* @return
*/
List<LedgerRoom> selectLedgerRoomList(LedgerRoom ledgerRoom);
void deleteRoomByRoomIds(List<Long> targetRoomIds);
}
package com.censoft.censoftrongtong.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.censoft.censoftrongtong.domain.LedgerFloor;
import com.censoft.censoftrongtong.domain.LedgerRoom;
import com.censoft.censoftrongtong.domain.RiskPlanExistingList;
import com.censoft.censoftrongtong.domain.RiskPlanInherentList;
import com.censoft.censoftrongtong.domain.dto.LedgerFloorDto;
import com.censoft.censoftrongtong.mapper.LedgerFloorMapper;
import com.censoft.censoftrongtong.service.ILedgerFloorService;
import com.censoft.censoftrongtong.service.ILedgerRoomService;
import com.censoft.censoftrongtong.service.IRiskPlanExistingListService;
import com.censoft.censoftrongtong.service.IRiskPlanInherentListService;
import com.github.yulichang.base.MPJBaseServiceImpl;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
......@@ -24,6 +33,15 @@ public class LedgerFloorServiceImpl extends MPJBaseServiceImpl<LedgerFloorMapper
@Autowired
private LedgerFloorMapper ledgerFloorMapper;
@Resource
private ILedgerRoomService ledgerRoomService;
@Resource
private IRiskPlanInherentListService riskPlanInherentListService;
@Resource
private IRiskPlanExistingListService riskPlanExistingListService;
/**
* 查询基础数据-楼层
*
......@@ -108,6 +126,55 @@ public class LedgerFloorServiceImpl extends MPJBaseServiceImpl<LedgerFloorMapper
return getLedgerFloorDtoListByLedgerFloor(ledgerFloors);
}
@Override
public Integer copyFloor(Long sourceFloorId, Long targetFloorId, Long planId, LoginUser loginUser) {
//删除目标楼层下的数据
List<Long> targetRoomIds = ledgerRoomService.getRoomListByFloorId(targetFloorId)
.stream().map(LedgerRoom::getId)
.collect(Collectors.toList());
ledgerRoomService.deleteRoomByRoomIds(targetRoomIds);
//复制数据
List<LedgerRoom> sourceRoomList = ledgerRoomService.getRoomListByFloorId(sourceFloorId);
for (LedgerRoom ledgerRoom : sourceRoomList) {
//复制房间
Long roomId = ledgerRoom.getId();
ledgerRoom.setId(null);
ledgerRoom.setFloorId(targetFloorId);
ledgerRoom.setCreateBy(loginUser.getUsername());
ledgerRoomService.save(ledgerRoom);
LambdaQueryWrapper<RiskPlanInherentList> wrapper = new LambdaQueryWrapper<>();
wrapper = wrapper.eq(RiskPlanInherentList::getRoomId,roomId);
List<RiskPlanInherentList> riskPlanInherentLists = riskPlanInherentListService.list(wrapper);
for (RiskPlanInherentList riskPlanInherentList : riskPlanInherentLists) {
//复制固有
Long inherentListId = riskPlanInherentList.getId();
riskPlanInherentList.setId(null);
riskPlanInherentList.setRoomId(ledgerRoom.getId());
riskPlanInherentList.setUserId(loginUser.getUserId());
riskPlanInherentList.setPlanId(planId);
riskPlanInherentList.setCreateBy(loginUser.getUsername());
riskPlanInherentListService.save(riskPlanInherentList);
LambdaQueryWrapper<RiskPlanExistingList> wrapper2 = new LambdaQueryWrapper<>();
wrapper2 = wrapper2.eq(RiskPlanExistingList::getInherentId,inherentListId);
List<RiskPlanExistingList> riskPlanExistingLists = riskPlanExistingListService.list(wrapper2);
for (RiskPlanExistingList riskPlanExistingList : riskPlanExistingLists) {
//复制现有
riskPlanExistingList.setId(null);
riskPlanExistingList.setInherentId(riskPlanInherentList.getId());
riskPlanExistingList.setUserId(loginUser.getUserId());
riskPlanExistingList.setPlanId(planId);
riskPlanExistingList.setCreateBy(loginUser.getUsername());
riskPlanExistingListService.save(riskPlanExistingList);
}
}
}
return 1;
}
private List<LedgerFloorDto> getLedgerFloorDtoListByLedgerFloor(List<LedgerFloor> ledgerFloors) {
return ledgerFloors.stream()
.map(LedgerFloor::getType)
......
......@@ -24,7 +24,7 @@ public class LedgerRoomServiceImpl extends MPJBaseServiceImpl<LedgerRoomMapper,
private LedgerRoomMapper ledgerRoomMapper;
@Override
public List<LedgerRoom> getRoomListByBuildingId(Long floorId) {
public List<LedgerRoom> getRoomListByFloorId(Long floorId) {
LambdaQueryWrapper<LedgerRoom> wrapper = new LambdaQueryWrapper<LedgerRoom>()
.eq(LedgerRoom::getFloorId, floorId)
.eq(LedgerRoom::getStatus, "0");
......@@ -40,6 +40,13 @@ public class LedgerRoomServiceImpl extends MPJBaseServiceImpl<LedgerRoomMapper,
return list;
}
@Override
public void deleteRoomByRoomIds(List<Long> targetRoomIds) {
if (!targetRoomIds.isEmpty()) {
ledgerRoomMapper.deleteRoomByRoomIds(targetRoomIds);
}
}
private String getLevelColorByRoomId(Long roomId) {
String level = ledgerRoomMapper.getLevelColorByRoomId(roomId);
if (StrUtil.isBlank(level)) {return "#F0F1F5";}
......
......@@ -68,6 +68,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{id}
</foreach>
</delete>
<delete id="deleteRoomByRoomIds">
UPDATE ledger_room lr
LEFT JOIN risk_plan_inherent_list rpil ON rpil.room_id = lr.id
LEFT JOIN risk_plan_existing_list rpel ON rpel.inherent_id = rpil.id
SET lr.del_flag = 1,rpil.del_flag = 1,rpel.del_flag = 1
WHERE
lr.id in
<foreach item="id" collection="targetRoomIds" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment