MaterialServiceImpl.java 2.01 KB
package com.huaheng.pc.general.material.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.huaheng.common.support.Convert;
import com.huaheng.common.utils.security.ShiroUtils;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail;
import com.huaheng.pc.receipt.receiptDetail.service.ReceiptDetailService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.huaheng.pc.general.material.mapper.MaterialMapper;
import com.huaheng.pc.general.material.domain.Material;
import com.huaheng.pc.general.material.service.MaterialService;
@Service
public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> implements MaterialService{

    @Resource
    private ReceiptDetailService receiptDetailService;

    @Override
    public AjaxResult removeByIds(String ids) {
        int count = 0;
        for (Integer id : Convert.toIntArray(ids)) {
            Material material = this.getById(id);

            LambdaQueryWrapper<ReceiptDetail> lambda = Wrappers.lambdaQuery();
            lambda.eq(ReceiptDetail::getWarehouseCode, ShiroUtils.getWarehouseCode())
                  .eq(ReceiptDetail::getMaterialCode, material.getCode())
                  .eq(ReceiptDetail::getDeleted, false)
                .last("LIMIT 1");

            Map<String, Object> map = receiptDetailService.getMap(lambda);
            if (map != null) {
                return AjaxResult.error("存货编码(" + material.getCode() +")存在入库单,不能删除!");
            }
            material.setDeleted(true);
            material.setLastUpdatedBy(ShiroUtils.getLoginName());
            if (this.updateById(material)){
                count++;
            }
        }
        return AjaxResult.success("成功删除"+count+"条记录");
    }
}