| | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.baomidou.mybatisplus.plugins.Page; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import com.core.common.Cools; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import zy.cloud.wms.common.config.CodeCoolException; |
| | | import zy.cloud.wms.manager.entity.CustOrder; |
| | | import zy.cloud.wms.common.model.MatnrDto; |
| | | import zy.cloud.wms.manager.entity.LocDetl; |
| | | import zy.cloud.wms.manager.entity.Mat; |
| | | import zy.cloud.wms.manager.entity.Prior; |
| | | import zy.cloud.wms.manager.entity.param.StockTransferParam; |
| | | import zy.cloud.wms.manager.mapper.LocDetlMapper; |
| | | import zy.cloud.wms.manager.service.CustOrderService; |
| | | import zy.cloud.wms.manager.service.LocDetlService; |
| | | import zy.cloud.wms.manager.service.MatService; |
| | | import zy.cloud.wms.manager.service.PriorService; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Optional; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Service("locDetlService") |
| | | public class LocDetlServiceImpl extends ServiceImpl<LocDetlMapper, LocDetl> implements LocDetlService { |
| | |
| | | private CustOrderService custOrderService; |
| | | @Autowired |
| | | private MatService matService; |
| | | @Autowired |
| | | private PriorService priorService; |
| | | |
| | | @Override |
| | | public Page<LocDetl> getPage(Page page, String nodeId, Object locNo, Object matnr, Object maktx) { |
| | | return page.setRecords(baseMapper.listByPage(page, nodeId, locNo, matnr, maktx)); |
| | | public Page<LocDetl> getPage(Page<LocDetl> page) { |
| | | page.setRecords(baseMapper.listByPage(page.getCondition())); |
| | | page.setTotal(baseMapper.listByPageCount(page.getCondition())); |
| | | return page; |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void checkLocDetlCount(String number) { |
| | | List<CustOrder> custOrders = custOrderService.selectList(new EntityWrapper<CustOrder>().eq("number", number).eq("status", 1)); |
| | | public List<LocDetl> findOfSort(String matnr) { |
| | | List<LocDetl> result = new ArrayList<>(); |
| | | List<LocDetl> locDetls = this.baseMapper.selectByPrior(matnr, null); |
| | | if (!Cools.isEmpty(locDetls)) { |
| | | result.addAll(locDetls); |
| | | } |
| | | List<Long> nodeIds = locDetls.stream().map(LocDetl::getNodeId).distinct().collect(Collectors.toList()); |
| | | List<LocDetl> locDetls1 = this.selectList(new EntityWrapper<LocDetl>().eq("matnr", matnr).eq("status", 1).orderBy("create_time")); |
| | | for (LocDetl locDetl : locDetls1) { |
| | | if (!nodeIds.contains(locDetl.getNodeId())) { |
| | | result.add(locDetl); |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | @Override |
| | | public void checkLocDetlCount(List<MatnrDto> dtos) { |
| | | StringBuilder errorMsg = new StringBuilder(); |
| | | boolean error = false; |
| | | for (CustOrder custOrder : custOrders) { |
| | | Double count = this.baseMapper.selectCountByMatnr(custOrder.getUserCode()); |
| | | if (count == null) { |
| | | count = 0.0D; |
| | | } |
| | | if (count < custOrder.getQty()) { |
| | | for (MatnrDto dto : dtos) { |
| | | Double count = Optional.ofNullable(baseMapper.selectCountByMatnr(dto.getMatnr())).orElse(0.0D); |
| | | if (count < dto.getCount()) { |
| | | if (!error) { |
| | | error = true; |
| | | } |
| | | Mat mat = matService.selectByMatnr(custOrder.getUserCode()); |
| | | errorMsg.append(mat == null ? custOrder.getUserCode() : mat.getMaktx()).append("库存不足,缺货数量:").append(custOrder.getQty() - count).append("</br>"); |
| | | Mat mat = matService.selectByMatnr(dto.getMatnr()); |
| | | errorMsg.append(mat == null ? dto.getMatnr() : mat.getMaktx()).append("库存不足,缺货数量:").append(dto.getCount() - count).append("</br>"); |
| | | } |
| | | } |
| | | if (error) { |
| | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public List<StockTransferParam> checkLocDetlCountOfRes(List<MatnrDto> dtos) { |
| | | boolean asrs = false; |
| | | List<StockTransferParam> params = new ArrayList<>(); |
| | | for (MatnrDto dto : dtos) { |
| | | Double count = Optional.ofNullable(baseMapper.selectCountByMatnr(dto.getMatnr())).orElse(0.0D); |
| | | if (count < dto.getCount()) { |
| | | if (!asrs) { asrs = true; } |
| | | StockTransferParam param = new StockTransferParam(); |
| | | param.setMatnr(dto.getMatnr()); |
| | | param.setAnfme(dto.getCount() - count); |
| | | param.setTotal(dto.getCount()); |
| | | params.add(param); |
| | | } |
| | | } |
| | | return params; |
| | | } |
| | | |
| | | @Override |
| | | public Boolean reduceStock(Long nodeId, String matnr, Double anfme) { |
| | | return this.baseMapper.reduceStock(nodeId, matnr, anfme)>0; |
| | | } |
| | | |
| | | @Override |
| | | public Boolean incrementStock(Long nodeId, String matnr, Double anfme) { |
| | | return this.baseMapper.incrementStock(nodeId, matnr, anfme)>0; |
| | | } |
| | | |
| | | @Override |
| | | public Boolean removeStock(Long nodeId, String matnr) { |
| | | return this.baseMapper.removeStock(nodeId, matnr)>0; |
| | | } |
| | | |
| | | @Override |
| | | public Boolean isPrior(Long nodeId, String matnr) { |
| | | return priorService.selectCount(new EntityWrapper<Prior>().eq("matnr", matnr).eq("node_id", nodeId).eq("status", 1))>0; |
| | | } |
| | | |
| | | @Override |
| | | public List<LocDetl> getLocDetlStatis() { |
| | | return this.baseMapper.getLocDetlStatis(); |
| | | } |
| | | |
| | | @Override |
| | | public Double selectCountByMatnr(String matnr) { |
| | | return this.baseMapper.selectCountByMatnr(matnr); |
| | | } |
| | | |
| | | @Override |
| | | public List<LocDetl> findByNodeUuid(String uuid) { |
| | | return this.baseMapper.selectByNodeUuid(uuid); |
| | | } |
| | | |
| | | @Override |
| | | public Page<LocDetl> getStockStatis(Page<LocDetl> page) { |
| | | page.setRecords(baseMapper.getStockStatis(page.getCondition())); |
| | | page.setTotal(baseMapper.getStockStatisCount(page.getCondition())); |
| | | return page; |
| | | } |
| | | |
| | | @Override |
| | | public List<LocDetl> getStockStatisExcel() { |
| | | return this.baseMapper.getStockStatisExcel(); |
| | | } |
| | | |
| | | |
| | | } |