WarehouseServiceImpl.java 5.16 KB
package com.huaheng.pc.general.warehouse.service;

import com.huaheng.common.utils.security.ShiroUtils;
import com.huaheng.pc.general.company.domain.Company;
import com.huaheng.pc.general.company.domain.WarehouseCompany;
import com.huaheng.pc.general.company.mapper.WarehouseCompanyMapperAuto;
import com.huaheng.pc.general.company.service.ICompanyService;
import com.huaheng.pc.general.warehouse.domain.Warehouse;
import com.huaheng.pc.general.warehouse.domain.WarehouseWu;
import com.huaheng.pc.general.warehouse.mapper.WarehouseMapper;
import com.huaheng.pc.general.warehouse.mapper.WarehouseMapperAuto;
import com.huaheng.pc.system.dict.domain.DictData;
import com.huaheng.pc.system.dict.domain.DictType;
import com.huaheng.pc.system.dict.service.IDictDataService;
import com.huaheng.pc.system.dict.service.IDictTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;


/**
 * 仓库 服务层实现
 * 
 * @author huaheng
 * @date 2018-08-19
 */
@Service("warehouse")
public class WarehouseServiceImpl implements IWarehouseService {

    @Resource
    private WarehouseMapperAuto aotuMapper;
    @Resource
    private WarehouseMapper mapper;

    @Autowired
    private IDictTypeService dictTypeService;

    @Autowired
    private IDictDataService dictDataService;

    @Autowired
    private ICompanyService companyService;
    @Resource
    private WarehouseCompanyMapperAuto warehouseCompanyMapperAuto;

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

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

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

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

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

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

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

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

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

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

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

    @Override
    @Transactional
    public int insertWarehouseAndDict(Warehouse warehouse)
    {
        this.insert(warehouse);
        Company company= companyService.selectEntityById(warehouse.getCompanyId());
        WarehouseCompany wc=new WarehouseCompany();
        wc.setCompanyId(warehouse.getCompanyId());
        wc.setCompanyCode(company.getCode());
        wc.setWarehouseId(warehouse.getId());
        wc.setWarehouseCode(warehouse.getCode());
        warehouseCompanyMapperAuto.insert(wc);
        DictType dictType = new DictType();
        dictType.setWarehouseId(1);
        List<DictType> dictTypeList = dictTypeService.selectDictTypeList(dictType);
        DictData dictData = new DictData();
        dictData.setWarehouseId(1);
        List<DictData> dictDataList = dictDataService.selectDictDataList(dictData);
        List<DictType> dictTypes=new ArrayList<>();
        List<DictData> dictDatas=new ArrayList<>();
        for (DictType typeItem : dictTypeList) {
            typeItem.setId(null);
            typeItem.setWarehouseId(warehouse.getId());
            typeItem.setWarehouseCode(warehouse.getCode());
            dictTypes.add(typeItem);
            for (DictData dataItem : dictDataList) {
                if(dataItem.getDictType().equals(typeItem.getDictType())) {
                    dataItem.setId(null);
                    dataItem.setHeaderId(typeItem.getId());
                    dataItem.setWarehouseId(warehouse.getId());
                    dataItem.setWarehouseCode(warehouse.getCode());
                    dictDatas.add(dataItem);
                }

            }
        }
        dictTypeService.insertDictTypes(dictTypes);
        dictDataService.insertDictDatas(dictDatas);
        return  1;
    }

    @Override
    public WarehouseWu selectWarehouseWu(WarehouseWu warehouseWu) {
        return mapper.selectWarehouseWu(warehouseWu);
    }

    @Override
    public List<WarehouseWu> selectList() {
        WarehouseWu warehouseWu=new WarehouseWu();
        warehouseWu.setWarehouseCode(ShiroUtils.getWarehouseCode());
        return mapper.selectList(warehouseWu);
    }


}