package com.ruoyi.sy.service.impl;
|
|
import java.util.List;
|
|
import com.ruoyi.common.utils.uuid.IdUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import java.util.ArrayList;
|
import java.util.Map;
|
|
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.SecurityUtils;
|
import com.ruoyi.sy.mapper.ArdTankWallLockMapper;
|
import com.ruoyi.sy.domain.ArdTankWallLock;
|
import com.ruoyi.sy.service.IArdTankWallLockService;
|
|
import javax.annotation.Resource;
|
|
/**
|
* 电子围栏电磁锁Service业务层处理
|
*
|
* @author ard
|
* @date 2024-06-29
|
*/
|
@Service
|
public class ArdTankWallLockServiceImpl implements IArdTankWallLockService {
|
@Resource
|
private ArdTankWallLockMapper ardTankWallLockMapper;
|
|
/**
|
* 查询电子围栏电磁锁
|
*
|
* @param processType 电子围栏电磁锁主键
|
* @return 电子围栏电磁锁
|
*/
|
@Override
|
public ArdTankWallLock selectArdTankWallLockByProcessType(String processType) {
|
return ardTankWallLockMapper.selectArdTankWallLockByProcessType(processType);
|
}
|
|
/**
|
* 查询电子围栏电磁锁列表
|
*
|
* @param ardTankWallLock 电子围栏电磁锁
|
* @return 电子围栏电磁锁
|
*/
|
@Override
|
public List<ArdTankWallLock> selectArdTankWallLockList(ArdTankWallLock ardTankWallLock) {
|
return ardTankWallLockMapper.selectArdTankWallLockList(ardTankWallLock);
|
}
|
|
/**
|
* 新增电子围栏电磁锁
|
*
|
* @param ardTankWallLock 电子围栏电磁锁
|
* @return 结果
|
*/
|
@Override
|
public int insertArdTankWallLock(ArdTankWallLock ardTankWallLock) {
|
ardTankWallLock.setId(IdUtils.simpleUUID());
|
return ardTankWallLockMapper.insertArdTankWallLock(ardTankWallLock);
|
}
|
|
/**
|
* 修改电子围栏电磁锁
|
*
|
* @param ardTankWallLock 电子围栏电磁锁
|
* @return 结果
|
*/
|
@Override
|
public int updateArdTankWallLock(ArdTankWallLock ardTankWallLock) {
|
return ardTankWallLockMapper.updateArdTankWallLock(ardTankWallLock);
|
}
|
|
/**
|
* 批量删除电子围栏电磁锁
|
*
|
* @param processTypes 需要删除的电子围栏电磁锁主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteArdTankWallLockByProcessTypes(String[] processTypes) {
|
return ardTankWallLockMapper.deleteArdTankWallLockByProcessTypes(processTypes);
|
}
|
|
/**
|
* 删除电子围栏电磁锁信息
|
*
|
* @param processType 电子围栏电磁锁主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteArdTankWallLockByProcessType(String processType) {
|
return ardTankWallLockMapper.deleteArdTankWallLockByProcessType(processType);
|
}
|
|
@Override
|
public int insertWallLock(Map<String, Object> para) {
|
String id = (String) para.get("id");//锁主键
|
List<Map<String,String>> tankWallLockList = (List<Map<String, String>>) para.get("tankWallLockList");
|
if(tankWallLockList.size() == 0){//数组为空,做删除操作
|
List<ArdTankWallLock> ardTankWallLockList = ardTankWallLockMapper.selectArdTankWallLockByLockId(id);//查询之前挂接的电子围栏
|
if(ardTankWallLockList.size() == 0){//若没有挂接,不做操作
|
return 1;
|
}
|
int result = ardTankWallLockMapper.deleteArdTankWallLockByLockId(id);
|
return result;
|
}
|
//List<ArdTankWallLock> tankWallLocks = new ArrayList();
|
List<String> idList = new ArrayList();//存放新增和修改的中间表主键
|
int result = 0;
|
for(Map<String,String> map : tankWallLockList){
|
ArdTankWallLock ardTankWallLock = new ArdTankWallLock();
|
ardTankWallLock.setWallId(map.get("wallId"));
|
ardTankWallLock.setLockId(id);
|
List<ArdTankWallLock> ardTankWallLockList = ardTankWallLockMapper.selectArdTankWallLockList(ardTankWallLock);
|
if(ardTankWallLockList.size() != 0){
|
ardTankWallLock.setProcessType(map.get("processType"));
|
result = result + ardTankWallLockMapper.updateArdTankWallLockByWallIdAndLockId(ardTankWallLock);
|
for(ArdTankWallLock ardTankWallLockOld : ardTankWallLockList){//需要修改的主键
|
idList.add(ardTankWallLockOld.getId());
|
}
|
}else{
|
ardTankWallLock.setProcessType(map.get("processType"));
|
ardTankWallLock.setId(IdUtils.simpleUUID());
|
result = result + ardTankWallLockMapper.insertArdTankWallLock(ardTankWallLock);
|
idList.add(ardTankWallLock.getId());//新增的主键
|
}
|
}
|
if(!idList.isEmpty()){//判断是否有需要删除的数据主键
|
result = result + ardTankWallLockMapper.deleteArdTankWallLockByLockIdAndOtherIds(id,idList);
|
}
|
return result;
|
}
|
|
@Override
|
public int deleteArdTankWallLockByLockId(String id) {
|
int result = ardTankWallLockMapper.deleteArdTankWallLockByLockId(id);
|
return result;
|
}
|
}
|