| | |
| | | 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 { |
| | | |
| | | @Autowired |
| | | private CustOrderService custOrderService; |
| | | @Autowired |
| | | private MatService matService; |
| | | @Autowired |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void checkLocDetlCount(String number) { |
| | | List<CustOrder> custOrders = custOrderService.selectList(new EntityWrapper<CustOrder>().eq("number", number).eq("status", 1)); |
| | | 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(String number) { |
| | | List<CustOrder> custOrders = custOrderService.selectList(new EntityWrapper<CustOrder>().eq("number", number).eq("status", 1)); |
| | | public List<StockTransferParam> checkLocDetlCountOfRes(List<MatnrDto> dtos) { |
| | | boolean asrs = false; |
| | | List<StockTransferParam> params = new ArrayList<>(); |
| | | 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 (!asrs) { asrs = true; } |
| | | StockTransferParam param = new StockTransferParam(); |
| | | param.setMatnr(custOrder.getUserCode()); |
| | | param.setAnfme(custOrder.getQty() - count); |
| | | param.setTotal(custOrder.getQty()); |
| | | param.setMatnr(dto.getMatnr()); |
| | | param.setAnfme(dto.getCount() - count); |
| | | param.setTotal(dto.getCount()); |
| | | params.add(param); |
| | | } |
| | | } |