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 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 para) { String id = (String) para.get("id");//锁主键 List> tankWallLockList = (List>) para.get("tankWallLockList"); //List tankWallLocks = new ArrayList(); List idList = new ArrayList();//存放新增和修改的中间表主键 int result = 0; for(Map map : tankWallLockList){ ArdTankWallLock ardTankWallLock = new ArdTankWallLock(); ardTankWallLock.setWallId(map.get("wallId")); ardTankWallLock.setLockId(id); List 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; } }