kongzy
2024-07-01 47a751cb301d05276ae5d75145d57b2d090fe4e1
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,9 +43,17 @@
    @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) {
    public List<SysWarehouseContainer> getSysWarehouseContainerList(String warehouseType, String warehouseName, Long warehouseId, Integer first, Integer pageSize) {
        try {
            Map<String, Object> params = new HashMap<String, Object>();
            if (StringUtils.isNotBlank(warehouseType)) {
@@ -48,7 +62,7 @@
            if (StringUtils.isNotBlank(warehouseName)) {
                params.put("warehouseName", "%" + warehouseName + "%");
            }
            if (StringUtils.isNotBlank(warehouseId)) {
            if (warehouseId!=null) {
                params.put("warehouseId", warehouseId);
            }
            params.put("first", first);
@@ -61,7 +75,7 @@
    }
    @Transactional(propagation = Propagation.REQUIRED)
    public List<SysWarehouseContainer> getSysWarehouseContainerList(String warehouseId){
    public List<SysWarehouseContainer> getSysWarehouseContainerList(Long warehouseId){
        return getSysWarehouseContainerList(null,null,warehouseId,null,null);
    }
@@ -83,7 +97,7 @@
    }
    @Transactional(propagation = Propagation.REQUIRED)
    public SysWarehouseContainer getSysWarehouseContainer(String id) {
    public SysWarehouseContainer getSysWarehouseContainer(Long id) {
        try {
            return this.sysWarehouseContainerDao.getSysWarehouseContainer(id);
        } catch (DataAccessException e) {
@@ -95,9 +109,9 @@
    @Transactional(propagation = Propagation.REQUIRED)
    public SysWarehouseContainer insertSysWarehouseContainer(SysWarehouseContainer sysWarehouseContainer) {
        try {
            if (sysWarehouseContainer.getId() == null) {
                sysWarehouseContainer.setId(IDUtils.uuid());
            }
//            if (sysWarehouseContainer.getId() == null) {
//                sysWarehouseContainer.setId(IDUtils.uuid());
//            }
            this.sysWarehouseContainerDao.insertSysWarehouseContainer(sysWarehouseContainer);
            return sysWarehouseContainer;
        } catch (DuplicateKeyException ex) {
@@ -140,7 +154,7 @@
                return false;
            }
            List<String> ids = new ArrayList<String>();
            List<Long> ids = new ArrayList<Long>();
            for (SysWarehouseContainer sysWarehouseContainer : sysWarehouseContainerList) {
                ids.add(sysWarehouseContainer.getId());
            }
@@ -159,9 +173,9 @@
            throw new BusinessException(ExceptionEnumCode.DB_ERR, MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), ex);
        }
    }
    @Transactional(propagation = Propagation.REQUIRED)
    public boolean isSysWarehouseContainerExist(String containerCode, String editId) {
    public boolean isSysWarehouseContainerExist(String containerCode, Long editId) {
        try {
            Map<String, Object> params = new HashMap<String, Object>();
            params.put("containerCode", containerCode);
@@ -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<Long> 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);
        }
    }
}