李宇
2021-08-18 c3510da29a7974c6af7ff3de1ade3db429d6f848
src/main/java/com/nanometer/smartlab/service/SysWarehouseContainerServiceImpl.java
@@ -9,6 +9,12 @@
import com.google.common.collect.ImmutableBiMap;
import com.google.common.collect.Maps;
import com.nanometer.smartlab.dao.SysLaboratoryContainerDao;
import com.nanometer.smartlab.dao.SysLaboratoryDao;
import com.nanometer.smartlab.entity.SysLaboratory;
import com.nanometer.smartlab.entity.SysLaboratoryContainer;
import com.nanometer.smartlab.entity.SysWarehouse;
import com.nanometer.smartlab.util.Constants;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.dao.DataAccessException;
@@ -37,6 +43,14 @@
    @Resource(name = "sysWarehouseContainerDao")
    SysWarehouseContainerDao sysWarehouseContainerDao;
    @Resource
    SysLaboratoryContainerDao sysLaboratoryContainerDao;
    @Resource
    SysLaboratoryDao sysLaboratoryDao;
    @Resource
    BaseMetaService baseMetaService;
    @Resource
    SysWarehouseService sysWarehouseService;
    @Transactional(propagation = Propagation.REQUIRED)
    public List<SysWarehouseContainer> getSysWarehouseContainerList(String warehouseType, String warehouseName, String warehouseId, Integer first, Integer pageSize) {
@@ -159,7 +173,7 @@
            throw new BusinessException(ExceptionEnumCode.DB_ERR, MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), ex);
        }
    }
    @Transactional(propagation = Propagation.REQUIRED)
    public boolean isSysWarehouseContainerExist(String containerCode, String editId) {
        try {
@@ -194,5 +208,90 @@
        }
    }
    @Override
    @Transactional
    public void insertSysWarehouseContainer2(SysWarehouseContainer sysWarehouseContainer) {
        //0.新建自己
        this.insertSysWarehouseContainer(sysWarehouseContainer);
        SysWarehouse sysWarehouse = sysWarehouseService.getSysWarehouse(sysWarehouseContainer.getWarehouseId());
        //1.新建实验室
        SysLaboratory sl = new SysLaboratory();
        sl.setId(IDUtils.uuid());
        sl.setType(baseMetaService.getBaseMetaList(Constants.BASE_META_GROUP_LABORATORY_TYPE).get(0).getId());
        //判断是否已经存在该名称实验室
        SysLaboratory sysLaboratory = sysLaboratoryDao.getSysLaboratoryByName(sysWarehouse.getName());
        if (sysLaboratory == null) {
            //新建实验室
            sl.setName(sysWarehouse.getName());
            sl.setInfoCode(sysWarehouse.getInfoCode());
            sl.setBarCode(sysWarehouse.getBarCode());
            sl.setLocation1(sysWarehouse.getLocation1());
            sl.setLocation2(sysWarehouse.getLocation2());
            sl.setDepartment(sysWarehouse.getDepartment());
            sysLaboratoryDao.insertSysLaboratory(sl);
        }else{
            sl.setId(sysLaboratory.getId());
        }
        //新建临时存储库
        Map<String,Object> params = new HashMap<>();
        params.put("containerCode", sysWarehouseContainer.getContainerCode());
        int count = sysLaboratoryContainerDao.getSysLaboratoryContainerTotalCount(params);
        //判断是否已经存在该条码柜子
        if (count < 1) {
            SysLaboratoryContainer slc = new SysLaboratoryContainer();
            slc.setId(IDUtils.uuid());
            // (#{id}, #{laboratoryId}, #{type}, #{containerCode}, #{infoCode}, #{structure},
            // #{name}, 1, #{characterLeft}, #{characterRight}, now(), now(), #{controllerCode},#{project})
            slc.setLaboratoryId(sl.getId());
            slc.setType(sysWarehouseContainer.getType());
            slc.setContainerCode(sysWarehouseContainer.getContainerCode());
            slc.setInfoCode(sysWarehouseContainer.getInfoCode());
            slc.setStructure(sysWarehouseContainer.getStructure());
            slc.setName(sysWarehouseContainer.getName());
            slc.setCharacterLeft(sysWarehouseContainer.getCharacterLeft());
            slc.setCharacterRight(sysWarehouseContainer.getCharacterRight());
            slc.setControllerCode(sysWarehouseContainer.getControllerCode());
            sysLaboratoryContainerDao.insertSysLaboratoryContainer(slc);
        }
    }
    @Override
    @Transactional
    public void updateSysWarehouseContainer2(SysWarehouseContainer sysWarehouseContainer) {
        //1.更新自己
        this.updateSysWarehouseContainer(sysWarehouseContainer);
        //2.更新实验室临时货柜 by ContainerCode
        SysLaboratoryContainer sysLaboratoryContainer = sysLaboratoryContainerDao.getSysLaboratoryContainerByContainerCode(sysWarehouseContainer.getContainerCode());
        sysLaboratoryContainer.setName(sysWarehouseContainer.getName());
        sysLaboratoryContainer.setInfoCode(sysWarehouseContainer.getInfoCode());
        sysLaboratoryContainer.setControllerCode(sysWarehouseContainer.getControllerCode());
        sysLaboratoryContainer.setStructure(sysWarehouseContainer.getStructure());
        sysLaboratoryContainer.setCharacterRight(sysWarehouseContainer.getCharacterRight());
        sysLaboratoryContainer.setCharacterLeft(sysWarehouseContainer.getCharacterLeft());
        sysLaboratoryContainerDao.updateSysLaboratoryContainer(sysLaboratoryContainer);
    }
    @Override
    @Transactional
    public void deleteSysWarehouseContainer2(List<SysWarehouseContainer> selectedList) {
        //1.删除自己
        this.deleteSysWarehouseContainer(selectedList);
        List<String> ids = new ArrayList<>();
        for (SysWarehouseContainer swc : selectedList) {
            SysLaboratoryContainer slc = sysLaboratoryContainerDao.getSysLaboratoryContainerByContainerCode(swc.getContainerCode());
            if (slc != null) {
                ids.add(slc.getId());
            }
        }
        //2.删除实验室临时存储柜
        if (ids.size() > 0){
            sysLaboratoryContainerDao.deleteSysLaboratoryContainers(ids);
        }
    }
}