package com.chinaztt.mes.warehouse.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.chinaztt.mes.basic.entity.Part; import com.chinaztt.mes.basic.mapper.PartMapper; import com.chinaztt.mes.warehouse.dto.DeliveryDetailDTO; import com.chinaztt.mes.warehouse.entity.DeliveryDetail; import com.chinaztt.mes.warehouse.mapper.DeliveryDetailMapper; import com.chinaztt.mes.warehouse.service.DeliveryDetailService; import com.chinaztt.ztt.common.core.util.R; import lombok.AllArgsConstructor; import org.springframework.security.core.parameters.P; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.List; /** * 送货清单表 * * @author cxf * @date 2020-10-12 14:11:40 */ @Service @AllArgsConstructor @Transactional(rollbackFor = Exception.class) public class DeliveryDetailServiceImpl extends ServiceImpl implements DeliveryDetailService { private PartMapper partMapper; @Override public IPage> getDeliveryDetailPage(Page page, QueryWrapper gen) { return baseMapper.getDeliveryDetailPage(page, gen); } @Override public DeliveryDetailDTO getDeliveryDetailById(Long id) { return baseMapper.getDeliveryDetailById(id); } @Override public boolean deleteById(Long id) { DeliveryDetail deliveryDetail = baseMapper.selectById(id); if (deliveryDetail.getReceiveQty() != null && deliveryDetail.getReceiveQty().compareTo(BigDecimal.ZERO) == 1) { throw new RuntimeException("已收料,无法删除"); } return SqlHelper.retBool(baseMapper.deleteById(id)); } @Override public List auditDeliveryDetail(Long mainId) { //接收数量的过滤 List deliveryDetail = baseMapper.auditDelivery(mainId); if (CollectionUtil.isNotEmpty(deliveryDetail)) { StringBuilder string = new StringBuilder(); for (int i = 0; i deliveryDetailList = baseMapper.auditDeliveryDetail(mainId); return deliveryDetailList; } @Override public boolean save(DeliveryDetail deliveryDetail) { List list = baseMapper.selectList(Wrappers.query().lambda().eq(DeliveryDetail::getReceivingMainId, deliveryDetail.getReceivingMainId()) .eq(DeliveryDetail::getPartId, deliveryDetail.getPartId()).eq(DeliveryDetail::getPartBatchNo, deliveryDetail.getPartBatchNo())); if (CollectionUtil.isNotEmpty(list)) { throw new RuntimeException("零件已存在,请勿重复添加"); } return SqlHelper.retBool(baseMapper.insert(deliveryDetail)); } @Override public boolean updateById(DeliveryDetail deliveryDetail) { if (deliveryDetail.getReceiveQty() != null) { deliveryDetail.setDifferenceQty(deliveryDetail.getDeliveryQty().subtract(deliveryDetail.getReceiveQty())); } return SqlHelper.retBool(baseMapper.updateById(deliveryDetail)); } }