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

import com.huaheng.common.utils.security.ShiroUtils;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.mobile.shipment.Materialforecast;
import com.huaheng.pc.general.location.domain.Location;
import com.huaheng.pc.general.material.domain.Material;
import com.huaheng.pc.general.material.mapper.MaterialMapperAuto;
import com.huaheng.pc.inventory.inventory.domain.Inventory;
import com.huaheng.pc.inventory.inventory.mapper.InventoryMapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;


/**
 * 物料 服务层实现
 * 
 * @author huaheng
 * @date 2018-08-19
 */
@Service("material")
public class MaterialServiceImpl implements IMaterialService {
    @Resource
    private MaterialMapperAuto aotuMapper;
    @Resource
    private InventoryMapper inventoryMapper;

    public List<Material> selectListEntityByLike(Material condition) {
        return aotuMapper.selectListEntityByLike(condition);
    }

    public List<Material> selectListEntityByEqual(Material condition) {
        return aotuMapper.selectListEntityByEqual(condition);
    }

    public Material selectFirstEntity(Material condition) {
        Material item = aotuMapper.selectFirstEntity(condition);
        return item;
    }

    public Material selectEntityById(Integer id) {
        return aotuMapper.selectEntityById(id);
    }

    public List<Map<String, Object>> selectListMapByEqual(String columns, Material condition) {
        return aotuMapper.selectListMapByEqual(columns, condition);
    }

    public Map<String, Object> selectFirstMap(String columns, Material condition) {
        Map<String, Object> item = aotuMapper.selectFirstMap(columns, condition);
        return item;
    }

    public int insert(Material record) {
        return aotuMapper.insert(record);
    }

    public int updateByModel(Material record) {
        return aotuMapper.updateByModel(record);
    }

    public int updateByCondition(Material record, Material condition) {
        return aotuMapper.updateByCondition(record, condition);
    }

    public int deleteById(Integer id) {
        return aotuMapper.deleteById(id);
    }

    public int deleteByCondition(Material condition) {
        return aotuMapper.deleteByCondition(condition);
    }

    @Override
    public List<Material> getMaterialCodeAndId() {
        Material material =new Material();
        material.setWarehouseId(ShiroUtils.getWarehouseId());
        material.setDeleted(false);
        material.setEnable(true);
        List<Material> result=selectListEntityByEqual(material);
        return result;
    }

    @Override
    public Material getMaterial(String materialCode) {
        Material material=new Material();
        material.setWarehouseId(ShiroUtils.getWarehouseId());
        material.setEnable(true);
        material.setDeleted(false);
        material.setCode(materialCode);
        Material result= selectFirstEntity(material);
        return result;
    }

    @Override
    public List<Materialforecast> getMaterialForecast(String code) {
        List<Materialforecast> forecast = new ArrayList<>();
        Inventory condition = new Inventory();
        List<Inventory> inventories = null;
        condition.setMaterialCode(code);
        condition.setDeleted(false);
        condition.setWarehouseCode(ShiroUtils.getWarehouseCode());
        inventories = inventoryMapper.selectListEntityByLikeMaterialCode(condition);
        if(inventories != null && inventories.size() > 0) {
            for (Inventory inventory : inventories) {
                Materialforecast materialforecast = new Materialforecast();
                materialforecast.setMaterialCode(inventory.getMaterialCode());
                materialforecast.setType(0);
                forecast.add(materialforecast);
            }
        } else {
            Material material = new Material();
            material.setDeleted(false);
            material.setWarehouseId(ShiroUtils.getWarehouseId());
            material.setName(code);
            List<Material> materials = aotuMapper.selectListEntityByLike(material);
            if(materials != null && materials.size() > 0) {
                for(Material material1 : materials) {
                    condition = new Inventory();
                    condition.setMaterialCode(material1.getCode());
                    condition.setDeleted(false);
                    condition.setWarehouseCode(ShiroUtils.getWarehouseCode());
                    inventories = inventoryMapper.selectListEntityByLikeMaterialCode(condition);
                    for (Inventory inventory : inventories) {
                        Materialforecast materialforecast = new Materialforecast();
                        materialforecast.setMaterialCode(inventory.getMaterialCode());
                        materialforecast.setMaterialName(material1.getName());
                        materialforecast.setSpecification(material1.getSpecification());
                        materialforecast.setType(1);
                        forecast.add(materialforecast);
                    }
                }
            }
        }
        return forecast;
    }

    @Override
    public Material getMaterialfromName(String materialName) {
        return null;
    }
}