123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 |
- package com.ruoyi.base.service.impl;
- import java.util.ArrayList;
- import java.util.LinkedHashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.stream.Collectors;
- import com.ruoyi.base.domain.BaseLocationZone;
- import com.ruoyi.base.domain.vo.BasLocationTreeSelectVO;
- import com.ruoyi.base.domain.vo.TreeSelectVO;
- import com.ruoyi.base.mapper.BaseLocationZoneMapper;
- import com.ruoyi.base.utils.CommonUtils;
- import com.ruoyi.common.utils.DateUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import com.ruoyi.base.mapper.BaseLocationInfoMapper;
- import com.ruoyi.base.domain.BaseLocationInfo;
- import com.ruoyi.base.service.IBaseLocationInfoService;
- /**
- * 库位信息Service业务层处理
- *
- * @author andy
- * @date 2022-02-18
- */
- @Service
- public class BaseLocationInfoServiceImpl implements IBaseLocationInfoService {
- @Autowired
- private BaseLocationInfoMapper baseLocationInfoMapper;
- @Autowired
- private BaseLocationZoneMapper baseLocationZoneMapper;
- /**
- * 查询库位信息
- *
- * @param id 库位信息主键
- * @return 库位信息
- */
- @Override
- public BaseLocationInfo selectBaseLocationInfoById(Long id) {
- return baseLocationInfoMapper.selectBaseLocationInfoById(id);
- }
- @Override
- public BaseLocationInfo selectBaseLocationInfoByIdOrNo(String idOrNo, Long warehouseId) {
- BaseLocationInfo locationInfo = null;
- try {
- locationInfo = baseLocationInfoMapper.selectBaseLocationInfoById(Long.parseLong(idOrNo));
- } catch (Exception e) {
- }
- if (locationInfo == null) {
- return baseLocationInfoMapper.selectBaseLocationInfoByLocationNo(idOrNo, warehouseId);
- } else {
- return locationInfo;
- }
- }
- /**
- * 查询库位信息列表
- *
- * @param baseLocationInfo 库位信息
- * @return 库位信息
- */
- @Override
- public List<BaseLocationInfo> selectBaseLocationInfoList(BaseLocationInfo baseLocationInfo) {
- return baseLocationInfoMapper.selectBaseLocationInfoList(baseLocationInfo);
- }
- /**
- * 新增库位信息
- *
- * @param baseLocationInfo 库位信息
- * @return 结果
- */
- @Override
- public int insertBaseLocationInfo(BaseLocationInfo baseLocationInfo) {
- baseLocationInfo.setCreateTime(DateUtils.getNowDate());
- return baseLocationInfoMapper.insertBaseLocationInfo(baseLocationInfo);
- }
- /**
- * 修改库位信息
- *
- * @param baseLocationInfo 库位信息
- * @return 结果
- */
- @Override
- public int updateBaseLocationInfo(BaseLocationInfo baseLocationInfo) {
- baseLocationInfo.setUpdateTime(DateUtils.getNowDate());
- return baseLocationInfoMapper.updateBaseLocationInfo(baseLocationInfo);
- }
- /**
- * 批量删除库位信息
- *
- * @param ids 需要删除的库位信息主键
- * @return 结果
- */
- @Override
- public int deleteBaseLocationInfoByIds(Long[] ids) {
- return baseLocationInfoMapper.deleteBaseLocationInfoByIds(ids);
- }
- /**
- * 删除库位信息信息
- *
- * @param id 库位信息主键
- * @return 结果
- */
- @Override
- public int deleteBaseLocationInfoById(Long id) {
- return baseLocationInfoMapper.deleteBaseLocationInfoById(id);
- }
- @Override
- public List<TreeSelectVO> buildLocationTreeSelect() {
- List<BasLocationTreeSelectVO> locationTrees = buildLocationTree(0L);
- return locationTrees.stream().map(TreeSelectVO::new).collect(Collectors.toList());
- }
- @Override
- public List<BasLocationTreeSelectVO> buildLocationTree(Long zoneId) {
- // 查询区域,库位树把区域也组装进去
- BaseLocationZone queryZone = new BaseLocationZone();
- queryZone.setStatus("0");
- List<BaseLocationZone> zoneList = baseLocationZoneMapper.selectBaseLocationZoneList(queryZone);
- List<BasLocationTreeSelectVO> locationTreeSelectVOList = new ArrayList<>();
- //循环遍历每个区域的库位
- for (BaseLocationZone zone : zoneList) {
- BasLocationTreeSelectVO parent = new BasLocationTreeSelectVO();
- List<BasLocationTreeSelectVO> children = new ArrayList<>();
- BaseLocationInfo query = new BaseLocationInfo();
- query.setZoneId(zone.getZoneId());
- List<BaseLocationInfo> locationInfoList = baseLocationInfoMapper.selectBaseLocationInfoList(query);
- for (BaseLocationInfo b : locationInfoList) {
- BasLocationTreeSelectVO child = new BasLocationTreeSelectVO();
- child.setId(b.getId());
- child.setTreeName(b.getLocationNo());
- children.add(child);
- }
- parent.setId(zone.getZoneId());
- parent.setTreeName(zone.getZoneName());
- parent.setChildren(children);
- locationTreeSelectVOList.add(parent);
- }
- return locationTreeSelectVOList;
- }
- @Override
- public boolean checkIsLocation(String idOrNo, Long warehouseId) {
- BaseLocationInfo baseLocationInfo = this.selectBaseLocationInfoByIdOrNo(idOrNo, warehouseId);
- if (baseLocationInfo == null) {
- return false;
- } else {
- return true;
- }
- }
- @Override
- public List<BaseLocationInfo> selectSortedLocatinListByZoneId(Long zoneId, Long warehouseId) {
- BaseLocationInfo query = new BaseLocationInfo();
- query.setWarehouseId(warehouseId);
- query.setZoneId(zoneId);
- return baseLocationInfoMapper.selectSortedLocationListByZoneId(query);
- }
- @Override
- public int updateLocationStockStatus(Long id, String status) {
- return baseLocationInfoMapper.updateLocationStockStatus(id, status);
- }
- @Override
- public List<BaseLocationInfo> selectNeighborLocation(String colNo, Long zoneId) {
- List<BaseLocationInfo> colNoList = baseLocationInfoMapper.selectAllColNo();
- List<BaseLocationInfo> resultList = new ArrayList<>();
- String preColNo = "";
- String nextColNo = "";
- BaseLocationInfo currentLocation = null;
- for (int i = 0; i < colNoList.size(); i++) {
- if (!colNoList.get(i).getColNo().equals(colNo) && preColNo.equals("")) {
- preColNo = colNoList.get(i).getColNo();
- continue;
- }
- if (colNoList.get(i).getColNo().equals(colNo)) {
- currentLocation = colNoList.get(i);
- preColNo = colNoList.get(i - 1).getColNo();
- if (i + 1 < colNoList.size()) {
- nextColNo = colNoList.get(i + 1).getColNo();
- }
- continue;
- }
- if (nextColNo.equals(colNoList.get(i).getColNo())) {
- continue;
- } else {
- if (i + 1 < colNoList.size()) {
- if (currentLocation != null) {
- if (CommonUtils.getString(colNoList.get(i + 1).getBindSku()).equals("") || CommonUtils.getString(colNoList.get(i + 1).getBindSku()).equals(currentLocation.getBindSku())) {
- nextColNo = colNoList.get(i + 1).getColNo();
- }
- }
- }
- }
- }
- resultList.addAll(baseLocationInfoMapper.selectLocationByColNo(colNo));
- resultList.addAll(baseLocationInfoMapper.selectLocationByColNo(preColNo));
- resultList.addAll(baseLocationInfoMapper.selectLocationByColNo(nextColNo));
- return resultList;
- }
- }
|