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

import com.huaheng.common.utils.security.ShiroUtils;
import com.huaheng.mobile.shipment.Materialforecast;
import com.huaheng.pc.general.material.domain.Material;
import com.huaheng.pc.general.material.mapper.MaterialMapper;
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;

    @Resource
    private MaterialMapper mapper;

    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);
    }

    @Override
    public int insertList(List<Material> materials) {
        return mapper.insertList(materials);
    }

    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.setCompanyCodeList(ShiroUtils.getCompanyCodeList());
        material.setEnable(true);
        material.setDeleted(false);
        if(materialCode.length() == 11) {
            material.setCode(materialCode);
        } else {
            material.setUserDef1(materialCode);
        }
        Material result= selectFirstEntity(material);
        if(result == null) {
            material = new Material();
            material.setWarehouseId(ShiroUtils.getWarehouseId());
            material.setCompanyCodeList(ShiroUtils.getCompanyCodeList());
            material.setEnable(true);
            material.setDeleted(false);
            if(materialCode.contains("    ")) {
                String materialinfos[] = materialCode.split("    ");
                materialCode = materialinfos[0];
                material.setSpecification(materialinfos[1]);
            }
            material.setName(materialCode);
            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());
        condition.setCompanyCodeList(ShiroUtils.getCompanyCodeList());
        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());
                    condition.setCompanyCodeList(ShiroUtils.getCompanyCodeList());
                    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 getEnableMaterialByCode(String materialCode) {
        Material material=new Material();
        material.setWarehouseId(ShiroUtils.getWarehouseId());
        material.setEnable(true);
        material.setDeleted(false);
        material.setCode(materialCode);
        material.setCompanyCodeList(ShiroUtils.getCompanyCodeList());
        Material result = selectFirstEntity(material);
        return  result;
    }

    @Override
    public Material selectNameBycode(String code) {
        return mapper.selectNameBycode(code);
    }

    @Override
    public List<Material> selectNameByListcode(String[] codes) {
        return mapper.selectNameByListCode(codes);
    }

    @Override
    public List<Material> selectNameByListUserdef1(String[] usedef1) {
        return mapper.selectNameByListUserdef1(usedef1);
    }
}