package com.lxzn.base.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.additional.query.impl.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.lxzn.base.dao.EquipmentClassMapper; import com.lxzn.base.service.IEquipmentClassService; import com.lxzn.framework.domain.base.EquipmentClass; import com.lxzn.framework.domain.base.request.EquipmentClassRequest; import com.lxzn.framework.domain.base.response.EquipmentClassCode; import com.lxzn.framework.exception.ExceptionCast; import com.lxzn.framework.model.response.CommonCode; import com.lxzn.framework.model.response.QueryPageResponseResult; import com.lxzn.framework.utils.ValidateUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; /** * @author clown * * @date 2023/5/18 */ @Service public class EquipmentClassServiceImpl extends ServiceImpl implements IEquipmentClassService { @Override @Transactional(rollbackFor = {Exception.class}) public boolean addClassEquipment(EquipmentClass equipmentClass) { if (equipmentClass == null) { ExceptionCast.cast(EquipmentClassCode.EQUIPMENT_CODE_NOT_EXIST); } if (StringUtils.isEmpty(equipmentClass.getWorkshopNo()) || StringUtils.isEmpty(equipmentClass.getEquipmentIds()) || StringUtils.isEmpty(equipmentClass.getClassType())) { ExceptionCast.cast(EquipmentClassCode.EQUIPMENT_LIST_NAME); } List classList = findEquipmentType(equipmentClass.getClassType()); if (classList != null && !classList.isEmpty()) { ExceptionCast.cast(EquipmentClassCode.EQUIPMENT_CLASS_TYPE); } equipmentClass.getEquipmentIds().replace(",",","); return super.save(equipmentClass); } @Override public QueryPageResponseResult findPageList(int page, int size, EquipmentClassRequest requestParams) { if(page < 1 || size < 1) { ExceptionCast.cast(CommonCode.INVALID_PAGE); } IPage pageData = new Page<>(page, size); LambdaQueryChainWrapper lambdaQuery = super.lambdaQuery(); if (requestParams != null) { if (requestParams.getEquipmentId() != null && StringUtils.isNotEmpty(requestParams.getEquipmentId())) { lambdaQuery.like(EquipmentClass::getEquipmentIds,requestParams.getEquipmentId()); } if (requestParams.getWorkshopNo() != null && StringUtils.isNotEmpty(requestParams.getWorkshopNo())) { lambdaQuery.eq(EquipmentClass::getWorkshopNo,requestParams.getWorkshopNo()); } if(ValidateUtil.validateString(requestParams.getDescStr())) { String[] descStr = requestParams.getDescStr().split(","); if (descStr[0].equals("workshopNo")) { if (descStr[1].equals("asc")) { lambdaQuery.orderByAsc(true,EquipmentClass::getWorkshopNo); } else { lambdaQuery.orderByDesc(true,EquipmentClass::getWorkshopNo); } } else if (descStr[0].equals("equipmentIds")) { if (descStr[1].equals("asc")) { lambdaQuery.orderByAsc(true,EquipmentClass::getEquipmentIds); } else { lambdaQuery.orderByDesc(true,EquipmentClass::getEquipmentIds); } } else if (descStr[0].equals("classType")) { if (descStr[1].equals("asc")) { lambdaQuery.orderByAsc(true,EquipmentClass::getClassType); } else { lambdaQuery.orderByDesc(true,EquipmentClass::getClassType); } } else if (descStr[0].equals("className")) { if (descStr[1].equals("asc")) { lambdaQuery.orderByAsc(true,EquipmentClass::getClassName); } else { lambdaQuery.orderByDesc(true,EquipmentClass::getClassName); } } } } IPage userIPage = lambdaQuery.page(pageData); return new QueryPageResponseResult<>(CommonCode.SUCCESS, userIPage); } @Override @Transactional(rollbackFor = {Exception.class}) public boolean deleteClassEquipment(String id) { if(!ValidateUtil.validateString(id)) { ExceptionCast.cast(CommonCode.INVALID_PARAM); } EquipmentClass en = super.getById(id); if (en == null) { ExceptionCast.cast(EquipmentClassCode.EQUIPMENT_CODE_NOT_EXIST); } return super.removeById(id); } @Override @Transactional(rollbackFor = {Exception.class}) public boolean editClassEquipment(String id, EquipmentClass equipmentClass) { if (StringUtils.isEmpty(id) || equipmentClass == null) { ExceptionCast.cast(EquipmentClassCode.EQUIPMENT_CODE_NONE); } EquipmentClass en = super.getById(id); if (en == null) { ExceptionCast.cast(EquipmentClassCode.EQUIPMENT_CODE_NOT_EXIST); } equipmentClass.setId(id); equipmentClass.getEquipmentIds().replace(",",","); return super.updateById(equipmentClass); } @Override public List findEquipmentType(String classType) { if(!ValidateUtil.validateString(classType)) { return null; } List list = super.lambdaQuery().eq(EquipmentClass::getClassType, classType).list(); if(list == null || list.isEmpty()) { return null; } return list; } @Override public EquipmentClass findEquipmentIdsFromEqId(String workshopNo, String equipmentId) { if(StringUtils.isEmpty(workshopNo) || StringUtils.isEmpty(equipmentId)) { return null; } List list = super.lambdaQuery(). eq(EquipmentClass::getWorkshopNo, workshopNo). like(EquipmentClass::getEquipmentIds,equipmentId).list(); if(list == null || list.isEmpty()) { return null; } return list.get(0); } }